@neralabs/rerail-pack-javascript 0.1.2 → 0.1.4
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.
- package/README.md +416 -3
- package/licenses/eslint/UPSTREAM.md +28 -3
- package/licenses/eslint-plugin-unicorn/UPSTREAM.md +39 -2
- package/pack.json +43 -3
- package/package.json +1 -1
- package/rules/eslint-arrow-body-style.json +1 -1
- package/rules/eslint-capitalized-comments.json +1 -1
- package/rules/eslint-curly.json +1 -0
- package/rules/eslint-default-case-last.json +1 -1
- package/rules/eslint-default-case.json +1 -1
- package/rules/eslint-eqeqeq.json +1 -1
- package/rules/eslint-func-style.json +1 -1
- package/rules/eslint-guard-for-in.json +1 -1
- package/rules/eslint-no-bitwise.json +1 -1
- package/rules/eslint-no-caller.json +2 -2
- package/rules/eslint-no-case-declarations.json +2 -2
- package/rules/eslint-no-compare-neg-zero.json +2 -2
- package/rules/eslint-no-cond-assign.json +1 -1
- package/rules/eslint-no-console.json +1 -1
- package/rules/eslint-no-continue.json +2 -2
- package/rules/eslint-no-debugger.json +1 -1
- package/rules/eslint-no-delete-var.json +2 -2
- package/rules/eslint-no-div-regex.json +1 -1
- package/rules/eslint-no-dupe-keys.json +3 -7
- package/rules/eslint-no-duplicate-case.json +2 -2
- package/rules/eslint-no-empty-pattern.json +1 -1
- package/rules/eslint-no-empty-static-block.json +2 -2
- package/rules/eslint-no-empty.json +2 -2
- package/rules/eslint-no-eq-null.json +1 -1
- package/rules/eslint-no-extend-native.json +1 -1
- package/rules/eslint-no-inline-comments.json +1 -1
- package/rules/eslint-no-iterator.json +1 -1
- package/rules/eslint-no-labels.json +1 -0
- package/rules/eslint-no-loss-of-precision.json +1 -1
- package/rules/eslint-no-multi-str.json +2 -2
- package/rules/eslint-no-negated-condition.json +2 -2
- package/rules/eslint-no-nested-ternary.json +1 -1
- package/rules/eslint-no-new-wrappers.json +1 -1
- package/rules/eslint-no-new.json +2 -2
- package/rules/eslint-no-nonoctal-decimal-escape.json +2 -2
- package/rules/eslint-no-object-constructor.json +1 -0
- package/rules/eslint-no-octal-escape.json +1 -1
- package/rules/eslint-no-octal.json +2 -2
- package/rules/eslint-no-plusplus.json +1 -1
- package/rules/eslint-no-proto.json +1 -1
- package/rules/eslint-no-prototype-builtins.json +3 -3
- package/rules/eslint-no-return-assign.json +1 -1
- package/rules/eslint-no-script-url.json +1 -1
- package/rules/eslint-no-self-compare.json +2 -2
- package/rules/eslint-no-sequences.json +1 -0
- package/rules/eslint-no-setter-return.json +1 -1
- package/rules/eslint-no-sparse-arrays.json +1 -1
- package/rules/eslint-no-template-curly-in-string.json +2 -2
- package/rules/eslint-no-ternary.json +1 -1
- package/rules/eslint-no-unneeded-ternary.json +1 -1
- package/rules/eslint-no-unsafe-finally.json +7 -7
- package/rules/eslint-no-unsafe-negation.json +1 -1
- package/rules/eslint-no-unused-labels.json +1 -0
- package/rules/eslint-no-unused-private-class-members.json +83 -0
- package/rules/eslint-no-useless-call.json +1 -1
- package/rules/eslint-no-useless-catch.json +1 -1
- package/rules/eslint-no-useless-concat.json +1 -1
- package/rules/eslint-no-void.json +1 -1
- package/rules/eslint-no-warning-comments.json +1 -1
- package/rules/eslint-no-with.json +7 -4
- package/rules/eslint-operator-assignment.json +1 -1
- package/rules/eslint-prefer-numeric-literals.json +1 -1
- package/rules/eslint-prefer-spread.json +1 -1
- package/rules/eslint-prefer-template.json +2 -2
- package/rules/eslint-radix.json +2 -2
- package/rules/eslint-sort-imports.json +1 -1
- package/rules/eslint-sort-keys.json +1 -1
- package/rules/eslint-sort-vars.json +1 -1
- package/rules/eslint-use-isnan.json +3 -3
- package/rules/eslint-valid-typeof.json +1 -1
- package/rules/eslint-yoda.json +1 -1
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
# Rerail rule pack: JavaScript
|
|
1
|
+
# Rerail rule pack: JavaScript and TypeScript (ESLint core)
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
71 code rules for JavaScript and TypeScript source, ported from ESLint 10.11.0's core rules with their default options.
|
|
4
|
+
24 start on; 47 start off (`"on": false`) because `eslint:recommended` does not turn them on, so they are experimental.
|
|
5
5
|
Each shipped rule is scored against ESLint's own findings on ESLint's test cases, through the engine's production
|
|
6
6
|
workspace path, with every disagreement declared in `divergences.json` (none today).
|
|
7
7
|
|
|
@@ -17,12 +17,21 @@ It is checked by `npx vitest run test/engine/catalog/packs.test.ts -t "pack java
|
|
|
17
17
|
| `upstream/eslint/` | ESLint's copied test cases (`fixtures/`) and its recording (`fixtures.expected.json`) |
|
|
18
18
|
| `upstream/generate.mjs` | ESLint's recorder |
|
|
19
19
|
| `upstream/eslint-plugin-unicorn/` | eslint-plugin-unicorn's copied test cases, its recording and its recorder (`generate.mjs`) |
|
|
20
|
+
| `upstream/<tool>/gates.yaml`, `recording.lock`, `goldens.tsv` | The port readiness gates' manifest for the tool, the lock naming its recordings (`recording.json`, `corpus.json`, held in a GitHub release) and its goldens ([docs/port-readiness.md](../../docs/port-readiness.md)) |
|
|
20
21
|
| `candidates/rules/` | Ports of ESLint and eslint-plugin-unicorn rules still being evaluated: listed in `conformance.json`, scored and reported, never gated, never shipped |
|
|
21
22
|
| `licenses/<tool>/` | The tool's licence and `UPSTREAM.md`, listing every copied file |
|
|
22
23
|
|
|
23
24
|
The pack is recommended for a repository with JavaScript or TypeScript source files. Files under test, script and
|
|
24
25
|
fixture folders, test and spec files, and configuration files (`*.config.*`, `.*rc.*`) do not count.
|
|
25
26
|
|
|
27
|
+
This pack and the [TypeScript pack](../typescript/README.md) split ECMA files by type. The 21 core rules that
|
|
28
|
+
typescript-eslint 8.70.1 replaces with an extension rule, or turns off for TypeScript in its `eslint-recommended`
|
|
29
|
+
configuration (`no-redeclare`, `no-undef`, `no-unused-vars`, `no-dupe-keys` and others), run on `.js`, `.jsx`, `.mjs`
|
|
30
|
+
and `.cjs` files only, and are scored on ESLint's JavaScript test cases only (`fixtures` in `conformance.json`). On
|
|
31
|
+
TypeScript they report overloads, declaration merges and type names, and with both packs added a typescript-eslint
|
|
32
|
+
port would report the same violation again. `no-loss-of-precision` and `prefer-spread`, which typescript-eslint leaves
|
|
33
|
+
to the core rule on TypeScript, run on every ECMA file.
|
|
34
|
+
|
|
26
35
|
Re-recording runs offline against the pinned tool versions (the recorder's header lists them):
|
|
27
36
|
|
|
28
37
|
```sh
|
|
@@ -35,3 +44,407 @@ Scoring one rule with every false positive and false negative printed:
|
|
|
35
44
|
```sh
|
|
36
45
|
node --import tsx conformance/languages/cli.ts --pack javascript --rule eslint-use-isnan --fixtures
|
|
37
46
|
```
|
|
47
|
+
|
|
48
|
+
## Rule details
|
|
49
|
+
|
|
50
|
+
What each rule matches beyond its one-line description: exact matching, edge cases, upstream settings and known divergences.
|
|
51
|
+
|
|
52
|
+
### `eslint-accessor-pairs`
|
|
53
|
+
|
|
54
|
+
Port of ESLint accessor-pairs. Default options: setWithoutGet true, getWithoutSet false, enforceForClassMembers true, enforceForTSTypes false. Covers object literals, classes (static and instance members paired separately) and property descriptors passed to Object.defineProperty, Reflect.defineProperty, Object.create or Object.defineProperties. Static keys pair by ESLint's getStaticPropertyName; other keys by their tokens.
|
|
55
|
+
|
|
56
|
+
### `eslint-arrow-body-style`
|
|
57
|
+
|
|
58
|
+
Port of ESLint arrow-body-style, default as-needed. Fixes only when ESLint's comment and ASI guards allow and the rewrite is a template of whole nodes.
|
|
59
|
+
|
|
60
|
+
### `eslint-capitalized-comments`
|
|
61
|
+
|
|
62
|
+
Port of ESLint capitalized-comments, default "always". Tests the first non-whitespace, non-asterisk character for Unicode Ll/Lu case; skips directive comments and URLs. Fix converts the first letter's case.
|
|
63
|
+
|
|
64
|
+
### `eslint-class-methods-use-this`
|
|
65
|
+
|
|
66
|
+
Port of ESLint class-methods-use-this, default options. Flags non-static, non-constructor methods and class fields initialized with a function/arrow whose own body never uses this or super. Nested functions, static blocks and nested class field initializers have their own this; arrows share it. An accessor field (AccessorProperty) is not treated as a field.
|
|
67
|
+
|
|
68
|
+
### `eslint-default-case`
|
|
69
|
+
|
|
70
|
+
Port of ESLint default-case. Only non-empty switches; exempt when the last comment after the last case matches "no default" (case-insensitive, configurable via commentPattern).
|
|
71
|
+
|
|
72
|
+
### `eslint-default-param-last`
|
|
73
|
+
|
|
74
|
+
Port of ESLint default-param-last on JS files. A rest parameter neither counts as required nor is reported (ESLint isRequiredParameter). TypeScript optional params are handled by typescript-eslint-default-param-last.
|
|
75
|
+
|
|
76
|
+
### `eslint-dot-notation`
|
|
77
|
+
|
|
78
|
+
Port of ESLint dot-notation, default options (allowKeywords true). Keys: string, static template, boolean/null literal that is a valid identifier. Reported at the key; no fix when comments sit inside the brackets.
|
|
79
|
+
|
|
80
|
+
### `eslint-eqeqeq`
|
|
81
|
+
|
|
82
|
+
ESLint 10.11.0 eqeqeq, default options (always, null always). Autofixes only when an operand is typeof or both operands are literals of one type.
|
|
83
|
+
|
|
84
|
+
### `eslint-func-name-matching`
|
|
85
|
+
|
|
86
|
+
Port of ESLint func-name-matching, default mode always. Compares against variable, assigned property, object key or class field; string keys only when they are escape-free identifier names. module.exports is exempt by default.
|
|
87
|
+
|
|
88
|
+
### `eslint-func-style`
|
|
89
|
+
|
|
90
|
+
Port of ESLint func-style (default "expression"). Default exports and TypeScript overload implementations are exempt.
|
|
91
|
+
|
|
92
|
+
### `eslint-grouped-accessor-pairs`
|
|
93
|
+
|
|
94
|
+
Port of ESLint grouped-accessor-pairs, default order anyOrder. Reports the latter of a getter/setter pair (only getter and setter of their key in an object, class instance or static members, or TS type) when another member sits between. Static keys pair by getStaticPropertyName, other keys by tokens.
|
|
95
|
+
|
|
96
|
+
### `eslint-guard-for-in`
|
|
97
|
+
|
|
98
|
+
Port of ESLint guard-for-in. Accepted bodies: empty, an if statement, or a block whose first statement is an if that is either the only statement or whose consequent is continue / { continue; }.
|
|
99
|
+
|
|
100
|
+
### `eslint-id-length`
|
|
101
|
+
|
|
102
|
+
Port of ESLint id-length, default min 2 (graphemes), no max, properties always. Covers variables, parameters, functions, classes, members, imports, destructuring targets and assigned properties.
|
|
103
|
+
|
|
104
|
+
### `eslint-max-classes-per-file`
|
|
105
|
+
|
|
106
|
+
Port of ESLint max-classes-per-file, default max 1. Reported at the file's first statement; counts declared and evaluated (expression) classes.
|
|
107
|
+
|
|
108
|
+
### `eslint-max-depth`
|
|
109
|
+
|
|
110
|
+
Port of ESLint max-depth, default 4. Depth counted per function, static block or program.
|
|
111
|
+
|
|
112
|
+
### `eslint-max-nested-callbacks`
|
|
113
|
+
|
|
114
|
+
Port of ESLint max-nested-callbacks with max 10. A callback is a function/arrow passed as a call argument; a callback nested inside more than max callbacks (itself included) is reported at its function head. Nesting depth is not interpolated into the message.
|
|
115
|
+
|
|
116
|
+
### `eslint-max-params`
|
|
117
|
+
|
|
118
|
+
Port of ESLint max-params (default 3) on JS files. Every param counts: plain, defaulted, destructured, rest. Reported at getFunctionHeadLoc's start; message names the function via getFunctionNameWithKind. countThis only affects TS this params; TS declared functions/function types are typescript-eslint-max-params's.
|
|
119
|
+
|
|
120
|
+
### `eslint-max-statements`
|
|
121
|
+
|
|
122
|
+
Port of ESLint max-statements (default 10, ignoreTopLevelFunctions false). Counts statements directly in blocks up to the nearest nested function or class static block; the message's count is only produced where the body holds no nested block.
|
|
123
|
+
|
|
124
|
+
### `eslint-no-alert`
|
|
125
|
+
|
|
126
|
+
Port of ESLint no-alert. Flags alert/confirm/prompt when unshadowed, or as members of unshadowed window, of globalThis when ecmaVersion or globals declare it, or of this at script global scope. Only globalThis honours /* global */ comments.
|
|
127
|
+
|
|
128
|
+
### `eslint-no-array-constructor`
|
|
129
|
+
|
|
130
|
+
Port of ESLint no-array-constructor. Only the global Array; exempt with exactly one non-spread argument or type arguments. Fix to an array literal adds a leading ; when the previous statement would otherwise continue (approximated from its last token).
|
|
131
|
+
|
|
132
|
+
### `eslint-no-await-in-loop`
|
|
133
|
+
|
|
134
|
+
Port of ESLint no-await-in-loop. Flags await expressions, for await loops and await using declarations in a loop's test, update or body with no function or for-await-of loop in between.
|
|
135
|
+
|
|
136
|
+
### `eslint-no-caller`
|
|
137
|
+
|
|
138
|
+
Port of ESLint no-caller; the arguments object is matched through parentheses.
|
|
139
|
+
|
|
140
|
+
### `eslint-no-case-declarations`
|
|
141
|
+
|
|
142
|
+
Port of ESLint no-case-declarations. using declarations, which tree-sitter-typescript 0.23.2 parses as assignments with a using token, count as lexical declarations.
|
|
143
|
+
|
|
144
|
+
### `eslint-no-compare-neg-zero`
|
|
145
|
+
|
|
146
|
+
ESLint 10.11.0 no-compare-neg-zero, default options. -0 is a unary minus on a numeric literal of value 0. Scope only matters to ESLint's Object.is suggestion, which is not a fix.
|
|
147
|
+
|
|
148
|
+
### `eslint-no-cond-assign`
|
|
149
|
+
|
|
150
|
+
Port of ESLint no-cond-assign, default except-parens: an assignment that is itself the test of if/while/do-while/for/ternary unless wrapped in an extra pair of parentheses (for "for", any pair).
|
|
151
|
+
|
|
152
|
+
### `eslint-no-console`
|
|
153
|
+
|
|
154
|
+
Port of ESLint no-console, default allow []. Flags member access on the global console (resolved), reported at the member expression.
|
|
155
|
+
|
|
156
|
+
### `eslint-no-delete-var`
|
|
157
|
+
|
|
158
|
+
Port of ESLint no-delete-var. Reports delete applied to a bare identifier, looking through parentheses.
|
|
159
|
+
|
|
160
|
+
### `eslint-no-div-regex`
|
|
161
|
+
|
|
162
|
+
Port of ESLint no-div-regex. Reports a regex literal whose pattern starts with `=`; the fix (as ESLint) replaces the first `=` with `[=]` (M12b `fix.range` over a regex capture group).
|
|
163
|
+
|
|
164
|
+
### `eslint-no-dupe-class-members`
|
|
165
|
+
|
|
166
|
+
Port of ESLint no-dupe-class-members. Static member names follow ESLint's getStaticPropertyName (via `compare` text `key`); duplicates are counted within the same class and the same staticness. A getter may pair with a setter; constructors and TypeScript overload signatures are ignored.
|
|
167
|
+
|
|
168
|
+
### `eslint-no-dupe-else-if`
|
|
169
|
+
|
|
170
|
+
Port of ESLint no-dupe-else-if. Flags an else-if test that repeats an earlier test of the chain, is an operand of an earlier `||` test, or is an `&&` whose operand repeats an earlier test (one level only). Tests are compared by tokens, with `||`/`&&` operands in either order (ESLint's equal). Divergence: ESLint's full or/and set-cover over the whole chain is not expressed.
|
|
171
|
+
|
|
172
|
+
### `eslint-no-dupe-keys`
|
|
173
|
+
|
|
174
|
+
Port of ESLint 10.11.0 no-dupe-keys, default options. Static keys via ESLint's getStaticPropertyName (`compare` text `key`); a getter may pair with a setter; a non-computed `__proto__: value` is not counted as a key.
|
|
175
|
+
|
|
176
|
+
### `eslint-no-duplicate-case`
|
|
177
|
+
|
|
178
|
+
Port of ESLint 10.11.0 no-duplicate-case, default options. A case test (inside any parentheses) is token-equal (ESLint's equalTokens, via `compare` text `tokens`) to an earlier case of the same switch.
|
|
179
|
+
|
|
180
|
+
### `eslint-no-duplicate-imports`
|
|
181
|
+
|
|
182
|
+
Port of ESLint no-duplicate-imports. With includeExports, re-exports are also checked. Only flags when ESLint's merge rules allow merging (namespace vs named, `export *`, type-only default vs named). Module names are paired by cooked value trimmed the way JavaScript trims (`transform` with `value: true`), and the message names the trimmed value. Options (includeExports, allowSeparateTypeImports) live in the `options` define; a variant is a config patch.
|
|
183
|
+
|
|
184
|
+
### `eslint-no-empty`
|
|
185
|
+
|
|
186
|
+
Port of ESLint no-empty. Function bodies, class static blocks and TS module bodies are not checked; a block or switch with a comment is not empty. Option allowEmptyCatch in the `options` define.
|
|
187
|
+
|
|
188
|
+
### `eslint-no-empty-function`
|
|
189
|
+
|
|
190
|
+
Port of ESLint no-empty-function, default options (allow: []). A body holding a comment is not empty; constructors with parameter properties are exempt.
|
|
191
|
+
|
|
192
|
+
### `eslint-no-empty-pattern`
|
|
193
|
+
|
|
194
|
+
Port of ESLint no-empty-pattern. Option allowObjectPatternsAsParameters in the `options` define.
|
|
195
|
+
|
|
196
|
+
### `eslint-no-empty-static-block`
|
|
197
|
+
|
|
198
|
+
Port of ESLint no-empty-static-block. A comment inside the braces makes it non-empty; a trailing comment the grammar attaches after the closing brace does not count.
|
|
199
|
+
|
|
200
|
+
### `eslint-no-eq-null`
|
|
201
|
+
|
|
202
|
+
Port of ESLint no-eq-null. Reports `==` and `!=` with a `null` operand, looking through parentheses.
|
|
203
|
+
|
|
204
|
+
### `eslint-no-eval`
|
|
205
|
+
|
|
206
|
+
Port of ESLint no-eval, default allowIndirect false. Indirect uses flagged: references to the global eval; eval read from a global object (global/window/globalThis, when declared by the configured languageOptions or at the top level of a script); and `this.eval` where `this` is the global object (top level of a script or CommonJS file, or a non-strict function via `resolves.this` with `sloppyFunctions`, strictness from languageOptions) whose call binds the default `this`. Which calls rebind `this` (methods, bind/call/apply, thisArg callbacks, capitalized constructors) is ESLint's heuristic, approximated structurally. Shadowing resolved with `resolves`.
|
|
207
|
+
|
|
208
|
+
### `eslint-no-extend-native`
|
|
209
|
+
|
|
210
|
+
Port of ESLint no-extend-native. Flags assignment to a property of `<Builtin>.prototype`, or passing it to Object.defineProperty/defineProperties, for the ECMAScript builtins ESLint lists, filtered by the configured ecmaVersion and globals (`ast.languageOptions`). The builtin must resolve to the global (`resolves`). Option exceptions (default []).
|
|
211
|
+
|
|
212
|
+
### `eslint-no-extra-bind`
|
|
213
|
+
|
|
214
|
+
Port of ESLint no-extra-bind. Only `.bind(x)` with exactly one argument; the fix removes the call when the argument is side-effect free and no comment is inside.
|
|
215
|
+
|
|
216
|
+
### `eslint-no-extra-label`
|
|
217
|
+
|
|
218
|
+
Port of ESLint no-extra-label. Fix removes the label when the statement holds no comment.
|
|
219
|
+
|
|
220
|
+
### `eslint-no-implied-eval`
|
|
221
|
+
|
|
222
|
+
Port of ESLint 10.11.0 no-implied-eval, default options. setTimeout/setInterval/execScript called directly or through window/self/global/globalThis, with a first argument that is a string (followed through effectively-constant bindings: `value.follow`), a template literal, or a `+` with such an operand. Those names count only when the configured ecmaVersion and globals declare them (`ast.languageOptions`) and nothing shadows them (`resolves`).
|
|
223
|
+
|
|
224
|
+
### `eslint-no-inline-comments`
|
|
225
|
+
|
|
226
|
+
Port of ESLint no-inline-comments. A comment is reported when a token or comment ends on its start line before it, or starts on its end line after it (`layout` gaps, comments included). Exceptions: ESLint directive comments (isDirectiveComment prefixes), and a comment alone in a JSX expression container whose line holds only `{` before and `}` after. Option ignorePattern.
|
|
227
|
+
|
|
228
|
+
### `eslint-no-irregular-whitespace`
|
|
229
|
+
|
|
230
|
+
Port of ESLint no-irregular-whitespace. Reports every maximal run of irregular whitespace and every U+2028/U+2029 (`finding.each` over a regex group): inside tokens ESLint does not skip (comments, regex literals, template chunks), between tokens via a lexer regex over the program text and each template substitution that consumes non-code (comments, strings, templates, regex literals at the start or after a punctuator), and in the file's leading whitespace before the first token (only its first three runs or line terminators). Options skipComments/skipTemplates/skipRegExps/skipJSXText/skipStrings.
|
|
231
|
+
|
|
232
|
+
### `eslint-no-iterator`
|
|
233
|
+
|
|
234
|
+
Port of ESLint no-iterator. Member accesses whose static property name (getStaticPropertyName) is `__iterator__`: a non-computed name (identifier escapes decoded), or a string or substitution-free template index by its cooked value.
|
|
235
|
+
|
|
236
|
+
### `eslint-no-labels`
|
|
237
|
+
|
|
238
|
+
Port of ESLint no-labels. Options allowLoop and allowSwitch in the `options` define.
|
|
239
|
+
|
|
240
|
+
### `eslint-no-lonely-if`
|
|
241
|
+
|
|
242
|
+
Port of ESLint no-lonely-if. Only when the else block's braces are not necessary; fixes to `else if` under ESLint's comment and ASI guards (ASI guard approximated conservatively).
|
|
243
|
+
|
|
244
|
+
### `eslint-no-loss-of-precision`
|
|
245
|
+
|
|
246
|
+
Port of ESLint no-loss-of-precision. Binary literals whose significant bits span more than 53; decimal literals whose significant digits differ from the stored number's (String(v) through `transform` with `value: true`, overflow to Infinity and underflow to zero included); hex and octal literals checked like binary by significant-bit span.
|
|
247
|
+
|
|
248
|
+
### `eslint-no-magic-numbers`
|
|
249
|
+
|
|
250
|
+
Port of ESLint no-magic-numbers. Numeric literals (with a leading unary +/-) are flagged except variable initialisers, object properties, member assignments, parseInt radixes and JSX containers. Options (ignore, ignoreArrayIndexes, ignoreDefaultValues, ignoreClassFieldInitialValues, enforceConst, detectObjects, ...) in the `options` define.
|
|
251
|
+
|
|
252
|
+
### `eslint-no-multi-assign`
|
|
253
|
+
|
|
254
|
+
Port of ESLint no-multi-assign. Flags an assignment used (through parentheses) as a variable initializer, a class field value or another assignment's value. Option ignoreNonDeclaration.
|
|
255
|
+
|
|
256
|
+
### `eslint-no-multi-str`
|
|
257
|
+
|
|
258
|
+
Port of ESLint no-multi-str. Not reported when the string's parent is a JSX attribute or JSX expression container.
|
|
259
|
+
|
|
260
|
+
### `eslint-no-negated-condition`
|
|
261
|
+
|
|
262
|
+
Port of ESLint no-negated-condition. Flags `if` with a plain (non-else-if) `else`, and ternaries, whose test is `!x`, `!=` or `!==`.
|
|
263
|
+
|
|
264
|
+
### `eslint-no-nested-ternary`
|
|
265
|
+
|
|
266
|
+
Port of ESLint no-nested-ternary. Consequent or alternate checked through parentheses.
|
|
267
|
+
|
|
268
|
+
### `eslint-no-new`
|
|
269
|
+
|
|
270
|
+
Port of ESLint no-new. An expression statement whose expression (through parentheses) is a `new` expression.
|
|
271
|
+
|
|
272
|
+
### `eslint-no-new-func`
|
|
273
|
+
|
|
274
|
+
Port of ESLint no-new-func. Calling or constructing the global Function, or calling its apply/bind/call (resolved with `resolves`).
|
|
275
|
+
|
|
276
|
+
### `eslint-no-new-wrappers`
|
|
277
|
+
|
|
278
|
+
Port of ESLint 10.11.0 no-new-wrappers, default options. Global String/Number/Boolean resolved with `resolves`.
|
|
279
|
+
|
|
280
|
+
### `eslint-no-obj-calls`
|
|
281
|
+
|
|
282
|
+
Port of ESLint `no-obj-calls`. Flags calling or constructing Atomics, JSON, Math, Reflect, Intl or Temporal directly, through a global object (globalThis/window/self/global), or through an effectively constant variable whose binding holds one (resolved recursively via `resolves.binding`). Names count only when the configured ecmaVersion and globals declare them (`ast.languageOptions`) and nothing shadows them.
|
|
283
|
+
|
|
284
|
+
### `eslint-no-object-constructor`
|
|
285
|
+
|
|
286
|
+
Only flags `Object()` / `new Object()` without arguments when `Object` resolves to the global. ESLint offers only a suggestion, so no fix is declared.
|
|
287
|
+
|
|
288
|
+
### `eslint-no-proto`
|
|
289
|
+
|
|
290
|
+
Matches member accesses whose static property name (ESLint getStaticPropertyName) is `__proto__`: a non-computed name with identifier escapes decoded, or a string or substitution-free template index by its cooked value.
|
|
291
|
+
|
|
292
|
+
### `eslint-no-redeclare`
|
|
293
|
+
|
|
294
|
+
Flags each definition after the first in the same scope (`binds.redefines`); with builtinGlobals, definitions of a configured or `/* global */`-declared global (`binds.builtin`). Inside `/* global */` comments it reports per item (M12a eslintDirective parse): an item naming a builtin/configured global, one an identifier declares in the global scope, or one an earlier global comment names.
|
|
295
|
+
|
|
296
|
+
### `eslint-no-return-assign`
|
|
297
|
+
|
|
298
|
+
Default `except-parens`: an unparenthesized assignment whose nearest statement/function/class ancestor is a `return` or an expression-bodied arrow, reported at that ancestor.
|
|
299
|
+
|
|
300
|
+
### `eslint-no-script-url`
|
|
301
|
+
|
|
302
|
+
Matches string literals and untagged, substitution-free template literals whose value starts with `javascript:` case-insensitively: cooked value, or for JSX attribute strings the raw text with HTML character references decoded. Default options of ESLint 10.11.0.
|
|
303
|
+
|
|
304
|
+
### `eslint-no-self-assign`
|
|
305
|
+
|
|
306
|
+
Covers `=`, `&&=`, `||=`, `??=` for identifiers and member chains with equal tokens, or one level deep equal objects and static property names (props: true). Destructuring follows ESLint's eachSelfAssignment: i-th array elements compared by index with holes counted, nothing after a right spread, a rest against a last spread; object properties by static key after the right object's last spread. Unrolled to 3 nested containers.
|
|
307
|
+
|
|
308
|
+
### `eslint-no-self-compare`
|
|
309
|
+
|
|
310
|
+
Operands compared by tokens, ignoring comments and parentheses around an operand (as ESTree drops them). Covers equality and relational operators.
|
|
311
|
+
|
|
312
|
+
### `eslint-no-sequences`
|
|
313
|
+
|
|
314
|
+
Default allowInParentheses: true. Exempts for-loop init/update and sequences wrapped in parentheses (doubled parentheses where the grammar already requires them, e.g. in an if condition).
|
|
315
|
+
|
|
316
|
+
### `eslint-no-setter-return`
|
|
317
|
+
|
|
318
|
+
Covers class/object `set` accessors and the `set` function of a descriptor passed to Object.defineProperty, Reflect.defineProperty, Object.defineProperties or Object.create, including an arrow setter's expression body. `Object` and `Reflect` must resolve to declared globals.
|
|
319
|
+
|
|
320
|
+
### `eslint-no-template-curly-in-string`
|
|
321
|
+
|
|
322
|
+
Value checked cooked, or for JSX attribute strings raw with HTML character references decoded.
|
|
323
|
+
|
|
324
|
+
### `eslint-no-unexpected-multiline`
|
|
325
|
+
|
|
326
|
+
Flags a line break before the `(` (or `<` of type arguments) of a call with arguments, the `[` of a computed member access, the template of a tagged template, or the first `/` of a division whose second `/` is directly followed by regex flags. Optional calls and members are skipped.
|
|
327
|
+
|
|
328
|
+
### `eslint-no-unneeded-ternary`
|
|
329
|
+
|
|
330
|
+
Fixes follow ESLint: invert the test, coerce with `!!`, or collapse; default-assignment form (`x ? x : y`) becomes `x || y`.
|
|
331
|
+
|
|
332
|
+
### `eslint-no-unsafe-finally`
|
|
333
|
+
|
|
334
|
+
A jump counts when the nearest finally lies before a function/class boundary; for unlabeled break/continue also before any enclosing loop or switch, and for a labeled jump before the labeled statement it targets.
|
|
335
|
+
|
|
336
|
+
### `eslint-no-unsafe-negation`
|
|
337
|
+
|
|
338
|
+
Relational operators (<, >, <=, >=) are only checked when enforceForOrderingRelations is enabled (off by default).
|
|
339
|
+
|
|
340
|
+
### `eslint-no-unsafe-optional-chaining`
|
|
341
|
+
|
|
342
|
+
Short-circuit propagates through parentheses, await, ||/??/&& operands, the last sequence element and ternary branches. Unsafe positions: callee, member object, tagged template, new, destructuring source, extends, for-of, non-object spread, in/instanceof, with. Arithmetic on optional chains only with disallowArithmeticOperators (off by default).
|
|
343
|
+
|
|
344
|
+
### `eslint-no-unused-expressions`
|
|
345
|
+
|
|
346
|
+
Unwraps parentheses and TS `as`/`<T>`/`!`/instantiation wrappers. Allowed: call, new, assignment, update, await, yield, import(), void, delete; directive prologue strings exempt. When ecmaVersion is at most 3 (no directive prologues), directive-shaped strings are reported too.
|
|
347
|
+
|
|
348
|
+
### `eslint-no-unused-labels`
|
|
349
|
+
|
|
350
|
+
Fix removes the label only when no comment sits between label and body, the body cannot become a directive, and removal creates no ASI hazard.
|
|
351
|
+
|
|
352
|
+
### `eslint-no-unused-private-class-members`
|
|
353
|
+
|
|
354
|
+
Uses `binds.used: false` on the private name: writes alone don't count as use for fields and methods, any reference counts for accessors. Reported at the last declaration. ESLint 10.11.0 defaults.
|
|
355
|
+
|
|
356
|
+
### `eslint-no-unused-vars`
|
|
357
|
+
|
|
358
|
+
Covers variables, parameters, caught errors, imports, types and type parameters. Reported where ESLint reports (the last write from the variable's own function, else its first definition) via `binds` and `resolves.write: "last"`; options filter on those. Also flags names matching an ignore pattern that are in fact used. An unused `/* global */` name with no declaration is reported at the name in the first comment that declares it (first three names of a comment).
|
|
359
|
+
|
|
360
|
+
### `eslint-no-useless-call`
|
|
361
|
+
|
|
362
|
+
thisArg must be token-equal (ESLint equalTokens) to the object `f` is read from, or null/undefined when `f` is not a member access.
|
|
363
|
+
|
|
364
|
+
### `eslint-no-useless-catch`
|
|
365
|
+
|
|
366
|
+
Catch whose first statement rethrows its own identifier parameter: reports the whole try statement when there is no finally, else just the catch clause.
|
|
367
|
+
|
|
368
|
+
### `eslint-no-useless-computed-key`
|
|
369
|
+
|
|
370
|
+
Default enforceForClassMembers: true. Object-literal exemptions for `__proto__`/`constructor`/`prototype` by cooked value. Fix replaces with the literal unless a comment sits in the brackets.
|
|
371
|
+
|
|
372
|
+
### `eslint-no-useless-concat`
|
|
373
|
+
|
|
374
|
+
Port of ESLint no-useless-concat. Flags a `+` whose nearest operands (looking through nested `+` chains and parentheses) are both string or template literals, and only when the right literal starts on the line where the left one ends (multi-line concatenation is allowed).
|
|
375
|
+
|
|
376
|
+
### `eslint-no-useless-constructor`
|
|
377
|
+
|
|
378
|
+
Flags an empty constructor only in a class without `extends`; otherwise a constructor whose body is only a `super(...)` call passing its parameters through unchanged. Pass-through follows ESLint's isPassingThrough for any number of simple parameters: each parameter and super argument matched by index and name, including a spread of a rest parameter, or a single spread of `arguments`.
|
|
379
|
+
|
|
380
|
+
### `eslint-one-var`
|
|
381
|
+
|
|
382
|
+
Port of ESLint one-var with default options (`always`). var scope is the enclosing function, let/const scope the enclosing block. `using` declarations are not modelled (grammar gap).
|
|
383
|
+
|
|
384
|
+
### `eslint-operator-assignment`
|
|
385
|
+
|
|
386
|
+
Default option `always`. References compared like ESLint's isSameReference without static computed keys; the operator's left operand is checked first, then the right for commutative operators. ESLint's canBeFixed gates the fix.
|
|
387
|
+
|
|
388
|
+
### `eslint-prefer-destructuring`
|
|
389
|
+
|
|
390
|
+
Checks declarations and assignments, array and object. Object destructuring only where the target name equals the property name. Array: plain (non-optional) access with an integer literal index (Number.isInteger); super and #private accesses skipped. Fix (object declarations only) as ESLint: only when no comment lies outside the object.
|
|
391
|
+
|
|
392
|
+
### `eslint-prefer-exponentiation-operator`
|
|
393
|
+
|
|
394
|
+
Flags global `Math.pow` including `globalThis.Math.pow`, computed and optional-chain forms; Math/globalThis resolved via scope. Fix split per parenthesization of base, exponent and result; cases ESLint fixes using token-adjacency spacing or a leading `;` get no fix.
|
|
395
|
+
|
|
396
|
+
### `eslint-prefer-numeric-literals`
|
|
397
|
+
|
|
398
|
+
Flags `parseInt` / `Number.parseInt` (global, scope-resolved) with a string literal and a radix literal of 2, 8 or 16; fixes to 0b/0o/0x only when the string is a valid literal body.
|
|
399
|
+
|
|
400
|
+
### `eslint-prefer-object-has-own`
|
|
401
|
+
|
|
402
|
+
Flags `Object.prototype.hasOwnProperty.call`, `Object.hasOwnProperty.call` and `({}).hasOwnProperty.call` when Object is the global. The `({})` form has no Object token to resolve and keeps an approximate scope graph.
|
|
403
|
+
|
|
404
|
+
### `eslint-prefer-spread`
|
|
405
|
+
|
|
406
|
+
Flags `f.apply(thisArg, args)` with a non-literal argument list when thisArg is null/undefined for a plain function, or has the same tokens as the applied method's object (ESLint equalTokens).
|
|
407
|
+
|
|
408
|
+
### `eslint-prefer-template`
|
|
409
|
+
|
|
410
|
+
Reports the outermost `+` concatenation chain that mixes a string literal with a non-string operand.
|
|
411
|
+
|
|
412
|
+
### `eslint-radix`
|
|
413
|
+
|
|
414
|
+
ESLint 10.11.0 radix, default options. Flags global parseInt / Number.parseInt with no arguments, no radix, or a radix that is not an integer 2..36 (any literal not such a Number, signed Number literals likewise, or the global `undefined`). The deprecated 'always'/'as-needed' option changes nothing.
|
|
415
|
+
|
|
416
|
+
### `eslint-require-await`
|
|
417
|
+
|
|
418
|
+
Reports an async non-generator function with a non-empty body that contains no await expression, for-await or await-using of its own.
|
|
419
|
+
|
|
420
|
+
### `eslint-sort-imports`
|
|
421
|
+
|
|
422
|
+
Each import compared with the previous declaration: member-syntax group order (none, all, multiple, single), then first local name within a group; specifiers sorted by local name (first unsorted one reported). No fix (ESLint's fix sorts a list).
|
|
423
|
+
|
|
424
|
+
### `eslint-sort-keys`
|
|
425
|
+
|
|
426
|
+
Default options: asc, case-sensitive, minKeys 2. Compares each key with the previous named key; a spread resets. Static key names; a computed identifier key compared by its name.
|
|
427
|
+
|
|
428
|
+
### `eslint-sort-vars`
|
|
429
|
+
|
|
430
|
+
Flags an identifier declarator when an earlier identifier declarator of the same declaration sorts after it. ESLint's sorting autofix is not reproduced.
|
|
431
|
+
|
|
432
|
+
### `eslint-strict`
|
|
433
|
+
|
|
434
|
+
Default `safe` mode: `global` for CommonJS or globalReturn, else `function`. Each check gated on the case's languageOptions as ESLint picks the mode: module code reports every directive as 'module'; impliedStrict (outside modules) as 'implied'.
|
|
435
|
+
|
|
436
|
+
### `eslint-use-isnan`
|
|
437
|
+
|
|
438
|
+
ESLint 10.11.0 use-isnan defaults: enforceForSwitchCase true, enforceForIndexOf false. NaN and Number are scope-resolved so a shadowing binding does not fire.
|
|
439
|
+
|
|
440
|
+
### `eslint-valid-typeof`
|
|
441
|
+
|
|
442
|
+
Default requireStringLiterals false. Also flags the global `undefined` (scope-resolved) compared with typeof.
|
|
443
|
+
|
|
444
|
+
### `eslint-vars-on-top`
|
|
445
|
+
|
|
446
|
+
A var must sit directly in a program, function body or static block, preceded only by declarations (after a leading run of directives and imports, except in static blocks).
|
|
447
|
+
|
|
448
|
+
### `eslint-yoda`
|
|
449
|
+
|
|
450
|
+
Options ["never", {"default": true}] i.e. exceptRange false. Literals: string, number/bigint, boolean, null, regex, substitution-free template, negated number; parentheses transparent.
|
|
@@ -9,9 +9,13 @@ under the pack's licence expression, `Apache-2.0 AND MIT`, as `REUSE.toml` annot
|
|
|
9
9
|
Apache License 2.0 (the pack's `LICENSE`): the recorder `upstream/generate.mjs`, and the `*.expected.json` recordings
|
|
10
10
|
it writes by running ESLint.
|
|
11
11
|
|
|
12
|
-
Each copied file is the `code` of one of the rule's own `valid` or `invalid` RuleTester cases, verbatim, written
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
Each copied file is the `code` of one of the rule's own `valid` or `invalid` RuleTester cases, verbatim, written by
|
|
13
|
+
`upstream/generate.mjs`: cases with a custom parser or type information, and performance stress cases over 64 KiB, are
|
|
14
|
+
left out, and identical code in the same language is written once. The port readiness gates' recorder (`npm run port-readiness:record`)
|
|
15
|
+
reuses those files and writes every other case the gates read, the same verbatim `code`, as
|
|
16
|
+
`upstream/eslint/fixtures/<rule>/<sha256 prefix>.<ext>`. Its recording (`recording.json`, which
|
|
17
|
+
`upstream/eslint/recording.lock` names and a GitHub release holds) also holds the `code` of every RuleTester case of
|
|
18
|
+
ESLint's rule tests, verbatim, as the words `not-overfit` reads.
|
|
15
19
|
|
|
16
20
|
Paths are relative to the pack directory, `packs/javascript/`.
|
|
17
21
|
|
|
@@ -6971,6 +6975,10 @@ Paths are relative to the pack directory, `packs/javascript/`.
|
|
|
6971
6975
|
| `upstream/eslint/fixtures/no-unexpected-multiline/052.js` | `tests/lib/rules/no-unexpected-multiline.js` | derived |
|
|
6972
6976
|
| `upstream/eslint/fixtures/no-unexpected-multiline/053.js` | `tests/lib/rules/no-unexpected-multiline.js` | derived |
|
|
6973
6977
|
| `upstream/eslint/fixtures/no-unexpected-multiline/054.js` | `tests/lib/rules/no-unexpected-multiline.js` | derived |
|
|
6978
|
+
| `upstream/eslint/fixtures/no-unexpected-multiline/09012da2448d.ts` | `tests/lib/rules/no-unexpected-multiline.js` | derived |
|
|
6979
|
+
| `upstream/eslint/fixtures/no-unexpected-multiline/16c56cd7a81e.ts` | `tests/lib/rules/no-unexpected-multiline.js` | derived |
|
|
6980
|
+
| `upstream/eslint/fixtures/no-unexpected-multiline/76ed1f1f9f52.ts` | `tests/lib/rules/no-unexpected-multiline.js` | derived |
|
|
6981
|
+
| `upstream/eslint/fixtures/no-unexpected-multiline/b2f0d5ba988b.ts` | `tests/lib/rules/no-unexpected-multiline.js` | derived |
|
|
6974
6982
|
| `upstream/eslint/fixtures/no-unneeded-ternary/001.js` | `tests/lib/rules/no-unneeded-ternary.js` | derived |
|
|
6975
6983
|
| `upstream/eslint/fixtures/no-unneeded-ternary/002.js` | `tests/lib/rules/no-unneeded-ternary.js` | derived |
|
|
6976
6984
|
| `upstream/eslint/fixtures/no-unneeded-ternary/003.js` | `tests/lib/rules/no-unneeded-ternary.js` | derived |
|
|
@@ -7011,6 +7019,8 @@ Paths are relative to the pack directory, `packs/javascript/`.
|
|
|
7011
7019
|
| `upstream/eslint/fixtures/no-unneeded-ternary/038.js` | `tests/lib/rules/no-unneeded-ternary.js` | derived |
|
|
7012
7020
|
| `upstream/eslint/fixtures/no-unneeded-ternary/039.js` | `tests/lib/rules/no-unneeded-ternary.js` | derived |
|
|
7013
7021
|
| `upstream/eslint/fixtures/no-unneeded-ternary/040.js` | `tests/lib/rules/no-unneeded-ternary.js` | derived |
|
|
7022
|
+
| `upstream/eslint/fixtures/no-unneeded-ternary/3f6b9d3d2fc1.ts` | `tests/lib/rules/no-unneeded-ternary.js` | derived |
|
|
7023
|
+
| `upstream/eslint/fixtures/no-unneeded-ternary/b4f090f8516b.ts` | `tests/lib/rules/no-unneeded-ternary.js` | derived |
|
|
7014
7024
|
| `upstream/eslint/fixtures/no-unsafe-finally/001.js` | `tests/lib/rules/no-unsafe-finally.js` | derived |
|
|
7015
7025
|
| `upstream/eslint/fixtures/no-unsafe-finally/002.js` | `tests/lib/rules/no-unsafe-finally.js` | derived |
|
|
7016
7026
|
| `upstream/eslint/fixtures/no-unsafe-finally/003.js` | `tests/lib/rules/no-unsafe-finally.js` | derived |
|
|
@@ -8107,6 +8117,7 @@ Paths are relative to the pack directory, `packs/javascript/`.
|
|
|
8107
8117
|
| `upstream/eslint/fixtures/no-useless-constructor/055.ts` | `tests/lib/rules/no-useless-constructor.js` | derived |
|
|
8108
8118
|
| `upstream/eslint/fixtures/no-useless-constructor/056.ts` | `tests/lib/rules/no-useless-constructor.js` | derived |
|
|
8109
8119
|
| `upstream/eslint/fixtures/no-useless-constructor/057.ts` | `tests/lib/rules/no-useless-constructor.js` | derived |
|
|
8120
|
+
| `upstream/eslint/fixtures/no-useless-constructor/4239427f184a.ts` | `tests/lib/rules/no-useless-constructor.js` | derived |
|
|
8110
8121
|
| `upstream/eslint/fixtures/no-useless-rename/001.js` | `tests/lib/rules/no-useless-rename.js` | derived |
|
|
8111
8122
|
| `upstream/eslint/fixtures/no-useless-rename/002.js` | `tests/lib/rules/no-useless-rename.js` | derived |
|
|
8112
8123
|
| `upstream/eslint/fixtures/no-useless-rename/003.js` | `tests/lib/rules/no-useless-rename.js` | derived |
|
|
@@ -8335,6 +8346,7 @@ Paths are relative to the pack directory, `packs/javascript/`.
|
|
|
8335
8346
|
| `upstream/eslint/fixtures/no-var/073.ts` | `tests/lib/rules/no-var.js` | derived |
|
|
8336
8347
|
| `upstream/eslint/fixtures/no-var/074.ts` | `tests/lib/rules/no-var.js` | derived |
|
|
8337
8348
|
| `upstream/eslint/fixtures/no-var/075.ts` | `tests/lib/rules/no-var.js` | derived |
|
|
8349
|
+
| `upstream/eslint/fixtures/no-var/b278601439f1.ts` | `tests/lib/rules/no-var.js` | derived |
|
|
8338
8350
|
| `upstream/eslint/fixtures/no-void/001.js` | `tests/lib/rules/no-void.js` | derived |
|
|
8339
8351
|
| `upstream/eslint/fixtures/no-void/002.js` | `tests/lib/rules/no-void.js` | derived |
|
|
8340
8352
|
| `upstream/eslint/fixtures/no-void/003.js` | `tests/lib/rules/no-void.js` | derived |
|
|
@@ -9131,6 +9143,9 @@ Paths are relative to the pack directory, `packs/javascript/`.
|
|
|
9131
9143
|
| `upstream/eslint/fixtures/prefer-exponentiation-operator/190.js` | `tests/lib/rules/prefer-exponentiation-operator.js` | derived |
|
|
9132
9144
|
| `upstream/eslint/fixtures/prefer-exponentiation-operator/191.js` | `tests/lib/rules/prefer-exponentiation-operator.js` | derived |
|
|
9133
9145
|
| `upstream/eslint/fixtures/prefer-exponentiation-operator/192.js` | `tests/lib/rules/prefer-exponentiation-operator.js` | derived |
|
|
9146
|
+
| `upstream/eslint/fixtures/prefer-exponentiation-operator/09e6366eecac.ts` | `tests/lib/rules/prefer-exponentiation-operator.js` | derived |
|
|
9147
|
+
| `upstream/eslint/fixtures/prefer-exponentiation-operator/608ea709a0a0.ts` | `tests/lib/rules/prefer-exponentiation-operator.js` | derived |
|
|
9148
|
+
| `upstream/eslint/fixtures/prefer-exponentiation-operator/f3ae74ea3df1.ts` | `tests/lib/rules/prefer-exponentiation-operator.js` | derived |
|
|
9134
9149
|
| `upstream/eslint/fixtures/prefer-numeric-literals/001.js` | `tests/lib/rules/prefer-numeric-literals.js` | derived |
|
|
9135
9150
|
| `upstream/eslint/fixtures/prefer-numeric-literals/002.js` | `tests/lib/rules/prefer-numeric-literals.js` | derived |
|
|
9136
9151
|
| `upstream/eslint/fixtures/prefer-numeric-literals/003.js` | `tests/lib/rules/prefer-numeric-literals.js` | derived |
|
|
@@ -9436,6 +9451,7 @@ Paths are relative to the pack directory, `packs/javascript/`.
|
|
|
9436
9451
|
| `upstream/eslint/fixtures/prefer-template/085.js` | `tests/lib/rules/prefer-template.js` | derived |
|
|
9437
9452
|
| `upstream/eslint/fixtures/prefer-template/086.js` | `tests/lib/rules/prefer-template.js` | derived |
|
|
9438
9453
|
| `upstream/eslint/fixtures/prefer-template/087.js` | `tests/lib/rules/prefer-template.js` | derived |
|
|
9454
|
+
| `upstream/eslint/fixtures/prefer-template/d6a8df525147.js` | `tests/lib/rules/prefer-template.js` | derived |
|
|
9439
9455
|
| `upstream/eslint/fixtures/radix/001.js` | `tests/lib/rules/radix.js` | derived |
|
|
9440
9456
|
| `upstream/eslint/fixtures/radix/002.js` | `tests/lib/rules/radix.js` | derived |
|
|
9441
9457
|
| `upstream/eslint/fixtures/radix/003.js` | `tests/lib/rules/radix.js` | derived |
|
|
@@ -9553,6 +9569,8 @@ Paths are relative to the pack directory, `packs/javascript/`.
|
|
|
9553
9569
|
| `upstream/eslint/fixtures/require-await/037.js` | `tests/lib/rules/require-await.js` | derived |
|
|
9554
9570
|
| `upstream/eslint/fixtures/require-await/038.js` | `tests/lib/rules/require-await.js` | derived |
|
|
9555
9571
|
| `upstream/eslint/fixtures/require-await/039.js` | `tests/lib/rules/require-await.js` | derived |
|
|
9572
|
+
| `upstream/eslint/fixtures/require-await/5f9c9ff60882.ts` | `tests/lib/rules/require-await.js` | derived |
|
|
9573
|
+
| `upstream/eslint/fixtures/require-await/d7f53e0b28cf.ts` | `tests/lib/rules/require-await.js` | derived |
|
|
9556
9574
|
| `upstream/eslint/fixtures/require-yield/001.js` | `tests/lib/rules/require-yield.js` | derived |
|
|
9557
9575
|
| `upstream/eslint/fixtures/require-yield/002.js` | `tests/lib/rules/require-yield.js` | derived |
|
|
9558
9576
|
| `upstream/eslint/fixtures/require-yield/003.js` | `tests/lib/rules/require-yield.js` | derived |
|
|
@@ -10361,3 +10379,10 @@ Paths are relative to the pack directory, `packs/javascript/`.
|
|
|
10361
10379
|
| `upstream/eslint/fixtures/yoda/144.js` | `tests/lib/rules/yoda.js` | derived |
|
|
10362
10380
|
| `upstream/eslint/fixtures/yoda/145.js` | `tests/lib/rules/yoda.js` | derived |
|
|
10363
10381
|
| `upstream/eslint/fixtures/yoda/146.js` | `tests/lib/rules/yoda.js` | derived |
|
|
10382
|
+
|
|
10383
|
+
> `recording.json` is a port readiness recording, and no file of this pack, so it is recorded here rather than in the
|
|
10384
|
+
> table above: the tool-pack's `recording.lock` names it and a GitHub release holds the bytes (docs/port-readiness.md).
|
|
10385
|
+
> It carries excerpts of this upstream's tests (`tests/lib/rules/*.js`: the `code` of each RuleTester case),
|
|
10386
|
+
> redistributed under the licence above, together with Rerail's Apache-2.0; the LICENSE beside this file is this
|
|
10387
|
+
> upstream's own, at the pinned commit.
|
|
10388
|
+
|
|
@@ -7,8 +7,12 @@ The files listed below contain material copied from eslint-plugin-unicorn and re
|
|
|
7
7
|
licence expression, `Apache-2.0 AND MIT`, as `REUSE.toml` annotates them. The recorder `upstream/eslint-plugin-unicorn/generate.mjs` and
|
|
8
8
|
the `fixtures.expected.json` recording it writes by running the plugin are Rerail's, under the Apache License 2.0 (the pack's `LICENSE`).
|
|
9
9
|
|
|
10
|
-
Each copied file is the `code` of one of the rule's own `valid` or `invalid` test cases, verbatim, written by the
|
|
11
|
-
cases for another parser or file type are left out, and identical cases are written once.
|
|
10
|
+
Each copied file is the `code` of one of the rule's own `valid` or `invalid` test cases, verbatim, written by the
|
|
11
|
+
recorder: cases for another parser or file type are left out, and identical cases are written once. The port readiness gates'
|
|
12
|
+
recorder (`npm run port-readiness:record`) reuses those files and writes every other case the gates read, the same verbatim
|
|
13
|
+
`code`, as `upstream/eslint-plugin-unicorn/fixtures/<rule>/<sha256 prefix>.<ext>`. Its recording (`recording.json`,
|
|
14
|
+
which `upstream/eslint-plugin-unicorn/recording.lock` names and a GitHub release holds) also holds the `code` of every
|
|
15
|
+
test case of the plugin's rule tests, verbatim, as the words `not-overfit` reads.
|
|
12
16
|
|
|
13
17
|
Paths are relative to the pack directory, `packs/javascript/`.
|
|
14
18
|
|
|
@@ -113,6 +117,7 @@ Paths are relative to the pack directory, `packs/javascript/`.
|
|
|
113
117
|
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/097/test/foo/fooBar.testUtils.js` | `test/filename-case.js` | derived |
|
|
114
118
|
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/098/test/foo/.testUtils.js` | `test/filename-case.js` | derived |
|
|
115
119
|
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/099/test/foo/foo_bar.Test.js` | `test/filename-case.js` | derived |
|
|
120
|
+
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/0bc018802648.js` | `test/filename-case.js` | derived |
|
|
116
121
|
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/100/test/foo/foo_bar.Test_Utils.js` | `test/filename-case.js` | derived |
|
|
117
122
|
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/101/test/foo/.Test_Utils.js` | `test/filename-case.js` | derived |
|
|
118
123
|
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/102/test/foo/foo-bar.Test.js` | `test/filename-case.js` | derived |
|
|
@@ -124,6 +129,7 @@ Paths are relative to the pack directory, `packs/javascript/`.
|
|
|
124
129
|
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/108/src/foo-bar/file.js` | `test/filename-case.js` | derived |
|
|
125
130
|
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/109/src/$userId/page.js` | `test/filename-case.js` | derived |
|
|
126
131
|
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/110/src/FooBar/file.js` | `test/filename-case.js` | derived |
|
|
132
|
+
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/110d8c7ba808.vue` | `test/filename-case.js` | derived |
|
|
127
133
|
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/111/src/meta/BadName.js` | `test/filename-case.js` | derived |
|
|
128
134
|
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/112/work/Src/fooBar.js` | `test/filename-case.js` | derived |
|
|
129
135
|
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/113/src/foo/foo_bar.js` | `test/filename-case.js` | derived |
|
|
@@ -133,6 +139,7 @@ Paths are relative to the pack directory, `packs/javascript/`.
|
|
|
133
139
|
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/117/src/foo/Article.ts` | `test/filename-case.js` | derived |
|
|
134
140
|
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/118/Test/Foo/fooBar.js` | `test/filename-case.js` | derived |
|
|
135
141
|
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/119/Test/Foo/foo_bar.test.js` | `test/filename-case.js` | derived |
|
|
142
|
+
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/11d9c8e15dc7.vue` | `test/filename-case.js` | derived |
|
|
136
143
|
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/120/Test/Foo/foo-bar.test-utils.js` | `test/filename-case.js` | derived |
|
|
137
144
|
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/121/Src/Foo/PageFAQ.js` | `test/filename-case.js` | derived |
|
|
138
145
|
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/122/Src/Foo/FAQ-Page.js` | `test/filename-case.js` | derived |
|
|
@@ -172,6 +179,29 @@ Paths are relative to the pack directory, `packs/javascript/`.
|
|
|
172
179
|
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/156/src/foo-js/.spec.js` | `test/filename-case.js` | derived |
|
|
173
180
|
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/157/foo.SPEC.js` | `test/filename-case.js` | derived |
|
|
174
181
|
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/158/.SPEC.js` | `test/filename-case.js` | derived |
|
|
182
|
+
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/2d26e87a0a23.js` | `test/filename-case.js` | derived |
|
|
183
|
+
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/33f30d1bf742.js` | `test/filename-case.js` | derived |
|
|
184
|
+
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/39b635d302fe.vue` | `test/filename-case.js` | derived |
|
|
185
|
+
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/3e9dd61f8fa5.vue` | `test/filename-case.js` | derived |
|
|
186
|
+
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/437dfa0cae52.js` | `test/filename-case.js` | derived |
|
|
187
|
+
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/450fdf6100cf.js` | `test/filename-case.js` | derived |
|
|
188
|
+
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/4ebfa70f8a0b.vue` | `test/filename-case.js` | derived |
|
|
189
|
+
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/53fba3fcf7dd.vue` | `test/filename-case.js` | derived |
|
|
190
|
+
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/602748334ecf.vue` | `test/filename-case.js` | derived |
|
|
191
|
+
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/603fe13a0b05` | `test/filename-case.js` | derived |
|
|
192
|
+
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/60588a1a1ca8.mjs` | `test/filename-case.js` | derived |
|
|
193
|
+
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/72c9766d8470.js` | `test/filename-case.js` | derived |
|
|
194
|
+
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/8bb73935d039.js` | `test/filename-case.js` | derived |
|
|
195
|
+
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/8c46ea638bb7.tsx` | `test/filename-case.js` | derived |
|
|
196
|
+
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/8e49ed877feb.vue` | `test/filename-case.js` | derived |
|
|
197
|
+
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/97a4a593102b` | `test/filename-case.js` | derived |
|
|
198
|
+
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/a7e0a6633b8a.js` | `test/filename-case.js` | derived |
|
|
199
|
+
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/b261ff7fac00.js` | `test/filename-case.js` | derived |
|
|
200
|
+
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/b66dfd152690.js` | `test/filename-case.js` | derived |
|
|
201
|
+
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/b69aa47eecea.vue` | `test/filename-case.js` | derived |
|
|
202
|
+
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/bb9f2aa9a984.js` | `test/filename-case.js` | derived |
|
|
203
|
+
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/bf6345e9bb57.js` | `test/filename-case.js` | derived |
|
|
204
|
+
| `upstream/eslint-plugin-unicorn/fixtures/filename-case/c125bff6c234.js` | `test/filename-case.js` | derived |
|
|
175
205
|
| `upstream/eslint-plugin-unicorn/fixtures/no-null/001.js` | `test/no-null.js` | derived |
|
|
176
206
|
| `upstream/eslint-plugin-unicorn/fixtures/no-null/002.js` | `test/no-null.js` | derived |
|
|
177
207
|
| `upstream/eslint-plugin-unicorn/fixtures/no-null/003.js` | `test/no-null.js` | derived |
|
|
@@ -295,3 +325,10 @@ Paths are relative to the pack directory, `packs/javascript/`.
|
|
|
295
325
|
| `upstream/eslint-plugin-unicorn/fixtures/prefer-node-protocol/063.ts` | `test/prefer-node-protocol.js` | derived |
|
|
296
326
|
| `upstream/eslint-plugin-unicorn/fixtures/prefer-node-protocol/064.ts` | `test/prefer-node-protocol.js` | derived |
|
|
297
327
|
| `upstream/eslint-plugin-unicorn/fixtures/prefer-node-protocol/065.ts` | `test/prefer-node-protocol.js` | derived |
|
|
328
|
+
|
|
329
|
+
> `recording.json` is a port readiness recording, and no file of this pack, so it is recorded here rather than in the
|
|
330
|
+
> table above: the tool-pack's `recording.lock` names it and a GitHub release holds the bytes (docs/port-readiness.md).
|
|
331
|
+
> It carries excerpts of this upstream's tests (`test/*.js`: the `code` of each RuleTester case), redistributed under
|
|
332
|
+
> the licence above, together with Rerail's Apache-2.0; the LICENSE beside this file is this upstream's own, at the
|
|
333
|
+
> pinned commit.
|
|
334
|
+
|