@thethracian/oxlint-config 0.3.5 → 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 (450) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +14 -2
  3. package/dist/codemods/arrow-body-style.d.ts.map +1 -1
  4. package/dist/codemods/arrow-body-style.js +13 -1
  5. package/dist/codemods/arrow-body-style.js.map +1 -1
  6. package/dist/codemods/explicit-return-types.d.ts.map +1 -1
  7. package/dist/codemods/explicit-return-types.js +15 -3
  8. package/dist/codemods/explicit-return-types.js.map +1 -1
  9. package/dist/codemods/function-declarations.d.ts.map +1 -1
  10. package/dist/codemods/function-declarations.js +7 -0
  11. package/dist/codemods/function-declarations.js.map +1 -1
  12. package/dist/codemods/inline-export-lists.d.ts.map +1 -1
  13. package/dist/codemods/inline-export-lists.js +17 -3
  14. package/dist/codemods/inline-export-lists.js.map +1 -1
  15. package/dist/codemods/internal-export-docs.d.ts.map +1 -1
  16. package/dist/codemods/internal-export-docs.js +17 -5
  17. package/dist/codemods/internal-export-docs.js.map +1 -1
  18. package/dist/codemods/no-ternary-variable-initializers.d.ts.map +1 -1
  19. package/dist/codemods/no-ternary-variable-initializers.js +24 -14
  20. package/dist/codemods/no-ternary-variable-initializers.js.map +1 -1
  21. package/dist/codemods/rename-acronyms.d.ts.map +1 -1
  22. package/dist/codemods/rename-acronyms.js +31 -1
  23. package/dist/codemods/rename-acronyms.js.map +1 -1
  24. package/dist/rules/diagnostic-guidance.d.ts.map +1 -1
  25. package/dist/rules/diagnostic-guidance.js +26 -2
  26. package/dist/rules/diagnostic-guidance.js.map +1 -1
  27. package/dist/rules/effect-alias-canonicalization.d.ts +27 -0
  28. package/dist/rules/effect-alias-canonicalization.d.ts.map +1 -0
  29. package/dist/rules/effect-alias-canonicalization.js +60 -0
  30. package/dist/rules/effect-alias-canonicalization.js.map +1 -0
  31. package/dist/rules/effect-ast-scope.d.ts +25 -0
  32. package/dist/rules/effect-ast-scope.d.ts.map +1 -0
  33. package/dist/rules/effect-ast-scope.js +286 -0
  34. package/dist/rules/effect-ast-scope.js.map +1 -0
  35. package/dist/rules/effect-ast.d.ts +42 -0
  36. package/dist/rules/effect-ast.d.ts.map +1 -0
  37. package/dist/rules/effect-ast.js +74 -0
  38. package/dist/rules/effect-ast.js.map +1 -0
  39. package/dist/rules/effect-boundary-ast-shared.d.ts +42 -0
  40. package/dist/rules/effect-boundary-ast-shared.d.ts.map +1 -0
  41. package/dist/rules/effect-boundary-ast-shared.js +203 -0
  42. package/dist/rules/effect-boundary-ast-shared.js.map +1 -0
  43. package/dist/rules/effect-default-boundary-ast.d.ts +10 -0
  44. package/dist/rules/effect-default-boundary-ast.d.ts.map +1 -0
  45. package/dist/rules/effect-default-boundary-ast.js +320 -0
  46. package/dist/rules/effect-default-boundary-ast.js.map +1 -0
  47. package/dist/rules/effect-default-compat-rules.d.ts +11 -15
  48. package/dist/rules/effect-default-compat-rules.d.ts.map +1 -1
  49. package/dist/rules/effect-default-compat-rules.js +20 -0
  50. package/dist/rules/effect-default-compat-rules.js.map +1 -1
  51. package/dist/rules/effect-default-scan-helpers.js +1 -1
  52. package/dist/rules/effect-default-scan-helpers.js.map +1 -1
  53. package/dist/rules/effect-default-workflow-helpers.d.ts.map +1 -1
  54. package/dist/rules/effect-default-workflow-helpers.js +7 -29
  55. package/dist/rules/effect-default-workflow-helpers.js.map +1 -1
  56. package/dist/rules/effect-default.d.ts +4 -1
  57. package/dist/rules/effect-default.d.ts.map +1 -1
  58. package/dist/rules/effect-default.js +14 -5
  59. package/dist/rules/effect-default.js.map +1 -1
  60. package/dist/rules/effect-export-binding-patterns.d.ts +9 -0
  61. package/dist/rules/effect-export-binding-patterns.d.ts.map +1 -0
  62. package/dist/rules/effect-export-binding-patterns.js +149 -0
  63. package/dist/rules/effect-export-binding-patterns.js.map +1 -0
  64. package/dist/rules/effect-export-declaration-boundaries.d.ts +21 -0
  65. package/dist/rules/effect-export-declaration-boundaries.d.ts.map +1 -0
  66. package/dist/rules/effect-export-declaration-boundaries.js +119 -0
  67. package/dist/rules/effect-export-declaration-boundaries.js.map +1 -0
  68. package/dist/rules/effect-export-default-binding.d.ts +5 -0
  69. package/dist/rules/effect-export-default-binding.d.ts.map +1 -0
  70. package/dist/rules/effect-export-default-binding.js +350 -0
  71. package/dist/rules/effect-export-default-binding.js.map +1 -0
  72. package/dist/rules/effect-export-segments.d.ts +9 -0
  73. package/dist/rules/effect-export-segments.d.ts.map +1 -0
  74. package/dist/rules/effect-export-segments.js +67 -0
  75. package/dist/rules/effect-export-segments.js.map +1 -0
  76. package/dist/rules/effect-exported-declarations.d.ts +3 -15
  77. package/dist/rules/effect-exported-declarations.d.ts.map +1 -1
  78. package/dist/rules/effect-exported-declarations.js +139 -94
  79. package/dist/rules/effect-exported-declarations.js.map +1 -1
  80. package/dist/rules/effect-global-fetch-ast.d.ts +14 -0
  81. package/dist/rules/effect-global-fetch-ast.d.ts.map +1 -0
  82. package/dist/rules/effect-global-fetch-ast.js +321 -0
  83. package/dist/rules/effect-global-fetch-ast.js.map +1 -0
  84. package/dist/rules/effect-global-fetch-imports.d.ts +29 -0
  85. package/dist/rules/effect-global-fetch-imports.d.ts.map +1 -0
  86. package/dist/rules/effect-global-fetch-imports.js +91 -0
  87. package/dist/rules/effect-global-fetch-imports.js.map +1 -0
  88. package/dist/rules/effect-import-bindings.d.ts +13 -0
  89. package/dist/rules/effect-import-bindings.d.ts.map +1 -0
  90. package/dist/rules/effect-import-bindings.js +133 -0
  91. package/dist/rules/effect-import-bindings.js.map +1 -0
  92. package/dist/rules/effect-imported-call-matcher.d.ts +24 -0
  93. package/dist/rules/effect-imported-call-matcher.d.ts.map +1 -0
  94. package/dist/rules/effect-imported-call-matcher.js +271 -0
  95. package/dist/rules/effect-imported-call-matcher.js.map +1 -0
  96. package/dist/rules/effect-module-source-index.d.ts +44 -0
  97. package/dist/rules/effect-module-source-index.d.ts.map +1 -0
  98. package/dist/rules/effect-module-source-index.js +306 -0
  99. package/dist/rules/effect-module-source-index.js.map +1 -0
  100. package/dist/rules/effect-native-references.d.ts +66 -0
  101. package/dist/rules/effect-native-references.d.ts.map +1 -0
  102. package/dist/rules/effect-native-references.js +164 -0
  103. package/dist/rules/effect-native-references.js.map +1 -0
  104. package/dist/rules/effect-object-assign-provenance.d.ts +20 -0
  105. package/dist/rules/effect-object-assign-provenance.d.ts.map +1 -0
  106. package/dist/rules/effect-object-assign-provenance.js +37 -0
  107. package/dist/rules/effect-object-assign-provenance.js.map +1 -0
  108. package/dist/rules/effect-prefer-map-over-flatmap-succeed.d.ts +4 -0
  109. package/dist/rules/effect-prefer-map-over-flatmap-succeed.d.ts.map +1 -0
  110. package/dist/rules/effect-prefer-map-over-flatmap-succeed.js +294 -0
  111. package/dist/rules/effect-prefer-map-over-flatmap-succeed.js.map +1 -0
  112. package/dist/rules/effect-prefer-succeed-for-stable-values.d.ts +4 -0
  113. package/dist/rules/effect-prefer-succeed-for-stable-values.d.ts.map +1 -0
  114. package/dist/rules/effect-prefer-succeed-for-stable-values.js +292 -0
  115. package/dist/rules/effect-prefer-succeed-for-stable-values.js.map +1 -0
  116. package/dist/rules/effect-promise-ast-values.d.ts +26 -0
  117. package/dist/rules/effect-promise-ast-values.d.ts.map +1 -0
  118. package/dist/rules/effect-promise-ast-values.js +66 -0
  119. package/dist/rules/effect-promise-ast-values.js.map +1 -0
  120. package/dist/rules/effect-promise-callable-declarations.d.ts +22 -0
  121. package/dist/rules/effect-promise-callable-declarations.d.ts.map +1 -0
  122. package/dist/rules/effect-promise-callable-declarations.js +255 -0
  123. package/dist/rules/effect-promise-callable-declarations.js.map +1 -0
  124. package/dist/rules/effect-promise-callable-lookup.d.ts +40 -0
  125. package/dist/rules/effect-promise-callable-lookup.d.ts.map +1 -0
  126. package/dist/rules/effect-promise-callable-lookup.js +99 -0
  127. package/dist/rules/effect-promise-callable-lookup.js.map +1 -0
  128. package/dist/rules/effect-promise-callable-scopes.d.ts +16 -0
  129. package/dist/rules/effect-promise-callable-scopes.d.ts.map +1 -0
  130. package/dist/rules/effect-promise-callable-scopes.js +43 -0
  131. package/dist/rules/effect-promise-callable-scopes.js.map +1 -0
  132. package/dist/rules/effect-promise-callable-types.d.ts +43 -0
  133. package/dist/rules/effect-promise-callable-types.d.ts.map +1 -0
  134. package/dist/rules/effect-promise-callable-types.js +5 -0
  135. package/dist/rules/effect-promise-callable-types.js.map +1 -0
  136. package/dist/rules/effect-promise-callables.d.ts +5 -0
  137. package/dist/rules/effect-promise-callables.d.ts.map +1 -0
  138. package/dist/rules/effect-promise-callables.js +7 -0
  139. package/dist/rules/effect-promise-callables.js.map +1 -0
  140. package/dist/rules/effect-promise-collections.d.ts +20 -0
  141. package/dist/rules/effect-promise-collections.d.ts.map +1 -0
  142. package/dist/rules/effect-promise-collections.js +199 -0
  143. package/dist/rules/effect-promise-collections.js.map +1 -0
  144. package/dist/rules/effect-promise-completion.d.ts +141 -0
  145. package/dist/rules/effect-promise-completion.d.ts.map +1 -0
  146. package/dist/rules/effect-promise-completion.js +200 -0
  147. package/dist/rules/effect-promise-completion.js.map +1 -0
  148. package/dist/rules/effect-promise-environment-projections.d.ts +23 -0
  149. package/dist/rules/effect-promise-environment-projections.d.ts.map +1 -0
  150. package/dist/rules/effect-promise-environment-projections.js +191 -0
  151. package/dist/rules/effect-promise-environment-projections.js.map +1 -0
  152. package/dist/rules/effect-promise-environment-types.d.ts +96 -0
  153. package/dist/rules/effect-promise-environment-types.d.ts.map +1 -0
  154. package/dist/rules/effect-promise-environment-types.js +10 -0
  155. package/dist/rules/effect-promise-environment-types.js.map +1 -0
  156. package/dist/rules/effect-promise-environment-values.d.ts +41 -0
  157. package/dist/rules/effect-promise-environment-values.d.ts.map +1 -0
  158. package/dist/rules/effect-promise-environment-values.js +214 -0
  159. package/dist/rules/effect-promise-environment-values.js.map +1 -0
  160. package/dist/rules/effect-promise-environments.d.ts +5 -0
  161. package/dist/rules/effect-promise-environments.d.ts.map +1 -0
  162. package/dist/rules/effect-promise-environments.js +7 -0
  163. package/dist/rules/effect-promise-environments.js.map +1 -0
  164. package/dist/rules/effect-promise-execution-ast.d.ts +12 -0
  165. package/dist/rules/effect-promise-execution-ast.d.ts.map +1 -0
  166. package/dist/rules/effect-promise-execution-ast.js +30 -0
  167. package/dist/rules/effect-promise-execution-ast.js.map +1 -0
  168. package/dist/rules/effect-promise-execution-engine.d.ts +9 -0
  169. package/dist/rules/effect-promise-execution-engine.d.ts.map +1 -0
  170. package/dist/rules/effect-promise-execution-engine.js +280 -0
  171. package/dist/rules/effect-promise-execution-engine.js.map +1 -0
  172. package/dist/rules/effect-promise-execution-flow.d.ts +48 -0
  173. package/dist/rules/effect-promise-execution-flow.d.ts.map +1 -0
  174. package/dist/rules/effect-promise-execution-flow.js +193 -0
  175. package/dist/rules/effect-promise-execution-flow.js.map +1 -0
  176. package/dist/rules/effect-promise-execution-navigation.d.ts +34 -0
  177. package/dist/rules/effect-promise-execution-navigation.d.ts.map +1 -0
  178. package/dist/rules/effect-promise-execution-navigation.js +66 -0
  179. package/dist/rules/effect-promise-execution-navigation.js.map +1 -0
  180. package/dist/rules/effect-promise-execution-types.d.ts +36 -0
  181. package/dist/rules/effect-promise-execution-types.d.ts.map +1 -0
  182. package/dist/rules/effect-promise-execution-types.js +5 -0
  183. package/dist/rules/effect-promise-execution-types.js.map +1 -0
  184. package/dist/rules/effect-promise-execution-values.d.ts +40 -0
  185. package/dist/rules/effect-promise-execution-values.d.ts.map +1 -0
  186. package/dist/rules/effect-promise-execution-values.js +268 -0
  187. package/dist/rules/effect-promise-execution-values.js.map +1 -0
  188. package/dist/rules/effect-promise-expression-flow.d.ts +27 -0
  189. package/dist/rules/effect-promise-expression-flow.d.ts.map +1 -0
  190. package/dist/rules/effect-promise-expression-flow.js +80 -0
  191. package/dist/rules/effect-promise-expression-flow.js.map +1 -0
  192. package/dist/rules/effect-promise-invocation-memo.d.ts +16 -0
  193. package/dist/rules/effect-promise-invocation-memo.d.ts.map +1 -0
  194. package/dist/rules/effect-promise-invocation-memo.js +44 -0
  195. package/dist/rules/effect-promise-invocation-memo.js.map +1 -0
  196. package/dist/rules/effect-promise-invocations.d.ts +16 -0
  197. package/dist/rules/effect-promise-invocations.d.ts.map +1 -0
  198. package/dist/rules/effect-promise-invocations.js +126 -0
  199. package/dist/rules/effect-promise-invocations.js.map +1 -0
  200. package/dist/rules/effect-promise-node-children.d.ts +22 -0
  201. package/dist/rules/effect-promise-node-children.d.ts.map +1 -0
  202. package/dist/rules/effect-promise-node-children.js +49 -0
  203. package/dist/rules/effect-promise-node-children.js.map +1 -0
  204. package/dist/rules/effect-promise-node-evaluation.d.ts +43 -0
  205. package/dist/rules/effect-promise-node-evaluation.d.ts.map +1 -0
  206. package/dist/rules/effect-promise-node-evaluation.js +150 -0
  207. package/dist/rules/effect-promise-node-evaluation.js.map +1 -0
  208. package/dist/rules/effect-promise-parameter-bindings.d.ts +28 -0
  209. package/dist/rules/effect-promise-parameter-bindings.d.ts.map +1 -0
  210. package/dist/rules/effect-promise-parameter-bindings.js +187 -0
  211. package/dist/rules/effect-promise-parameter-bindings.js.map +1 -0
  212. package/dist/rules/effect-promise-pattern-bindings.d.ts +9 -0
  213. package/dist/rules/effect-promise-pattern-bindings.d.ts.map +1 -0
  214. package/dist/rules/effect-promise-pattern-bindings.js +54 -0
  215. package/dist/rules/effect-promise-pattern-bindings.js.map +1 -0
  216. package/dist/rules/effect-promise-program-traversal.d.ts +40 -0
  217. package/dist/rules/effect-promise-program-traversal.d.ts.map +1 -0
  218. package/dist/rules/effect-promise-program-traversal.js +115 -0
  219. package/dist/rules/effect-promise-program-traversal.js.map +1 -0
  220. package/dist/rules/effect-promise-rule-bindings.d.ts +23 -0
  221. package/dist/rules/effect-promise-rule-bindings.d.ts.map +1 -0
  222. package/dist/rules/effect-promise-rule-bindings.js +41 -0
  223. package/dist/rules/effect-promise-rule-bindings.js.map +1 -0
  224. package/dist/rules/effect-promise-runtime-arguments.d.ts +18 -0
  225. package/dist/rules/effect-promise-runtime-arguments.d.ts.map +1 -0
  226. package/dist/rules/effect-promise-runtime-arguments.js +49 -0
  227. package/dist/rules/effect-promise-runtime-arguments.js.map +1 -0
  228. package/dist/rules/effect-promise-runtime-call-targets.d.ts +21 -0
  229. package/dist/rules/effect-promise-runtime-call-targets.d.ts.map +1 -0
  230. package/dist/rules/effect-promise-runtime-call-targets.js +55 -0
  231. package/dist/rules/effect-promise-runtime-call-targets.js.map +1 -0
  232. package/dist/rules/effect-promise-runtime-callable-properties.d.ts +20 -0
  233. package/dist/rules/effect-promise-runtime-callable-properties.d.ts.map +1 -0
  234. package/dist/rules/effect-promise-runtime-callable-properties.js +30 -0
  235. package/dist/rules/effect-promise-runtime-callable-properties.js.map +1 -0
  236. package/dist/rules/effect-promise-runtime-callables.d.ts +51 -0
  237. package/dist/rules/effect-promise-runtime-callables.d.ts.map +1 -0
  238. package/dist/rules/effect-promise-runtime-callables.js +214 -0
  239. package/dist/rules/effect-promise-runtime-callables.js.map +1 -0
  240. package/dist/rules/effect-promise-runtime-choice-operations.d.ts +32 -0
  241. package/dist/rules/effect-promise-runtime-choice-operations.d.ts.map +1 -0
  242. package/dist/rules/effect-promise-runtime-choice-operations.js +145 -0
  243. package/dist/rules/effect-promise-runtime-choice-operations.js.map +1 -0
  244. package/dist/rules/effect-promise-runtime-choice.d.ts +26 -0
  245. package/dist/rules/effect-promise-runtime-choice.d.ts.map +1 -0
  246. package/dist/rules/effect-promise-runtime-choice.js +95 -0
  247. package/dist/rules/effect-promise-runtime-choice.js.map +1 -0
  248. package/dist/rules/effect-promise-runtime-control-branches.d.ts +14 -0
  249. package/dist/rules/effect-promise-runtime-control-branches.d.ts.map +1 -0
  250. package/dist/rules/effect-promise-runtime-control-branches.js +74 -0
  251. package/dist/rules/effect-promise-runtime-control-branches.js.map +1 -0
  252. package/dist/rules/effect-promise-runtime-control-completions.d.ts +26 -0
  253. package/dist/rules/effect-promise-runtime-control-completions.d.ts.map +1 -0
  254. package/dist/rules/effect-promise-runtime-control-completions.js +116 -0
  255. package/dist/rules/effect-promise-runtime-control-completions.js.map +1 -0
  256. package/dist/rules/effect-promise-runtime-control-flow.d.ts +9 -0
  257. package/dist/rules/effect-promise-runtime-control-flow.d.ts.map +1 -0
  258. package/dist/rules/effect-promise-runtime-control-flow.js +94 -0
  259. package/dist/rules/effect-promise-runtime-control-flow.js.map +1 -0
  260. package/dist/rules/effect-promise-runtime-control-patterns.d.ts +15 -0
  261. package/dist/rules/effect-promise-runtime-control-patterns.d.ts.map +1 -0
  262. package/dist/rules/effect-promise-runtime-control-patterns.js +84 -0
  263. package/dist/rules/effect-promise-runtime-control-patterns.js.map +1 -0
  264. package/dist/rules/effect-promise-runtime-control-scalars.d.ts +23 -0
  265. package/dist/rules/effect-promise-runtime-control-scalars.d.ts.map +1 -0
  266. package/dist/rules/effect-promise-runtime-control-scalars.js +178 -0
  267. package/dist/rules/effect-promise-runtime-control-scalars.js.map +1 -0
  268. package/dist/rules/effect-promise-runtime-expressions.d.ts +22 -0
  269. package/dist/rules/effect-promise-runtime-expressions.d.ts.map +1 -0
  270. package/dist/rules/effect-promise-runtime-expressions.js +265 -0
  271. package/dist/rules/effect-promise-runtime-expressions.js.map +1 -0
  272. package/dist/rules/effect-promise-runtime-heap.d.ts +39 -0
  273. package/dist/rules/effect-promise-runtime-heap.d.ts.map +1 -0
  274. package/dist/rules/effect-promise-runtime-heap.js +73 -0
  275. package/dist/rules/effect-promise-runtime-heap.js.map +1 -0
  276. package/dist/rules/effect-promise-runtime-interpreter.d.ts +39 -0
  277. package/dist/rules/effect-promise-runtime-interpreter.d.ts.map +1 -0
  278. package/dist/rules/effect-promise-runtime-interpreter.js +260 -0
  279. package/dist/rules/effect-promise-runtime-interpreter.js.map +1 -0
  280. package/dist/rules/effect-promise-runtime-intrinsics.d.ts +15 -0
  281. package/dist/rules/effect-promise-runtime-intrinsics.d.ts.map +1 -0
  282. package/dist/rules/effect-promise-runtime-intrinsics.js +54 -0
  283. package/dist/rules/effect-promise-runtime-intrinsics.js.map +1 -0
  284. package/dist/rules/effect-promise-runtime-loops.d.ts +9 -0
  285. package/dist/rules/effect-promise-runtime-loops.d.ts.map +1 -0
  286. package/dist/rules/effect-promise-runtime-loops.js +277 -0
  287. package/dist/rules/effect-promise-runtime-loops.js.map +1 -0
  288. package/dist/rules/effect-promise-runtime-members.d.ts +28 -0
  289. package/dist/rules/effect-promise-runtime-members.d.ts.map +1 -0
  290. package/dist/rules/effect-promise-runtime-members.js +88 -0
  291. package/dist/rules/effect-promise-runtime-members.js.map +1 -0
  292. package/dist/rules/effect-promise-runtime-memo.d.ts +40 -0
  293. package/dist/rules/effect-promise-runtime-memo.d.ts.map +1 -0
  294. package/dist/rules/effect-promise-runtime-memo.js +124 -0
  295. package/dist/rules/effect-promise-runtime-memo.js.map +1 -0
  296. package/dist/rules/effect-promise-runtime-model.d.ts +251 -0
  297. package/dist/rules/effect-promise-runtime-model.d.ts.map +1 -0
  298. package/dist/rules/effect-promise-runtime-model.js +84 -0
  299. package/dist/rules/effect-promise-runtime-model.js.map +1 -0
  300. package/dist/rules/effect-promise-runtime-mutations.d.ts +17 -0
  301. package/dist/rules/effect-promise-runtime-mutations.d.ts.map +1 -0
  302. package/dist/rules/effect-promise-runtime-mutations.js +165 -0
  303. package/dist/rules/effect-promise-runtime-mutations.js.map +1 -0
  304. package/dist/rules/effect-promise-runtime-patterns.d.ts +21 -0
  305. package/dist/rules/effect-promise-runtime-patterns.d.ts.map +1 -0
  306. package/dist/rules/effect-promise-runtime-patterns.js +179 -0
  307. package/dist/rules/effect-promise-runtime-patterns.js.map +1 -0
  308. package/dist/rules/effect-promise-runtime-proof.d.ts +74 -0
  309. package/dist/rules/effect-promise-runtime-proof.d.ts.map +1 -0
  310. package/dist/rules/effect-promise-runtime-proof.js +253 -0
  311. package/dist/rules/effect-promise-runtime-proof.js.map +1 -0
  312. package/dist/rules/effect-promise-runtime-reporting.d.ts +16 -0
  313. package/dist/rules/effect-promise-runtime-reporting.d.ts.map +1 -0
  314. package/dist/rules/effect-promise-runtime-reporting.js +11 -0
  315. package/dist/rules/effect-promise-runtime-reporting.js.map +1 -0
  316. package/dist/rules/effect-promise-runtime-scalar-operations.d.ts +2 -0
  317. package/dist/rules/effect-promise-runtime-scalar-operations.d.ts.map +1 -0
  318. package/dist/rules/effect-promise-runtime-scalar-operations.js +5 -0
  319. package/dist/rules/effect-promise-runtime-scalar-operations.js.map +1 -0
  320. package/dist/rules/effect-promise-runtime-scalars.d.ts +24 -0
  321. package/dist/rules/effect-promise-runtime-scalars.d.ts.map +1 -0
  322. package/dist/rules/effect-promise-runtime-scalars.js +125 -0
  323. package/dist/rules/effect-promise-runtime-scalars.js.map +1 -0
  324. package/dist/rules/effect-promise-runtime-statements.d.ts +15 -0
  325. package/dist/rules/effect-promise-runtime-statements.d.ts.map +1 -0
  326. package/dist/rules/effect-promise-runtime-statements.js +251 -0
  327. package/dist/rules/effect-promise-runtime-statements.js.map +1 -0
  328. package/dist/rules/effect-promise-runtime-store.d.ts +44 -0
  329. package/dist/rules/effect-promise-runtime-store.d.ts.map +1 -0
  330. package/dist/rules/effect-promise-runtime-store.js +186 -0
  331. package/dist/rules/effect-promise-runtime-store.js.map +1 -0
  332. package/dist/rules/effect-promise-runtime-structures.d.ts +9 -0
  333. package/dist/rules/effect-promise-runtime-structures.d.ts.map +1 -0
  334. package/dist/rules/effect-promise-runtime-structures.js +181 -0
  335. package/dist/rules/effect-promise-runtime-structures.js.map +1 -0
  336. package/dist/rules/effect-promise-runtime-switch.d.ts +9 -0
  337. package/dist/rules/effect-promise-runtime-switch.d.ts.map +1 -0
  338. package/dist/rules/effect-promise-runtime-switch.js +91 -0
  339. package/dist/rules/effect-promise-runtime-switch.js.map +1 -0
  340. package/dist/rules/effect-promise-runtime-tasks.d.ts +72 -0
  341. package/dist/rules/effect-promise-runtime-tasks.d.ts.map +1 -0
  342. package/dist/rules/effect-promise-runtime-tasks.js +158 -0
  343. package/dist/rules/effect-promise-runtime-tasks.js.map +1 -0
  344. package/dist/rules/effect-promise-runtime-this.d.ts +14 -0
  345. package/dist/rules/effect-promise-runtime-this.d.ts.map +1 -0
  346. package/dist/rules/effect-promise-runtime-this.js +29 -0
  347. package/dist/rules/effect-promise-runtime-this.js.map +1 -0
  348. package/dist/rules/effect-promise-runtime-try.d.ts +9 -0
  349. package/dist/rules/effect-promise-runtime-try.d.ts.map +1 -0
  350. package/dist/rules/effect-promise-runtime-try.js +94 -0
  351. package/dist/rules/effect-promise-runtime-try.js.map +1 -0
  352. package/dist/rules/effect-promise-runtime-values.d.ts +88 -0
  353. package/dist/rules/effect-promise-runtime-values.d.ts.map +1 -0
  354. package/dist/rules/effect-promise-runtime-values.js +382 -0
  355. package/dist/rules/effect-promise-runtime-values.js.map +1 -0
  356. package/dist/rules/effect-promise-value-scopes.d.ts +94 -0
  357. package/dist/rules/effect-promise-value-scopes.d.ts.map +1 -0
  358. package/dist/rules/effect-promise-value-scopes.js +218 -0
  359. package/dist/rules/effect-promise-value-scopes.js.map +1 -0
  360. package/dist/rules/effect-recursion-ast.d.ts +14 -0
  361. package/dist/rules/effect-recursion-ast.d.ts.map +1 -0
  362. package/dist/rules/effect-recursion-ast.js +154 -0
  363. package/dist/rules/effect-recursion-ast.js.map +1 -0
  364. package/dist/rules/effect-recursion-execution.d.ts +15 -0
  365. package/dist/rules/effect-recursion-execution.d.ts.map +1 -0
  366. package/dist/rules/effect-recursion-execution.js +312 -0
  367. package/dist/rules/effect-recursion-execution.js.map +1 -0
  368. package/dist/rules/effect-recursion-generator.d.ts +17 -0
  369. package/dist/rules/effect-recursion-generator.d.ts.map +1 -0
  370. package/dist/rules/effect-recursion-generator.js +125 -0
  371. package/dist/rules/effect-recursion-generator.js.map +1 -0
  372. package/dist/rules/effect-recursion-local-bindings.d.ts +44 -0
  373. package/dist/rules/effect-recursion-local-bindings.d.ts.map +1 -0
  374. package/dist/rules/effect-recursion-local-bindings.js +99 -0
  375. package/dist/rules/effect-recursion-local-bindings.js.map +1 -0
  376. package/dist/rules/effect-recursion-phases.d.ts +40 -0
  377. package/dist/rules/effect-recursion-phases.d.ts.map +1 -0
  378. package/dist/rules/effect-recursion-phases.js +62 -0
  379. package/dist/rules/effect-recursion-phases.js.map +1 -0
  380. package/dist/rules/effect-recursion-source.d.ts +10 -0
  381. package/dist/rules/effect-recursion-source.d.ts.map +1 -0
  382. package/dist/rules/effect-recursion-source.js +182 -0
  383. package/dist/rules/effect-recursion-source.js.map +1 -0
  384. package/dist/rules/effect-recursion-viability.d.ts +66 -0
  385. package/dist/rules/effect-recursion-viability.d.ts.map +1 -0
  386. package/dist/rules/effect-recursion-viability.js +228 -0
  387. package/dist/rules/effect-recursion-viability.js.map +1 -0
  388. package/dist/rules/effect-rule-aliases.d.ts +14 -19
  389. package/dist/rules/effect-rule-aliases.d.ts.map +1 -1
  390. package/dist/rules/effect-rule-aliases.js +48 -30
  391. package/dist/rules/effect-rule-aliases.js.map +1 -1
  392. package/dist/rules/effect-rule-core.d.ts +4 -4
  393. package/dist/rules/effect-rule-core.d.ts.map +1 -1
  394. package/dist/rules/effect-rule-core.js +42 -44
  395. package/dist/rules/effect-rule-core.js.map +1 -1
  396. package/dist/rules/effect-rule-names.d.ts.map +1 -1
  397. package/dist/rules/effect-rule-names.js +1 -1
  398. package/dist/rules/effect-rule-names.js.map +1 -1
  399. package/dist/rules/effect-source-navigation-lexer.d.ts +13 -0
  400. package/dist/rules/effect-source-navigation-lexer.d.ts.map +1 -0
  401. package/dist/rules/effect-source-navigation-lexer.js +228 -0
  402. package/dist/rules/effect-source-navigation-lexer.js.map +1 -0
  403. package/dist/rules/effect-source-navigation.d.ts +2 -2
  404. package/dist/rules/effect-source-navigation.d.ts.map +1 -1
  405. package/dist/rules/effect-source-navigation.js +104 -101
  406. package/dist/rules/effect-source-navigation.js.map +1 -1
  407. package/dist/rules/effect-strict-ast-helpers.d.ts +82 -0
  408. package/dist/rules/effect-strict-ast-helpers.d.ts.map +1 -0
  409. package/dist/rules/effect-strict-ast-helpers.js +194 -0
  410. package/dist/rules/effect-strict-ast-helpers.js.map +1 -0
  411. package/dist/rules/effect-strict-ast-specs.d.ts.map +1 -1
  412. package/dist/rules/effect-strict-ast-specs.js +14 -16
  413. package/dist/rules/effect-strict-ast-specs.js.map +1 -1
  414. package/dist/rules/effect-strict-internals.d.ts +2 -196
  415. package/dist/rules/effect-strict-internals.d.ts.map +1 -1
  416. package/dist/rules/effect-strict-internals.js +2 -417
  417. package/dist/rules/effect-strict-internals.js.map +1 -1
  418. package/dist/rules/effect-strict-source-predicates.d.ts +120 -0
  419. package/dist/rules/effect-strict-source-predicates.d.ts.map +1 -0
  420. package/dist/rules/effect-strict-source-predicates.js +234 -0
  421. package/dist/rules/effect-strict-source-predicates.js.map +1 -0
  422. package/dist/rules/effect-sync-promise-scope-index.d.ts +44 -0
  423. package/dist/rules/effect-sync-promise-scope-index.d.ts.map +1 -0
  424. package/dist/rules/effect-sync-promise-scope-index.js +345 -0
  425. package/dist/rules/effect-sync-promise-scope-index.js.map +1 -0
  426. package/dist/rules/effect-sync-promise-scopes.d.ts +10 -0
  427. package/dist/rules/effect-sync-promise-scopes.d.ts.map +1 -0
  428. package/dist/rules/effect-sync-promise-scopes.js +115 -0
  429. package/dist/rules/effect-sync-promise-scopes.js.map +1 -0
  430. package/dist/rules/effect-sync-promise-source.d.ts +2 -0
  431. package/dist/rules/effect-sync-promise-source.d.ts.map +1 -0
  432. package/dist/rules/effect-sync-promise-source.js +5 -0
  433. package/dist/rules/effect-sync-promise-source.js.map +1 -0
  434. package/dist/rules/plugin-commented-out-code-jsx-scanner.d.ts +21 -0
  435. package/dist/rules/plugin-commented-out-code-jsx-scanner.d.ts.map +1 -0
  436. package/dist/rules/plugin-commented-out-code-jsx-scanner.js +200 -0
  437. package/dist/rules/plugin-commented-out-code-jsx-scanner.js.map +1 -0
  438. package/dist/rules/plugin-commented-out-code-lexical-primitives.d.ts +139 -0
  439. package/dist/rules/plugin-commented-out-code-lexical-primitives.d.ts.map +1 -0
  440. package/dist/rules/plugin-commented-out-code-lexical-primitives.js +244 -0
  441. package/dist/rules/plugin-commented-out-code-lexical-primitives.js.map +1 -0
  442. package/dist/rules/plugin-commented-out-code-rule.d.ts +13 -0
  443. package/dist/rules/plugin-commented-out-code-rule.d.ts.map +1 -1
  444. package/dist/rules/plugin-commented-out-code-rule.js +174 -82
  445. package/dist/rules/plugin-commented-out-code-rule.js.map +1 -1
  446. package/dist/rules/plugin-commented-out-code-source-scanner.d.ts +8 -0
  447. package/dist/rules/plugin-commented-out-code-source-scanner.d.ts.map +1 -0
  448. package/dist/rules/plugin-commented-out-code-source-scanner.js +228 -0
  449. package/dist/rules/plugin-commented-out-code-source-scanner.js.map +1 -0
  450. package/package.json +1 -1
