@neralabs/rerail-pack-javascript 0.1.3 → 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 +404 -0
- 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 -1
- 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 +2 -2
- 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 -1
- 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 -1
- 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 -1
- 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 -1
- package/rules/eslint-no-unused-private-class-members.json +1 -1
- 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 +2 -2
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"format":"rerail.policy/v1","id":"eslint-no-console","revision":4,"mode":"steer","description":"
|
|
1
|
+
{"format":"rerail.policy/v1","id":"eslint-no-console","revision":4,"mode":"steer","description":"Remove console calls; use a proper logger instead of leaving debug output in the code.","scope":{"include":["**/*"],"exclude":[]},"clauses":[{"id":"options","define":{"options":{"allow":{"type":"array","items":"string","nullable":true,"default":null}}}},{"id":"shared","define":{"language":"typescript","utils":{"r1":{"kind":"template_string","not":{"has":{"kind":"template_substitution"}}}}}},{"id":"console","forbid":{"ast":{"language":"typescript","rule":{"all":[{"any":[{"kind":"member_expression"},{"kind":"subscript_expression"}]},{"has":{"all":[{"any":[{"kind":"identifier"},{"kind":"parenthesized_expression"}],"resolves":{"global":["console"]}},{"not":{"follows":{"regex":"[\\s\\S]"}}}]}},{"$option":"allow","cases":{"[\"warn\"]":[{"not":{"has":{"any":[{"kind":"property_identifier","regex":{"$option":"allow","cases":{"null":"^(warn)$"},"default":{"$option":"allow","join":"|","template":"^({})$"}}},{"any":[{"kind":"string"},{"matches":"r1"}],"has":{"kind":"string_fragment","regex":{"$option":"allow","cases":{"null":"^(warn)$"},"default":{"$option":"allow","join":"|","template":"^({})$"}}}}]}}}],"[\"error\"]":[{"not":{"has":{"any":[{"kind":"property_identifier","regex":{"$option":"allow","cases":{"null":"^(warn)$"},"default":{"$option":"allow","join":"|","template":"^({})$"}}},{"any":[{"kind":"string"},{"matches":"r1"}],"has":{"kind":"string_fragment","regex":{"$option":"allow","cases":{"null":"^(warn)$"},"default":{"$option":"allow","join":"|","template":"^({})$"}}}}]}}}],"[\"log\"]":[{"not":{"has":{"any":[{"kind":"property_identifier","regex":{"$option":"allow","cases":{"null":"^(warn)$"},"default":{"$option":"allow","join":"|","template":"^({})$"}}},{"any":[{"kind":"string"},{"matches":"r1"}],"has":{"kind":"string_fragment","regex":{"$option":"allow","cases":{"null":"^(warn)$"},"default":{"$option":"allow","join":"|","template":"^({})$"}}}}]}}}],"[\"warn\",\"error\"]":[{"not":{"has":{"any":[{"kind":"property_identifier","regex":{"$option":"allow","cases":{"null":"^(warn)$"},"default":{"$option":"allow","join":"|","template":"^({})$"}}},{"any":[{"kind":"string"},{"matches":"r1"}],"has":{"kind":"string_fragment","regex":{"$option":"allow","cases":{"null":"^(warn)$"},"default":{"$option":"allow","join":"|","template":"^({})$"}}}}]}}}],"[\"warn\",\"info\"]":[{"not":{"has":{"any":[{"kind":"property_identifier","regex":{"$option":"allow","cases":{"null":"^(warn)$"},"default":{"$option":"allow","join":"|","template":"^({})$"}}},{"any":[{"kind":"string"},{"matches":"r1"}],"has":{"kind":"string_fragment","regex":{"$option":"allow","cases":{"null":"^(warn)$"},"default":{"$option":"allow","join":"|","template":"^({})$"}}}}]}}}],"[\"info\",\"log\"]":[{"not":{"has":{"any":[{"kind":"property_identifier","regex":{"$option":"allow","cases":{"null":"^(warn)$"},"default":{"$option":"allow","join":"|","template":"^({})$"}}},{"any":[{"kind":"string"},{"matches":"r1"}],"has":{"kind":"string_fragment","regex":{"$option":"allow","cases":{"null":"^(warn)$"},"default":{"$option":"allow","join":"|","template":"^({})$"}}}}]}}}],"[\"info\"]":[{"not":{"has":{"any":[{"kind":"property_identifier","regex":{"$option":"allow","cases":{"null":"^(warn)$"},"default":{"$option":"allow","join":"|","template":"^({})$"}}},{"any":[{"kind":"string"},{"matches":"r1"}],"has":{"kind":"string_fragment","regex":{"$option":"allow","cases":{"null":"^(warn)$"},"default":{"$option":"allow","join":"|","template":"^({})$"}}}}]}}}],"[\"error\",\"warn\"]":[{"not":{"has":{"any":[{"kind":"property_identifier","regex":{"$option":"allow","cases":{"null":"^(warn)$"},"default":{"$option":"allow","join":"|","template":"^({})$"}}},{"any":[{"kind":"string"},{"matches":"r1"}],"has":{"kind":"string_fragment","regex":{"$option":"allow","cases":{"null":"^(warn)$"},"default":{"$option":"allow","join":"|","template":"^({})$"}}}}]}}}],"[\"log\",\"error\"]":[{"not":{"has":{"any":[{"kind":"property_identifier","regex":{"$option":"allow","cases":{"null":"^(warn)$"},"default":{"$option":"allow","join":"|","template":"^({})$"}}},{"any":[{"kind":"string"},{"matches":"r1"}],"has":{"kind":"string_fragment","regex":{"$option":"allow","cases":{"null":"^(warn)$"},"default":{"$option":"allow","join":"|","template":"^({})$"}}}}]}}}],"[\"info\",\"log\",\"warn\"]":[{"not":{"has":{"any":[{"kind":"property_identifier","regex":{"$option":"allow","cases":{"null":"^(warn)$"},"default":{"$option":"allow","join":"|","template":"^({})$"}}},{"any":[{"kind":"string"},{"matches":"r1"}],"has":{"kind":"string_fragment","regex":{"$option":"allow","cases":{"null":"^(warn)$"},"default":{"$option":"allow","join":"|","template":"^({})$"}}}}]}}}],"[\"warn\",\"info\",\"log\"]":[{"not":{"has":{"any":[{"kind":"property_identifier","regex":{"$option":"allow","cases":{"null":"^(warn)$"},"default":{"$option":"allow","join":"|","template":"^({})$"}}},{"any":[{"kind":"string"},{"matches":"r1"}],"has":{"kind":"string_fragment","regex":{"$option":"allow","cases":{"null":"^(warn)$"},"default":{"$option":"allow","join":"|","template":"^({})$"}}}}]}}}],"[\"warn\",\"error\",\"log\"]":[{"not":{"has":{"any":[{"kind":"property_identifier","regex":{"$option":"allow","cases":{"null":"^(warn)$"},"default":{"$option":"allow","join":"|","template":"^({})$"}}},{"any":[{"kind":"string"},{"matches":"r1"}],"has":{"kind":"string_fragment","regex":{"$option":"allow","cases":{"null":"^(warn)$"},"default":{"$option":"allow","join":"|","template":"^({})$"}}}}]}}}],"[\"log\",\"error\",\"warn\"]":[{"not":{"has":{"any":[{"kind":"property_identifier","regex":{"$option":"allow","cases":{"null":"^(warn)$"},"default":{"$option":"allow","join":"|","template":"^({})$"}}},{"any":[{"kind":"string"},{"matches":"r1"}],"has":{"kind":"string_fragment","regex":{"$option":"allow","cases":{"null":"^(warn)$"},"default":{"$option":"allow","join":"|","template":"^({})$"}}}}]}}}]},"default":[],"spread":true}]}}},"violation":{"anchor":"witness.span","code":"no-console","message":{"$option":"allow","cases":{"[\"warn\"]":"Unexpected console statement. Only these console methods are allowed: warn.","[\"error\"]":"Unexpected console statement. Only these console methods are allowed: error.","[\"log\"]":"Unexpected console statement. Only these console methods are allowed: log.","[\"warn\",\"error\"]":"Unexpected console statement. Only these console methods are allowed: warn, error.","[\"warn\",\"info\"]":"Unexpected console statement. Only these console methods are allowed: warn, info.","[\"info\",\"log\"]":"Unexpected console statement. Only these console methods are allowed: info, log.","[\"info\"]":"Unexpected console statement. Only these console methods are allowed: info.","[\"error\",\"warn\"]":"Unexpected console statement. Only these console methods are allowed: error, warn.","[\"log\",\"error\"]":"Unexpected console statement. Only these console methods are allowed: log, error.","[\"info\",\"log\",\"warn\"]":"Unexpected console statement. Only these console methods are allowed: info, log, warn.","[\"warn\",\"info\",\"log\"]":"Unexpected console statement. Only these console methods are allowed: warn, info, log.","[\"warn\",\"error\",\"log\"]":"Unexpected console statement. Only these console methods are allowed: warn, error, log.","[\"log\",\"error\",\"warn\"]":"Unexpected console statement. Only these console methods are allowed: log, error, warn."},"default":"Unexpected console statement."},"suppress":{"eslint":{"rules":["no-console"]},"oxlint":{"rules":["no-console"]},"biome":{"rules":["lint/suspicious/noConsole"]}}}}]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"id": "eslint-no-continue",
|
|
4
4
|
"revision": 3,
|
|
5
5
|
"mode": "steer",
|
|
6
|
-
"description": "
|
|
6
|
+
"description": "Avoid continue statements in loops; restructure the loop with a condition instead.",
|
|
7
7
|
"scope": {
|
|
8
8
|
"include": [
|
|
9
9
|
"**/*"
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"violation": {
|
|
25
25
|
"anchor": "witness.span",
|
|
26
26
|
"code": "no-continue",
|
|
27
|
-
"message": "
|
|
27
|
+
"message": "Replace this continue with an if that wraps the rest of the loop body.",
|
|
28
28
|
"suppress": {
|
|
29
29
|
"eslint": {
|
|
30
30
|
"rules": [
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"id": "eslint-no-debugger",
|
|
4
4
|
"revision": 3,
|
|
5
5
|
"mode": "steer",
|
|
6
|
-
"description": "
|
|
6
|
+
"description": "Remove debugger statements; they pause execution whenever developer tools are open.",
|
|
7
7
|
"scope": {
|
|
8
8
|
"include": [
|
|
9
9
|
"**/*.ts",
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"id": "eslint-no-delete-var",
|
|
4
4
|
"revision": 2,
|
|
5
5
|
"mode": "steer",
|
|
6
|
-
"description": "
|
|
6
|
+
"description": "Don't use delete on a plain variable; delete only removes object properties and is a syntax error on variables in strict mode.",
|
|
7
7
|
"scope": {
|
|
8
8
|
"include": [
|
|
9
9
|
"**/*"
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"violation": {
|
|
45
45
|
"anchor": "witness.span",
|
|
46
46
|
"code": "no-delete-var",
|
|
47
|
-
"message": "
|
|
47
|
+
"message": "Remove this delete; to clear the variable, assign undefined to it instead.",
|
|
48
48
|
"suppress": {
|
|
49
49
|
"eslint": {
|
|
50
50
|
"rules": [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"format":"rerail.policy/v1","id":"eslint-no-div-regex","revision":4,"mode":"steer","description":"
|
|
1
|
+
{"format":"rerail.policy/v1","id":"eslint-no-div-regex","revision":4,"mode":"steer","description":"Avoid starting a regular expression literal with an equals sign; it reads like the division-assignment operator.","scope":{"include":["**/*"],"exclude":[]},"clauses":[{"id":"leading-equals-regex","forbid":{"ast":{"language":"typescript","rule":{"kind":"regex","regex":"^/(?<EQ>=)"}}},"violation":{"anchor":"witness.span","code":"no-div-regex","message":"Write the leading '=' as '[=]' so this regex literal can't be misread as the '/=' operator.","fix":{"template":"[=]","range":"capture.EQ"},"suppress":{"eslint":{"rules":["no-div-regex"]},"oxlint":{"rules":["no-div-regex"]},"biome":{"rules":["lint/complexity/noDivRegex"]}}}}]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"id": "eslint-no-dupe-keys",
|
|
4
4
|
"revision": 7,
|
|
5
5
|
"mode": "steer",
|
|
6
|
-
"description": "
|
|
6
|
+
"description": "Don't repeat a key in a JavaScript object literal; the later value silently overwrites the earlier one.",
|
|
7
7
|
"scope": {
|
|
8
8
|
"include": [
|
|
9
9
|
"**/*.js",
|
|
@@ -267,7 +267,7 @@
|
|
|
267
267
|
"violation": {
|
|
268
268
|
"anchor": "capture.K",
|
|
269
269
|
"code": "no-dupe-keys",
|
|
270
|
-
"message": "
|
|
270
|
+
"message": "Remove or rename one of the duplicate '$KT' keys; the later value silently overwrites the earlier one.",
|
|
271
271
|
"suppress": {
|
|
272
272
|
"eslint": {
|
|
273
273
|
"rules": [
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"id": "eslint-no-duplicate-case",
|
|
4
4
|
"revision": 4,
|
|
5
5
|
"mode": "steer",
|
|
6
|
-
"description": "
|
|
6
|
+
"description": "Don't repeat the same case test in a switch statement; the duplicate case can never be reached.",
|
|
7
7
|
"scope": {
|
|
8
8
|
"include": [
|
|
9
9
|
"**/*.ts",
|
|
@@ -136,7 +136,7 @@
|
|
|
136
136
|
"violation": {
|
|
137
137
|
"anchor": "witness.span",
|
|
138
138
|
"code": "no-duplicate-case",
|
|
139
|
-
"message": "
|
|
139
|
+
"message": "Remove this case or change its test; an earlier case with the same test always matches first.",
|
|
140
140
|
"suppress": {
|
|
141
141
|
"eslint": {
|
|
142
142
|
"rules": [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"format":"rerail.policy/v1","id":"eslint-no-empty-pattern","revision":4,"mode":"steer","description":"
|
|
1
|
+
{"format":"rerail.policy/v1","id":"eslint-no-empty-pattern","revision":4,"mode":"steer","description":"Avoid empty object and array destructuring patterns; they bind nothing and usually mean a default value was intended.","scope":{"include":["**/*"],"exclude":[]},"clauses":[{"id":"options","define":{"options":{"allowObjectPatternsAsParameters":{"type":"boolean","nullable":true,"default":null}}}},{"id":"shared","define":{"language":"typescript","utils":{"r1":{"has":{"all":[{"not":{"kind":"comment"}},{"not":{"regex":"^[{}]$"}}]}},"r2":{"kind":"object_pattern","not":{"matches":"r1"}}}}},{"id":"empty-object-pattern","forbid":{"ast":{"language":"typescript","rule":{"$option":"allowObjectPatternsAsParameters","cases":{"true":{"all":[{"matches":"r2"},{"not":{"inside":{"stopBy":"neighbor","all":[{"any":[{"kind":"required_parameter"},{"kind":"optional_parameter"}]},{"any":[{"not":{"has":{"regex":"^=$"}}},{"has":{"kind":"object","not":{"matches":"r1"}}}]}]}}}]}},"default":{"matches":"r2"}}}},"violation":{"anchor":"witness.span","code":"no-empty-pattern","message":"Replace this empty object pattern with a binding or a default value, e.g. {a = {}} instead of {a: {}}.","suppress":{"eslint":{"rules":["no-empty-pattern"]},"oxlint":{"rules":["no-empty-pattern"]},"biome":{"rules":["lint/correctness/noEmptyPattern"]}}}},{"id":"empty-array-pattern","forbid":{"ast":{"language":"typescript","rule":{"kind":"array_pattern","not":{"has":{"all":[{"not":{"kind":"comment"}},{"not":{"regex":"^[\\[\\]]$"}}]}}}}},"violation":{"anchor":"witness.span","code":"no-empty-pattern","message":"Replace this empty array pattern with a binding or a default value, e.g. {a = []} instead of {a: []}.","suppress":{"eslint":{"rules":["no-empty-pattern"]},"oxlint":{"rules":["no-empty-pattern"]},"biome":{"rules":["lint/correctness/noEmptyPattern"]}}}}]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"id": "eslint-no-empty-static-block",
|
|
4
4
|
"revision": 3,
|
|
5
5
|
"mode": "steer",
|
|
6
|
-
"description": "
|
|
6
|
+
"description": "Remove empty class static blocks, or add a comment explaining why one is empty.",
|
|
7
7
|
"scope": {
|
|
8
8
|
"include": [
|
|
9
9
|
"**/*"
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"violation": {
|
|
41
41
|
"anchor": "witness.span",
|
|
42
42
|
"code": "no-empty-static-block",
|
|
43
|
-
"message": "
|
|
43
|
+
"message": "Remove this empty static block, or add a comment saying why it is empty.",
|
|
44
44
|
"suppress": {
|
|
45
45
|
"eslint": {
|
|
46
46
|
"rules": [
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"id": "eslint-no-empty",
|
|
4
4
|
"revision": 4,
|
|
5
5
|
"mode": "steer",
|
|
6
|
-
"description": "
|
|
6
|
+
"description": "Avoid empty blocks and switch statements in JavaScript; add the missing code or a comment explaining why it is empty.",
|
|
7
7
|
"scope": {
|
|
8
8
|
"include": [
|
|
9
9
|
"**/*.js",
|
|
@@ -119,7 +119,7 @@
|
|
|
119
119
|
"violation": {
|
|
120
120
|
"anchor": "witness.span",
|
|
121
121
|
"code": "no-empty",
|
|
122
|
-
"message": "
|
|
122
|
+
"message": "Add the missing code to this empty block, or add a comment saying why it is intentionally empty.",
|
|
123
123
|
"suppress": {
|
|
124
124
|
"eslint": {
|
|
125
125
|
"rules": [
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"id": "eslint-no-eq-null",
|
|
4
4
|
"revision": 3,
|
|
5
5
|
"mode": "steer",
|
|
6
|
-
"description": "
|
|
6
|
+
"description": "Use strict equality when comparing with null; loose equality also matches undefined.",
|
|
7
7
|
"scope": {
|
|
8
8
|
"include": [
|
|
9
9
|
"**/*"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"format":"rerail.policy/v1","id":"eslint-no-extend-native","revision":4,"mode":"steer","description":"
|
|
1
|
+
{"format":"rerail.policy/v1","id":"eslint-no-extend-native","revision":4,"mode":"steer","description":"Don't add properties to built-in prototypes such as Array or Object; it can clash with other code and future language features.","scope":{"include":["**/*"],"exclude":[]},"clauses":[{"id":"options","define":{"options":{"exceptions":{"type":"array","items":"string","nullable":true,"default":null}}}},{"id":"shared","define":{"language":"typescript","utils":{"r1":{"has":{"any":[{"kind":"string"},{"matches":"r2"}],"has":{"kind":"string_fragment","regex":"^prototype$"}}},"r2":{"kind":"template_string","not":{"has":{"kind":"template_substitution"}}},"r3":{"has":{"kind":"property_identifier","regex":"^prototype$"}}}}},{"id":"prototype-assignment","forbid":{"ast":{"language":"typescript","languageOptions":{},"rule":{"all":[{"any":[{"kind":"assignment_expression"},{"kind":"augmented_assignment_expression"}]},{"has":{"all":[{"not":{"follows":{"regex":"[\\s\\S]"}}},{"any":[{"kind":"member_expression"},{"kind":"subscript_expression"}]},{"has":{"all":[{"not":{"follows":{"regex":"[\\s\\S]"}}},{"matches":"prototype"}]}}]}}]},"utils":{"prototype":{"any":[{"any":[{"kind":"member_expression","all":[{"matches":"r3"},{"has":{"all":[{"matches":"builtin"},{"not":{"follows":{"regex":"[\\s\\S]"}}}]}}]},{"kind":"subscript_expression","all":[{"matches":"r1"},{"has":{"all":[{"matches":"builtin"},{"not":{"follows":{"regex":"[\\s\\S]"}}}]}}]}]},{"kind":"parenthesized_expression","has":{"matches":"prototype"}}]},"builtin":{"any":[{"kind":"identifier","pattern":"$G","resolves":{"global":["Array","Boolean","Date","Error","EvalError","Function","Infinity","Math","NaN","Number",{"$option":"exceptions","cases":{"[\"Object\"]":[]},"default":["Object"],"spread":true},"RangeError","ReferenceError","RegExp","String","SyntaxError","TypeError","URIError","JSON","ArrayBuffer","DataView","Float32Array","Float64Array","Int16Array","Int32Array","Int8Array","Intl","Map","Promise","Proxy","Reflect","Set","Symbol","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray","WeakMap","WeakSet","Atomics","SharedArrayBuffer","BigInt","BigInt64Array","BigUint64Array","AggregateError","FinalizationRegistry","WeakRef","Float16Array","Iterator","AsyncDisposableStack","DisposableStack","SuppressedError","Temporal"],"directives":"eslint","scriptDeclarations":true}},{"kind":"parenthesized_expression","has":{"matches":"builtin"}}]}}}},"violation":{"anchor":"witness.span","code":"no-extend-native","message":"Move this addition to $G.prototype into a standalone helper function or a subclass.","suppress":{"eslint":{"rules":["no-extend-native"]},"oxlint":{"rules":["no-extend-native"]},"biome":{"rules":["lint/nursery/noExtendNative"]}}}},{"id":"define-property","forbid":{"ast":{"language":"typescript","languageOptions":{},"rule":{"kind":"call_expression","all":[{"has":{"matches":"define-property"}},{"has":{"kind":"arguments","has":{"all":[{"matches":"arg"},{"not":{"follows":{"regex":"^,$","stopBy":"end"}}},{"matches":"prototype"}]}}}]},"utils":{"prototype":{"any":[{"any":[{"kind":"member_expression","all":[{"matches":"r3"},{"has":{"all":[{"matches":"builtin"},{"not":{"follows":{"regex":"[\\s\\S]"}}}]}}]},{"kind":"subscript_expression","all":[{"matches":"r1"},{"has":{"all":[{"matches":"builtin"},{"not":{"follows":{"regex":"[\\s\\S]"}}}]}}]}]},{"kind":"parenthesized_expression","has":{"matches":"prototype"}}]},"define-property":{"any":[{"any":[{"kind":"member_expression","all":[{"has":{"kind":"property_identifier","regex":"^definePropert(?:y|ies)$"}},{"has":{"matches":"object-id"}}]},{"kind":"subscript_expression","all":[{"has":{"any":[{"kind":"string"},{"matches":"r2"}],"has":{"kind":"string_fragment","regex":"^definePropert(?:y|ies)$"}}},{"has":{"matches":"object-id"}}]}]},{"kind":"parenthesized_expression","has":{"matches":"define-property"}}]},"object-id":{"any":[{"kind":"identifier","regex":"^Object$"},{"kind":"parenthesized_expression","has":{"matches":"object-id"}}]},"arg":{"not":{"any":[{"regex":"^[(),]$"},{"kind":"comment"}]}},"builtin":{"any":[{"kind":"identifier","pattern":"$G","resolves":{"global":["Array","Boolean","Date","Error","EvalError","Function","Infinity","Math","NaN","Number",{"$option":"exceptions","cases":{"[\"Object\"]":[]},"default":["Object"],"spread":true},"RangeError","ReferenceError","RegExp","String","SyntaxError","TypeError","URIError","JSON","ArrayBuffer","DataView","Float32Array","Float64Array","Int16Array","Int32Array","Int8Array","Intl","Map","Promise","Proxy","Reflect","Set","Symbol","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray","WeakMap","WeakSet","Atomics","SharedArrayBuffer","BigInt","BigInt64Array","BigUint64Array","AggregateError","FinalizationRegistry","WeakRef","Float16Array","Iterator","AsyncDisposableStack","DisposableStack","SuppressedError","Temporal"],"directives":"eslint","scriptDeclarations":true}},{"kind":"parenthesized_expression","has":{"matches":"builtin"}}]}}}},"violation":{"anchor":"witness.span","code":"no-extend-native","message":"Move this addition to $G.prototype into a standalone helper function or a subclass.","suppress":{"eslint":{"rules":["no-extend-native"]},"oxlint":{"rules":["no-extend-native"]},"biome":{"rules":["lint/nursery/noExtendNative"]}}}}]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"format":"rerail.policy/v1","id":"eslint-no-inline-comments","revision":4,"mode":"steer","description":"
|
|
1
|
+
{"format":"rerail.policy/v1","id":"eslint-no-inline-comments","revision":4,"mode":"steer","description":"Put comments on their own line rather than on the same line as code.","scope":{"include":["**/*"],"exclude":[]},"clauses":[{"id":"options","define":{"options":{"ignorePattern":{"type":"string","nullable":true,"default":null}}}},{"id":"shared","define":{"language":"typescript","utils":{"r1":{"any":[{"any":[{"regex":"^//[\\s\\x{FEFF}]*eslint-"},{"regex":"(?s)^/\\*[\\s\\x{FEFF}]*(?:eslint-|(?:eslint|globals?|exported) .*[^\\s\\x{FEFF}].*\\*/$)"}]},{"all":[{"inside":{"kind":"jsx_expression","not":{"has":{"all":[{"not":{"kind":"comment"}},{"not":{"regex":"^[{}]$"}}]}},"stopBy":"neighbor"}},{"any":[{"not":{"matches":"r2"}},{"follows":{"not":{"matches":"r2"},"regex":"^\\{$","stopBy":"neighbor"}}]},{"any":[{"not":{"matches":"r3"}},{"precedes":{"not":{"matches":"r3"},"regex":"^\\}$","stopBy":"neighbor"}}]}]}]},"r2":{"layout":{"before":{"breaks":{"eq":0},"comments":true,"to":"token"}}},"r3":{"layout":{"after":{"breaks":{"eq":0},"comments":true,"to":"token"}}}}}},{"id":"inline-comment","forbid":{"ast":{"language":"typescript","rule":{"$option":"ignorePattern","cases":{"(?:webpackChunkName):\\s.+":{"kind":"comment","any":[{"matches":"r2"},{"matches":"r3"}],"not":{"matches":"r1"},"all":[{"not":{"regex":{"$option":"ignorePattern","cases":{"null":"(?:webpackChunkName):\\s.+"},"default":{"$option":"ignorePattern"}}}}]},"Note: ":{"kind":"comment","any":[{"matches":"r2"},{"matches":"r3"}],"not":{"matches":"r1"},"all":[{"not":{"regex":{"$option":"ignorePattern","cases":{"null":"(?:webpackChunkName):\\s.+"},"default":{"$option":"ignorePattern"}}}}]},"otherthing":{"kind":"comment","any":[{"matches":"r2"},{"matches":"r3"}],"not":{"matches":"r1"},"all":[{"not":{"regex":{"$option":"ignorePattern","cases":{"null":"(?:webpackChunkName):\\s.+"},"default":{"$option":"ignorePattern"}}}}]},"something":{"kind":"comment","any":[{"matches":"r2"},{"matches":"r3"}],"not":{"matches":"r1"},"all":[{"not":{"regex":{"$option":"ignorePattern","cases":{"null":"(?:webpackChunkName):\\s.+"},"default":{"$option":"ignorePattern"}}}}]}},"default":{"kind":"comment","any":[{"matches":"r2"},{"matches":"r3"}],"not":{"matches":"r1"}}}}},"violation":{"anchor":"witness.span","code":"no-inline-comments","message":"Unexpected comment inline with code.","suppress":{"eslint":{"rules":["no-inline-comments"]},"oxlint":{"rules":["no-inline-comments"]}}}}]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"format":"rerail.policy/v1","id":"eslint-no-iterator","revision":3,"mode":"steer","description":"
|
|
1
|
+
{"format":"rerail.policy/v1","id":"eslint-no-iterator","revision":3,"mode":"steer","description":"Don't use the obsolete __iterator__ property; use Symbol.iterator and standard iteration instead.","scope":{"include":["**/*"],"exclude":[]},"clauses":[{"id":"iterator-member","forbid":{"ast":{"language":"typescript","utils":{"static-str":{"any":[{"kind":"string"},{"kind":"template_string","not":{"has":{"kind":"template_substitution","stopBy":"neighbor"}}},{"kind":"parenthesized_expression","has":{"stopBy":"neighbor","matches":"static-str"}}]}},"rule":{"any":[{"kind":"member_expression","has":{"kind":"property_identifier","stopBy":"neighbor","regex":"^(?:[_]|\\\\u005[fF]|\\\\u\\{0*5[fF]\\})(?:[_]|\\\\u005[fF]|\\\\u\\{0*5[fF]\\})(?:[i]|\\\\u0069|\\\\u\\{0*69\\})(?:[t]|\\\\u0074|\\\\u\\{0*74\\})(?:[e]|\\\\u0065|\\\\u\\{0*65\\})(?:[r]|\\\\u0072|\\\\u\\{0*72\\})(?:[a]|\\\\u0061|\\\\u\\{0*61\\})(?:[t]|\\\\u0074|\\\\u\\{0*74\\})(?:[o]|\\\\u006[fF]|\\\\u\\{0*6[fF]\\})(?:[r]|\\\\u0072|\\\\u\\{0*72\\})(?:[_]|\\\\u005[fF]|\\\\u\\{0*5[fF]\\})(?:[_]|\\\\u005[fF]|\\\\u\\{0*5[fF]\\})$"}},{"kind":"subscript_expression","has":{"stopBy":"neighbor","precedes":{"regex":"^\\]$","stopBy":"neighbor"},"matches":"static-str","value":{"eq":"__iterator__"}}}]}}},"violation":{"anchor":"witness.span","code":"no-iterator","message":"Replace '__iterator__' with a [Symbol.iterator]() method.","suppress":{"eslint":{"rules":["no-iterator"]},"oxlint":{"rules":["no-iterator"]}}}}]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"format":"rerail.policy/v1","id":"eslint-no-labels","revision":3,"mode":"steer","description":"
|
|
1
|
+
{"format":"rerail.policy/v1","id":"eslint-no-labels","revision":3,"mode":"steer","description":"Avoid labeled statements and labeled break or continue; restructure the loop or extract a function instead.","scope":{"include":["**/*"],"exclude":[]},"clauses":[{"id":"options","define":{"options":{"allowLoop":{"type":"boolean","nullable":true,"default":null},"allowSwitch":{"type":"boolean","nullable":true,"default":null}}}},{"id":"shared","define":{"language":"typescript","utils":{"r1":{"any":[{"kind":"function_declaration"},{"kind":"function_expression"},{"kind":"arrow_function"},{"kind":"generator_function_declaration"},{"kind":"generator_function"},{"kind":"method_definition"},{"kind":"class_static_block"}]},"r2":{"has":{"kind":"statement_identifier","pattern":"$L","stopBy":"neighbor"}}}}},{"id":"labeled-statement","forbid":{"ast":{"language":"typescript","rule":{"$option":"allowLoop","cases":{"true":{"all":[{"kind":"labeled_statement"},{"not":{"has":{"stopBy":"neighbor","any":[{"$option":"allowLoop","cases":{"true":[{"kind":"for_statement"}]},"default":[],"spread":true},{"$option":"allowLoop","cases":{"true":[{"kind":"for_in_statement"}]},"default":[],"spread":true},{"$option":"allowLoop","cases":{"true":[{"kind":"while_statement"}]},"default":[],"spread":true},{"$option":"allowLoop","cases":{"true":[{"kind":"do_statement"}]},"default":[],"spread":true},{"$option":"allowLoop","cases":{"true":[]},"default":[{"kind":"switch_statement"}],"spread":true}]}}}]}},"default":{"$option":"allowSwitch","cases":{"true":{"all":[{"kind":"labeled_statement"},{"not":{"has":{"stopBy":"neighbor","any":[{"$option":"allowLoop","cases":{"true":[{"kind":"for_statement"}]},"default":[],"spread":true},{"$option":"allowLoop","cases":{"true":[{"kind":"for_in_statement"}]},"default":[],"spread":true},{"$option":"allowLoop","cases":{"true":[{"kind":"while_statement"}]},"default":[],"spread":true},{"$option":"allowLoop","cases":{"true":[{"kind":"do_statement"}]},"default":[],"spread":true},{"$option":"allowLoop","cases":{"true":[]},"default":[{"kind":"switch_statement"}],"spread":true}]}}}]}},"default":{"kind":"labeled_statement"}}}}},"violation":{"anchor":"witness.span","code":"no-labels","message":"Remove this label; restructure the loop or extract a function instead.","suppress":{"eslint":{"rules":["no-labels"]},"oxlint":{"rules":["no-labels"]}}}},{"id":"label-in-break","forbid":{"ast":{"language":"typescript","rule":{"all":[{"kind":"break_statement"},{"matches":"r2"},{"$option":"allowLoop","cases":{"true":[{"not":{"inside":{"stopBy":{"matches":"r1"},"all":[{"kind":"labeled_statement"},{"matches":"r2"},{"has":{"stopBy":"neighbor","any":[{"$option":"allowLoop","cases":{"true":[{"kind":"for_statement"}]},"default":[],"spread":true},{"$option":"allowLoop","cases":{"true":[{"kind":"for_in_statement"}]},"default":[],"spread":true},{"$option":"allowLoop","cases":{"true":[{"kind":"while_statement"}]},"default":[],"spread":true},{"$option":"allowLoop","cases":{"true":[{"kind":"do_statement"}]},"default":[],"spread":true},{"$option":"allowLoop","cases":{"true":[]},"default":[{"kind":"switch_statement"}],"spread":true}]}}]}}}]},"default":{"$option":"allowSwitch","cases":{"true":[{"not":{"inside":{"stopBy":{"matches":"r1"},"all":[{"kind":"labeled_statement"},{"matches":"r2"},{"has":{"stopBy":"neighbor","any":[{"$option":"allowLoop","cases":{"true":[{"kind":"for_statement"}]},"default":[],"spread":true},{"$option":"allowLoop","cases":{"true":[{"kind":"for_in_statement"}]},"default":[],"spread":true},{"$option":"allowLoop","cases":{"true":[{"kind":"while_statement"}]},"default":[],"spread":true},{"$option":"allowLoop","cases":{"true":[{"kind":"do_statement"}]},"default":[],"spread":true},{"$option":"allowLoop","cases":{"true":[]},"default":[{"kind":"switch_statement"}],"spread":true}]}}]}}}]},"default":[]},"spread":true}]}}},"violation":{"anchor":"witness.span","code":"no-labels","message":"Remove the label from this break; extract the loops into a function and return to exit early.","suppress":{"eslint":{"rules":["no-labels"]},"oxlint":{"rules":["no-labels"]}}}},{"id":"label-in-continue","forbid":{"ast":{"language":"typescript","rule":{"all":[{"kind":"continue_statement"},{"matches":"r2"},{"$option":"allowLoop","cases":{"true":[{"not":{"inside":{"stopBy":{"matches":"r1"},"all":[{"kind":"labeled_statement"},{"matches":"r2"},{"has":{"stopBy":"neighbor","any":[{"$option":"allowLoop","cases":{"true":[{"kind":"for_statement"}]},"default":[],"spread":true},{"$option":"allowLoop","cases":{"true":[{"kind":"for_in_statement"}]},"default":[],"spread":true},{"$option":"allowLoop","cases":{"true":[{"kind":"while_statement"}]},"default":[],"spread":true},{"$option":"allowLoop","cases":{"true":[{"kind":"do_statement"}]},"default":[],"spread":true},{"$option":"allowLoop","cases":{"true":[]},"default":[{"kind":"switch_statement"}],"spread":true}]}}]}}}]},"default":{"$option":"allowSwitch","cases":{"true":[{"not":{"inside":{"stopBy":{"matches":"r1"},"all":[{"kind":"labeled_statement"},{"matches":"r2"},{"has":{"stopBy":"neighbor","any":[{"$option":"allowLoop","cases":{"true":[{"kind":"for_statement"}]},"default":[],"spread":true},{"$option":"allowLoop","cases":{"true":[{"kind":"for_in_statement"}]},"default":[],"spread":true},{"$option":"allowLoop","cases":{"true":[{"kind":"while_statement"}]},"default":[],"spread":true},{"$option":"allowLoop","cases":{"true":[{"kind":"do_statement"}]},"default":[],"spread":true},{"$option":"allowLoop","cases":{"true":[]},"default":[{"kind":"switch_statement"}],"spread":true}]}}]}}}]},"default":[]},"spread":true}]}}},"violation":{"anchor":"witness.span","code":"no-labels","message":"Remove the label from this continue; restructure the loop or extract its body into a function.","suppress":{"eslint":{"rules":["no-labels"]},"oxlint":{"rules":["no-labels"]}}}}]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"format":"rerail.policy/v1","id":"eslint-no-loss-of-precision","revision":4,"mode":"steer","description":"
|
|
1
|
+
{"format":"rerail.policy/v1","id":"eslint-no-loss-of-precision","revision":4,"mode":"steer","description":"Avoid number literals that cannot be stored exactly as a JavaScript number; the value silently changes at runtime.","scope":{"include":["**/*"],"exclude":[]},"clauses":[{"id":"binary-over-53-bits","forbid":{"ast":{"language":"typescript","rule":{"kind":"number","regex":"^0[bB][0_]*1(?:_*[01]){52,}_*1[01_]*$"}}},"violation":{"anchor":"witness.span","code":"no-loss-of-precision","message":"Rewrite this number literal so a JavaScript number stores it exactly, e.g. with fewer digits or as a BigInt.","suppress":{"eslint":{"rules":["no-loss-of-precision"]},"oxlint":{"rules":["no-loss-of-precision"]},"biome":{"rules":["lint/correctness/noPrecisionLoss"]}}}},{"id":"hex-over-53-bits","forbid":{"ast":{"language":"typescript","rule":{"kind":"number","regex":"^0[xX][0_]*(?:1(?:_*[0-9a-fA-F]){13,}_*[13579bdfBDF]|1(?:_*[0-9a-fA-F]){13,}_*[26aeAE]|1(?:_*[0-9a-fA-F]){13,}_*[4cC]|1(?:_*[0-9a-fA-F]){13,}_*8|[23](?:_*[0-9a-fA-F]){12,}_*[13579bdfBDF]|[23](?:_*[0-9a-fA-F]){13,}_*[26aeAE]|[23](?:_*[0-9a-fA-F]){13,}_*[4cC]|[23](?:_*[0-9a-fA-F]){13,}_*8|[4-7](?:_*[0-9a-fA-F]){12,}_*[13579bdfBDF]|[4-7](?:_*[0-9a-fA-F]){12,}_*[26aeAE]|[4-7](?:_*[0-9a-fA-F]){13,}_*[4cC]|[4-7](?:_*[0-9a-fA-F]){13,}_*8|[89a-fA-F](?:_*[0-9a-fA-F]){12,}_*[13579bdfBDF]|[89a-fA-F](?:_*[0-9a-fA-F]){12,}_*[26aeAE]|[89a-fA-F](?:_*[0-9a-fA-F]){12,}_*[4cC]|[89a-fA-F](?:_*[0-9a-fA-F]){13,}_*8)"}}},"violation":{"anchor":"witness.span","code":"no-loss-of-precision","message":"Rewrite this number literal so a JavaScript number stores it exactly, e.g. with fewer digits or as a BigInt.","suppress":{"eslint":{"rules":["no-loss-of-precision"]},"oxlint":{"rules":["no-loss-of-precision"]},"biome":{"rules":["lint/correctness/noPrecisionLoss"]}}}},{"id":"octal-over-53-bits","forbid":{"ast":{"language":"typescript","rule":{"kind":"number","regex":"^0[oO]?[0_]*(?:1(?:_*[0-7]){17,}_*[1357]|1(?:_*[0-7]){17,}_*[26]|1(?:_*[0-7]){18,}_*4|[23](?:_*[0-7]){17,}_*[1357]|[23](?:_*[0-7]){17,}_*[26]|[23](?:_*[0-7]){17,}_*4|[4-7](?:_*[0-7]){16,}_*[1357]|[4-7](?:_*[0-7]){17,}_*[26]|[4-7](?:_*[0-7]){17,}_*4)"}}},"violation":{"anchor":"witness.span","code":"no-loss-of-precision","message":"Rewrite this number literal so a JavaScript number stores it exactly, e.g. with fewer digits or as a BigInt.","suppress":{"eslint":{"rules":["no-loss-of-precision"]},"oxlint":{"rules":["no-loss-of-precision"]},"biome":{"rules":["lint/correctness/noPrecisionLoss"]}}}},{"id":"decimal-digits","forbid":{"ast":{"language":"typescript","rule":{"kind":"number","pattern":"$N","not":{"regex":"^0[xXoObB]|^0[0-9_]*[0-7]$|^0[0-7_]+$|n$"},"all":[{"regex":"^(?:[0-9_]+\\.?[0-9_]*|\\.[0-9_]+)(?:[eE][-+]?[0-9_]+)?$"},{"compare":{"left":"L4","op":"ne","right":"V4"}}]},"transform":{"L0":{"replace":{"source":"$N","replace":"_","by":""}},"L1":{"replace":{"source":"$L0","replace":"[eE].*$","by":""}},"L2":{"replace":{"source":"$L1","replace":"\\.","by":""}},"L3":{"replace":{"source":"$L2","replace":"^0+","by":""}},"L4":{"replace":{"source":"$L3","replace":"0+$","by":""}},"V0":{"replace":{"source":"$N","replace":"^-","by":"","value":true}},"V1":{"replace":{"source":"$V0","replace":"[eE].*$","by":""}},"V2":{"replace":{"source":"$V1","replace":"\\.","by":""}},"V3":{"replace":{"source":"$V2","replace":"^0+","by":""}},"V4":{"replace":{"source":"$V3","replace":"0+$","by":""}}}}},"violation":{"anchor":"witness.span","code":"no-loss-of-precision","message":"Rewrite this number literal so a JavaScript number stores it exactly, e.g. with fewer digits or as a BigInt.","suppress":{"eslint":{"rules":["no-loss-of-precision"]},"oxlint":{"rules":["no-loss-of-precision"]},"biome":{"rules":["lint/correctness/noPrecisionLoss"]}}}},{"id":"long-float","forbid":{"ast":{"language":"typescript","rule":{"kind":"number","pattern":"$N","not":{"regex":"^0[xXoObB]|^0[0-9_]*[0-7]$|^0[0-7_]+$|n$"},"all":[{"regex":"^(?:[0-9_]*\\.[0-9_]*|\\.[0-9_]+)(?:[eE][-+]?[0-9_]+)?$"},{"regex":"^[0._]*[1-9](?:[._]*[0-9]){17,}"},{"compare":{"left":"L4","op":"eq","right":"V4"}},{"compare":{"left":"VI","op":"ne","right":"E"}}]},"transform":{"L0":{"replace":{"source":"$N","replace":"_","by":""}},"L1":{"replace":{"source":"$L0","replace":"[eE].*$","by":""}},"L2":{"replace":{"source":"$L1","replace":"\\.","by":""}},"L3":{"replace":{"source":"$L2","replace":"^0+","by":""}},"L4":{"replace":{"source":"$L3","replace":"0+$","by":""}},"V0":{"replace":{"source":"$N","replace":"^-","by":"","value":true}},"V1":{"replace":{"source":"$V0","replace":"[eE].*$","by":""}},"V2":{"replace":{"source":"$V1","replace":"\\.","by":""}},"V3":{"replace":{"source":"$V2","replace":"^0+","by":""}},"V4":{"replace":{"source":"$V3","replace":"0+$","by":""}},"VI":{"replace":{"source":"$V0","replace":"^[0-9]{1,16}$","by":""}},"E":{"replace":{"source":"$N","replace":"(?s)^.*$","by":""}}}}},"violation":{"anchor":"witness.span","code":"no-loss-of-precision","message":"Rewrite this number literal so a JavaScript number stores it exactly, e.g. with fewer digits or as a BigInt.","suppress":{"eslint":{"rules":["no-loss-of-precision"]},"oxlint":{"rules":["no-loss-of-precision"]},"biome":{"rules":["lint/correctness/noPrecisionLoss"]}}}}]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"id": "eslint-no-multi-str",
|
|
4
4
|
"revision": 3,
|
|
5
5
|
"mode": "steer",
|
|
6
|
-
"description": "
|
|
6
|
+
"description": "Avoid multiline strings built with backslash line continuations; use a template literal or concatenation instead.",
|
|
7
7
|
"scope": {
|
|
8
8
|
"include": [
|
|
9
9
|
"**/*"
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"violation": {
|
|
38
38
|
"anchor": "witness.span",
|
|
39
39
|
"code": "no-multi-str",
|
|
40
|
-
"message": "
|
|
40
|
+
"message": "Replace this backslash-continued string with a template literal or string concatenation.",
|
|
41
41
|
"suppress": {
|
|
42
42
|
"eslint": {
|
|
43
43
|
"rules": [
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"id": "eslint-no-negated-condition",
|
|
4
4
|
"revision": 3,
|
|
5
5
|
"mode": "steer",
|
|
6
|
-
"description": "
|
|
6
|
+
"description": "Avoid negated conditions in an if with an else or in a ternary; swap the branches and drop the negation.",
|
|
7
7
|
"scope": {
|
|
8
8
|
"include": [
|
|
9
9
|
"**/*"
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
"violation": {
|
|
91
91
|
"anchor": "witness.span",
|
|
92
92
|
"code": "no-negated-condition",
|
|
93
|
-
"message": "
|
|
93
|
+
"message": "Remove the negation from this condition and swap the two branches.",
|
|
94
94
|
"suppress": {
|
|
95
95
|
"eslint": {
|
|
96
96
|
"rules": [
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"id": "eslint-no-nested-ternary",
|
|
4
4
|
"revision": 3,
|
|
5
5
|
"mode": "steer",
|
|
6
|
-
"description": "
|
|
6
|
+
"description": "Avoid nesting ternary expressions inside each other; use if-else or intermediate variables for readability.",
|
|
7
7
|
"scope": {
|
|
8
8
|
"include": [
|
|
9
9
|
"**/*"
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"id": "eslint-no-new-wrappers",
|
|
4
4
|
"revision": 3,
|
|
5
5
|
"mode": "steer",
|
|
6
|
-
"description": "
|
|
6
|
+
"description": "Don't use new with String, Number or Boolean; it creates wrapper objects that behave unlike primitives.",
|
|
7
7
|
"scope": {
|
|
8
8
|
"include": [
|
|
9
9
|
"**/*.ts",
|
package/rules/eslint-no-new.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"id": "eslint-no-new",
|
|
4
4
|
"revision": 3,
|
|
5
5
|
"mode": "steer",
|
|
6
|
-
"description": "
|
|
6
|
+
"description": "Don't call a constructor with new only for its side effects; keep the created object or use a plain function.",
|
|
7
7
|
"scope": {
|
|
8
8
|
"include": [
|
|
9
9
|
"**/*"
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"violation": {
|
|
33
33
|
"anchor": "witness.span",
|
|
34
34
|
"code": "no-new",
|
|
35
|
-
"message": "
|
|
35
|
+
"message": "Keep the object this new creates, or replace it with a plain function call if only its side effects matter.",
|
|
36
36
|
"suppress": {
|
|
37
37
|
"eslint": {
|
|
38
38
|
"rules": [
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"id": "eslint-no-nonoctal-decimal-escape",
|
|
4
4
|
"revision": 3,
|
|
5
5
|
"mode": "steer",
|
|
6
|
-
"description": "
|
|
6
|
+
"description": "Avoid the \\8 and \\9 escape sequences in strings; they are not valid escapes and just produce the digit, which misleads readers.",
|
|
7
7
|
"scope": {
|
|
8
8
|
"include": [
|
|
9
9
|
"**/*"
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"violation": {
|
|
31
31
|
"anchor": "witness.span",
|
|
32
32
|
"code": "no-nonoctal-decimal-escape",
|
|
33
|
-
"message": "
|
|
33
|
+
"message": "Replace '$ESC' with the plain digit, or escape the backslash if you meant a literal backslash.",
|
|
34
34
|
"suppress": {
|
|
35
35
|
"eslint": {
|
|
36
36
|
"rules": [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"format":"rerail.policy/v1","id":"eslint-no-object-constructor","revision":1,"mode":"steer","description":"
|
|
1
|
+
{"format":"rerail.policy/v1","id":"eslint-no-object-constructor","revision":1,"mode":"steer","description":"Use an object literal instead of calling Object() or new Object() with no arguments.","scope":{"include":["**/*"],"exclude":[]},"clauses":[{"id":"object-constructor","forbid":{"ast":{"language":"typescript","languageOptions":{},"rule":{"all":[{"any":[{"kind":"call_expression"},{"kind":"new_expression"}]},{"has":{"matches":"object-callee"}},{"not":{"has":{"kind":"template_string"}}},{"not":{"has":{"kind":"arguments","has":{"matches":"arg"}}}}]},"utils":{"object-callee":{"any":[{"kind":"identifier","resolves":{"global":["Object"],"directives":"eslint"}},{"kind":"parenthesized_expression","has":{"matches":"object-callee"}}]},"arg":{"not":{"any":[{"regex":"^[(),]$"},{"kind":"comment"}]}}}}},"violation":{"anchor":"witness.span","code":"no-object-constructor","message":"The object literal notation {} is preferable.","suppress":{"eslint":{"rules":["no-object-constructor"]},"oxlint":{"rules":["no-object-constructor"]}}}}]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"format":"rerail.policy/v1","id":"eslint-no-octal-escape","revision":4,"mode":"steer","description":"
|
|
1
|
+
{"format":"rerail.policy/v1","id":"eslint-no-octal-escape","revision":4,"mode":"steer","description":"Use Unicode or hex escapes instead of legacy octal escapes in string literals; octal escapes are deprecated and forbidden in strict mode.","scope":{"include":["**/*"],"exclude":[]},"clauses":[{"id":"octal-escape","forbid":{"ast":{"language":"typescript","rule":{"kind":"string","regex":"(?s)^(?:[^\\\\]|\\\\.)*?(?:(?<SEQ>\\\\(?:[0-3][0-7]{1,2}|[4-7][0-7]))|(?<SEQZ>\\\\0)[89]|(?<SEQD>\\\\[1-7]))"}}},"violation":{"anchor":"witness.span","code":"no-octal-escape","message":"Don't use octal: '$SEQ$SEQZ$SEQD'. Use '\\u....' instead.","suppress":{"eslint":{"rules":["no-octal-escape"]}, "biome":{"rules":["lint/suspicious/noOctalEscape"]}}}}]}
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
"id": "eslint-no-octal",
|
|
4
4
|
"revision": 2,
|
|
5
5
|
"mode": "steer",
|
|
6
|
-
"description": "
|
|
6
|
+
"description": "Avoid numeric literals that start with a zero followed by a digit; legacy octal is deprecated and easily misread as decimal.",
|
|
7
7
|
"scope": { "include": ["**/*"], "exclude": [] },
|
|
8
8
|
"clauses": [
|
|
9
9
|
{
|
|
10
10
|
"id": "octal-literal",
|
|
11
11
|
"forbid": { "ast": { "language": "typescript", "rule": { "kind": "number", "regex": "^0[0-9]" } } },
|
|
12
|
-
"violation": { "anchor": "witness.span", "code": "no-octal", "message": "
|
|
12
|
+
"violation": { "anchor": "witness.span", "code": "no-octal", "message": "Write this number with a 0o prefix if it is octal, or drop the leading zero if it is decimal.", "suppress": { "eslint": { "rules": ["no-octal"] } } }
|
|
13
13
|
}
|
|
14
14
|
]
|
|
15
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"format":"rerail.policy/v1","id":"eslint-no-plusplus","revision":4,"mode":"steer","description":"
|
|
1
|
+
{"format":"rerail.policy/v1","id":"eslint-no-plusplus","revision":4,"mode":"steer","description":"Use += 1 and -= 1 instead of the ++ and -- operators; automatic semicolon insertion can change what they apply to.","scope":{"include":["**/*"],"exclude":[]},"clauses":[{"id":"options","define":{"options":{"allowForLoopAfterthoughts":{"type":"boolean","nullable":true,"default":null}}}},{"id":"shared","define":{"language":"typescript","utils":{"afterthought":{"any":[{"inside":{"kind":"for_statement"},"precedes":{"regex":"^\\)$","stopBy":{"not":{"kind":"comment"}}}},{"inside":{"any":[{"kind":"sequence_expression"},{"kind":"parenthesized_expression"}],"matches":"afterthought"}}]},"r1":{"has":{"regex":"^\\+\\+$"},"kind":"update_expression"},"r2":{"has":{"regex":"^--$"},"kind":"update_expression"}}}},{"id":"update-increment","forbid":{"ast":{"$option":"allowForLoopAfterthoughts","cases":{"true":{"language":"typescript","rule":{"all":[{"matches":"r1"},{"not":{"matches":"afterthought"}}]}}},"default":{"language":"typescript","rule":{"matches":"r1"}}}},"violation":{"anchor":"witness.span","code":"no-plusplus","message":"Replace ++ with += 1, moving it to its own statement if its value is used.","suppress":{"eslint":{"rules":["no-plusplus"]},"oxlint":{"rules":["no-plusplus"]},"biome":{"rules":["lint/style/noIncrementDecrement"]}}}},{"id":"update-decrement","forbid":{"ast":{"$option":"allowForLoopAfterthoughts","cases":{"true":{"language":"typescript","rule":{"all":[{"matches":"r2"},{"not":{"matches":"afterthought"}}]}}},"default":{"language":"typescript","rule":{"matches":"r2"}}}},"violation":{"anchor":"witness.span","code":"no-plusplus","message":"Replace -- with -= 1, moving it to its own statement if its value is used.","suppress":{"eslint":{"rules":["no-plusplus"]},"oxlint":{"rules":["no-plusplus"]},"biome":{"rules":["lint/style/noIncrementDecrement"]}}}}]}
|