@thethracian/oxlint-config 0.3.6 → 0.4.0

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 (432) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +14 -2
  3. package/dist/codemods/explicit-return-types.d.ts.map +1 -1
  4. package/dist/codemods/explicit-return-types.js +4 -0
  5. package/dist/codemods/explicit-return-types.js.map +1 -1
  6. package/dist/rules/diagnostic-guidance.d.ts.map +1 -1
  7. package/dist/rules/diagnostic-guidance.js +26 -2
  8. package/dist/rules/diagnostic-guidance.js.map +1 -1
  9. package/dist/rules/effect-alias-canonicalization.d.ts +27 -0
  10. package/dist/rules/effect-alias-canonicalization.d.ts.map +1 -0
  11. package/dist/rules/effect-alias-canonicalization.js +60 -0
  12. package/dist/rules/effect-alias-canonicalization.js.map +1 -0
  13. package/dist/rules/effect-ast-scope.d.ts +25 -0
  14. package/dist/rules/effect-ast-scope.d.ts.map +1 -0
  15. package/dist/rules/effect-ast-scope.js +286 -0
  16. package/dist/rules/effect-ast-scope.js.map +1 -0
  17. package/dist/rules/effect-ast.d.ts +42 -0
  18. package/dist/rules/effect-ast.d.ts.map +1 -0
  19. package/dist/rules/effect-ast.js +74 -0
  20. package/dist/rules/effect-ast.js.map +1 -0
  21. package/dist/rules/effect-boundary-ast-shared.d.ts +42 -0
  22. package/dist/rules/effect-boundary-ast-shared.d.ts.map +1 -0
  23. package/dist/rules/effect-boundary-ast-shared.js +203 -0
  24. package/dist/rules/effect-boundary-ast-shared.js.map +1 -0
  25. package/dist/rules/effect-default-boundary-ast.d.ts +10 -0
  26. package/dist/rules/effect-default-boundary-ast.d.ts.map +1 -0
  27. package/dist/rules/effect-default-boundary-ast.js +320 -0
  28. package/dist/rules/effect-default-boundary-ast.js.map +1 -0
  29. package/dist/rules/effect-default-compat-rules.d.ts +11 -15
  30. package/dist/rules/effect-default-compat-rules.d.ts.map +1 -1
  31. package/dist/rules/effect-default-compat-rules.js +20 -0
  32. package/dist/rules/effect-default-compat-rules.js.map +1 -1
  33. package/dist/rules/effect-default-scan-helpers.js +1 -1
  34. package/dist/rules/effect-default-scan-helpers.js.map +1 -1
  35. package/dist/rules/effect-default-workflow-helpers.d.ts.map +1 -1
  36. package/dist/rules/effect-default-workflow-helpers.js +7 -29
  37. package/dist/rules/effect-default-workflow-helpers.js.map +1 -1
  38. package/dist/rules/effect-default.d.ts +4 -1
  39. package/dist/rules/effect-default.d.ts.map +1 -1
  40. package/dist/rules/effect-default.js +14 -5
  41. package/dist/rules/effect-default.js.map +1 -1
  42. package/dist/rules/effect-export-binding-patterns.d.ts +9 -0
  43. package/dist/rules/effect-export-binding-patterns.d.ts.map +1 -0
  44. package/dist/rules/effect-export-binding-patterns.js +149 -0
  45. package/dist/rules/effect-export-binding-patterns.js.map +1 -0
  46. package/dist/rules/effect-export-declaration-boundaries.d.ts +21 -0
  47. package/dist/rules/effect-export-declaration-boundaries.d.ts.map +1 -0
  48. package/dist/rules/effect-export-declaration-boundaries.js +119 -0
  49. package/dist/rules/effect-export-declaration-boundaries.js.map +1 -0
  50. package/dist/rules/effect-export-default-binding.d.ts +5 -0
  51. package/dist/rules/effect-export-default-binding.d.ts.map +1 -0
  52. package/dist/rules/effect-export-default-binding.js +350 -0
  53. package/dist/rules/effect-export-default-binding.js.map +1 -0
  54. package/dist/rules/effect-export-segments.d.ts +9 -0
  55. package/dist/rules/effect-export-segments.d.ts.map +1 -0
  56. package/dist/rules/effect-export-segments.js +67 -0
  57. package/dist/rules/effect-export-segments.js.map +1 -0
  58. package/dist/rules/effect-exported-declarations.d.ts +3 -15
  59. package/dist/rules/effect-exported-declarations.d.ts.map +1 -1
  60. package/dist/rules/effect-exported-declarations.js +139 -94
  61. package/dist/rules/effect-exported-declarations.js.map +1 -1
  62. package/dist/rules/effect-global-fetch-ast.d.ts +14 -0
  63. package/dist/rules/effect-global-fetch-ast.d.ts.map +1 -0
  64. package/dist/rules/effect-global-fetch-ast.js +321 -0
  65. package/dist/rules/effect-global-fetch-ast.js.map +1 -0
  66. package/dist/rules/effect-global-fetch-imports.d.ts +29 -0
  67. package/dist/rules/effect-global-fetch-imports.d.ts.map +1 -0
  68. package/dist/rules/effect-global-fetch-imports.js +91 -0
  69. package/dist/rules/effect-global-fetch-imports.js.map +1 -0
  70. package/dist/rules/effect-import-bindings.d.ts +13 -0
  71. package/dist/rules/effect-import-bindings.d.ts.map +1 -0
  72. package/dist/rules/effect-import-bindings.js +133 -0
  73. package/dist/rules/effect-import-bindings.js.map +1 -0
  74. package/dist/rules/effect-imported-call-matcher.d.ts +24 -0
  75. package/dist/rules/effect-imported-call-matcher.d.ts.map +1 -0
  76. package/dist/rules/effect-imported-call-matcher.js +271 -0
  77. package/dist/rules/effect-imported-call-matcher.js.map +1 -0
  78. package/dist/rules/effect-module-source-index.d.ts +44 -0
  79. package/dist/rules/effect-module-source-index.d.ts.map +1 -0
  80. package/dist/rules/effect-module-source-index.js +306 -0
  81. package/dist/rules/effect-module-source-index.js.map +1 -0
  82. package/dist/rules/effect-native-references.d.ts +66 -0
  83. package/dist/rules/effect-native-references.d.ts.map +1 -0
  84. package/dist/rules/effect-native-references.js +164 -0
  85. package/dist/rules/effect-native-references.js.map +1 -0
  86. package/dist/rules/effect-object-assign-provenance.d.ts +20 -0
  87. package/dist/rules/effect-object-assign-provenance.d.ts.map +1 -0
  88. package/dist/rules/effect-object-assign-provenance.js +37 -0
  89. package/dist/rules/effect-object-assign-provenance.js.map +1 -0
  90. package/dist/rules/effect-prefer-map-over-flatmap-succeed.d.ts +4 -0
  91. package/dist/rules/effect-prefer-map-over-flatmap-succeed.d.ts.map +1 -0
  92. package/dist/rules/effect-prefer-map-over-flatmap-succeed.js +294 -0
  93. package/dist/rules/effect-prefer-map-over-flatmap-succeed.js.map +1 -0
  94. package/dist/rules/effect-prefer-succeed-for-stable-values.d.ts +4 -0
  95. package/dist/rules/effect-prefer-succeed-for-stable-values.d.ts.map +1 -0
  96. package/dist/rules/effect-prefer-succeed-for-stable-values.js +292 -0
  97. package/dist/rules/effect-prefer-succeed-for-stable-values.js.map +1 -0
  98. package/dist/rules/effect-promise-ast-values.d.ts +26 -0
  99. package/dist/rules/effect-promise-ast-values.d.ts.map +1 -0
  100. package/dist/rules/effect-promise-ast-values.js +66 -0
  101. package/dist/rules/effect-promise-ast-values.js.map +1 -0
  102. package/dist/rules/effect-promise-callable-declarations.d.ts +22 -0
  103. package/dist/rules/effect-promise-callable-declarations.d.ts.map +1 -0
  104. package/dist/rules/effect-promise-callable-declarations.js +255 -0
  105. package/dist/rules/effect-promise-callable-declarations.js.map +1 -0
  106. package/dist/rules/effect-promise-callable-lookup.d.ts +40 -0
  107. package/dist/rules/effect-promise-callable-lookup.d.ts.map +1 -0
  108. package/dist/rules/effect-promise-callable-lookup.js +99 -0
  109. package/dist/rules/effect-promise-callable-lookup.js.map +1 -0
  110. package/dist/rules/effect-promise-callable-scopes.d.ts +16 -0
  111. package/dist/rules/effect-promise-callable-scopes.d.ts.map +1 -0
  112. package/dist/rules/effect-promise-callable-scopes.js +43 -0
  113. package/dist/rules/effect-promise-callable-scopes.js.map +1 -0
  114. package/dist/rules/effect-promise-callable-types.d.ts +43 -0
  115. package/dist/rules/effect-promise-callable-types.d.ts.map +1 -0
  116. package/dist/rules/effect-promise-callable-types.js +5 -0
  117. package/dist/rules/effect-promise-callable-types.js.map +1 -0
  118. package/dist/rules/effect-promise-callables.d.ts +5 -0
  119. package/dist/rules/effect-promise-callables.d.ts.map +1 -0
  120. package/dist/rules/effect-promise-callables.js +7 -0
  121. package/dist/rules/effect-promise-callables.js.map +1 -0
  122. package/dist/rules/effect-promise-collections.d.ts +20 -0
  123. package/dist/rules/effect-promise-collections.d.ts.map +1 -0
  124. package/dist/rules/effect-promise-collections.js +199 -0
  125. package/dist/rules/effect-promise-collections.js.map +1 -0
  126. package/dist/rules/effect-promise-completion.d.ts +141 -0
  127. package/dist/rules/effect-promise-completion.d.ts.map +1 -0
  128. package/dist/rules/effect-promise-completion.js +200 -0
  129. package/dist/rules/effect-promise-completion.js.map +1 -0
  130. package/dist/rules/effect-promise-environment-projections.d.ts +23 -0
  131. package/dist/rules/effect-promise-environment-projections.d.ts.map +1 -0
  132. package/dist/rules/effect-promise-environment-projections.js +191 -0
  133. package/dist/rules/effect-promise-environment-projections.js.map +1 -0
  134. package/dist/rules/effect-promise-environment-types.d.ts +96 -0
  135. package/dist/rules/effect-promise-environment-types.d.ts.map +1 -0
  136. package/dist/rules/effect-promise-environment-types.js +10 -0
  137. package/dist/rules/effect-promise-environment-types.js.map +1 -0
  138. package/dist/rules/effect-promise-environment-values.d.ts +41 -0
  139. package/dist/rules/effect-promise-environment-values.d.ts.map +1 -0
  140. package/dist/rules/effect-promise-environment-values.js +214 -0
  141. package/dist/rules/effect-promise-environment-values.js.map +1 -0
  142. package/dist/rules/effect-promise-environments.d.ts +5 -0
  143. package/dist/rules/effect-promise-environments.d.ts.map +1 -0
  144. package/dist/rules/effect-promise-environments.js +7 -0
  145. package/dist/rules/effect-promise-environments.js.map +1 -0
  146. package/dist/rules/effect-promise-execution-ast.d.ts +12 -0
  147. package/dist/rules/effect-promise-execution-ast.d.ts.map +1 -0
  148. package/dist/rules/effect-promise-execution-ast.js +30 -0
  149. package/dist/rules/effect-promise-execution-ast.js.map +1 -0
  150. package/dist/rules/effect-promise-execution-engine.d.ts +9 -0
  151. package/dist/rules/effect-promise-execution-engine.d.ts.map +1 -0
  152. package/dist/rules/effect-promise-execution-engine.js +280 -0
  153. package/dist/rules/effect-promise-execution-engine.js.map +1 -0
  154. package/dist/rules/effect-promise-execution-flow.d.ts +48 -0
  155. package/dist/rules/effect-promise-execution-flow.d.ts.map +1 -0
  156. package/dist/rules/effect-promise-execution-flow.js +193 -0
  157. package/dist/rules/effect-promise-execution-flow.js.map +1 -0
  158. package/dist/rules/effect-promise-execution-navigation.d.ts +34 -0
  159. package/dist/rules/effect-promise-execution-navigation.d.ts.map +1 -0
  160. package/dist/rules/effect-promise-execution-navigation.js +66 -0
  161. package/dist/rules/effect-promise-execution-navigation.js.map +1 -0
  162. package/dist/rules/effect-promise-execution-types.d.ts +36 -0
  163. package/dist/rules/effect-promise-execution-types.d.ts.map +1 -0
  164. package/dist/rules/effect-promise-execution-types.js +5 -0
  165. package/dist/rules/effect-promise-execution-types.js.map +1 -0
  166. package/dist/rules/effect-promise-execution-values.d.ts +40 -0
  167. package/dist/rules/effect-promise-execution-values.d.ts.map +1 -0
  168. package/dist/rules/effect-promise-execution-values.js +268 -0
  169. package/dist/rules/effect-promise-execution-values.js.map +1 -0
  170. package/dist/rules/effect-promise-expression-flow.d.ts +27 -0
  171. package/dist/rules/effect-promise-expression-flow.d.ts.map +1 -0
  172. package/dist/rules/effect-promise-expression-flow.js +80 -0
  173. package/dist/rules/effect-promise-expression-flow.js.map +1 -0
  174. package/dist/rules/effect-promise-invocation-memo.d.ts +16 -0
  175. package/dist/rules/effect-promise-invocation-memo.d.ts.map +1 -0
  176. package/dist/rules/effect-promise-invocation-memo.js +44 -0
  177. package/dist/rules/effect-promise-invocation-memo.js.map +1 -0
  178. package/dist/rules/effect-promise-invocations.d.ts +16 -0
  179. package/dist/rules/effect-promise-invocations.d.ts.map +1 -0
  180. package/dist/rules/effect-promise-invocations.js +126 -0
  181. package/dist/rules/effect-promise-invocations.js.map +1 -0
  182. package/dist/rules/effect-promise-node-children.d.ts +22 -0
  183. package/dist/rules/effect-promise-node-children.d.ts.map +1 -0
  184. package/dist/rules/effect-promise-node-children.js +49 -0
  185. package/dist/rules/effect-promise-node-children.js.map +1 -0
  186. package/dist/rules/effect-promise-node-evaluation.d.ts +43 -0
  187. package/dist/rules/effect-promise-node-evaluation.d.ts.map +1 -0
  188. package/dist/rules/effect-promise-node-evaluation.js +150 -0
  189. package/dist/rules/effect-promise-node-evaluation.js.map +1 -0
  190. package/dist/rules/effect-promise-parameter-bindings.d.ts +28 -0
  191. package/dist/rules/effect-promise-parameter-bindings.d.ts.map +1 -0
  192. package/dist/rules/effect-promise-parameter-bindings.js +187 -0
  193. package/dist/rules/effect-promise-parameter-bindings.js.map +1 -0
  194. package/dist/rules/effect-promise-pattern-bindings.d.ts +9 -0
  195. package/dist/rules/effect-promise-pattern-bindings.d.ts.map +1 -0
  196. package/dist/rules/effect-promise-pattern-bindings.js +54 -0
  197. package/dist/rules/effect-promise-pattern-bindings.js.map +1 -0
  198. package/dist/rules/effect-promise-program-traversal.d.ts +40 -0
  199. package/dist/rules/effect-promise-program-traversal.d.ts.map +1 -0
  200. package/dist/rules/effect-promise-program-traversal.js +115 -0
  201. package/dist/rules/effect-promise-program-traversal.js.map +1 -0
  202. package/dist/rules/effect-promise-rule-bindings.d.ts +23 -0
  203. package/dist/rules/effect-promise-rule-bindings.d.ts.map +1 -0
  204. package/dist/rules/effect-promise-rule-bindings.js +41 -0
  205. package/dist/rules/effect-promise-rule-bindings.js.map +1 -0
  206. package/dist/rules/effect-promise-runtime-arguments.d.ts +18 -0
  207. package/dist/rules/effect-promise-runtime-arguments.d.ts.map +1 -0
  208. package/dist/rules/effect-promise-runtime-arguments.js +49 -0
  209. package/dist/rules/effect-promise-runtime-arguments.js.map +1 -0
  210. package/dist/rules/effect-promise-runtime-call-targets.d.ts +21 -0
  211. package/dist/rules/effect-promise-runtime-call-targets.d.ts.map +1 -0
  212. package/dist/rules/effect-promise-runtime-call-targets.js +55 -0
  213. package/dist/rules/effect-promise-runtime-call-targets.js.map +1 -0
  214. package/dist/rules/effect-promise-runtime-callable-properties.d.ts +20 -0
  215. package/dist/rules/effect-promise-runtime-callable-properties.d.ts.map +1 -0
  216. package/dist/rules/effect-promise-runtime-callable-properties.js +30 -0
  217. package/dist/rules/effect-promise-runtime-callable-properties.js.map +1 -0
  218. package/dist/rules/effect-promise-runtime-callables.d.ts +51 -0
  219. package/dist/rules/effect-promise-runtime-callables.d.ts.map +1 -0
  220. package/dist/rules/effect-promise-runtime-callables.js +214 -0
  221. package/dist/rules/effect-promise-runtime-callables.js.map +1 -0
  222. package/dist/rules/effect-promise-runtime-choice-operations.d.ts +32 -0
  223. package/dist/rules/effect-promise-runtime-choice-operations.d.ts.map +1 -0
  224. package/dist/rules/effect-promise-runtime-choice-operations.js +145 -0
  225. package/dist/rules/effect-promise-runtime-choice-operations.js.map +1 -0
  226. package/dist/rules/effect-promise-runtime-choice.d.ts +26 -0
  227. package/dist/rules/effect-promise-runtime-choice.d.ts.map +1 -0
  228. package/dist/rules/effect-promise-runtime-choice.js +95 -0
  229. package/dist/rules/effect-promise-runtime-choice.js.map +1 -0
  230. package/dist/rules/effect-promise-runtime-control-branches.d.ts +14 -0
  231. package/dist/rules/effect-promise-runtime-control-branches.d.ts.map +1 -0
  232. package/dist/rules/effect-promise-runtime-control-branches.js +74 -0
  233. package/dist/rules/effect-promise-runtime-control-branches.js.map +1 -0
  234. package/dist/rules/effect-promise-runtime-control-completions.d.ts +26 -0
  235. package/dist/rules/effect-promise-runtime-control-completions.d.ts.map +1 -0
  236. package/dist/rules/effect-promise-runtime-control-completions.js +116 -0
  237. package/dist/rules/effect-promise-runtime-control-completions.js.map +1 -0
  238. package/dist/rules/effect-promise-runtime-control-flow.d.ts +9 -0
  239. package/dist/rules/effect-promise-runtime-control-flow.d.ts.map +1 -0
  240. package/dist/rules/effect-promise-runtime-control-flow.js +94 -0
  241. package/dist/rules/effect-promise-runtime-control-flow.js.map +1 -0
  242. package/dist/rules/effect-promise-runtime-control-patterns.d.ts +15 -0
  243. package/dist/rules/effect-promise-runtime-control-patterns.d.ts.map +1 -0
  244. package/dist/rules/effect-promise-runtime-control-patterns.js +84 -0
  245. package/dist/rules/effect-promise-runtime-control-patterns.js.map +1 -0
  246. package/dist/rules/effect-promise-runtime-control-scalars.d.ts +23 -0
  247. package/dist/rules/effect-promise-runtime-control-scalars.d.ts.map +1 -0
  248. package/dist/rules/effect-promise-runtime-control-scalars.js +178 -0
  249. package/dist/rules/effect-promise-runtime-control-scalars.js.map +1 -0
  250. package/dist/rules/effect-promise-runtime-expressions.d.ts +22 -0
  251. package/dist/rules/effect-promise-runtime-expressions.d.ts.map +1 -0
  252. package/dist/rules/effect-promise-runtime-expressions.js +265 -0
  253. package/dist/rules/effect-promise-runtime-expressions.js.map +1 -0
  254. package/dist/rules/effect-promise-runtime-heap.d.ts +39 -0
  255. package/dist/rules/effect-promise-runtime-heap.d.ts.map +1 -0
  256. package/dist/rules/effect-promise-runtime-heap.js +73 -0
  257. package/dist/rules/effect-promise-runtime-heap.js.map +1 -0
  258. package/dist/rules/effect-promise-runtime-interpreter.d.ts +39 -0
  259. package/dist/rules/effect-promise-runtime-interpreter.d.ts.map +1 -0
  260. package/dist/rules/effect-promise-runtime-interpreter.js +260 -0
  261. package/dist/rules/effect-promise-runtime-interpreter.js.map +1 -0
  262. package/dist/rules/effect-promise-runtime-intrinsics.d.ts +15 -0
  263. package/dist/rules/effect-promise-runtime-intrinsics.d.ts.map +1 -0
  264. package/dist/rules/effect-promise-runtime-intrinsics.js +54 -0
  265. package/dist/rules/effect-promise-runtime-intrinsics.js.map +1 -0
  266. package/dist/rules/effect-promise-runtime-loops.d.ts +9 -0
  267. package/dist/rules/effect-promise-runtime-loops.d.ts.map +1 -0
  268. package/dist/rules/effect-promise-runtime-loops.js +277 -0
  269. package/dist/rules/effect-promise-runtime-loops.js.map +1 -0
  270. package/dist/rules/effect-promise-runtime-members.d.ts +28 -0
  271. package/dist/rules/effect-promise-runtime-members.d.ts.map +1 -0
  272. package/dist/rules/effect-promise-runtime-members.js +88 -0
  273. package/dist/rules/effect-promise-runtime-members.js.map +1 -0
  274. package/dist/rules/effect-promise-runtime-memo.d.ts +40 -0
  275. package/dist/rules/effect-promise-runtime-memo.d.ts.map +1 -0
  276. package/dist/rules/effect-promise-runtime-memo.js +124 -0
  277. package/dist/rules/effect-promise-runtime-memo.js.map +1 -0
  278. package/dist/rules/effect-promise-runtime-model.d.ts +251 -0
  279. package/dist/rules/effect-promise-runtime-model.d.ts.map +1 -0
  280. package/dist/rules/effect-promise-runtime-model.js +84 -0
  281. package/dist/rules/effect-promise-runtime-model.js.map +1 -0
  282. package/dist/rules/effect-promise-runtime-mutations.d.ts +17 -0
  283. package/dist/rules/effect-promise-runtime-mutations.d.ts.map +1 -0
  284. package/dist/rules/effect-promise-runtime-mutations.js +165 -0
  285. package/dist/rules/effect-promise-runtime-mutations.js.map +1 -0
  286. package/dist/rules/effect-promise-runtime-patterns.d.ts +21 -0
  287. package/dist/rules/effect-promise-runtime-patterns.d.ts.map +1 -0
  288. package/dist/rules/effect-promise-runtime-patterns.js +179 -0
  289. package/dist/rules/effect-promise-runtime-patterns.js.map +1 -0
  290. package/dist/rules/effect-promise-runtime-proof.d.ts +74 -0
  291. package/dist/rules/effect-promise-runtime-proof.d.ts.map +1 -0
  292. package/dist/rules/effect-promise-runtime-proof.js +253 -0
  293. package/dist/rules/effect-promise-runtime-proof.js.map +1 -0
  294. package/dist/rules/effect-promise-runtime-reporting.d.ts +16 -0
  295. package/dist/rules/effect-promise-runtime-reporting.d.ts.map +1 -0
  296. package/dist/rules/effect-promise-runtime-reporting.js +11 -0
  297. package/dist/rules/effect-promise-runtime-reporting.js.map +1 -0
  298. package/dist/rules/effect-promise-runtime-scalar-operations.d.ts +2 -0
  299. package/dist/rules/effect-promise-runtime-scalar-operations.d.ts.map +1 -0
  300. package/dist/rules/effect-promise-runtime-scalar-operations.js +5 -0
  301. package/dist/rules/effect-promise-runtime-scalar-operations.js.map +1 -0
  302. package/dist/rules/effect-promise-runtime-scalars.d.ts +24 -0
  303. package/dist/rules/effect-promise-runtime-scalars.d.ts.map +1 -0
  304. package/dist/rules/effect-promise-runtime-scalars.js +125 -0
  305. package/dist/rules/effect-promise-runtime-scalars.js.map +1 -0
  306. package/dist/rules/effect-promise-runtime-statements.d.ts +15 -0
  307. package/dist/rules/effect-promise-runtime-statements.d.ts.map +1 -0
  308. package/dist/rules/effect-promise-runtime-statements.js +251 -0
  309. package/dist/rules/effect-promise-runtime-statements.js.map +1 -0
  310. package/dist/rules/effect-promise-runtime-store.d.ts +44 -0
  311. package/dist/rules/effect-promise-runtime-store.d.ts.map +1 -0
  312. package/dist/rules/effect-promise-runtime-store.js +186 -0
  313. package/dist/rules/effect-promise-runtime-store.js.map +1 -0
  314. package/dist/rules/effect-promise-runtime-structures.d.ts +9 -0
  315. package/dist/rules/effect-promise-runtime-structures.d.ts.map +1 -0
  316. package/dist/rules/effect-promise-runtime-structures.js +181 -0
  317. package/dist/rules/effect-promise-runtime-structures.js.map +1 -0
  318. package/dist/rules/effect-promise-runtime-switch.d.ts +9 -0
  319. package/dist/rules/effect-promise-runtime-switch.d.ts.map +1 -0
  320. package/dist/rules/effect-promise-runtime-switch.js +91 -0
  321. package/dist/rules/effect-promise-runtime-switch.js.map +1 -0
  322. package/dist/rules/effect-promise-runtime-tasks.d.ts +72 -0
  323. package/dist/rules/effect-promise-runtime-tasks.d.ts.map +1 -0
  324. package/dist/rules/effect-promise-runtime-tasks.js +158 -0
  325. package/dist/rules/effect-promise-runtime-tasks.js.map +1 -0
  326. package/dist/rules/effect-promise-runtime-this.d.ts +14 -0
  327. package/dist/rules/effect-promise-runtime-this.d.ts.map +1 -0
  328. package/dist/rules/effect-promise-runtime-this.js +29 -0
  329. package/dist/rules/effect-promise-runtime-this.js.map +1 -0
  330. package/dist/rules/effect-promise-runtime-try.d.ts +9 -0
  331. package/dist/rules/effect-promise-runtime-try.d.ts.map +1 -0
  332. package/dist/rules/effect-promise-runtime-try.js +94 -0
  333. package/dist/rules/effect-promise-runtime-try.js.map +1 -0
  334. package/dist/rules/effect-promise-runtime-values.d.ts +88 -0
  335. package/dist/rules/effect-promise-runtime-values.d.ts.map +1 -0
  336. package/dist/rules/effect-promise-runtime-values.js +382 -0
  337. package/dist/rules/effect-promise-runtime-values.js.map +1 -0
  338. package/dist/rules/effect-promise-value-scopes.d.ts +94 -0
  339. package/dist/rules/effect-promise-value-scopes.d.ts.map +1 -0
  340. package/dist/rules/effect-promise-value-scopes.js +218 -0
  341. package/dist/rules/effect-promise-value-scopes.js.map +1 -0
  342. package/dist/rules/effect-recursion-ast.d.ts +14 -0
  343. package/dist/rules/effect-recursion-ast.d.ts.map +1 -0
  344. package/dist/rules/effect-recursion-ast.js +154 -0
  345. package/dist/rules/effect-recursion-ast.js.map +1 -0
  346. package/dist/rules/effect-recursion-execution.d.ts +15 -0
  347. package/dist/rules/effect-recursion-execution.d.ts.map +1 -0
  348. package/dist/rules/effect-recursion-execution.js +312 -0
  349. package/dist/rules/effect-recursion-execution.js.map +1 -0
  350. package/dist/rules/effect-recursion-generator.d.ts +17 -0
  351. package/dist/rules/effect-recursion-generator.d.ts.map +1 -0
  352. package/dist/rules/effect-recursion-generator.js +125 -0
  353. package/dist/rules/effect-recursion-generator.js.map +1 -0
  354. package/dist/rules/effect-recursion-local-bindings.d.ts +44 -0
  355. package/dist/rules/effect-recursion-local-bindings.d.ts.map +1 -0
  356. package/dist/rules/effect-recursion-local-bindings.js +99 -0
  357. package/dist/rules/effect-recursion-local-bindings.js.map +1 -0
  358. package/dist/rules/effect-recursion-phases.d.ts +40 -0
  359. package/dist/rules/effect-recursion-phases.d.ts.map +1 -0
  360. package/dist/rules/effect-recursion-phases.js +62 -0
  361. package/dist/rules/effect-recursion-phases.js.map +1 -0
  362. package/dist/rules/effect-recursion-source.d.ts +10 -0
  363. package/dist/rules/effect-recursion-source.d.ts.map +1 -0
  364. package/dist/rules/effect-recursion-source.js +182 -0
  365. package/dist/rules/effect-recursion-source.js.map +1 -0
  366. package/dist/rules/effect-recursion-viability.d.ts +66 -0
  367. package/dist/rules/effect-recursion-viability.d.ts.map +1 -0
  368. package/dist/rules/effect-recursion-viability.js +228 -0
  369. package/dist/rules/effect-recursion-viability.js.map +1 -0
  370. package/dist/rules/effect-rule-aliases.d.ts +14 -19
  371. package/dist/rules/effect-rule-aliases.d.ts.map +1 -1
  372. package/dist/rules/effect-rule-aliases.js +48 -30
  373. package/dist/rules/effect-rule-aliases.js.map +1 -1
  374. package/dist/rules/effect-rule-core.d.ts +4 -4
  375. package/dist/rules/effect-rule-core.d.ts.map +1 -1
  376. package/dist/rules/effect-rule-core.js +42 -44
  377. package/dist/rules/effect-rule-core.js.map +1 -1
  378. package/dist/rules/effect-rule-names.d.ts.map +1 -1
  379. package/dist/rules/effect-rule-names.js +1 -1
  380. package/dist/rules/effect-rule-names.js.map +1 -1
  381. package/dist/rules/effect-source-navigation-lexer.d.ts +13 -0
  382. package/dist/rules/effect-source-navigation-lexer.d.ts.map +1 -0
  383. package/dist/rules/effect-source-navigation-lexer.js +228 -0
  384. package/dist/rules/effect-source-navigation-lexer.js.map +1 -0
  385. package/dist/rules/effect-source-navigation.d.ts +2 -2
  386. package/dist/rules/effect-source-navigation.d.ts.map +1 -1
  387. package/dist/rules/effect-source-navigation.js +104 -101
  388. package/dist/rules/effect-source-navigation.js.map +1 -1
  389. package/dist/rules/effect-strict-ast-helpers.d.ts +82 -0
  390. package/dist/rules/effect-strict-ast-helpers.d.ts.map +1 -0
  391. package/dist/rules/effect-strict-ast-helpers.js +194 -0
  392. package/dist/rules/effect-strict-ast-helpers.js.map +1 -0
  393. package/dist/rules/effect-strict-ast-specs.d.ts.map +1 -1
  394. package/dist/rules/effect-strict-ast-specs.js +14 -16
  395. package/dist/rules/effect-strict-ast-specs.js.map +1 -1
  396. package/dist/rules/effect-strict-internals.d.ts +2 -196
  397. package/dist/rules/effect-strict-internals.d.ts.map +1 -1
  398. package/dist/rules/effect-strict-internals.js +2 -417
  399. package/dist/rules/effect-strict-internals.js.map +1 -1
  400. package/dist/rules/effect-strict-source-predicates.d.ts +120 -0
  401. package/dist/rules/effect-strict-source-predicates.d.ts.map +1 -0
  402. package/dist/rules/effect-strict-source-predicates.js +234 -0
  403. package/dist/rules/effect-strict-source-predicates.js.map +1 -0
  404. package/dist/rules/effect-sync-promise-scope-index.d.ts +44 -0
  405. package/dist/rules/effect-sync-promise-scope-index.d.ts.map +1 -0
  406. package/dist/rules/effect-sync-promise-scope-index.js +345 -0
  407. package/dist/rules/effect-sync-promise-scope-index.js.map +1 -0
  408. package/dist/rules/effect-sync-promise-scopes.d.ts +10 -0
  409. package/dist/rules/effect-sync-promise-scopes.d.ts.map +1 -0
  410. package/dist/rules/effect-sync-promise-scopes.js +115 -0
  411. package/dist/rules/effect-sync-promise-scopes.js.map +1 -0
  412. package/dist/rules/effect-sync-promise-source.d.ts +2 -0
  413. package/dist/rules/effect-sync-promise-source.d.ts.map +1 -0
  414. package/dist/rules/effect-sync-promise-source.js +5 -0
  415. package/dist/rules/effect-sync-promise-source.js.map +1 -0
  416. package/dist/rules/plugin-commented-out-code-jsx-scanner.d.ts +21 -0
  417. package/dist/rules/plugin-commented-out-code-jsx-scanner.d.ts.map +1 -0
  418. package/dist/rules/plugin-commented-out-code-jsx-scanner.js +200 -0
  419. package/dist/rules/plugin-commented-out-code-jsx-scanner.js.map +1 -0
  420. package/dist/rules/plugin-commented-out-code-lexical-primitives.d.ts +139 -0
  421. package/dist/rules/plugin-commented-out-code-lexical-primitives.d.ts.map +1 -0
  422. package/dist/rules/plugin-commented-out-code-lexical-primitives.js +244 -0
  423. package/dist/rules/plugin-commented-out-code-lexical-primitives.js.map +1 -0
  424. package/dist/rules/plugin-commented-out-code-rule.d.ts +13 -0
  425. package/dist/rules/plugin-commented-out-code-rule.d.ts.map +1 -1
  426. package/dist/rules/plugin-commented-out-code-rule.js +174 -82
  427. package/dist/rules/plugin-commented-out-code-rule.js.map +1 -1
  428. package/dist/rules/plugin-commented-out-code-source-scanner.d.ts +8 -0
  429. package/dist/rules/plugin-commented-out-code-source-scanner.d.ts.map +1 -0
  430. package/dist/rules/plugin-commented-out-code-source-scanner.js +228 -0
  431. package/dist/rules/plugin-commented-out-code-source-scanner.js.map +1 -0
  432. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.4.0 - 2026-07-24
