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
@@ -4,8 +4,11 @@
4
4
  import * as Cause from "../../Cause.ts"
5
5
  import * as Data from "../../Data.ts"
6
6
  import * as Effect from "../../Effect.ts"
7
+ import * as ErrorReporter from "../../ErrorReporter.ts"
7
8
  import type * as Exit from "../../Exit.ts"
9
+ import { constUndefined } from "../../Function.ts"
8
10
  import { hasProperty } from "../../Predicate.ts"
11
+ import * as ServiceMap from "../../ServiceMap.ts"
9
12
  import type * as Request from "./HttpServerRequest.ts"
10
13
  import * as Respondable from "./HttpServerRespondable.ts"
11
14
  import * as Response from "./HttpServerResponse.ts"
@@ -32,35 +35,24 @@ export class HttpServerError extends Data.TaggedError("HttpServerError")<{
32
35
  }
33
36
  }
34
37
 
35
- /**
36
- * @since 4.0.0
37
- */
38
38
  readonly [TypeId] = TypeId
39
39
 
40
- /**
41
- * @since 4.0.0
42
- */
43
40
  override stack = `${this.name}: ${this.message}`
44
41
 
45
- /**
46
- * @since 4.0.0
47
- */
48
42
  get request(): Request.HttpServerRequest {
49
43
  return this.reason.request
50
44
  }
51
45
 
52
- /**
53
- * @since 4.0.0
54
- */
55
46
  get response(): Response.HttpServerResponse | undefined {
56
47
  return "response" in this.reason ? this.reason.response : undefined
57
48
  }
58
49
 
