effect 4.0.0-beta.1 → 4.0.0-beta.11

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 (641) hide show
  1. package/dist/Cache.d.ts +2 -2
  2. package/dist/Cache.d.ts.map +1 -1
  3. package/dist/Cache.js +1 -1
  4. package/dist/Cache.js.map +1 -1
  5. package/dist/Cause.d.ts +1 -1
  6. package/dist/Cause.d.ts.map +1 -1
  7. package/dist/Channel.d.ts +7 -7
  8. package/dist/Channel.d.ts.map +1 -1
  9. package/dist/Channel.js +6 -4
  10. package/dist/Channel.js.map +1 -1
  11. package/dist/Combiner.d.ts +280 -13
  12. package/dist/Combiner.d.ts.map +1 -1
  13. package/dist/Combiner.js +198 -7
  14. package/dist/Combiner.js.map +1 -1
  15. package/dist/Config.d.ts +3 -3
  16. package/dist/Config.js +3 -3
  17. package/dist/Config.js.map +1 -1
  18. package/dist/ConfigProvider.d.ts +1 -1
  19. package/dist/Cron.d.ts +1 -1
  20. package/dist/Data.d.ts +534 -365
  21. package/dist/Data.d.ts.map +1 -1
  22. package/dist/Data.js +132 -79
  23. package/dist/Data.js.map +1 -1
  24. package/dist/DateTime.d.ts +23 -161
  25. package/dist/DateTime.d.ts.map +1 -1
  26. package/dist/DateTime.js +6 -51
  27. package/dist/DateTime.js.map +1 -1
  28. package/dist/Duration.d.ts +12 -12
  29. package/dist/Duration.d.ts.map +1 -1
  30. package/dist/Duration.js +12 -12
  31. package/dist/Duration.js.map +1 -1
  32. package/dist/Effect.d.ts +342 -248
  33. package/dist/Effect.d.ts.map +1 -1
  34. package/dist/Effect.js +119 -119
  35. package/dist/Effect.js.map +1 -1
  36. package/dist/Encoding.d.ts +194 -0
  37. package/dist/Encoding.d.ts.map +1 -0
  38. package/dist/Encoding.js +352 -0
  39. package/dist/Encoding.js.map +1 -0
  40. package/dist/Equal.d.ts +276 -109
  41. package/dist/Equal.d.ts.map +1 -1
  42. package/dist/Equal.js +124 -48
  43. package/dist/Equal.js.map +1 -1
  44. package/dist/ErrorReporter.d.ts +376 -0
  45. package/dist/ErrorReporter.d.ts.map +1 -0
  46. package/dist/ErrorReporter.js +246 -0
  47. package/dist/ErrorReporter.js.map +1 -0
  48. package/dist/FileSystem.d.ts +1 -1
  49. package/dist/FileSystem.d.ts.map +1 -1
  50. package/dist/FileSystem.js +5 -5
  51. package/dist/FileSystem.js.map +1 -1
  52. package/dist/Filter.d.ts +30 -1
  53. package/dist/Filter.d.ts.map +1 -1
  54. package/dist/Filter.js +15 -0
  55. package/dist/Filter.js.map +1 -1
  56. package/dist/Formatter.d.ts +131 -47
  57. package/dist/Formatter.d.ts.map +1 -1
  58. package/dist/Formatter.js +229 -51
  59. package/dist/Formatter.js.map +1 -1
  60. package/dist/Graph.d.ts +1 -1
  61. package/dist/Graph.d.ts.map +1 -1
  62. package/dist/Graph.js +2 -2
  63. package/dist/Graph.js.map +1 -1
  64. package/dist/JsonSchema.d.ts +299 -10
  65. package/dist/JsonSchema.d.ts.map +1 -1
  66. package/dist/JsonSchema.js +323 -4
  67. package/dist/JsonSchema.js.map +1 -1
  68. package/dist/Latch.d.ts +109 -0
  69. package/dist/Latch.d.ts.map +1 -0
  70. package/dist/Latch.js +72 -0
  71. package/dist/Latch.js.map +1 -0
  72. package/dist/LayerMap.d.ts +4 -4
  73. package/dist/LayerMap.d.ts.map +1 -1
  74. package/dist/LogLevel.d.ts +32 -0
  75. package/dist/LogLevel.d.ts.map +1 -1
  76. package/dist/LogLevel.js +28 -100
  77. package/dist/LogLevel.js.map +1 -1
  78. package/dist/Logger.d.ts +29 -95
  79. package/dist/Logger.d.ts.map +1 -1
  80. package/dist/Logger.js +2 -3
  81. package/dist/Logger.js.map +1 -1
  82. package/dist/Metric.d.ts +2 -2
  83. package/dist/Metric.d.ts.map +1 -1
  84. package/dist/Metric.js +1 -1
  85. package/dist/Metric.js.map +1 -1
  86. package/dist/Optic.d.ts +947 -18
  87. package/dist/Optic.d.ts.map +1 -1
  88. package/dist/Optic.js +454 -5
  89. package/dist/Optic.js.map +1 -1
  90. package/dist/Pipeable.d.ts +17 -0
  91. package/dist/Pipeable.d.ts.map +1 -1
  92. package/dist/Pipeable.js +19 -1
  93. package/dist/Pipeable.js.map +1 -1
  94. package/dist/PlatformError.d.ts +10 -9
  95. package/dist/PlatformError.d.ts.map +1 -1
  96. package/dist/PlatformError.js +2 -2
  97. package/dist/PlatformError.js.map +1 -1
  98. package/dist/Pool.d.ts +6 -4
  99. package/dist/Pool.d.ts.map +1 -1
  100. package/dist/Pool.js +7 -5
  101. package/dist/Pool.js.map +1 -1
  102. package/dist/PubSub.d.ts +3 -2
  103. package/dist/PubSub.d.ts.map +1 -1
  104. package/dist/PubSub.js +3 -2
  105. package/dist/PubSub.js.map +1 -1
  106. package/dist/Queue.d.ts.map +1 -1
  107. package/dist/Queue.js +0 -1
  108. package/dist/Queue.js.map +1 -1
  109. package/dist/Random.d.ts +18 -1
  110. package/dist/Random.d.ts.map +1 -1
  111. package/dist/Random.js +29 -12
  112. package/dist/Random.js.map +1 -1
  113. package/dist/RcMap.d.ts +2 -2
  114. package/dist/RcMap.d.ts.map +1 -1
  115. package/dist/RcMap.js +1 -1
  116. package/dist/RcMap.js.map +1 -1
  117. package/dist/RcRef.d.ts +1 -1
  118. package/dist/RcRef.d.ts.map +1 -1
  119. package/dist/Reducer.d.ts +166 -7
  120. package/dist/Reducer.d.ts.map +1 -1
  121. package/dist/Reducer.js +135 -1
  122. package/dist/Reducer.js.map +1 -1
  123. package/dist/References.d.ts +3 -3
  124. package/dist/References.d.ts.map +1 -1
  125. package/dist/Request.d.ts +1 -1
  126. package/dist/Request.d.ts.map +1 -1
  127. package/dist/Request.js +2 -1
  128. package/dist/Request.js.map +1 -1
  129. package/dist/RequestResolver.d.ts +6 -26
  130. package/dist/RequestResolver.d.ts.map +1 -1
  131. package/dist/RequestResolver.js +0 -20
  132. package/dist/RequestResolver.js.map +1 -1
  133. package/dist/Result.d.ts +12 -0
  134. package/dist/Result.d.ts.map +1 -1
  135. package/dist/Result.js +12 -0
  136. package/dist/Result.js.map +1 -1
  137. package/dist/Schedule.d.ts +33 -14
  138. package/dist/Schedule.d.ts.map +1 -1
  139. package/dist/Schedule.js +65 -24
  140. package/dist/Schedule.js.map +1 -1
  141. package/dist/Schema.d.ts +199 -49
  142. package/dist/Schema.d.ts.map +1 -1
  143. package/dist/Schema.js +386 -72
  144. package/dist/Schema.js.map +1 -1
  145. package/dist/SchemaAST.d.ts.map +1 -1
  146. package/dist/SchemaAST.js +2 -1
  147. package/dist/SchemaAST.js.map +1 -1
  148. package/dist/SchemaGetter.d.ts +2 -2
  149. package/dist/SchemaGetter.d.ts.map +1 -1
  150. package/dist/SchemaGetter.js +12 -14
  151. package/dist/SchemaGetter.js.map +1 -1
  152. package/dist/SchemaRepresentation.d.ts +44 -43
  153. package/dist/SchemaRepresentation.d.ts.map +1 -1
  154. package/dist/SchemaRepresentation.js +43 -24
  155. package/dist/SchemaRepresentation.js.map +1 -1
  156. package/dist/SchemaTransformation.d.ts +37 -0
  157. package/dist/SchemaTransformation.d.ts.map +1 -1
  158. package/dist/SchemaTransformation.js +80 -0
  159. package/dist/SchemaTransformation.js.map +1 -1
  160. package/dist/ScopedCache.d.ts +2 -2
  161. package/dist/ScopedCache.d.ts.map +1 -1
  162. package/dist/ScopedCache.js +1 -1
  163. package/dist/ScopedCache.js.map +1 -1
  164. package/dist/Semaphore.d.ts +211 -0
  165. package/dist/Semaphore.d.ts.map +1 -0
  166. package/dist/{PartitionedSemaphore.js → Semaphore.js} +97 -13
  167. package/dist/Semaphore.js.map +1 -0
  168. package/dist/Stream.d.ts +24 -24
  169. package/dist/Stream.d.ts.map +1 -1
  170. package/dist/Stream.js +12 -11
  171. package/dist/Stream.js.map +1 -1
  172. package/dist/Struct.d.ts +16 -0
  173. package/dist/Struct.d.ts.map +1 -1
  174. package/dist/Struct.js +22 -0
  175. package/dist/Struct.js.map +1 -1
  176. package/dist/SubscriptionRef.d.ts +2 -1
  177. package/dist/SubscriptionRef.d.ts.map +1 -1
  178. package/dist/SubscriptionRef.js +2 -1
  179. package/dist/SubscriptionRef.js.map +1 -1
  180. package/dist/SynchronizedRef.d.ts +2 -1
  181. package/dist/SynchronizedRef.d.ts.map +1 -1
  182. package/dist/SynchronizedRef.js +2 -1
  183. package/dist/SynchronizedRef.js.map +1 -1
  184. package/dist/Types.d.ts +14 -6
  185. package/dist/Types.d.ts.map +1 -1
  186. package/dist/index.d.ts +503 -19
  187. package/dist/index.d.ts.map +1 -1
  188. package/dist/index.js +503 -19
  189. package/dist/index.js.map +1 -1
  190. package/dist/internal/core.js +11 -3
  191. package/dist/internal/core.js.map +1 -1
  192. package/dist/internal/dateTime.js +3 -11
  193. package/dist/internal/dateTime.js.map +1 -1
  194. package/dist/internal/effect.js +85 -26
  195. package/dist/internal/effect.js.map +1 -1
  196. package/dist/internal/hashMap.js +2 -2
  197. package/dist/internal/hashMap.js.map +1 -1
  198. package/dist/internal/random.d.ts +2 -0
  199. package/dist/internal/random.d.ts.map +1 -0
  200. package/dist/internal/random.js +13 -0
  201. package/dist/internal/random.js.map +1 -0
  202. package/dist/internal/rcRef.js +3 -2
  203. package/dist/internal/rcRef.js.map +1 -1
  204. package/dist/testing/TestClock.d.ts +7 -6
  205. package/dist/testing/TestClock.d.ts.map +1 -1
  206. package/dist/testing/TestClock.js +6 -4
  207. package/dist/testing/TestClock.js.map +1 -1
  208. package/dist/testing/TestSchema.d.ts +6 -6
  209. package/dist/testing/TestSchema.d.ts.map +1 -1
  210. package/dist/unstable/ai/AiError.d.ts +48 -48
  211. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  212. package/dist/unstable/ai/Chat.d.ts +3 -3
  213. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  214. package/dist/unstable/ai/Chat.js +4 -3
  215. package/dist/unstable/ai/Chat.js.map +1 -1
  216. package/dist/unstable/ai/LanguageModel.d.ts +2 -2
  217. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  218. package/dist/unstable/ai/LanguageModel.js +41 -0
  219. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  220. package/dist/unstable/ai/McpSchema.d.ts +51 -51
  221. package/dist/unstable/ai/McpServer.d.ts +1 -1
  222. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  223. package/dist/unstable/ai/McpServer.js.map +1 -1
  224. package/dist/unstable/ai/Prompt.d.ts +20 -20
  225. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  226. package/dist/unstable/ai/Response.d.ts +26 -26
  227. package/dist/unstable/ai/Response.d.ts.map +1 -1
  228. package/dist/unstable/ai/Response.js +1 -1
  229. package/dist/unstable/ai/Response.js.map +1 -1
  230. package/dist/unstable/cli/CliError.d.ts +5 -5
  231. package/dist/unstable/cli/CliOutput.js +37 -6
  232. package/dist/unstable/cli/CliOutput.js.map +1 -1
  233. package/dist/unstable/cli/Command.d.ts +199 -7
  234. package/dist/unstable/cli/Command.d.ts.map +1 -1
  235. package/dist/unstable/cli/Command.js +116 -6
  236. package/dist/unstable/cli/Command.js.map +1 -1
  237. package/dist/unstable/cli/HelpDoc.d.ts +60 -2
  238. package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
  239. package/dist/unstable/cli/internal/command.d.ts +11 -1
  240. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  241. package/dist/unstable/cli/internal/command.js +33 -8
  242. package/dist/unstable/cli/internal/command.js.map +1 -1
  243. package/dist/unstable/cli/internal/completions/CommandDescriptor.js +7 -2
  244. package/dist/unstable/cli/internal/completions/CommandDescriptor.js.map +1 -1
  245. package/dist/unstable/cli/internal/parser.js +10 -2
  246. package/dist/unstable/cli/internal/parser.js.map +1 -1
  247. package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
  248. package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
  249. package/dist/unstable/cluster/ClusterCron.js +1 -1
  250. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  251. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  252. package/dist/unstable/cluster/ClusterWorkflowEngine.js +2 -1
  253. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  254. package/dist/unstable/cluster/Entity.d.ts +5 -4
  255. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  256. package/dist/unstable/cluster/Entity.js.map +1 -1
  257. package/dist/unstable/cluster/EntityResource.d.ts +2 -2
  258. package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
  259. package/dist/unstable/cluster/Envelope.d.ts +1 -1
  260. package/dist/unstable/cluster/K8sHttpClient.d.ts +1 -1
  261. package/dist/unstable/cluster/K8sHttpClient.js +1 -1
  262. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  263. package/dist/unstable/cluster/Message.d.ts +10 -10
  264. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  265. package/dist/unstable/cluster/MessageStorage.js +2 -1
  266. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  267. package/dist/unstable/cluster/Reply.d.ts +6 -6
  268. package/dist/unstable/cluster/Runner.d.ts +1 -1
  269. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  270. package/dist/unstable/cluster/Runners.js +4 -3
  271. package/dist/unstable/cluster/Runners.js.map +1 -1
  272. package/dist/unstable/cluster/Sharding.d.ts +2 -2
  273. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  274. package/dist/unstable/cluster/Sharding.js +8 -6
  275. package/dist/unstable/cluster/Sharding.js.map +1 -1
  276. package/dist/unstable/cluster/ShardingConfig.d.ts +21 -21
  277. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  278. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  279. package/dist/unstable/cluster/SqlRunnerStorage.js +1 -1
  280. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  281. package/dist/unstable/cluster/internal/entityManager.js +5 -4
  282. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  283. package/dist/unstable/cluster/internal/entityReaper.js +2 -1
  284. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  285. package/dist/unstable/cluster/internal/resourceRef.js +2 -1
  286. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  287. package/dist/unstable/devtools/DevToolsSchema.d.ts +36 -36
  288. package/dist/unstable/encoding/Msgpack.d.ts +1 -1
  289. package/dist/unstable/encoding/Ndjson.d.ts +1 -1
  290. package/dist/unstable/encoding/Sse.d.ts +4 -4
  291. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  292. package/dist/unstable/encoding/Sse.js.map +1 -1
  293. package/dist/unstable/eventlog/EventJournal.d.ts +2 -2
  294. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  295. package/dist/unstable/eventlog/EventLog.js +2 -1
  296. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  297. package/dist/unstable/eventlog/EventLogRemote.d.ts +6 -6
  298. package/dist/unstable/http/Cookies.d.ts +3 -3
  299. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  300. package/dist/unstable/http/Cookies.js +2 -2
  301. package/dist/unstable/http/Cookies.js.map +1 -1
  302. package/dist/unstable/http/Headers.d.ts.map +1 -1
  303. package/dist/unstable/http/Headers.js +27 -10
  304. package/dist/unstable/http/Headers.js.map +1 -1
  305. package/dist/unstable/http/HttpBody.d.ts +17 -2
  306. package/dist/unstable/http/HttpBody.d.ts.map +1 -1
  307. package/dist/unstable/http/HttpBody.js +28 -1
  308. package/dist/unstable/http/HttpBody.js.map +1 -1
  309. package/dist/unstable/http/HttpClient.d.ts +11 -11
  310. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  311. package/dist/unstable/http/HttpClient.js +4 -4
  312. package/dist/unstable/http/HttpClient.js.map +1 -1
  313. package/dist/unstable/http/HttpClientError.d.ts +7 -7
  314. package/dist/unstable/http/HttpClientRequest.d.ts +27 -11
  315. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  316. package/dist/unstable/http/HttpClientRequest.js +15 -3
  317. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  318. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  319. package/dist/unstable/http/HttpEffect.js +30 -33
  320. package/dist/unstable/http/HttpEffect.js.map +1 -1
  321. package/dist/unstable/http/HttpMethod.d.ts +4 -4
  322. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  323. package/dist/unstable/http/HttpMethod.js +3 -3
  324. package/dist/unstable/http/HttpMethod.js.map +1 -1
  325. package/dist/unstable/http/HttpMiddleware.d.ts +1 -6
  326. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  327. package/dist/unstable/http/HttpMiddleware.js +4 -9
  328. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  329. package/dist/unstable/http/HttpServerError.d.ts +14 -32
  330. package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
  331. package/dist/unstable/http/HttpServerError.js +11 -27
  332. package/dist/unstable/http/HttpServerError.js.map +1 -1
  333. package/dist/unstable/http/HttpServerRespondable.d.ts +2 -2
  334. package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
  335. package/dist/unstable/http/HttpServerRespondable.js +5 -5
  336. package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
  337. package/dist/unstable/http/HttpServerResponse.d.ts +2 -1
  338. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  339. package/dist/unstable/http/HttpServerResponse.js +3 -1
  340. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  341. package/dist/unstable/http/Multipart.d.ts +3 -3
  342. package/dist/unstable/http/UrlParams.d.ts +14 -6
  343. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  344. package/dist/unstable/http/UrlParams.js +1 -1
  345. package/dist/unstable/http/UrlParams.js.map +1 -1
  346. package/dist/unstable/httpapi/HttpApiBuilder.js +6 -6
  347. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  348. package/dist/unstable/httpapi/HttpApiClient.js +3 -3
  349. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  350. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +21 -39
  351. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  352. package/dist/unstable/httpapi/HttpApiEndpoint.js +15 -24
  353. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  354. package/dist/unstable/httpapi/HttpApiError.d.ts +11 -0
  355. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  356. package/dist/unstable/httpapi/HttpApiError.js +29 -9
  357. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  358. package/dist/unstable/httpapi/HttpApiScalar.d.ts +6 -0
  359. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  360. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  361. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  362. package/dist/unstable/httpapi/OpenApi.js +18 -16
  363. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  364. package/dist/unstable/observability/Otlp.d.ts +12 -12
  365. package/dist/unstable/observability/Otlp.d.ts.map +1 -1
  366. package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
  367. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  368. package/dist/unstable/observability/OtlpExporter.js +1 -1
  369. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  370. package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
  371. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  372. package/dist/unstable/observability/OtlpLogger.js +7 -4
  373. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  374. package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
  375. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  376. package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
  377. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  378. package/dist/unstable/persistence/KeyValueStore.d.ts +1 -1
  379. package/dist/unstable/persistence/KeyValueStore.js +6 -6
  380. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  381. package/dist/unstable/persistence/Persistable.d.ts +2 -2
  382. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  383. package/dist/unstable/persistence/PersistedCache.d.ts +6 -5
  384. package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
  385. package/dist/unstable/persistence/PersistedCache.js +2 -1
  386. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  387. package/dist/unstable/persistence/PersistedQueue.d.ts +12 -12
  388. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  389. package/dist/unstable/persistence/PersistedQueue.js +12 -11
  390. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  391. package/dist/unstable/persistence/Persistence.d.ts +1 -1
  392. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  393. package/dist/unstable/persistence/Persistence.js +2 -2
  394. package/dist/unstable/persistence/Persistence.js.map +1 -1
  395. package/dist/unstable/persistence/RateLimiter.d.ts +3 -3
  396. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  397. package/dist/unstable/persistence/RateLimiter.js +1 -1
  398. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  399. package/dist/unstable/process/ChildProcess.d.ts +2 -2
  400. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  401. package/dist/unstable/process/ChildProcessSpawner.d.ts +6 -0
  402. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  403. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  404. package/dist/unstable/reactivity/Atom.d.ts +6 -6
  405. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  406. package/dist/unstable/reactivity/Atom.js +15 -12
  407. package/dist/unstable/reactivity/Atom.js.map +1 -1
  408. package/dist/unstable/reactivity/AtomHttpApi.d.ts +6 -6
  409. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  410. package/dist/unstable/reactivity/AtomHttpApi.js +3 -3
  411. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  412. package/dist/unstable/reactivity/AtomRegistry.d.ts +6 -0
  413. package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
  414. package/dist/unstable/reactivity/AtomRegistry.js +22 -1
  415. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  416. package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
  417. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  418. package/dist/unstable/reactivity/AtomRpc.js +1 -1
  419. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  420. package/dist/unstable/reactivity/Hydration.d.ts +39 -0
  421. package/dist/unstable/reactivity/Hydration.d.ts.map +1 -0
  422. package/dist/unstable/reactivity/Hydration.js +76 -0
  423. package/dist/unstable/reactivity/Hydration.js.map +1 -0
  424. package/dist/unstable/reactivity/index.d.ts +4 -0
  425. package/dist/unstable/reactivity/index.d.ts.map +1 -1
  426. package/dist/unstable/reactivity/index.js +4 -0
  427. package/dist/unstable/reactivity/index.js.map +1 -1
  428. package/dist/unstable/rpc/Rpc.d.ts +2 -2
  429. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  430. package/dist/unstable/rpc/RpcClient.d.ts +5 -26
  431. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  432. package/dist/unstable/rpc/RpcClient.js +6 -13
  433. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  434. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  435. package/dist/unstable/rpc/RpcServer.js +9 -3
  436. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  437. package/dist/unstable/rpc/Utils.d.ts.map +1 -1
  438. package/dist/unstable/rpc/Utils.js +2 -1
  439. package/dist/unstable/rpc/Utils.js.map +1 -1
  440. package/dist/unstable/schema/Model.d.ts +4 -4
  441. package/dist/unstable/schema/Model.d.ts.map +1 -1
  442. package/dist/unstable/schema/VariantSchema.d.ts +2 -2
  443. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  444. package/dist/unstable/schema/VariantSchema.js +13 -2
  445. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  446. package/dist/unstable/socket/Socket.d.ts +4 -4
  447. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  448. package/dist/unstable/socket/Socket.js +3 -2
  449. package/dist/unstable/socket/Socket.js.map +1 -1
  450. package/dist/unstable/socket/SocketServer.d.ts +3 -3
  451. package/dist/unstable/sql/Migrator.d.ts +1 -1
  452. package/dist/unstable/sql/SqlError.d.ts +2 -2
  453. package/dist/unstable/sql/SqlModel.d.ts +2 -2
  454. package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
  455. package/dist/unstable/sql/SqlSchema.d.ts +24 -1
  456. package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
  457. package/dist/unstable/sql/SqlSchema.js +24 -3
  458. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  459. package/dist/unstable/sql/Statement.js +0 -1
  460. package/dist/unstable/sql/Statement.js.map +1 -1
  461. package/dist/unstable/workers/Worker.d.ts.map +1 -1
  462. package/dist/unstable/workers/Worker.js +2 -1
  463. package/dist/unstable/workers/Worker.js.map +1 -1
  464. package/dist/unstable/workflow/DurableClock.d.ts +3 -3
  465. package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
  466. package/dist/unstable/workflow/DurableClock.js +3 -3
  467. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  468. package/dist/unstable/workflow/DurableDeferred.js +2 -2
  469. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  470. package/dist/unstable/workflow/Workflow.d.ts +2 -2
  471. package/dist/unstable/workflow/WorkflowEngine.d.ts +8 -1
  472. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  473. package/dist/unstable/workflow/WorkflowEngine.js +133 -1
  474. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  475. package/package.json +2 -2
  476. package/src/Cache.ts +3 -3
  477. package/src/Cause.ts +1 -1
  478. package/src/Channel.ts +15 -13
  479. package/src/Combiner.ts +280 -13
  480. package/src/Config.ts +3 -3
  481. package/src/Data.ts +538 -374
  482. package/src/DateTime.ts +24 -164
  483. package/src/Duration.ts +15 -15
  484. package/src/Effect.ts +378 -269
  485. package/src/Encoding.ts +879 -0
  486. package/src/Equal.ts +278 -111
  487. package/src/ErrorReporter.ts +459 -0
  488. package/src/FileSystem.ts +7 -8
  489. package/src/Filter.ts +48 -1
  490. package/src/Formatter.ts +253 -51
  491. package/src/Graph.ts +8 -5
  492. package/src/JsonSchema.ts +383 -10
  493. package/src/Latch.ts +112 -0
  494. package/src/LayerMap.ts +5 -5
  495. package/src/LogLevel.ts +37 -0
  496. package/src/Logger.ts +33 -100
  497. package/src/Metric.ts +4 -4
  498. package/src/Optic.ts +948 -19
  499. package/src/Pipeable.ts +32 -1
  500. package/src/PlatformError.ts +5 -5
  501. package/src/Pool.ts +13 -11
  502. package/src/PubSub.ts +10 -9
  503. package/src/Queue.ts +0 -1
  504. package/src/Random.ts +33 -14
  505. package/src/RcMap.ts +5 -5
  506. package/src/RcRef.ts +1 -1
  507. package/src/Reducer.ts +166 -7
  508. package/src/References.ts +4 -4
  509. package/src/Request.ts +3 -2
  510. package/src/RequestResolver.ts +9 -29
  511. package/src/Result.ts +13 -0
  512. package/src/Schedule.ts +279 -140
  513. package/src/Schema.ts +575 -113
  514. package/src/SchemaAST.ts +2 -1
  515. package/src/SchemaGetter.ts +12 -14
  516. package/src/SchemaRepresentation.ts +43 -24
  517. package/src/SchemaTransformation.ts +104 -0
  518. package/src/ScopedCache.ts +3 -3
  519. package/src/Semaphore.ts +356 -0
  520. package/src/Stream.ts +50 -49
  521. package/src/Struct.ts +26 -0
  522. package/src/SubscriptionRef.ts +3 -2
  523. package/src/SynchronizedRef.ts +3 -2
  524. package/src/Types.ts +12 -2
  525. package/src/index.ts +507 -20
  526. package/src/internal/core.ts +12 -5
  527. package/src/internal/dateTime.ts +9 -30
  528. package/src/internal/effect.ts +194 -51
  529. package/src/internal/hashMap.ts +2 -2
  530. package/src/internal/random.ts +20 -0
  531. package/src/internal/rcRef.ts +4 -3
  532. package/src/testing/TestClock.ts +13 -11
  533. package/src/testing/TestSchema.ts +8 -8
  534. package/src/unstable/ai/AiError.ts +2 -2
  535. package/src/unstable/ai/Chat.ts +12 -11
  536. package/src/unstable/ai/LanguageModel.ts +74 -3
  537. package/src/unstable/ai/McpServer.ts +2 -2
  538. package/src/unstable/ai/Prompt.ts +37 -37
  539. package/src/unstable/ai/Response.ts +25 -25
  540. package/src/unstable/cli/CliOutput.ts +45 -6
  541. package/src/unstable/cli/Command.ts +298 -11
  542. package/src/unstable/cli/HelpDoc.ts +68 -2
  543. package/src/unstable/cli/internal/command.ts +47 -11
  544. package/src/unstable/cli/internal/completions/CommandDescriptor.ts +7 -2
  545. package/src/unstable/cli/internal/parser.ts +11 -3
  546. package/src/unstable/cluster/ClusterCron.ts +2 -2
  547. package/src/unstable/cluster/ClusterWorkflowEngine.ts +3 -2
  548. package/src/unstable/cluster/Entity.ts +7 -6
  549. package/src/unstable/cluster/EntityResource.ts +4 -4
  550. package/src/unstable/cluster/Envelope.ts +1 -1
  551. package/src/unstable/cluster/K8sHttpClient.ts +1 -1
  552. package/src/unstable/cluster/MessageStorage.ts +3 -5
  553. package/src/unstable/cluster/Runners.ts +6 -5
  554. package/src/unstable/cluster/Sharding.ts +11 -9
  555. package/src/unstable/cluster/ShardingConfig.ts +10 -11
  556. package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
  557. package/src/unstable/cluster/internal/entityManager.ts +9 -8
  558. package/src/unstable/cluster/internal/entityReaper.ts +2 -1
  559. package/src/unstable/cluster/internal/resourceRef.ts +2 -1
  560. package/src/unstable/encoding/Sse.ts +2 -4
  561. package/src/unstable/eventlog/EventLog.ts +2 -1
  562. package/src/unstable/http/Cookies.ts +3 -3
  563. package/src/unstable/http/Headers.ts +28 -13
  564. package/src/unstable/http/HttpBody.ts +42 -1
  565. package/src/unstable/http/HttpClient.ts +19 -19
  566. package/src/unstable/http/HttpClientRequest.ts +38 -13
  567. package/src/unstable/http/HttpEffect.ts +27 -30
  568. package/src/unstable/http/HttpMethod.ts +16 -4
  569. package/src/unstable/http/HttpMiddleware.ts +5 -10
  570. package/src/unstable/http/HttpServerError.ts +13 -27
  571. package/src/unstable/http/HttpServerRespondable.ts +6 -6
  572. package/src/unstable/http/HttpServerResponse.ts +4 -2
  573. package/src/unstable/http/Multipart.ts +2 -2
  574. package/src/unstable/http/UrlParams.ts +20 -5
  575. package/src/unstable/httpapi/HttpApiBuilder.ts +6 -5
  576. package/src/unstable/httpapi/HttpApiClient.ts +3 -3
  577. package/src/unstable/httpapi/HttpApiEndpoint.ts +47 -72
  578. package/src/unstable/httpapi/HttpApiError.ts +30 -9
  579. package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
  580. package/src/unstable/httpapi/OpenApi.ts +18 -16
  581. package/src/unstable/observability/Otlp.ts +12 -12
  582. package/src/unstable/observability/OtlpExporter.ts +3 -3
  583. package/src/unstable/observability/OtlpLogger.ts +13 -9
  584. package/src/unstable/observability/OtlpMetrics.ts +4 -4
  585. package/src/unstable/observability/OtlpTracer.ts +4 -4
  586. package/src/unstable/persistence/KeyValueStore.ts +6 -6
  587. package/src/unstable/persistence/Persistable.ts +2 -2
  588. package/src/unstable/persistence/PersistedCache.ts +20 -9
  589. package/src/unstable/persistence/PersistedQueue.ts +25 -24
  590. package/src/unstable/persistence/Persistence.ts +3 -3
  591. package/src/unstable/persistence/RateLimiter.ts +4 -4
  592. package/src/unstable/process/ChildProcess.ts +2 -2
  593. package/src/unstable/process/ChildProcessSpawner.ts +6 -0
  594. package/src/unstable/reactivity/Atom.ts +20 -18
  595. package/src/unstable/reactivity/AtomHttpApi.ts +19 -18
  596. package/src/unstable/reactivity/AtomRegistry.ts +29 -1
  597. package/src/unstable/reactivity/AtomRpc.ts +3 -3
  598. package/src/unstable/reactivity/Hydration.ts +112 -0
  599. package/src/unstable/reactivity/index.ts +5 -0
  600. package/src/unstable/rpc/Rpc.ts +3 -3
  601. package/src/unstable/rpc/RpcClient.ts +12 -54
  602. package/src/unstable/rpc/RpcServer.ts +10 -4
  603. package/src/unstable/rpc/Utils.ts +2 -1
  604. package/src/unstable/schema/VariantSchema.ts +36 -7
  605. package/src/unstable/socket/Socket.ts +7 -6
  606. package/src/unstable/sql/SqlModel.ts +2 -2
  607. package/src/unstable/sql/SqlSchema.ts +62 -13
  608. package/src/unstable/sql/Statement.ts +0 -1
  609. package/src/unstable/workers/Worker.ts +2 -1
  610. package/src/unstable/workflow/DurableClock.ts +8 -8
  611. package/src/unstable/workflow/DurableDeferred.ts +2 -2
  612. package/src/unstable/workflow/WorkflowEngine.ts +181 -2
  613. package/dist/PartitionedSemaphore.d.ts +0 -52
  614. package/dist/PartitionedSemaphore.d.ts.map +0 -1
  615. package/dist/PartitionedSemaphore.js.map +0 -1
  616. package/dist/encoding/Base64.d.ts +0 -67
  617. package/dist/encoding/Base64.d.ts.map +0 -1
  618. package/dist/encoding/Base64.js +0 -146
  619. package/dist/encoding/Base64.js.map +0 -1
  620. package/dist/encoding/Base64Url.d.ts +0 -60
  621. package/dist/encoding/Base64Url.d.ts.map +0 -1
  622. package/dist/encoding/Base64Url.js +0 -89
  623. package/dist/encoding/Base64Url.js.map +0 -1
  624. package/dist/encoding/EncodingError.d.ts +0 -31
  625. package/dist/encoding/EncodingError.d.ts.map +0 -1
  626. package/dist/encoding/EncodingError.js +0 -22
  627. package/dist/encoding/EncodingError.js.map +0 -1
  628. package/dist/encoding/Hex.d.ts +0 -61
  629. package/dist/encoding/Hex.d.ts.map +0 -1
  630. package/dist/encoding/Hex.js +0 -115
  631. package/dist/encoding/Hex.js.map +0 -1
  632. package/dist/encoding/index.d.ts +0 -26
  633. package/dist/encoding/index.d.ts.map +0 -1
  634. package/dist/encoding/index.js +0 -27
  635. package/dist/encoding/index.js.map +0 -1
  636. package/src/PartitionedSemaphore.ts +0 -182
  637. package/src/encoding/Base64.ts +0 -366
  638. package/src/encoding/Base64Url.ts +0 -104
  639. package/src/encoding/EncodingError.ts +0 -35
  640. package/src/encoding/Hex.ts +0 -390
  641. package/src/encoding/index.ts +0 -31