4
+
5
+ ### Features
6
+
7
+ - feat(ts): add effect lint analysis and stable-value rule (#23) (52e2384)
8
+
3
9
  ## 0.3.6 - 2026-05-31
4
10
 
5
11
  ### Fixes
package/README.md CHANGED
@@ -23,7 +23,7 @@ Result: native Oxlint rules + The Thracian custom rules + optional Effect policy
23
23
 
24
24
  - Strict by default: every rule is an error, not a suggestion.
25
25
  - Agent-ready TypeScript: catches debug artifacts, unsafe escape hatches, silent catches, mutation, deep nesting, and oversized code.
26
- - Effect-aware out of the box: 81 always-on Effect rules target lazy values, generator style, Promise boundaries, typed errors, Schema boundaries, resources, tests, and common hallucinated APIs.
26
+ - Effect-aware out of the box: 83 always-on Effect rules target lazy values, generator style, Promise boundaries, typed errors, Schema boundaries, resources, tests, and common hallucinated APIs.
27
27
  - Strict Effect mode when you want it: opt in to 60 additional project-boundary rules for entrypoints, adapters, config layers, domain modules, service wiring, external calls, and test ownership.
28
28
  - Importable config: consumers import one package instead of copying linter files around a codebase.
29
29
 
@@ -109,12 +109,24 @@ The default bucket checks for patterns such as:
109
109
  - floating `Effect` values that are never run, yielded, returned, or composed
110
110
  - missing `yield*` inside `Effect.gen`
111
111
  - nested `flatMap` code that should be `Effect.gen`
112
+ - `flatMap` callbacks that only lift one value with `Effect.succeed` and should use `Effect.map`
113
+ - eager recursive Effect construction that needs `Effect.suspend`; ordinary `flatMap`, `map`, `gen`, and `Effect.fn` continuations remain deferred, while v4 `*Eager` continuations are analyzed as immediate execution
112
114
  - string errors and untagged error channels
113
- - unsafe Promise, throw, runtime, and sync boundaries
115
+ - unsafe Promise, throw, runtime, and sync boundaries, including provably invoked local helpers, executed defaults, and eager collection callbacks
114
116
  - Schema decode misuse at external data boundaries
115
117
  - resource, fiber, stream, concurrency, and test determinism mistakes
116
118
  - deprecated or invented Effect APIs
117
119
 
120
+ `effect-prefer-map-over-flatMap-succeed` is import-aware and AST-backed. It recognizes root `Effect` imports, `effect/Effect` namespace imports, and aliased named `flatMap`/`succeed` imports across pipeable, `pipe`, data-first, and data-last composition. It reports only non-async, non-generator arrow or function callbacks whose entire body directly returns a single-argument `Effect.succeed` call, and it ignores unrelated lookalikes and lexically shadowed bindings.
121
+
122
+ `effect-prefer-succeed-for-stable-values` reports `Effect.sync` thunks that only return a literal or an already-initialized `const` from the same execution context. It is import-aware and deliberately preserves calls, getters, allocations, mutable or imported bindings, throwing blocks, and reads whose initialization does not dominate Effect construction. The rule was mined from these concrete Effect codebases:
123
+
124
+ - Effect `packages/effect/src/unstable/rpc/RpcServer.ts` ([source](https://github.com/Effect-TS/effect/blob/ed2afb3424e90f3b98a6e4740f4e12cc08e3cc11/packages/effect/src/unstable/rpc/RpcServer.ts#L1107))
125
+ - Effect `packages/effect/test/unstable/cli/LogLevel.test.ts` ([source](https://github.com/Effect-TS/effect/blob/ed2afb3424e90f3b98a6e4740f4e12cc08e3cc11/packages/effect/test/unstable/cli/LogLevel.test.ts#L37))
126
+ - Effect Solutions `tests/08-testing.test.ts` ([source](https://github.com/kitlangton/effect-solutions/blob/09f82e6c5c928e7232cd32daf04d7c6a830b63f7/tests/08-testing.test.ts#L181))
127
+ - Effect Native `packages/bun-test/test/index.test.ts` ([source](https://github.com/effect-native/effect-native/blob/df994cc632071e80ab78280400573586258aed3e/packages/bun-test/test/index.test.ts#L49))
128
+ - T3 Code `packages/effect-codex-app-server/src/_internal/shared.ts` ([source](https://github.com/pingdotgg/t3code/blob/b41e89eba9cd232cc3257b400fc30972a9b53438/packages/effect-codex-app-server/src/_internal/shared.ts#L48))
129
+
118
130
  Disable the Effect bucket for non-Effect projects:
119
131
 
120
132
  ```js
@@ -1 +1 @@
1
- {"version":3,"file":"explicit-return-types.d.ts","sourceRoot":"","sources":["../../src/codemods/explicit-return-types.ts"],"names":[],"mappings":"AA0gBA;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,QAAQ,MAAM,KAAG,MACY,CAAC"}
1
+ {"version":3,"file":"explicit-return-types.d.ts","sourceRoot":"","sources":["../../src/codemods/explicit-return-types.ts"],"names":[],"mappings":"AAghBA;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,QAAQ,MAAM,KAAG,MACY,CAAC"}
@@ -222,6 +222,10 @@ const replacementForFunction = (source, path, propertyNames) => pipe(Option.all(
222
222
  start: Option.fromNullable(insertionPoint(source, path.value)),
223
223
  }), Option.map(({ returnType, start }) => ({ end: start, start, text: returnType })), Option.getOrUndefined);
224
224
  const appendReplacementForFunction = (source, propertyNames, replacements, path) => {
225
+ if ((path.value.type === 'ClassMethod' || path.value.type === 'ClassPrivateMethod') &&
226
+ path.value.kind === 'constructor') {
227
+ return;
228
+ }
225
229
  pipe(Option.fromNullable(replacementForFunction(source, path, propertyNames)), Option.map((replacement) => replacements.push(replacement)));
226
230
  };
227
231
  const collectClassMethodReplacements = (root, collect) => {
@@ -1 +1 @@
1
- {"version":3,"file":"explicit-return-types.js","sourceRoot":"","sources":["../../src/codemods/explicit-return-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"explicit-return-types.js","sourceRoot":"","sources":["../../src/codemods/explicit-return-types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostic-guidance.d.ts","sourceRoot":"","sources":["../../src/rules/diagnostic-guidance.ts"],"names":[],"mappings":"AAKA,UAAU,eAAe;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAqFD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,eAAe,KAAG,MACsB,CAAC;AAElF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAAI,MAAM,MAAM,EAAE,MAAM,MAAM,EAAE,aAAa,MAAM,KAAG,MAKtF,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAI,MAAM,MAAM,EAAE,MAAM,MAAM,EAAE,aAAa,MAAM,KAAG,MAKpF,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,GAAI,MAAM,MAAM,EAAE,aAAa,MAAM,KAAG,MAK1E,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GAAI,MAAM,MAAM,KAAG,MASpD,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,GACzC,MAAM,QAAQ,GAAG,UAAU,EAC3B,MAAM,MAAM,EACZ,aAAa,MAAM,KAClB,MAQC,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GACnC,MAAM,MAAM,EACZ,aAAa,MAAM,EACnB,YAAY,SAAS,MAAM,EAAE,KAC5B,MAkBF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,GAAI,WAAW,MAAM,KAAG,MAK7D,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,QAAO,MAKhD,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,GACvC,OAAO,MAAM,EACb,UAAU,MAAM,EAChB,YAAY,MAAM,KACjB,MAKC,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,GAAI,MAAM,MAAM,EAAE,QAAQ,MAAM,KAAG,MAKvE,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,QAAO,MAYxC,CAAC;AAEL,UAAU,4BAA4B;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAUD;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,GAAI,UAAU,4BAA4B,KAAG,MAoBlF,CAAC;AAeL;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAAI,UAAU,MAAM,EAAE,SAAS,MAAM,KAAG,MAG3E,CAAC"}
1
+ {"version":3,"file":"diagnostic-guidance.d.ts","sourceRoot":"","sources":["../../src/rules/diagnostic-guidance.ts"],"names":[],"mappings":"AAKA,UAAU,eAAe;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAwGD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,eAAe,KAAG,MACsB,CAAC;AAElF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAAI,MAAM,MAAM,EAAE,MAAM,MAAM,EAAE,aAAa,MAAM,KAAG,MAKtF,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAI,MAAM,MAAM,EAAE,MAAM,MAAM,EAAE,aAAa,MAAM,KAAG,MAKpF,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,GAAI,MAAM,MAAM,EAAE,aAAa,MAAM,KAAG,MAK1E,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GAAI,MAAM,MAAM,KAAG,MASpD,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,GACzC,MAAM,QAAQ,GAAG,UAAU,EAC3B,MAAM,MAAM,EACZ,aAAa,MAAM,KAClB,MAQC,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GACnC,MAAM,MAAM,EACZ,aAAa,MAAM,EACnB,YAAY,SAAS,MAAM,EAAE,KAC5B,MAkBF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,GAAI,WAAW,MAAM,KAAG,MAK7D,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,QAAO,MAKhD,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,GACvC,OAAO,MAAM,EACb,UAAU,MAAM,EAChB,YAAY,MAAM,KACjB,MAKC,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,GAAI,MAAM,MAAM,EAAE,QAAQ,MAAM,KAAG,MAKvE,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,QAAO,MAYxC,CAAC;AAEL,UAAU,4BAA4B;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAUD;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,GAAI,UAAU,4BAA4B,KAAG,MAoBlF,CAAC;AA+BL;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAAI,UAAU,MAAM,EAAE,SAAS,MAAM,KAAG,MAG3E,CAAC"}
@@ -64,6 +64,10 @@ const ruleGuidanceByName = [
64
64
  keys: ['env', 'Clock', 'Random'],
65
65
  },
66
66
  ];
67
+ const normalizedRuleGuidanceByName = pipe(ruleGuidanceByName, Array.map((guidance) => ({
68
+ ...guidance,
69
+ keys: pipe(guidance.keys, Array.map((key) => key.toLowerCase())),
70
+ })));
67
71
  const fallbackEffectGuidance = {
68
72
  example: `const program = ${effectName}.gen(function* () {\n return yield* operation.pipe(${effectName}.withSpan("operation"))\n})`,
69
73
  fix: 'Rewrite the code to make the Effect boundary, error channel, resource lifetime, and execution point explicit.',
@@ -226,8 +230,28 @@ export const functionDocDiagnosticMessage = (context) => diagnosticMessage({
226
230
  The prose must be specific; generated placeholder text does not satisfy the rule.`,
227
231
  summary: 'Missing public declaration JSDoc.',
228
232
  });
229
- const matchesRuleGuidance = (ruleName, guidance) => pipe(guidance.keys, Array.some((key) => ruleName.includes(key)));
230
- const effectGuidance = (ruleName) => pipe(ruleGuidanceByName, Array.findFirst((guidance) => matchesRuleGuidance(ruleName, guidance)), Option.getOrElse(() => fallbackEffectGuidance));
233
+ const matchesNormalizedRuleGuidance = (normalizedRuleName, guidance) => {
234
+ const { keys } = guidance;
235
+ const keyCount = keys.length;
236
+ for (let keyIndex = 0; keyIndex < keyCount; keyIndex += 1) {
237
+ const key = keys[keyIndex];
238
+ if (key !== undefined && normalizedRuleName.includes(key)) {
239
+ return true;
240
+ }
241
+ }
242
+ return false;
243
+ };
244
+ const effectGuidance = (ruleName) => {
245
+ const normalizedRuleName = ruleName.toLowerCase();
246
+ const guidanceCount = normalizedRuleGuidanceByName.length;
247
+ for (let guidanceIndex = 0; guidanceIndex < guidanceCount; guidanceIndex += 1) {
248
+ const guidance = normalizedRuleGuidanceByName[guidanceIndex];
249
+ if (guidance !== undefined && matchesNormalizedRuleGuidance(normalizedRuleName, guidance)) {
250
+ return guidance;
251
+ }
252
+ }
253
+ return fallbackEffectGuidance;
254
+ };
231
255
  /**
232
256
  * Internal helper exported for package-local composition.
233
257
  *
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostic-guidance.js","sourceRoot":"","sources":["../../src/rules/diagnostic-guidance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagnostic-guidance.js","sourceRoot":"","sources":["../../src/rules/diagnostic-guidance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Holds canonical source text and its compact original-position map.
3
+ *
4
+ * @internal
5
+ */
6
+ export interface CanonicalizedEffectSource {
7
+ readonly indexMap: readonly number[];
8
+ readonly source: string;
9
+ }
10
+ /**
11
+ * Canonicalizes identifiers with a compact source-position map.
12
+ *
13
+ * @param source - Original TypeScript source.
14
+ * @param aliases - Local-to-canonical identifier bindings.
15
+ * @param aliasPattern - Pattern capturing the prefix and local identifier.
16
+ * @returns Canonical source and its flat positional map.
17
+ */
18
+ export declare const buildCanonicalizedEffectSource: (source: string, aliases: ReadonlyMap<string, string>, aliasPattern: RegExp) => CanonicalizedEffectSource;
19
+ /**
20
+ * Maps a canonical source offset back to the original source.
21
+ *
22
+ * @param canonicalized - Canonical source and compact positional map.
23
+ * @param canonicalIndex - Offset measured in canonical source text.
24
+ * @returns Corresponding offset in original source text.
25
+ */
26
+ export declare const canonicalIndexToOriginal: (canonicalized: CanonicalizedEffectSource, canonicalIndex: number) => number;
27
+ //# sourceMappingURL=effect-alias-canonicalization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effect-alias-canonicalization.d.ts","sourceRoot":"","sources":["../../src/rules/effect-alias-canonicalization.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAkBD;;;;;;;GAOG;AACH,eAAO,MAAM,8BAA8B,GACzC,QAAQ,MAAM,EACd,SAAS,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,cAAc,MAAM,KACnB,yBAQF,CAAC;AAcF;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,GACnC,eAAe,yBAAyB,EACxC,gBAAgB,MAAM,KACrB,MAcF,CAAC"}
@@ -0,0 +1,60 @@
1
+ /* -------------------------------------------------------------------------- */
2
+ /* Compact canonical-to-original source mapping for Effect aliases. */
3
+ /* -------------------------------------------------------------------------- */
4
+ const INDEX_MAP_STRIDE = 5;
5
+ const ORIGINAL_START_OFFSET = 1;
6
+ const CANONICAL_LENGTH_OFFSET = 2;
7
+ const ORIGINAL_LENGTH_OFFSET = 3;
8
+ const SHIFT_OFFSET = 4;
9
+ const replaceCanonicalAlias = (aliases, indexMap, prefix, localName, originalOffset) => {
10
+ const canonicalName = aliases.get(localName) ?? localName;
11
+ const previousShift = indexMap.at(-1) ?? 0;
12
+ const originalStart = originalOffset + prefix.length;
13
+ const canonicalStart = originalStart + previousShift;
14
+ const nextShift = previousShift + canonicalName.length - localName.length;
15
+ indexMap.push(canonicalStart, originalStart, canonicalName.length, localName.length, nextShift);
16
+ return `${prefix}${canonicalName}`;
17
+ };
18
+ /**
19
+ * Canonicalizes identifiers with a compact source-position map.
20
+ *
21
+ * @param source - Original TypeScript source.
22
+ * @param aliases - Local-to-canonical identifier bindings.
23
+ * @param aliasPattern - Pattern capturing the prefix and local identifier.
24
+ * @returns Canonical source and its flat positional map.
25
+ */
26
+ export const buildCanonicalizedEffectSource = (source, aliases, aliasPattern) => {
27
+ const indexMap = [];
28
+ const canonicalSource = source.replace(aliasPattern, (_match, prefix, localName, offset) => replaceCanonicalAlias(aliases, indexMap, prefix, localName, offset));
29
+ return { indexMap, source: canonicalSource };
30
+ };
31
+ const mappedAliasIndex = (indexMap, mapIndex, canonicalIndex) => {
32
+ const canonicalStart = indexMap[mapIndex];
33
+ const originalStart = indexMap[mapIndex + ORIGINAL_START_OFFSET];
34
+ const originalLength = indexMap[mapIndex + ORIGINAL_LENGTH_OFFSET];
35
+ const offset = Math.min(canonicalIndex - canonicalStart, Math.max(0, originalLength - 1));
36
+ return originalStart + offset;
37
+ };
38
+ /**
39
+ * Maps a canonical source offset back to the original source.
40
+ *
41
+ * @param canonicalized - Canonical source and compact positional map.
42
+ * @param canonicalIndex - Offset measured in canonical source text.
43
+ * @returns Corresponding offset in original source text.
44
+ */
45
+ export const canonicalIndexToOriginal = (canonicalized, canonicalIndex) => {
46
+ let shift = 0;
47
+ for (let mapIndex = 0; mapIndex < canonicalized.indexMap.length; mapIndex += INDEX_MAP_STRIDE) {
48
+ const canonicalStart = canonicalized.indexMap[mapIndex];
49
+ const canonicalLength = canonicalized.indexMap[mapIndex + CANONICAL_LENGTH_OFFSET];
50
+ if (canonicalIndex < canonicalStart) {
51
+ break;
52
+ }
53
+ if (canonicalIndex < canonicalStart + canonicalLength) {
54
+ return mappedAliasIndex(canonicalized.indexMap, mapIndex, canonicalIndex);
55
+ }
56
+ shift = canonicalized.indexMap[mapIndex + SHIFT_OFFSET];
57
+ }
58
+ return canonicalIndex - shift;
59
+ };
60
+ //# sourceMappingURL=effect-alias-canonicalization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effect-alias-canonicalization.js","sourceRoot":"","sources":["../../src/rules/effect-alias-canonicalization.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { ASTNode } from './effect-ast';
2
+ export type { ASTNode } from './effect-ast';
3
+ export type ScopeStack = readonly ReadonlySet<string>[];
4
+ /**
5
+ * Extend an AST traversal scope stack with bindings introduced by a node.
6
+ *
7
+ * @param scopes - Lexical scopes inherited from the node's ancestors.
8
+ * @param node - The node whose lexical and hoisted bindings should be collected.
9
+ * @returns The inherited stack or a stack extended with the node's bindings.
10
+ * @throws Does not throw.
11
+ * @internal
12
+ */
13
+ export declare const withNodeScope: (scopes: ScopeStack, node: ASTNode) => ScopeStack;
14
+ /**
15
+ * Select the lexical scopes visible while traversing one child edge.
16
+ *
17
+ * @param nodeScopes - Scopes visible in the parent node's ordinary children.
18
+ * @param parent - The parent AST node.
19
+ * @param childKey - The parent property containing the child.
20
+ * @returns The scope stack that is semantically visible along the child edge.
21
+ * @throws Does not throw.
22
+ * @internal
23
+ */
24
+ export declare const scopesForChild: (nodeScopes: ScopeStack, parent: ASTNode, childKey: string) => ScopeStack;
25
+ //# sourceMappingURL=effect-ast-scope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effect-ast-scope.d.ts","sourceRoot":"","sources":["../../src/rules/effect-ast-scope.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,MAAM,MAAM,UAAU,GAAG,SAAS,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;AA4RxD;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,GAAI,QAAQ,UAAU,EAAE,MAAM,OAAO,KAAG,UAKjE,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,GACzB,YAAY,UAAU,EACtB,QAAQ,OAAO,EACf,UAAU,MAAM,KACf,UAYF,CAAC"}
@@ -0,0 +1,286 @@
1
+ /* -------------------------------------------------------------------------- */
2
+ /* Lexical binding analysis shared by AST-backed Effect lint rules. */
3
+ /* -------------------------------------------------------------------------- */
4
+ import { asNode, childNode, childNodes, identifierName } from './effect-ast.js';
5
+ const addWrappedPatternBindings = (bindings, pattern) => {
6
+ if (pattern.type === 'AssignmentPattern') {
7
+ addPatternBindings(bindings, childNode(pattern, 'left'));
8
+ return true;
9
+ }
10
+ if (pattern.type === 'RestElement') {
11
+ addPatternBindings(bindings, childNode(pattern, 'argument'));
12
+ return true;
13
+ }
14
+ if (pattern.type === 'TSParameterProperty') {
15
+ addPatternBindings(bindings, childNode(pattern, 'parameter'));
16
+ return true;
17
+ }
18
+ return false;
19
+ };
20
+ const addDestructuredPatternBindings = (bindings, pattern) => {
21
+ let key = 'elements';
22
+ if (pattern.type === 'ObjectPattern') {
23
+ key = 'properties';
24
+ }
25
+ for (const property of childNodes(pattern, key)) {
26
+ if (property.type === 'Property') {
27
+ addPatternBindings(bindings, childNode(property, 'value'));
28
+ }
29
+ else {
30
+ addPatternBindings(bindings, property);
31
+ }
32
+ }
33
+ };
34
+ const addPatternBindings = (bindings, pattern) => {
35
+ if (!pattern) {
36
+ return;
37
+ }
38
+ const name = identifierName(pattern);
39
+ if (name) {
40
+ bindings.add(name);
41
+ return;
42
+ }
43
+ if (addWrappedPatternBindings(bindings, pattern)) {
44
+ return;
45
+ }
46
+ addDestructuredPatternBindings(bindings, pattern);
47
+ };
48
+ const declarationNode = (statement) => {
49
+ if (statement.type === 'ExportNamedDeclaration' ||
50
+ statement.type === 'ExportDefaultDeclaration') {
51
+ return childNode(statement, 'declaration') ?? statement;
52
+ }
53
+ return statement;
54
+ };
55
+ const addVariableBindings = (bindings, declaration) => {
56
+ for (const declarator of childNodes(declaration, 'declarations')) {
57
+ addPatternBindings(bindings, childNode(declarator, 'id'));
58
+ }
59
+ };
60
+ const namespaceRoot = (name) => {
61
+ if (name?.type === 'TSQualifiedName') {
62
+ return namespaceRoot(childNode(name, 'left'));
63
+ }
64
+ return name;
65
+ };
66
+ const addNamespacePathBindings = (bindings, name) => {
67
+ if (name?.type === 'TSQualifiedName') {
68
+ addNamespacePathBindings(bindings, childNode(name, 'left'));
69
+ addNamespacePathBindings(bindings, childNode(name, 'right'));
70
+ return;
71
+ }
72
+ addPatternBindings(bindings, name);
73
+ };
74
+ const addLexicalVariableBindings = (bindings, declaration) => {
75
+ if (declaration.type !== 'VariableDeclaration') {
76
+ return false;
77
+ }
78
+ if (Reflect.get(declaration, 'kind') !== 'var') {
79
+ addVariableBindings(bindings, declaration);
80
+ }
81
+ return true;
82
+ };
83
+ const addTypeScriptLexicalBindings = (bindings, declaration) => {
84
+ if (declaration.type === 'TSImportEqualsDeclaration') {
85
+ if (Reflect.get(declaration, 'importKind') !== 'type') {
86
+ addPatternBindings(bindings, childNode(declaration, 'id'));
87
+ }
88
+ return true;
89
+ }
90
+ if (declaration.type === 'TSModuleDeclaration') {
91
+ addPatternBindings(bindings, namespaceRoot(childNode(declaration, 'id')));
92
+ return true;
93
+ }
94
+ return false;
95
+ };
96
+ const addLexicalDeclarationBindings = (bindings, statement) => {
97
+ const declaration = declarationNode(statement);
98
+ if (addLexicalVariableBindings(bindings, declaration)) {
99
+ return;
100
+ }
101
+ if (addTypeScriptLexicalBindings(bindings, declaration)) {
102
+ return;
103
+ }
104
+ if (declaration.type === 'ClassDeclaration' ||
105
+ declaration.type === 'FunctionDeclaration' ||
106
+ declaration.type === 'TSEnumDeclaration') {
107
+ addPatternBindings(bindings, childNode(declaration, 'id'));
108
+ }
109
+ };
110
+ const addDirectLexicalBindings = (bindings, statements) => {
111
+ for (const statement of statements) {
112
+ addLexicalDeclarationBindings(bindings, statement);
113
+ }
114
+ };
115
+ const functionNodeTypes = new Set([
116
+ 'ArrowFunctionExpression',
117
+ 'FunctionDeclaration',
118
+ 'FunctionExpression',
119
+ ]);
120
+ const isFunctionNode = (node) => functionNodeTypes.has(node.type);
121
+ const bindingNodeTypes = new Set([
122
+ ...functionNodeTypes,
123
+ 'BlockStatement',
124
+ 'CatchClause',
125
+ 'ClassExpression',
126
+ 'ForInStatement',
127
+ 'ForOfStatement',
128
+ 'ForStatement',
129
+ 'Program',
130
+ 'StaticBlock',
131
+ 'TSModuleBlock',
132
+ 'TSModuleDeclaration',
133
+ ]);
134
+ const canIntroduceBindings = (node) => bindingNodeTypes.has(node.type);
135
+ const isClassNode = (node) => node.type === 'ClassDeclaration' || node.type === 'ClassExpression';
136
+ const isVarTraversalBoundary = (node) => isFunctionNode(node) ||
137
+ isClassNode(node) ||
138
+ node.type === 'StaticBlock' ||
139
+ node.type === 'TSModuleBlock' ||
140
+ node.type === 'TSModuleDeclaration';
141
+ const addVarDeclarationBindings = (bindings, node) => {
142
+ if (node.type === 'VariableDeclaration' && Reflect.get(node, 'kind') === 'var') {
143
+ addVariableBindings(bindings, node);
144
+ }
145
+ };
146
+ const addHoistedVarValues = (bindings, values, seen) => {
147
+ for (const value of values) {
148
+ addHoistedVarBindings(bindings, value, seen);
149
+ }
150
+ };
151
+ const addHoistedVarNode = (bindings, node, seen) => {
152
+ seen.add(node);
153
+ if (isVarTraversalBoundary(node)) {
154
+ return;
155
+ }
156
+ addVarDeclarationBindings(bindings, node);
157
+ for (const [key, value] of Object.entries(node)) {
158
+ if (key !== 'parent') {
159
+ addHoistedVarBindings(bindings, value, seen);
160
+ }
161
+ }
162
+ };
163
+ const addHoistedVarBindings = (bindings, value, seen) => {
164
+ if (Array.isArray(value)) {
165
+ addHoistedVarValues(bindings, value, seen);
166
+ return;
167
+ }
168
+ const node = asNode(value);
169
+ if (!node || seen.has(node)) {
170
+ return;
171
+ }
172
+ addHoistedVarNode(bindings, node, seen);
173
+ };
174
+ const addHoistedVarsFromChildren = (bindings, node) => {
175
+ const seen = new WeakSet();
176
+ for (const [key, value] of Object.entries(node)) {
177
+ if (key !== 'parent') {
178
+ addHoistedVarBindings(bindings, value, seen);
179
+ }
180
+ }
181
+ };
182
+ const addLoopBindings = (bindings, declaration) => {
183
+ if (declaration?.type === 'VariableDeclaration' && Reflect.get(declaration, 'kind') !== 'var') {
184
+ addVariableBindings(bindings, declaration);
185
+ }
186
+ };
187
+ const addSwitchBindings = (bindings, node) => {
188
+ for (const switchCase of childNodes(node, 'cases')) {
189
+ addDirectLexicalBindings(bindings, childNodes(switchCase, 'consequent'));
190
+ }
191
+ };
192
+ const addFunctionHeaderBindings = (bindings, node) => {
193
+ addPatternBindings(bindings, childNode(node, 'id'));
194
+ for (const parameter of childNodes(node, 'params')) {
195
+ addPatternBindings(bindings, parameter);
196
+ }
197
+ };
198
+ const addFunctionBodyVarBindings = (bindings, node) => {
199
+ const body = childNode(node, 'body');
200
+ if (body) {
201
+ addHoistedVarsFromChildren(bindings, body);
202
+ }
203
+ };
204
+ const addContainerBindings = (bindings, node) => {
205
+ if (node.type === 'Program' || node.type === 'StaticBlock' || node.type === 'TSModuleBlock') {
206
+ addDirectLexicalBindings(bindings, childNodes(node, 'body'));
207
+ addHoistedVarsFromChildren(bindings, node);
208
+ }
209
+ else if (isFunctionNode(node)) {
210
+ addFunctionHeaderBindings(bindings, node);
211
+ }
212
+ else if (node.type === 'BlockStatement') {
213
+ addDirectLexicalBindings(bindings, childNodes(node, 'body'));
214
+ }
215
+ };
216
+ const addControlFlowBindings = (bindings, node) => {
217
+ if (node.type === 'ForStatement') {
218
+ addLoopBindings(bindings, childNode(node, 'init'));
219
+ }
220
+ else if (node.type === 'ForInStatement' || node.type === 'ForOfStatement') {
221
+ addLoopBindings(bindings, childNode(node, 'left'));
222
+ }
223
+ };
224
+ const addNamedBindings = (bindings, node) => {
225
+ if (node.type === 'CatchClause') {
226
+ addPatternBindings(bindings, childNode(node, 'param'));
227
+ }
228
+ else if (node.type === 'ClassExpression') {
229
+ addPatternBindings(bindings, childNode(node, 'id'));
230
+ }
231
+ else if (node.type === 'TSModuleDeclaration') {
232
+ addNamespacePathBindings(bindings, childNode(node, 'id'));
233
+ }
234
+ };
235
+ const nodeBindings = (node) => {
236
+ const bindings = new Set();
237
+ addContainerBindings(bindings, node);
238
+ addControlFlowBindings(bindings, node);
239
+ addNamedBindings(bindings, node);
240
+ return bindings;
241
+ };
242
+ const extendScopes = (scopes, bindings) => {
243
+ if (bindings.size === 0) {
244
+ return scopes;
245
+ }
246
+ return [...scopes, bindings];
247
+ };
248
+ /**
249
+ * Extend an AST traversal scope stack with bindings introduced by a node.
250
+ *
251
+ * @param scopes - Lexical scopes inherited from the node's ancestors.
252
+ * @param node - The node whose lexical and hoisted bindings should be collected.
253
+ * @returns The inherited stack or a stack extended with the node's bindings.
254
+ * @throws Does not throw.
255
+ * @internal
256
+ */
257
+ export const withNodeScope = (scopes, node) => {
258
+ if (!canIntroduceBindings(node)) {
259
+ return scopes;
260
+ }
261
+ return extendScopes(scopes, nodeBindings(node));
262
+ };
263
+ /**
264
+ * Select the lexical scopes visible while traversing one child edge.
265
+ *
266
+ * @param nodeScopes - Scopes visible in the parent node's ordinary children.
267
+ * @param parent - The parent AST node.
268
+ * @param childKey - The parent property containing the child.
269
+ * @returns The scope stack that is semantically visible along the child edge.
270
+ * @throws Does not throw.
271
+ * @internal
272
+ */
273
+ export const scopesForChild = (nodeScopes, parent, childKey) => {
274
+ if (isFunctionNode(parent) && childKey === 'body') {
275
+ const bindings = new Set();
276
+ addFunctionBodyVarBindings(bindings, parent);
277
+ return extendScopes(nodeScopes, bindings);
278
+ }
279
+ if (parent.type === 'SwitchStatement' && childKey === 'cases') {
280
+ const bindings = new Set();
281
+ addSwitchBindings(bindings, parent);
282
+ return extendScopes(nodeScopes, bindings);
283
+ }
284
+ return nodeScopes;
285
+ };
286
+ //# sourceMappingURL=effect-ast-scope.js.map