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
package/src/Combiner.ts CHANGED
@@ -1,16 +1,92 @@
1
1
  /**
2
+ * A module for combining two values of the same type into one.
3
+ *
4
+ * A `Combiner<A>` wraps a single binary function `(self: A, that: A) => A`.
5
+ * It describes *how* two values merge but carries no initial/empty value
6
+ * (for that, see {@link Reducer} which extends `Combiner` with an
7
+ * `initialValue`).
8
+ *
9
+ * ## Mental model
10
+ *
11
+ * - **Combiner** – an object with a `combine(self, that)` method that returns
12
+ * a value of the same type.
13
+ * - **Argument order** – `self` is the "left" / accumulator side, `that` is
14
+ * the "right" / incoming side.
15
+ * - **No identity element** – unlike a monoid, a `Combiner` does not require
16
+ * a neutral element. Use {@link Reducer} when you need one.
17
+ * - **Purity** – all combiners produced by this module are pure; they never
18
+ * mutate their arguments.
19
+ * - **Composability** – combiners can be lifted into `Option`, `Struct`,
20
+ * `Tuple`, and other container types via helpers in those modules.
21
+ *
22
+ * ## Common tasks
23
+ *
24
+ * - Create a combiner from any binary function → {@link make}
25
+ * - Swap argument order → {@link flip}
26
+ * - Pick the smaller / larger of two values → {@link min} / {@link max}
27
+ * - Always keep the first or last value → {@link first} / {@link last}
28
+ * - Ignore both values and return a fixed result → {@link constant}
29
+ * - Insert a separator between combined values → {@link intercalate}
30
+ *
31
+ * ## Gotchas
32
+ *
33
+ * - `min` and `max` require an `Order<A>`, not a raw comparator. Import from
34
+ * e.g. `Number.Order` or `String.Order`.
35
+ * - `intercalate` is curried: call it with the separator first, then pass the
36
+ * base combiner.
37
+ * - A `Reducer` (which adds `initialValue`) is also a valid `Combiner` — you
38
+ * can pass a `Reducer` anywhere a `Combiner` is expected.
39
+ *
40
+ * ## Quickstart
41
+ *
42
+ * **Example** (combining strings with a separator)
43
+ *
44
+ * ```ts
45
+ * import { Combiner, String } from "effect"
46
+ *
47
+ * const csv = Combiner.intercalate(",")(String.ReducerConcat)
48
+ *
49
+ * console.log(csv.combine("a", "b"))
50
+ * // Output: "a,b"
51
+ *
52
+ * console.log(csv.combine(csv.combine("a", "b"), "c"))
53
+ * // Output: "a,b,c"
54
+ * ```
55
+ *
56
+ * ## See also
57
+ *
58
+ * - {@link make} – the primary constructor
59
+ * - {@link Combiner} – the core interface
60
+ *
2
61
  * @since 4.0.0
3
62
  */
4
63
  import type * as Order from "./Order.ts"
5
64
 
