@neralabs/rerail-pack-javascript 0.1.3 → 0.1.5
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 +412 -4
- package/licenses/eslint/UPSTREAM.md +5 -5
- package/licenses/eslint-plugin-unicorn/UPSTREAM.md +5 -5
- 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
package/rules/eslint-curly.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"format":"rerail.policy/v1","id":"eslint-curly","revision":2,"mode":"steer","description":"Port of ESLint's `curly` rule (default options: all). Every if/else/loop body must be a block; fixes by wrapping the body. Options are declared in the `options` define (the rule's defaults); a variant is a config patch.","scope":{"include":["**/*"],"exclude":[]},"clauses":[{"id":"options","define":{"options":{"option":{"type":"string","nullable":true,"default":null},"option2":{"type":"string","nullable":true,"default":null}}}},{"id":"shared","define":{"language":"typescript","utils":{"before-else":{"any":[{"precedes":{"kind":"else_clause"}},{"inside":{"any":[{"kind":"for_statement"},{"kind":"for_in_statement"},{"kind":"while_statement"},{"kind":"labeled_statement"},{"kind":"with_statement"}],"stopBy":"neighbor","matches":"before-else"}},{"inside":{"kind":"else_clause","stopBy":"neighbor","inside":{"kind":"if_statement","stopBy":"neighbor","matches":"before-else"}}}]},"braces-necessary":{"all":[{"matches":"one-statement-block"},{"any":[{"has":{"stopBy":"neighbor","any":[{"any":[{"kind":"lexical_declaration"},{"kind":"function_declaration"},{"kind":"generator_function_declaration"},{"kind":"class_declaration"}]},{"matches":"using-declaration"}]}},{"all":[{"has":{"stopBy":"neighbor","matches":"unsafe-if"}},{"matches":"before-else"}]}]}]},"chain-requires-block":{"kind":"if_statement","any":[{"has":{"stopBy":"neighbor","all":[{"matches":"if-body"},{"matches":"requires-block"}]}},{"has":{"stopBy":"neighbor","kind":"else_clause","has":{"stopBy":"neighbor","any":[{"all":[{"matches":"else-body"},{"matches":"requires-block"}]},{"matches":"chain-requires-block"}]}}}]},"chain-top-requires-block":{"kind":"if_statement","any":[{"all":[{"not":{"matches":"r15"}},{"matches":"chain-requires-block"}]},{"inside":{"stopBy":"neighbor","matches":"r10"}}]},"collapsed":{"any":[{"kind":"empty_statement"},{"all":[{"layout":{"before":{"to":"token","breaks":{"eq":0}}}},{"matches":"one-liner"}]}]},"do-body":{"all":[{"inside":{"kind":"do_statement","stopBy":"neighbor"}},{"follows":{"stopBy":{"not":{"kind":"comment"}},"all":[{"not":{"kind":"comment"}},{"regex":"^do$"}]}}]},"else-body":{"all":[{"not":{"kind":"comment"}},{"matches":"r15"},{"follows":{"stopBy":{"not":{"kind":"comment"}},"all":[{"not":{"kind":"comment"}},{"regex":"^else$"}]}},{"not":{"kind":"if_statement"}}]},"for-body":{"all":[{"inside":{"kind":"for_statement","stopBy":"neighbor"}},{"matches":"r7"}]},"for-in-body":{"all":[{"inside":{"kind":"for_in_statement","stopBy":"neighbor","has":{"regex":"^in$"}}},{"matches":"r7"}]},"for-of-body":{"all":[{"inside":{"kind":"for_in_statement","stopBy":"neighbor","has":{"regex":"^of$"}}},{"matches":"r7"}]},"hazard-next":{"any":[{"precedes":{"stopBy":{"not":{"kind":"comment"}},"all":[{"not":{"kind":"comment"}},{"regex":"^[(\\[/`+\\-]"}]}},{"not":{"matches":"r8"},"inside":{"stopBy":"neighbor","matches":"hazard-next"}}]},"if-body":{"all":[{"inside":{"kind":"if_statement","stopBy":"neighbor"}},{"matches":"r9"}]},"in-chain-requiring-block":{"inside":{"stopBy":"neighbor","any":[{"matches":"r12"},{"matches":"r10"}]}},"one-liner":{"any":[{"layout":{"span":{"eq":0}}},{"all":[{"has":{"regex":"^;$","not":{"matches":"r8"}}},{"not":{"has":{"all":[{"not":{"kind":"comment"}},{"not":{"regex":"^;$"}},{"layout":{"span":{"min":1}}}]}}},{"not":{"has":{"all":[{"not":{"kind":"comment"}},{"not":{"regex":"^;$"}},{"follows":{"stopBy":"end","not":{"kind":"comment"}}},{"matches":"r13"}]}}}]}]},"one-statement-block":{"kind":"statement_block","has":{"stopBy":"neighbor","matches":"statement"},"not":{"has":{"stopBy":"neighbor","all":[{"matches":"statement"},{"precedes":{"stopBy":"end","matches":"statement"}}]}}},"requires-block":{"all":[{"kind":"statement_block"},{"any":[{"not":{"matches":"one-statement-block"}},{"matches":"braces-necessary"}]}]},"statement":{"all":[{"not":{"kind":"comment"}},{"not":{"regex":"^[{}]$"}}]},"unsafe-if":{"any":[{"kind":"if_statement","not":{"has":{"kind":"else_clause"}}},{"kind":"if_statement","has":{"kind":"else_clause","has":{"matches":"unsafe-if"}}},{"any":[{"kind":"for_statement"},{"kind":"for_in_statement"},{"kind":"while_statement"},{"kind":"labeled_statement"},{"kind":"with_statement"}],"has":{"matches":"unsafe-if"}}]},"using-declaration":{"kind":"expression_statement","has":{"stopBy":"neighbor","any":[{"matches":"r11"},{"kind":"await_expression","has":{"stopBy":"neighbor","matches":"r11"}}]}},"while-body":{"all":[{"inside":{"kind":"while_statement","stopBy":"neighbor"}},{"matches":"r9"}]},"r1":{"all":[{"matches":"one-statement-block"},{"any":[{"has":{"kind":"comment","precedes":{"matches":"statement","stopBy":"end"},"stopBy":"neighbor"}},{"has":{"all":[{"matches":"statement"},{"not":{"matches":"one-liner"}}],"stopBy":"neighbor"}}]}]},"r2":{"any":[{"regex":"(?s);(?:\\s|//[^\\n]*\\n|/\\*.*?\\*/)*\\}$"},{"all":[{"not":{"matches":"r8"}},{"not":{"inside":{"stopBy":"end","matches":"r8"}}}]},{"all":[{"pattern":"$UBQ"},{"has":{"all":[{"not":{"inside":{"any":[{"kind":"function_expression"},{"kind":"arrow_function"},{"kind":"generator_function"},{"kind":"method_definition"}],"stopBy":"neighbor"}}},{"not":{"inside":{"not":{"pattern":"$UBQ"},"precedes":{"stopBy":"end","matches":"r14"},"stopBy":{"pattern":"$UBQ"}}}}],"kind":"statement_block","not":{"precedes":{"stopBy":"end","matches":"r14"}},"stopBy":"end"}}]},{"all":[{"has":{"any":[{"matches":"r13"},{"layout":{"after":{"breaks":{"min":1},"to":"token"}}}],"regex":"^\\}$"}},{"not":{"has":{"all":[{"not":{"kind":"comment"}},{"not":{"regex":"^\\}$"}},{"not":{"precedes":{"all":[{"not":{"kind":"comment"}},{"not":{"regex":"^\\}$"}}],"stopBy":"end"}}},{"regex":"(?:\\+\\+|--)$"}]}}},{"not":{"matches":"hazard-next"}}]}]},"r3":{"all":[{"not":{"kind":"statement_block"}},{"not":{"kind":"empty_statement"}},{"not":{"matches":"one-liner"}}]},"r4":{"all":[{"not":{"kind":"statement_block"}},{"not":{"matches":"collapsed"}}]},"r5":{"any":[{"matches":"requires-block"},{"matches":"r3"},{"matches":"r1"}]},"r6":{"any":[{"all":[{"matches":"r2"},{"pattern":"$UBF"}]},{"pattern":"$UBN"}]},"r7":{"follows":{"all":[{"not":{"kind":"comment"}},{"regex":"^\\)$"}],"stopBy":{"not":{"kind":"comment"}}}},"r8":{"precedes":{"not":{"kind":"comment"},"stopBy":"end"}},"r9":{"follows":{"all":[{"not":{"kind":"comment"}},{"kind":"parenthesized_expression"}],"stopBy":{"not":{"kind":"comment"}}}},"r10":{"inside":{"stopBy":"neighbor","matches":"r12"},"kind":"else_clause"},"r11":{"has":{"regex":"^using$","stopBy":"neighbor"},"kind":"assignment_expression"},"r12":{"kind":"if_statement","matches":"chain-top-requires-block"},"r13":{"layout":{"before":{"breaks":{"min":1},"to":"token"}}},"r14":{"not":{"any":[{"kind":"comment"},{"regex":"^\\}$"}]}},"r15":{"inside":{"kind":"else_clause","stopBy":"neighbor"}}}}},{"id":"if-missing","forbid":{"ast":{"language":"typescript","rule":{"all":[{"matches":"if-body"},{"not":{"kind":"comment"}},{"not":{"kind":"statement_block"}},{"$option":"option","cases":{"multi":[{"$option":"option","cases":{"multi":{"$option":"option2","cases":{"consistent":{"any":[{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":{"matches":"r5"}},"default":{"matches":"requires-block"}}},"default":{"matches":"requires-block"}},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}]},"default":[]}},"default":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r3"}]}},"default":[],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r1"}]}},"default":[],"spread":true}]}},"default":{"matches":"requires-block"}}},"default":{"any":[{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":{"matches":"r5"}},"default":{"matches":"requires-block"}}},"default":{"matches":"requires-block"}},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}]},"default":[]}},"default":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r3"}]}},"default":[],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r1"}]}},"default":[],"spread":true}]}}],"multi-line":[{"$option":"option","cases":{"multi":{"$option":"option2","cases":{"consistent":{"any":[{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":{"matches":"r5"}},"default":{"matches":"requires-block"}}},"default":{"matches":"requires-block"}},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}]},"default":[]}},"default":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r3"}]}},"default":[],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r1"}]}},"default":[],"spread":true}]}},"default":{"matches":"requires-block"}}},"default":{"any":[{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":{"matches":"r5"}},"default":{"matches":"requires-block"}}},"default":{"matches":"requires-block"}},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}]},"default":[]}},"default":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r3"}]}},"default":[],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r1"}]}},"default":[],"spread":true}]}}],"multi-or-nest":[{"$option":"option","cases":{"multi":{"$option":"option2","cases":{"consistent":{"any":[{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":{"matches":"r5"}},"default":{"matches":"requires-block"}}},"default":{"matches":"requires-block"}},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}]},"default":[]}},"default":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r3"}]}},"default":[],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r1"}]}},"default":[],"spread":true}]}},"default":{"matches":"requires-block"}}},"default":{"any":[{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":{"matches":"r5"}},"default":{"matches":"requires-block"}}},"default":{"matches":"requires-block"}},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}]},"default":[]}},"default":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r3"}]}},"default":[],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r1"}]}},"default":[],"spread":true}]}}]},"default":[],"spread":true},{"pattern":"$BODY"}]}}},"violation":{"anchor":"witness.span","code":"curly","message":"Expected { after 'if' condition.","fix":"{$BODY}","suppress":{"eslint":{"rules":["curly"]},"oxlint":{"rules":["curly"]},"biome":{"rules":["lint/style/useBlockStatements"]}}}},{"id":"if-unexpected","forbid":{"ast":{"language":"typescript","rule":{"all":[{"matches":"if-body"},{"matches":"one-statement-block"},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[{"not":{"$option":"option","cases":{"multi-or-nest":{"matches":"r5"}},"default":{"matches":"requires-block"}}}]},"default":[]}},"default":[{"not":{"$option":"option","cases":{"multi-or-nest":{"matches":"r5"}},"default":{"matches":"requires-block"}}}],"spread":true},{"$option":"option2","cases":{"consistent":[{"not":{"matches":"in-chain-requiring-block"}}]},"default":[],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"not":{"matches":"r5"}}]}},"default":[],"spread":true},{"matches":"r6"}]},"transform":{"IN":{"replace":{"source":"$UBF","replace":"(?s)^\\{(.*)\\}$","by":"${1}"}},"ORIG":{"replace":{"source":"$UBN","replace":"(?s)^(.*)$","by":"${1}"}}},"when":{"option":{"option":{"in":["multi","multi-or-nest"]}}}}},"violation":{"anchor":"witness.span","code":"curly","message":"Unnecessary { after 'if' condition.","fix":"$IN$ORIG","suppress":{"eslint":{"rules":["curly"]},"oxlint":{"rules":["curly"]},"biome":{"rules":["lint/style/useBlockStatements"]}}}},{"id":"else-missing","forbid":{"ast":{"language":"typescript","rule":{"all":[{"matches":"else-body"},{"not":{"kind":"comment"}},{"not":{"kind":"statement_block"}},{"$option":"option","cases":{"multi":[{"$option":"option","cases":{"multi":{"$option":"option2","cases":{"consistent":{"any":[{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":{"matches":"r5"}},"default":{"matches":"requires-block"}}},"default":{"matches":"requires-block"}},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}]},"default":[]}},"default":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r3"}]}},"default":[],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r1"}]}},"default":[],"spread":true}]}},"default":{"matches":"requires-block"}}},"default":{"any":[{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":{"matches":"r5"}},"default":{"matches":"requires-block"}}},"default":{"matches":"requires-block"}},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}]},"default":[]}},"default":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r3"}]}},"default":[],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r1"}]}},"default":[],"spread":true}]}}],"multi-line":[{"$option":"option","cases":{"multi":{"$option":"option2","cases":{"consistent":{"any":[{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":{"matches":"r5"}},"default":{"matches":"requires-block"}}},"default":{"matches":"requires-block"}},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}]},"default":[]}},"default":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r3"}]}},"default":[],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r1"}]}},"default":[],"spread":true}]}},"default":{"matches":"requires-block"}}},"default":{"any":[{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":{"matches":"r5"}},"default":{"matches":"requires-block"}}},"default":{"matches":"requires-block"}},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}]},"default":[]}},"default":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r3"}]}},"default":[],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r1"}]}},"default":[],"spread":true}]}}],"multi-or-nest":[{"$option":"option","cases":{"multi":{"$option":"option2","cases":{"consistent":{"any":[{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":{"matches":"r5"}},"default":{"matches":"requires-block"}}},"default":{"matches":"requires-block"}},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}]},"default":[]}},"default":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r3"}]}},"default":[],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r1"}]}},"default":[],"spread":true}]}},"default":{"matches":"requires-block"}}},"default":{"any":[{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":{"matches":"r5"}},"default":{"matches":"requires-block"}}},"default":{"matches":"requires-block"}},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}]},"default":[]}},"default":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r3"}]}},"default":[],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r1"}]}},"default":[],"spread":true}]}}]},"default":[],"spread":true},{"pattern":"$BODY"}]}}},"violation":{"anchor":"witness.span","code":"curly","message":"Expected { after 'else'.","fix":"{$BODY}","suppress":{"eslint":{"rules":["curly"]},"oxlint":{"rules":["curly"]},"biome":{"rules":["lint/style/useBlockStatements"]}}}},{"id":"else-unexpected","forbid":{"ast":{"language":"typescript","rule":{"all":[{"matches":"else-body"},{"matches":"one-statement-block"},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[{"not":{"$option":"option","cases":{"multi-or-nest":{"matches":"r5"}},"default":{"matches":"requires-block"}}}]},"default":[]}},"default":[{"not":{"$option":"option","cases":{"multi-or-nest":{"matches":"r5"}},"default":{"matches":"requires-block"}}}],"spread":true},{"$option":"option2","cases":{"consistent":[{"not":{"matches":"in-chain-requiring-block"}}]},"default":[],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"not":{"matches":"r5"}}]}},"default":[],"spread":true},{"matches":"r6"}]},"transform":{"IN":{"replace":{"source":"$UBF","replace":"(?s)^\\{(.*)\\}$","by":"${1}"}},"ORIG":{"replace":{"source":"$UBN","replace":"(?s)^(.*)$","by":"${1}"}}},"when":{"option":{"option":{"in":["multi","multi-or-nest"]}}}}},"violation":{"anchor":"witness.span","code":"curly","message":"Unnecessary { after 'else'.","fix":"$IN$ORIG","suppress":{"eslint":{"rules":["curly"]},"oxlint":{"rules":["curly"]},"biome":{"rules":["lint/style/useBlockStatements"]}}}},{"id":"while-missing","forbid":{"ast":{"language":"typescript","rule":{"all":[{"matches":"while-body"},{"not":{"kind":"comment"}},{"not":{"kind":"statement_block"}},{"$option":"option","cases":{"multi":[{"$option":"option","cases":{"multi":{"matches":"requires-block"}},"default":{"any":[{"matches":"requires-block"},{"$option":"option","cases":{"multi-line":[{"matches":"r4"}]},"default":[],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r3"}],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r1"}],"spread":true}]}}],"multi-line":[{"$option":"option","cases":{"multi":{"matches":"requires-block"}},"default":{"any":[{"matches":"requires-block"},{"$option":"option","cases":{"multi-line":[{"matches":"r4"}]},"default":[],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r3"}],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r1"}],"spread":true}]}}],"multi-or-nest":[{"$option":"option","cases":{"multi":{"matches":"requires-block"}},"default":{"any":[{"matches":"requires-block"},{"$option":"option","cases":{"multi-line":[{"matches":"r4"}]},"default":[],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r3"}],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r1"}],"spread":true}]}}]},"default":[],"spread":true},{"pattern":"$BODY"}]}}},"violation":{"anchor":"witness.span","code":"curly","message":"Expected { after 'while' condition.","fix":"{$BODY}","suppress":{"eslint":{"rules":["curly"]},"oxlint":{"rules":["curly"]},"biome":{"rules":["lint/style/useBlockStatements"]}}}},{"id":"while-unexpected","forbid":{"ast":{"language":"typescript","rule":{"all":[{"matches":"while-body"},{"matches":"one-statement-block"},{"not":{"$option":"option","cases":{"multi-or-nest":{"matches":"r5"}},"default":{"matches":"requires-block"}}},{"matches":"r6"}]},"transform":{"IN":{"replace":{"source":"$UBF","replace":"(?s)^\\{(.*)\\}$","by":"${1}"}},"ORIG":{"replace":{"source":"$UBN","replace":"(?s)^(.*)$","by":"${1}"}}},"when":{"option":{"option":{"in":["multi","multi-or-nest"]}}}}},"violation":{"anchor":"witness.span","code":"curly","message":"Unnecessary { after 'while' condition.","fix":"$IN$ORIG","suppress":{"eslint":{"rules":["curly"]},"oxlint":{"rules":["curly"]},"biome":{"rules":["lint/style/useBlockStatements"]}}}},{"id":"do-missing","forbid":{"ast":{"language":"typescript","rule":{"all":[{"matches":"do-body"},{"not":{"kind":"comment"}},{"not":{"kind":"statement_block"}},{"$option":"option","cases":{"multi":[{"$option":"option","cases":{"multi":{"matches":"requires-block"}},"default":{"any":[{"matches":"requires-block"},{"$option":"option","cases":{"multi-line":[{"matches":"r4"}]},"default":[],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r3"}],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r1"}],"spread":true}]}}],"multi-line":[{"$option":"option","cases":{"multi":{"matches":"requires-block"}},"default":{"any":[{"matches":"requires-block"},{"$option":"option","cases":{"multi-line":[{"matches":"r4"}]},"default":[],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r3"}],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r1"}],"spread":true}]}}],"multi-or-nest":[{"$option":"option","cases":{"multi":{"matches":"requires-block"}},"default":{"any":[{"matches":"requires-block"},{"$option":"option","cases":{"multi-line":[{"matches":"r4"}]},"default":[],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r3"}],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r1"}],"spread":true}]}}]},"default":[],"spread":true},{"pattern":"$BODY"}]}}},"violation":{"anchor":"witness.span","code":"curly","message":"Expected { after 'do'.","fix":"{$BODY}","suppress":{"eslint":{"rules":["curly"]},"oxlint":{"rules":["curly"]},"biome":{"rules":["lint/style/useBlockStatements"]}}}},{"id":"do-unexpected","forbid":{"ast":{"language":"typescript","rule":{"all":[{"matches":"do-body"},{"matches":"one-statement-block"},{"not":{"$option":"option","cases":{"multi-or-nest":{"matches":"r5"}},"default":{"matches":"requires-block"}}},{"any":[{"all":[{"matches":"r2"},{"pattern":"$UBF"},{"any":[{"inside":{"stopBy":"neighbor","kind":"do_statement","regex":"^do\\{\\s*[\\w$\\\\]","pattern":"$DOADJ"}},{"kind":"statement_block"}]}]},{"pattern":"$UBN"}]}]},"transform":{"IN":{"replace":{"source":"$UBF","replace":"(?s)^\\{(.*)\\}$","by":"${1}"}},"ORIG":{"replace":{"source":"$UBN","replace":"(?s)^(.*)$","by":"${1}"}},"SP":{"replace":{"source":"$DOADJ","replace":"(?s)^.*$","by":" "}}},"when":{"option":{"option":{"in":["multi","multi-or-nest"]}}}}},"violation":{"anchor":"witness.span","code":"curly","message":"Unnecessary { after 'do'.","fix":"$SP$IN$ORIG","suppress":{"eslint":{"rules":["curly"]},"oxlint":{"rules":["curly"]},"biome":{"rules":["lint/style/useBlockStatements"]}}}},{"id":"for-missing","forbid":{"ast":{"language":"typescript","rule":{"all":[{"matches":"for-body"},{"not":{"kind":"comment"}},{"not":{"kind":"statement_block"}},{"$option":"option","cases":{"multi":[{"$option":"option","cases":{"multi":{"matches":"requires-block"}},"default":{"any":[{"matches":"requires-block"},{"$option":"option","cases":{"multi-line":[{"matches":"r4"}]},"default":[],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r3"}],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r1"}],"spread":true}]}}],"multi-line":[{"$option":"option","cases":{"multi":{"matches":"requires-block"}},"default":{"any":[{"matches":"requires-block"},{"$option":"option","cases":{"multi-line":[{"matches":"r4"}]},"default":[],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r3"}],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r1"}],"spread":true}]}}],"multi-or-nest":[{"$option":"option","cases":{"multi":{"matches":"requires-block"}},"default":{"any":[{"matches":"requires-block"},{"$option":"option","cases":{"multi-line":[{"matches":"r4"}]},"default":[],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r3"}],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r1"}],"spread":true}]}}]},"default":[],"spread":true},{"pattern":"$BODY"}]}}},"violation":{"anchor":"witness.span","code":"curly","message":"Expected { after 'for' condition.","fix":"{$BODY}","suppress":{"eslint":{"rules":["curly"]},"oxlint":{"rules":["curly"]},"biome":{"rules":["lint/style/useBlockStatements"]}}}},{"id":"for-unexpected","forbid":{"ast":{"language":"typescript","rule":{"all":[{"matches":"for-body"},{"matches":"one-statement-block"},{"not":{"$option":"option","cases":{"multi-or-nest":{"matches":"r5"}},"default":{"matches":"requires-block"}}},{"matches":"r6"}]},"transform":{"IN":{"replace":{"source":"$UBF","replace":"(?s)^\\{(.*)\\}$","by":"${1}"}},"ORIG":{"replace":{"source":"$UBN","replace":"(?s)^(.*)$","by":"${1}"}}},"when":{"option":{"option":{"in":["multi","multi-or-nest"]}}}}},"violation":{"anchor":"witness.span","code":"curly","message":"Unnecessary { after 'for' condition.","fix":"$IN$ORIG","suppress":{"eslint":{"rules":["curly"]},"oxlint":{"rules":["curly"]},"biome":{"rules":["lint/style/useBlockStatements"]}}}},{"id":"for-in-missing","forbid":{"ast":{"language":"typescript","rule":{"all":[{"matches":"for-in-body"},{"not":{"kind":"comment"}},{"not":{"kind":"statement_block"}},{"$option":"option","cases":{"multi":[{"$option":"option","cases":{"multi":{"matches":"requires-block"}},"default":{"any":[{"matches":"requires-block"},{"$option":"option","cases":{"multi-line":[{"matches":"r4"}]},"default":[],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r3"}],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r1"}],"spread":true}]}}],"multi-line":[{"$option":"option","cases":{"multi":{"matches":"requires-block"}},"default":{"any":[{"matches":"requires-block"},{"$option":"option","cases":{"multi-line":[{"matches":"r4"}]},"default":[],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r3"}],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r1"}],"spread":true}]}}],"multi-or-nest":[{"$option":"option","cases":{"multi":{"matches":"requires-block"}},"default":{"any":[{"matches":"requires-block"},{"$option":"option","cases":{"multi-line":[{"matches":"r4"}]},"default":[],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r3"}],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r1"}],"spread":true}]}}]},"default":[],"spread":true},{"pattern":"$BODY"}]}}},"violation":{"anchor":"witness.span","code":"curly","message":"Expected { after 'for-in'.","fix":"{$BODY}","suppress":{"eslint":{"rules":["curly"]},"oxlint":{"rules":["curly"]},"biome":{"rules":["lint/style/useBlockStatements"]}}}},{"id":"for-in-unexpected","forbid":{"ast":{"language":"typescript","rule":{"all":[{"matches":"for-in-body"},{"matches":"one-statement-block"},{"not":{"$option":"option","cases":{"multi-or-nest":{"matches":"r5"}},"default":{"matches":"requires-block"}}},{"matches":"r6"}]},"transform":{"IN":{"replace":{"source":"$UBF","replace":"(?s)^\\{(.*)\\}$","by":"${1}"}},"ORIG":{"replace":{"source":"$UBN","replace":"(?s)^(.*)$","by":"${1}"}}},"when":{"option":{"option":{"in":["multi","multi-or-nest"]}}}}},"violation":{"anchor":"witness.span","code":"curly","message":"Unnecessary { after 'for-in'.","fix":"$IN$ORIG","suppress":{"eslint":{"rules":["curly"]},"oxlint":{"rules":["curly"]},"biome":{"rules":["lint/style/useBlockStatements"]}}}},{"id":"for-of-missing","forbid":{"ast":{"language":"typescript","rule":{"all":[{"matches":"for-of-body"},{"not":{"kind":"comment"}},{"not":{"kind":"statement_block"}},{"$option":"option","cases":{"multi":[{"$option":"option","cases":{"multi":{"matches":"requires-block"}},"default":{"any":[{"matches":"requires-block"},{"$option":"option","cases":{"multi-line":[{"matches":"r4"}]},"default":[],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r3"}],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r1"}],"spread":true}]}}],"multi-line":[{"$option":"option","cases":{"multi":{"matches":"requires-block"}},"default":{"any":[{"matches":"requires-block"},{"$option":"option","cases":{"multi-line":[{"matches":"r4"}]},"default":[],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r3"}],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r1"}],"spread":true}]}}],"multi-or-nest":[{"$option":"option","cases":{"multi":{"matches":"requires-block"}},"default":{"any":[{"matches":"requires-block"},{"$option":"option","cases":{"multi-line":[{"matches":"r4"}]},"default":[],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r3"}],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r1"}],"spread":true}]}}]},"default":[],"spread":true},{"pattern":"$BODY"}]}}},"violation":{"anchor":"witness.span","code":"curly","message":"Expected { after 'for-of'.","fix":"{$BODY}","suppress":{"eslint":{"rules":["curly"]},"oxlint":{"rules":["curly"]},"biome":{"rules":["lint/style/useBlockStatements"]}}}},{"id":"for-of-unexpected","forbid":{"ast":{"language":"typescript","rule":{"all":[{"matches":"for-of-body"},{"matches":"one-statement-block"},{"not":{"$option":"option","cases":{"multi-or-nest":{"matches":"r5"}},"default":{"matches":"requires-block"}}},{"matches":"r6"}]},"transform":{"IN":{"replace":{"source":"$UBF","replace":"(?s)^\\{(.*)\\}$","by":"${1}"}},"ORIG":{"replace":{"source":"$UBN","replace":"(?s)^(.*)$","by":"${1}"}}},"when":{"option":{"option":{"in":["multi","multi-or-nest"]}}}}},"violation":{"anchor":"witness.span","code":"curly","message":"Unnecessary { after 'for-of'.","fix":"$IN$ORIG","suppress":{"eslint":{"rules":["curly"]},"oxlint":{"rules":["curly"]},"biome":{"rules":["lint/style/useBlockStatements"]}}}}]}
|
|
1
|
+
{"format":"rerail.policy/v1","id":"eslint-curly","revision":2,"mode":"steer","description":"Wrap every if, else and loop body in braces, even a single statement; unbraced bodies invite bugs when lines are added.","scope":{"include":["**/*"],"exclude":[]},"clauses":[{"id":"options","define":{"options":{"option":{"type":"string","nullable":true,"default":null},"option2":{"type":"string","nullable":true,"default":null}}}},{"id":"shared","define":{"language":"typescript","utils":{"before-else":{"any":[{"precedes":{"kind":"else_clause"}},{"inside":{"any":[{"kind":"for_statement"},{"kind":"for_in_statement"},{"kind":"while_statement"},{"kind":"labeled_statement"},{"kind":"with_statement"}],"stopBy":"neighbor","matches":"before-else"}},{"inside":{"kind":"else_clause","stopBy":"neighbor","inside":{"kind":"if_statement","stopBy":"neighbor","matches":"before-else"}}}]},"braces-necessary":{"all":[{"matches":"one-statement-block"},{"any":[{"has":{"stopBy":"neighbor","any":[{"any":[{"kind":"lexical_declaration"},{"kind":"function_declaration"},{"kind":"generator_function_declaration"},{"kind":"class_declaration"}]},{"matches":"using-declaration"}]}},{"all":[{"has":{"stopBy":"neighbor","matches":"unsafe-if"}},{"matches":"before-else"}]}]}]},"chain-requires-block":{"kind":"if_statement","any":[{"has":{"stopBy":"neighbor","all":[{"matches":"if-body"},{"matches":"requires-block"}]}},{"has":{"stopBy":"neighbor","kind":"else_clause","has":{"stopBy":"neighbor","any":[{"all":[{"matches":"else-body"},{"matches":"requires-block"}]},{"matches":"chain-requires-block"}]}}}]},"chain-top-requires-block":{"kind":"if_statement","any":[{"all":[{"not":{"matches":"r15"}},{"matches":"chain-requires-block"}]},{"inside":{"stopBy":"neighbor","matches":"r10"}}]},"collapsed":{"any":[{"kind":"empty_statement"},{"all":[{"layout":{"before":{"to":"token","breaks":{"eq":0}}}},{"matches":"one-liner"}]}]},"do-body":{"all":[{"inside":{"kind":"do_statement","stopBy":"neighbor"}},{"follows":{"stopBy":{"not":{"kind":"comment"}},"all":[{"not":{"kind":"comment"}},{"regex":"^do$"}]}}]},"else-body":{"all":[{"not":{"kind":"comment"}},{"matches":"r15"},{"follows":{"stopBy":{"not":{"kind":"comment"}},"all":[{"not":{"kind":"comment"}},{"regex":"^else$"}]}},{"not":{"kind":"if_statement"}}]},"for-body":{"all":[{"inside":{"kind":"for_statement","stopBy":"neighbor"}},{"matches":"r7"}]},"for-in-body":{"all":[{"inside":{"kind":"for_in_statement","stopBy":"neighbor","has":{"regex":"^in$"}}},{"matches":"r7"}]},"for-of-body":{"all":[{"inside":{"kind":"for_in_statement","stopBy":"neighbor","has":{"regex":"^of$"}}},{"matches":"r7"}]},"hazard-next":{"any":[{"precedes":{"stopBy":{"not":{"kind":"comment"}},"all":[{"not":{"kind":"comment"}},{"regex":"^[(\\[/`+\\-]"}]}},{"not":{"matches":"r8"},"inside":{"stopBy":"neighbor","matches":"hazard-next"}}]},"if-body":{"all":[{"inside":{"kind":"if_statement","stopBy":"neighbor"}},{"matches":"r9"}]},"in-chain-requiring-block":{"inside":{"stopBy":"neighbor","any":[{"matches":"r12"},{"matches":"r10"}]}},"one-liner":{"any":[{"layout":{"span":{"eq":0}}},{"all":[{"has":{"regex":"^;$","not":{"matches":"r8"}}},{"not":{"has":{"all":[{"not":{"kind":"comment"}},{"not":{"regex":"^;$"}},{"layout":{"span":{"min":1}}}]}}},{"not":{"has":{"all":[{"not":{"kind":"comment"}},{"not":{"regex":"^;$"}},{"follows":{"stopBy":"end","not":{"kind":"comment"}}},{"matches":"r13"}]}}}]}]},"one-statement-block":{"kind":"statement_block","has":{"stopBy":"neighbor","matches":"statement"},"not":{"has":{"stopBy":"neighbor","all":[{"matches":"statement"},{"precedes":{"stopBy":"end","matches":"statement"}}]}}},"requires-block":{"all":[{"kind":"statement_block"},{"any":[{"not":{"matches":"one-statement-block"}},{"matches":"braces-necessary"}]}]},"statement":{"all":[{"not":{"kind":"comment"}},{"not":{"regex":"^[{}]$"}}]},"unsafe-if":{"any":[{"kind":"if_statement","not":{"has":{"kind":"else_clause"}}},{"kind":"if_statement","has":{"kind":"else_clause","has":{"matches":"unsafe-if"}}},{"any":[{"kind":"for_statement"},{"kind":"for_in_statement"},{"kind":"while_statement"},{"kind":"labeled_statement"},{"kind":"with_statement"}],"has":{"matches":"unsafe-if"}}]},"using-declaration":{"kind":"expression_statement","has":{"stopBy":"neighbor","any":[{"matches":"r11"},{"kind":"await_expression","has":{"stopBy":"neighbor","matches":"r11"}}]}},"while-body":{"all":[{"inside":{"kind":"while_statement","stopBy":"neighbor"}},{"matches":"r9"}]},"r1":{"all":[{"matches":"one-statement-block"},{"any":[{"has":{"kind":"comment","precedes":{"matches":"statement","stopBy":"end"},"stopBy":"neighbor"}},{"has":{"all":[{"matches":"statement"},{"not":{"matches":"one-liner"}}],"stopBy":"neighbor"}}]}]},"r2":{"any":[{"regex":"(?s);(?:\\s|//[^\\n]*\\n|/\\*.*?\\*/)*\\}$"},{"all":[{"not":{"matches":"r8"}},{"not":{"inside":{"stopBy":"end","matches":"r8"}}}]},{"all":[{"pattern":"$UBQ"},{"has":{"all":[{"not":{"inside":{"any":[{"kind":"function_expression"},{"kind":"arrow_function"},{"kind":"generator_function"},{"kind":"method_definition"}],"stopBy":"neighbor"}}},{"not":{"inside":{"not":{"pattern":"$UBQ"},"precedes":{"stopBy":"end","matches":"r14"},"stopBy":{"pattern":"$UBQ"}}}}],"kind":"statement_block","not":{"precedes":{"stopBy":"end","matches":"r14"}},"stopBy":"end"}}]},{"all":[{"has":{"any":[{"matches":"r13"},{"layout":{"after":{"breaks":{"min":1},"to":"token"}}}],"regex":"^\\}$"}},{"not":{"has":{"all":[{"not":{"kind":"comment"}},{"not":{"regex":"^\\}$"}},{"not":{"precedes":{"all":[{"not":{"kind":"comment"}},{"not":{"regex":"^\\}$"}}],"stopBy":"end"}}},{"regex":"(?:\\+\\+|--)$"}]}}},{"not":{"matches":"hazard-next"}}]}]},"r3":{"all":[{"not":{"kind":"statement_block"}},{"not":{"kind":"empty_statement"}},{"not":{"matches":"one-liner"}}]},"r4":{"all":[{"not":{"kind":"statement_block"}},{"not":{"matches":"collapsed"}}]},"r5":{"any":[{"matches":"requires-block"},{"matches":"r3"},{"matches":"r1"}]},"r6":{"any":[{"all":[{"matches":"r2"},{"pattern":"$UBF"}]},{"pattern":"$UBN"}]},"r7":{"follows":{"all":[{"not":{"kind":"comment"}},{"regex":"^\\)$"}],"stopBy":{"not":{"kind":"comment"}}}},"r8":{"precedes":{"not":{"kind":"comment"},"stopBy":"end"}},"r9":{"follows":{"all":[{"not":{"kind":"comment"}},{"kind":"parenthesized_expression"}],"stopBy":{"not":{"kind":"comment"}}}},"r10":{"inside":{"stopBy":"neighbor","matches":"r12"},"kind":"else_clause"},"r11":{"has":{"regex":"^using$","stopBy":"neighbor"},"kind":"assignment_expression"},"r12":{"kind":"if_statement","matches":"chain-top-requires-block"},"r13":{"layout":{"before":{"breaks":{"min":1},"to":"token"}}},"r14":{"not":{"any":[{"kind":"comment"},{"regex":"^\\}$"}]}},"r15":{"inside":{"kind":"else_clause","stopBy":"neighbor"}}}}},{"id":"if-missing","forbid":{"ast":{"language":"typescript","rule":{"all":[{"matches":"if-body"},{"not":{"kind":"comment"}},{"not":{"kind":"statement_block"}},{"$option":"option","cases":{"multi":[{"$option":"option","cases":{"multi":{"$option":"option2","cases":{"consistent":{"any":[{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":{"matches":"r5"}},"default":{"matches":"requires-block"}}},"default":{"matches":"requires-block"}},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}]},"default":[]}},"default":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r3"}]}},"default":[],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r1"}]}},"default":[],"spread":true}]}},"default":{"matches":"requires-block"}}},"default":{"any":[{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":{"matches":"r5"}},"default":{"matches":"requires-block"}}},"default":{"matches":"requires-block"}},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}]},"default":[]}},"default":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r3"}]}},"default":[],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r1"}]}},"default":[],"spread":true}]}}],"multi-line":[{"$option":"option","cases":{"multi":{"$option":"option2","cases":{"consistent":{"any":[{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":{"matches":"r5"}},"default":{"matches":"requires-block"}}},"default":{"matches":"requires-block"}},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}]},"default":[]}},"default":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r3"}]}},"default":[],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r1"}]}},"default":[],"spread":true}]}},"default":{"matches":"requires-block"}}},"default":{"any":[{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":{"matches":"r5"}},"default":{"matches":"requires-block"}}},"default":{"matches":"requires-block"}},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}]},"default":[]}},"default":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r3"}]}},"default":[],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r1"}]}},"default":[],"spread":true}]}}],"multi-or-nest":[{"$option":"option","cases":{"multi":{"$option":"option2","cases":{"consistent":{"any":[{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":{"matches":"r5"}},"default":{"matches":"requires-block"}}},"default":{"matches":"requires-block"}},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}]},"default":[]}},"default":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r3"}]}},"default":[],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r1"}]}},"default":[],"spread":true}]}},"default":{"matches":"requires-block"}}},"default":{"any":[{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":{"matches":"r5"}},"default":{"matches":"requires-block"}}},"default":{"matches":"requires-block"}},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}]},"default":[]}},"default":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r3"}]}},"default":[],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r1"}]}},"default":[],"spread":true}]}}]},"default":[],"spread":true},{"pattern":"$BODY"}]}}},"violation":{"anchor":"witness.span","code":"curly","message":"Expected { after 'if' condition.","fix":"{$BODY}","suppress":{"eslint":{"rules":["curly"]},"oxlint":{"rules":["curly"]},"biome":{"rules":["lint/style/useBlockStatements"]}}}},{"id":"if-unexpected","forbid":{"ast":{"language":"typescript","rule":{"all":[{"matches":"if-body"},{"matches":"one-statement-block"},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[{"not":{"$option":"option","cases":{"multi-or-nest":{"matches":"r5"}},"default":{"matches":"requires-block"}}}]},"default":[]}},"default":[{"not":{"$option":"option","cases":{"multi-or-nest":{"matches":"r5"}},"default":{"matches":"requires-block"}}}],"spread":true},{"$option":"option2","cases":{"consistent":[{"not":{"matches":"in-chain-requiring-block"}}]},"default":[],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"not":{"matches":"r5"}}]}},"default":[],"spread":true},{"matches":"r6"}]},"transform":{"IN":{"replace":{"source":"$UBF","replace":"(?s)^\\{(.*)\\}$","by":"${1}"}},"ORIG":{"replace":{"source":"$UBN","replace":"(?s)^(.*)$","by":"${1}"}}},"when":{"option":{"option":{"in":["multi","multi-or-nest"]}}}}},"violation":{"anchor":"witness.span","code":"curly","message":"Unnecessary { after 'if' condition.","fix":"$IN$ORIG","suppress":{"eslint":{"rules":["curly"]},"oxlint":{"rules":["curly"]},"biome":{"rules":["lint/style/useBlockStatements"]}}}},{"id":"else-missing","forbid":{"ast":{"language":"typescript","rule":{"all":[{"matches":"else-body"},{"not":{"kind":"comment"}},{"not":{"kind":"statement_block"}},{"$option":"option","cases":{"multi":[{"$option":"option","cases":{"multi":{"$option":"option2","cases":{"consistent":{"any":[{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":{"matches":"r5"}},"default":{"matches":"requires-block"}}},"default":{"matches":"requires-block"}},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}]},"default":[]}},"default":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r3"}]}},"default":[],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r1"}]}},"default":[],"spread":true}]}},"default":{"matches":"requires-block"}}},"default":{"any":[{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":{"matches":"r5"}},"default":{"matches":"requires-block"}}},"default":{"matches":"requires-block"}},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}]},"default":[]}},"default":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r3"}]}},"default":[],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r1"}]}},"default":[],"spread":true}]}}],"multi-line":[{"$option":"option","cases":{"multi":{"$option":"option2","cases":{"consistent":{"any":[{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":{"matches":"r5"}},"default":{"matches":"requires-block"}}},"default":{"matches":"requires-block"}},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}]},"default":[]}},"default":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r3"}]}},"default":[],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r1"}]}},"default":[],"spread":true}]}},"default":{"matches":"requires-block"}}},"default":{"any":[{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":{"matches":"r5"}},"default":{"matches":"requires-block"}}},"default":{"matches":"requires-block"}},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}]},"default":[]}},"default":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r3"}]}},"default":[],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r1"}]}},"default":[],"spread":true}]}}],"multi-or-nest":[{"$option":"option","cases":{"multi":{"$option":"option2","cases":{"consistent":{"any":[{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":{"matches":"r5"}},"default":{"matches":"requires-block"}}},"default":{"matches":"requires-block"}},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}]},"default":[]}},"default":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r3"}]}},"default":[],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r1"}]}},"default":[],"spread":true}]}},"default":{"matches":"requires-block"}}},"default":{"any":[{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":{"matches":"r5"}},"default":{"matches":"requires-block"}}},"default":{"matches":"requires-block"}},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}]},"default":[]}},"default":[{"$option":"option2","cases":{"consistent":{"matches":"in-chain-requiring-block"}},"default":{"matches":"r4"}}],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r3"}]}},"default":[],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"matches":"r1"}]}},"default":[],"spread":true}]}}]},"default":[],"spread":true},{"pattern":"$BODY"}]}}},"violation":{"anchor":"witness.span","code":"curly","message":"Expected { after 'else'.","fix":"{$BODY}","suppress":{"eslint":{"rules":["curly"]},"oxlint":{"rules":["curly"]},"biome":{"rules":["lint/style/useBlockStatements"]}}}},{"id":"else-unexpected","forbid":{"ast":{"language":"typescript","rule":{"all":[{"matches":"else-body"},{"matches":"one-statement-block"},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[{"not":{"$option":"option","cases":{"multi-or-nest":{"matches":"r5"}},"default":{"matches":"requires-block"}}}]},"default":[]}},"default":[{"not":{"$option":"option","cases":{"multi-or-nest":{"matches":"r5"}},"default":{"matches":"requires-block"}}}],"spread":true},{"$option":"option2","cases":{"consistent":[{"not":{"matches":"in-chain-requiring-block"}}]},"default":[],"spread":true},{"$option":"option","cases":{"multi-or-nest":{"$option":"option2","cases":{"consistent":[]},"default":[{"not":{"matches":"r5"}}]}},"default":[],"spread":true},{"matches":"r6"}]},"transform":{"IN":{"replace":{"source":"$UBF","replace":"(?s)^\\{(.*)\\}$","by":"${1}"}},"ORIG":{"replace":{"source":"$UBN","replace":"(?s)^(.*)$","by":"${1}"}}},"when":{"option":{"option":{"in":["multi","multi-or-nest"]}}}}},"violation":{"anchor":"witness.span","code":"curly","message":"Unnecessary { after 'else'.","fix":"$IN$ORIG","suppress":{"eslint":{"rules":["curly"]},"oxlint":{"rules":["curly"]},"biome":{"rules":["lint/style/useBlockStatements"]}}}},{"id":"while-missing","forbid":{"ast":{"language":"typescript","rule":{"all":[{"matches":"while-body"},{"not":{"kind":"comment"}},{"not":{"kind":"statement_block"}},{"$option":"option","cases":{"multi":[{"$option":"option","cases":{"multi":{"matches":"requires-block"}},"default":{"any":[{"matches":"requires-block"},{"$option":"option","cases":{"multi-line":[{"matches":"r4"}]},"default":[],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r3"}],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r1"}],"spread":true}]}}],"multi-line":[{"$option":"option","cases":{"multi":{"matches":"requires-block"}},"default":{"any":[{"matches":"requires-block"},{"$option":"option","cases":{"multi-line":[{"matches":"r4"}]},"default":[],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r3"}],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r1"}],"spread":true}]}}],"multi-or-nest":[{"$option":"option","cases":{"multi":{"matches":"requires-block"}},"default":{"any":[{"matches":"requires-block"},{"$option":"option","cases":{"multi-line":[{"matches":"r4"}]},"default":[],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r3"}],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r1"}],"spread":true}]}}]},"default":[],"spread":true},{"pattern":"$BODY"}]}}},"violation":{"anchor":"witness.span","code":"curly","message":"Expected { after 'while' condition.","fix":"{$BODY}","suppress":{"eslint":{"rules":["curly"]},"oxlint":{"rules":["curly"]},"biome":{"rules":["lint/style/useBlockStatements"]}}}},{"id":"while-unexpected","forbid":{"ast":{"language":"typescript","rule":{"all":[{"matches":"while-body"},{"matches":"one-statement-block"},{"not":{"$option":"option","cases":{"multi-or-nest":{"matches":"r5"}},"default":{"matches":"requires-block"}}},{"matches":"r6"}]},"transform":{"IN":{"replace":{"source":"$UBF","replace":"(?s)^\\{(.*)\\}$","by":"${1}"}},"ORIG":{"replace":{"source":"$UBN","replace":"(?s)^(.*)$","by":"${1}"}}},"when":{"option":{"option":{"in":["multi","multi-or-nest"]}}}}},"violation":{"anchor":"witness.span","code":"curly","message":"Unnecessary { after 'while' condition.","fix":"$IN$ORIG","suppress":{"eslint":{"rules":["curly"]},"oxlint":{"rules":["curly"]},"biome":{"rules":["lint/style/useBlockStatements"]}}}},{"id":"do-missing","forbid":{"ast":{"language":"typescript","rule":{"all":[{"matches":"do-body"},{"not":{"kind":"comment"}},{"not":{"kind":"statement_block"}},{"$option":"option","cases":{"multi":[{"$option":"option","cases":{"multi":{"matches":"requires-block"}},"default":{"any":[{"matches":"requires-block"},{"$option":"option","cases":{"multi-line":[{"matches":"r4"}]},"default":[],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r3"}],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r1"}],"spread":true}]}}],"multi-line":[{"$option":"option","cases":{"multi":{"matches":"requires-block"}},"default":{"any":[{"matches":"requires-block"},{"$option":"option","cases":{"multi-line":[{"matches":"r4"}]},"default":[],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r3"}],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r1"}],"spread":true}]}}],"multi-or-nest":[{"$option":"option","cases":{"multi":{"matches":"requires-block"}},"default":{"any":[{"matches":"requires-block"},{"$option":"option","cases":{"multi-line":[{"matches":"r4"}]},"default":[],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r3"}],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r1"}],"spread":true}]}}]},"default":[],"spread":true},{"pattern":"$BODY"}]}}},"violation":{"anchor":"witness.span","code":"curly","message":"Expected { after 'do'.","fix":"{$BODY}","suppress":{"eslint":{"rules":["curly"]},"oxlint":{"rules":["curly"]},"biome":{"rules":["lint/style/useBlockStatements"]}}}},{"id":"do-unexpected","forbid":{"ast":{"language":"typescript","rule":{"all":[{"matches":"do-body"},{"matches":"one-statement-block"},{"not":{"$option":"option","cases":{"multi-or-nest":{"matches":"r5"}},"default":{"matches":"requires-block"}}},{"any":[{"all":[{"matches":"r2"},{"pattern":"$UBF"},{"any":[{"inside":{"stopBy":"neighbor","kind":"do_statement","regex":"^do\\{\\s*[\\w$\\\\]","pattern":"$DOADJ"}},{"kind":"statement_block"}]}]},{"pattern":"$UBN"}]}]},"transform":{"IN":{"replace":{"source":"$UBF","replace":"(?s)^\\{(.*)\\}$","by":"${1}"}},"ORIG":{"replace":{"source":"$UBN","replace":"(?s)^(.*)$","by":"${1}"}},"SP":{"replace":{"source":"$DOADJ","replace":"(?s)^.*$","by":" "}}},"when":{"option":{"option":{"in":["multi","multi-or-nest"]}}}}},"violation":{"anchor":"witness.span","code":"curly","message":"Unnecessary { after 'do'.","fix":"$SP$IN$ORIG","suppress":{"eslint":{"rules":["curly"]},"oxlint":{"rules":["curly"]},"biome":{"rules":["lint/style/useBlockStatements"]}}}},{"id":"for-missing","forbid":{"ast":{"language":"typescript","rule":{"all":[{"matches":"for-body"},{"not":{"kind":"comment"}},{"not":{"kind":"statement_block"}},{"$option":"option","cases":{"multi":[{"$option":"option","cases":{"multi":{"matches":"requires-block"}},"default":{"any":[{"matches":"requires-block"},{"$option":"option","cases":{"multi-line":[{"matches":"r4"}]},"default":[],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r3"}],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r1"}],"spread":true}]}}],"multi-line":[{"$option":"option","cases":{"multi":{"matches":"requires-block"}},"default":{"any":[{"matches":"requires-block"},{"$option":"option","cases":{"multi-line":[{"matches":"r4"}]},"default":[],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r3"}],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r1"}],"spread":true}]}}],"multi-or-nest":[{"$option":"option","cases":{"multi":{"matches":"requires-block"}},"default":{"any":[{"matches":"requires-block"},{"$option":"option","cases":{"multi-line":[{"matches":"r4"}]},"default":[],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r3"}],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r1"}],"spread":true}]}}]},"default":[],"spread":true},{"pattern":"$BODY"}]}}},"violation":{"anchor":"witness.span","code":"curly","message":"Expected { after 'for' condition.","fix":"{$BODY}","suppress":{"eslint":{"rules":["curly"]},"oxlint":{"rules":["curly"]},"biome":{"rules":["lint/style/useBlockStatements"]}}}},{"id":"for-unexpected","forbid":{"ast":{"language":"typescript","rule":{"all":[{"matches":"for-body"},{"matches":"one-statement-block"},{"not":{"$option":"option","cases":{"multi-or-nest":{"matches":"r5"}},"default":{"matches":"requires-block"}}},{"matches":"r6"}]},"transform":{"IN":{"replace":{"source":"$UBF","replace":"(?s)^\\{(.*)\\}$","by":"${1}"}},"ORIG":{"replace":{"source":"$UBN","replace":"(?s)^(.*)$","by":"${1}"}}},"when":{"option":{"option":{"in":["multi","multi-or-nest"]}}}}},"violation":{"anchor":"witness.span","code":"curly","message":"Unnecessary { after 'for' condition.","fix":"$IN$ORIG","suppress":{"eslint":{"rules":["curly"]},"oxlint":{"rules":["curly"]},"biome":{"rules":["lint/style/useBlockStatements"]}}}},{"id":"for-in-missing","forbid":{"ast":{"language":"typescript","rule":{"all":[{"matches":"for-in-body"},{"not":{"kind":"comment"}},{"not":{"kind":"statement_block"}},{"$option":"option","cases":{"multi":[{"$option":"option","cases":{"multi":{"matches":"requires-block"}},"default":{"any":[{"matches":"requires-block"},{"$option":"option","cases":{"multi-line":[{"matches":"r4"}]},"default":[],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r3"}],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r1"}],"spread":true}]}}],"multi-line":[{"$option":"option","cases":{"multi":{"matches":"requires-block"}},"default":{"any":[{"matches":"requires-block"},{"$option":"option","cases":{"multi-line":[{"matches":"r4"}]},"default":[],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r3"}],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r1"}],"spread":true}]}}],"multi-or-nest":[{"$option":"option","cases":{"multi":{"matches":"requires-block"}},"default":{"any":[{"matches":"requires-block"},{"$option":"option","cases":{"multi-line":[{"matches":"r4"}]},"default":[],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r3"}],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r1"}],"spread":true}]}}]},"default":[],"spread":true},{"pattern":"$BODY"}]}}},"violation":{"anchor":"witness.span","code":"curly","message":"Expected { after 'for-in'.","fix":"{$BODY}","suppress":{"eslint":{"rules":["curly"]},"oxlint":{"rules":["curly"]},"biome":{"rules":["lint/style/useBlockStatements"]}}}},{"id":"for-in-unexpected","forbid":{"ast":{"language":"typescript","rule":{"all":[{"matches":"for-in-body"},{"matches":"one-statement-block"},{"not":{"$option":"option","cases":{"multi-or-nest":{"matches":"r5"}},"default":{"matches":"requires-block"}}},{"matches":"r6"}]},"transform":{"IN":{"replace":{"source":"$UBF","replace":"(?s)^\\{(.*)\\}$","by":"${1}"}},"ORIG":{"replace":{"source":"$UBN","replace":"(?s)^(.*)$","by":"${1}"}}},"when":{"option":{"option":{"in":["multi","multi-or-nest"]}}}}},"violation":{"anchor":"witness.span","code":"curly","message":"Unnecessary { after 'for-in'.","fix":"$IN$ORIG","suppress":{"eslint":{"rules":["curly"]},"oxlint":{"rules":["curly"]},"biome":{"rules":["lint/style/useBlockStatements"]}}}},{"id":"for-of-missing","forbid":{"ast":{"language":"typescript","rule":{"all":[{"matches":"for-of-body"},{"not":{"kind":"comment"}},{"not":{"kind":"statement_block"}},{"$option":"option","cases":{"multi":[{"$option":"option","cases":{"multi":{"matches":"requires-block"}},"default":{"any":[{"matches":"requires-block"},{"$option":"option","cases":{"multi-line":[{"matches":"r4"}]},"default":[],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r3"}],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r1"}],"spread":true}]}}],"multi-line":[{"$option":"option","cases":{"multi":{"matches":"requires-block"}},"default":{"any":[{"matches":"requires-block"},{"$option":"option","cases":{"multi-line":[{"matches":"r4"}]},"default":[],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r3"}],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r1"}],"spread":true}]}}],"multi-or-nest":[{"$option":"option","cases":{"multi":{"matches":"requires-block"}},"default":{"any":[{"matches":"requires-block"},{"$option":"option","cases":{"multi-line":[{"matches":"r4"}]},"default":[],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r3"}],"spread":true},{"$option":"option","cases":{"multi-line":[]},"default":[{"matches":"r1"}],"spread":true}]}}]},"default":[],"spread":true},{"pattern":"$BODY"}]}}},"violation":{"anchor":"witness.span","code":"curly","message":"Expected { after 'for-of'.","fix":"{$BODY}","suppress":{"eslint":{"rules":["curly"]},"oxlint":{"rules":["curly"]},"biome":{"rules":["lint/style/useBlockStatements"]}}}},{"id":"for-of-unexpected","forbid":{"ast":{"language":"typescript","rule":{"all":[{"matches":"for-of-body"},{"matches":"one-statement-block"},{"not":{"$option":"option","cases":{"multi-or-nest":{"matches":"r5"}},"default":{"matches":"requires-block"}}},{"matches":"r6"}]},"transform":{"IN":{"replace":{"source":"$UBF","replace":"(?s)^\\{(.*)\\}$","by":"${1}"}},"ORIG":{"replace":{"source":"$UBN","replace":"(?s)^(.*)$","by":"${1}"}}},"when":{"option":{"option":{"in":["multi","multi-or-nest"]}}}}},"violation":{"anchor":"witness.span","code":"curly","message":"Unnecessary { after 'for-of'.","fix":"$IN$ORIG","suppress":{"eslint":{"rules":["curly"]},"oxlint":{"rules":["curly"]},"biome":{"rules":["lint/style/useBlockStatements"]}}}}]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"id": "eslint-default-case-last",
|
|
4
4
|
"revision": 3,
|
|
5
5
|
"mode": "steer",
|
|
6
|
-
"description": "
|
|
6
|
+
"description": "Put the default clause last in a switch statement; a default in the middle is easy to misread.",
|
|
7
7
|
"scope": {
|
|
8
8
|
"include": [
|
|
9
9
|
"**/*"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"format":"rerail.policy/v1","id":"eslint-default-case","revision":4,"mode":"steer","description":"
|
|
1
|
+
{"format":"rerail.policy/v1","id":"eslint-default-case","revision":4,"mode":"steer","description":"Add a default case to every switch, or a trailing \"no default\" comment when omitting it is deliberate.","scope":{"include":["**/*"],"exclude":[]},"clauses":[{"id":"options","define":{"options":{"commentPattern":{"type":"string","nullable":true,"default":null}}}},{"id":"missing-default","forbid":{"ast":{"language":"typescript","rule":{"all":[{"kind":"switch_statement"},{"has":{"stopBy":"neighbor","kind":"switch_body","all":[{"has":{"stopBy":"neighbor","kind":"switch_case"}},{"not":{"has":{"stopBy":"neighbor","kind":"switch_default"}}},{"not":{"any":[{"has":{"stopBy":"neighbor","all":[{"kind":"comment","regex":{"$option":"commentPattern","cases":{".?":"(?s)^(?://|/\\*)\\s*","default case omitted":"(?s)^(?://|/\\*)\\s*.*default case omitted","^skip default":"(?s)^(?://|/\\*)\\s*skip default","default":"(?s)^(?://|/\\*)\\s*.*default","skipped default case":"(?s)^(?://|/\\*)\\s*.*skipped default case","default omitted":"(?s)^(?://|/\\*)\\s*.*default omitted"},"default":"(?i)^(?://|/\\*)\\s*no default\\s*(?:\\*/)?$"}},{"precedes":{"stopBy":"neighbor","regex":"^\\}$"}}]}},{"has":{"stopBy":"neighbor","kind":"switch_case","precedes":{"stopBy":"neighbor","regex":"^\\}$"},"has":{"stopBy":"neighbor","all":[{"kind":"comment","regex":{"$option":"commentPattern","cases":{".?":"(?s)^(?://|/\\*)\\s*","default case omitted":"(?s)^(?://|/\\*)\\s*.*default case omitted","^skip default":"(?s)^(?://|/\\*)\\s*skip default","default":"(?s)^(?://|/\\*)\\s*.*default","skipped default case":"(?s)^(?://|/\\*)\\s*.*skipped default case","default omitted":"(?s)^(?://|/\\*)\\s*.*default omitted"},"default":"(?i)^(?://|/\\*)\\s*no default\\s*(?:\\*/)?$"}},{"not":{"precedes":{"stopBy":"neighbor","regex":"[\\s\\S]"}}}]}}}]}}]}}]}}},"violation":{"anchor":"witness.span","code":"default-case","message":"Add a default case to this switch, or a `// no default` comment if leaving it out is deliberate.","suppress":{"eslint":{"rules":["default-case"]},"oxlint":{"rules":["default-case"]},"biome":{"rules":["lint/style/useDefaultSwitchClause"]}}}}]}
|
package/rules/eslint-eqeqeq.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"id": "eslint-eqeqeq",
|
|
4
4
|
"revision": 4,
|
|
5
5
|
"mode": "steer",
|
|
6
|
-
"description": "
|
|
6
|
+
"description": "Use === and !== instead of == and !=; loose equality applies surprising type coercion.",
|
|
7
7
|
"scope": {
|
|
8
8
|
"include": [
|
|
9
9
|
"**/*.ts",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"format":"rerail.policy/v1","id":"eslint-func-style","revision":3,"mode":"steer","description":"
|
|
1
|
+
{"format":"rerail.policy/v1","id":"eslint-func-style","revision":3,"mode":"steer","description":"Use function expressions assigned to variables instead of function declarations, except for default exports and TypeScript overloads.","scope":{"include":["**/*"],"exclude":[]},"clauses":[{"id":"options","define":{"options":{"option":{"type":"string","nullable":true,"default":null},"overrides.namedExports":{"type":"string","nullable":true,"default":null},"allowArrowFunctions":{"type":"boolean","nullable":true,"default":null},"allowTypeAnnotation":{"type":"boolean","nullable":true,"default":null}}}},{"id":"function-declaration","forbid":{"ast":{"language":"typescript","utils":{"fn-decl":{"any":[{"kind":"function_declaration"},{"kind":"generator_function_declaration"}]},"export-default":{"inside":{"kind":"export_statement","has":{"regex":"^default$","stopBy":"neighbor"},"stopBy":"neighbor"}},"signature-n":{"kind":"function_signature","has":{"kind":"identifier","pattern":"$N","stopBy":"neighbor"}},"overloaded":{"any":[{"precedes":{"stopBy":"end","matches":"signature-n"}},{"follows":{"stopBy":"end","matches":"signature-n"}},{"inside":{"kind":"export_statement","any":[{"precedes":{"stopBy":"end","kind":"export_statement","has":{"matches":"signature-n","stopBy":"neighbor"}}},{"follows":{"stopBy":"end","kind":"export_statement","has":{"matches":"signature-n","stopBy":"neighbor"}}}],"stopBy":"neighbor"}},{"inside":{"kind":"switch_case","inside":{"kind":"switch_body","has":{"kind":"switch_case","has":{"matches":"signature-n","stopBy":"neighbor"},"stopBy":"neighbor"},"stopBy":"neighbor"},"stopBy":"neighbor"}}]},"exported":{"inside":{"kind":"export_statement","stopBy":"neighbor"}}},"rule":{"matches":"fn-decl","all":[{"any":[{"$option":"overrides.namedExports","cases":{"expression":{"$option":"option","cases":{"expression":[]},"default":[{"$option":"option","cases":{"declaration":{"matches":"exported"}},"default":{"all":[{"not":{"matches":"export-default"}},{"$option":"overrides.namedExports","cases":{"declaration":[{"not":{"matches":"exported"}}],"ignore":[{"not":{"matches":"exported"}}]},"default":[],"spread":true}]}}]}},"default":[{"$option":"option","cases":{"declaration":{"matches":"exported"}},"default":{"all":[{"not":{"matches":"export-default"}},{"$option":"overrides.namedExports","cases":{"declaration":[{"not":{"matches":"exported"}}],"ignore":[{"not":{"matches":"exported"}}]},"default":[],"spread":true}]}}],"spread":true},{"$option":"overrides.namedExports","cases":{"expression":{"$option":"option","cases":{"expression":[{"all":[{"not":{"matches":"export-default"}},{"not":{"matches":"exported"}}]}]},"default":[]}},"default":[],"spread":true},{"$option":"overrides.namedExports","cases":{"expression":{"$option":"option","cases":{"expression":[{"matches":"exported"}]},"default":[]}},"default":[],"spread":true}]},{"has":{"kind":"identifier","pattern":"$N","stopBy":"neighbor"}},{"not":{"matches":"overloaded"}}]},"when":{"option":{"$option":"option","cases":{"declaration":{"$option":"overrides.namedExports","cases":{"expression":{"option":{"not":{"in":[]}}}},"default":{"option":{"in":[]}}}},"default":{"option":{"not":{"in":[]}}}}}}},"violation":{"anchor":"witness.span","code":"func-style","message":"Expected a function expression.","suppress":{"eslint":{"rules":["func-style"]},"oxlint":{"rules":["func-style"]}}}},{"id":"function-expression-declarator","forbid":{"ast":{"language":"typescript","utils":{"checked-fn":{"any":[{"kind":"parenthesized_expression","has":{"matches":"checked-fn","stopBy":"neighbor"}},{"kind":"function_expression"},{"kind":"generator_function"}]},"checked-arrow":{"any":[{"kind":"parenthesized_expression","has":{"matches":"checked-arrow","stopBy":"neighbor"}},{"kind":"arrow_function","not":{"has":{"stopBy":{"any":[{"kind":"function_declaration"},{"kind":"generator_function_declaration"},{"kind":"function_expression"},{"kind":"generator_function"},{"kind":"arrow_function"},{"kind":"method_definition"}]},"any":[{"kind":"this"},{"kind":"super"}]}}}]},"declarator-exported":{"inside":{"any":[{"kind":"lexical_declaration"},{"kind":"variable_declaration"}],"inside":{"kind":"export_statement","stopBy":"neighbor"},"stopBy":"neighbor"}}},"rule":{"kind":"variable_declarator","all":[{"$option":"allowArrowFunctions","cases":{"true":{"$option":"overrides.namedExports","cases":{"expression":[],"ignore":[]},"default":[{"any":[{"$option":"overrides.namedExports","cases":{"declaration":{"$option":"option","cases":{"declaration":[]},"default":[{"$option":"overrides.namedExports","cases":{"expression":{"not":{"matches":"declarator-exported"}},"declaration":{"matches":"declarator-exported"},"ignore":{"not":{"matches":"declarator-exported"}}},"default":{"kind":"variable_declarator"}}]}},"default":[{"$option":"overrides.namedExports","cases":{"expression":{"not":{"matches":"declarator-exported"}},"declaration":{"matches":"declarator-exported"},"ignore":{"not":{"matches":"declarator-exported"}}},"default":{"kind":"variable_declarator"}}],"spread":true},{"$option":"overrides.namedExports","cases":{"declaration":{"$option":"option","cases":{"declaration":[{"not":{"matches":"declarator-exported"}}]},"default":[]}},"default":[],"spread":true},{"$option":"overrides.namedExports","cases":{"declaration":{"$option":"option","cases":{"declaration":[{"matches":"declarator-exported"}]},"default":[]}},"default":[],"spread":true}]}]}},"default":[{"any":[{"$option":"overrides.namedExports","cases":{"declaration":{"$option":"option","cases":{"declaration":[]},"default":[{"$option":"overrides.namedExports","cases":{"expression":{"not":{"matches":"declarator-exported"}},"declaration":{"matches":"declarator-exported"},"ignore":{"not":{"matches":"declarator-exported"}}},"default":{"kind":"variable_declarator"}}]}},"default":[{"$option":"overrides.namedExports","cases":{"expression":{"not":{"matches":"declarator-exported"}},"declaration":{"matches":"declarator-exported"},"ignore":{"not":{"matches":"declarator-exported"}}},"default":{"kind":"variable_declarator"}}],"spread":true},{"$option":"overrides.namedExports","cases":{"declaration":{"$option":"option","cases":{"declaration":[{"not":{"matches":"declarator-exported"}}]},"default":[]}},"default":[],"spread":true},{"$option":"overrides.namedExports","cases":{"declaration":{"$option":"option","cases":{"declaration":[{"matches":"declarator-exported"}]},"default":[]}},"default":[],"spread":true}]}],"spread":true},{"$option":"allowArrowFunctions","cases":{"true":{"$option":"overrides.namedExports","cases":{"expression":[],"ignore":[]},"default":[{"has":{"any":[{"matches":"checked-fn"},{"$option":"allowArrowFunctions","cases":{"true":[]},"default":[{"matches":"checked-arrow"}],"spread":true}],"stopBy":"neighbor"}}]}},"default":[{"has":{"any":[{"matches":"checked-fn"},{"$option":"allowArrowFunctions","cases":{"true":[]},"default":[{"matches":"checked-arrow"}],"spread":true}],"stopBy":"neighbor"}}],"spread":true},{"$option":"allowTypeAnnotation","cases":{"true":[{"not":{"has":{"kind":"type_annotation","stopBy":"neighbor"}}}]},"default":[],"spread":true},{"$option":"allowArrowFunctions","cases":{"true":{"$option":"overrides.namedExports","cases":{"expression":[{"any":[{"not":{"matches":"declarator-exported"}}]}],"ignore":[{"any":[{"not":{"matches":"declarator-exported"}}]}]},"default":[]}},"default":[],"spread":true},{"$option":"allowArrowFunctions","cases":{"true":{"$option":"overrides.namedExports","cases":{"expression":[{"has":{"any":[{"matches":"checked-fn"}],"stopBy":"neighbor"}}],"ignore":[{"has":{"any":[{"matches":"checked-fn"}],"stopBy":"neighbor"}}]},"default":[]}},"default":[],"spread":true}]},"when":{"option":{"$option":"overrides.namedExports","cases":{"declaration":{"option":{"not":{"in":[]}}}},"default":{"$option":"option","cases":{"declaration":{"option":{"not":{"in":[]}}}},"default":{"option":{"in":[]}}}}}}},"violation":{"anchor":"witness.span","code":"func-style","message":"Expected a function declaration.","suppress":{"eslint":{"rules":["func-style"]},"oxlint":{"rules":["func-style"]}}}}]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"id": "eslint-guard-for-in",
|
|
4
4
|
"revision": 3,
|
|
5
5
|
"mode": "steer",
|
|
6
|
-
"description": "
|
|
6
|
+
"description": "Guard the body of every for-in loop with an if check; for-in also iterates inherited properties from the prototype chain.",
|
|
7
7
|
"scope": {
|
|
8
8
|
"include": [
|
|
9
9
|
"**/*"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"format":"rerail.policy/v1","id":"eslint-no-bitwise","revision":4,"mode":"steer","description":"
|
|
1
|
+
{"format":"rerail.policy/v1","id":"eslint-no-bitwise","revision":4,"mode":"steer","description":"Avoid bitwise operators; they are rare in application code and usually a typo for a logical operator.","scope":{"include":["**/*"],"exclude":[]},"clauses":[{"id":"options","define":{"options":{"allow":{"type":"array","items":"string","nullable":true,"default":null},"int32Hint":{"type":"boolean","nullable":true,"default":null}}}},{"id":"bitwise-operator","forbid":{"ast":{"language":"typescript","rule":{"$option":"int32Hint","cases":{"true":{"all":[{"any":[{"kind":"binary_expression"},{"kind":"augmented_assignment_expression"},{"kind":"unary_expression"}],"has":{"pattern":"$$OP","regex":"^(\\^|\\||\\&|<<|>>|>>>|\\^=|\\|=|\\&=|<<=|>>=|>>>=|\\~)$","stopBy":"neighbor"}},{"not":{"all":[{"kind":"binary_expression"},{"has":{"regex":"^\\|$","stopBy":"neighbor"}},{"has":{"kind":"number","regex":"^(0[xXoObB])?0*(\\.0*)?([eE][+-]?[0-9]+)?$","stopBy":"neighbor","not":{"precedes":{"regex":"[\\s\\S]","stopBy":"neighbor"}}}}]}}]}},"default":{"any":[{"kind":"binary_expression"},{"kind":"augmented_assignment_expression"},{"kind":"unary_expression"}],"has":{"pattern":"$$OP","regex":{"$option":"allow","cases":{"[\"~\"]":"^(\\^|\\||\\&|<<|>>|>>>|\\^=|\\|=|\\&=|<<=|>>=|>>>=)$","[\"~\",\"<<\"]":"^(\\^|\\||\\&|>>|>>>|\\^=|\\|=|\\&=|<<=|>>=|>>>=)$","[\"|\"]":"^(\\^|\\&|<<|>>|>>>|\\^=|\\|=|\\&=|<<=|>>=|>>>=|\\~)$"},"default":"^(\\^|\\||\\&|<<|>>|>>>|\\^=|\\|=|\\&=|<<=|>>=|>>>=|\\~)$"},"stopBy":"neighbor"}}}}},"violation":{"anchor":"witness.span","code":"no-bitwise","message":"Replace '$OP' with the logical or arithmetic operator you meant.","suppress":{"eslint":{"rules":["no-bitwise"]},"oxlint":{"rules":["no-bitwise"]},"biome":{"rules":["lint/suspicious/noBitwiseOperators"]}}}}]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"id": "eslint-no-caller",
|
|
4
4
|
"revision": 2,
|
|
5
5
|
"mode": "steer",
|
|
6
|
-
"description": "
|
|
6
|
+
"description": "Don't use arguments.callee or arguments.caller; they are deprecated and throw 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-caller",
|
|
47
|
-
"message": "
|
|
47
|
+
"message": "Replace arguments.$PROP with a reference to the function by name or an explicit parameter.",
|
|
48
48
|
"suppress": {
|
|
49
49
|
"eslint": {
|
|
50
50
|
"rules": [
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"id": "eslint-no-case-declarations",
|
|
4
4
|
"revision": 3,
|
|
5
5
|
"mode": "steer",
|
|
6
|
-
"description": "
|
|
6
|
+
"description": "Wrap let, const, function and class declarations inside a switch case in braces; otherwise they leak into the whole switch.",
|
|
7
7
|
"scope": {
|
|
8
8
|
"include": [
|
|
9
9
|
"**/*"
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
"violation": {
|
|
78
78
|
"anchor": "witness.span",
|
|
79
79
|
"code": "no-case-declarations",
|
|
80
|
-
"message": "
|
|
80
|
+
"message": "Wrap this case's body in braces so the declaration stays scoped to it.",
|
|
81
81
|
"suppress": {
|
|
82
82
|
"eslint": {
|
|
83
83
|
"rules": [
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"id": "eslint-no-compare-neg-zero",
|
|
4
4
|
"revision": 3,
|
|
5
5
|
"mode": "steer",
|
|
6
|
-
"description": "
|
|
6
|
+
"description": "Don't compare against -0 with equality or relational operators; they treat -0 and 0 as equal, so use Object.is instead.",
|
|
7
7
|
"scope": {
|
|
8
8
|
"include": [
|
|
9
9
|
"**/*.ts",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"violation": {
|
|
86
86
|
"anchor": "witness.span",
|
|
87
87
|
"code": "no-compare-neg-zero",
|
|
88
|
-
"message": "
|
|
88
|
+
"message": "Replace this '$$OP' comparison with Object.is(value, -0), or compare against 0.",
|
|
89
89
|
"suppress": {
|
|
90
90
|
"eslint": {
|
|
91
91
|
"rules": [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"format":"rerail.policy/v1","id":"eslint-no-cond-assign","revision":3,"mode":"steer","description":"
|
|
1
|
+
{"format":"rerail.policy/v1","id":"eslint-no-cond-assign","revision":3,"mode":"steer","description":"Avoid assignments in if, while, for and ternary conditions unless wrapped in extra parentheses; they are usually a mistyped comparison.","scope":{"include":["**/*"],"exclude":[]},"clauses":[{"id":"options","define":{"options":{"option":{"type":"string","nullable":true,"default":null}}}},{"id":"shared","define":{"language":"typescript","utils":{"any-test":{"any":[{"matches":"test-if"},{"matches":"test-while"},{"matches":"test-do"},{"matches":"test-for"},{"matches":"test-ternary"}]},"stop":{"any":[{"kind":"function_declaration"},{"kind":"function_expression"},{"kind":"arrow_function"},{"kind":"generator_function"},{"kind":"generator_function_declaration"},{"kind":"method_definition"},{"matches":"any-test"}]},"test-do":{"kind":"parenthesized_expression","inside":{"kind":"do_statement","stopBy":"neighbor"}},"test-for":{"all":[{"matches":"r3"},{"matches":"r1"},{"matches":"r2"}]},"test-if":{"kind":"parenthesized_expression","inside":{"kind":"if_statement","stopBy":"neighbor"}},"test-ternary":{"all":[{"precedes":{"regex":"^\\?$","stopBy":"neighbor"}},{"inside":{"kind":"ternary_expression","stopBy":"neighbor"}}]},"test-while":{"kind":"parenthesized_expression","inside":{"kind":"while_statement","stopBy":"neighbor"}},"r1":{"not":{"follows":{"regex":"^\\($","stopBy":"neighbor"}}},"r2":{"inside":{"kind":"for_statement","stopBy":"neighbor"}},"r3":{"precedes":{"regex":"^;$","stopBy":"neighbor"}}}}},{"id":"missing","forbid":{"ast":{"language":"typescript","rule":{"any":[{"all":[{"matches":"assign"},{"inside":{"kind":"parenthesized_expression","stopBy":"neighbor","inside":{"stopBy":"neighbor","any":[{"kind":"if_statement"},{"kind":"while_statement"},{"kind":"do_statement"}]}}}]},{"all":[{"matches":"assign"},{"matches":"r3"},{"matches":"r1"},{"matches":"r2"}]},{"all":[{"matches":"assign"},{"any":[{"precedes":{"regex":"^\\?$","stopBy":"neighbor"},"inside":{"kind":"ternary_expression","stopBy":"neighbor"}},{"inside":{"kind":"parenthesized_expression","stopBy":"neighbor","precedes":{"regex":"^\\?$","stopBy":"neighbor"},"inside":{"kind":"ternary_expression","stopBy":"neighbor"}}}]}]}]},"utils":{"assign":{"any":[{"kind":"assignment_expression"},{"kind":"augmented_assignment_expression"}]}},"when":{"option":{"option":{"in":[null,"except-parens"]}}}}},"violation":{"anchor":"witness.span","code":"no-cond-assign","message":"Change this assignment to a comparison, or wrap it in extra parentheses if the assignment is deliberate.","suppress":{"eslint":{"rules":["no-cond-assign"]},"oxlint":{"rules":["no-cond-assign"]}}}},{"id":"unexpected-if","forbid":{"ast":{"language":"typescript","rule":{"all":[{"kind":"assignment_expression"},{"any":[{"matches":"test-if"},{"all":[{"not":{"matches":"any-test"}},{"inside":{"stopBy":{"matches":"stop"},"matches":"test-if"}}]}]}]},"when":{"option":{"option":"always"}}}},"violation":{"anchor":"witness.span","code":"no-cond-assign","message":"Unexpected assignment within an 'if' statement.","suppress":{"eslint":{"rules":["no-cond-assign"]},"oxlint":{"rules":["no-cond-assign"]}}}},{"id":"unexpected-while","forbid":{"ast":{"language":"typescript","rule":{"all":[{"kind":"assignment_expression"},{"any":[{"matches":"test-while"},{"all":[{"not":{"matches":"any-test"}},{"inside":{"stopBy":{"matches":"stop"},"matches":"test-while"}}]}]}]},"when":{"option":{"option":"always"}}}},"violation":{"anchor":"witness.span","code":"no-cond-assign","message":"Unexpected assignment within a 'while' statement.","suppress":{"eslint":{"rules":["no-cond-assign"]},"oxlint":{"rules":["no-cond-assign"]}}}},{"id":"unexpected-do","forbid":{"ast":{"language":"typescript","rule":{"all":[{"kind":"assignment_expression"},{"any":[{"matches":"test-do"},{"all":[{"not":{"matches":"any-test"}},{"inside":{"stopBy":{"matches":"stop"},"matches":"test-do"}}]}]}]},"when":{"option":{"option":"always"}}}},"violation":{"anchor":"witness.span","code":"no-cond-assign","message":"Unexpected assignment within a 'do...while' statement.","suppress":{"eslint":{"rules":["no-cond-assign"]},"oxlint":{"rules":["no-cond-assign"]}}}},{"id":"unexpected-for","forbid":{"ast":{"language":"typescript","rule":{"all":[{"kind":"assignment_expression"},{"any":[{"matches":"test-for"},{"all":[{"not":{"matches":"any-test"}},{"inside":{"stopBy":{"matches":"stop"},"matches":"test-for"}}]}]}]},"when":{"option":{"option":"always"}}}},"violation":{"anchor":"witness.span","code":"no-cond-assign","message":"Unexpected assignment within a 'for' statement.","suppress":{"eslint":{"rules":["no-cond-assign"]},"oxlint":{"rules":["no-cond-assign"]}}}},{"id":"unexpected-ternary","forbid":{"ast":{"language":"typescript","rule":{"all":[{"kind":"assignment_expression"},{"any":[{"matches":"test-ternary"},{"all":[{"not":{"matches":"any-test"}},{"inside":{"stopBy":{"matches":"stop"},"matches":"test-ternary"}}]}]}]},"when":{"option":{"option":"always"}}}},"violation":{"anchor":"witness.span","code":"no-cond-assign","message":"Unexpected assignment within ConditionalExpression.","suppress":{"eslint":{"rules":["no-cond-assign"]},"oxlint":{"rules":["no-cond-assign"]}}}}]}
|