alchemy 2.0.0-beta.35 → 2.0.0-beta.37

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 (222) hide show
  1. package/bin/exec.js +176 -26
  2. package/bin/exec.js.map +1 -1
  3. package/lib/AWS/Lambda/Function.d.ts.map +1 -1
  4. package/lib/AWS/Lambda/Function.js +22 -2
  5. package/lib/AWS/Lambda/Function.js.map +1 -1
  6. package/lib/Apply.d.ts.map +1 -1
  7. package/lib/Apply.js +6 -1
  8. package/lib/Apply.js.map +1 -1
  9. package/lib/Cli/main.d.ts.map +1 -1
  10. package/lib/Cli/main.js +2 -0
  11. package/lib/Cli/main.js.map +1 -1
  12. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDataset.d.ts +54 -0
  13. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDataset.d.ts.map +1 -0
  14. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDataset.js +17 -0
  15. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDataset.js.map +1 -0
  16. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.d.ts +37 -0
  17. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.d.ts.map +1 -0
  18. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.js +45 -0
  19. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.js.map +1 -0
  20. package/lib/Cloudflare/AnalyticsEngine/index.d.ts +3 -0
  21. package/lib/Cloudflare/AnalyticsEngine/index.d.ts.map +1 -0
  22. package/lib/Cloudflare/AnalyticsEngine/index.js +3 -0
  23. package/lib/Cloudflare/AnalyticsEngine/index.js.map +1 -0
  24. package/lib/Cloudflare/D1/D1Connection.d.ts +47 -3
  25. package/lib/Cloudflare/D1/D1Connection.d.ts.map +1 -1
  26. package/lib/Cloudflare/D1/D1Connection.js +62 -5
  27. package/lib/Cloudflare/D1/D1Connection.js.map +1 -1
  28. package/lib/Cloudflare/Images/Images.d.ts +103 -0
  29. package/lib/Cloudflare/Images/Images.d.ts.map +1 -0
  30. package/lib/Cloudflare/Images/Images.js +82 -0
  31. package/lib/Cloudflare/Images/Images.js.map +1 -0
  32. package/lib/Cloudflare/Images/ImagesBinding.d.ts +73 -0
  33. package/lib/Cloudflare/Images/ImagesBinding.d.ts.map +1 -0
  34. package/lib/Cloudflare/Images/ImagesBinding.js +83 -0
  35. package/lib/Cloudflare/Images/ImagesBinding.js.map +1 -0
  36. package/lib/Cloudflare/Images/index.d.ts +3 -0
  37. package/lib/Cloudflare/Images/index.d.ts.map +1 -0
  38. package/lib/Cloudflare/Images/index.js +3 -0
  39. package/lib/Cloudflare/Images/index.js.map +1 -0
  40. package/lib/Cloudflare/Local/SidecarHandlers.js +9 -1
  41. package/lib/Cloudflare/Local/SidecarHandlers.js.map +1 -1
  42. package/lib/Cloudflare/Providers.d.ts.map +1 -1
  43. package/lib/Cloudflare/Providers.js +6 -1
  44. package/lib/Cloudflare/Providers.js.map +1 -1
  45. package/lib/Cloudflare/R2/R2Bucket.d.ts +135 -0
  46. package/lib/Cloudflare/R2/R2Bucket.d.ts.map +1 -1
  47. package/lib/Cloudflare/R2/R2Bucket.js +146 -7
  48. package/lib/Cloudflare/R2/R2Bucket.js.map +1 -1
  49. package/lib/Cloudflare/StateStore/Api.d.ts +6 -1
  50. package/lib/Cloudflare/StateStore/Api.d.ts.map +1 -1
  51. package/lib/Cloudflare/StateStore/Api.js +23 -1
  52. package/lib/Cloudflare/StateStore/Api.js.map +1 -1
  53. package/lib/Cloudflare/StateStore/Store.d.ts +16 -1
  54. package/lib/Cloudflare/StateStore/Store.d.ts.map +1 -1
  55. package/lib/Cloudflare/StateStore/Store.js +22 -5
  56. package/lib/Cloudflare/StateStore/Store.js.map +1 -1
  57. package/lib/Cloudflare/Workers/CronEventSource.d.ts +35 -0
  58. package/lib/Cloudflare/Workers/CronEventSource.d.ts.map +1 -0
  59. package/lib/Cloudflare/Workers/CronEventSource.js +55 -0
  60. package/lib/Cloudflare/Workers/CronEventSource.js.map +1 -0
  61. package/lib/Cloudflare/Workers/InferEnv.d.ts +37 -2
  62. package/lib/Cloudflare/Workers/InferEnv.d.ts.map +1 -1
  63. package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts.map +1 -1
  64. package/lib/Cloudflare/Workers/LocalWorkerProvider.js +2 -1
  65. package/lib/Cloudflare/Workers/LocalWorkerProvider.js.map +1 -1
  66. package/lib/Cloudflare/Workers/Rpc.d.ts +76 -3
  67. package/lib/Cloudflare/Workers/Rpc.d.ts.map +1 -1
  68. package/lib/Cloudflare/Workers/Rpc.js +197 -13
  69. package/lib/Cloudflare/Workers/Rpc.js.map +1 -1
  70. package/lib/Cloudflare/Workers/Worker.d.ts +26 -6
  71. package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
  72. package/lib/Cloudflare/Workers/Worker.js +183 -41
  73. package/lib/Cloudflare/Workers/Worker.js.map +1 -1
  74. package/lib/Cloudflare/Workers/WorkerBundle.d.ts.map +1 -1
  75. package/lib/Cloudflare/Workers/WorkerBundle.js +15 -5
  76. package/lib/Cloudflare/Workers/WorkerBundle.js.map +1 -1
  77. package/lib/Cloudflare/Workers/Workflow.d.ts +50 -47
  78. package/lib/Cloudflare/Workers/Workflow.d.ts.map +1 -1
  79. package/lib/Cloudflare/Workers/Workflow.js +41 -35
  80. package/lib/Cloudflare/Workers/Workflow.js.map +1 -1
  81. package/lib/Cloudflare/Workers/index.d.ts +1 -0
  82. package/lib/Cloudflare/Workers/index.d.ts.map +1 -1
  83. package/lib/Cloudflare/Workers/index.js +1 -0
  84. package/lib/Cloudflare/Workers/index.js.map +1 -1
  85. package/lib/Cloudflare/index.d.ts +2 -0
  86. package/lib/Cloudflare/index.d.ts.map +1 -1
  87. package/lib/Cloudflare/index.js +2 -0
  88. package/lib/Cloudflare/index.js.map +1 -1
  89. package/lib/Deploy.d.ts +4 -1
  90. package/lib/Deploy.d.ts.map +1 -1
  91. package/lib/Deploy.js +2 -2
  92. package/lib/Deploy.js.map +1 -1
  93. package/lib/Destroy.d.ts +4 -1
  94. package/lib/Destroy.d.ts.map +1 -1
  95. package/lib/Destroy.js +2 -2
  96. package/lib/Destroy.js.map +1 -1
  97. package/lib/Output.d.ts +45 -5
  98. package/lib/Output.d.ts.map +1 -1
  99. package/lib/Output.js +100 -4
  100. package/lib/Output.js.map +1 -1
  101. package/lib/Plan.d.ts.map +1 -1
  102. package/lib/Plan.js +93 -12
  103. package/lib/Plan.js.map +1 -1
  104. package/lib/Platform.d.ts.map +1 -1
  105. package/lib/Platform.js +16 -3
  106. package/lib/Platform.js.map +1 -1
  107. package/lib/Ref.d.ts +4 -1
  108. package/lib/Ref.d.ts.map +1 -1
  109. package/lib/Ref.js +1 -1
  110. package/lib/Ref.js.map +1 -1
  111. package/lib/Resource.d.ts +8 -0
  112. package/lib/Resource.d.ts.map +1 -1
  113. package/lib/Resource.js +10 -0
  114. package/lib/Resource.js.map +1 -1
  115. package/lib/RuntimeContext.d.ts +3 -1
  116. package/lib/RuntimeContext.d.ts.map +1 -1
  117. package/lib/RuntimeContext.js.map +1 -1
  118. package/lib/Secret.d.ts +50 -0
  119. package/lib/Secret.d.ts.map +1 -0
  120. package/lib/Secret.js +23 -0
  121. package/lib/Secret.js.map +1 -0
  122. package/lib/Serverless/Function.d.ts +9 -1
  123. package/lib/Serverless/Function.d.ts.map +1 -1
  124. package/lib/Stack.d.ts +14 -5
  125. package/lib/Stack.d.ts.map +1 -1
  126. package/lib/Stack.js +31 -19
  127. package/lib/Stack.js.map +1 -1
  128. package/lib/State/HttpStateApi.d.ts +15 -1
  129. package/lib/State/HttpStateApi.d.ts.map +1 -1
  130. package/lib/State/HttpStateApi.js +11 -0
  131. package/lib/State/HttpStateApi.js.map +1 -1
  132. package/lib/State/HttpStateStore.d.ts.map +1 -1
  133. package/lib/State/HttpStateStore.js +11 -0
  134. package/lib/State/HttpStateStore.js.map +1 -1
  135. package/lib/State/InMemoryState.d.ts +2 -2
  136. package/lib/State/InMemoryState.d.ts.map +1 -1
  137. package/lib/State/InMemoryState.js +12 -6
  138. package/lib/State/InMemoryState.js.map +1 -1
  139. package/lib/State/LocalState.d.ts.map +1 -1
  140. package/lib/State/LocalState.js +11 -2
  141. package/lib/State/LocalState.js.map +1 -1
  142. package/lib/State/State.d.ts +21 -0
  143. package/lib/State/State.d.ts.map +1 -1
  144. package/lib/Test/Bun.d.ts.map +1 -1
  145. package/lib/Test/Bun.js +30 -7
  146. package/lib/Test/Bun.js.map +1 -1
  147. package/lib/Test/Core.d.ts +17 -2
  148. package/lib/Test/Core.d.ts.map +1 -1
  149. package/lib/Test/Core.js +29 -11
  150. package/lib/Test/Core.js.map +1 -1
  151. package/lib/Test/Vitest.d.ts.map +1 -1
  152. package/lib/Test/Vitest.js +26 -5
  153. package/lib/Test/Vitest.js.map +1 -1
  154. package/lib/Util/LocalhostDns.d.ts +23 -0
  155. package/lib/Util/LocalhostDns.d.ts.map +1 -0
  156. package/lib/Util/LocalhostDns.js +46 -0
  157. package/lib/Util/LocalhostDns.js.map +1 -0
  158. package/lib/Util/PlatformServices.d.ts.map +1 -1
  159. package/lib/Util/PlatformServices.js +2 -0
  160. package/lib/Util/PlatformServices.js.map +1 -1
  161. package/lib/Util/effect.d.ts +7 -0
  162. package/lib/Util/effect.d.ts.map +1 -1
  163. package/lib/Util/effect.js +6 -0
  164. package/lib/Util/effect.js.map +1 -1
  165. package/lib/Variable.d.ts +29 -0
  166. package/lib/Variable.d.ts.map +1 -0
  167. package/lib/Variable.js +9 -0
  168. package/lib/Variable.js.map +1 -0
  169. package/lib/index.d.ts +3 -0
  170. package/lib/index.d.ts.map +1 -1
  171. package/lib/index.js +3 -0
  172. package/lib/index.js.map +1 -1
  173. package/lib/tsconfig.test.tsbuildinfo +1 -1
  174. package/package.json +7 -7
  175. package/src/AWS/Lambda/Function.ts +30 -2
  176. package/src/Apply.ts +8 -1
  177. package/src/Cli/main.ts +3 -0
  178. package/src/Cloudflare/AnalyticsEngine/AnalyticsEngineDataset.ts +82 -0
  179. package/src/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.ts +106 -0
  180. package/src/Cloudflare/AnalyticsEngine/index.ts +2 -0
  181. package/src/Cloudflare/D1/D1Connection.ts +95 -12
  182. package/src/Cloudflare/Images/Images.ts +121 -0
  183. package/src/Cloudflare/Images/ImagesBinding.ts +192 -0
  184. package/src/Cloudflare/Images/index.ts +2 -0
  185. package/src/Cloudflare/Local/SidecarHandlers.ts +9 -1
  186. package/src/Cloudflare/Providers.ts +8 -0
  187. package/src/Cloudflare/R2/R2Bucket.ts +271 -7
  188. package/src/Cloudflare/StateStore/Api.ts +34 -1
  189. package/src/Cloudflare/StateStore/Store.ts +40 -10
  190. package/src/Cloudflare/Workers/CronEventSource.ts +89 -0
  191. package/src/Cloudflare/Workers/InferEnv.ts +94 -16
  192. package/src/Cloudflare/Workers/LocalWorkerProvider.ts +9 -1
  193. package/src/Cloudflare/Workers/Rpc.ts +227 -18
  194. package/src/Cloudflare/Workers/Worker.ts +295 -62
  195. package/src/Cloudflare/Workers/WorkerBundle.ts +15 -5
  196. package/src/Cloudflare/Workers/Workflow.ts +74 -70
  197. package/src/Cloudflare/Workers/index.ts +1 -0
  198. package/src/Cloudflare/index.ts +2 -0
  199. package/src/Deploy.ts +5 -1
  200. package/src/Destroy.ts +5 -1
  201. package/src/Output.ts +121 -12
  202. package/src/Plan.ts +101 -12
  203. package/src/Platform.ts +19 -4
  204. package/src/Ref.ts +10 -5
  205. package/src/Resource.ts +22 -0
  206. package/src/RuntimeContext.ts +1 -0
  207. package/src/Secret.ts +87 -0
  208. package/src/Serverless/Function.ts +10 -1
  209. package/src/Stack.ts +52 -29
  210. package/src/State/HttpStateApi.ts +21 -0
  211. package/src/State/HttpStateStore.ts +21 -0
  212. package/src/State/InMemoryState.ts +29 -8
  213. package/src/State/LocalState.ts +28 -4
  214. package/src/State/State.ts +21 -0
  215. package/src/Test/Bun.ts +43 -7
  216. package/src/Test/Core.ts +29 -8
  217. package/src/Test/Vitest.ts +36 -4
  218. package/src/Util/LocalhostDns.ts +52 -0
  219. package/src/Util/PlatformServices.ts +2 -0
  220. package/src/Util/effect.ts +25 -0
  221. package/src/Variable.ts +44 -0
  222. package/src/index.ts +3 -0