6
65
  /**
7
- * A `Combiner` represents any type of value that can be combined
8
- * with another value of the same type to produce a new value.
66
+ * Represents a strategy for combining two values of the same type `A`.
67
+ *
68
+ * A `Combiner` contains a single `combine` method that takes two values and
69
+ * returns a merged result. It does not include an identity/empty value; use
70
+ * `Reducer` when you need one.
71
+ *
72
+ * When to use:
73
+ * - You need to describe how two values of the same type merge.
74
+ * - You want to pass a reusable combining strategy to library functions like
75
+ * `Struct.makeCombiner` or `Option.makeCombinerFailFast`.
76
+ * - You are building a `Reducer` and need to define the combining step first.
77
+ *
78
+ * **Example** (number addition combiner)
79
+ *
80
+ * ```ts
81
+ * import { Combiner } from "effect"
82
+ *
83
+ * const Sum = Combiner.make<number>((self, that) => self + that)
9
84
  *
10
- * Examples:
11
- * - numbers with addition
12
- * - strings with concatenation
13
- * - arrays with merging
85
+ * console.log(Sum.combine(3, 4))
86
+ * // Output: 7
87
+ * ```
88
+ *
89
+ * @see {@link make} – create a `Combiner` from a function
14
90
  *
15
91
  * @category model
16
92
  * @since 4.0.0
@@ -23,7 +99,29 @@ export interface Combiner<A> {
23
99
  }
24
100
 
25
101
  /**
26
- * Creates a `Combiner` from a `combine` function.
102
+ * Creates a `Combiner` from a binary function.
103
+ *
104
+ * When to use:
105
+ * - You have a custom combining operation that is not covered by the built-in
106
+ * constructors (`min`, `max`, `first`, `last`, `constant`).
107
+ *
108
+ * Behavior:
109
+ * - Returns a new `Combiner` whose `combine` method delegates to the provided
110
+ * function.
111
+ * - Pure – the returned combiner does not mutate its arguments.
112
+ *
113
+ * **Example** (multiplying numbers)
114
+ *
115
+ * ```ts
116
+ * import { Combiner } from "effect"
117
+ *
118
+ * const Product = Combiner.make<number>((self, that) => self * that)
119
+ *
120
+ * console.log(Product.combine(3, 5))
121
+ * // Output: 15
122
+ * ```
123
+ *
124
+ * @see {@link Combiner} – the interface this creates
27
125
  *
28
126
  * @since 4.0.0
29
127
  */
@@ -32,6 +130,31 @@ export function make<A>(combine: (self: A, that: A) => A): Combiner<A> {
32
130
  }
33
131
 
34
132
  /**
133
+ * Reverses the argument order of a combiner's `combine` method.
134
+ *
135
+ * When to use:
136
+ * - You need the "right" value to act as the accumulator side.
137
+ * - You want to reverse the natural direction of a non-commutative combiner
138
+ * (e.g. string concatenation).
139
+ *
140
+ * Behavior:
141
+ * - Returns a new `Combiner` where `combine(self, that)` calls the original
142
+ * combiner as `combine(that, self)`.
143
+ * - Does not mutate the input combiner.
144
+ *
145
+ * **Example** (reversing string concatenation)
146
+ *
147
+ * ```ts
148
+ * import { Combiner, String } from "effect"
149
+ *
150
+ * const Prepend = Combiner.flip(String.ReducerConcat)
151
+ *
152
+ * console.log(Prepend.combine("a", "b"))
153
+ * // Output: "ba"
154
+ * ```
155
+ *
156
+ * @see {@link make}
157
+ *
35
158
  * @since 4.0.0
36
159
  */
