effect 4.0.0-beta.2 → 4.0.0-beta.21

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 (881) hide show
  1. package/dist/Array.d.ts +127 -299
  2. package/dist/Array.d.ts.map +1 -1
  3. package/dist/Array.js +102 -62
  4. package/dist/Array.js.map +1 -1
  5. package/dist/Cache.d.ts +2 -2
  6. package/dist/Cache.d.ts.map +1 -1
  7. package/dist/Cache.js +6 -5
  8. package/dist/Cache.js.map +1 -1
  9. package/dist/Cause.d.ts +1 -1
  10. package/dist/Cause.d.ts.map +1 -1
  11. package/dist/Channel.d.ts +116 -30
  12. package/dist/Channel.d.ts.map +1 -1
  13. package/dist/Channel.js +82 -37
  14. package/dist/Channel.js.map +1 -1
  15. package/dist/Chunk.d.ts +54 -247
  16. package/dist/Chunk.d.ts.map +1 -1
  17. package/dist/Chunk.js +36 -67
  18. package/dist/Chunk.js.map +1 -1
  19. package/dist/Combiner.d.ts +280 -13
  20. package/dist/Combiner.d.ts.map +1 -1
  21. package/dist/Combiner.js +198 -7
  22. package/dist/Combiner.js.map +1 -1
  23. package/dist/Config.d.ts +165 -9
  24. package/dist/Config.d.ts.map +1 -1
  25. package/dist/Config.js +62 -7
  26. package/dist/Config.js.map +1 -1
  27. package/dist/ConfigProvider.d.ts +1 -1
  28. package/dist/Cron.d.ts +1 -1
  29. package/dist/Data.d.ts +534 -365
  30. package/dist/Data.d.ts.map +1 -1
  31. package/dist/Data.js +132 -79
  32. package/dist/Data.js.map +1 -1
  33. package/dist/DateTime.d.ts +23 -161
  34. package/dist/DateTime.d.ts.map +1 -1
  35. package/dist/DateTime.js +6 -51
  36. package/dist/DateTime.js.map +1 -1
  37. package/dist/Duration.d.ts +12 -12
  38. package/dist/Duration.d.ts.map +1 -1
  39. package/dist/Duration.js +12 -12
  40. package/dist/Duration.js.map +1 -1
  41. package/dist/Effect.d.ts +829 -692
  42. package/dist/Effect.d.ts.map +1 -1
  43. package/dist/Effect.js +263 -251
  44. package/dist/Effect.js.map +1 -1
  45. package/dist/Encoding.d.ts +194 -0
  46. package/dist/Encoding.d.ts.map +1 -0
  47. package/dist/Encoding.js +352 -0
  48. package/dist/Encoding.js.map +1 -0
  49. package/dist/Equal.d.ts +276 -109
  50. package/dist/Equal.d.ts.map +1 -1
  51. package/dist/Equal.js +124 -48
  52. package/dist/Equal.js.map +1 -1
  53. package/dist/ErrorReporter.d.ts +376 -0
  54. package/dist/ErrorReporter.d.ts.map +1 -0
  55. package/dist/ErrorReporter.js +246 -0
  56. package/dist/ErrorReporter.js.map +1 -0
  57. package/dist/Fiber.d.ts +2 -2
  58. package/dist/Fiber.d.ts.map +1 -1
  59. package/dist/Fiber.js.map +1 -1
  60. package/dist/FileSystem.d.ts +1 -1
  61. package/dist/FileSystem.d.ts.map +1 -1
  62. package/dist/FileSystem.js +5 -5
  63. package/dist/FileSystem.js.map +1 -1
  64. package/dist/Filter.d.ts +30 -34
  65. package/dist/Filter.d.ts.map +1 -1
  66. package/dist/Filter.js +15 -13
  67. package/dist/Filter.js.map +1 -1
  68. package/dist/Formatter.d.ts +131 -47
  69. package/dist/Formatter.d.ts.map +1 -1
  70. package/dist/Formatter.js +229 -51
  71. package/dist/Formatter.js.map +1 -1
  72. package/dist/Graph.d.ts +1 -1
  73. package/dist/Graph.d.ts.map +1 -1
  74. package/dist/Graph.js +5 -8
  75. package/dist/Graph.js.map +1 -1
  76. package/dist/HashMap.d.ts +15 -14
  77. package/dist/HashMap.d.ts.map +1 -1
  78. package/dist/HashMap.js +4 -4
  79. package/dist/HashMap.js.map +1 -1
  80. package/dist/Iterable.d.ts +40 -39
  81. package/dist/Iterable.d.ts.map +1 -1
  82. package/dist/Iterable.js +94 -22
  83. package/dist/Iterable.js.map +1 -1
  84. package/dist/JsonSchema.d.ts +299 -10
  85. package/dist/JsonSchema.d.ts.map +1 -1
  86. package/dist/JsonSchema.js +323 -4
  87. package/dist/JsonSchema.js.map +1 -1
  88. package/dist/Latch.d.ts +109 -0
  89. package/dist/Latch.d.ts.map +1 -0
  90. package/dist/Latch.js +72 -0
  91. package/dist/Latch.js.map +1 -0
  92. package/dist/Layer.d.ts +9 -9
  93. package/dist/Layer.d.ts.map +1 -1
  94. package/dist/Layer.js.map +1 -1
  95. package/dist/LayerMap.d.ts +4 -4
  96. package/dist/LayerMap.d.ts.map +1 -1
  97. package/dist/LogLevel.d.ts +32 -0
  98. package/dist/LogLevel.d.ts.map +1 -1
  99. package/dist/LogLevel.js +28 -100
  100. package/dist/LogLevel.js.map +1 -1
  101. package/dist/Logger.d.ts +29 -95
  102. package/dist/Logger.d.ts.map +1 -1
  103. package/dist/Logger.js +2 -3
  104. package/dist/Logger.js.map +1 -1
  105. package/dist/ManagedRuntime.d.ts +1 -1
  106. package/dist/ManagedRuntime.js +1 -1
  107. package/dist/Metric.d.ts +2 -2
  108. package/dist/Metric.d.ts.map +1 -1
  109. package/dist/Metric.js +1 -1
  110. package/dist/Metric.js.map +1 -1
  111. package/dist/Optic.d.ts +947 -18
  112. package/dist/Optic.d.ts.map +1 -1
  113. package/dist/Optic.js +454 -5
  114. package/dist/Optic.js.map +1 -1
  115. package/dist/Option.d.ts +22 -15
  116. package/dist/Option.d.ts.map +1 -1
  117. package/dist/Option.js +14 -7
  118. package/dist/Option.js.map +1 -1
  119. package/dist/Pipeable.d.ts +17 -0
  120. package/dist/Pipeable.d.ts.map +1 -1
  121. package/dist/Pipeable.js +19 -1
  122. package/dist/Pipeable.js.map +1 -1
  123. package/dist/PlatformError.d.ts +10 -9
  124. package/dist/PlatformError.d.ts.map +1 -1
  125. package/dist/PlatformError.js +2 -2
  126. package/dist/PlatformError.js.map +1 -1
  127. package/dist/Pool.d.ts +6 -4
  128. package/dist/Pool.d.ts.map +1 -1
  129. package/dist/Pool.js +7 -5
  130. package/dist/Pool.js.map +1 -1
  131. package/dist/PubSub.d.ts +3 -2
  132. package/dist/PubSub.d.ts.map +1 -1
  133. package/dist/PubSub.js +3 -2
  134. package/dist/PubSub.js.map +1 -1
  135. package/dist/Pull.d.ts.map +1 -1
  136. package/dist/Pull.js +1 -1
  137. package/dist/Pull.js.map +1 -1
  138. package/dist/Queue.d.ts.map +1 -1
  139. package/dist/Queue.js +0 -1
  140. package/dist/Queue.js.map +1 -1
  141. package/dist/Random.d.ts +35 -1
  142. package/dist/Random.d.ts.map +1 -1
  143. package/dist/Random.js +46 -12
  144. package/dist/Random.js.map +1 -1
  145. package/dist/RcMap.d.ts +2 -2
  146. package/dist/RcMap.d.ts.map +1 -1
  147. package/dist/RcMap.js +1 -1
  148. package/dist/RcMap.js.map +1 -1
  149. package/dist/RcRef.d.ts +1 -1
  150. package/dist/RcRef.d.ts.map +1 -1
  151. package/dist/Record.d.ts +24 -120
  152. package/dist/Record.d.ts.map +1 -1
  153. package/dist/Record.js +21 -41
  154. package/dist/Record.js.map +1 -1
  155. package/dist/Reducer.d.ts +166 -7
  156. package/dist/Reducer.d.ts.map +1 -1
  157. package/dist/Reducer.js +135 -1
  158. package/dist/Reducer.js.map +1 -1
  159. package/dist/References.d.ts +3 -3
  160. package/dist/References.d.ts.map +1 -1
  161. package/dist/Request.d.ts +1 -1
  162. package/dist/Request.d.ts.map +1 -1
  163. package/dist/Request.js +2 -1
  164. package/dist/Request.js.map +1 -1
  165. package/dist/RequestResolver.d.ts +6 -26
  166. package/dist/RequestResolver.d.ts.map +1 -1
  167. package/dist/RequestResolver.js +0 -20
  168. package/dist/RequestResolver.js.map +1 -1
  169. package/dist/Result.d.ts +12 -0
  170. package/dist/Result.d.ts.map +1 -1
  171. package/dist/Result.js +12 -0
  172. package/dist/Result.js.map +1 -1
  173. package/dist/Schedule.d.ts +47 -20
  174. package/dist/Schedule.d.ts.map +1 -1
  175. package/dist/Schedule.js +94 -34
  176. package/dist/Schedule.js.map +1 -1
  177. package/dist/Schema.d.ts +266 -50
  178. package/dist/Schema.d.ts.map +1 -1
  179. package/dist/Schema.js +426 -74
  180. package/dist/Schema.js.map +1 -1
  181. package/dist/SchemaAST.d.ts.map +1 -1
  182. package/dist/SchemaAST.js +7 -6
  183. package/dist/SchemaAST.js.map +1 -1
  184. package/dist/SchemaGetter.d.ts +2 -2
  185. package/dist/SchemaGetter.d.ts.map +1 -1
  186. package/dist/SchemaGetter.js +12 -14
  187. package/dist/SchemaGetter.js.map +1 -1
  188. package/dist/SchemaParser.d.ts +5 -0
  189. package/dist/SchemaParser.d.ts.map +1 -1
  190. package/dist/SchemaParser.js +10 -0
  191. package/dist/SchemaParser.js.map +1 -1
  192. package/dist/SchemaRepresentation.d.ts +44 -43
  193. package/dist/SchemaRepresentation.d.ts.map +1 -1
  194. package/dist/SchemaRepresentation.js +43 -24
  195. package/dist/SchemaRepresentation.js.map +1 -1
  196. package/dist/SchemaTransformation.d.ts +107 -3
  197. package/dist/SchemaTransformation.d.ts.map +1 -1
  198. package/dist/SchemaTransformation.js +159 -4
  199. package/dist/SchemaTransformation.js.map +1 -1
  200. package/dist/ScopedCache.d.ts +2 -2
  201. package/dist/ScopedCache.d.ts.map +1 -1
  202. package/dist/ScopedCache.js +1 -1
  203. package/dist/ScopedCache.js.map +1 -1
  204. package/dist/Semaphore.d.ts +211 -0
  205. package/dist/Semaphore.d.ts.map +1 -0
  206. package/dist/{PartitionedSemaphore.js → Semaphore.js} +97 -13
  207. package/dist/Semaphore.js.map +1 -0
  208. package/dist/ServiceMap.d.ts +39 -30
  209. package/dist/ServiceMap.d.ts.map +1 -1
  210. package/dist/ServiceMap.js +3 -3
  211. package/dist/ServiceMap.js.map +1 -1
  212. package/dist/Sink.d.ts +13 -13
  213. package/dist/Sink.d.ts.map +1 -1
  214. package/dist/Sink.js +53 -6
  215. package/dist/Sink.js.map +1 -1
  216. package/dist/Stream.d.ts +235 -423
  217. package/dist/Stream.d.ts.map +1 -1
  218. package/dist/Stream.js +124 -77
  219. package/dist/Stream.js.map +1 -1
  220. package/dist/Struct.d.ts +16 -0
  221. package/dist/Struct.d.ts.map +1 -1
  222. package/dist/Struct.js +22 -0
  223. package/dist/Struct.js.map +1 -1
  224. package/dist/SubscriptionRef.d.ts +2 -1
  225. package/dist/SubscriptionRef.d.ts.map +1 -1
  226. package/dist/SubscriptionRef.js +2 -1
  227. package/dist/SubscriptionRef.js.map +1 -1
  228. package/dist/SynchronizedRef.d.ts +2 -1
  229. package/dist/SynchronizedRef.d.ts.map +1 -1
  230. package/dist/SynchronizedRef.js +2 -1
  231. package/dist/SynchronizedRef.js.map +1 -1
  232. package/dist/Trie.d.ts +18 -17
  233. package/dist/Trie.d.ts.map +1 -1
  234. package/dist/Trie.js +5 -5
  235. package/dist/Trie.js.map +1 -1
  236. package/dist/TxChunk.d.ts +37 -37
  237. package/dist/TxChunk.d.ts.map +1 -1
  238. package/dist/TxChunk.js +3 -3
  239. package/dist/TxChunk.js.map +1 -1
  240. package/dist/TxDeferred.d.ts +328 -0
  241. package/dist/TxDeferred.d.ts.map +1 -0
  242. package/dist/TxDeferred.js +196 -0
  243. package/dist/TxDeferred.js.map +1 -0
  244. package/dist/TxHashMap.d.ts +84 -83
  245. package/dist/TxHashMap.d.ts.map +1 -1
  246. package/dist/TxHashMap.js +24 -24
  247. package/dist/TxHashMap.js.map +1 -1
  248. package/dist/TxHashSet.d.ts +35 -35
  249. package/dist/TxHashSet.d.ts.map +1 -1
  250. package/dist/TxHashSet.js +14 -14
  251. package/dist/TxHashSet.js.map +1 -1
  252. package/dist/TxPriorityQueue.d.ts +609 -0
  253. package/dist/TxPriorityQueue.d.ts.map +1 -0
  254. package/dist/TxPriorityQueue.js +415 -0
  255. package/dist/TxPriorityQueue.js.map +1 -0
  256. package/dist/TxPubSub.d.ts +585 -0
  257. package/dist/TxPubSub.d.ts.map +1 -0
  258. package/dist/TxPubSub.js +521 -0
  259. package/dist/TxPubSub.js.map +1 -0
  260. package/dist/TxQueue.d.ts +32 -32
  261. package/dist/TxQueue.d.ts.map +1 -1
  262. package/dist/TxQueue.js +26 -26
  263. package/dist/TxQueue.js.map +1 -1
  264. package/dist/TxReentrantLock.d.ts +523 -0
  265. package/dist/TxReentrantLock.d.ts.map +1 -0
  266. package/dist/TxReentrantLock.js +504 -0
  267. package/dist/TxReentrantLock.js.map +1 -0
  268. package/dist/TxRef.d.ts +34 -34
  269. package/dist/TxRef.d.ts.map +1 -1
  270. package/dist/TxRef.js +21 -14
  271. package/dist/TxRef.js.map +1 -1
  272. package/dist/TxSemaphore.d.ts +8 -8
  273. package/dist/TxSemaphore.d.ts.map +1 -1
  274. package/dist/TxSemaphore.js +7 -7
  275. package/dist/TxSemaphore.js.map +1 -1
  276. package/dist/TxSubscriptionRef.d.ts +508 -0
  277. package/dist/TxSubscriptionRef.d.ts.map +1 -0
  278. package/dist/TxSubscriptionRef.js +293 -0
  279. package/dist/TxSubscriptionRef.js.map +1 -0
  280. package/dist/Types.d.ts +84 -6
  281. package/dist/Types.d.ts.map +1 -1
  282. package/dist/index.d.ts +591 -20
  283. package/dist/index.d.ts.map +1 -1
  284. package/dist/index.js +591 -20
  285. package/dist/index.js.map +1 -1
  286. package/dist/internal/core.js +11 -3
  287. package/dist/internal/core.js.map +1 -1
  288. package/dist/internal/dateTime.js +3 -11
  289. package/dist/internal/dateTime.js.map +1 -1
  290. package/dist/internal/effect.js +263 -99
  291. package/dist/internal/effect.js.map +1 -1
  292. package/dist/internal/hashMap.js +5 -4
  293. package/dist/internal/hashMap.js.map +1 -1
  294. package/dist/internal/random.d.ts +2 -0
  295. package/dist/internal/random.d.ts.map +1 -0
  296. package/dist/internal/random.js +13 -0
  297. package/dist/internal/random.js.map +1 -0
  298. package/dist/internal/rcRef.js +3 -2
  299. package/dist/internal/rcRef.js.map +1 -1
  300. package/dist/internal/request.js +2 -2
  301. package/dist/internal/request.js.map +1 -1
  302. package/dist/internal/schema/annotations.js +2 -0
  303. package/dist/internal/schema/annotations.js.map +1 -1
  304. package/dist/internal/schema/schema.js +1 -0
  305. package/dist/internal/schema/schema.js.map +1 -1
  306. package/dist/internal/trie.js +5 -4
  307. package/dist/internal/trie.js.map +1 -1
  308. package/dist/testing/TestClock.d.ts +7 -6
  309. package/dist/testing/TestClock.d.ts.map +1 -1
  310. package/dist/testing/TestClock.js +6 -4
  311. package/dist/testing/TestClock.js.map +1 -1
  312. package/dist/testing/TestSchema.d.ts +8 -8
  313. package/dist/testing/TestSchema.d.ts.map +1 -1
  314. package/dist/testing/TestSchema.js.map +1 -1
  315. package/dist/unstable/ai/AiError.d.ts +128 -48
  316. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  317. package/dist/unstable/ai/AiError.js +11 -12
  318. package/dist/unstable/ai/AiError.js.map +1 -1
  319. package/dist/unstable/ai/Chat.d.ts +3 -3
  320. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  321. package/dist/unstable/ai/Chat.js +4 -3
  322. package/dist/unstable/ai/Chat.js.map +1 -1
  323. package/dist/unstable/ai/LanguageModel.d.ts +4 -2
  324. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  325. package/dist/unstable/ai/LanguageModel.js +86 -14
  326. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  327. package/dist/unstable/ai/McpSchema.d.ts +163 -87
  328. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  329. package/dist/unstable/ai/McpSchema.js +49 -12
  330. package/dist/unstable/ai/McpSchema.js.map +1 -1
  331. package/dist/unstable/ai/McpServer.d.ts +1 -1
  332. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  333. package/dist/unstable/ai/McpServer.js +35 -7
  334. package/dist/unstable/ai/McpServer.js.map +1 -1
  335. package/dist/unstable/ai/Model.d.ts +25 -7
  336. package/dist/unstable/ai/Model.d.ts.map +1 -1
  337. package/dist/unstable/ai/Model.js +22 -6
  338. package/dist/unstable/ai/Model.js.map +1 -1
  339. package/dist/unstable/ai/Prompt.d.ts +20 -20
  340. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  341. package/dist/unstable/ai/Response.d.ts +26 -26
  342. package/dist/unstable/ai/Response.d.ts.map +1 -1
  343. package/dist/unstable/ai/Response.js +1 -1
  344. package/dist/unstable/ai/Response.js.map +1 -1
  345. package/dist/unstable/ai/Tool.d.ts +19 -3
  346. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  347. package/dist/unstable/ai/Tool.js +14 -9
  348. package/dist/unstable/ai/Tool.js.map +1 -1
  349. package/dist/unstable/ai/index.d.ts +1 -1
  350. package/dist/unstable/ai/index.js +1 -1
  351. package/dist/unstable/cli/CliError.d.ts +5 -5
  352. package/dist/unstable/cli/CliOutput.js +59 -6
  353. package/dist/unstable/cli/CliOutput.js.map +1 -1
  354. package/dist/unstable/cli/Command.d.ts +276 -19
  355. package/dist/unstable/cli/Command.d.ts.map +1 -1
  356. package/dist/unstable/cli/Command.js +234 -36
  357. package/dist/unstable/cli/Command.js.map +1 -1
  358. package/dist/unstable/cli/GlobalFlag.d.ts +125 -0
  359. package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -0
  360. package/dist/unstable/cli/GlobalFlag.js +118 -0
  361. package/dist/unstable/cli/GlobalFlag.js.map +1 -0
  362. package/dist/unstable/cli/HelpDoc.d.ts +70 -2
  363. package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
  364. package/dist/unstable/cli/index.d.ts +4 -0
  365. package/dist/unstable/cli/index.d.ts.map +1 -1
  366. package/dist/unstable/cli/index.js +4 -0
  367. package/dist/unstable/cli/index.js.map +1 -1
  368. package/dist/unstable/cli/internal/command.d.ts +17 -8
  369. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  370. package/dist/unstable/cli/internal/command.js +32 -23
  371. package/dist/unstable/cli/internal/command.js.map +1 -1
  372. package/dist/unstable/cli/internal/completions/CommandDescriptor.js +7 -2
  373. package/dist/unstable/cli/internal/completions/CommandDescriptor.js.map +1 -1
  374. package/dist/unstable/cli/internal/help.d.ts +33 -0
  375. package/dist/unstable/cli/internal/help.d.ts.map +1 -0
  376. package/dist/unstable/cli/internal/help.js +107 -0
  377. package/dist/unstable/cli/internal/help.js.map +1 -0
  378. package/dist/unstable/cli/internal/parser.js +29 -36
  379. package/dist/unstable/cli/internal/parser.js.map +1 -1
  380. package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
  381. package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
  382. package/dist/unstable/cluster/ClusterCron.js +1 -1
  383. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  384. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  385. package/dist/unstable/cluster/ClusterWorkflowEngine.js +4 -3
  386. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  387. package/dist/unstable/cluster/Entity.d.ts +7 -6
  388. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  389. package/dist/unstable/cluster/Entity.js.map +1 -1
  390. package/dist/unstable/cluster/EntityResource.d.ts +2 -2
  391. package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
  392. package/dist/unstable/cluster/Envelope.d.ts +1 -1
  393. package/dist/unstable/cluster/K8sHttpClient.d.ts +1 -1
  394. package/dist/unstable/cluster/K8sHttpClient.js +4 -4
  395. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  396. package/dist/unstable/cluster/Message.d.ts +10 -10
  397. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  398. package/dist/unstable/cluster/MessageStorage.js +2 -1
  399. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  400. package/dist/unstable/cluster/Reply.d.ts +6 -6
  401. package/dist/unstable/cluster/Runner.d.ts +1 -1
  402. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  403. package/dist/unstable/cluster/Runners.js +4 -3
  404. package/dist/unstable/cluster/Runners.js.map +1 -1
  405. package/dist/unstable/cluster/Sharding.d.ts +2 -2
  406. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  407. package/dist/unstable/cluster/Sharding.js +9 -7
  408. package/dist/unstable/cluster/Sharding.js.map +1 -1
  409. package/dist/unstable/cluster/ShardingConfig.d.ts +21 -21
  410. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  411. package/dist/unstable/cluster/ShardingConfig.js +20 -20
  412. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  413. package/dist/unstable/cluster/SqlRunnerStorage.js +1 -1
  414. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  415. package/dist/unstable/cluster/internal/entityManager.js +5 -4
  416. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  417. package/dist/unstable/cluster/internal/entityReaper.js +2 -1
  418. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  419. package/dist/unstable/cluster/internal/resourceRef.js +2 -1
  420. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  421. package/dist/unstable/devtools/DevToolsSchema.d.ts +36 -36
  422. package/dist/unstable/encoding/Msgpack.d.ts +1 -1
  423. package/dist/unstable/encoding/Ndjson.d.ts +1 -1
  424. package/dist/unstable/encoding/Sse.d.ts +4 -4
  425. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  426. package/dist/unstable/encoding/Sse.js +1 -1
  427. package/dist/unstable/encoding/Sse.js.map +1 -1
  428. package/dist/unstable/eventlog/EventJournal.d.ts +2 -2
  429. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  430. package/dist/unstable/eventlog/EventLog.js +2 -1
  431. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  432. package/dist/unstable/eventlog/EventLogRemote.d.ts +6 -6
  433. package/dist/unstable/http/Cookies.d.ts +3 -3
  434. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  435. package/dist/unstable/http/Cookies.js +2 -2
  436. package/dist/unstable/http/Cookies.js.map +1 -1
  437. package/dist/unstable/http/Headers.d.ts.map +1 -1
  438. package/dist/unstable/http/Headers.js +27 -10
  439. package/dist/unstable/http/Headers.js.map +1 -1
  440. package/dist/unstable/http/HttpBody.d.ts +17 -2
  441. package/dist/unstable/http/HttpBody.d.ts.map +1 -1
  442. package/dist/unstable/http/HttpBody.js +28 -1
  443. package/dist/unstable/http/HttpBody.js.map +1 -1
  444. package/dist/unstable/http/HttpClient.d.ts +37 -13
  445. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  446. package/dist/unstable/http/HttpClient.js +4 -4
  447. package/dist/unstable/http/HttpClient.js.map +1 -1
  448. package/dist/unstable/http/HttpClientError.d.ts +7 -7
  449. package/dist/unstable/http/HttpClientRequest.d.ts +27 -11
  450. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  451. package/dist/unstable/http/HttpClientRequest.js +15 -3
  452. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  453. package/dist/unstable/http/HttpEffect.d.ts +3 -8
  454. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  455. package/dist/unstable/http/HttpEffect.js +42 -56
  456. package/dist/unstable/http/HttpEffect.js.map +1 -1
  457. package/dist/unstable/http/HttpMethod.d.ts +4 -4
  458. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  459. package/dist/unstable/http/HttpMethod.js +3 -3
  460. package/dist/unstable/http/HttpMethod.js.map +1 -1
  461. package/dist/unstable/http/HttpMiddleware.d.ts +1 -6
  462. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  463. package/dist/unstable/http/HttpMiddleware.js +8 -17
  464. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  465. package/dist/unstable/http/HttpServerError.d.ts +20 -33
  466. package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
  467. package/dist/unstable/http/HttpServerError.js +37 -44
  468. package/dist/unstable/http/HttpServerError.js.map +1 -1
  469. package/dist/unstable/http/HttpServerRequest.d.ts +1 -1
  470. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  471. package/dist/unstable/http/HttpServerRespondable.d.ts +2 -2
  472. package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
  473. package/dist/unstable/http/HttpServerRespondable.js +5 -5
  474. package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
  475. package/dist/unstable/http/HttpServerResponse.d.ts +2 -1
  476. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  477. package/dist/unstable/http/HttpServerResponse.js +3 -1
  478. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  479. package/dist/unstable/http/Multipart.d.ts +3 -3
  480. package/dist/unstable/http/UrlParams.d.ts +14 -6
  481. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  482. package/dist/unstable/http/UrlParams.js +1 -1
  483. package/dist/unstable/http/UrlParams.js.map +1 -1
  484. package/dist/unstable/http/internal/preResponseHandler.d.ts +2 -0
  485. package/dist/unstable/http/internal/preResponseHandler.d.ts.map +1 -0
  486. package/dist/unstable/http/internal/preResponseHandler.js +10 -0
  487. package/dist/unstable/http/internal/preResponseHandler.js.map +1 -0
  488. package/dist/unstable/httpapi/HttpApi.d.ts +3 -3
  489. package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
  490. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  491. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +11 -5
  492. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  493. package/dist/unstable/httpapi/HttpApiBuilder.js +23 -12
  494. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  495. package/dist/unstable/httpapi/HttpApiClient.d.ts +7 -2
  496. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  497. package/dist/unstable/httpapi/HttpApiClient.js +3 -3
  498. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  499. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +31 -44
  500. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  501. package/dist/unstable/httpapi/HttpApiEndpoint.js +15 -24
  502. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  503. package/dist/unstable/httpapi/HttpApiError.d.ts +11 -0
  504. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  505. package/dist/unstable/httpapi/HttpApiError.js +29 -9
  506. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  507. package/dist/unstable/httpapi/HttpApiGroup.d.ts +3 -3
  508. package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
  509. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  510. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +4 -4
  511. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  512. package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
  513. package/dist/unstable/httpapi/HttpApiScalar.d.ts +6 -0
  514. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  515. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  516. package/dist/unstable/httpapi/HttpApiSecurity.d.ts +2 -2
  517. package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
  518. package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
  519. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  520. package/dist/unstable/httpapi/OpenApi.js +32 -21
  521. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  522. package/dist/unstable/observability/Otlp.d.ts +12 -12
  523. package/dist/unstable/observability/Otlp.d.ts.map +1 -1
  524. package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
  525. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  526. package/dist/unstable/observability/OtlpExporter.js +1 -1
  527. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  528. package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
  529. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  530. package/dist/unstable/observability/OtlpLogger.js +7 -4
  531. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  532. package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
  533. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  534. package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
  535. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  536. package/dist/unstable/persistence/KeyValueStore.d.ts +1 -1
  537. package/dist/unstable/persistence/KeyValueStore.js +6 -6
  538. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  539. package/dist/unstable/persistence/Persistable.d.ts +2 -2
  540. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  541. package/dist/unstable/persistence/PersistedCache.d.ts +6 -5
  542. package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
  543. package/dist/unstable/persistence/PersistedCache.js +2 -1
  544. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  545. package/dist/unstable/persistence/PersistedQueue.d.ts +12 -12
  546. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  547. package/dist/unstable/persistence/PersistedQueue.js +12 -11
  548. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  549. package/dist/unstable/persistence/Persistence.d.ts +1 -1
  550. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  551. package/dist/unstable/persistence/Persistence.js +2 -2
  552. package/dist/unstable/persistence/Persistence.js.map +1 -1
  553. package/dist/unstable/persistence/RateLimiter.d.ts +3 -3
  554. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  555. package/dist/unstable/persistence/RateLimiter.js +1 -1
  556. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  557. package/dist/unstable/process/ChildProcess.d.ts +5 -128
  558. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  559. package/dist/unstable/process/ChildProcess.js +1 -65
  560. package/dist/unstable/process/ChildProcess.js.map +1 -1
  561. package/dist/unstable/process/ChildProcessSpawner.d.ts +45 -7
  562. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  563. package/dist/unstable/process/ChildProcessSpawner.js +21 -1
  564. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  565. package/dist/unstable/reactivity/Atom.d.ts +10 -10
  566. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  567. package/dist/unstable/reactivity/Atom.js +16 -13
  568. package/dist/unstable/reactivity/Atom.js.map +1 -1
  569. package/dist/unstable/reactivity/AtomHttpApi.d.ts +8 -8
  570. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  571. package/dist/unstable/reactivity/AtomHttpApi.js +3 -3
  572. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  573. package/dist/unstable/reactivity/AtomRegistry.d.ts +6 -0
  574. package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
  575. package/dist/unstable/reactivity/AtomRegistry.js +24 -7
  576. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  577. package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
  578. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  579. package/dist/unstable/reactivity/AtomRpc.js +1 -1
  580. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  581. package/dist/unstable/reactivity/Hydration.d.ts +39 -0
  582. package/dist/unstable/reactivity/Hydration.d.ts.map +1 -0
  583. package/dist/unstable/reactivity/Hydration.js +76 -0
  584. package/dist/unstable/reactivity/Hydration.js.map +1 -0
  585. package/dist/unstable/reactivity/index.d.ts +4 -0
  586. package/dist/unstable/reactivity/index.d.ts.map +1 -1
  587. package/dist/unstable/reactivity/index.js +4 -0
  588. package/dist/unstable/reactivity/index.js.map +1 -1
  589. package/dist/unstable/rpc/Rpc.d.ts +4 -4
  590. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  591. package/dist/unstable/rpc/Rpc.js.map +1 -1
  592. package/dist/unstable/rpc/RpcClient.d.ts +5 -26
  593. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  594. package/dist/unstable/rpc/RpcClient.js +6 -13
  595. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  596. package/dist/unstable/rpc/RpcGroup.d.ts +2 -2
  597. package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
  598. package/dist/unstable/rpc/RpcGroup.js.map +1 -1
  599. package/dist/unstable/rpc/RpcMiddleware.d.ts +3 -3
  600. package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
  601. package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
  602. package/dist/unstable/rpc/RpcSchema.d.ts +13 -0
  603. package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
  604. package/dist/unstable/rpc/RpcSchema.js +14 -0
  605. package/dist/unstable/rpc/RpcSchema.js.map +1 -1
  606. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  607. package/dist/unstable/rpc/RpcSerialization.js +34 -9
  608. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  609. package/dist/unstable/rpc/RpcServer.d.ts +0 -7
  610. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  611. package/dist/unstable/rpc/RpcServer.js +15 -15
  612. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  613. package/dist/unstable/rpc/Utils.d.ts.map +1 -1
  614. package/dist/unstable/rpc/Utils.js +2 -1
  615. package/dist/unstable/rpc/Utils.js.map +1 -1
  616. package/dist/unstable/schema/Model.d.ts +1 -1
  617. package/dist/unstable/schema/Model.d.ts.map +1 -1
  618. package/dist/unstable/schema/VariantSchema.d.ts +3 -3
  619. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  620. package/dist/unstable/schema/VariantSchema.js +3 -3
  621. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  622. package/dist/unstable/socket/Socket.d.ts +4 -4
  623. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  624. package/dist/unstable/socket/Socket.js +6 -5
  625. package/dist/unstable/socket/Socket.js.map +1 -1
  626. package/dist/unstable/socket/SocketServer.d.ts +3 -3
  627. package/dist/unstable/sql/Migrator.d.ts +1 -1
  628. package/dist/unstable/sql/SqlClient.d.ts +1 -1
  629. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  630. package/dist/unstable/sql/SqlError.d.ts +14 -14
  631. package/dist/unstable/sql/SqlError.d.ts.map +1 -1
  632. package/dist/unstable/sql/SqlError.js +9 -3
  633. package/dist/unstable/sql/SqlError.js.map +1 -1
  634. package/dist/unstable/sql/SqlModel.d.ts +2 -2
  635. package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
  636. package/dist/unstable/sql/SqlModel.js +3 -3
  637. package/dist/unstable/sql/SqlModel.js.map +1 -1
  638. package/dist/unstable/sql/SqlSchema.d.ts +16 -5
  639. package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
  640. package/dist/unstable/sql/SqlSchema.js +17 -7
  641. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  642. package/dist/unstable/sql/Statement.js +0 -1
  643. package/dist/unstable/sql/Statement.js.map +1 -1
  644. package/dist/unstable/workers/Worker.d.ts.map +1 -1
  645. package/dist/unstable/workers/Worker.js +2 -1
  646. package/dist/unstable/workers/Worker.js.map +1 -1
  647. package/dist/unstable/workflow/DurableClock.d.ts +3 -3
  648. package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
  649. package/dist/unstable/workflow/DurableClock.js +3 -3
  650. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  651. package/dist/unstable/workflow/DurableDeferred.js +2 -2
  652. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  653. package/dist/unstable/workflow/Workflow.d.ts +3 -3
  654. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  655. package/dist/unstable/workflow/Workflow.js +1 -1
  656. package/dist/unstable/workflow/Workflow.js.map +1 -1
  657. package/dist/unstable/workflow/WorkflowEngine.d.ts +12 -1
  658. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  659. package/dist/unstable/workflow/WorkflowEngine.js +137 -1
  660. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  661. package/package.json +2 -2
  662. package/src/Array.ts +190 -342
  663. package/src/Cache.ts +9 -8
  664. package/src/Cause.ts +1 -1
  665. package/src/Channel.ts +554 -138
  666. package/src/Chunk.ts +81 -268
  667. package/src/Combiner.ts +280 -13
  668. package/src/Config.ts +183 -21
  669. package/src/Data.ts +538 -374
  670. package/src/DateTime.ts +24 -164
  671. package/src/Duration.ts +15 -15
  672. package/src/Effect.ts +991 -800
  673. package/src/Encoding.ts +879 -0
  674. package/src/Equal.ts +278 -111
  675. package/src/ErrorReporter.ts +459 -0
  676. package/src/Fiber.ts +9 -2
  677. package/src/FileSystem.ts +7 -8
  678. package/src/Filter.ts +48 -58
  679. package/src/Formatter.ts +253 -51
  680. package/src/Graph.ts +24 -11
  681. package/src/HashMap.ts +15 -14
  682. package/src/Iterable.ts +105 -50
  683. package/src/JsonSchema.ts +383 -10
  684. package/src/Latch.ts +112 -0
  685. package/src/Layer.ts +11 -15
  686. package/src/LayerMap.ts +5 -5
  687. package/src/LogLevel.ts +37 -0
  688. package/src/Logger.ts +33 -100
  689. package/src/ManagedRuntime.ts +1 -1
  690. package/src/Metric.ts +4 -4
  691. package/src/Optic.ts +948 -19
  692. package/src/Option.ts +30 -20
  693. package/src/Pipeable.ts +32 -1
  694. package/src/PlatformError.ts +5 -5
  695. package/src/Pool.ts +13 -11
  696. package/src/PubSub.ts +10 -9
  697. package/src/Pull.ts +1 -1
  698. package/src/Queue.ts +0 -1
  699. package/src/Random.ts +51 -14
  700. package/src/RcMap.ts +5 -5
  701. package/src/RcRef.ts +1 -1
  702. package/src/Record.ts +43 -152
  703. package/src/Reducer.ts +166 -7
  704. package/src/References.ts +4 -4
  705. package/src/Request.ts +3 -2
  706. package/src/RequestResolver.ts +9 -29
  707. package/src/Result.ts +13 -0
  708. package/src/Schedule.ts +318 -160
  709. package/src/Schema.ts +661 -116
  710. package/src/SchemaAST.ts +7 -6
  711. package/src/SchemaGetter.ts +12 -14
  712. package/src/SchemaParser.ts +11 -0
  713. package/src/SchemaRepresentation.ts +43 -24
  714. package/src/SchemaTransformation.ts +189 -4
  715. package/src/ScopedCache.ts +3 -3
  716. package/src/Semaphore.ts +356 -0
  717. package/src/ServiceMap.ts +47 -38
  718. package/src/Sink.ts +78 -26
  719. package/src/Stream.ts +566 -601
  720. package/src/Struct.ts +26 -0
  721. package/src/SubscriptionRef.ts +3 -2
  722. package/src/SynchronizedRef.ts +3 -2
  723. package/src/Trie.ts +18 -17
  724. package/src/TxChunk.ts +72 -53
  725. package/src/TxDeferred.ts +394 -0
  726. package/src/TxHashMap.ts +332 -285
  727. package/src/TxHashSet.ts +111 -116
  728. package/src/TxPriorityQueue.ts +767 -0
  729. package/src/TxPubSub.ts +789 -0
  730. package/src/TxQueue.ts +241 -251
  731. package/src/TxReentrantLock.ts +753 -0
  732. package/src/TxRef.ts +50 -38
  733. package/src/TxSemaphore.ts +29 -32
  734. package/src/TxSubscriptionRef.ts +639 -0
  735. package/src/Types.ts +78 -2
  736. package/src/index.ts +600 -21
  737. package/src/internal/core.ts +12 -5
  738. package/src/internal/dateTime.ts +9 -30
  739. package/src/internal/effect.ts +744 -265
  740. package/src/internal/hashMap.ts +9 -7
  741. package/src/internal/random.ts +20 -0
  742. package/src/internal/rcRef.ts +4 -3
  743. package/src/internal/request.ts +2 -2
  744. package/src/internal/schema/annotations.ts +2 -0
  745. package/src/internal/schema/schema.ts +1 -0
  746. package/src/internal/trie.ts +16 -9
  747. package/src/testing/TestClock.ts +13 -11
  748. package/src/testing/TestSchema.ts +10 -10
  749. package/src/unstable/ai/AiError.ts +97 -44
  750. package/src/unstable/ai/Chat.ts +12 -11
  751. package/src/unstable/ai/LanguageModel.ts +129 -25
  752. package/src/unstable/ai/McpSchema.ts +59 -13
  753. package/src/unstable/ai/McpServer.ts +48 -9
  754. package/src/unstable/ai/Model.ts +40 -9
  755. package/src/unstable/ai/Prompt.ts +37 -37
  756. package/src/unstable/ai/Response.ts +25 -25
  757. package/src/unstable/ai/Tool.ts +19 -13
  758. package/src/unstable/ai/index.ts +1 -1
  759. package/src/unstable/cli/CliOutput.ts +75 -6
  760. package/src/unstable/cli/Command.ts +501 -60
  761. package/src/unstable/cli/GlobalFlag.ts +243 -0
  762. package/src/unstable/cli/HelpDoc.ts +80 -2
  763. package/src/unstable/cli/index.ts +5 -0
  764. package/src/unstable/cli/internal/command.ts +50 -34
  765. package/src/unstable/cli/internal/completions/CommandDescriptor.ts +7 -2
  766. package/src/unstable/cli/internal/help.ts +146 -0
  767. package/src/unstable/cli/internal/parser.ts +33 -54
  768. package/src/unstable/cluster/ClusterCron.ts +2 -2
  769. package/src/unstable/cluster/ClusterWorkflowEngine.ts +5 -4
  770. package/src/unstable/cluster/Entity.ts +11 -10
  771. package/src/unstable/cluster/EntityResource.ts +4 -4
  772. package/src/unstable/cluster/Envelope.ts +1 -1
  773. package/src/unstable/cluster/K8sHttpClient.ts +5 -5
  774. package/src/unstable/cluster/MessageStorage.ts +3 -5
  775. package/src/unstable/cluster/Runners.ts +6 -5
  776. package/src/unstable/cluster/Sharding.ts +12 -10
  777. package/src/unstable/cluster/ShardingConfig.ts +30 -31
  778. package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
  779. package/src/unstable/cluster/internal/entityManager.ts +9 -8
  780. package/src/unstable/cluster/internal/entityReaper.ts +2 -1
  781. package/src/unstable/cluster/internal/resourceRef.ts +2 -1
  782. package/src/unstable/encoding/Sse.ts +3 -5
  783. package/src/unstable/eventlog/EventLog.ts +2 -1
  784. package/src/unstable/http/Cookies.ts +3 -3
  785. package/src/unstable/http/Headers.ts +28 -13
  786. package/src/unstable/http/HttpBody.ts +42 -1
  787. package/src/unstable/http/HttpClient.ts +58 -23
  788. package/src/unstable/http/HttpClientRequest.ts +38 -13
  789. package/src/unstable/http/HttpEffect.ts +46 -68
  790. package/src/unstable/http/HttpMethod.ts +16 -4
  791. package/src/unstable/http/HttpMiddleware.ts +9 -24
  792. package/src/unstable/http/HttpServerError.ts +42 -45
  793. package/src/unstable/http/HttpServerRequest.ts +1 -1
  794. package/src/unstable/http/HttpServerRespondable.ts +6 -6
  795. package/src/unstable/http/HttpServerResponse.ts +4 -2
  796. package/src/unstable/http/Multipart.ts +2 -2
  797. package/src/unstable/http/UrlParams.ts +20 -5
  798. package/src/unstable/http/internal/preResponseHandler.ts +15 -0
  799. package/src/unstable/httpapi/HttpApi.ts +5 -5
  800. package/src/unstable/httpapi/HttpApiBuilder.ts +77 -21
  801. package/src/unstable/httpapi/HttpApiClient.ts +14 -6
  802. package/src/unstable/httpapi/HttpApiEndpoint.ts +67 -83
  803. package/src/unstable/httpapi/HttpApiError.ts +30 -9
  804. package/src/unstable/httpapi/HttpApiGroup.ts +6 -6
  805. package/src/unstable/httpapi/HttpApiMiddleware.ts +4 -4
  806. package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
  807. package/src/unstable/httpapi/HttpApiSecurity.ts +3 -3
  808. package/src/unstable/httpapi/OpenApi.ts +41 -23
  809. package/src/unstable/observability/Otlp.ts +12 -12
  810. package/src/unstable/observability/OtlpExporter.ts +3 -3
  811. package/src/unstable/observability/OtlpLogger.ts +13 -9
  812. package/src/unstable/observability/OtlpMetrics.ts +4 -4
  813. package/src/unstable/observability/OtlpTracer.ts +4 -4
  814. package/src/unstable/persistence/KeyValueStore.ts +6 -6
  815. package/src/unstable/persistence/Persistable.ts +2 -2
  816. package/src/unstable/persistence/PersistedCache.ts +20 -9
  817. package/src/unstable/persistence/PersistedQueue.ts +25 -24
  818. package/src/unstable/persistence/Persistence.ts +3 -3
  819. package/src/unstable/persistence/RateLimiter.ts +4 -4
  820. package/src/unstable/process/ChildProcess.ts +6 -208
  821. package/src/unstable/process/ChildProcessSpawner.ts +75 -14
  822. package/src/unstable/reactivity/Atom.ts +27 -25
  823. package/src/unstable/reactivity/AtomHttpApi.ts +21 -20
  824. package/src/unstable/reactivity/AtomRegistry.ts +31 -7
  825. package/src/unstable/reactivity/AtomRpc.ts +3 -3
  826. package/src/unstable/reactivity/Hydration.ts +112 -0
  827. package/src/unstable/reactivity/index.ts +5 -0
  828. package/src/unstable/rpc/Rpc.ts +6 -6
  829. package/src/unstable/rpc/RpcClient.ts +12 -54
  830. package/src/unstable/rpc/RpcGroup.ts +4 -4
  831. package/src/unstable/rpc/RpcMiddleware.ts +3 -3
  832. package/src/unstable/rpc/RpcSchema.ts +17 -0
  833. package/src/unstable/rpc/RpcSerialization.ts +44 -9
  834. package/src/unstable/rpc/RpcServer.ts +21 -30
  835. package/src/unstable/rpc/Utils.ts +2 -1
  836. package/src/unstable/schema/VariantSchema.ts +6 -6
  837. package/src/unstable/socket/Socket.ts +16 -17
  838. package/src/unstable/sql/SqlClient.ts +1 -1
  839. package/src/unstable/sql/SqlError.ts +11 -9
  840. package/src/unstable/sql/SqlModel.ts +5 -5
  841. package/src/unstable/sql/SqlSchema.ts +41 -25
  842. package/src/unstable/sql/Statement.ts +0 -1
  843. package/src/unstable/workers/Worker.ts +2 -1
  844. package/src/unstable/workflow/DurableClock.ts +8 -8
  845. package/src/unstable/workflow/DurableDeferred.ts +2 -2
  846. package/src/unstable/workflow/Workflow.ts +6 -2
  847. package/src/unstable/workflow/WorkflowEngine.ts +185 -2
  848. package/dist/PartitionedSemaphore.d.ts +0 -52
  849. package/dist/PartitionedSemaphore.d.ts.map +0 -1
  850. package/dist/PartitionedSemaphore.js.map +0 -1
  851. package/dist/encoding/Base64.d.ts +0 -67
  852. package/dist/encoding/Base64.d.ts.map +0 -1
  853. package/dist/encoding/Base64.js +0 -146
  854. package/dist/encoding/Base64.js.map +0 -1
  855. package/dist/encoding/Base64Url.d.ts +0 -60
  856. package/dist/encoding/Base64Url.d.ts.map +0 -1
  857. package/dist/encoding/Base64Url.js +0 -89
  858. package/dist/encoding/Base64Url.js.map +0 -1
  859. package/dist/encoding/EncodingError.d.ts +0 -31
  860. package/dist/encoding/EncodingError.d.ts.map +0 -1
  861. package/dist/encoding/EncodingError.js +0 -22
  862. package/dist/encoding/EncodingError.js.map +0 -1
  863. package/dist/encoding/Hex.d.ts +0 -61
  864. package/dist/encoding/Hex.d.ts.map +0 -1
  865. package/dist/encoding/Hex.js +0 -115
  866. package/dist/encoding/Hex.js.map +0 -1
  867. package/dist/encoding/index.d.ts +0 -26
  868. package/dist/encoding/index.d.ts.map +0 -1
  869. package/dist/encoding/index.js +0 -27
  870. package/dist/encoding/index.js.map +0 -1
  871. package/dist/unstable/cli/internal/builtInFlags.d.ts +0 -7
  872. package/dist/unstable/cli/internal/builtInFlags.d.ts.map +0 -1
  873. package/dist/unstable/cli/internal/builtInFlags.js +0 -44
  874. package/dist/unstable/cli/internal/builtInFlags.js.map +0 -1
  875. package/src/PartitionedSemaphore.ts +0 -182
  876. package/src/encoding/Base64.ts +0 -366
  877. package/src/encoding/Base64Url.ts +0 -104
  878. package/src/encoding/EncodingError.ts +0 -35
  879. package/src/encoding/Hex.ts +0 -390
  880. package/src/encoding/index.ts +0 -31
  881. package/src/unstable/cli/internal/builtInFlags.ts +0 -78