@@ -1 +1 @@
1
- {"version":3,"file":"State.d.ts","sourceRoot":"","sources":["../../src/State/State.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAE1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;;;;AAE/E,qBAAa,eAAgB,SAAQ,qBAAoC;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,CAAC;CAAG;;AAEL,qBAAa,KAAM,SAAQ,UAE1B;CAAG;AAEJ;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;IACvE,UAAU,CACR,KAAK,EAAE,MAAM,GACZ,MAAM,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;IAC5D;;OAEG;IACH,GAAG,CAAC,OAAO,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;KACb,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,GAAG,SAAS,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;IACrE;;;;;OAKG;IACH,oBAAoB,CAAC,OAAO,EAAE;QAC5B,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,GAAG,MAAM,CAAC,MAAM,CACf,aAAa,CAAC,qBAAqB,CAAC,EACpC,eAAe,EACf,KAAK,CACN,CAAC;IACF;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,aAAa,EAAE,OAAO,EAAE;QACpC,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,CAAC,CAAC;KACV,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;IAC7C;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE;QACd,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;KACb,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;IAChD;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;IAChD;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;CAC9D"}
1
+ {"version":3,"file":"State.d.ts","sourceRoot":"","sources":["../../src/State/State.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAE1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;;;;AAE/E,qBAAa,eAAgB,SAAQ,qBAAoC;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,CAAC;CAAG;;AAEL,qBAAa,KAAM,SAAQ,UAE1B;CAAG;AAEJ;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;IACvE,UAAU,CACR,KAAK,EAAE,MAAM,GACZ,MAAM,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;IAC5D;;OAEG;IACH,GAAG,CAAC,OAAO,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;KACb,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,GAAG,SAAS,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;IACrE;;;;;OAKG;IACH,oBAAoB,CAAC,OAAO,EAAE;QAC5B,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,GAAG,MAAM,CAAC,MAAM,CACf,aAAa,CAAC,qBAAqB,CAAC,EACpC,eAAe,EACf,KAAK,CACN,CAAC;IACF;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,aAAa,EAAE,OAAO,EAAE;QACpC,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,CAAC,CAAC;KACV,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;IAC7C;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE;QACd,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;KACb,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;IAChD;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;IAChD;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;IAC7D;;;;;;;;OAQG;IACH,SAAS,CAAC,OAAO,EAAE;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;IACnD;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,OAAO,CAAC;KAChB,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;CACpD"}
@@ -1 +1 @@
1
- {"version":3,"file":"Bun.d.ts","sourceRoot":"","sources":["../../src/Test/Bun.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Bun.d.ts","sourceRoot":"","sources":["../../src/Test/Bun.ts"],"names":[],"mappings":"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"}
package/lib/Test/Bun.js CHANGED
@@ -1,6 +1,10 @@
1
1
  import bun from "bun:test";
2
2
  import * as Effect from "effect/Effect";
3
+ import * as Exit from "effect/Exit";
4
+ import * as Scope from "effect/Scope";
5
+ import { installLocalhostDns } from "../Util/LocalhostDns.js";
3
6
  import * as Core from "./Core.js";
7
+ installLocalhostDns();
4
8
  const DEFAULT_HOOK_TIMEOUT = { timeout: 120_000 };
5
9
  /**
6
10
  * Build the per-file test API. Configure providers / state once at the top of
@@ -17,7 +21,15 @@ const DEFAULT_HOOK_TIMEOUT = { timeout: 120_000 };
17
21
  * ```
18
22
  */
19
23
  export const make = (options) => {
20
- const runEff = (eff) => Core.run(eff, options);
24
+ // Single scope shared across `beforeAll`, every `test`, and `afterAll`.
25
+ // Scoped resources in dev mode (the Cloudflare sidecar process and its
26
+ // workerd children) must outlive a single `Effect.runPromise` boundary,
27
+ // otherwise the proxy is killed the moment `beforeAll(deploy(Stack))`
28
+ // resolves and every later `HttpClient.get(workerUrl)` hits a dead port.
29
+ // The scope is closed by `destroy(...)` (or never — the next test run
30
+ // reclaims any leaked sidecar via the lock file).
31
+ const sharedScope = Scope.makeUnsafe("sequential");
32
+ const runEff = (eff) => Core.run(eff, options, sharedScope);
21
33
  const test = ((name, eff, opts) => {
22
34
  bun.test(name, () => runEff(eff), opts);
23
35
  });
@@ -35,10 +47,7 @@ export const make = (options) => {
35
47
  };
36
48
  const runProvider = (name, fn) => {
37
49
  const scratch = Core.scratchStack(options, name);
38
- return Core.run(Core.withProviders(fn(scratch), options, scratch.name), {
39
- ...options,
40
- state: scratch.state,
41
- });
50
+ return Core.run(Core.withProviders(fn(scratch), options, scratch.name), { ...options, state: scratch.state }, sharedScope);
42
51
  };
43
52
  const provider = ((name, fn, opts) => {
44
53
  bun.test(name, () => runProvider(name, fn), opts);
@@ -69,14 +78,28 @@ export const make = (options) => {
69
78
  const afterEach = (eff, hookOptions) => {
70
79
  bun.afterEach(() => runEff(eff), hookOptions);
71
80
  };
81
+ // `destroy(Stack)` needs the dev sidecar alive so it can call `sidecar.stop`
82
+ // for each worker. We close the shared scope only AFTER destroy completes.
83
+ // `Scope.close` on an already-closed scope is a no-op, so it's safe for both
84
+ // the destroy wrapper AND the fallback cleanup hook below to call it.
85
+ const closeScope = Effect.suspend(() => Scope.close(sharedScope, Exit.void)).pipe(Effect.ignore);
86
+ // Fallback cleanup: if the user never calls `destroy(Stack)` (e.g.
87
+ // `NO_DESTROY=1`), nothing else closes the shared scope and the sidecar
88
+ // child process leaks past the test process. Register an `afterAll` that
89
+ // closes it. We defer registration to a microtask so it runs AFTER any
90
+ // user-registered `afterAll` (including `destroy(Stack)`); bun runs
91
+ // afterAll hooks in registration order.
92
+ queueMicrotask(() => {
93
+ bun.afterAll(() => Effect.runPromise(closeScope), DEFAULT_HOOK_TIMEOUT);
94
+ });
72
95
  return {
73
96
  test,
74
97
  beforeAll,
75
98
  beforeEach,
76
99
  afterAll,
77
100
  afterEach,
78
- deploy: (stack, callOpts) => Core.deploy(options, stack, callOpts),
79
- destroy: (stack, callOpts) => Core.destroy(options, stack, callOpts),
101
+ deploy: (stack, callOpts) => Core.deploy(options, stack, { ...callOpts, scope: sharedScope }),
102
+ destroy: (stack, callOpts) => Core.destroy(options, stack, { ...callOpts, scope: sharedScope }).pipe(Effect.ensuring(closeScope)),
80
103
  };
81
104
  };
82
105
  //# sourceMappingURL=Bun.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Bun.js","sourceRoot":"","sources":["../../src/Test/Bun.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Bun.js","sourceRoot":"","sources":["../../src/Test/Bun.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import * as Effect from "effect/Effect";
2
2
  import * as Layer from "effect/Layer";
3
+ import * as Scope from "effect/Scope";
3
4
  import { AlchemyContext } from "../AlchemyContext.ts";
4
5
  import type { Input } from "../Input.ts";
5
6
  import { type CompiledStack, Stack, type StackEffect, type StackServices } from "../Stack.ts";
@@ -44,10 +45,17 @@ export type TestEffect<A, Req = never> = StackEffect<A, any, Req>;
44
45
  * registry that the user's `providers` layer populates, the platform layers,
45
46
  * and the configured state store. Adapters wrap this into runner-specific
46
47
  * thunks (`bun.test` -> `runPromise`, `it.live` -> as-is).
48
+ *
49
+ * When `scope` is provided, scoped resources (like the Cloudflare dev
50
+ * sidecar) survive past this effect and are tied to the lifetime of the
51
+ * provided scope instead. The runner is responsible for closing it.
52
+ *
53
+ * When `scope` is omitted, the effect runs with `Effect.scoped` and any
54
+ * scoped resources are torn down as soon as it resolves.
47
55
  */
48
- export declare const toEffect: <A>(effect: TestEffect<A>, options: MakeOptions) => Effect.Effect<A, any, never>;
56
+ export declare const toEffect: <A>(effect: TestEffect<A>, options: MakeOptions, scope?: Scope.Scope) => Effect.Effect<A, any, never>;
49
57
  /** Promise wrapper around {@link toEffect} for `bun.test`-style runners. */
50
- export declare const run: <A>(effect: TestEffect<A>, options: MakeOptions) => Promise<A>;
58
+ export declare const run: <A>(effect: TestEffect<A>, options: MakeOptions, scope?: Scope.Scope) => Promise<A>;
51
59
  /**
52
60
  * Wrap an effect so it runs with `options.providers` + a placeholder Stack +
53
61
  * Stage in scope. Used by `test.provider` so user code can call provider SDK
@@ -58,12 +66,19 @@ export declare const withProviders: <A, E, R, ROut>(effect: Effect.Effect<A, E,
58
66
  * Curried `deploy` for the test factory: bakes in the configured stage and
59
67
  * adds the telemetry layer the CLI uses, so `beforeAll(deploy(Stack))` works
60
68
  * the same way as `alchemy deploy`.
69
+ *
70
+ * `scope`, when supplied, is forwarded down so the dev sidecar (and other
71
+ * scoped resources) lives until the caller closes it instead of dying as
72
+ * soon as `deploy` resolves. The test harness uses this to keep workerd
73
+ * alive across `beforeAll` → tests → `afterAll`.
61
74
  */
62
75
  export declare const deploy: <A>(options: MakeOptions, stack: TestEffect<CompiledStack<A>, Stage | AlchemyContext>, callOptions?: {
63
76
  stage?: string;
77
+ scope?: Scope.Scope;
64
78
  }) => Effect.Effect<Input.Resolve<A>, AlchemyContext | import("effect/PlatformError").PlatformError | Stage | State.StateStoreError | import("../Output.ts").MissingSourceError | import("../Output.ts").InvalidReferenceError, AlchemyContext | import("effect/Path").Path | import("effect/FileSystem").FileSystem | State.State | import("../index.ts").Cli>;
65
79
  export declare const destroy: (options: MakeOptions, stack: TestEffect<CompiledStack, Stage | AlchemyContext>, callOptions?: {
66
80
  stage?: string;
81
+ scope?: Scope.Scope;
67
82
  }) => Effect.Effect<{}, AlchemyContext | import("effect/PlatformError").PlatformError | Stage | State.StateStoreError | import("../Output.ts").MissingSourceError | import("../Output.ts").InvalidReferenceError, AlchemyContext | import("effect/Path").Path | import("effect/FileSystem").FileSystem | State.State | import("../index.ts").Cli>;
68
83
  /**
69
84
  * In-test scratch stack handed to `test.provider(name, (stack) => ...)`.
@@ -1 +1 @@
1
- {"version":3,"file":"Core.d.ts","sourceRoot":"","sources":["../../src/Test/Core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Core.d.ts","sourceRoot":"","sources":["../../src/Test/Core.ts"],"names":[],"mappings":"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"}
package/lib/Test/Core.js CHANGED
@@ -2,6 +2,7 @@ import { ConfigProvider } from "effect/ConfigProvider";
2
2
  import * as Effect from "effect/Effect";
3
3
  import * as Layer from "effect/Layer";
4
4
  import * as Option from "effect/Option";
5
+ import * as Scope from "effect/Scope";
5
6
  import * as FetchHttpClient from "effect/unstable/http/FetchHttpClient";
6
7
  import { AdoptPolicy } from "../AdoptPolicy.js";
7
8
  import { AlchemyContext, AlchemyContextLive } from "../AlchemyContext.js";
@@ -38,19 +39,29 @@ const alchemyLayer = Layer.mergeAll(LoggingCli, AlchemyContextLive);
38
39
  * registry that the user's `providers` layer populates, the platform layers,
39
40
  * and the configured state store. Adapters wrap this into runner-specific
40
41
  * thunks (`bun.test` -> `runPromise`, `it.live` -> as-is).
42
+ *
43
+ * When `scope` is provided, scoped resources (like the Cloudflare dev
44
+ * sidecar) survive past this effect and are tied to the lifetime of the
45
+ * provided scope instead. The runner is responsible for closing it.
46
+ *
47
+ * When `scope` is omitted, the effect runs with `Effect.scoped` and any
48
+ * scoped resources are torn down as soon as it resolves.
41
49
  */
42
- export const toEffect = (effect, options) => Effect.gen(function* () {
43
- const base = yield* loadConfigProvider(Option.none());
44
- const configProvider = withProfileOverride(base, options.profile);
45
- return yield* effect.pipe(provideFreshArtifactStore, Effect.provide(Layer.succeed(ConfigProvider, configProvider)));
46
- }).pipe(Effect.provideService(AdoptPolicy, options.adopt ?? false), Effect.provide(overrideAlchemyContext({ dev: resolveDev(options) })),
47
- // `options.state` (e.g. `Cloudflare.state()`) itself requires
48
- // `AuthProviders` to read credentials, so AuthProviders must be provided
49
- // AFTER the state layer or the state layer's requirement is never
50
- // satisfied — which surfaces as `Service not found: AuthProviders`.
51
- Effect.provide(options.state ?? State.localState()), Effect.provideService(AuthProviders, {}), Effect.provide(Layer.provideMerge(alchemyLayer, platformLayer)), Effect.scoped);
50
+ export const toEffect = (effect, options, scope) => {
51
+ const base = Effect.gen(function* () {
52
+ const cfg = yield* loadConfigProvider(Option.none());
53
+ const configProvider = withProfileOverride(cfg, options.profile);
54
+ return yield* effect.pipe(provideFreshArtifactStore, Effect.provide(Layer.succeed(ConfigProvider, configProvider)));
55
+ }).pipe(Effect.provideService(AdoptPolicy, options.adopt ?? false), Effect.provide(overrideAlchemyContext({ dev: resolveDev(options) })),
56
+ // `options.state` (e.g. `Cloudflare.state()`) itself requires
57
+ // `AuthProviders` to read credentials, so AuthProviders must be provided
58
+ // AFTER the state layer or the state layer's requirement is never
59
+ // satisfied — which surfaces as `Service not found: AuthProviders`.
60
+ Effect.provide(options.state ?? State.localState()), Effect.provideService(AuthProviders, {}), Effect.provide(Layer.provideMerge(alchemyLayer, platformLayer)));
61
+ return (scope === undefined ? Effect.scoped(base) : Scope.provide(base, scope));
62
+ };
52
63
  /** Promise wrapper around {@link toEffect} for `bun.test`-style runners. */
53
- export const run = (effect, options) => Effect.runPromise(toEffect(effect, options));
64
+ export const run = (effect, options, scope) => Effect.runPromise(toEffect(effect, options, scope));
54
65
  /**
55
66
  * Wrap an effect so it runs with `options.providers` + a placeholder Stack +
56
67
  * Stage in scope. Used by `test.provider` so user code can call provider SDK
@@ -66,16 +77,23 @@ export const withProviders = (effect, options, stackName) => effect.pipe(Effect.
66
77
  * Curried `deploy` for the test factory: bakes in the configured stage and
67
78
  * adds the telemetry layer the CLI uses, so `beforeAll(deploy(Stack))` works
68
79
  * the same way as `alchemy deploy`.
80
+ *
81
+ * `scope`, when supplied, is forwarded down so the dev sidecar (and other
82
+ * scoped resources) lives until the caller closes it instead of dying as
83
+ * soon as `deploy` resolves. The test harness uses this to keep workerd
84
+ * alive across `beforeAll` → tests → `afterAll`.
69
85
  */
70
86
  export const deploy = (options, stack, callOptions) => _deploy({
71
87
  stack: stack,
72
88
  stage: callOptions?.stage ?? options.stage ?? "test",
73
89
  dev: resolveDev(options),
90
+ scope: callOptions?.scope,
74
91
  }).pipe(Effect.provide(TelemetryLive));
75
92
  export const destroy = (options, stack, callOptions) => _destroy({
76
93
  stack: stack,
77
94
  stage: callOptions?.stage ?? options.stage ?? "test",
78
95
  dev: resolveDev(options),
96
+ scope: callOptions?.scope,
79
97
  }).pipe(Effect.provide(TelemetryLive));
80
98
  const sanitizeStackName = (name) => name.replaceAll(/[^a-zA-Z0-9_]/g, "-").replace(/-+/g, "-");
81
99
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Core.js","sourceRoot":"","sources":["../../src/Test/Core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,eAAe,MAAM,sCAAsC,CAAC;AAExE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AACnC,OAAO,EAEL,IAAI,IAAI,SAAS,EACjB,KAAK,GAGN,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AA6B/D,+EAA+E;AAC/E,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAA0B,EAAW,EAAE;IAChE,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC;IAClD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IACpC,OAAO,GAAG,KAAK,GAAG,IAAI,GAAG,EAAE,WAAW,EAAE,KAAK,MAAM,CAAC;AACtD,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAAC,SAA2B,EAAE,EAAE,CAC7D,KAAK,CAAC,MAAM,CACV,cAAc,EACd,cAAc,CAAC,QAAQ,EAAE,CAAC,IAAI,CAC5B,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC,CAChD,CACF,CAAC;AAIJ,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAClC,gBAAgB,EAChB,eAAe,CAAC,KAAK,EACrB,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,gBAAgB,CAAC,EAC5C,KAAK,CAAC,OAAO,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,CACtD,CAAC;AAEF,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;AAEpE;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,MAAqB,EACrB,OAAoB,EACU,EAAE,CAChC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACtD,MAAM,cAAc,GAAG,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAClE,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,yBAAyB,EACzB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,CAC9D,CAAC;AACJ,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,EAC1D,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACpE,8DAA8D;AAC9D,yEAAyE;AACzE,kEAAkE;AAClE,oEAAoE;AACpE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC,EACnD,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,EAAE,CAAC,EACxC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,EAC/D,MAAM,CAAC,MAAM,CACkB,CAAC;AAEpC,4EAA4E;AAC5E,MAAM,CAAC,MAAM,GAAG,GAAG,CACjB,MAAqB,EACrB,OAAoB,EACR,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAE9D;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,MAA8B,EAC9B,OAA0B,EAC1B,SAAiB,EACsC,EAAE,CACzD,MAAM,CAAC,IAAI,CACT,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,SAAyC,CAAC,EACjE,MAAM,CAAC,OAAO,CACZ,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE;IACnB,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,MAAM;IAC9B,SAAS,EAAE,EAAE;IACb,QAAQ,EAAE,EAAE;CACb,CAAC,CACH,EACD,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,CACL,CAAC;AAE7D;;;;GAIG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CACpB,OAAoB,EACpB,KAA2D,EAC3D,WAAgC,EAChC,EAAE,CACF,OAAO,CAAC;IACN,KAAK,EAAE,KAAoD;IAC3D,KAAK,EAAE,WAAW,EAAE,KAAK,IAAI,OAAO,CAAC,KAAK,IAAI,MAAM;IACpD,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC;CACzB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;AAEzC,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,OAAoB,EACpB,KAAwD,EACxD,WAAgC,EAChC,EAAE,CACF,QAAQ,CAAC;IACP,KAAK,EAAE,KAAiD;IACxD,KAAK,EAAE,WAAW,EAAE,KAAK,IAAI,OAAO,CAAC,KAAK,IAAI,MAAM;IACpD,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC;CACzB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;AAqBzC,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAE,EAAE,CACzC,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAE7D;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,OAA0B,EAC1B,IAAY,EACQ,EAAE;IACtB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC;IACtC,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAGV,EAAE,CAAC;IACP,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAC9B,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAChC,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,MAAoC,EAAE,EAAE,CAC5D,MAAyC,CAAC,IAAI,CAC7C,SAAS,CAAC;QACR,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,KAAK,EAAE,UAAU;KACX,CAAQ,EAChB,MAAM,CAAC,OAAO,CAAC,CAAC,QAAa,EAAE,EAAE,CAC/B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CACtB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EACrB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAClC,CACF,EACD,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EAC3C,yBAAyB,CAC1B,CAAC;IAEJ,OAAO;QACL,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,CAAC,CAAC,MAAoC,EAAE,EAAE,CAChD,aAAa,CAAC,MAAM,CAAC,CAAiC;QACxD,OAAO,EAAE,GAAG,EAAE,CACZ,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,SAAS;YACf,KAAK;YACL,SAAS,EAAE,EAAE;YACb,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,EAAE;SACX,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EACrB,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAC1B,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,SAAyC,CAAC,EACjE,MAAM,CAAC,OAAO,CACZ,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE;YACnB,IAAI,EAAE,SAAS;YACf,KAAK;YACL,SAAS,EAAE,EAAE;YACb,QAAQ,EAAE,EAAE;SACb,CAAC,CACH,EACD,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EAC3C,yBAAyB,CACS;KACvC,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"Core.js","sourceRoot":"","sources":["../../src/Test/Core.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Vitest.d.ts","sourceRoot":"","sources":["../../src/Test/Vitest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Vitest.d.ts","sourceRoot":"","sources":["../../src/Test/Vitest.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,11 @@
1
1
  import { it } from "@effect/vitest";
2
2
  import * as Effect from "effect/Effect";
3
+ import * as Exit from "effect/Exit";
4
+ import * as Scope from "effect/Scope";
3
5
  import { afterAll as vitestAfterAll, afterEach as vitestAfterEach, beforeAll as vitestBeforeAll, beforeEach as vitestBeforeEach, } from "vitest";
6
+ import { installLocalhostDns } from "../Util/LocalhostDns.js";
4
7
  import * as Core from "./Core.js";
8
+ installLocalhostDns();
5
9
  const timeoutOf = (opts) => typeof opts === "number" ? opts : opts?.timeout;
6
10
  const DEFAULT_TIMEOUT = 120_000;
7
11
  /**
@@ -10,8 +14,12 @@ const DEFAULT_TIMEOUT = 120_000;
10
14
  * Effect-aware tests stay first-class.
11
15
  */
12
16
  export const make = (options) => {
13
- const wrap = (eff) => Core.toEffect(eff, options);
14
- const runEff = (eff) => Core.run(eff, options);
17
+ // See `Test/Bun.ts` for the rationale: the dev sidecar must outlive a
18
+ // single `runPromise` boundary, so all hooks share one scope that's only
19
+ // closed after `destroy(...)` runs.
20
+ const sharedScope = Scope.makeUnsafe("sequential");
21
+ const wrap = (eff) => Core.toEffect(eff, options, sharedScope);
22
+ const runEff = (eff) => Core.run(eff, options, sharedScope);
15
23
  const test = ((name, eff, opts) => {
16
24
  it.live(name, () => wrap(eff), timeoutOf(opts));
17
25
  });
@@ -34,7 +42,7 @@ export const make = (options) => {
34
42
  };
35
43
  const wrapProvider = (name, fn) => {
36
44
  const scratch = Core.scratchStack(options, name);
37
- return Core.toEffect(Core.withProviders(fn(scratch), options, scratch.name), { ...options, state: scratch.state });
45
+ return Core.toEffect(Core.withProviders(fn(scratch), options, scratch.name), { ...options, state: scratch.state }, sharedScope);
38
46
  };
39
47
  const provider = ((name, fn, opts) => {
40
48
  it.live(name, () => wrapProvider(name, fn), timeoutOf(opts));
@@ -70,14 +78,27 @@ export const make = (options) => {
70
78
  const afterEach = (eff, hookOptions) => {
71
79
  vitestAfterEach(() => runEff(eff), timeoutOf(hookOptions));
72
80
  };
81
+ // `destroy(Stack)` needs the dev sidecar alive so it can call `sidecar.stop`.
82
+ // `Scope.close` on an already-closed scope is a no-op, so the destroy
83
+ // wrapper AND the fallback cleanup hook below can both call it safely.
84
+ const closeScope = Effect.suspend(() => Scope.close(sharedScope, Exit.void)).pipe(Effect.ignore);
85
+ // Fallback cleanup: if the user never calls `destroy(Stack)` (e.g.
86
+ // `NO_DESTROY=1`), nothing else closes the shared scope and the sidecar
87
+ // child process leaks past the test process. Register an `afterAll` that
88
+ // closes it. We defer registration to a microtask so it runs AFTER any
89
+ // user-registered `afterAll` (including `destroy(Stack)`); vitest runs
90
+ // afterAll hooks in registration order.
91
+ queueMicrotask(() => {
92
+ vitestAfterAll(() => Effect.runPromise(closeScope), DEFAULT_TIMEOUT);
93
+ });
73
94
  return {
74
95
  test,
75
96
  beforeAll,
76
97
  beforeEach,
77
98
  afterAll,
78
99
  afterEach,
79
- deploy: (stack, callOpts) => Core.deploy(options, stack, callOpts),
80
- destroy: (stack, callOpts) => Core.destroy(options, stack, callOpts),
100
+ deploy: (stack, callOpts) => Core.deploy(options, stack, { ...callOpts, scope: sharedScope }),
101
+ destroy: (stack, callOpts) => Core.destroy(options, stack, { ...callOpts, scope: sharedScope }).pipe(Effect.ensuring(closeScope)),
81
102
  };
82
103
  };
83
104
  //# sourceMappingURL=Vitest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Vitest.js","sourceRoot":"","sources":["../../src/Test/Vitest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Vitest.js","sourceRoot":"","sources":["../../src/Test/Vitest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Process-level DNS shim that makes `*.localhost` resolve to 127.0.0.1
3
+ * for any HTTP client that goes through undici (Node's global `fetch`,
4
+ * undici-based clients, etc.).
5
+ *
6
+ * Background: macOS's `getaddrinfo` does not honor RFC 6761 for arbitrary
7
+ * `*.localhost` names — only the bare `localhost` is mapped to loopback.
8
+ * The Cloudflare local proxy returns URLs like
9
+ * `http://my-worker.localhost:1337` and dispatches by the URL hostname,
10
+ * so we cannot rewrite the URL client-side to `127.0.0.1` (and `Host` is
11
+ * a forbidden fetch header). The fix is to make the host resolvable at
12
+ * the network layer.
13
+ *
14
+ * On Bun, `globalThis.fetch` is the native (Zig) implementation and does
15
+ * not consult undici's global dispatcher; Bun resolves `*.localhost`
16
+ * itself on Darwin/Linux, so this shim is effectively a no-op there for
17
+ * the global `fetch` and only matters if user code reaches for `undici`
18
+ * directly.
19
+ *
20
+ * Calling `installLocalhostDns()` is idempotent.
21
+ */
22
+ export declare const installLocalhostDns: () => void;
23
+ //# sourceMappingURL=LocalhostDns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalhostDns.d.ts","sourceRoot":"","sources":["../../src/Util/LocalhostDns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAYH,eAAO,MAAM,mBAAmB,QAAO,IAmBtC,CAAC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Process-level DNS shim that makes `*.localhost` resolve to 127.0.0.1
3
+ * for any HTTP client that goes through undici (Node's global `fetch`,
4
+ * undici-based clients, etc.).
5
+ *
6
+ * Background: macOS's `getaddrinfo` does not honor RFC 6761 for arbitrary
7
+ * `*.localhost` names — only the bare `localhost` is mapped to loopback.
8
+ * The Cloudflare local proxy returns URLs like
9
+ * `http://my-worker.localhost:1337` and dispatches by the URL hostname,
10
+ * so we cannot rewrite the URL client-side to `127.0.0.1` (and `Host` is
11
+ * a forbidden fetch header). The fix is to make the host resolvable at
12
+ * the network layer.
13
+ *
14
+ * On Bun, `globalThis.fetch` is the native (Zig) implementation and does
15
+ * not consult undici's global dispatcher; Bun resolves `*.localhost`
16
+ * itself on Darwin/Linux, so this shim is effectively a no-op there for
17
+ * the global `fetch` and only matters if user code reaches for `undici`
18
+ * directly.
19
+ *
20
+ * Calling `installLocalhostDns()` is idempotent.
21
+ */
22
+ import * as dns from "node:dns";
23
+ import * as undici from "undici";
24
+ let installed = false;
25
+ const isLocalhost = (hostname) => hostname === "localhost" ||
26
+ hostname === "[::1]" ||
27
+ hostname.endsWith(".localhost");
28
+ export const installLocalhostDns = () => {
29
+ if (installed)
30
+ return;
31
+ installed = true;
32
+ undici.setGlobalDispatcher(new undici.Agent({
33
+ connect: {
34
+ lookup: (hostname, options, cb) => {
35
+ if (isLocalhost(hostname)) {
36
+ if (options && options.all) {
37
+ return cb(null, [{ address: "127.0.0.1", family: 4 }]);
38
+ }
39
+ return cb(null, "127.0.0.1", 4);
40
+ }
41
+ return dns.lookup(hostname, options, cb);
42
+ },
43
+ },
44
+ }));
45
+ };
46
+ //# sourceMappingURL=LocalhostDns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalhostDns.js","sourceRoot":"","sources":["../../src/Util/LocalhostDns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEjC,IAAI,SAAS,GAAG,KAAK,CAAC;AAEtB,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAW,EAAE,CAChD,QAAQ,KAAK,WAAW;IACxB,QAAQ,KAAK,OAAO;IACpB,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAElC,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAS,EAAE;IAC5C,IAAI,SAAS;QAAE,OAAO;IACtB,SAAS,GAAG,IAAI,CAAC;IAEjB,MAAM,CAAC,mBAAmB,CACxB,IAAI,MAAM,CAAC,KAAK,CAAC;QACf,OAAO,EAAE;YACP,MAAM,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE;gBAChC,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC1B,IAAI,OAAO,IAAK,OAA6B,CAAC,GAAG,EAAE,CAAC;wBAClD,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBACzD,CAAC;oBACD,OAAO,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;gBAClC,CAAC;gBACD,OAAO,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;YAC3C,CAAC;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"PlatformServices.d.ts","sourceRoot":"","sources":["../../src/Util/PlatformServices.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAI1E,MAAM,MAAM,gBAAgB,GACxB,mBAAmB,GACnB,UAAU,GACV,IAAI,GACJ,KAAK,GACL,QAAQ,GAER,oBAAoB,CAAC;AAEzB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAsBvC,CAAC;AAErB,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,CAAC,EAC1B,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAC3B,UAAU;IACR,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACrD,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC1C,KACA,IAUF,CAAC;AAEF,eAAO,MAAM,UAAU,GACrB,OAAM,MAAU,EAChB,OAAM,MAAoB,KACzB,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,CAYd,CAAC"}
1
+ {"version":3,"file":"PlatformServices.d.ts","sourceRoot":"","sources":["../../src/Util/PlatformServices.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAK1E,MAAM,MAAM,gBAAgB,GACxB,mBAAmB,GACnB,UAAU,GACV,IAAI,GACJ,KAAK,GACL,QAAQ,GAER,oBAAoB,CAAC;AAEzB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAsBvC,CAAC;AAErB,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,CAAC,EAC1B,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAC3B,UAAU;IACR,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACrD,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC1C,KACA,IAWF,CAAC;AAEF,eAAO,MAAM,UAAU,GACrB,OAAM,MAAU,EAChB,OAAM,MAAoB,KACzB,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,CAYd,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import * as Effect from "effect/Effect";
2
2
  import * as Layer from "effect/Layer";
3
+ import { installLocalhostDns } from "./LocalhostDns.js";
3
4
  const isBun = typeof Bun !== "undefined";
4
5
  export const PlatformServices = Effect.promise(async () => {
5
6
  if (isBun) {
@@ -18,6 +19,7 @@ export const PlatformServices = Effect.promise(async () => {
18
19
  }
19
20
  }).pipe(Layer.unwrap);
20
21
  export const runMain = (effect, options) => {
22
+ installLocalhostDns();
21
23
  if (isBun) {
22
24
  void import("@effect/platform-bun/BunRuntime").then((BunRuntime) => BunRuntime.runMain(effect, options));
23
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PlatformServices.js","sourceRoot":"","sources":["../../src/Util/PlatformServices.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAUtC,MAAM,KAAK,GAAG,OAAO,GAAG,KAAK,WAAW,CAAC;AAWzC,MAAM,CAAC,MAAM,gBAAgB,GAAkC,MAAM,CAAC,OAAO,CAC3E,KAAK,IAAI,EAAE;IACT,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACjD,MAAM,CAAC,kCAAkC,CAAC;YAC1C,MAAM,CAAC,gCAAgC,CAAC;SACzC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC,KAAK,CAChB,WAAW,CAAC,KAAK,EACjB,SAAS,CAAC,yBAAyB,CACpC,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACnD,MAAM,CAAC,oCAAoC,CAAC;YAC5C,MAAM,CAAC,kCAAkC,CAAC;SAC3C,CAAC,CAAC;QACH,OAAO,KAAK,CAAC,KAAK,CAChB,YAAY,CAAC,KAAK,EAClB,UAAU,CAAC,yBAAyB,CACrC,CAAC;IACJ,CAAC;AACH,CAAC,CACF,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAErB,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,MAA2B,EAC3B,OAGC,EACK,EAAE;IACR,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,MAAM,CAAC,iCAAiC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CACjE,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CACpC,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,CAAC,mCAAmC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CACpE,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CACrC,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,OAAe,CAAC,EAChB,OAAe,WAAW,EACW,EAAE,CACvC,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;IACxB,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,oCAAoC,CAAC,CAAC;QACzE,OAAO,aAAa,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC/C,MAAM,CAAC,sCAAsC,CAAC;YAC9C,MAAM,CAAC,WAAW,CAAC;SACpB,CAAC,CAAC;QACH,OAAO,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACvE,CAAC;AACH,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"PlatformServices.js","sourceRoot":"","sources":["../../src/Util/PlatformServices.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAStC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,MAAM,KAAK,GAAG,OAAO,GAAG,KAAK,WAAW,CAAC;AAWzC,MAAM,CAAC,MAAM,gBAAgB,GAAkC,MAAM,CAAC,OAAO,CAC3E,KAAK,IAAI,EAAE;IACT,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACjD,MAAM,CAAC,kCAAkC,CAAC;YAC1C,MAAM,CAAC,gCAAgC,CAAC;SACzC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC,KAAK,CAChB,WAAW,CAAC,KAAK,EACjB,SAAS,CAAC,yBAAyB,CACpC,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACnD,MAAM,CAAC,oCAAoC,CAAC;YAC5C,MAAM,CAAC,kCAAkC,CAAC;SAC3C,CAAC,CAAC;QACH,OAAO,KAAK,CAAC,KAAK,CAChB,YAAY,CAAC,KAAK,EAClB,UAAU,CAAC,yBAAyB,CACrC,CAAC;IACJ,CAAC;AACH,CAAC,CACF,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAErB,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,MAA2B,EAC3B,OAGC,EACK,EAAE;IACR,mBAAmB,EAAE,CAAC;IACtB,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,MAAM,CAAC,iCAAiC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CACjE,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CACpC,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,CAAC,mCAAmC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CACpE,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CACrC,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,OAAe,CAAC,EAChB,OAAe,WAAW,EACW,EAAE,CACvC,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;IACxB,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,oCAAoC,CAAC,CAAC;QACzE,OAAO,aAAa,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC/C,MAAM,CAAC,sCAAsC,CAAC;YAC9C,MAAM,CAAC,WAAW,CAAC;SACpB,CAAC,CAAC;QACH,OAAO,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACvE,CAAC;AACH,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC"}
@@ -8,6 +8,13 @@ export declare const effectClass: {
8
8
  <Shape>(): <A, Err = never, Req = never>(impl: Effect.Effect<A, Err, Req>) => EffectClass<Shape, A, Err, Req>;
9
9
  };
10
10
  export declare const taggedFunction: <Tag extends Context.ServiceClass<any, any, any>, Fn extends (...args: any[]) => any>(tag: Tag, fn: Fn) => Tag & Fn;
11
+ export declare const isYieldableEffect: (value: unknown) => value is Effect.Effect<unknown, unknown, unknown>;
12
+ export type YieldableEffectLike<A = unknown, E = unknown, R = unknown> = Effect.Effect<A, E, R> | {
13
+ asEffect: () => Effect.Effect<A, E, R>;
14
+ [Symbol.iterator]: () => Iterator<unknown>;
15
+ };
16
+ export declare const isEffectClassLike: (value: unknown) => value is YieldableEffectLike;
17
+ export declare const isYieldableEffectLike: (value: unknown) => value is YieldableEffectLike;
11
18
  export type UnwrapEffect<T> = T extends Effect.Effect<infer A, any, any> ? A : T;
12
19
  export type ToEffectInterface<T> = {
13
20
  raw: T;
@@ -1 +1 @@
1
- {"version":3,"file":"effect.d.ts","sourceRoot":"","sources":["../../src/Util/effect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAIxC,MAAM,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,CACzE,CAAC,EACD,GAAG,EACH,GAAG,CACJ,GAAG;IACF,KAAK,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE;IACxB,CAAC,CAAC,EAAE,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG,KAAK,EAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAC/B,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC/B,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG,KAAK,EACrC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,KAC7B,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;CAiBuB,CAAC;AAE/D,eAAO,MAAM,cAAc,GACzB,GAAG,SAAS,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC/C,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAElC,KAAK,GAAG,EACR,IAAI,EAAE,KACL,GAAG,GAAG,EAoBR,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,CAAC,IACxB,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAErD,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI;IACjC,GAAG,EAAE,CAAC,CAAC;CACR,GAAG;KACD,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAChD,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACvE,CAAC,CAAC,CAAC,CAAC;CACT,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,MAAM,EAAE,KAAK,CAAC,KAWlD,iBAAiB,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"effect.d.ts","sourceRoot":"","sources":["../../src/Util/effect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAIxC,MAAM,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,CACzE,CAAC,EACD,GAAG,EACH,GAAG,CACJ,GAAG;IACF,KAAK,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE;IACxB,CAAC,CAAC,EAAE,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG,KAAK,EAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAC/B,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC/B,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG,KAAK,EACrC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,KAC7B,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;CAiBuB,CAAC;AAE/D,eAAO,MAAM,cAAc,GACzB,GAAG,SAAS,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC/C,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAElC,KAAK,GAAG,EACR,IAAI,EAAE,KACL,GAAG,GAAG,EAoBR,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,OAAO,OAAO,KACb,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAGrC,CAAC;AAEf,MAAM,MAAM,mBAAmB,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO,IACjE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACtB;IACE,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;CAC5C,CAAC;AAEN,eAAO,MAAM,iBAAiB,GAC5B,OAAO,OAAO,KACb,KAAK,IAAI,mBAEsD,CAAC;AAEnE,eAAO,MAAM,qBAAqB,GAChC,OAAO,OAAO,KACb,KAAK,IAAI,mBAC0C,CAAC;AAEvD,MAAM,MAAM,YAAY,CAAC,CAAC,IACxB,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAErD,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI;IACjC,GAAG,EAAE,CAAC,CAAC;CACR,GAAG;KACD,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAChD,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACvE,CAAC,CAAC,CAAC,CAAC;CACT,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,MAAM,EAAE,KAAK,CAAC,KAWlD,iBAAiB,CAAC,CAAC,CAAC,CAAC"}
@@ -33,6 +33,12 @@ export const taggedFunction = (tag, fn) => {
33
33
  Reflect.has(tag, prop),
34
34
  });
35
35
  };
36
+ export const isYieldableEffect = (value) => Effect.isEffect(value) &&
37
+ typeof value[Symbol.iterator] ===
38
+ "function";
39
+ export const isEffectClassLike = (value) => typeof value === "function" &&
40
+ typeof value.asEffect === "function";
41
+ export const isYieldableEffectLike = (value) => isYieldableEffect(value) || isEffectClassLike(value);
36
42
  export const toEffectInterface = (raw) => ({
37
43
  raw,
38
44
  ...Object.fromEntries(Object.entries(raw).map(([key, value]) => [
@@ -1 +1 @@
1
- {"version":3,"file":"effect.js","sourceRoot":"","sources":["../../src/Util/effect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"effect.js","sourceRoot":"","sources":["../../src/Util/effect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAU7C,MAAM,CAAC,MAAM,WAAW,GAOpB,CAAC,CAAC,IAAU,EAAE,EAAE,CAClB,IAAI,KAAK,SAAS;IAChB,CAAC,CAAC,CAAC,SAAc,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC;IAC5C,CAAC,CAAE,MAAM,CAAC,MAAM,CACZ;QACE,MAAM,CAAC,QAAQ;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;YACtB,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,GAAG,GAAQ;YACrB,OAAO,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC;QAC7C,CAAC;KACF,EACD,IAAI,CAC0C,CAAQ,CAAC;AAE/D,MAAM,CAAC,MAAM,cAAc,GAAG,CAI5B,GAAQ,EACR,EAAM,EACI,EAAE;IACZ,MAAM,SAAS,GAAG;QAChB,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE;QAC9B,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;QAC/C,IAAI,EAAE,CAAC,GAAG,GAAU,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAU,CAAC;QAClE,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE;KAC/C,CAAC;IAEF,OAAO,IAAI,KAAK,CAAC,EAAE,EAAE;QACnB,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAC9B,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC;YAC1B,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC;YACxC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;gBACzB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC;gBACrC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAa,EAAE,IAAI,EAAE,GAAG,CAAC;QAC7C,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CACpB,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,GAAa,EAAE,IAAI,CAAC;KACnC,CAAa,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,KAAc,EACqC,EAAE,CACrD,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;IACtB,OAAQ,KAAyC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChE,UAAU,CAAC;AASf,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,KAAc,EACgB,EAAE,CAChC,OAAO,KAAK,KAAK,UAAU;IAC3B,OAAQ,KAAgC,CAAC,QAAQ,KAAK,UAAU,CAAC;AAEnE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,KAAc,EACgB,EAAE,CAChC,iBAAiB,CAAC,KAAK,CAAC,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAavD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAmB,GAAM,EAAE,EAAE,CAC5D,CAAC;IACC,GAAG;IACH,GAAG,MAAM,CAAC,WAAW,CACnB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;QACxC,GAAG;QACH,OAAO,KAAK,KAAK,UAAU;YACzB,CAAC,CAAC,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;YACnE,CAAC,CAAC,KAAK;KACV,CAAC,CACH;CACF,CAAyB,CAAC"}
@@ -0,0 +1,29 @@
1
+ import * as Config from "effect/Config";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Output from "./Output.ts";
4
+ /**
5
+ * The shapes a {@link variable} can be derived from.
6
+ */
7
+ export type VariableInput<T, R = never> = T | Effect.Effect<T, any, R> | Config.Config<T>;
8
+ /**
9
+ * Bind a non-secret value into the active {@link RuntimeContext} (e.g. a
10
+ * Cloudflare Worker's `env`) under the given `name`. Counterpart to
11
+ * {@link Secret} for plain (non-redacted) values — the resource provider
12
+ * deploys it as `plain_text` / `json` rather than `secret_text`.
13
+ *
14
+ * The result is an `Output<T>` — `yield*`-ing it returns an `Accessor<T>`
15
+ * that resolves the value at runtime.
16
+ *
17
+ * @example One-arg shortcut — reads `Config.string("DATABASE_URL")`
18
+ * ```ts
19
+ * const url = yield* Alchemy.Variable("DATABASE_URL");
20
+ * ```
21
+ *
22
+ * @example From a literal
23
+ * ```ts
24
+ * const port = yield* Alchemy.Variable("PORT", 3000);
25
+ * ```
26
+ */
27
+ export declare function Variable(name: string): Output.Output<string, never>;
28
+ export declare function Variable<T, R = never>(name: string, value: VariableInput<T, R>): Output.Output<T, R>;
29
+ //# sourceMappingURL=Variable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Variable.d.ts","sourceRoot":"","sources":["../src/Variable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAGtC;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,IAClC,CAAC,GACD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GACxB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAErB;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACrE,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,EACnC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GACzB,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC"}