59
- /**
60
- * @since 4.0.0
61
- */
62
- [Respondable.TypeId]() {
63
- return this.reason[Respondable.TypeId]()
50
+ [Respondable.symbol]() {
51
+ return this.reason[Respondable.symbol]()
52
+ }
53
+
54
+ override get [ErrorReporter.ignore](): boolean {
55
+ return this.reason[ErrorReporter.ignore] ?? false
64
56
  }
65
57
 
66
58
  override get message(): string {
@@ -80,7 +72,7 @@ export class RequestParseError extends Data.TaggedError("RequestParseError")<{
80
72
  /**
81
73
  * @since 4.0.0
82
74
  */
83
- [Respondable.TypeId]() {
75
+ [Respondable.symbol]() {
84
76
  return Effect.succeed(Response.empty({ status: 400 }))
85
77
  }
86
78
 
@@ -102,13 +94,12 @@ export class RouteNotFound extends Data.TaggedError("RouteNotFound")<{
102
94
  readonly description?: string
103
95
  readonly cause?: unknown
104
96
  }> implements Respondable.Respondable {
105
- /**
106
- * @since 4.0.0
107
- */
108
- [Respondable.TypeId]() {
97
+ [Respondable.symbol]() {
109
98
  return Effect.succeed(Response.empty({ status: 404 }))
110
99
  }
111
100
 
101
+ override readonly [ErrorReporter.ignore] = true
102
+
112
103
  get methodAndUrl() {
113
104
  return `${this.request.method} ${this.request.url}`
114
105
  }
@@ -130,7 +121,7 @@ export class InternalError extends Data.TaggedError("InternalError")<{
130
121
  /**
131
122
  * @since 4.0.0
132
123
  */
133
- [Respondable.TypeId]() {
124
+ [Respondable.symbol]() {
134
125
  return Effect.succeed(Response.empty({ status: 500 }))
135
126
  }
136
127
 
@@ -159,10 +150,7 @@ export class ResponseError extends Data.TaggedError("ResponseError")<{
159
150
  readonly description?: string
160
151
  readonly cause?: unknown
161
152
  }> implements Respondable.Respondable {
162
- /**
163
- * @since 4.0.0
164
- */
165
- [Respondable.TypeId]() {
153
+ [Respondable.symbol]() {
166
154
  return Effect.succeed(Response.empty({ status: 500 }))
167
155
  }
168
156
 
@@ -196,16 +184,25 @@ export class ServeError extends Data.TaggedError("ServeError")<{
196
184
  readonly cause: unknown
197
185
  }> {}
198
186
 
187
+ /**
188
+ * @since 4.0.0
189
+ * @category Annotations
190
+ */
191
+ export class ClientAbort extends ServiceMap.Service<ClientAbort, true>()("effect/http/HttpServerError/ClientAbort") {
192
+ static annotation = this.serviceMap(true).pipe(
193
+ ServiceMap.add(Cause.StackTrace, {
194
+ name: "ClientAbort",
195
+ stack: constUndefined,
196
+ parent: undefined
197
+ })
198
+ )
199
+ }
200
+
199
201
  const formatRequestMessage = (reason: string, description: string | undefined, info: string) => {
200
202
  const prefix = `${reason} (${info})`
201
203
  return description ? `${prefix}: ${description}` : prefix
202
204
  }
203
205
 
204
- /**
205
- * @since 4.0.0
206
- */
207
- export const clientAbortFiberId = -499
208
-
209
206
  /**
210
207
  * @since 4.0.0
211
208
  */
@@ -215,37 +212,37 @@ export const causeResponse = <E>(
215
212
  let response: Response.HttpServerResponse | undefined
216
213
  let effect = succeedInternalServerError
217
214
  const failures: Array<Cause.Reason<E>> = []
218
- let interrupt: Cause.Interrupt | undefined
215
+ let interrupts: Array<Cause.Interrupt> = []
219
216
  let isClientInterrupt = false
220
217
  for (let i = 0; i < cause.reasons.length; i++) {
221
- const f = cause.reasons[i]
222
- switch (f._tag) {
218
+ const reason = cause.reasons[i]
219
+ switch (reason._tag) {
223
220
  case "Fail": {
224
- effect = Respondable.toResponseOrElse(f.error, internalServerError)
225
- failures.push(f)
221
+ effect = Respondable.toResponseOrElse(reason.error, internalServerError)
222
+ failures.push(reason)
226
223
  break
227
224
  }
228
225
  case "Die": {
229
- if (Response.isHttpServerResponse(f.defect)) {
230
- response = f.defect
226
+ if (Response.isHttpServerResponse(reason.defect)) {
227
+ response = reason.defect
231
228
  } else {
232
- effect = Respondable.toResponseOrElseDefect(f.defect, internalServerError)
233
- failures.push(f)
229
+ effect = Respondable.toResponseOrElseDefect(reason.defect, internalServerError)
230
+ failures.push(reason)
234
231
  }
235
232
  break
236
233
  }
237
234
  case "Interrupt": {
238
- isClientInterrupt = isClientInterrupt || f.fiberId === clientAbortFiberId
235
+ isClientInterrupt = reason.annotations.has(ClientAbort.key)
239
236
  if (failures.length > 0) break
240
- interrupt = f
237
+ interrupts.push(reason)
241
238
  break
242
239
  }
243
240
  }
244
241
  }
245
242
  if (response) {
246
243
  return Effect.succeed([response, Cause.fromReasons(failures)] as const)
247
- } else if (interrupt && failures.length === 0) {
248
- failures.push(isClientInterrupt ? Cause.makeInterruptReason(clientAbortFiberId) : interrupt)
244
+ } else if (interrupts.length > 0 && failures.length === 0) {
245
+ failures.push(...interrupts)
249
246
  effect = isClientInterrupt ? clientAbortError : serverAbortError
250
247
  }
251
248
  return Effect.mapEager(effect, (response) => {
@@ -43,7 +43,7 @@ export const TypeId = "~effect/http/HttpServerRequest"
43
43
  */
44
44
  export interface HttpServerRequest extends HttpIncomingMessage.HttpIncomingMessage<HttpServerError> {
45
45
  readonly [TypeId]: typeof TypeId
46
- readonly source: unknown
46
+ readonly source: object
47
47
  readonly url: string
48
48
  readonly originalUrl: string
49
49
  readonly method: HttpMethod
@@ -12,21 +12,21 @@ import * as Response from "./HttpServerResponse.ts"
12
12
  * @since 4.0.0
13
13
  * @category Type IDs
14
14
  */
15
- export const TypeId = "~effect/http/HttpServerRespondable"
15
+ export const symbol = "~effect/http/HttpServerRespondable"
16
16
 
17
17
  /**
18
18
  * @since 4.0.0
19
19
  * @category models
20
20
  */
21
21
  export interface Respondable {
22
- readonly [TypeId]: () => Effect.Effect<HttpServerResponse, unknown>
22
+ [symbol](): Effect.Effect<HttpServerResponse, unknown>
23
23
  }
24
24
 
25
25
  /**
26
26
  * @since 4.0.0
27
27
  * @category guards
28
28
  */
29
- export const isRespondable = (u: unknown): u is Respondable => hasProperty(u, TypeId)
29
+ export const isRespondable = (u: unknown): u is Respondable => hasProperty(u, symbol)
30
30
 
31
31
  const badRequest = Response.empty({ status: 400 })
32
32
  const notFound = Response.empty({ status: 404 })
@@ -39,7 +39,7 @@ export const toResponse = (self: Respondable): Effect.Effect<HttpServerResponse>
39
39
  if (Response.isHttpServerResponse(self)) {
40
40
  return Effect.succeed(self)
41
41
  }
42
- return Effect.orDie(self[TypeId]())
42
+ return Effect.orDie(self[symbol]())
43
43
  }
44
44
 
45
45
  /**
@@ -50,7 +50,7 @@ export const toResponseOrElse = (u: unknown, orElse: HttpServerResponse): Effect
50
50
  if (Response.isHttpServerResponse(u)) {
51
51
  return Effect.succeed(u)
52
52
  } else if (isRespondable(u)) {
53
- return Effect.catchCause(u[TypeId](), () => Effect.succeed(orElse))
53
+ return Effect.catchCause(u[symbol](), () => Effect.succeed(orElse))
54
54
  // add support for some commmon types
55
55
  } else if (Schema.isSchemaError(u)) {
56
56
  return Effect.succeed(badRequest)
@@ -68,7 +68,7 @@ export const toResponseOrElseDefect = (u: unknown, orElse: HttpServerResponse):
68
68
  if (Response.isHttpServerResponse(u)) {
69
69
  return Effect.succeed(u)
70
70
  } else if (isRespondable(u)) {
71
- return Effect.catchCause(u[TypeId](), () => Effect.succeed(orElse))
71
+ return Effect.catchCause(u[symbol](), () => Effect.succeed(orElse))
72
72
  }
73
73
  return Effect.succeed(orElse)
74
74
  }
@@ -2,6 +2,7 @@
2
2
  * @since 4.0.0
3
3
  */
4
4
  import * as Effect from "../../Effect.ts"
5
+ import * as ErrorReporter from "../../ErrorReporter.ts"
5
6
  import type * as FileSystem from "../../FileSystem.ts"
6
7
  import { dual } from "../../Function.ts"
7
8
  import type * as Inspectable from "../../Inspectable.ts"
@@ -28,7 +29,7 @@ const TypeId = "~effect/http/HttpServerResponse"
28
29
  * @since 4.0.0
29
30
  * @category models
30
31
  */
31
- export interface HttpServerResponse extends Inspectable.Inspectable, Pipeable {
32
+ export interface HttpServerResponse extends Inspectable.Inspectable, Pipeable, ErrorReporter.Reportable {
32
33
  readonly [TypeId]: typeof TypeId
33
34
  readonly status: number
34
35
  readonly statusText?: string | undefined
@@ -327,7 +328,7 @@ export const formData = (
327
328
  statusText: options?.statusText,
328
329
  headers: options?.headers && Headers.fromInput(options.headers),
329
330
  cookies: options?.cookies,
330
- body: Body.makeFormData(body)
331
+ body: Body.formData(body)
331
332
  })
332
333
 
333
334
  /**
@@ -834,6 +835,7 @@ const Proto: Omit<
834
835
  > = {
835
836
  ...PipeInspectableProto,
836
837
  [TypeId]: TypeId,
838
+ [ErrorReporter.ignore]: true,
837
839
  toJSON(this: HttpServerResponse) {
838
840
  return {
839
841
  _id: "HttpServerResponse",
@@ -203,13 +203,13 @@ export const PersistedFileSchema: PersistedFileSchema = Schema.declare(
203
203
  * @since 4.0.0
204
204
  * @category Schemas
205
205
  */
206
- export const FilesSchema: Schema.Array$<PersistedFileSchema> = Schema.Array(PersistedFileSchema)
206
+ export const FilesSchema: Schema.$Array<PersistedFileSchema> = Schema.Array(PersistedFileSchema)
207
207
 
208
208
  /**
209
209
  * @since 4.0.0
210
210
  * @category Schemas
211
211
  */
212
- export const SingleFileSchema: Schema.decodeTo<PersistedFileSchema, Schema.Array$<PersistedFileSchema>> = FilesSchema
212
+ export const SingleFileSchema: Schema.decodeTo<PersistedFileSchema, Schema.$Array<PersistedFileSchema>> = FilesSchema
213
213
  .check(
214
214
  Schema.isLengthBetween(1, 1)
215
215
  ).pipe(
@@ -43,10 +43,14 @@ export const isUrlParams = (u: unknown): u is UrlParams => hasProperty(u, TypeId
43
43
  * @category models
44
44
  */
45
45
  export type Input =
46
- | CoercibleRecord
46
+ | CoercibleRecordInput
47
47
  | Iterable<readonly [string, Coercible]>
48
48
  | URLSearchParams
49
49
 
50
+ type CoercibleRecordInput = CoercibleRecord & {
51
+ readonly [Symbol.iterator]?: never
52
+ }
53
+
50
54
  /**
51
55
  * @since 4.0.0
52
56
  * @category models
@@ -57,8 +61,17 @@ export type Coercible = string | number | bigint | boolean | null | undefined
57
61
  * @since 4.0.0
58
62
  * @category models
59
63
  */
60
- export interface CoercibleRecord {
61
- readonly [key: string]: Coercible | ReadonlyArray<Coercible> | CoercibleRecord
64
+ type CoercibleRecordField<A> = A extends Coercible ? A
65
+ : A extends ReadonlyArray<infer Item> ? ReadonlyArray<Item extends Coercible ? Item : never>
66
+ : A extends object ? CoercibleRecord<A>
67
+ : never
68
+
69
+ /**
70
+ * @since 4.0.0
71
+ * @category models
72
+ */
73
+ export type CoercibleRecord<A extends object = any> = {
74
+ readonly [K in keyof A]: CoercibleRecordField<A[K]>
62
75
  }
63
76
 
64
77
  const Proto = {
@@ -110,7 +123,9 @@ export const fromInput = (input: Input): UrlParams => {
110
123
  }
111
124
 
112
125
  const fromInputNested = (input: Input): Array<[string | Array<string>, any]> => {
113
- const entries = Symbol.iterator in input ? Arr.fromIterable(input) : Object.entries(input)
126
+ const entries = typeof (input as any)[Symbol.iterator] === "function"
127
+ ? Arr.fromIterable(input as Iterable<readonly [string, Coercible]>)
128
+ : Object.entries(input)
114
129
  const out: Array<[string | Array<string>, string]> = []
115
130
  for (const [key, value] of entries) {
116
131
  if (Array.isArray(value)) {
@@ -539,7 +554,7 @@ export const schemaJsonField = (field: string): schemaJsonField =>
539
554
  */
540
555
  export interface schemaRecord extends
541
556
  Schema.decodeTo<
542
- Schema.Record$<Schema.String, Schema.Union<readonly [Schema.String, Schema.NonEmptyArray<Schema.String>]>>,
557
+ Schema.$Record<Schema.String, Schema.Union<readonly [Schema.String, Schema.NonEmptyArray<Schema.String>]>>,
543
558
  UrlParamsSchema,
544
559
  never,
545
560
  never
@@ -0,0 +1,15 @@
1
+ import * as Effect from "../../../Effect.ts"
2
+ import type { PreResponseHandler } from "../HttpEffect.ts"
3
+ import type { HttpServerRequest } from "../HttpServerRequest.ts"
4
+
5
+ /** @internal */
6
+ export const requestPreResponseHandlers = new WeakMap<object, PreResponseHandler>()
7
+
8
+ /** @internal */
9
+ export const appendPreResponseHandlerUnsafe = (request: HttpServerRequest, handler: PreResponseHandler): void => {
10
+ const prev = requestPreResponseHandlers.get(request.source)
11
+ const next: PreResponseHandler = prev ?
12
+ (request, response) => Effect.flatMap(prev(request, response), (response) => handler(request, response))
13
+ : handler
14
+ requestPreResponseHandlers.set(request.source, next)
15
+ }
@@ -67,13 +67,13 @@ export interface HttpApi<
67
67
  * api is called.
68
68
  */
69
69
  middleware<I extends HttpApiMiddleware.AnyId, S>(
70
- middleware: ServiceMap.Service<I, S>
70
+ middleware: ServiceMap.Key<I, S>
71
71
  ): HttpApi<Id, HttpApiGroup.AddMiddleware<Groups, I>>
72
72
 
73
73
  /**
74
74
  * Annotate the `HttpApi`.
75
75
  */
76
- annotate<I, S>(tag: ServiceMap.Service<I, S>, value: S): HttpApi<Id, Groups>
76
+ annotate<I, S>(tag: ServiceMap.Key<I, S>, value: S): HttpApi<Id, Groups>
77
77
 
78
78
  /**
79
79
  * Annotate the `HttpApi` with a ServiceMap.
@@ -137,14 +137,14 @@ const Proto = {
137
137
  annotations: this.annotations
138
138
  })
139
139
  },
140
- middleware(this: AnyWithProps, tag: HttpApiMiddleware.AnyKey) {
140
+ middleware(this: AnyWithProps, tag: HttpApiMiddleware.AnyService) {
141
141
  return makeProto({
142
142
  identifier: this.identifier,
143
143
  groups: Record.map(this.groups, (group) => group.middleware(tag as any)),
144
144
  annotations: this.annotations
145
145
  })
146
146
  },
147
- annotate(this: AnyWithProps, key: ServiceMap.Service<any, any>, value: any) {
147
+ annotate(this: AnyWithProps, key: ServiceMap.Key<any, any>, value: any) {
148
148
  return makeProto({
149
149
  identifier: this.identifier,
150
150
  groups: this.groups,
@@ -212,7 +212,7 @@ export const reflect = <Id extends string, Groups extends HttpApiGroup.Any>(
212
212
  readonly group: HttpApiGroup.AnyWithProps
213
213
  readonly endpoint: HttpApiEndpoint.AnyWithProps
214
214
  readonly mergedAnnotations: ServiceMap.ServiceMap<never>
215
- readonly middleware: ReadonlySet<HttpApiMiddleware.AnyKey>
215
+ readonly middleware: ReadonlySet<HttpApiMiddleware.AnyService>
216
216
  readonly successes: ReadonlyMap<number, readonly [Schema.Top, ...Array<Schema.Top>]>
217
217
  readonly errors: ReadonlyMap<number, readonly [Schema.Top, ...Array<Schema.Top>]>
218
218
  }) => void
@@ -2,7 +2,7 @@
2
2
  * @since 4.0.0
3
3
  */
4
4
  import * as Effect from "../../Effect.ts"
5
- import * as Base64 from "../../encoding/Base64.ts"
5
+ import * as Encoding from "../../Encoding.ts"
6
6
  import * as Fiber from "../../Fiber.ts"
7
7
  import type { FileSystem } from "../../FileSystem.ts"
8
8
  import { identity } from "../../Function.ts"
@@ -20,7 +20,7 @@ import * as Transformation from "../../SchemaTransformation.ts"
20
20
  import type * as Scope from "../../Scope.ts"
21
21
  import * as ServiceMap from "../../ServiceMap.ts"
22
22
  import * as Stream from "../../Stream.ts"
23
- import type { Covariant } from "../../Types.ts"
23
+ import type { Covariant, NoInfer } from "../../Types.ts"
24
24
  import * as UndefinedOr from "../../UndefinedOr.ts"
25
25
  import type { Cookie } from "../http/Cookies.ts"
26
26
  import type * as Etag from "../http/Etag.ts"
@@ -63,7 +63,6 @@ export const layer = <Id extends string, Groups extends HttpApiGroup.Any>(
63
63
  | HttpPlatform
64
64
  | Path
65
65
  | HttpApiGroup.ToService<Id, Groups>
66
- | HttpApiGroup.ErrorServicesEncode<Groups>
67
66
  > =>
68
67
  HttpRouter.use(Effect.fnUntraced(function*(router) {
69
68
  const services = yield* Effect.services<
@@ -168,7 +167,7 @@ export interface Handlers<
168
167
  | R
169
168
  | HttpApiEndpoint.MiddlewareWithName<Endpoints, Name>
170
169
  | HttpApiEndpoint.MiddlewareServicesWithName<Endpoints, Name>
171
- | HttpApiEndpoint.ExcludeProvided<
170
+ | HttpApiEndpoint.ExcludeProvidedWithName<
172
171
  Endpoints,
173
172
  Name,
174
173
  R1 | HttpApiEndpoint.ServerServicesWithName<Endpoints, Name>
@@ -188,7 +187,7 @@ export interface Handlers<
188
187
  | R
189
188
  | HttpApiEndpoint.MiddlewareWithName<Endpoints, Name>
190
189
  | HttpApiEndpoint.MiddlewareServicesWithName<Endpoints, Name>
191
- | HttpApiEndpoint.ExcludeProvided<
190
+ | HttpApiEndpoint.ExcludeProvidedWithName<
192
191
  Endpoints,
193
192
  Name,
194
193
  R1 | HttpApiEndpoint.ServerServicesWithName<Endpoints, Name>
@@ -284,6 +283,54 @@ export declare namespace Handlers {
284
283
  never
285
284
  }
286
285
 
286
+ /**
287
+ * @since 4.0.0
288
+ * @category handlers
289
+ */
290
+ export const endpoint = <
291
+ ApiId extends string,
292
+ Groups extends HttpApiGroup.Any,
293
+ const GroupName extends HttpApiGroup.Name<Groups>,
294
+ const EndpointName extends HttpApiEndpoint.Name<HttpApiGroup.Endpoints<HttpApiGroup.WithName<Groups, GroupName>>>,
295
+ R,
296
+ Group extends HttpApiGroup.Any = HttpApiGroup.WithName<Groups, GroupName>,
297
+ Endpoint extends HttpApiEndpoint.Any = HttpApiEndpoint.WithName<HttpApiGroup.Endpoints<Group>, EndpointName>
298
+ >(
299
+ api: HttpApi.HttpApi<ApiId, Groups>,
300
+ groupName: GroupName,
301
+ endpointName: EndpointName,
302
+ handler: NoInfer<
303
+ HttpApiEndpoint.HandlerWithName<
304
+ HttpApiGroup.Endpoints<HttpApiGroup.WithName<Groups, GroupName>>,
305
+ EndpointName,
306
+ never,
307
+ R
308
+ >
309
+ >
310
+ ): Effect.Effect<
311
+ Effect.Effect<
312
+ HttpServerResponse,
313
+ never,
314
+ | HttpServerRequest
315
+ | HttpRouter.RouteContext
316
+ | Request.ParsedSearchParams
317
+ | Exclude<R, HttpApiEndpoint.MiddlewareProvides<Endpoint>>
318
+ >,
319
+ never,
320
+ | HttpApiEndpoint.ServerServices<Endpoint>
321
+ | HttpApiEndpoint.Middleware<Endpoint>
322
+ | HttpApiEndpoint.MiddlewareServices<Endpoint>
323
+ | Etag.Generator
324
+ | FileSystem
325
+ | HttpPlatform
326
+ | Path
327
+ > =>
328
+ Effect.servicesWith((services: ServiceMap.ServiceMap<any>) => {
329
+ const group = api.groups[groupName] as unknown as HttpApiGroup.AnyWithProps
330
+ const endpoint = group.endpoints[endpointName] as unknown as HttpApiEndpoint.AnyWithProps
331
+ return Effect.succeed(handlerToHttpEffect(group, endpoint, services, handler as any, false))
332
+ })
333
+
287
334
  /**
288
335
  * @since 4.0.0
289
336
  * @category security
@@ -328,7 +375,7 @@ export const securityDecode = <Security extends HttpApiSecurity.HttpApiSecurity>
328
375
  } as any
329
376
  return HttpServerRequest.asEffect().pipe(
330
377
  Effect.flatMap((request) =>
331
- Base64.decodeString((request.headers.authorization ?? "").slice(basicLen)).asEffect()
378
+ Encoding.decodeBase64String((request.headers.authorization ?? "").slice(basicLen)).asEffect()
332
379
  ),
333
380
  Effect.match({
334
381
  onFailure: () => empty,
@@ -356,7 +403,7 @@ export const securitySetCookie = (
356
403
  self: HttpApiSecurity.ApiKey,
357
404
  value: string | Redacted.Redacted,
358
405
  options?: Cookie["options"]
359
- ): Effect.Effect<void> =>
406
+ ): Effect.Effect<void, never, HttpServerRequest> =>
360
407
  HttpEffect.appendPreResponseHandler((_req, response) =>
361
408
  Effect.orDie(
362
409
  Response.setCookie(response, self.key, stringOrRedacted(value), {
@@ -497,22 +544,23 @@ function decodePayload(
497
544
  }
498
545
  }
499
546
 
500
- function handlerToRoute(
547
+ function handlerToHttpEffect(
501
548
  group: HttpApiGroup.AnyWithProps,
502
- handler: Handlers.Item<any>,
503
- services: ServiceMap.ServiceMap<any>
504
- ): HttpRouter.Route<any, any> {
505
- const endpoint = handler.endpoint
549
+ endpoint: HttpApiEndpoint.AnyWithProps,
550
+ services: ServiceMap.ServiceMap<any>,
551
+ handler: HttpApiEndpoint.Handler<any, any, any>,
552
+ isRaw: boolean
553
+ ) {
506
554
  const encodeSuccess = Schema.encodeUnknownEffect(makeSuccessSchema(endpoint))
507
555
  const encodeError = Schema.encodeUnknownEffect(makeErrorSchema(endpoint))
508
- const decodeParams = UndefinedOr.map(HttpApiEndpoint.getParamsSchema(endpoint), Schema.decodeUnknownEffect)
509
- const decodeHeaders = UndefinedOr.map(HttpApiEndpoint.getHeadersSchema(endpoint), Schema.decodeUnknownEffect)
510
- const decodeQuery = UndefinedOr.map(HttpApiEndpoint.getQuerySchema(endpoint), Schema.decodeUnknownEffect)
556
+ const decodeParams = UndefinedOr.map(endpoint.params, Schema.decodeUnknownEffect)
557
+ const decodeHeaders = UndefinedOr.map(endpoint.headers, Schema.decodeUnknownEffect)
558
+ const decodeQuery = UndefinedOr.map(endpoint.query, Schema.decodeUnknownEffect)
511
559
 
512
- const shouldParsePayload = endpoint.payload.size > 0 && !handler.isRaw
560
+ const shouldParsePayload = endpoint.payload.size > 0 && !isRaw
513
561
  const payloadBy = shouldParsePayload ? buildPayloadDecoders(endpoint.payload) : undefined
514
562
 
515
- const effect = applyMiddleware(
563
+ return applyMiddleware(
516
564
  group,
517
565
  endpoint,
518
566
  services,
@@ -545,10 +593,11 @@ function handlerToRoute(
545
593
  request.payload = yield* result
546
594
  }
547
595
  }
548
- const response = yield* handler.handler(request)
596
+ const response = yield* handler(request)
549
597
  return Response.isHttpServerResponse(response) ? response : yield* encodeSuccess(response)
550
598
  })
551
599
  ).pipe(
600
+ Effect.withErrorReporting,
552
601
  Effect.catch((error) => {
553
602
  if (Schema.isSchemaError(error)) {
554
603
  error = HttpApiSchemaError.fromSchemaError(error)
@@ -557,11 +606,18 @@ function handlerToRoute(
557
606
  }),
558
607
  Effect.provideServices(services)
559
608
  )
609
+ }
560
610
 
611
+ function handlerToRoute(
612
+ group: HttpApiGroup.AnyWithProps,
613
+ handler: Handlers.Item<any>,
614
+ services: ServiceMap.ServiceMap<any>
615
+ ): HttpRouter.Route<any, any> {
616
+ const endpoint = handler.endpoint
561
617
  return HttpRouter.route(
562
618
  endpoint.method,
563
619
  endpoint.path as HttpRouter.PathInput,
564
- effect,
620
+ handlerToHttpEffect(group, endpoint, services, handler.handler, handler.isRaw),
565
621
  { uninterruptible: handler.uninterruptible }
566
622
  )
567
623
  }
@@ -585,7 +641,7 @@ const applyMiddleware = <A extends Effect.Effect<any, any, any>>(
585
641
  ) => {
586
642
  const options = { group, endpoint }
587
643
  for (const key_ of endpoint.middlewares) {
588
- const key = key_ as any as HttpApiMiddleware.AnyKey
644
+ const key = key_ as any as HttpApiMiddleware.AnyService
589
645
  const service = services.mapUnsafe.get(key_.key) as HttpApiMiddleware.HttpApiMiddleware<any, any, any>
590
646
  const apply = HttpApiMiddleware.isSecurity(key)
591
647
  ? makeSecurityMiddleware(key, service as any)
@@ -601,7 +657,7 @@ const securityMiddlewareCache = new WeakMap<
601
657
  >()
602
658
 
603
659
  const makeSecurityMiddleware = (
604
- key: HttpApiMiddleware.AnyKeySecurity,
660
+ key: HttpApiMiddleware.AnyServiceSecurity,
605
661
  service: HttpApiMiddleware.HttpApiMiddlewareSecurity<any, any, any, any>
606
662
  ): (effect: Effect.Effect<any, any, any>, options: any) => Effect.Effect<any, any, any> => {
607
663
  if (securityMiddlewareCache.has(key)) {
@@ -32,7 +32,7 @@ import * as HttpApiSchema from "./HttpApiSchema.ts"
32
32
  * @since 4.0.0
33
33
  * @category models
34
34
  */
35
- export type Client<Groups extends HttpApiGroup.Any, E, R> = Simplify<
35
+ export type Client<Groups extends HttpApiGroup.Any, E = HttpApiSchemaError, R = never> = Simplify<
36
36
  & {
37
37
  readonly [Group in Extract<Groups, { readonly topLevel: false }> as HttpApiGroup.Name<Group>]: Client.Group<
38
38
  Group,
@@ -46,6 +46,14 @@ export type Client<Groups extends HttpApiGroup.Any, E, R> = Simplify<
46
46
  }
47
47
  >
48
48
 
49
+ /**
50
+ * @since 4.0.0
51
+ * @category models
52
+ */
53
+ export type ForApi<Api extends HttpApi.Any, E = HttpApiSchemaError, R = never> = Api extends
54
+ HttpApi.HttpApi<infer _Id, infer Groups> ? Client<Groups, E, R> :
55
+ never
56
+
49
57
  /**
50
58
  * @since 4.0.0
51
59
  * @category models
@@ -128,7 +136,7 @@ const makeClient = <ApiId extends string, Groups extends HttpApiGroup.Any, E, R>
128
136
  readonly group: HttpApiGroup.AnyWithProps
129
137
  readonly endpoint: HttpApiEndpoint.AnyWithProps
130
138
  readonly mergedAnnotations: ServiceMap.ServiceMap<never>
131
- readonly middleware: ReadonlySet<HttpApiMiddleware.AnyKey>
139
+ readonly middleware: ReadonlySet<HttpApiMiddleware.AnyService>
132
140
  readonly successes: ReadonlyMap<number, readonly [Schema.Top, ...Array<Schema.Top>]>
133
141
  readonly errors: ReadonlyMap<number, readonly [Schema.Top, ...Array<Schema.Top>]>
134
142
  readonly endpointFn: Function
@@ -217,7 +225,7 @@ const makeClient = <ApiId extends string, Groups extends HttpApiGroup.Any, E, R>
217
225
  })
218
226
 
219
227
  // encoders
220
- const encodeParams = UndefinedOr.map(HttpApiEndpoint.getParamsSchema(endpoint), Schema.encodeUnknownEffect)
228
+ const encodeParams = UndefinedOr.map(endpoint.params, Schema.encodeUnknownEffect)
221
229
 
222
230
  const payloadSchemas = HttpApiEndpoint.getPayloadSchemas(endpoint)
223
231
  const encodePayload = Arr.isArrayNonEmpty(payloadSchemas) ?
@@ -226,8 +234,8 @@ const makeClient = <ApiId extends string, Groups extends HttpApiGroup.Any, E, R>
226
234
  : Schema.encodeUnknownEffect(Schema.Union(payloadSchemas)) :
227
235
  undefined
228
236
 
229
- const encodeHeaders = UndefinedOr.map(HttpApiEndpoint.getHeadersSchema(endpoint), Schema.encodeUnknownEffect)
230
- const encodeQuery = UndefinedOr.map(HttpApiEndpoint.getQuerySchema(endpoint), Schema.encodeUnknownEffect)
237
+ const encodeHeaders = UndefinedOr.map(endpoint.headers, Schema.encodeUnknownEffect)
238
+ const encodeQuery = UndefinedOr.map(endpoint.query, Schema.encodeUnknownEffect)
231
239
 
232
240
  const middlewareKeys = Array.from(onEndpointOptions.middleware, (tag) => `${tag.key}/Client`)
233
241
 
@@ -314,7 +322,7 @@ export const make = <ApiId extends string, Groups extends HttpApiGroup.Any>(
314
322
  readonly baseUrl?: URL | string | undefined
315
323
  }
316
324
  ): Effect.Effect<
317
- Client<Groups, HttpApiSchemaError, never>,
325
+ Client<Groups>,
318
326
  never,
319
327
  HttpClient.HttpClient | HttpApiGroup.MiddlewareClient<Groups>
320
328
  > =>