@@ -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.
@@ -949,26 +949,29 @@ export const retryTransient: {
949
949
  * @category error handling
950
950
  */
951
951
  <
952
- B,
953
952
  E,
953
+ B = never,
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" =
957
+ | "errors-only"
958
+ | "response-only"
959
+ | "errors-and-responses",
960
+ Input = RetryOn extends "errors-only" ? E
961
+ : RetryOn extends "response-only" ? HttpClientResponse.HttpClientResponse
959
962
  : HttpClientResponse.HttpClientResponse | E
960
963
  >(
961
964
  options: {
962
- readonly mode?: Mode | undefined
965
+ readonly retryOn?: RetryOn | undefined
963
966
  readonly while?: Predicate.Predicate<NoInfer<E | ES>>
964
967
  readonly schedule?: Schedule.Schedule<B, NoInfer<Input>, ES, R1>
965
968
  readonly times?: number
966
- } | Schedule.Schedule<B, NoInfer<Input>, ES, R1>
969
+ }
967
970
  ): <R>(self: HttpClient.With<E, R>) => HttpClient.With<E | ES, R1 | R>
968
971
  /**
969
972
  * Retries common transient errors, such as rate limiting, timeouts or network issues.
970
973
  *
971
- * Use `mode` to focus on retrying errors, transient responses, or both.
974
+ * Use `retryOn` to focus on retrying errors, transient responses, or both.
972
975
  *
973
976
  * Specifying a `while` predicate allows you to consider other errors as
974
977
  * transient, and is ignored in "response-only" mode.
@@ -979,21 +982,53 @@ export const retryTransient: {
979
982
  <
980
983
  E,
981
984
  R,
982
- B,
985
+ B = never,
983
986
  ES = never,
984
987
  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
988
+ const RetryOn extends "errors-only" | "response-only" | "errors-and-responses" =
989
+ | "errors-only"
990
+ | "response-only"
991
+ | "errors-and-responses",
992
+ Input = RetryOn extends "errors-only" ? E
993
+ : RetryOn extends "response-only" ? HttpClientResponse.HttpClientResponse
988
994
  : HttpClientResponse.HttpClientResponse | E
989
995
  >(
990
996
  self: HttpClient.With<E, R>,
991
997
  options: {
992
- readonly mode?: Mode | undefined
998
+ readonly retryOn?: RetryOn | undefined
993
999
  readonly while?: Predicate.Predicate<NoInfer<E | ES>>
994
1000
  readonly schedule?: Schedule.Schedule<B, NoInfer<Input>, ES, R1>
995
1001
  readonly times?: number
996
- } | Schedule.Schedule<B, NoInfer<Input>, ES, R1>
1002
+ }
1003
+ ): HttpClient.With<E | ES, R1 | R>
1004
+ /**
1005
+ * Retries common transient errors, such as rate limiting, timeouts or network issues.
1006
+ *
1007
+ * Use `retryOn` to focus on retrying errors, transient responses, or both.
1008
+ *
1009
+ * Specifying a `while` predicate allows you to consider other errors as
1010
+ * transient, and is ignored in "response-only" mode.
1011
+ *
1012
+ * @since 4.0.0
1013
+ * @category error handling
1014
+ */
1015
+ <B, E, ES = never, R1 = never>(
1016
+ options: Schedule.Schedule<B, NoInfer<HttpClientResponse.HttpClientResponse | E>, ES, R1>
1017
+ ): <R>(self: HttpClient.With<E, R>) => HttpClient.With<E | ES, R1 | R>
1018
+ /**
1019
+ * Retries common transient errors, such as rate limiting, timeouts or network issues.
1020
+ *
1021
+ * Use `retryOn` to focus on retrying errors, transient responses, or both.
1022
+ *
1023
+ * Specifying a `while` predicate allows you to consider other errors as
1024
+ * transient, and is ignored in "response-only" mode.
1025
+ *
1026
+ * @since 4.0.0
1027
+ * @category error handling
1028
+ */
1029
+ <E, R, B, ES = never, R1 = never>(
1030
+ self: HttpClient.With<E, R>,
1031
+ options: Schedule.Schedule<B, NoInfer<HttpClientResponse.HttpClientResponse | E>, ES, R1>
997
1032
  ): HttpClient.With<E | ES, R1 | R>
