@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.
Files changed (75) hide show
  1. package/README.md +412 -4
  2. package/licenses/eslint/UPSTREAM.md +5 -5
  3. package/licenses/eslint-plugin-unicorn/UPSTREAM.md +5 -5
  4. package/package.json +1 -1
  5. package/rules/eslint-arrow-body-style.json +1 -1
  6. package/rules/eslint-capitalized-comments.json +1 -1
  7. package/rules/eslint-curly.json +1 -1
  8. package/rules/eslint-default-case-last.json +1 -1
  9. package/rules/eslint-default-case.json +1 -1
  10. package/rules/eslint-eqeqeq.json +1 -1
  11. package/rules/eslint-func-style.json +1 -1
  12. package/rules/eslint-guard-for-in.json +1 -1
  13. package/rules/eslint-no-bitwise.json +1 -1
  14. package/rules/eslint-no-caller.json +2 -2
  15. package/rules/eslint-no-case-declarations.json +2 -2
  16. package/rules/eslint-no-compare-neg-zero.json +2 -2
  17. package/rules/eslint-no-cond-assign.json +1 -1
  18. package/rules/eslint-no-console.json +1 -1
  19. package/rules/eslint-no-continue.json +2 -2
  20. package/rules/eslint-no-debugger.json +1 -1
  21. package/rules/eslint-no-delete-var.json +2 -2
  22. package/rules/eslint-no-div-regex.json +1 -1
  23. package/rules/eslint-no-dupe-keys.json +2 -2
  24. package/rules/eslint-no-duplicate-case.json +2 -2
  25. package/rules/eslint-no-empty-pattern.json +1 -1
  26. package/rules/eslint-no-empty-static-block.json +2 -2
  27. package/rules/eslint-no-empty.json +2 -2
  28. package/rules/eslint-no-eq-null.json +1 -1
  29. package/rules/eslint-no-extend-native.json +1 -1
  30. package/rules/eslint-no-inline-comments.json +1 -1
  31. package/rules/eslint-no-iterator.json +1 -1
  32. package/rules/eslint-no-labels.json +1 -1
  33. package/rules/eslint-no-loss-of-precision.json +1 -1
  34. package/rules/eslint-no-multi-str.json +2 -2
  35. package/rules/eslint-no-negated-condition.json +2 -2
  36. package/rules/eslint-no-nested-ternary.json +1 -1
  37. package/rules/eslint-no-new-wrappers.json +1 -1
  38. package/rules/eslint-no-new.json +2 -2
  39. package/rules/eslint-no-nonoctal-decimal-escape.json +2 -2
  40. package/rules/eslint-no-object-constructor.json +1 -1
  41. package/rules/eslint-no-octal-escape.json +1 -1
  42. package/rules/eslint-no-octal.json +2 -2
  43. package/rules/eslint-no-plusplus.json +1 -1
  44. package/rules/eslint-no-proto.json +1 -1
  45. package/rules/eslint-no-prototype-builtins.json +3 -3
  46. package/rules/eslint-no-return-assign.json +1 -1
  47. package/rules/eslint-no-script-url.json +1 -1
  48. package/rules/eslint-no-self-compare.json +2 -2
  49. package/rules/eslint-no-sequences.json +1 -1
  50. package/rules/eslint-no-setter-return.json +1 -1
  51. package/rules/eslint-no-sparse-arrays.json +1 -1
  52. package/rules/eslint-no-template-curly-in-string.json +2 -2
  53. package/rules/eslint-no-ternary.json +1 -1
  54. package/rules/eslint-no-unneeded-ternary.json +1 -1
  55. package/rules/eslint-no-unsafe-finally.json +7 -7
  56. package/rules/eslint-no-unsafe-negation.json +1 -1
  57. package/rules/eslint-no-unused-labels.json +1 -1
  58. package/rules/eslint-no-unused-private-class-members.json +1 -1
  59. package/rules/eslint-no-useless-call.json +1 -1
  60. package/rules/eslint-no-useless-catch.json +1 -1
  61. package/rules/eslint-no-useless-concat.json +1 -1
  62. package/rules/eslint-no-void.json +1 -1
  63. package/rules/eslint-no-warning-comments.json +1 -1
  64. package/rules/eslint-no-with.json +2 -2
  65. package/rules/eslint-operator-assignment.json +1 -1
  66. package/rules/eslint-prefer-numeric-literals.json +1 -1
  67. package/rules/eslint-prefer-spread.json +1 -1
  68. package/rules/eslint-prefer-template.json +2 -2
  69. package/rules/eslint-radix.json +2 -2
  70. package/rules/eslint-sort-imports.json +1 -1
  71. package/rules/eslint-sort-keys.json +1 -1
  72. package/rules/eslint-sort-vars.json +1 -1
  73. package/rules/eslint-use-isnan.json +3 -3
  74. package/rules/eslint-valid-typeof.json +1 -1
  75. package/rules/eslint-yoda.json +1 -1