@@ -1,422 +1,7 @@
1
1
  /* -------------------------------------------------------------------------- */
2
2
  /* AST and source predicates for opt-in strict Effect lint rules. */
3
3
  /* -------------------------------------------------------------------------- */
4
- import { Array, HashSet, Option, pipe } from 'effect';
5
- import { effectAPIAliases, effectFunctionAliases, effectImportAliases } from './effect-rule-core.js';
6
- import { exportedDeclarationTexts, findBalancedCallEnd, findMatchingBrace, findStatementEnd, stripComments, stripCommentsAndStrings, } from './effect-source-helpers.js';
7
- import { isConfiguredPath } from './effect-path-options.js';
4
+ export { arrayValue, effectCallPredicate, identifierName, isMember, isSchemaMember, isVoidZero, literalValue, nodeType, objectValue, reportAST, serviceKeyFromClass, } from './effect-strict-ast-helpers.js';
8
5
  export { hasEffectSignal, hasRuntimeCall } from './effect-rule-core.js';
9
- const astValueTypes = HashSet.make('boolean', 'number', 'object', 'string');
10
- const matchesIn = (source, pattern) => pipe(source.matchAll(pattern), Array.fromIterable);
11
- const matchIndexOrFalse = (match) => pipe(Option.fromNullable(match), Option.map((value) => value.index), Option.getOrElse(() => false));
12
- /**
13
- * Internal helper exported for package-local composition.
14
- *
15
- * @internal
16
- */
17
- export const reportAST = (context, message, node) => {
18
- context.report({ message, node });
19
- };
20
- const isASTValue = (value) => value === undefined || value === null || HashSet.has(astValueTypes, typeof value);
21
- /**
22
- * Internal helper exported for package-local composition.
23
- *
24
- * @internal
25
- */
26
- export const objectValue = (node, key) => {
27
- if (typeof node !== 'object' || node === null) {
28
- return undefined;
29
- }
30
- const value = Reflect.get(node, key);
31
- if (isASTValue(value)) {
32
- return value;
33
- }
34
- return undefined;
35
- };
36
- /**
37
- * Internal helper exported for package-local composition.
38
- *
39
- * @internal
40
- */
41
- export const arrayValue = (node) => {
42
- if (globalThis.Array.isArray(node)) {
43
- return pipe(node, Array.filter(isASTValue));
44
- }
45
- return [];
46
- };
47
- /**
48
- * Internal helper exported for package-local composition.
49
- *
50
- * @internal
51
- */
52
- export const nodeType = (node) => {
53
- const type = objectValue(node, 'type');
54
- if (typeof type === 'string') {
55
- return type;
56
- }
57
- return undefined;
58
- };
59
- /**
60
- * Internal helper exported for package-local composition.
61
- *
62
- * @internal
63
- */
64
- export const identifierName = (node) => {
65
- if (nodeType(node) === 'Identifier') {
66
- const name = objectValue(node, 'name');
67
- if (typeof name === 'string') {
68
- return name;
69
- }
70
- return undefined;
71
- }
72
- return undefined;
73
- };
74
- /**
75
- * Internal helper exported for package-local composition.
76
- *
77
- * @internal
78
- */
79
- export const literalValue = (node) => {
80
- if (nodeType(node) === 'Literal') {
81
- return objectValue(node, 'value');
82
- }
83
- return undefined;
84
- };
85
- /**
86
- * Internal helper exported for package-local composition.
87
- *
88
- * @internal
89
- */
90
- export const isVoidZero = (node) => {
91
- if (nodeType(node) !== 'UnaryExpression') {
92
- return false;
93
- }
94
- return (objectValue(node, 'operator') === 'void' && literalValue(objectValue(node, 'argument')) === 0);
95
- };
96
- const memberParts = (node) => {
97
- if (nodeType(node) !== 'MemberExpression') {
98
- return {};
99
- }
100
- return {
101
- objectName: identifierName(objectValue(node, 'object')),
102
- propertyName: identifierName(objectValue(node, 'property')),
103
- };
104
- };
105
- /**
106
- * Internal helper exported for package-local composition.
107
- *
108
- * @internal
109
- */
110
- export const isMember = (node, objectName, propertyName) => {
111
- const parts = memberParts(node);
112
- return parts.objectName === objectName && parts.propertyName === propertyName;
113
- };
114
- /**
115
- * Internal helper exported for package-local composition.
116
- *
117
- * @internal
118
- */
119
- export const isSchemaMember = (node, source, propertyName) => {
120
- const parts = memberParts(node);
121
- return Boolean(parts.objectName &&
122
- parts.propertyName === propertyName &&
123
- pipe(effectAPIAliases(source, 'Schema'), Array.contains(parts.objectName)));
124
- };
125
- /**
126
- * Internal helper exported for package-local composition.
127
- *
128
- * @internal
129
- */
130
- export const effectCallPredicate = (source, names) => {
131
- const memberNames = HashSet.fromIterable(names);
132
- const importAliases = pipe(effectImportAliases(source), HashSet.fromIterable);
133
- const functionAliases = pipe(names, Array.flatMap((name) => effectFunctionAliases(source, 'Effect', name)), HashSet.fromIterable);
134
- return (callee) => {
135
- const { objectName, propertyName } = memberParts(callee);
136
- if (objectName && propertyName) {
137
- return HashSet.has(importAliases, objectName) && HashSet.has(memberNames, propertyName);
138
- }
139
- const calleeName = identifierName(callee);
140
- return Boolean(calleeName && HashSet.has(functionAliases, calleeName));
141
- };
142
- };
143
- const literalStringValue = (node) => {
144
- const value = literalValue(node);
145
- if (typeof value === 'string') {
146
- return value;
147
- }
148
- return undefined;
149
- };
150
- const contextTagServiceKey = (innerArguments) => pipe(arrayValue(innerArguments), Array.head, Option.flatMapNullable(literalStringValue), Option.getOrUndefined);
151
- const effectServiceKey = (outerArguments) => pipe(arrayValue(outerArguments), Array.head, Option.flatMapNullable(literalStringValue), Option.getOrUndefined);
152
- const contextTagKeyFromMember = (member, innerArguments) => {
153
- if (member.objectName === 'Context' &&
154
- (member.propertyName === 'Tag' || member.propertyName === 'GenericTag')) {
155
- return contextTagServiceKey(innerArguments);
156
- }
157
- return undefined;
158
- };
159
- const effectServiceKeyFromMember = (source, member, outerArguments) => {
160
- if (member.objectName &&
161
- pipe(effectImportAliases(source), Array.contains(member.objectName)) &&
162
- member.propertyName === 'Service') {
163
- return effectServiceKey(outerArguments);
164
- }
165
- return undefined;
166
- };
167
- const serviceClassSuperCallParts = (node) => {
168
- const superClass = objectValue(node, 'superClass');
169
- const className = identifierName(objectValue(node, 'id'));
170
- if (nodeType(superClass) !== 'CallExpression') {
171
- return undefined;
172
- }
173
- const inner = objectValue(superClass, 'callee');
174
- if (!inner || nodeType(inner) !== 'CallExpression') {
175
- return undefined;
176
- }
177
- return { className, inner, outerArguments: objectValue(superClass, 'arguments') };
178
- };
179
- /**
180
- * Internal helper exported for package-local composition.
181
- *
182
- * @internal
183
- */
184
- export const serviceKeyFromClass = (node, source) => {
185
- const className = identifierName(objectValue(node, 'id'));
186
- const parts = serviceClassSuperCallParts(node);
187
- if (!parts) {
188
- return { className };
189
- }
190
- const innerArguments = objectValue(parts.inner, 'arguments');
191
- const member = memberParts(objectValue(parts.inner, 'callee'));
192
- const key = contextTagKeyFromMember(member, innerArguments) ??
193
- effectServiceKeyFromMember(source, member, parts.outerArguments);
194
- if (key) {
195
- return { className, key };
196
- }
197
- return { className };
198
- };
199
- /**
200
- * Internal helper exported for package-local composition.
201
- *
202
- * @internal
203
- */
204
- export const hasRetryScheduleWithoutJitter = (source) => pipe(matchesIn(source, /\bEffect\.retry\s*\(/g), Array.some((match) => {
205
- const openParenIndex = source.indexOf('(', match.index);
206
- const callBody = source.slice(openParenIndex + 1, findBalancedCallEnd(source, openParenIndex));
207
- return /\bSchedule\./.test(callBody) && !/\bjitter(?:ed)?\b/.test(callBody);
208
- }));
209
- const declarationBeforeBody = (declaration) => {
210
- const bodyStart = declaration.indexOf('{');
211
- if (bodyStart === -1) {
212
- return declaration;
213
- }
214
- return declaration.slice(0, bodyStart);
215
- };
216
- /**
217
- * Internal helper exported for package-local composition.
218
- *
219
- * @internal
220
- */
221
- export const publicAPIDeclarationSignature = (declaration) => {
222
- if (/^\s*(?:export\s+)?(?:async\s+)?function\b/.test(declaration)) {
223
- return declarationBeforeBody(declaration);
224
- }
225
- if (/^\s*(?:export\s+)?(?:const|let|var)\b/.test(declaration)) {
226
- return declarationBeforeBody(declaration);
227
- }
228
- return declaration;
229
- };
230
- const hasClassPromiseReturningPublicMember = (declaration) => {
231
- if (!/^\s*(?:export\s+)?(?:default\s+)?(?:abstract\s+)?class\b/.test(declaration)) {
232
- return false;
233
- }
234
- const signatureSource = stripCommentsAndStrings(declaration);
235
- const publicMemberPrefix = String.raw `(?!private\b|protected\b)(?:(?:public|static|abstract|override|declare|readonly)\s+)*`;
236
- const memberName = String.raw `[A-Za-z_$][\w$]*`;
237
- const memberStart = `(?:^|[{\\n;]\\s*)${publicMemberPrefix}${memberName}`;
238
- const accessorStart = `(?:^|[{\\n;]\\s*)${publicMemberPrefix}`;
239
- return (new RegExp(`${memberStart}\\s*\\([^)]*\\)\\s*:\\s*Promise\\s*<`).test(signatureSource) ||
240
- new RegExp(`(?:^|[{\\n;]\\s*)${publicMemberPrefix}async\\s+${memberName}\\s*\\([^)]*\\)`).test(signatureSource) ||
241
- new RegExp(`${memberStart}\\s*=\\s*async\\b`).test(signatureSource) ||
242
- new RegExp(`${memberStart}\\s*=\\s*\\([^)]*\\)\\s*:\\s*Promise\\s*<`).test(signatureSource) ||
243
- new RegExp(`${memberStart}\\s*:\\s*[^;\\n=]*Promise\\s*<`).test(signatureSource) ||
244
- new RegExp(`${accessorStart}get\\s+${memberName}\\s*\\([^)]*\\)\\s*:\\s*Promise\\s*<`).test(signatureSource) ||
245
- new RegExp(`${accessorStart}accessor\\s+${memberName}\\s*:\\s*[^;\\n=]*Promise\\s*<`).test(signatureSource));
246
- };
247
- /**
248
- * Internal helper exported for package-local composition.
249
- *
250
- * @internal
251
- */
252
- export const hasPromiseReturningPublicAPI = (source) => pipe(exportedDeclarationTexts(source), Array.some((declaration) => {
253
- if (/^\s*(?:export\s+)?(?:default\s+)?(?:abstract\s+)?class\b/.test(declaration)) {
254
- return hasClassPromiseReturningPublicMember(declaration);
255
- }
256
- const signature = stripCommentsAndStrings(publicAPIDeclarationSignature(declaration));
257
- return (/\bPromise\s*</.test(signature) ||
258
- /^\s*(?:export\s+)?async\s+function\b/.test(signature) ||
259
- /=\s*async\b/.test(signature));
260
- }));
261
- /**
262
- * Internal helper exported for package-local composition.
263
- *
264
- * @internal
265
- */
266
- export const hasExportedRunPromiseAPI = (source) => pipe(exportedDeclarationTexts(source), Array.some((declaration) => /\bEffect\.runPromise\s*\(/.test(stripCommentsAndStrings(declaration))));
267
- const functionBodySegment = (code, matchIndex) => {
268
- const bodyStart = code.indexOf('{', matchIndex);
269
- if (bodyStart === -1) {
270
- return undefined;
271
- }
272
- const bodyEnd = findMatchingBrace(code, bodyStart);
273
- if (bodyEnd === -1) {
274
- return undefined;
275
- }
276
- return code.slice(bodyStart, bodyEnd + 1);
277
- };
278
- /**
279
- * Internal helper exported for package-local composition.
280
- *
281
- * @internal
282
- */
283
- export const hasRunSyncInServerRequestHandler = (source) => {
284
- const code = stripCommentsAndStrings(source);
285
- return (pipe(matchesIn(code, /\b(?:handler|route|loader|action)\s*=/g), Array.some((match) => {
286
- const segment = code.slice(match.index, findStatementEnd(code, match.index) + 1);
287
- return /\bEffect\.runSync\s*\(/.test(segment);
288
- })) ||
289
- pipe(matchesIn(code, /\bfunction\s+(?:handler|route|loader|action)\s*\(/g), Array.some((match) => pipe(Option.fromNullable(functionBodySegment(code, match.index)), Option.exists((body) => /\bEffect\.runSync\s*\(/.test(body))))));
290
- };
291
- /**
292
- * Internal helper exported for package-local composition.
293
- *
294
- * @internal
295
- */
296
- export const hasCryptoRandomUUID = (source) => matchIndexOrFalse(/\bcrypto\.randomUUID\s*\(/.exec(stripCommentsAndStrings(source)));
297
- /**
298
- * Internal helper exported for package-local composition.
299
- *
300
- * @internal
301
- */
302
- export const hasSchemaInstanceof = (source) => {
303
- const code = stripCommentsAndStrings(source);
304
- return matchIndexOrFalse(/\binstanceof\s+[A-Z][\w$]*(?:Schema|Request)\b/.exec(code));
305
- };
306
- /**
307
- * Internal helper exported for package-local composition.
308
- *
309
- * @internal
310
- */
311
- export const hasSchemaStructWithTag = (source) => matchIndexOrFalse(/\bSchema\.Struct\s*\(\s*{[\s\S]*?_tag\s*:\s*Schema\.Literal\s*\(/.exec(stripCommentsAndStrings(source)));
312
- /**
313
- * Internal helper exported for package-local composition.
314
- *
315
- * @internal
316
- */
317
- export const hasSchemaUnionOfLiterals = (source) => matchIndexOrFalse(/\bSchema\.Union\s*\(\s*Schema\.Literal\s*\([^)]*\)\s*,\s*Schema\.Literal\s*\(/.exec(stripCommentsAndStrings(source)));
318
- const nonDeterministicServiceKeyIndex = (code, pattern) => pipe(matchesIn(code, pattern), Array.findFirst((match) => {
319
- const [, className, key] = match;
320
- return className !== key && !key.endsWith(`/${className}`);
321
- }), Option.map((match) => match.index), Option.getOrUndefined);
322
- /**
323
- * Internal helper exported for package-local composition.
324
- *
325
- * @internal
326
- */
327
- export const hasNonDeterministicServiceKey = (source) => {
328
- const code = stripComments(source);
329
- const legacyPattern = /\bclass\s+([A-Z][\w$]*)\s+extends\s+(?:Context\.Tag|Effect\.Service|Effect\.Tag)\s*\(\s*['"`]([^'"`]+)['"`]\s*\)/g;
330
- const legacyIndex = nonDeterministicServiceKeyIndex(code, legacyPattern);
331
- if (legacyIndex !== undefined) {
332
- return legacyIndex;
333
- }
334
- const servicePattern = /\bclass\s+([A-Z][\w$]*)\s+extends\s+Effect\.Service\s*<\s*[A-Z][\w$]*\s*>\s*\(\s*\)\s*\(\s*['"`]([^'"`]+)['"`]/g;
335
- return nonDeterministicServiceKeyIndex(code, servicePattern) ?? false;
336
- };
337
- /**
338
- * Internal helper exported for package-local composition.
339
- *
340
- * @internal
341
- */
342
- export const hasMultipleProvideChain = (source) => {
343
- const code = stripCommentsAndStrings(source);
344
- return matchIndexOrFalse(/\.pipe\s*\([\s\S]*?Effect\.provide\s*\([\s\S]*?Effect\.provide\s*\(/.exec(code));
345
- };
346
- /**
347
- * Internal helper exported for package-local composition.
348
- *
349
- * @internal
350
- */
351
- export const hasLayerEffectWithScope = (source) => {
352
- const code = stripCommentsAndStrings(source);
353
- return matchIndexOrFalse(/\bLayer\.effect\s*\([\s\S]*?\b(?:Scope\.Scope|Scope)\b/.exec(code));
354
- };
355
- /**
356
- * Internal helper exported for package-local composition.
357
- *
358
- * @internal
359
- */
360
- export const hasNodeBuiltinImport = (source) => matchIndexOrFalse(/\bfrom\s+['"]node:(?:fs|fs\/promises|path|child_process|crypto|stream|http|https)['"]/.exec(stripComments(source)));
361
- /**
362
- * Internal helper exported for package-local composition.
363
- *
364
- * @internal
365
- */
366
- export const hasGlobalFetch = (source, context) => {
367
- const code = stripCommentsAndStrings(source);
368
- if (isConfiguredPath(context, 'adapterLayers')) {
369
- return false;
370
- }
371
- return pipe(matchesIn(code, /\bfetch\s*\(/g), Array.findFirst((match) => Boolean(effectWrapperStatement(code, match.index))), Option.map((match) => match.index), Option.getOrElse(() => false));
372
- };
373
- /**
374
- * Internal helper exported for package-local composition.
375
- *
376
- * @internal
377
- */
378
- export const hasEffectSucceedWithVoid = (source) => matchIndexOrFalse(/\bEffect\.succeed\s*\(\s*(?:undefined|void\s+0)?\s*\)/.exec(stripCommentsAndStrings(source)));
379
- /**
380
- * Internal helper exported for package-local composition.
381
- *
382
- * @internal
383
- */
384
- export const hasMapToVoid = (source) => matchIndexOrFalse(/\bEffect\.map\s*\(\s*\(\s*\)\s*=>\s*(?:undefined|void\s+0|\{\s*\})\s*\)/.exec(stripCommentsAndStrings(source)));
385
- /**
386
- * Internal helper exported for package-local composition.
387
- *
388
- * @internal
389
- */
390
- export const hasMapFlatten = (source) => matchIndexOrFalse(/\bEffect\.map\s*\([\s\S]*?\)\s*,\s*Effect\.flatten\b|\bEffect\.map\s*\([\s\S]*?\)\.pipe\s*\(\s*Effect\.flatten\b/.exec(stripCommentsAndStrings(source)));
391
- /**
392
- * Internal helper exported for package-local composition.
393
- *
394
- * @internal
395
- */
396
- export const effectWrapperStatement = (source, targetIndex) => {
397
- const statementStart = Math.max(source.lastIndexOf(';', targetIndex) + 1, source.lastIndexOf('\n', targetIndex) + 1);
398
- const statementEnd = findStatementEnd(source, statementStart);
399
- const statement = source.slice(statementStart, statementEnd + 1);
400
- if (/\bEffect\.(?:promise|tryPromise)\s*\(/.test(statement)) {
401
- return statement;
402
- }
403
- return undefined;
404
- };
405
- /**
406
- * Internal helper exported for package-local composition.
407
- *
408
- * @internal
409
- */
410
- export const hasDirectPlatformAccess = (source, context) => {
411
- if (isConfiguredPath(context, 'adapterLayers')) {
412
- return false;
413
- }
414
- const code = stripCommentsAndStrings(source);
415
- return pipe(matchesIn(code, /\b(?:fetch|readFileSync|writeFileSync|createReadStream)\s*\(/g), Array.some((match) => {
416
- if (!match[0].startsWith('fetch')) {
417
- return true;
418
- }
419
- return !effectWrapperStatement(code, match.index);
420
- }));
421
- };
6
+ export { effectWrapperStatement, hasCryptoRandomUUID, hasDirectPlatformAccess, hasEffectSucceedWithVoid, hasExportedRunPromiseAPI, hasGlobalFetch, hasLayerEffectWithScope, hasMapFlatten, hasMapToVoid, hasMultipleProvideChain, hasNodeBuiltinImport, hasNonDeterministicServiceKey, hasPromiseReturningPublicAPI, hasRetryScheduleWithoutJitter, hasRunSyncInServerRequestHandler, hasSchemaInstanceof, hasSchemaStructWithTag, hasSchemaUnionOfLiterals, publicAPIDeclarationSignature, } from './effect-strict-source-predicates.js';
422
7
  //# sourceMappingURL=effect-strict-internals.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"effect-strict-internals.js","sourceRoot":"","sources":["../../src/rules/effect-strict-internals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"effect-strict-internals.js","sourceRoot":"","sources":["../../src/rules/effect-strict-internals.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,gFAAgF;AAChF,gFAAgF;AAChF,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,cAAc,EACd,QAAQ,EACR,cAAc,EACd,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,SAAS,EACT,mBAAmB,GACpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,cAAc,EACd,uBAAuB,EACvB,aAAa,EACb,YAAY,EACZ,uBAAuB,EACvB,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,6BAA6B,EAC7B,gCAAgC,EAChC,mBAAmB,EACnB,sBAAsB,EACtB,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,mCAAmC,CAAC"}
@@ -0,0 +1,120 @@
1
+ interface RuleContext {
2
+ filename?: string;
3
+ options?: object[];
4
+ }
5
+ /**
6
+ * Internal helper exported for package-local composition.
7
+ *
8
+ * @internal
9
+ */
10
+ export declare const hasRetryScheduleWithoutJitter: (source: string) => boolean;
11
+ /**
12
+ * Internal helper exported for package-local composition.
13
+ *
14
+ * @internal
15
+ */
16
+ export declare const publicAPIDeclarationSignature: (declaration: string) => string;
17
+ /**
18
+ * Internal helper exported for package-local composition.
19
+ *
20
+ * @internal
21
+ */
22
+ export declare const hasPromiseReturningPublicAPI: (source: string) => boolean;
23
+ /**
24
+ * Internal helper exported for package-local composition.
25
+ *
26
+ * @internal
27
+ */
28
+ export declare const hasExportedRunPromiseAPI: (source: string) => boolean;
29
+ /**
30
+ * Internal helper exported for package-local composition.
31
+ *
32
+ * @internal
33
+ */
34
+ export declare const hasRunSyncInServerRequestHandler: (source: string) => boolean;
35
+ /**
36
+ * Internal helper exported for package-local composition.
37
+ *
38
+ * @internal
39
+ */
40
+ export declare const hasCryptoRandomUUID: (source: string) => number | false;
41
+ /**
42
+ * Internal helper exported for package-local composition.
43
+ *
44
+ * @internal
45
+ */
46
+ export declare const hasSchemaInstanceof: (source: string) => number | false;
47
+ /**
48
+ * Internal helper exported for package-local composition.
49
+ *
50
+ * @internal
51
+ */
52
+ export declare const hasSchemaStructWithTag: (source: string) => number | false;
53
+ /**
54
+ * Internal helper exported for package-local composition.
55
+ *
56
+ * @internal
57
+ */
58
+ export declare const hasSchemaUnionOfLiterals: (source: string) => number | false;
59
+ /**
60
+ * Internal helper exported for package-local composition.
61
+ *
62
+ * @internal
63
+ */
64
+ export declare const hasNonDeterministicServiceKey: (source: string) => number | false;
65
+ /**
66
+ * Internal helper exported for package-local composition.
67
+ *
68
+ * @internal
69
+ */
70
+ export declare const hasMultipleProvideChain: (source: string) => number | false;
71
+ /**
72
+ * Internal helper exported for package-local composition.
73
+ *
74
+ * @internal
75
+ */
76
+ export declare const hasLayerEffectWithScope: (source: string) => number | false;
77
+ /**
78
+ * Internal helper exported for package-local composition.
79
+ *
80
+ * @internal
81
+ */
82
+ export declare const hasNodeBuiltinImport: (source: string) => number | false;
83
+ /**
84
+ * Internal helper exported for package-local composition.
85
+ *
86
+ * @internal
87
+ */
88
+ export declare const hasGlobalFetch: (source: string, context: RuleContext) => number | false;
89
+ /**
90
+ * Internal helper exported for package-local composition.
91
+ *
92
+ * @internal
93
+ */
94
+ export declare const hasEffectSucceedWithVoid: (source: string) => number | false;
95
+ /**
96
+ * Internal helper exported for package-local composition.
97
+ *
98
+ * @internal
99
+ */
100
+ export declare const hasMapToVoid: (source: string) => number | false;
101
+ /**
102
+ * Internal helper exported for package-local composition.
103
+ *
104
+ * @internal
105
+ */
106
+ export declare const hasMapFlatten: (source: string) => number | false;
107
+ /**
108
+ * Internal helper exported for package-local composition.
109
+ *
110
+ * @internal
111
+ */
112
+ export declare const effectWrapperStatement: (source: string, targetIndex: number) => string | undefined;
113
+ /**
114
+ * Internal helper exported for package-local composition.
115
+ *
116
+ * @internal
117
+ */
118
+ export declare const hasDirectPlatformAccess: (source: string, context: RuleContext) => boolean;
119
+ export {};
120
+ //# sourceMappingURL=effect-strict-source-predicates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effect-strict-source-predicates.d.ts","sourceRoot":"","sources":["../../src/rules/effect-strict-source-predicates.ts"],"names":[],"mappings":"AAcA,UAAU,WAAW;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AA2BD;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,GAAI,QAAQ,MAAM,KAAG,OAW5D,CAAC;AAUJ;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,GAAI,aAAa,MAAM,KAAG,MAUnE,CAAC;AA6BF;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,GAAI,QAAQ,MAAM,KAAG,OAe3D,CAAC;AAEJ;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GAAI,QAAQ,MAAM,KAAG,OAMvD,CAAC;AAcJ;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,GAAI,QAAQ,MAAM,KAAG,OAoBjE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,QAAQ,MAAM,KAAG,MAAM,GAAG,KACwB,CAAC;AAEvF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,QAAQ,MAAM,KAAG,MAAM,GAAG,KAG7D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAI,QAAQ,MAAM,KAAG,MAAM,GAAG,KAK9D,CAAC;AAEJ;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GAAI,QAAQ,MAAM,KAAG,MAAM,GAAG,KAKhE,CAAC;AAYJ;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,GAAI,QAAQ,MAAM,KAAG,MAAM,GAAG,KAavE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAAI,QAAQ,MAAM,KAAG,MAAM,GAAG,KAKjE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAAI,QAAQ,MAAM,KAAG,MAAM,GAAG,KAGjE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAI,QAAQ,MAAM,KAAG,MAAM,GAAG,KAK5D,CAAC;AAEJ;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,EAAE,SAAS,WAAW,KAAG,MAAM,GAAG,KAY9E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GAAI,QAAQ,MAAM,KAAG,MAAM,GAAG,KAGhE,CAAC;AAEJ;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,KAAG,MAAM,GAAG,KAKpD,CAAC;AAEJ;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,QAAQ,MAAM,KAAG,MAAM,GAAG,KAKrD,CAAC;AAEJ;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAI,QAAQ,MAAM,EAAE,aAAa,MAAM,KAAG,MAAM,GAAG,SAWrF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAAI,QAAQ,MAAM,EAAE,SAAS,WAAW,KAAG,OAgB9E,CAAC"}