37
160
  export function flip<A>(combiner: Combiner<A>): Combiner<A> {
@@ -39,7 +162,33 @@ export function flip<A>(combiner: Combiner<A>): Combiner<A> {
39
162
  }
40
163
 
41
164
  /**
42
- * Creates a `Combiner` that returns the smaller of two values.
165
+ * Creates a `Combiner` that returns the smaller of two values according to
166
+ * the provided `Order`.
167
+ *
168
+ * When to use:
169
+ * - You want to accumulate the minimum value across a collection.
170
+ * - You are building a `Reducer` that tracks the running minimum.
171
+ *
172
+ * Behavior:
173
+ * - Compares using the given `Order`. When values are equal, returns `that`
174
+ * (the second argument).
175
+ * - Pure – does not mutate either argument.
176
+ *
177
+ * **Example** (minimum of two numbers)
178
+ *
179
+ * ```ts
180
+ * import { Combiner, Number } from "effect"
181
+ *
182
+ * const Min = Combiner.min(Number.Order)
183
+ *
184
+ * console.log(Min.combine(3, 1))
185
+ * // Output: 1
186
+ *
187
+ * console.log(Min.combine(1, 3))
188
+ * // Output: 1
189
+ * ```
190
+ *
191
+ * @see {@link max}
43
192
  *
44
193
  * @since 4.0.0
45
194
  */
@@ -48,7 +197,33 @@ export function min<A>(order: Order.Order<A>): Combiner<A> {
48
197
  }
49
198
 
50
199
  /**
51
- * Creates a `Combiner` that returns the larger of two values.
200
+ * Creates a `Combiner` that returns the larger of two values according to
201
+ * the provided `Order`.
202
+ *
203
+ * When to use:
204
+ * - You want to accumulate the maximum value across a collection.
205
+ * - You are building a `Reducer` that tracks the running maximum.
206
+ *
207
+ * Behavior:
208
+ * - Compares using the given `Order`. When values are equal, returns `that`
209
+ * (the second argument).
210
+ * - Pure – does not mutate either argument.
211
+ *
212
+ * **Example** (maximum of two numbers)
213
+ *
214
+ * ```ts
215
+ * import { Combiner, Number } from "effect"
216
+ *
217
+ * const Max = Combiner.max(Number.Order)
218
+ *
219
+ * console.log(Max.combine(3, 1))
220
+ * // Output: 3
221
+ *
222
+ * console.log(Max.combine(1, 3))
223
+ * // Output: 3
224
+ * ```
225
+ *
226
+ * @see {@link min}
52
227
  *
53
228
  * @since 4.0.0
54
229
  */
@@ -57,7 +232,29 @@ export function max<A>(order: Order.Order<A>): Combiner<A> {
57
232
  }
58
233
 
59
234
  /**
60
- * Creates a `Combiner` that returns the first value.
235
+ * Creates a `Combiner` that always returns the first (left) argument.
236
+ *
237
+ * When to use:
238
+ * - You want "first write wins" semantics when merging values.
239
+ * - You need a combiner but the combining logic should be a no-op that keeps
240
+ * the existing value.
241
+ *
242
+ * Behavior:
243
+ * - `combine(self, that)` returns `self`, ignoring `that`.
244
+ * - Pure – the second argument is discarded, not mutated.
245
+ *
246
+ * **Example** (keeping the first value)
247
+ *
248
+ * ```ts
249
+ * import { Combiner } from "effect"
250
+ *
251
+ * const First = Combiner.first<number>()
252
+ *
253
+ * console.log(First.combine(1, 2))
254
+ * // Output: 1
255
+ * ```
256
+ *
257
+ * @see {@link last}
61
258
  *
62
259
  * @since 4.0.0
63
260
  */
@@ -66,7 +263,28 @@ export function first<A>(): Combiner<A> {
66
263
  }
67
264
 
68
265
  /**
69
- * Creates a `Combiner` that returns the last value.
266
+ * Creates a `Combiner` that always returns the last (right) argument.
267
+ *
268
+ * When to use:
269
+ * - You want "last write wins" semantics when merging values.
270
+ * - You need a combiner that replaces the accumulator with each new value.
271
+ *
272
+ * Behavior:
273
+ * - `combine(self, that)` returns `that`, ignoring `self`.
274
+ * - Pure – the first argument is discarded, not mutated.
275
+ *
276
+ * **Example** (keeping the last value)
277
+ *
278
+ * ```ts
279
+ * import { Combiner } from "effect"
280
+ *
281
+ * const Last = Combiner.last<number>()
282
+ *
283
+ * console.log(Last.combine(1, 2))
284
+ * // Output: 2
285
+ * ```
286
+ *
287
+ * @see {@link first}
70
288
  *
71
289
  * @since 4.0.0
72
290
  */
@@ -75,7 +293,31 @@ export function last<A>(): Combiner<A> {
75
293
  }
76
294
 
77
295
  /**
78
- * Creates a `Combiner` that returns a constant value.
296
+ * Creates a `Combiner` that ignores both arguments and always returns the
297
+ * given constant value.
298
+ *
299
+ * When to use:
300
+ * - You need a combiner that produces a fixed result regardless of input.
301
+ * - You are providing a combiner to a generic API but the combined value is
302
+ * predetermined.
303
+ *
304
+ * Behavior:
305
+ * - `combine(self, that)` returns the constant `a`, ignoring both arguments.
306
+ * - Pure – no mutation occurs.
307
+ *
308
+ * **Example** (always returning zero)
309
+ *
310
+ * ```ts
311
+ * import { Combiner } from "effect"
312
+ *
313
+ * const Zero = Combiner.constant(0)
314
+ *
315
+ * console.log(Zero.combine(42, 99))
316
+ * // Output: 0
317
+ * ```
318
+ *
319
+ * @see {@link first}
320
+ * @see {@link last}
79
321
  *
80
322
  * @since 4.0.0
81
323
  */
@@ -84,7 +326,32 @@ export function constant<A>(a: A): Combiner<A> {
84
326
  }
85
327
 
86
328
  /**
87
- * Between each pair of elements insert `middle`.
329
+ * Wraps a `Combiner` so that a separator value is inserted between every
330
+ * pair of combined elements.
331
+ *
332
+ * When to use:
333
+ * - You are building delimited strings (CSV, paths, etc.) by repeated
334
+ * combination.
335
+ * - You need to inject a fixed separator between accumulated values.
336
+ *
337
+ * Behavior:
338
+ * - `intercalate(middle)(combiner).combine(self, that)` is equivalent to
339
+ * `combiner.combine(self, combiner.combine(middle, that))`.
340
+ * - Curried: first provide the separator, then the base combiner.
341
+ * - Does not mutate the input combiner; returns a new one.
342
+ *
343
+ * **Example** (joining strings with a separator)
344
+ *
345
+ * ```ts
346
+ * import { Combiner, String } from "effect"
347
+ *
348
+ * const commaSep = Combiner.intercalate(",")(String.ReducerConcat)
349
+ *
350
+ * console.log(commaSep.combine("a", "b"))
351
+ * // Output: "a,b"
352
+ * ```
353
+ *
354
+ * @see {@link make}
88
355
  *
89
356
  * @since 4.0.0
90
357
  */
package/src/Config.ts CHANGED
@@ -75,7 +75,7 @@ import type { Path, SourceError } from "./ConfigProvider.ts"
75
75
  import * as ConfigProvider from "./ConfigProvider.ts"
76
76
  import * as Duration_ from "./Duration.ts"
77
77
  import * as Effect from "./Effect.ts"
78
- import { dual, type LazyArg } from "./Function.ts"
78
+ import { dual } from "./Function.ts"
79
79
  import { PipeInspectableProto, YieldableProto } from "./internal/core.ts"
80
80
  import * as LogLevel_ from "./LogLevel.ts"
81
81
  import * as Option from "./Option.ts"
@@ -569,7 +569,7 @@ function isMissingDataOnly(issue: Issue.Issue): boolean {
569
569
  * ```ts
570
570
  * import { Config, ConfigProvider, Effect } from "effect"
571
571
  *
572
- * const port = Config.number("port").pipe(Config.withDefault(() => 3000))
572
+ * const port = Config.number("port").pipe(Config.withDefault(3000))
573
573
  *
574
574
  * const provider = ConfigProvider.fromUnknown({})
575
575
  * // Effect.runSync(port.parse(provider)) // 3000
@@ -598,7 +598,7 @@ export const withDefault: {
598
598
  * ```ts
599
599
  * import { Config, ConfigProvider, Effect } from "effect"
600
600
  *
601
- * const port = Config.number("port").pipe(Config.withDefault(() => 3000))
601
+ * const port = Config.number("port").pipe(Config.withDefault(3000))
602
602
  *
603
603
  * const provider = ConfigProvider.fromUnknown({})
604
604
  * // Effect.runSync(port.parse(provider)) // 3000
@@ -609,7 +609,7 @@ export const withDefault: {
609
609
  *
610
610
  * @since 4.0.0
611
611
  */
612
- <const A2>(defaultValue: LazyArg<A2>): <A>(self: Config<A>) => Config<A2 | A>
612
+ <const A2>(defaultValue: A2): <A>(self: Config<A>) => Config<A2 | A>
613
613
  /**
614
614
  * Provides a fallback value when the config fails due to missing data.
615
615
  *
@@ -627,7 +627,7 @@ export const withDefault: {
627
627
  * ```ts
628
628
  * import { Config, ConfigProvider, Effect } from "effect"
629
629
  *
630
- * const port = Config.number("port").pipe(Config.withDefault(() => 3000))
630
+ * const port = Config.number("port").pipe(Config.withDefault(3000))
631
631
  *
632
632
  * const provider = ConfigProvider.fromUnknown({})
633
633
  * // Effect.runSync(port.parse(provider)) // 3000
@@ -638,13 +638,13 @@ export const withDefault: {
638
638
  *
639
639
  * @since 4.0.0
640
640
  */
641
- <A, const A2>(self: Config<A>, defaultValue: LazyArg<A2>): Config<A | A2>
642
- } = dual(2, <A, const A2>(self: Config<A>, defaultValue: LazyArg<A2>): Config<A | A2> => {
641
+ <A, const A2>(self: Config<A>, defaultValue: A2): Config<A | A2>
642
+ } = dual(2, <A, const A2>(self: Config<A>, defaultValue: A2): Config<A | A2> => {
643
643
  return orElse(self, (err) => {
644
644
  if (Schema.isSchemaError(err.cause)) {
645
645
  const issue = err.cause.issue
646
646
  if (isMissingDataOnly(issue)) {
647
- return succeed(defaultValue())
647
+ return succeed(defaultValue)
648
648
  }
649
649
  }
650
650
  return fail(err.cause)
@@ -678,7 +678,7 @@ export const withDefault: {
678
678
  * @since 4.0.0
679
679
  */
680
680
  export const option = <A>(self: Config<A>): Config<Option.Option<A>> =>
681
- self.pipe(map(Option.some), withDefault(() => Option.none()))
681
+ self.pipe(map(Option.some), withDefault(Option.none()))
682
682
 
683
683
  /**
684
684
  * Utility type that recursively replaces primitives with `Config` in a nested
@@ -886,18 +886,19 @@ export function schema<T, E>(codec: Schema.Codec<T, E>, path?: string | ConfigPr
886
886
  const decodeUnknownEffect = Parser.decodeUnknownEffect(toCodecStringTree)
887
887
  const toCodecStringTreeEncoded = AST.toEncoded(toCodecStringTree.ast)
888
888
  const defaultPath = typeof path === "string" ? [path] : path ?? []
889
- return make((provider) =>
890
- recur(toCodecStringTreeEncoded, provider, defaultPath).pipe(
889
+ return make((provider) => {
890
+ const path = provider.prefix ? [...provider.prefix, ...defaultPath] : defaultPath
891
+ return recur(toCodecStringTreeEncoded, provider, defaultPath).pipe(
891
892
  Effect.flatMapEager((tree) =>
892
- decodeUnknownEffect(tree).pipe(Effect.mapErrorEager((issue) =>
893
- new Schema.SchemaError(defaultPath.length > 0 ? new Issue.Pointer(defaultPath, issue) : issue)
894
- ))
893
+ decodeUnknownEffect(tree).pipe(
894
+ Effect.mapErrorEager((issue) =>
895
+ new Schema.SchemaError(path.length > 0 ? new Issue.Pointer(path, issue) : issue)
896
+ )
897
+ )
895
898
  ),
896
- Effect.mapErrorEager((cause) =>
897
- new ConfigError(cause)
898
- )
899
+ Effect.mapErrorEager((cause) => new ConfigError(cause))
899
900
  )
900
- )
901
+ })
901
902
  }
902
903
 
903
904
  /** @internal */
@@ -938,7 +939,7 @@ export const Boolean = Schema.Literals([...TrueValues.literals, ...FalseValues.l
938
939
  * - Pass to {@link schema} for custom paths, or use the {@link duration}
939
940
  * convenience constructor.
940
941
  *
941
- * Accepts any string that `Duration.fromDurationInput` can parse (e.g.
942
+ * Accepts any string that `Duration.fromInput` can parse (e.g.
942
943
  * `"10 seconds"`, `"500 millis"`).
943
944
  *
944
945
  * @see {@link duration} – convenience constructor
@@ -948,7 +949,7 @@ export const Boolean = Schema.Literals([...TrueValues.literals, ...FalseValues.l
948
949
  */
949
950
  export const Duration = Schema.String.pipe(Schema.decodeTo(Schema.Duration, {
950
951
  decode: Getter.transformOrFail((s) => {
951
- const d = Duration_.fromDurationInput(s as any)
952
+ const d = Duration_.fromInput(s as any)
952
953
  return d ? Effect.succeed(d) : Effect.fail(new Issue.InvalidValue(Option.some(s)))
953
954
  }),
954
955
  encode: Getter.forbidden(() => "Encoding Duration is not supported")
@@ -1235,7 +1236,7 @@ export function boolean(name?: string) {
1235
1236
  *
1236
1237
  * Shortcut for `Config.schema(Config.Duration, name)`.
1237
1238
  *
1238
- * Accepts any string that `Duration.fromDurationInput` can parse (e.g.
1239
+ * Accepts any string that `Duration.fromInput` can parse (e.g.
1239
1240
  * `"10 seconds"`, `"500 millis"`, `"2 minutes"`).
1240
1241
  *
1241
1242
  * **Example** (Reading a duration)
@@ -1446,3 +1447,164 @@ export function url(name?: string) {
1446
1447
  export function date(name?: string) {
1447
1448
  return schema(Schema.DateValid, name)
1448
1449
  }
1450
+
1451
+ /**
1452
+ * Scopes a config under a named prefix.
1453
+ *
1454
+ * When to use:
1455
+ * - Grouping related config keys under a common namespace (e.g.
1456
+ * `"database"`, `"redis"`).
1457
+ * - Building reusable config fragments that callers nest at different paths.
1458
+ *
1459
+ * The prefix is prepended to every key the inner config reads. With
1460
+ * `fromUnknown` this means an extra object level; with `fromEnv` it means
1461
+ * a `_`-separated prefix on env var names.
1462
+ *
1463
+ * Multiple `nested` calls compose: the outermost name becomes the
1464
+ * outermost path segment.
1465
+ *
1466
+ * **Example** (Nesting a struct config under `"database"`)
1467
+ *
1468
+ * ```ts
1469
+ * import { Config, ConfigProvider, Effect } from "effect"
1470
+ *
1471
+ * const dbConfig = Config.all({
1472
+ * host: Config.string("host"),
1473
+ * port: Config.number("port")
1474
+ * }).pipe(Config.nested("database"))
1475
+ *
1476
+ * const provider = ConfigProvider.fromUnknown({
1477
+ * database: { host: "localhost", port: "5432" }
1478
+ * })
1479
+ * // Effect.runSync(dbConfig.parse(provider))
1480
+ * // { host: "localhost", port: 5432 }
1481
+ * ```
1482
+ *
1483
+ * **Example** (Env vars with nested prefix)
1484
+ *
1485
+ * ```ts
1486
+ * import { Config, ConfigProvider, Effect } from "effect"
1487
+ *
1488
+ * const host = Config.string("host").pipe(Config.nested("database"))
1489
+ *
1490
+ * const provider = ConfigProvider.fromEnv({
1491
+ * env: { database_host: "localhost" }
1492
+ * })
1493
+ * // Effect.runSync(host.parse(provider)) // "localhost"
1494
+ * ```
1495
+ *
1496
+ * @see {@link all} – combine multiple configs into a struct
1497
+ * @see {@link schema} – read structured config from a schema
1498
+ *
1499
+ * @category Combinators
1500
+ * @since 4.0.0
1501
+ */
1502
+ export const nested: {
1503
+ /**
1504
+ * Scopes a config under a named prefix.
1505
+ *
1506
+ * When to use:
1507
+ * - Grouping related config keys under a common namespace (e.g.
1508
+ * `"database"`, `"redis"`).
1509
+ * - Building reusable config fragments that callers nest at different paths.
1510
+ *
1511
+ * The prefix is prepended to every key the inner config reads. With
1512
+ * `fromUnknown` this means an extra object level; with `fromEnv` it means
1513
+ * a `_`-separated prefix on env var names.
1514
+ *
1515
+ * Multiple `nested` calls compose: the outermost name becomes the
1516
+ * outermost path segment.
1517
+ *
1518
+ * **Example** (Nesting a struct config under `"database"`)
1519
+ *
1520
+ * ```ts
1521
+ * import { Config, ConfigProvider, Effect } from "effect"
1522
+ *
1523
+ * const dbConfig = Config.all({
1524
+ * host: Config.string("host"),
1525
+ * port: Config.number("port")
1526
+ * }).pipe(Config.nested("database"))
1527
+ *
1528
+ * const provider = ConfigProvider.fromUnknown({
1529
+ * database: { host: "localhost", port: "5432" }
1530
+ * })
1531
+ * // Effect.runSync(dbConfig.parse(provider))
1532
+ * // { host: "localhost", port: 5432 }
1533
+ * ```
1534
+ *
1535
+ * **Example** (Env vars with nested prefix)
1536
+ *
1537
+ * ```ts
1538
+ * import { Config, ConfigProvider, Effect } from "effect"
1539
+ *
1540
+ * const host = Config.string("host").pipe(Config.nested("database"))
1541
+ *
1542
+ * const provider = ConfigProvider.fromEnv({
1543
+ * env: { database_host: "localhost" }
1544
+ * })
1545
+ * // Effect.runSync(host.parse(provider)) // "localhost"
1546
+ * ```
1547
+ *
1548
+ * @see {@link all} – combine multiple configs into a struct
1549
+ * @see {@link schema} – read structured config from a schema
1550
+ *
1551
+ * @category Combinators
1552
+ * @since 4.0.0
1553
+ */
1554
+ (name: string): <A>(self: Config<A>) => Config<A>
1555
+ /**
1556
+ * Scopes a config under a named prefix.
1557
+ *
1558
+ * When to use:
1559
+ * - Grouping related config keys under a common namespace (e.g.
1560
+ * `"database"`, `"redis"`).
1561
+ * - Building reusable config fragments that callers nest at different paths.
1562
+ *
1563
+ * The prefix is prepended to every key the inner config reads. With
1564
+ * `fromUnknown` this means an extra object level; with `fromEnv` it means
1565
+ * a `_`-separated prefix on env var names.
1566
+ *
1567
+ * Multiple `nested` calls compose: the outermost name becomes the
1568
+ * outermost path segment.
1569
+ *
1570
+ * **Example** (Nesting a struct config under `"database"`)
1571
+ *
1572
+ * ```ts
1573
+ * import { Config, ConfigProvider, Effect } from "effect"
1574
+ *
1575
+ * const dbConfig = Config.all({
1576
+ * host: Config.string("host"),
1577
+ * port: Config.number("port")
1578
+ * }).pipe(Config.nested("database"))
1579
+ *
1580
+ * const provider = ConfigProvider.fromUnknown({
1581
+ * database: { host: "localhost", port: "5432" }
1582
+ * })
1583
+ * // Effect.runSync(dbConfig.parse(provider))
1584
+ * // { host: "localhost", port: 5432 }
1585
+ * ```
1586
+ *
1587
+ * **Example** (Env vars with nested prefix)
1588
+ *
1589
+ * ```ts
1590
+ * import { Config, ConfigProvider, Effect } from "effect"
1591
+ *
1592
+ * const host = Config.string("host").pipe(Config.nested("database"))
1593
+ *
1594
+ * const provider = ConfigProvider.fromEnv({
1595
+ * env: { database_host: "localhost" }
1596
+ * })
1597
+ * // Effect.runSync(host.parse(provider)) // "localhost"
1598
+ * ```
1599
+ *
1600
+ * @see {@link all} – combine multiple configs into a struct
1601
+ * @see {@link schema} – read structured config from a schema
1602
+ *
1603
+ * @category Combinators
1604
+ * @since 4.0.0
1605
+ */
1606
+ <A>(self: Config<A>, name: string): Config<A>
1607
+ } = dual(
1608
+ 2,
1609
+ <A>(self: Config<A>, name: string): Config<A> => make((provider) => self.parse(ConfigProvider.nested(provider, name)))
1610
+ )