@@ -1 +1 @@
1
- {"format":"rerail.policy/v1","id":"eslint-valid-typeof","revision":4,"mode":"steer","description":"Port of ESLint's `valid-typeof` rule (https://eslint.org/docs/latest/rules/valid-typeof). Flags a literal compared (==, !=, ===, !==) with a `typeof` expression that is not a valid typeof result, and the global `undefined` (resolved with `resolves`) in that position. Default options: requireStringLiterals false. 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":{"requireStringLiterals":{"type":"boolean","nullable":true,"default":null}}}},{"id":"shared","define":{"language":"typescript","utils":{"in-comparison":{"any":[{"inside":{"kind":"binary_expression","all":[{"has":{"regex":"^(==|!=|===|!==)$"}},{"has":{"matches":"typeof-operand"}}]}},{"inside":{"kind":"parenthesized_expression","matches":"in-comparison"}}]},"typeof-operand":{"any":[{"matches":"r4"},{"kind":"parenthesized_expression","has":{"matches":"typeof-operand"}}]},"r1":{"any":[{"kind":"undefined"},{"kind":"identifier"}],"resolves":{"directives":"eslint","global":["undefined"]}},"r2":{"any":[{"any":[{"kind":"string"},{"kind":"number"},{"kind":"true"},{"kind":"false"},{"kind":"null"},{"kind":"regex"}]},{"kind":"template_string","not":{"has":{"kind":"template_substitution"}}}]},"r3":{"all":[{"matches":"r1"},{"matches":"in-comparison"}]},"r4":{"has":{"regex":"^typeof$"},"kind":"unary_expression"}}}},{"id":"invalid-value","forbid":{"ast":{"language":"typescript","rule":{"all":[{"matches":"r2"},{"not":{"value":{"regex":"^(?:symbol|undefined|object|boolean|number|string|function|bigint)$"}}},{"matches":"in-comparison"}]}}},"violation":{"anchor":"witness.span","code":"valid-typeof","message":"Invalid typeof comparison value.","suppress":{"eslint":{"rules":["valid-typeof"]},"oxlint":{"rules":["valid-typeof"]},"biome":{"rules":["lint/correctness/useValidTypeof"]}}}},{"id":"undefined","forbid":{"ast":{"language":"typescript","rule":{"matches":"r3"},"when":{"option":{"requireStringLiterals":null}}}},"violation":{"anchor":"witness.span","code":"valid-typeof","message":"Invalid typeof comparison value.","suppress":{"eslint":{"rules":["valid-typeof"]},"oxlint":{"rules":["valid-typeof"]},"biome":{"rules":["lint/correctness/useValidTypeof"]}}}},{"id":"not-string","forbid":{"ast":{"language":"typescript","rule":{"any":[{"matches":"r3"},{"all":[{"not":{"matches":"r2"}},{"not":{"regex":"^(==|!=|===|!==|[()])$"}},{"not":{"kind":"comment"}},{"not":{"kind":"parenthesized_expression"}},{"not":{"matches":"typeof-operand"}},{"not":{"matches":"r1"}},{"matches":"in-comparison"},{"not":{"inside":{"matches":"r4"}}}]}]},"when":{"option":{"requireStringLiterals":true}}}},"violation":{"anchor":"witness.span","code":"valid-typeof","message":"Typeof comparisons should be to string literals.","suppress":{"eslint":{"rules":["valid-typeof"]},"oxlint":{"rules":["valid-typeof"]},"biome":{"rules":["lint/correctness/useValidTypeof"]}}}}]}
1
+ {"format":"rerail.policy/v1","id":"eslint-valid-typeof","revision":4,"mode":"steer","description":"Compare typeof results only with valid type names such as 'string' or 'undefined'; a misspelled name makes the check always false.","scope":{"include":["**/*"],"exclude":[]},"clauses":[{"id":"options","define":{"options":{"requireStringLiterals":{"type":"boolean","nullable":true,"default":null}}}},{"id":"shared","define":{"language":"typescript","utils":{"in-comparison":{"any":[{"inside":{"kind":"binary_expression","all":[{"has":{"regex":"^(==|!=|===|!==)$"}},{"has":{"matches":"typeof-operand"}}]}},{"inside":{"kind":"parenthesized_expression","matches":"in-comparison"}}]},"typeof-operand":{"any":[{"matches":"r4"},{"kind":"parenthesized_expression","has":{"matches":"typeof-operand"}}]},"r1":{"any":[{"kind":"undefined"},{"kind":"identifier"}],"resolves":{"directives":"eslint","global":["undefined"]}},"r2":{"any":[{"any":[{"kind":"string"},{"kind":"number"},{"kind":"true"},{"kind":"false"},{"kind":"null"},{"kind":"regex"}]},{"kind":"template_string","not":{"has":{"kind":"template_substitution"}}}]},"r3":{"all":[{"matches":"r1"},{"matches":"in-comparison"}]},"r4":{"has":{"regex":"^typeof$"},"kind":"unary_expression"}}}},{"id":"invalid-value","forbid":{"ast":{"language":"typescript","rule":{"all":[{"matches":"r2"},{"not":{"value":{"regex":"^(?:symbol|undefined|object|boolean|number|string|function|bigint)$"}}},{"matches":"in-comparison"}]}}},"violation":{"anchor":"witness.span","code":"valid-typeof","message":"Invalid typeof comparison value.","suppress":{"eslint":{"rules":["valid-typeof"]},"oxlint":{"rules":["valid-typeof"]},"biome":{"rules":["lint/correctness/useValidTypeof"]}}}},{"id":"undefined","forbid":{"ast":{"language":"typescript","rule":{"matches":"r3"},"when":{"option":{"requireStringLiterals":null}}}},"violation":{"anchor":"witness.span","code":"valid-typeof","message":"Compare with the string 'undefined' instead of the undefined value; typeof always returns a string.","suppress":{"eslint":{"rules":["valid-typeof"]},"oxlint":{"rules":["valid-typeof"]},"biome":{"rules":["lint/correctness/useValidTypeof"]}}}},{"id":"not-string","forbid":{"ast":{"language":"typescript","rule":{"any":[{"matches":"r3"},{"all":[{"not":{"matches":"r2"}},{"not":{"regex":"^(==|!=|===|!==|[()])$"}},{"not":{"kind":"comment"}},{"not":{"kind":"parenthesized_expression"}},{"not":{"matches":"typeof-operand"}},{"not":{"matches":"r1"}},{"matches":"in-comparison"},{"not":{"inside":{"matches":"r4"}}}]}]},"when":{"option":{"requireStringLiterals":true}}}},"violation":{"anchor":"witness.span","code":"valid-typeof","message":"Typeof comparisons should be to string literals.","suppress":{"eslint":{"rules":["valid-typeof"]},"oxlint":{"rules":["valid-typeof"]},"biome":{"rules":["lint/correctness/useValidTypeof"]}}}}]}
@@ -1 +1 @@
1
- {"format":"rerail.policy/v1","id":"eslint-yoda","revision":4,"mode":"steer","description":"Port of ESLint's `yoda` rule (https://eslint.org/docs/latest/rules/yoda) with options [\"never\",{\"default\":true}]. Requires the literal on the right of comparison operators. Literals: string, number/bigint, boolean, null, regex, substitution-free template, negated number; parentheses are transparent. 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},"exceptRange":{"type":"boolean","nullable":true,"default":null},"onlyEquality":{"type":"boolean","nullable":true,"default":null}}}},{"id":"shared","define":{"language":"typescript","utils":{"literal":{"any":[{"kind":"string"},{"kind":"number"},{"kind":"true"},{"kind":"false"},{"kind":"null"},{"kind":"regex"},{"kind":"template_string","not":{"has":{"kind":"template_substitution"}}},{"kind":"unary_expression","has":{"regex":"^-$"},"all":[{"has":{"matches":"numeric"}}]},{"kind":"parenthesized_expression","has":{"matches":"literal"}}]},"literal-bounds":{"all":[{"any":[{"matches":"r16"},{"matches":"r17"}]},{"any":[{"not":{"matches":"r16"}},{"not":{"matches":"r17"}},{"compare":{"left":"A","op":"le","right":"B","text":"value"}}]}]},"numeric":{"any":[{"kind":"number"},{"kind":"parenthesized_expression","has":{"matches":"numeric"}}]},"range-test":{"kind":"binary_expression","follows":{"stopBy":"neighbor","regex":"^\\($"},"precedes":{"stopBy":"neighbor","regex":"^\\)$"},"any":[{"all":[{"has":{"stopBy":"neighbor","regex":"^&&$"}},{"has":{"stopBy":"neighbor","not":{"kind":"comment"},"precedes":{"stopBy":"end","regex":"^&&$"},"any":[{"kind":"binary_expression","all":[{"has":{"stopBy":"neighbor","regex":"^<=?$"}},{"matches":"r5"},{"matches":"r6"}]},{"kind":"parenthesized_expression","has":{"stopBy":{"not":{"kind":"parenthesized_expression"}},"not":{"kind":"comment"},"kind":"binary_expression","all":[{"has":{"stopBy":"neighbor","regex":"^<=?$"}},{"matches":"r5"},{"matches":"r6"}]}}]}},{"has":{"stopBy":"neighbor","not":{"kind":"comment"},"follows":{"stopBy":"end","regex":"^&&$"},"any":[{"kind":"binary_expression","all":[{"has":{"stopBy":"neighbor","regex":"^<=?$"}},{"matches":"r3"},{"matches":"r9"}]},{"kind":"parenthesized_expression","has":{"stopBy":{"not":{"kind":"parenthesized_expression"}},"not":{"kind":"comment"},"kind":"binary_expression","all":[{"has":{"stopBy":"neighbor","regex":"^<=?$"}},{"matches":"r3"},{"matches":"r9"}]}}]}},{"matches":"r14"},{"matches":"literal-bounds"}]},{"all":[{"has":{"stopBy":"neighbor","regex":"^\\|\\|$"}},{"has":{"stopBy":"neighbor","not":{"kind":"comment"},"precedes":{"stopBy":"end","regex":"^\\|\\|$"},"any":[{"kind":"binary_expression","all":[{"has":{"stopBy":"neighbor","regex":"^<=?$"}},{"matches":"r4"},{"matches":"r10"}]},{"kind":"parenthesized_expression","has":{"stopBy":{"not":{"kind":"parenthesized_expression"}},"not":{"kind":"comment"},"kind":"binary_expression","all":[{"has":{"stopBy":"neighbor","regex":"^<=?$"}},{"matches":"r4"},{"matches":"r10"}]}}]}},{"has":{"stopBy":"neighbor","not":{"kind":"comment"},"follows":{"stopBy":"end","regex":"^\\|\\|$"},"any":[{"kind":"binary_expression","all":[{"has":{"stopBy":"neighbor","regex":"^<=?$"}},{"matches":"r7"},{"matches":"r8"}]},{"kind":"parenthesized_expression","has":{"stopBy":{"not":{"kind":"parenthesized_expression"}},"not":{"kind":"comment"},"kind":"binary_expression","all":[{"has":{"stopBy":"neighbor","regex":"^<=?$"}},{"matches":"r7"},{"matches":"r8"}]}}]}},{"matches":"r14"},{"matches":"literal-bounds"}]}]},"r1":{"has":{"not":{"kind":"comment"},"pattern":"$L","precedes":{"regex":"^(===|!==|==|!=|<|>|<=|>=)$","stopBy":"end"}}},"r2":{"has":{"follows":{"regex":"^(===|!==|==|!=|<|>|<=|>=)$","stopBy":"end"},"not":{"kind":"comment"},"pattern":"$R"}},"r3":{"has":{"not":{"kind":"comment"},"pattern":"$X2","precedes":{"regex":"^<=?$","stopBy":"end"},"stopBy":"neighbor"}},"r4":{"has":{"not":{"kind":"comment"},"pattern":"$X1","precedes":{"regex":"^<=?$","stopBy":"end"},"stopBy":"neighbor"}},"r5":{"has":{"not":{"kind":"comment"},"pattern":"$A","precedes":{"regex":"^<=?$","stopBy":"end"},"stopBy":"neighbor"}},"r6":{"has":{"follows":{"regex":"^<=?$","stopBy":"end"},"not":{"kind":"comment"},"pattern":"$X1","stopBy":"neighbor"}},"r7":{"has":{"not":{"kind":"comment"},"pattern":"$B","precedes":{"regex":"^<=?$","stopBy":"end"},"stopBy":"neighbor"}},"r8":{"has":{"follows":{"regex":"^<=?$","stopBy":"end"},"not":{"kind":"comment"},"pattern":"$X2","stopBy":"neighbor"}},"r9":{"has":{"follows":{"regex":"^<=?$","stopBy":"end"},"not":{"kind":"comment"},"pattern":"$B","stopBy":"neighbor"}},"r10":{"has":{"follows":{"regex":"^<=?$","stopBy":"end"},"not":{"kind":"comment"},"pattern":"$A","stopBy":"neighbor"}},"r11":{"has":{"not":{"kind":"comment"},"pattern":"$L","precedes":{"regex":"^(===|==)$","stopBy":"end"}}},"r12":{"has":{"follows":{"regex":"^(===|==)$","stopBy":"end"},"not":{"kind":"comment"},"pattern":"$R"}},"r13":{"not":{"inside":{"matches":"range-test","stopBy":{"not":{"kind":"parenthesized_expression"}}}}},"r14":{"compare":{"left":"X1","op":"eq","right":"X2","text":"reference"}},"r15":{"has":{"pattern":"$$OP","regex":"^(===|!==|==|!=|<|>|<=|>=)$"}},"r16":{"has":{"matches":"literal","pattern":"$A","stopBy":"end"}},"r17":{"has":{"matches":"literal","pattern":"$B","stopBy":"end"}}}}},{"id":"yoda-never","forbid":{"ast":{"language":"typescript","rule":{"kind":"binary_expression","all":[{"$option":"onlyEquality","cases":{"true":[]},"default":[{"matches":"r15"}],"spread":true},{"$option":"onlyEquality","cases":{"true":[]},"default":[{"matches":"r1"}],"spread":true},{"$option":"onlyEquality","cases":{"true":[]},"default":[{"matches":"r2"}],"spread":true},{"$option":"exceptRange","cases":{"true":[{"matches":"r13"}]},"default":[],"spread":true},{"$option":"onlyEquality","cases":{"true":[{"has":{"regex":"^(===|==)$","pattern":"$$OP"}}]},"default":[],"spread":true},{"$option":"onlyEquality","cases":{"true":[{"matches":"r11"}]},"default":[],"spread":true},{"$option":"onlyEquality","cases":{"true":[{"matches":"r12"}]},"default":[],"spread":true}]},"constraints":{"L":{"matches":"literal"},"R":{"not":{"matches":"literal"}}},"when":{"option":{"option":{"in":[null,"never"]}}}}},"violation":{"anchor":"witness.span","code":"yoda","message":"Expected literal to be on the right side of $OP.","suppress":{"eslint":{"rules":["yoda"]},"oxlint":{"rules":["yoda"]},"biome":{"rules":["lint/style/noYodaExpression"]}}}},{"id":"yoda-always","forbid":{"ast":{"language":"typescript","rule":{"kind":"binary_expression","all":[{"$option":"onlyEquality","cases":{"true":[]},"default":[{"matches":"r15"}],"spread":true},{"$option":"onlyEquality","cases":{"true":[]},"default":[{"matches":"r1"}],"spread":true},{"$option":"onlyEquality","cases":{"true":[]},"default":[{"matches":"r2"}],"spread":true},{"$option":"exceptRange","cases":{"true":[{"matches":"r13"}]},"default":[],"spread":true},{"$option":"onlyEquality","cases":{"true":[{"has":{"regex":"^(===|==)$","pattern":"$$OP"}}]},"default":[],"spread":true},{"$option":"onlyEquality","cases":{"true":[{"matches":"r11"}]},"default":[],"spread":true},{"$option":"onlyEquality","cases":{"true":[{"matches":"r12"}]},"default":[],"spread":true}]},"constraints":{"R":{"matches":"literal"},"L":{"not":{"matches":"literal"}}},"when":{"option":{"option":"always"}}}},"violation":{"anchor":"witness.span","code":"yoda","message":"Expected literal to be on the left side of $OP.","suppress":{"eslint":{"rules":["yoda"]},"oxlint":{"rules":["yoda"]},"biome":{"rules":["lint/style/noYodaExpression"]}}}}]}
1
+ {"format":"rerail.policy/v1","id":"eslint-yoda","revision":4,"mode":"steer","description":"Put the literal on the right side of comparisons, after the variable; reversed yoda conditions are harder to read.","scope":{"include":["**/*"],"exclude":[]},"clauses":[{"id":"options","define":{"options":{"option":{"type":"string","nullable":true,"default":null},"exceptRange":{"type":"boolean","nullable":true,"default":null},"onlyEquality":{"type":"boolean","nullable":true,"default":null}}}},{"id":"shared","define":{"language":"typescript","utils":{"literal":{"any":[{"kind":"string"},{"kind":"number"},{"kind":"true"},{"kind":"false"},{"kind":"null"},{"kind":"regex"},{"kind":"template_string","not":{"has":{"kind":"template_substitution"}}},{"kind":"unary_expression","has":{"regex":"^-$"},"all":[{"has":{"matches":"numeric"}}]},{"kind":"parenthesized_expression","has":{"matches":"literal"}}]},"literal-bounds":{"all":[{"any":[{"matches":"r16"},{"matches":"r17"}]},{"any":[{"not":{"matches":"r16"}},{"not":{"matches":"r17"}},{"compare":{"left":"A","op":"le","right":"B","text":"value"}}]}]},"numeric":{"any":[{"kind":"number"},{"kind":"parenthesized_expression","has":{"matches":"numeric"}}]},"range-test":{"kind":"binary_expression","follows":{"stopBy":"neighbor","regex":"^\\($"},"precedes":{"stopBy":"neighbor","regex":"^\\)$"},"any":[{"all":[{"has":{"stopBy":"neighbor","regex":"^&&$"}},{"has":{"stopBy":"neighbor","not":{"kind":"comment"},"precedes":{"stopBy":"end","regex":"^&&$"},"any":[{"kind":"binary_expression","all":[{"has":{"stopBy":"neighbor","regex":"^<=?$"}},{"matches":"r5"},{"matches":"r6"}]},{"kind":"parenthesized_expression","has":{"stopBy":{"not":{"kind":"parenthesized_expression"}},"not":{"kind":"comment"},"kind":"binary_expression","all":[{"has":{"stopBy":"neighbor","regex":"^<=?$"}},{"matches":"r5"},{"matches":"r6"}]}}]}},{"has":{"stopBy":"neighbor","not":{"kind":"comment"},"follows":{"stopBy":"end","regex":"^&&$"},"any":[{"kind":"binary_expression","all":[{"has":{"stopBy":"neighbor","regex":"^<=?$"}},{"matches":"r3"},{"matches":"r9"}]},{"kind":"parenthesized_expression","has":{"stopBy":{"not":{"kind":"parenthesized_expression"}},"not":{"kind":"comment"},"kind":"binary_expression","all":[{"has":{"stopBy":"neighbor","regex":"^<=?$"}},{"matches":"r3"},{"matches":"r9"}]}}]}},{"matches":"r14"},{"matches":"literal-bounds"}]},{"all":[{"has":{"stopBy":"neighbor","regex":"^\\|\\|$"}},{"has":{"stopBy":"neighbor","not":{"kind":"comment"},"precedes":{"stopBy":"end","regex":"^\\|\\|$"},"any":[{"kind":"binary_expression","all":[{"has":{"stopBy":"neighbor","regex":"^<=?$"}},{"matches":"r4"},{"matches":"r10"}]},{"kind":"parenthesized_expression","has":{"stopBy":{"not":{"kind":"parenthesized_expression"}},"not":{"kind":"comment"},"kind":"binary_expression","all":[{"has":{"stopBy":"neighbor","regex":"^<=?$"}},{"matches":"r4"},{"matches":"r10"}]}}]}},{"has":{"stopBy":"neighbor","not":{"kind":"comment"},"follows":{"stopBy":"end","regex":"^\\|\\|$"},"any":[{"kind":"binary_expression","all":[{"has":{"stopBy":"neighbor","regex":"^<=?$"}},{"matches":"r7"},{"matches":"r8"}]},{"kind":"parenthesized_expression","has":{"stopBy":{"not":{"kind":"parenthesized_expression"}},"not":{"kind":"comment"},"kind":"binary_expression","all":[{"has":{"stopBy":"neighbor","regex":"^<=?$"}},{"matches":"r7"},{"matches":"r8"}]}}]}},{"matches":"r14"},{"matches":"literal-bounds"}]}]},"r1":{"has":{"not":{"kind":"comment"},"pattern":"$L","precedes":{"regex":"^(===|!==|==|!=|<|>|<=|>=)$","stopBy":"end"}}},"r2":{"has":{"follows":{"regex":"^(===|!==|==|!=|<|>|<=|>=)$","stopBy":"end"},"not":{"kind":"comment"},"pattern":"$R"}},"r3":{"has":{"not":{"kind":"comment"},"pattern":"$X2","precedes":{"regex":"^<=?$","stopBy":"end"},"stopBy":"neighbor"}},"r4":{"has":{"not":{"kind":"comment"},"pattern":"$X1","precedes":{"regex":"^<=?$","stopBy":"end"},"stopBy":"neighbor"}},"r5":{"has":{"not":{"kind":"comment"},"pattern":"$A","precedes":{"regex":"^<=?$","stopBy":"end"},"stopBy":"neighbor"}},"r6":{"has":{"follows":{"regex":"^<=?$","stopBy":"end"},"not":{"kind":"comment"},"pattern":"$X1","stopBy":"neighbor"}},"r7":{"has":{"not":{"kind":"comment"},"pattern":"$B","precedes":{"regex":"^<=?$","stopBy":"end"},"stopBy":"neighbor"}},"r8":{"has":{"follows":{"regex":"^<=?$","stopBy":"end"},"not":{"kind":"comment"},"pattern":"$X2","stopBy":"neighbor"}},"r9":{"has":{"follows":{"regex":"^<=?$","stopBy":"end"},"not":{"kind":"comment"},"pattern":"$B","stopBy":"neighbor"}},"r10":{"has":{"follows":{"regex":"^<=?$","stopBy":"end"},"not":{"kind":"comment"},"pattern":"$A","stopBy":"neighbor"}},"r11":{"has":{"not":{"kind":"comment"},"pattern":"$L","precedes":{"regex":"^(===|==)$","stopBy":"end"}}},"r12":{"has":{"follows":{"regex":"^(===|==)$","stopBy":"end"},"not":{"kind":"comment"},"pattern":"$R"}},"r13":{"not":{"inside":{"matches":"range-test","stopBy":{"not":{"kind":"parenthesized_expression"}}}}},"r14":{"compare":{"left":"X1","op":"eq","right":"X2","text":"reference"}},"r15":{"has":{"pattern":"$$OP","regex":"^(===|!==|==|!=|<|>|<=|>=)$"}},"r16":{"has":{"matches":"literal","pattern":"$A","stopBy":"end"}},"r17":{"has":{"matches":"literal","pattern":"$B","stopBy":"end"}}}}},{"id":"yoda-never","forbid":{"ast":{"language":"typescript","rule":{"kind":"binary_expression","all":[{"$option":"onlyEquality","cases":{"true":[]},"default":[{"matches":"r15"}],"spread":true},{"$option":"onlyEquality","cases":{"true":[]},"default":[{"matches":"r1"}],"spread":true},{"$option":"onlyEquality","cases":{"true":[]},"default":[{"matches":"r2"}],"spread":true},{"$option":"exceptRange","cases":{"true":[{"matches":"r13"}]},"default":[],"spread":true},{"$option":"onlyEquality","cases":{"true":[{"has":{"regex":"^(===|==)$","pattern":"$$OP"}}]},"default":[],"spread":true},{"$option":"onlyEquality","cases":{"true":[{"matches":"r11"}]},"default":[],"spread":true},{"$option":"onlyEquality","cases":{"true":[{"matches":"r12"}]},"default":[],"spread":true}]},"constraints":{"L":{"matches":"literal"},"R":{"not":{"matches":"literal"}}},"when":{"option":{"option":{"in":[null,"never"]}}}}},"violation":{"anchor":"witness.span","code":"yoda","message":"Expected literal to be on the right side of $OP.","suppress":{"eslint":{"rules":["yoda"]},"oxlint":{"rules":["yoda"]},"biome":{"rules":["lint/style/noYodaExpression"]}}}},{"id":"yoda-always","forbid":{"ast":{"language":"typescript","rule":{"kind":"binary_expression","all":[{"$option":"onlyEquality","cases":{"true":[]},"default":[{"matches":"r15"}],"spread":true},{"$option":"onlyEquality","cases":{"true":[]},"default":[{"matches":"r1"}],"spread":true},{"$option":"onlyEquality","cases":{"true":[]},"default":[{"matches":"r2"}],"spread":true},{"$option":"exceptRange","cases":{"true":[{"matches":"r13"}]},"default":[],"spread":true},{"$option":"onlyEquality","cases":{"true":[{"has":{"regex":"^(===|==)$","pattern":"$$OP"}}]},"default":[],"spread":true},{"$option":"onlyEquality","cases":{"true":[{"matches":"r11"}]},"default":[],"spread":true},{"$option":"onlyEquality","cases":{"true":[{"matches":"r12"}]},"default":[],"spread":true}]},"constraints":{"R":{"matches":"literal"},"L":{"not":{"matches":"literal"}}},"when":{"option":{"option":"always"}}}},"violation":{"anchor":"witness.span","code":"yoda","message":"Expected literal to be on the left side of $OP.","suppress":{"eslint":{"rules":["yoda"]},"oxlint":{"rules":["yoda"]},"biome":{"rules":["lint/style/noYodaExpression"]}}}}]}