@@ -3,7 +3,6 @@
3
3
  */
4
4
  import * as Config from "../../Config.ts"
5
5
  import * as ConfigProvider from "../../ConfigProvider.ts"
6
- import type { DurationInput } from "../../Duration.ts"
7
6
  import * as Duration from "../../Duration.ts"
8
7
  import * as Effect from "../../Effect.ts"
9
8
  import * as Layer from "../../Layer.ts"
@@ -58,11 +57,11 @@ export class ShardingConfig extends ServiceMap.Service<ShardingConfig, {
58
57
  /**
59
58
  * Shard lock refresh interval.
60
59
  */
61
- readonly shardLockRefreshInterval: DurationInput
60
+ readonly shardLockRefreshInterval: Duration.Input
62
61
  /**
63
62
  * Shard lock expiration duration.
64
63
  */
65
- readonly shardLockExpiration: DurationInput
64
+ readonly shardLockExpiration: Duration.Input
66
65
  /**
67
66
  * Disable the use of advisory locks for shard locking.
68
67
  */
@@ -81,41 +80,41 @@ export class ShardingConfig extends ServiceMap.Service<ShardingConfig, {
81
80
  * The maximum duration of inactivity (i.e. without receiving a message)
82
81
  * after which an entity will be interrupted.
83
82
  */
84
- readonly entityMaxIdleTime: DurationInput
83
+ readonly entityMaxIdleTime: Duration.Input
85
84
  /**
86
85
  * If an entity does not register itself within this time after a message is
87
86
  * sent to it, the message will be marked as failed.
88
87
  *
89
88
  * Defaults to 1 minute.
90
89
  */
91
- readonly entityRegistrationTimeout: DurationInput
90
+ readonly entityRegistrationTimeout: Duration.Input
92
91
  /**
93
92
  * The maximum duration of time to wait for an entity to terminate.
94
93
  *
95
94
  * By default this is set to 15 seconds to stay within kubernetes defaults.
96
95
  */
97
- readonly entityTerminationTimeout: DurationInput
96
+ readonly entityTerminationTimeout: Duration.Input
98
97
  /**
99
98
  * The interval at which to poll for unprocessed messages from storage.
100
99
  */
101
- readonly entityMessagePollInterval: DurationInput
100
+ readonly entityMessagePollInterval: Duration.Input
102
101
  /**
103
102
  * The interval at which to poll for client replies from storage.
104
103
  */
105
- readonly entityReplyPollInterval: DurationInput
104
+ readonly entityReplyPollInterval: Duration.Input
106
105
  /**
107
106
  * The interval at which to poll for new runners and refresh shard
108
107
  * assignments.
109
108
  */
110
- readonly refreshAssignmentsInterval: DurationInput
109
+ readonly refreshAssignmentsInterval: Duration.Input
111
110
  /**
112
111
  * The interval to retry a send if EntityNotAssignedToRunner is returned.
113
112
  */
114
- readonly sendRetryInterval: DurationInput
113
+ readonly sendRetryInterval: Duration.Input
115
114
  /**
116
115
  * The interval at which to check for unhealthy runners and report them
117
116
  */
118
- readonly runnerHealthCheckInterval: DurationInput
117
+ readonly runnerHealthCheckInterval: Duration.Input
119
118
  /**
120
119
  * Simulate serialization and deserialization to remote runners for local
121
120
  * entities.
@@ -166,7 +166,7 @@ export const make = Effect.fnUntraced(function*(options: {
166
166
 
167
167
  const expiresSeconds = sql.literal(
168
168
  Math.ceil(Duration.toSeconds(
169
- Duration.fromDurationInputUnsafe(config.shardLockExpiration)
169
+ Duration.fromInputUnsafe(config.shardLockExpiration)
170
170
  )).toString()
171
171
  )
172
172
  const lockExpiresAt = sql.onDialectOrElse({
@@ -2,12 +2,13 @@ import * as Arr from "../../../Array.ts"
2
2
  import * as Cause from "../../../Cause.ts"
3
3
  import { Clock } from "../../../Clock.ts"
4
4
  import * as Duration from "../../../Duration.ts"
5
- import type { DurationInput } from "../../../Duration.ts"
5
+ import type { Input } from "../../../Duration.ts"
6
6
  import * as Effect from "../../../Effect.ts"
7
7
  import * as Equal from "../../../Equal.ts"
8
8
  import * as Exit from "../../../Exit.ts"
9
9
  import * as Fiber from "../../../Fiber.ts"
10
10
  import { identity } from "../../../Function.ts"
11
+ import * as Latch from "../../../Latch.ts"
11
12
  import * as Metric from "../../../Metric.ts"
12
13
  import * as Option from "../../../Option.ts"
13
14
  import { CurrentLogAnnotations } from "../../../References.ts"
@@ -75,7 +76,7 @@ export type EntityState = {
75
76
  }>
76
77
  lastActiveCheck: number
77
78
  write: RpcServer.RpcServer<any>["write"]
78
- readonly keepAliveLatch: Effect.Latch
79
+ readonly keepAliveLatch: Latch.Latch
79
80
  keepAliveEnabled: boolean
80
81
  }
81
82
 
@@ -92,7 +93,7 @@ export const make = Effect.fnUntraced(function*<
92
93
  readonly sharding: Sharding["Service"]
93
94
  readonly storage: MessageStorage.MessageStorage["Service"]
94
95
  readonly runnerAddress: RunnerAddress
95
- readonly maxIdleTime?: DurationInput | undefined
96
+ readonly maxIdleTime?: Input | undefined
96
97
  readonly concurrency?: number | "unbounded" | undefined
97
98
  readonly mailboxCapacity?: number | "unbounded" | undefined
98
99
  readonly disableFatalDefects?: boolean | undefined
@@ -116,7 +117,7 @@ export const make = Effect.fnUntraced(function*<
116
117
  entityRpcs.set(KeepAliveRpc._tag, KeepAliveRpc as any)
117
118
 
118
119
  const activeServers = new Map<EntityId, EntityState>()
119
- const serverCloseLatches = new Map<EntityAddress, Effect.Latch>()
120
+ const serverCloseLatches = new Map<EntityAddress, Latch.Latch>()
120
121
  const processedRequestIds = new Set<Snowflake.Snowflake>()
121
122
 
122
123
  const entities: ResourceMap<
@@ -129,8 +130,8 @@ export const make = Effect.fnUntraced(function*<
129
130
  }
130
131
 
131
132
  const scope = yield* Effect.scope
132
- const endLatch = Effect.makeLatchUnsafe()
133
- const keepAliveLatch = Effect.makeLatchUnsafe()
133
+ const endLatch = Latch.makeUnsafe()
134
+ const keepAliveLatch = Latch.makeUnsafe()
134
135
 
135
136
  // on shutdown, reset the storage for the entity
136
137
  yield* Scope.addFinalizerExit(
@@ -336,7 +337,7 @@ export const make = Effect.fnUntraced(function*<
336
337
  scope,
337
338
  Effect.withFiber((fiber) => {
338
339
  activeServers.delete(address.entityId)
339
- serverCloseLatches.set(address, Effect.makeLatchUnsafe())
340
+ serverCloseLatches.set(address, Latch.makeUnsafe())
340
341
  internalInterruptors.add(fiber.id)
341
342
  return state.write(0, { _tag: "Eof" }).pipe(
342
343
  Effect.andThen(Effect.interruptible(endLatch.await)),
@@ -351,7 +352,7 @@ export const make = Effect.fnUntraced(function*<
351
352
 
352
353
  const reaper = yield* EntityReaper
353
354
  const maxIdleTime = Duration.toMillis(
354
- Duration.fromDurationInputUnsafe(options.maxIdleTime ?? config.entityMaxIdleTime)
355
+ Duration.fromInputUnsafe(options.maxIdleTime ?? config.entityMaxIdleTime)
355
356
  )
356
357
  if (Number.isFinite(maxIdleTime)) {
357
358
  yield* reaper.register({
@@ -1,5 +1,6 @@
1
1
  import { Clock } from "../../../Clock.ts"
2
2
  import * as Effect from "../../../Effect.ts"
3
+ import * as Latch from "../../../Latch.ts"
3
4
  import * as Layer from "../../../Layer.ts"
4
5
  import * as ServiceMap from "../../../ServiceMap.ts"
5
6
  import type { EntityNotAssignedToRunner } from "../ClusterError.ts"
@@ -17,7 +18,7 @@ export class EntityReaper extends ServiceMap.Service<EntityReaper>()("effect/clu
17
18
  readonly servers: Map<EntityId, EntityState>
18
19
  readonly entities: ResourceMap<EntityAddress, EntityState, EntityNotAssignedToRunner>
19
20
  }> = []
20
- const latch = yield* Effect.makeLatch()
21
+ const latch = yield* Latch.make()
21
22
 
22
23
  const register = (options: {
23
24
  readonly maxIdleTime: number
@@ -1,5 +1,6 @@
1
1
  import * as Effect from "../../../Effect.ts"
2
2
  import * as Exit from "../../../Exit.ts"
3
+ import * as Latch from "../../../Latch.ts"
3
4
  import * as MutableRef from "../../../MutableRef.ts"
4
5
  import * as Option from "../../../Option.ts"
5
6
  import * as Scope from "../../../Scope.ts"
@@ -53,7 +54,7 @@ export class ResourceRef<A, E = never> {
53
54
  this.acquire = acquire
54
55
  }
55
56
 
56
- latch = Effect.makeLatchUnsafe(true)
57
+ latch = Latch.makeUnsafe(true)
57
58
 
58
59
  getUnsafe(): Option.Option<A> {
59
60
  if (this.state.current._tag === "Acquired") {
@@ -326,11 +326,9 @@ export const encode = <IE, Done>(): Channel.Channel<
326
326
  * @category Encoding
327
327
  */
328
328
  export const encodeSchema = <
329
- S extends Schema.Codec<
330
- any,
329
+ S extends Schema.Encoder<
331
330
  { readonly id?: string | undefined; readonly event: string; readonly data: string },
332
- any,
333
- any
331
+ unknown
334
332
  >,
335
333
  IE,
336
334
  Done
@@ -14,6 +14,7 @@ import type * as Record from "../../Record.ts"
14
14
  import * as Redacted from "../../Redacted.ts"
15
15
  import * as Schema from "../../Schema.ts"
16
16
  import type * as Scope from "../../Scope.ts"
17
+ import * as Semaphore from "../../Semaphore.ts"
17
18
  import * as ServiceMap from "../../ServiceMap.ts"
18
19
  import type { Covariant } from "../../Types.ts"
19
20
  import { Reactivity } from "../reactivity/Reactivity.ts"
@@ -481,7 +482,7 @@ const make = Effect.gen(function*() {
481
482
  readonly write: (entry: Entry) => Effect.Effect<void>
482
483
  }) => Effect.Effect<void>
483
484
  }>()
484
- const journalSemaphore = yield* Effect.makeSemaphore(1)
485
+ const journalSemaphore = yield* Semaphore.make(1)
485
486
 
486
487
  const reactivity = yield* Reactivity
487
488
  const reactivityKeys: Record<string, ReadonlyArray<string>> = {}
@@ -86,7 +86,7 @@ export interface Cookie extends Inspectable.Inspectable {
86
86
  readonly options?: {
87
87
  readonly domain?: string | undefined
88
88
  readonly expires?: Date | undefined
89
- readonly maxAge?: Duration.DurationInput | undefined
89
+ readonly maxAge?: Duration.Input | undefined
90
90
  readonly path?: string | undefined
91
91
  readonly priority?: "low" | "medium" | "high" | undefined
92
92
  readonly httpOnly?: boolean | undefined
@@ -418,7 +418,7 @@ export function makeCookie(
418
418
  return Result.fail(CookiesError.fromReason("InvalidCookiePath"))
419
419
  }
420
420
 
421
- if (options.maxAge !== undefined && !Duration.isFinite(Duration.fromDurationInputUnsafe(options.maxAge))) {
421
+ if (options.maxAge !== undefined && !Duration.isFinite(Duration.fromInputUnsafe(options.maxAge))) {
422
422
  return Result.fail(CookiesError.fromReason("CookieInfinityMaxAge"))
423
423
  }
424
424
  }
@@ -763,7 +763,7 @@ export function serializeCookie(self: Cookie): string {
763
763
  const options = self.options
764
764
 
765
765
  if (options.maxAge !== undefined) {
766
- const maxAge = Duration.toSeconds(Duration.fromDurationInputUnsafe(options.maxAge))
766
+ const maxAge = Duration.toSeconds(Duration.fromInputUnsafe(options.maxAge))
767
767
  str += "; Max-Age=" + Math.trunc(maxAge)
768
768
  }
769
769
 
@@ -44,22 +44,37 @@ export interface Headers extends Redactable.Redactable {
44
44
  readonly [key: string]: string
45
45
  }
46
46
 
47
- const Proto = Object.assign(Object.create(null), Inspectable.BaseProto, {
48
- [TypeId]: TypeId,
49
- [Redactable.symbolRedactable](
50
- this: Headers,
51
- context: ServiceMap.ServiceMap<never>
52
- ): Record<string, string | Redacted.Redacted<string>> {
53
- return redact(this, ServiceMap.get(context, CurrentRedactedNames))
47
+ const Proto = Object.create(null)
48
+
49
+ Object.defineProperties(Proto, {
50
+ [TypeId]: {
51
+ value: TypeId
52
+ },
53
+ [Redactable.symbolRedactable]: {
54
+ value(this: Headers, context: ServiceMap.ServiceMap<never>): Record<string, string | Redacted.Redacted<string>> {
55
+ return redact(this, ServiceMap.get(context, CurrentRedactedNames))
56
+ }
57
+ },
58
+ toJSON: {
59
+ value(this: Headers) {
60
+ return Redactable.redact(this)
61
+ }
62
+ },
63
+ [Equal.symbol]: {
64
+ value(this: Headers, that: Headers): boolean {
65
+ return Equivalence(this, that)
66
+ }
54
67
  },
55
- toJSON() {
56
- return Redactable.redact(this)
68
+ [Hash.symbol]: {
69
+ value(this: Headers): number {
70
+ return Hash.structure(this)
71
+ }
57
72
  },
58
- [Equal.symbol](this: Headers, that: Headers): boolean {
59
- return Equivalence(this, that)
73
+ toString: {
74
+ value: Inspectable.BaseProto.toString
60
75
  },
61
- [Hash.symbol](this: Headers): number {
62
- return Hash.structure(this)
76
+ [Inspectable.NodeInspectSymbol]: {
77
+ value: Inspectable.BaseProto[Inspectable.NodeInspectSymbol]
63
78
  }
64
79
  })
65
80
 
@@ -279,7 +279,48 @@ export class FormData extends Proto {
279
279
  * @since 4.0.0
280
280
  * @category constructors
281
281
  */
282
- export const makeFormData = (body: globalThis.FormData): FormData => new FormData(body)
282
+ export const formData = (body: globalThis.FormData): FormData => new FormData(body)
283
+
284
+ /**
285
+ * @since 4.0.0
286
+ * @category models
287
+ */
288
+ export type FormDataInput = Record<string, FormDataCoercible | ReadonlyArray<FormDataCoercible>>
289
+
290
+ /**
291
+ * @since 4.0.0
292
+ * @category models
293
+ */
294
+ export type FormDataCoercible = string | number | boolean | globalThis.File | globalThis.Blob | null | undefined
295
+
296
+ const appendFormDataValue = (formData: globalThis.FormData, key: string, value: FormDataCoercible): void => {
297
+ if (value == null) {
298
+ return
299
+ }
300
+ if (typeof value === "object") {
301
+ formData.append(key, value)
302
+ return
303
+ }
304
+ formData.append(key, String(value))
305
+ }
306
+
307
+ /**
308
+ * @since 4.0.0
309
+ * @category constructors
310
+ */
311
+ export const formDataRecord = (entries: FormDataInput): FormData => {
312
+ const data = new globalThis.FormData()
313
+ for (const [key, value] of Object.entries(entries)) {
314
+ if (Array.isArray(value)) {
315
+ for (const item of value) {
316
+ appendFormDataValue(data, key, item)
317
+ }
318
+ } else {
319
+ appendFormDataValue(data, key, value as FormDataCoercible)
320
+ }
321
+ }
322
+ return formData(data)
323
+ }
283
324
 
284
325
  /**
285
326
  * @since 4.0.0
@@ -61,11 +61,11 @@ export declare namespace HttpClient {
61
61
 
62
62
  readonly get: (
63
63
  url: string | URL,
64
- options?: HttpClientRequest.Options.NoBody
64
+ options?: HttpClientRequest.Options.NoUrl
65
65
  ) => Effect.Effect<HttpClientResponse.HttpClientResponse, E, R>
66
66
  readonly head: (
67
67
  url: string | URL,
68
- options?: HttpClientRequest.Options.NoBody
68
+ options?: HttpClientRequest.Options.NoUrl
69
69
  ) => Effect.Effect<HttpClientResponse.HttpClientResponse, E, R>
70
70
  readonly post: (
71
71
  url: string | URL,
@@ -132,7 +132,7 @@ export const execute: (
132
132
  * @since 4.0.0
133
133
  * @category accessors
134
134
  */
135
- export const get: (url: string | URL, options?: HttpClientRequest.Options.NoBody | undefined) => Effect.Effect<
135
+ export const get: (url: string | URL, options?: HttpClientRequest.Options.NoUrl | undefined) => Effect.Effect<
136
136
  HttpClientResponse.HttpClientResponse,
137
137
  Error.HttpClientError,
138
138
  HttpClient
@@ -142,7 +142,7 @@ export const get: (url: string | URL, options?: HttpClientRequest.Options.NoBody
142
142
  * @since 4.0.0
143
143
  * @category accessors
144
144
  */
145
- export const head: (url: string | URL, options?: HttpClientRequest.Options.NoBody | undefined) => Effect.Effect<
145
+ export const head: (url: string | URL, options?: HttpClientRequest.Options.NoUrl | undefined) => Effect.Effect<
146
146
  HttpClientResponse.HttpClientResponse,
147
147
  Error.HttpClientError,
148
148
  HttpClient
@@ -928,7 +928,7 @@ export const retry: {
928
928
  /**
929
929
  * Retries common transient errors, such as rate limiting, timeouts or network issues.
930
930
  *
931
- * Use `mode` to focus on retrying errors, transient responses, or both.
931
+ * Use `retryOn` to focus on retrying errors, transient responses, or both.
932
932
  *
933
933
  * Specifying a `while` predicate allows you to consider other errors as
934
934
  * transient, and is ignored in "response-only" mode.
@@ -940,7 +940,7 @@ export const retryTransient: {
940
940
  /**
941
941
  * Retries common transient errors, such as rate limiting, timeouts or network issues.
942
942
  *
943
- * Use `mode` to focus on retrying errors, transient responses, or both.
943
+ * Use `retryOn` to focus on retrying errors, transient responses, or both.
944
944
  *
945
945
  * Specifying a `while` predicate allows you to consider other errors as
946
946
  * transient, and is ignored in "response-only" mode.
@@ -953,13 +953,13 @@ export const retryTransient: {
953
953
  E,
954
954
  ES = never,
955
955
  R1 = never,
956
- const Mode extends "errors-only" | "response-only" | "both" = never,
957
- Input = "errors-only" extends Mode ? E
958
- : "response-only" extends Mode ? HttpClientResponse.HttpClientResponse
956
+ const RetryOn extends "errors-only" | "response-only" | "errors-and-responses" = never,
957
+ Input = "errors-only" extends RetryOn ? E
958
+ : "response-only" extends RetryOn ? HttpClientResponse.HttpClientResponse
959
959
  : HttpClientResponse.HttpClientResponse | E
960
960
  >(
961
961
  options: {
962
- readonly mode?: Mode | undefined
962
+ readonly retryOn?: RetryOn | undefined
963
963
  readonly while?: Predicate.Predicate<NoInfer<E | ES>>
964
964
  readonly schedule?: Schedule.Schedule<B, NoInfer<Input>, ES, R1>
965
965
  readonly times?: number
@@ -968,7 +968,7 @@ export const retryTransient: {
968
968
  /**
969
969
  * Retries common transient errors, such as rate limiting, timeouts or network issues.
970
970
  *
971
- * Use `mode` to focus on retrying errors, transient responses, or both.
971
+ * Use `retryOn` to focus on retrying errors, transient responses, or both.
972
972
  *
973
973
  * Specifying a `while` predicate allows you to consider other errors as
974
974
  * transient, and is ignored in "response-only" mode.
@@ -982,14 +982,14 @@ export const retryTransient: {
982
982
  B,
983
983
  ES = never,
984
984
  R1 = never,
985
- const Mode extends "errors-only" | "response-only" | "both" = never,
986
- Input = "errors-only" extends Mode ? E
987
- : "response-only" extends Mode ? HttpClientResponse.HttpClientResponse
985
+ const RetryOn extends "errors-only" | "response-only" | "errors-and-responses" = never,
986
+ Input = "errors-only" extends RetryOn ? E
987
+ : "response-only" extends RetryOn ? HttpClientResponse.HttpClientResponse
988
988
  : HttpClientResponse.HttpClientResponse | E
989
989
  >(
990
990
  self: HttpClient.With<E, R>,
991
991
  options: {
992
- readonly mode?: Mode | undefined
992
+ readonly retryOn?: RetryOn | undefined
993
993
  readonly while?: Predicate.Predicate<NoInfer<E | ES>>
994
994
  readonly schedule?: Schedule.Schedule<B, NoInfer<Input>, ES, R1>
995
995
  readonly times?: number
@@ -1006,26 +1006,26 @@ export const retryTransient: {
1006
1006
  >(
1007
1007
  self: HttpClient.With<E, R>,
1008
1008
  options: {
1009
- readonly mode?: "errors-only" | "response-only" | "both" | undefined
1009
+ readonly retryOn?: "errors-only" | "response-only" | "errors-and-responses" | undefined
1010
1010
  readonly while?: Predicate.Predicate<E | ES>
1011
1011
  readonly schedule?: Schedule.Schedule<B, any, ES, R1>
1012
1012
  readonly times?: number
1013
1013
  } | Schedule.Schedule<B, any, ES, R1>
1014
1014
  ): HttpClient.With<E | ES, R1 | R> => {
1015
1015
  const isOnlySchedule = Schedule.isSchedule(options)
1016
- const mode = isOnlySchedule ? "both" : options.mode ?? "both"
1016
+ const retryOn = isOnlySchedule ? "errors-and-responses" : options.retryOn ?? "errors-and-responses"
1017
1017
  const schedule = isOnlySchedule ? options : options.schedule
1018
1018
  const passthroughSchedule = schedule && Schedule.passthrough(schedule)
1019
1019
  const times = isOnlySchedule ? undefined : options.times
1020
1020
  return transformResponse(
1021
1021
  self,
1022
1022
  flow(
1023
- mode === "errors-only" ? identity : Effect.repeat({
1023
+ retryOn === "errors-only" ? identity : Effect.repeat({
1024
1024
  schedule: passthroughSchedule!,
1025
1025
  times,
1026
1026
  while: isTransientResponse
1027
1027
  }),
1028
- mode === "response-only" ? identity : Effect.retry({
1028
+ retryOn === "response-only" ? identity : Effect.retry({
1029
1029
  while: isOnlySchedule || options.while === undefined
1030
1030
  ? isTransientError
1031
1031
  : Predicate.or(isTransientError, options.while),
@@ -61,12 +61,6 @@ export interface Options {
61
61
  * @since 4.0.0
62
62
  */
63
63
  export declare namespace Options {
64
- /**
65
- * @since 4.0.0
66
- * @category models
67
- */
68
- export interface NoBody extends Omit<Options, "method" | "url" | "body"> {}
69
-
70
64
  /**
71
65
  * @since 4.0.0
72
66
  * @category models
@@ -133,7 +127,7 @@ export const make = <M extends HttpMethod>(
133
127
  ) =>
134
128
  (
135
129
  url: string | URL,
136
- options?: (M extends "GET" | "HEAD" ? Options.NoBody : Options.NoUrl) | undefined
130
+ options?: Options.NoUrl | undefined
137
131
  ): HttpClientRequest =>
138
132
  modify(empty, {
139
133
  method,
@@ -145,7 +139,7 @@ export const make = <M extends HttpMethod>(
145
139
  * @since 4.0.0
146
140
  * @category constructors
147
141
  */
148
- export const get: (url: string | URL, options?: Options.NoBody) => HttpClientRequest = make("GET")
142
+ export const get: (url: string | URL, options?: Options.NoUrl) => HttpClientRequest = make("GET")
149
143
 
150
144
  /**
151
145
  * @since 4.0.0
@@ -165,23 +159,33 @@ export const patch: (url: string | URL, options?: Options.NoUrl) => HttpClientRe
165
159
  */
166
160
  export const put: (url: string | URL, options?: Options.NoUrl) => HttpClientRequest = make("PUT")
167
161
 
162
+ const del: (url: string | URL, options?: Options.NoUrl) => HttpClientRequest = make("DELETE")
163
+
164
+ export {
165
+ /**
166
+ * @since 4.0.0
167
+ * @category constructors
168
+ */
169
+ del as delete
170
+ }
171
+
168
172
  /**
169
173
  * @since 4.0.0
170
174
  * @category constructors
171
175
  */
172
- export const del: (url: string | URL, options?: Options.NoUrl) => HttpClientRequest = make("DELETE")
176
+ export const head: (url: string | URL, options?: Options.NoUrl) => HttpClientRequest = make("HEAD")
173
177
 
174
178
  /**
175
179
  * @since 4.0.0
176
180
  * @category constructors
177
181
  */
178
- export const head: (url: string | URL, options?: Options.NoBody) => HttpClientRequest = make("HEAD")
182
+ export const options: (url: string | URL, options?: Options.NoUrl) => HttpClientRequest = make("OPTIONS")
179
183
 
180
184
  /**
181
185
  * @since 4.0.0
182
186
  * @category constructors
183
187
  */
184
- export const options: (url: string | URL, options?: Options.NoUrl) => HttpClientRequest = make("OPTIONS")
188
+ export const trace: (url: string | URL, options?: Options.NoUrl) => HttpClientRequest = make("TRACE")
185
189
 
186
190
  /**
187
191
  * @since 4.0.0
@@ -661,7 +665,7 @@ export const setBody: {
661
665
  (self: HttpClientRequest, body: HttpBody.HttpBody): HttpClientRequest
662
666
  } = dual(2, (self: HttpClientRequest, body: HttpBody.HttpBody): HttpClientRequest => {
663
667
  let headers = self.headers
664
- if (body._tag === "Empty") {
668
+ if (body._tag === "Empty" || body._tag === "FormData") {
665
669
  headers = Headers.remove(Headers.remove(headers, "Content-Type"), "Content-length")
666
670
  } else {
667
671
  if (body.contentType) {
@@ -826,7 +830,28 @@ export const bodyFormData: {
826
830
  * @category combinators
827
831
  */
828
832
  (self: HttpClientRequest, body: FormData): HttpClientRequest
829
- } = dual(2, (self: HttpClientRequest, body: FormData): HttpClientRequest => setBody(self, HttpBody.makeFormData(body)))
833
+ } = dual(2, (self: HttpClientRequest, body: FormData): HttpClientRequest => setBody(self, HttpBody.formData(body)))
834
+
835
+ /**
836
+ * @since 4.0.0
837
+ * @category combinators
838
+ */
839
+ export const bodyFormDataRecord: {
840
+ /**
841
+ * @since 4.0.0
842
+ * @category combinators
843
+ */
844
+ (entries: HttpBody.FormDataInput): (self: HttpClientRequest) => HttpClientRequest
845
+ /**
846
+ * @since 4.0.0
847
+ * @category combinators
848
+ */
849
+ (self: HttpClientRequest, entries: HttpBody.FormDataInput): HttpClientRequest
850
+ } = dual(
851
+ 2,
852
+ (self: HttpClientRequest, entries: HttpBody.FormDataInput): HttpClientRequest =>
853
+ setBody(self, HttpBody.formDataRecord(entries))
854
+ )
830
855
 
831
856
  /**
832
857
  * @since 4.0.0
@@ -6,7 +6,7 @@ import * as Effect from "../../Effect.ts"
6
6
  import * as Exit from "../../Exit.ts"
7
7
  import * as Fiber from "../../Fiber.ts"
8
8
  import { dual } from "../../Function.ts"
9
- import { effectIsExit } from "../../internal/effect.ts"
9
+ import { reportCauseUnsafe } from "../../internal/effect.ts"
10
10
  import * as Layer from "../../Layer.ts"
11
11
  import * as Scope from "../../Scope.ts"
12
12
  import * as ServiceMap from "../../ServiceMap.ts"
@@ -32,33 +32,10 @@ export const toHandled = <E, R, EH, RH>(
32
32
  ) => Effect.Effect<unknown, EH, RH>,
33
33
  middleware?: HttpMiddleware | undefined
34
34
  ): Effect.Effect<void, never, Exclude<R | RH | HttpServerRequest, Scope.Scope>> => {
35
- const responded = Effect.flatMap(self, (response) => {
36
- const fiber = Fiber.getCurrent()!
37
- const request = ServiceMap.getUnsafe(fiber.services, HttpServerRequest)
38
- const handler = fiber.getRef(PreResponseHandlers)
39
- if (handler === undefined) {
40
- ;(request as any)[handledSymbol] = true
41
- const eff = handleResponse(request, response)
42
- if (effectIsExit(eff)) {
43
- return eff._tag === "Success" ? Effect.succeed(response) : handleCause(eff.cause)
44
- }
45
- return Effect.matchCauseEffect(eff, {
46
- onFailure: handleCause,
47
- onSuccess: () => Effect.succeed(response)
48
- })
49
- }
50
- return Effect.flatMapEager(handler(request, response), (sentResponse) => {
51
- ;(request as any)[handledSymbol] = true
52
- return Effect.matchCauseEffectEager(handleResponse(request, sentResponse), {
53
- onSuccess: () => Effect.succeed(response),
54
- onFailure: handleCause
55
- })
56
- })
57
- })
58
-
59
35
  const handleCause = (cause: Cause<E | EH | HttpServerError>) =>
60
36
  Effect.flatMapEager(causeResponse(cause), ([response, cause]) => {
61
37
  const fiber = Fiber.getCurrent()!
38
+ reportCauseUnsafe(fiber, cause)
62
39
  const request = ServiceMap.getUnsafe(fiber.services, HttpServerRequest)
63
40
  const handler = fiber.getRef(PreResponseHandlers)
64
41
  const cont = cause.reasons.length === 0 ? Effect.succeed(response) : Effect.failCause(cause)
@@ -79,6 +56,23 @@ export const toHandled = <E, R, EH, RH>(
79
56
  )
80
57
  })
81
58
 
59
+ const responded = Effect.matchCauseEffect(self, {
60
+ onSuccess: (response) => {
61
+ const fiber = Fiber.getCurrent()!
62
+ const request = ServiceMap.getUnsafe(fiber.services, HttpServerRequest)
63
+ const handler = fiber.getRef(PreResponseHandlers)
64
+ if (handler === undefined) {
65
+ ;(request as any)[handledSymbol] = true
66
+ return Effect.mapEager(handleResponse(request, response), () => response)
67
+ }
68
+ return Effect.flatMapEager(handler(request, response), (sentResponse) => {
69
+ ;(request as any)[handledSymbol] = true
70
+ return Effect.mapEager(handleResponse(request, sentResponse), () => response)
71
+ })
72
+ },
73
+ onFailure: handleCause
74
+ })
75
+
82
76
  const withMiddleware: Effect.Effect<
83
77
  unknown,
84
78
  E | EH | HttpServerError,
@@ -88,13 +82,16 @@ export const toHandled = <E, R, EH, RH>(
88
82
  Effect.matchCauseEffect(tracer(middleware(responded)), {
89
83
  onFailure(cause): Effect.Effect<void, EH, RH> {
90
84
  const fiber = Fiber.getCurrent()!
85
+ reportCauseUnsafe(fiber, cause)
91
86
  const request = ServiceMap.getUnsafe(fiber.services, HttpServerRequest)
92
- if (handledSymbol in request) {
93
- return Effect.void
94
- }
87
+ if (handledSymbol in request) return Effect.void
95
88
  return Effect.matchCauseEffectEager(causeResponse(cause), {
96
- onFailure: (_cause) => handleResponse(request, Response.empty({ status: 500 })),
97
- onSuccess: ([response]) => handleResponse(request, response)
89
+ onFailure(_) {
90
+ return handleResponse(request, Response.empty({ status: 500 }))
91
+ },
92
+ onSuccess([response]) {
93
+ return handleResponse(request, response)
94
+ }
98
95
  })
99
96
  },
100
97
  onSuccess(response): Effect.Effect<void, EH, RH> {