998
1033
  } = dual(
999
1034
  2,
@@ -1006,26 +1041,26 @@ export const retryTransient: {
1006
1041
  >(
1007
1042
  self: HttpClient.With<E, R>,
1008
1043
  options: {
1009
- readonly mode?: "errors-only" | "response-only" | "both" | undefined
1044
+ readonly retryOn?: "errors-only" | "response-only" | "errors-and-responses" | undefined
1010
1045
  readonly while?: Predicate.Predicate<E | ES>
1011
1046
  readonly schedule?: Schedule.Schedule<B, any, ES, R1>
1012
1047
  readonly times?: number
1013
1048
  } | Schedule.Schedule<B, any, ES, R1>
1014
1049
  ): HttpClient.With<E | ES, R1 | R> => {
1015
1050
  const isOnlySchedule = Schedule.isSchedule(options)
1016
- const mode = isOnlySchedule ? "both" : options.mode ?? "both"
1051
+ const retryOn = isOnlySchedule ? "errors-and-responses" : options.retryOn ?? "errors-and-responses"
1017
1052
  const schedule = isOnlySchedule ? options : options.schedule
1018
1053
  const passthroughSchedule = schedule && Schedule.passthrough(schedule)
1019
1054
  const times = isOnlySchedule ? undefined : options.times
1020
1055
  return transformResponse(
1021
1056
  self,
1022
1057
  flow(
1023
- mode === "errors-only" ? identity : Effect.repeat({
1058
+ retryOn === "errors-only" ? identity : Effect.repeat({
1024
1059
  schedule: passthroughSchedule!,
1025
1060
  times,
1026
1061
  while: isTransientResponse
1027
1062
  }),
1028
- mode === "response-only" ? identity : Effect.retry({
1063
+ retryOn === "response-only" ? identity : Effect.retry({
1029
1064
  while: isOnlySchedule || options.while === undefined
1030
1065
  ? isTransientError
1031
1066
  : 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
@@ -1,24 +1,24 @@
1
1
  /**
2
2
  * @since 4.0.0
3
3
  */
4
- import type { Cause } from "../../Cause.ts"
4
+ import type * as Cause from "../../Cause.ts"
5
5
  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"
13
13
  import * as Stream from "../../Stream.ts"
14
- import * as UndefinedOr from "../../UndefinedOr.ts"
15
14
  import * as HttpBody from "./HttpBody.ts"
16
15
  import { type HttpMiddleware, tracer } from "./HttpMiddleware.ts"
17
- import { causeResponse, clientAbortFiberId, HttpServerError, InternalError } from "./HttpServerError.ts"
16
+ import { causeResponse, ClientAbort, HttpServerError, InternalError } from "./HttpServerError.ts"
18
17
  import { HttpServerRequest } from "./HttpServerRequest.ts"
19
18
  import * as Request from "./HttpServerRequest.ts"
20
19
  import type { HttpServerResponse } from "./HttpServerResponse.ts"
21
20
  import * as Response from "./HttpServerResponse.ts"
21
+ import { appendPreResponseHandlerUnsafe, requestPreResponseHandlers } from "./internal/preResponseHandler.ts"
22
22
 
23
23
  /**
24
24
  * @since 4.0.0
@@ -32,35 +32,12 @@ 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
- const handleCause = (cause: Cause<E | EH | HttpServerError>) =>
35
+ const handleCause = (cause: 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
- const handler = fiber.getRef(PreResponseHandlers)
40
+ const handler = requestPreResponseHandlers.get(request.source)
64
41
  const cont = cause.reasons.length === 0 ? Effect.succeed(response) : Effect.failCause(cause)
65
42
  if (handler === undefined) {
66
43
  ;(request as any)[handledSymbol] = true
@@ -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 = requestPreResponseHandlers.get(request.source)
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> {
@@ -148,10 +145,10 @@ const scopeEjected = Symbol.for("effect/http/HttpEffect/scopeEjected")
148
145
  const scoped = <A, E, R>(effect: Effect.Effect<A, E, R>) =>
149
146
  Effect.withFiber((fiber) => {
150
147
  const scope = Scope.makeUnsafe()
151
- const prev = ServiceMap.getOption(fiber.services, Scope.Scope)
148
+ const prevServices = fiber.services
152
149
  fiber.setServices(ServiceMap.add(fiber.services, Scope.Scope, scope))
153
150
  return Effect.onExitPrimitive(effect, (exit) => {
154
- fiber.setServices(ServiceMap.addOrOmit(fiber.services, Scope.Scope, prev))
151
+ fiber.setServices(prevServices)
155
152
  if (scopeEjected in scope) return undefined
156
153
  return Scope.closeUnsafe(scope, exit)
157
154
  }, true)
@@ -166,27 +163,13 @@ export type PreResponseHandler = (
166
163
  response: HttpServerResponse
167
164
  ) => Effect.Effect<HttpServerResponse, HttpServerError>
168
165
 
169
- /**
170
- * @since 4.0.0
171
- * @category Pre-response handlers
172
- */
173
- export const PreResponseHandlers = ServiceMap.Reference<PreResponseHandler | undefined>(
174
- "effect/http/HttpEffect/PreResponseHandlers",
175
- { defaultValue: () => undefined }
176
- )
177
-
178
166
  /**
179
167
  * @since 4.0.0
180
168
  * @category fiber refs
181
169
  */
182
- export const appendPreResponseHandler = (handler: PreResponseHandler): Effect.Effect<void> =>
183
- Effect.withFiber((fiber) => {
184
- const next = UndefinedOr.match(fiber.getRef(PreResponseHandlers), {
185
- onUndefined: () => handler,
186
- onDefined: (prev) => (request, response) =>
187
- Effect.flatMap(prev(request, response), (response) => handler(request, response))
188
- })
189
- fiber.setServices(ServiceMap.add(fiber.services, PreResponseHandlers, next))
170
+ export const appendPreResponseHandler = (handler: PreResponseHandler): Effect.Effect<void, never, HttpServerRequest> =>
171
+ HttpServerRequest.use((request) => {
172
+ appendPreResponseHandlerUnsafe(request, handler)
190
173
  return Effect.void
191
174
  })
192
175
 
@@ -199,33 +182,28 @@ export const withPreResponseHandler: {
199
182
  * @since 4.0.0
200
183
  * @category fiber refs
201
184
  */
202
- (handler: PreResponseHandler): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>
185
+ (handler: PreResponseHandler): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R | HttpServerRequest>
203
186
  /**
204
187
  * @since 4.0.0
205
188
  * @category fiber refs
206
189
  */
207
- <A, E, R>(self: Effect.Effect<A, E, R>, handler: PreResponseHandler): Effect.Effect<A, E, R>
190
+ <A, E, R>(self: Effect.Effect<A, E, R>, handler: PreResponseHandler): Effect.Effect<A, E, R | HttpServerRequest>
208
191
  } = dual<
209
192
  /**
210
193
  * @since 4.0.0
211
194
  * @category fiber refs
212
195
  */
213
- (handler: PreResponseHandler) => <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>,
196
+ (handler: PreResponseHandler) => <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R | HttpServerRequest>,
214
197
  /**
215
198
  * @since 4.0.0
216
199
  * @category fiber refs
217
200
  */
218
- <A, E, R>(self: Effect.Effect<A, E, R>, handler: PreResponseHandler) => Effect.Effect<A, E, R>
201
+ <A, E, R>(self: Effect.Effect<A, E, R>, handler: PreResponseHandler) => Effect.Effect<A, E, R | HttpServerRequest>
219
202
  >(2, (self, handler) =>
220
- Effect.updateService(
221
- self,
222
- PreResponseHandlers,
223
- UndefinedOr.match({
224
- onUndefined: () => handler,
225
- onDefined: (prev) => (request, response) =>
226
- Effect.flatMap(prev(request, response), (response) => handler(request, response))
227
- })
228
- ))
203
+ HttpServerRequest.use((request) => {
204
+ appendPreResponseHandlerUnsafe(request, handler)
205
+ return self
206
+ }))
229
207
 
230
208
  /**
231
209
  * @since 4.0.0
@@ -262,7 +240,7 @@ export const toWebHandlerWith = <Provided, R = never, ReqR = Exclude<R, Provided
262
240
  ;(httpServerRequest as any)[resolveSymbol] = resolve
263
241
  const fiber = Effect.runForkWith(ServiceMap.makeUnsafe(contextMap))(httpApp as any)
264
242
  request.signal?.addEventListener("abort", () => {
265
- fiber.interruptUnsafe(clientAbortFiberId)
243
+ fiber.interruptUnsafe(undefined, ClientAbort.annotation)
266
244
  }, { once: true })
267
245
  })
268
246
  }
@@ -14,6 +14,7 @@ export type HttpMethod =
14
14
  | "PATCH"
15
15
  | "HEAD"
16
16
  | "OPTIONS"
17
+ | "TRACE"
17
18
 
18
19
  /**
19
20
  * @since 4.0.0
@@ -24,7 +25,7 @@ export declare namespace HttpMethod {
24
25
  * @since 4.0.0
25
26
  * @category models
26
27
  */
27
- export type NoBody = "GET" | "HEAD" | "OPTIONS"
28
+ export type NoBody = "GET" | "HEAD" | "OPTIONS" | "TRACE"
28
29
 
29
30
  /**
30
31
  * @since 4.0.0
@@ -36,12 +37,22 @@ export declare namespace HttpMethod {
36
37
  /**
37
38
  * @since 4.0.0
38
39
  */
39
- export const hasBody = (method: HttpMethod): boolean => method !== "GET" && method !== "HEAD" && method !== "OPTIONS"
40
+ export const hasBody = (method: HttpMethod): method is HttpMethod.WithBody =>
41
+ method !== "GET" && method !== "HEAD" && method !== "OPTIONS" && method !== "TRACE"
40
42
 
41
43
  /**
42
44
  * @since 4.0.0
43
45
  */
44
- export const all: ReadonlySet<HttpMethod> = new Set(["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS"])
46
+ export const all: ReadonlySet<HttpMethod> = new Set([
47
+ "GET",
48
+ "POST",
49
+ "PUT",
50
+ "DELETE",
51
+ "PATCH",
52
+ "HEAD",
53
+ "OPTIONS",
54
+ "TRACE"
55
+ ])
45
56
 
46
57
  /**
47
58
  * @since 4.0.0
@@ -53,7 +64,8 @@ export const allShort = [
53
64
  ["DELETE", "del"],
54
65
  ["PATCH", "patch"],
55
66
  ["HEAD", "head"],
56
- ["OPTIONS", "options"]
67
+ ["OPTIONS", "options"],
68
+ ["TRACE", "trace"]
57
69
  ] as const
58
70
 
59
71
  /**
@@ -12,13 +12,13 @@ import { TracerEnabled } from "../../References.ts"
12
12
  import * as ServiceMap from "../../ServiceMap.ts"
13
13
  import { ParentSpan } from "../../Tracer.ts"
14
14
  import * as Headers from "./Headers.ts"
15
- import type { PreResponseHandler } from "./HttpEffect.ts"
16
15
  import { causeResponseStripped, exitResponse } from "./HttpServerError.ts"
17
16
  import { HttpServerRequest } from "./HttpServerRequest.ts"
18
17
  import * as Request from "./HttpServerRequest.ts"
19
18
  import * as Response from "./HttpServerResponse.ts"
20
19
  import type { HttpServerResponse } from "./HttpServerResponse.ts"
21
20
  import * as TraceContext from "./HttpTraceContext.ts"
21
+ import { appendPreResponseHandlerUnsafe } from "./internal/preResponseHandler.ts"
22
22
 
23
23
  /**
24
24
  * @since 4.0.0
@@ -46,21 +46,16 @@ export declare namespace HttpMiddleware {
46
46
  */
47
47
  export const make = <M extends HttpMiddleware>(middleware: M): M => middleware
48
48
 
49
- /**
50
- * @since 4.0.0
51
- * @category Logger
52
- */
53
- export const LoggerDisabled = ServiceMap.Reference<boolean>("effect/http/HttpMiddleware/LoggerDisabled", {
54
- defaultValue: constFalse
55
- })
49
+ const loggerDisabledRequests = new WeakSet<object>()
56
50
 
57
51
  /**
58
52
  * @since 4.0.0
59
53
  * @category Logger
60
54
  */
61
- export const withLoggerDisabled = <A, E, R>(self: Effect.Effect<A, E, R>): Effect.Effect<A, E, R> =>
55
+ export const withLoggerDisabled = <A, E, R>(self: Effect.Effect<A, E, R>): Effect.Effect<A, E, R | HttpServerRequest> =>
62
56
  Effect.withFiber((fiber) => {
63
- fiber.setServices(ServiceMap.add(fiber.services, LoggerDisabled, true))
57
+ const request = ServiceMap.getUnsafe(fiber.services, HttpServerRequest)
58
+ loggerDisabledRequests.add(request.source)
64
59
  return self
65
60
  })
66
61
 
@@ -102,7 +97,7 @@ export const logger: <E, R>(
102
97
  const request = ServiceMap.getUnsafe(fiber.services, HttpServerRequest)
103
98
  return Effect.withLogSpan(
104
99
  Effect.flatMap(Effect.exit(httpApp), (exit) => {
105
- if (fiber.getRef(LoggerDisabled)) {
100
+ if (loggerDisabledRequests.has(request.source)) {
106
101
  return exit
107
102
  } else if (exit._tag === "Failure") {
108
103
  const [response, cause] = causeResponseStripped(exit.cause)
@@ -147,10 +142,10 @@ export const tracer: <E, R>(
147
142
  parent: TraceContext.fromHeaders(request.headers),
148
143
  kind: "server"
149
144
  })
150
- const prevSpan = ServiceMap.getOption(fiber.services, ParentSpan)
145
+ const prevServices = fiber.services
151
146
  fiber.setServices(ServiceMap.add(fiber.services, ParentSpan, span))
152
147
  return Effect.onExitPrimitive(httpApp, (exit) => {
153
- fiber.setServices(ServiceMap.addOrOmit(fiber.services, ParentSpan, prevSpan))
148
+ fiber.setServices(prevServices)
154
149
  const endTime = fiber.getRef(Clock).currentTimeNanosUnsafe()
155
150
  fiber.currentScheduler.scheduleTask(() => {
156
151
  const url = Request.toURL(request)
@@ -343,17 +338,7 @@ export const cors = (options?: {
343
338
  headers: headersFromRequestOptions(request)
344
339
  }))
345
340
  }
346
- const prev = fiber.getRef(PreResponseHandlers)
347
- const next = prev
348
- ? ((req: HttpServerRequest, res: HttpServerResponse) =>
349
- Effect.flatMap(prev(req, res), (res) => preResponseHandler(req, res)))
350
- : preResponseHandler
351
- fiber.setServices(ServiceMap.add(fiber.services, PreResponseHandlers, next))
341
+ appendPreResponseHandlerUnsafe(request, preResponseHandler)
352
342
  return httpApp
353
343
  })
354
344
  }
355
-
356
- const PreResponseHandlers = ServiceMap.Reference<PreResponseHandler | undefined>(
357
- "effect/http/HttpEffect/PreResponseHandlers",
358
- { defaultValue: () => undefined }
359
- )