effect 4.0.0-beta.2 → 4.0.0-beta.20

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 (876) 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 +733 -687
  42. package/dist/Effect.d.ts.map +1 -1
  43. package/dist/Effect.js +233 -250
  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 +91 -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 +3 -2
  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 +123 -76
  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 +225 -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 +33 -6
  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/HttpServerRespondable.d.ts +2 -2
  470. package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
  471. package/dist/unstable/http/HttpServerRespondable.js +5 -5
  472. package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
  473. package/dist/unstable/http/HttpServerResponse.d.ts +2 -1
  474. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  475. package/dist/unstable/http/HttpServerResponse.js +3 -1
  476. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  477. package/dist/unstable/http/Multipart.d.ts +3 -3
  478. package/dist/unstable/http/UrlParams.d.ts +14 -6
  479. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  480. package/dist/unstable/http/UrlParams.js +1 -1
  481. package/dist/unstable/http/UrlParams.js.map +1 -1
  482. package/dist/unstable/http/internal/preResponseHandler.d.ts +2 -0
  483. package/dist/unstable/http/internal/preResponseHandler.d.ts.map +1 -0
  484. package/dist/unstable/http/internal/preResponseHandler.js +10 -0
  485. package/dist/unstable/http/internal/preResponseHandler.js.map +1 -0
  486. package/dist/unstable/httpapi/HttpApi.d.ts +3 -3
  487. package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
  488. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  489. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +11 -5
  490. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  491. package/dist/unstable/httpapi/HttpApiBuilder.js +23 -12
  492. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  493. package/dist/unstable/httpapi/HttpApiClient.d.ts +7 -2
  494. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  495. package/dist/unstable/httpapi/HttpApiClient.js +3 -3
  496. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  497. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +31 -44
  498. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  499. package/dist/unstable/httpapi/HttpApiEndpoint.js +15 -24
  500. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  501. package/dist/unstable/httpapi/HttpApiError.d.ts +11 -0
  502. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  503. package/dist/unstable/httpapi/HttpApiError.js +29 -9
  504. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  505. package/dist/unstable/httpapi/HttpApiGroup.d.ts +3 -3
  506. package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
  507. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  508. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +4 -4
  509. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  510. package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
  511. package/dist/unstable/httpapi/HttpApiScalar.d.ts +6 -0
  512. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  513. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  514. package/dist/unstable/httpapi/HttpApiSecurity.d.ts +2 -2
  515. package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
  516. package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
  517. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  518. package/dist/unstable/httpapi/OpenApi.js +32 -21
  519. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  520. package/dist/unstable/observability/Otlp.d.ts +12 -12
  521. package/dist/unstable/observability/Otlp.d.ts.map +1 -1
  522. package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
  523. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  524. package/dist/unstable/observability/OtlpExporter.js +1 -1
  525. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  526. package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
  527. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  528. package/dist/unstable/observability/OtlpLogger.js +7 -4
  529. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  530. package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
  531. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  532. package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
  533. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  534. package/dist/unstable/persistence/KeyValueStore.d.ts +1 -1
  535. package/dist/unstable/persistence/KeyValueStore.js +6 -6
  536. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  537. package/dist/unstable/persistence/Persistable.d.ts +2 -2
  538. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  539. package/dist/unstable/persistence/PersistedCache.d.ts +6 -5
  540. package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
  541. package/dist/unstable/persistence/PersistedCache.js +2 -1
  542. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  543. package/dist/unstable/persistence/PersistedQueue.d.ts +12 -12
  544. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  545. package/dist/unstable/persistence/PersistedQueue.js +12 -11
  546. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  547. package/dist/unstable/persistence/Persistence.d.ts +1 -1
  548. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  549. package/dist/unstable/persistence/Persistence.js +2 -2
  550. package/dist/unstable/persistence/Persistence.js.map +1 -1
  551. package/dist/unstable/persistence/RateLimiter.d.ts +3 -3
  552. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  553. package/dist/unstable/persistence/RateLimiter.js +1 -1
  554. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  555. package/dist/unstable/process/ChildProcess.d.ts +5 -128
  556. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  557. package/dist/unstable/process/ChildProcess.js +1 -65
  558. package/dist/unstable/process/ChildProcess.js.map +1 -1
  559. package/dist/unstable/process/ChildProcessSpawner.d.ts +45 -7
  560. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  561. package/dist/unstable/process/ChildProcessSpawner.js +21 -1
  562. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  563. package/dist/unstable/reactivity/Atom.d.ts +10 -10
  564. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  565. package/dist/unstable/reactivity/Atom.js +16 -13
  566. package/dist/unstable/reactivity/Atom.js.map +1 -1
  567. package/dist/unstable/reactivity/AtomHttpApi.d.ts +8 -8
  568. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  569. package/dist/unstable/reactivity/AtomHttpApi.js +3 -3
  570. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  571. package/dist/unstable/reactivity/AtomRegistry.d.ts +6 -0
  572. package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
  573. package/dist/unstable/reactivity/AtomRegistry.js +24 -7
  574. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  575. package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
  576. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  577. package/dist/unstable/reactivity/AtomRpc.js +1 -1
  578. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  579. package/dist/unstable/reactivity/Hydration.d.ts +39 -0
  580. package/dist/unstable/reactivity/Hydration.d.ts.map +1 -0
  581. package/dist/unstable/reactivity/Hydration.js +76 -0
  582. package/dist/unstable/reactivity/Hydration.js.map +1 -0
  583. package/dist/unstable/reactivity/index.d.ts +4 -0
  584. package/dist/unstable/reactivity/index.d.ts.map +1 -1
  585. package/dist/unstable/reactivity/index.js +4 -0
  586. package/dist/unstable/reactivity/index.js.map +1 -1
  587. package/dist/unstable/rpc/Rpc.d.ts +4 -4
  588. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  589. package/dist/unstable/rpc/Rpc.js.map +1 -1
  590. package/dist/unstable/rpc/RpcClient.d.ts +5 -26
  591. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  592. package/dist/unstable/rpc/RpcClient.js +6 -13
  593. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  594. package/dist/unstable/rpc/RpcGroup.d.ts +2 -2
  595. package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
  596. package/dist/unstable/rpc/RpcGroup.js.map +1 -1
  597. package/dist/unstable/rpc/RpcMiddleware.d.ts +3 -3
  598. package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
  599. package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
  600. package/dist/unstable/rpc/RpcSchema.d.ts +13 -0
  601. package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
  602. package/dist/unstable/rpc/RpcSchema.js +14 -0
  603. package/dist/unstable/rpc/RpcSchema.js.map +1 -1
  604. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  605. package/dist/unstable/rpc/RpcSerialization.js +34 -9
  606. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  607. package/dist/unstable/rpc/RpcServer.d.ts +0 -7
  608. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  609. package/dist/unstable/rpc/RpcServer.js +15 -15
  610. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  611. package/dist/unstable/rpc/Utils.d.ts.map +1 -1
  612. package/dist/unstable/rpc/Utils.js +2 -1
  613. package/dist/unstable/rpc/Utils.js.map +1 -1
  614. package/dist/unstable/schema/Model.d.ts +1 -1
  615. package/dist/unstable/schema/Model.d.ts.map +1 -1
  616. package/dist/unstable/schema/VariantSchema.d.ts +3 -3
  617. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  618. package/dist/unstable/schema/VariantSchema.js +3 -3
  619. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  620. package/dist/unstable/socket/Socket.d.ts +4 -4
  621. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  622. package/dist/unstable/socket/Socket.js +6 -5
  623. package/dist/unstable/socket/Socket.js.map +1 -1
  624. package/dist/unstable/socket/SocketServer.d.ts +3 -3
  625. package/dist/unstable/sql/Migrator.d.ts +1 -1
  626. package/dist/unstable/sql/SqlClient.d.ts +1 -1
  627. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  628. package/dist/unstable/sql/SqlError.d.ts +14 -14
  629. package/dist/unstable/sql/SqlError.d.ts.map +1 -1
  630. package/dist/unstable/sql/SqlError.js +9 -3
  631. package/dist/unstable/sql/SqlError.js.map +1 -1
  632. package/dist/unstable/sql/SqlModel.d.ts +2 -2
  633. package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
  634. package/dist/unstable/sql/SqlModel.js +3 -3
  635. package/dist/unstable/sql/SqlModel.js.map +1 -1
  636. package/dist/unstable/sql/SqlSchema.d.ts +16 -5
  637. package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
  638. package/dist/unstable/sql/SqlSchema.js +17 -7
  639. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  640. package/dist/unstable/sql/Statement.js +0 -1
  641. package/dist/unstable/sql/Statement.js.map +1 -1
  642. package/dist/unstable/workers/Worker.d.ts.map +1 -1
  643. package/dist/unstable/workers/Worker.js +2 -1
  644. package/dist/unstable/workers/Worker.js.map +1 -1
  645. package/dist/unstable/workflow/DurableClock.d.ts +3 -3
  646. package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
  647. package/dist/unstable/workflow/DurableClock.js +3 -3
  648. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  649. package/dist/unstable/workflow/DurableDeferred.js +2 -2
  650. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  651. package/dist/unstable/workflow/Workflow.d.ts +3 -3
  652. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  653. package/dist/unstable/workflow/WorkflowEngine.d.ts +8 -1
  654. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  655. package/dist/unstable/workflow/WorkflowEngine.js +133 -1
  656. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  657. package/package.json +2 -2
  658. package/src/Array.ts +190 -342
  659. package/src/Cache.ts +9 -8
  660. package/src/Cause.ts +1 -1
  661. package/src/Channel.ts +554 -138
  662. package/src/Chunk.ts +81 -268
  663. package/src/Combiner.ts +280 -13
  664. package/src/Config.ts +183 -21
  665. package/src/Data.ts +538 -374
  666. package/src/DateTime.ts +24 -164
  667. package/src/Duration.ts +15 -15
  668. package/src/Effect.ts +909 -817
  669. package/src/Encoding.ts +879 -0
  670. package/src/Equal.ts +278 -111
  671. package/src/ErrorReporter.ts +459 -0
  672. package/src/Fiber.ts +9 -2
  673. package/src/FileSystem.ts +7 -8
  674. package/src/Filter.ts +48 -58
  675. package/src/Formatter.ts +253 -51
  676. package/src/Graph.ts +24 -11
  677. package/src/HashMap.ts +15 -14
  678. package/src/Iterable.ts +105 -50
  679. package/src/JsonSchema.ts +383 -10
  680. package/src/Latch.ts +112 -0
  681. package/src/Layer.ts +11 -15
  682. package/src/LayerMap.ts +5 -5
  683. package/src/LogLevel.ts +37 -0
  684. package/src/Logger.ts +33 -100
  685. package/src/ManagedRuntime.ts +1 -1
  686. package/src/Metric.ts +4 -4
  687. package/src/Optic.ts +948 -19
  688. package/src/Option.ts +30 -20
  689. package/src/Pipeable.ts +32 -1
  690. package/src/PlatformError.ts +5 -5
  691. package/src/Pool.ts +13 -11
  692. package/src/PubSub.ts +10 -9
  693. package/src/Pull.ts +1 -1
  694. package/src/Queue.ts +0 -1
  695. package/src/Random.ts +51 -14
  696. package/src/RcMap.ts +5 -5
  697. package/src/RcRef.ts +1 -1
  698. package/src/Record.ts +43 -152
  699. package/src/Reducer.ts +166 -7
  700. package/src/References.ts +4 -4
  701. package/src/Request.ts +3 -2
  702. package/src/RequestResolver.ts +9 -29
  703. package/src/Result.ts +13 -0
  704. package/src/Schedule.ts +315 -160
  705. package/src/Schema.ts +661 -116
  706. package/src/SchemaAST.ts +3 -2
  707. package/src/SchemaGetter.ts +12 -14
  708. package/src/SchemaParser.ts +11 -0
  709. package/src/SchemaRepresentation.ts +43 -24
  710. package/src/SchemaTransformation.ts +189 -4
  711. package/src/ScopedCache.ts +3 -3
  712. package/src/Semaphore.ts +356 -0
  713. package/src/ServiceMap.ts +47 -38
  714. package/src/Sink.ts +78 -26
  715. package/src/Stream.ts +565 -600
  716. package/src/Struct.ts +26 -0
  717. package/src/SubscriptionRef.ts +3 -2
  718. package/src/SynchronizedRef.ts +3 -2
  719. package/src/Trie.ts +18 -17
  720. package/src/TxChunk.ts +72 -53
  721. package/src/TxDeferred.ts +394 -0
  722. package/src/TxHashMap.ts +332 -285
  723. package/src/TxHashSet.ts +111 -116
  724. package/src/TxPriorityQueue.ts +767 -0
  725. package/src/TxPubSub.ts +789 -0
  726. package/src/TxQueue.ts +241 -251
  727. package/src/TxReentrantLock.ts +753 -0
  728. package/src/TxRef.ts +50 -38
  729. package/src/TxSemaphore.ts +29 -32
  730. package/src/TxSubscriptionRef.ts +639 -0
  731. package/src/Types.ts +78 -2
  732. package/src/index.ts +600 -21
  733. package/src/internal/core.ts +12 -5
  734. package/src/internal/dateTime.ts +9 -30
  735. package/src/internal/effect.ts +660 -265
  736. package/src/internal/hashMap.ts +9 -7
  737. package/src/internal/random.ts +20 -0
  738. package/src/internal/rcRef.ts +4 -3
  739. package/src/internal/request.ts +2 -2
  740. package/src/internal/schema/annotations.ts +2 -0
  741. package/src/internal/schema/schema.ts +1 -0
  742. package/src/internal/trie.ts +16 -9
  743. package/src/testing/TestClock.ts +13 -11
  744. package/src/testing/TestSchema.ts +10 -10
  745. package/src/unstable/ai/AiError.ts +97 -44
  746. package/src/unstable/ai/Chat.ts +12 -11
  747. package/src/unstable/ai/LanguageModel.ts +129 -25
  748. package/src/unstable/ai/McpSchema.ts +59 -13
  749. package/src/unstable/ai/McpServer.ts +46 -8
  750. package/src/unstable/ai/Model.ts +40 -9
  751. package/src/unstable/ai/Prompt.ts +37 -37
  752. package/src/unstable/ai/Response.ts +25 -25
  753. package/src/unstable/ai/Tool.ts +19 -13
  754. package/src/unstable/ai/index.ts +1 -1
  755. package/src/unstable/cli/CliOutput.ts +75 -6
  756. package/src/unstable/cli/Command.ts +501 -60
  757. package/src/unstable/cli/GlobalFlag.ts +243 -0
  758. package/src/unstable/cli/HelpDoc.ts +80 -2
  759. package/src/unstable/cli/index.ts +5 -0
  760. package/src/unstable/cli/internal/command.ts +50 -34
  761. package/src/unstable/cli/internal/completions/CommandDescriptor.ts +7 -2
  762. package/src/unstable/cli/internal/help.ts +146 -0
  763. package/src/unstable/cli/internal/parser.ts +33 -54
  764. package/src/unstable/cluster/ClusterCron.ts +2 -2
  765. package/src/unstable/cluster/ClusterWorkflowEngine.ts +5 -4
  766. package/src/unstable/cluster/Entity.ts +11 -10
  767. package/src/unstable/cluster/EntityResource.ts +4 -4
  768. package/src/unstable/cluster/Envelope.ts +1 -1
  769. package/src/unstable/cluster/K8sHttpClient.ts +5 -5
  770. package/src/unstable/cluster/MessageStorage.ts +3 -5
  771. package/src/unstable/cluster/Runners.ts +6 -5
  772. package/src/unstable/cluster/Sharding.ts +12 -10
  773. package/src/unstable/cluster/ShardingConfig.ts +30 -31
  774. package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
  775. package/src/unstable/cluster/internal/entityManager.ts +9 -8
  776. package/src/unstable/cluster/internal/entityReaper.ts +2 -1
  777. package/src/unstable/cluster/internal/resourceRef.ts +2 -1
  778. package/src/unstable/encoding/Sse.ts +3 -5
  779. package/src/unstable/eventlog/EventLog.ts +2 -1
  780. package/src/unstable/http/Cookies.ts +3 -3
  781. package/src/unstable/http/Headers.ts +28 -13
  782. package/src/unstable/http/HttpBody.ts +42 -1
  783. package/src/unstable/http/HttpClient.ts +58 -23
  784. package/src/unstable/http/HttpClientRequest.ts +38 -13
  785. package/src/unstable/http/HttpEffect.ts +46 -68
  786. package/src/unstable/http/HttpMethod.ts +16 -4
  787. package/src/unstable/http/HttpMiddleware.ts +9 -24
  788. package/src/unstable/http/HttpServerError.ts +42 -45
  789. package/src/unstable/http/HttpServerRespondable.ts +6 -6
  790. package/src/unstable/http/HttpServerResponse.ts +4 -2
  791. package/src/unstable/http/Multipart.ts +2 -2
  792. package/src/unstable/http/UrlParams.ts +20 -5
  793. package/src/unstable/http/internal/preResponseHandler.ts +15 -0
  794. package/src/unstable/httpapi/HttpApi.ts +5 -5
  795. package/src/unstable/httpapi/HttpApiBuilder.ts +77 -21
  796. package/src/unstable/httpapi/HttpApiClient.ts +14 -6
  797. package/src/unstable/httpapi/HttpApiEndpoint.ts +67 -83
  798. package/src/unstable/httpapi/HttpApiError.ts +30 -9
  799. package/src/unstable/httpapi/HttpApiGroup.ts +6 -6
  800. package/src/unstable/httpapi/HttpApiMiddleware.ts +4 -4
  801. package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
  802. package/src/unstable/httpapi/HttpApiSecurity.ts +3 -3
  803. package/src/unstable/httpapi/OpenApi.ts +41 -23
  804. package/src/unstable/observability/Otlp.ts +12 -12
  805. package/src/unstable/observability/OtlpExporter.ts +3 -3
  806. package/src/unstable/observability/OtlpLogger.ts +13 -9
  807. package/src/unstable/observability/OtlpMetrics.ts +4 -4
  808. package/src/unstable/observability/OtlpTracer.ts +4 -4
  809. package/src/unstable/persistence/KeyValueStore.ts +6 -6
  810. package/src/unstable/persistence/Persistable.ts +2 -2
  811. package/src/unstable/persistence/PersistedCache.ts +20 -9
  812. package/src/unstable/persistence/PersistedQueue.ts +25 -24
  813. package/src/unstable/persistence/Persistence.ts +3 -3
  814. package/src/unstable/persistence/RateLimiter.ts +4 -4
  815. package/src/unstable/process/ChildProcess.ts +6 -208
  816. package/src/unstable/process/ChildProcessSpawner.ts +75 -14
  817. package/src/unstable/reactivity/Atom.ts +27 -25
  818. package/src/unstable/reactivity/AtomHttpApi.ts +21 -20
  819. package/src/unstable/reactivity/AtomRegistry.ts +31 -7
  820. package/src/unstable/reactivity/AtomRpc.ts +3 -3
  821. package/src/unstable/reactivity/Hydration.ts +112 -0
  822. package/src/unstable/reactivity/index.ts +5 -0
  823. package/src/unstable/rpc/Rpc.ts +6 -6
  824. package/src/unstable/rpc/RpcClient.ts +12 -54
  825. package/src/unstable/rpc/RpcGroup.ts +4 -4
  826. package/src/unstable/rpc/RpcMiddleware.ts +3 -3
  827. package/src/unstable/rpc/RpcSchema.ts +17 -0
  828. package/src/unstable/rpc/RpcSerialization.ts +44 -9
  829. package/src/unstable/rpc/RpcServer.ts +21 -30
  830. package/src/unstable/rpc/Utils.ts +2 -1
  831. package/src/unstable/schema/VariantSchema.ts +6 -6
  832. package/src/unstable/socket/Socket.ts +16 -17
  833. package/src/unstable/sql/SqlClient.ts +1 -1
  834. package/src/unstable/sql/SqlError.ts +11 -9
  835. package/src/unstable/sql/SqlModel.ts +5 -5
  836. package/src/unstable/sql/SqlSchema.ts +41 -25
  837. package/src/unstable/sql/Statement.ts +0 -1
  838. package/src/unstable/workers/Worker.ts +2 -1
  839. package/src/unstable/workflow/DurableClock.ts +8 -8
  840. package/src/unstable/workflow/DurableDeferred.ts +2 -2
  841. package/src/unstable/workflow/Workflow.ts +1 -1
  842. package/src/unstable/workflow/WorkflowEngine.ts +181 -2
  843. package/dist/PartitionedSemaphore.d.ts +0 -52
  844. package/dist/PartitionedSemaphore.d.ts.map +0 -1
  845. package/dist/PartitionedSemaphore.js.map +0 -1
  846. package/dist/encoding/Base64.d.ts +0 -67
  847. package/dist/encoding/Base64.d.ts.map +0 -1
  848. package/dist/encoding/Base64.js +0 -146
  849. package/dist/encoding/Base64.js.map +0 -1
  850. package/dist/encoding/Base64Url.d.ts +0 -60
  851. package/dist/encoding/Base64Url.d.ts.map +0 -1
  852. package/dist/encoding/Base64Url.js +0 -89
  853. package/dist/encoding/Base64Url.js.map +0 -1
  854. package/dist/encoding/EncodingError.d.ts +0 -31
  855. package/dist/encoding/EncodingError.d.ts.map +0 -1
  856. package/dist/encoding/EncodingError.js +0 -22
  857. package/dist/encoding/EncodingError.js.map +0 -1
  858. package/dist/encoding/Hex.d.ts +0 -61
  859. package/dist/encoding/Hex.d.ts.map +0 -1
  860. package/dist/encoding/Hex.js +0 -115
  861. package/dist/encoding/Hex.js.map +0 -1
  862. package/dist/encoding/index.d.ts +0 -26
  863. package/dist/encoding/index.d.ts.map +0 -1
  864. package/dist/encoding/index.js +0 -27
  865. package/dist/encoding/index.js.map +0 -1
  866. package/dist/unstable/cli/internal/builtInFlags.d.ts +0 -7
  867. package/dist/unstable/cli/internal/builtInFlags.d.ts.map +0 -1
  868. package/dist/unstable/cli/internal/builtInFlags.js +0 -44
  869. package/dist/unstable/cli/internal/builtInFlags.js.map +0 -1
  870. package/src/PartitionedSemaphore.ts +0 -182
  871. package/src/encoding/Base64.ts +0 -366
  872. package/src/encoding/Base64Url.ts +0 -104
  873. package/src/encoding/EncodingError.ts +0 -35
  874. package/src/encoding/Hex.ts +0 -390
  875. package/src/encoding/index.ts +0 -31
  876. package/src/unstable/cli/internal/builtInFlags.ts +0 -78
package/src/Schedule.ts CHANGED
@@ -36,8 +36,9 @@ import * as Duration from "./Duration.ts"
36
36
  import type { Effect } from "./Effect.ts"
37
37
  import type { LazyArg } from "./Function.ts"
38
38
  import { constant, dual, identity } from "./Function.ts"
39
-
39
+ import { isEffect } from "./internal/core.ts"
40
40
  import * as effect from "./internal/effect.ts"
41
+ import * as random from "./internal/random.ts"
41
42
  import { type Pipeable, pipeArguments } from "./Pipeable.ts"
42
43
  import { hasProperty } from "./Predicate.ts"
43
44
  import * as Pull from "./Pull.ts"
@@ -47,6 +48,8 @@ import type { Contravariant, Covariant, Mutable } from "./Types.ts"
47
48
 
48
49
  const TypeId = "~effect/Schedule"
49
50
 
51
+ const randomNext: Effect<number> = random.Random.useSync((random) => random.nextDoubleUnsafe())
52
+
50
53
  /**
51
54
  * A Schedule defines a strategy for repeating or retrying effects based on some policy.
52
55
  *
@@ -346,7 +349,7 @@ export const fromStep = <Input, Output, EnvX, Error, ErrorX, Env>(
346
349
  Error,
347
350
  Env
348
351
  >
349
- ): Schedule<Output, Input, Error | ErrorX, Env | EnvX> => {
352
+ ): Schedule<Output, Input, Error | Pull.ExcludeDone<ErrorX>, Env | EnvX> => {
350
353
  const self = Object.create(ScheduleProto)
351
354
  self.step = step
352
355
  return self
@@ -395,7 +398,7 @@ export const fromStepWithMetadata = <Input, Output, EnvX, ErrorX, Error, Env>(
395
398
  Error,
396
399
  Env
397
400
  >
398
- ): Schedule<Output, Input, Error | ErrorX, Env | EnvX> =>
401
+ ): Schedule<Output, Input, Error | Pull.ExcludeDone<ErrorX>, Env | EnvX> =>
399
402
  fromStep(effect.map(step, (f) => {
400
403
  const meta = metadataFn()
401
404
  return (now, input) => f(meta(now, input))
@@ -747,7 +750,7 @@ export const addDelay: {
747
750
  * @since 2.0.0
748
751
  * @category utils
749
752
  */
750
- <Output, Error2 = never, Env2 = never>(f: (output: Output) => Effect<Duration.DurationInput, Error2, Env2>): <Input, Error, Env>(
753
+ <Output, Error2 = never, Env2 = never>(f: (output: Output) => Effect<Duration.Input, Error2, Env2>): <Input, Error, Env>(
751
754
  self: Schedule<Output, Input, Error, Env>
752
755
  ) => Schedule<Output, Input, Error | Error2, Env | Env2>
753
756
  /**
@@ -868,17 +871,16 @@ export const addDelay: {
868
871
  */
869
872
  <Output, Input, Error, Env, Error2 = never, Env2 = never>(
870
873
  self: Schedule<Output, Input, Error, Env>,
871
- f: (output: Output) => Effect<Duration.DurationInput, Error2, Env2>
874
+ f: (output: Output) => Effect<Duration.Input, Error2, Env2>
872
875
  ): Schedule<Output, Input, Error | Error2, Env | Env2>
873
876
  } = dual(2, <Output, Input, Error, Env, Error2 = never, Env2 = never>(
874
877
  self: Schedule<Output, Input, Error, Env>,
875
- f: (output: Output) => Effect<Duration.DurationInput, Error2, Env2>
878
+ f: (output: Output) => Effect<Duration.Input, Error2, Env2>
876
879
  ): Schedule<Output, Input, Error | Error2, Env | Env2> =>
877
880
  modifyDelay(
878
881
  self,
879
882
  (output, delay) =>
880
- effect.map(f(output), (d) =>
881
- Duration.sum(Duration.fromDurationInputUnsafe(d), Duration.fromDurationInputUnsafe(delay)))
883
+ effect.map(f(output), (d) => Duration.sum(Duration.fromInputUnsafe(d), Duration.fromInputUnsafe(delay)))
882
884
  ))
883
885
 
884
886
  /**
@@ -1140,116 +1142,211 @@ export const andThenResult: {
1140
1142
  } = dual(2, <Output, Input, Error, Env, Output2, Input2, Error2, Env2>(
1141
1143
  self: Schedule<Output, Input, Error, Env>,
1142
1144
  other: Schedule<Output2, Input2, Error2, Env2>
1143
- ): Schedule<Result.Result<Output2, Output>, Input & Input2, Error | Error2, Env | Env2> =>
1144
- fromStep(effect.map(
1145
- effect.zip(toStep(self), toStep(other)),
1146
- ([leftStep, rightStep]) => {
1147
- let currentStep: (now: number, input: Input & Input2) => Pull.Pull<
1148
- [Output | Output2, Duration.Duration],
1145
+ ): Schedule<Result.Result<Output, Output2>, Input & Input2, Error | Error2, Env | Env2> =>
1146
+ fromStep(effect.sync(() => {
1147
+ let currentSide = 0
1148
+ let currentStep:
1149
+ | undefined
1150
+ | ((now: number, input: Input & Input2) => Pull.Pull<
1151
+ [Result.Result<Output, Output2>, Duration.Duration],
1149
1152
  Error | Error2,
1150
- Output | Output2,
1153
+ Result.Result<Output, Output2>,
1151
1154
  Env | Env2
1152
- > = leftStep
1153
- let toResult: (output: Output | Output2) => Result.Result<Output2, Output> = Result.fail as any
1154
- return (now, input) =>
1155
- Pull.matchEffect(currentStep(now, input), {
1156
- onSuccess: ([output, duration]) =>
1157
- effect.succeed</**
1158
- * Returns a new `Schedule` that will first execute the left (i.e. `self`)
1159
- * schedule to completion. Once the left schedule is complete, the right (i.e.
1160
- * `other`) schedule will be executed to completion.
1161
- *
1162
- * The output of the resulting schedule is a `Result` where outputs of the
1163
- * left schedule are emitted as `Result.Err<Output>` and outputs of the right
1164
- * schedule are emitted as `Result.Ok<Output>`.
1165
- *
1166
- * @example
1167
- * ```ts
1168
- * import { Console, Effect, Result, Schedule } from "effect"
1169
- *
1170
- * // Track which phase of the schedule we're in
1171
- * const phaseTracker = Schedule.andThenResult(
1172
- * Schedule.exponential("100 millis").pipe(Schedule.take(2)),
1173
- * Schedule.spaced("500 millis").pipe(Schedule.take(2))
1174
- * )
1175
- *
1176
- * const program = Effect.gen(function*() {
1177
- * yield* Effect.repeat(
1178
- * Effect.gen(function*() {
1179
- * yield* Console.log("Task executed")
1180
- * return "task-result"
1181
- * }),
1182
- * phaseTracker.pipe(
1183
- * Schedule.tapOutput((result) =>
1184
- * Result.match(result, {
1185
- * onFailure: (phase1Output) => Console.log(`Phase 1: ${phase1Output}`),
1186
- * onSuccess: (phase2Output) => Console.log(`Phase 2: ${phase2Output}`)
1187
- * })
1188
- * )
1189
- * )
1190
- * )
1191
- * })
1192
- * ```
1193
- *
1194
- * @since 2.0.0
1195
- * @category sequencing
1196
- */
1197
- [Result.Result<Output2, Output>, Duration.Duration]>([toResult(output), duration]),
1198
- onFailure: effect.failCause,
1199
- onDone: (output) =>
1200
- effect.suspend(() => {
1201
- const pull = effect.succeed</**
1202
- * Returns a new `Schedule` that will first execute the left (i.e. `self`)
1203
- * schedule to completion. Once the left schedule is complete, the right (i.e.
1204
- * `other`) schedule will be executed to completion.
1205
- *
1206
- * The output of the resulting schedule is a `Result` where outputs of the
1207
- * left schedule are emitted as `Result.Err<Output>` and outputs of the right
1208
- * schedule are emitted as `Result.Ok<Output>`.
1209
- *
1210
- * @example
1211
- * ```ts
1212
- * import { Console, Effect, Result, Schedule } from "effect"
1213
- *
1214
- * // Track which phase of the schedule we're in
1215
- * const phaseTracker = Schedule.andThenResult(
1216
- * Schedule.exponential("100 millis").pipe(Schedule.take(2)),
1217
- * Schedule.spaced("500 millis").pipe(Schedule.take(2))
1218
- * )
1219
- *
1220
- * const program = Effect.gen(function*() {
1221
- * yield* Effect.repeat(
1222
- * Effect.gen(function*() {
1223
- * yield* Console.log("Task executed")
1224
- * return "task-result"
1225
- * }),
1226
- * phaseTracker.pipe(
1227
- * Schedule.tapOutput((result) =>
1228
- * Result.match(result, {
1229
- * onFailure: (phase1Output) => Console.log(`Phase 1: ${phase1Output}`),
1230
- * onSuccess: (phase2Output) => Console.log(`Phase 2: ${phase2Output}`)
1231
- * })
1232
- * )
1233
- * )
1234
- * )
1235
- * })
1236
- * ```
1237
- *
1238
- * @since 2.0.0
1239
- * @category sequencing
1240
- */
1241
- [Result.Result<Output2, Output>, Duration.Duration]>(
1242
- [toResult(output), Duration.zero]
1243
- )
1244
- if (currentStep === leftStep) {
1245
- currentStep = rightStep
1246
- toResult = Result.succeed as any
1247
- }
1248
- return pull
1249
- })
1250
- });
1251
- }
1252
- )))
1155
+ >)
1156
+ const left = map(self, Result.succeed)
1157
+ const right = map(other, Result.fail)
1158
+ return function recur(
1159
+ now,
1160
+ input
1161
+ ): Pull.Pull<
1162
+ [Result.Result<Output, Output2>, Duration.Duration],
1163
+ Error | Error2,
1164
+ Result.Result<Output, Output2>,
1165
+ Env | Env2
1166
+ > {
1167
+ if (currentStep) return currentStep(now, input)
1168
+ return toStep<
1169
+ /**
1170
+ * Returns a new `Schedule` that will first execute the left (i.e. `self`)
1171
+ * schedule to completion. Once the left schedule is complete, the right (i.e.
1172
+ * `other`) schedule will be executed to completion.
1173
+ *
1174
+ * The output of the resulting schedule is a `Result` where outputs of the
1175
+ * left schedule are emitted as `Result.Err<Output>` and outputs of the right
1176
+ * schedule are emitted as `Result.Ok<Output>`.
1177
+ *
1178
+ * @example
1179
+ * ```ts
1180
+ * import { Console, Effect, Result, Schedule } from "effect"
1181
+ *
1182
+ * // Track which phase of the schedule we're in
1183
+ * const phaseTracker = Schedule.andThenResult(
1184
+ * Schedule.exponential("100 millis").pipe(Schedule.take(2)),
1185
+ * Schedule.spaced("500 millis").pipe(Schedule.take(2))
1186
+ * )
1187
+ *
1188
+ * const program = Effect.gen(function*() {
1189
+ * yield* Effect.repeat(
1190
+ * Effect.gen(function*() {
1191
+ * yield* Console.log("Task executed")
1192
+ * return "task-result"
1193
+ * }),
1194
+ * phaseTracker.pipe(
1195
+ * Schedule.tapOutput((result) =>
1196
+ * Result.match(result, {
1197
+ * onFailure: (phase1Output) => Console.log(`Phase 1: ${phase1Output}`),
1198
+ * onSuccess: (phase2Output) => Console.log(`Phase 2: ${phase2Output}`)
1199
+ * })
1200
+ * )
1201
+ * )
1202
+ * )
1203
+ * })
1204
+ * ```
1205
+ *
1206
+ * @since 2.0.0
1207
+ * @category sequencing
1208
+ */
1209
+ Result.Result<Output, Output2>,
1210
+ /**
1211
+ * Returns a new `Schedule` that will first execute the left (i.e. `self`)
1212
+ * schedule to completion. Once the left schedule is complete, the right (i.e.
1213
+ * `other`) schedule will be executed to completion.
1214
+ *
1215
+ * The output of the resulting schedule is a `Result` where outputs of the
1216
+ * left schedule are emitted as `Result.Err<Output>` and outputs of the right
1217
+ * schedule are emitted as `Result.Ok<Output>`.
1218
+ *
1219
+ * @example
1220
+ * ```ts
1221
+ * import { Console, Effect, Result, Schedule } from "effect"
1222
+ *
1223
+ * // Track which phase of the schedule we're in
1224
+ * const phaseTracker = Schedule.andThenResult(
1225
+ * Schedule.exponential("100 millis").pipe(Schedule.take(2)),
1226
+ * Schedule.spaced("500 millis").pipe(Schedule.take(2))
1227
+ * )
1228
+ *
1229
+ * const program = Effect.gen(function*() {
1230
+ * yield* Effect.repeat(
1231
+ * Effect.gen(function*() {
1232
+ * yield* Console.log("Task executed")
1233
+ * return "task-result"
1234
+ * }),
1235
+ * phaseTracker.pipe(
1236
+ * Schedule.tapOutput((result) =>
1237
+ * Result.match(result, {
1238
+ * onFailure: (phase1Output) => Console.log(`Phase 1: ${phase1Output}`),
1239
+ * onSuccess: (phase2Output) => Console.log(`Phase 2: ${phase2Output}`)
1240
+ * })
1241
+ * )
1242
+ * )
1243
+ * )
1244
+ * })
1245
+ * ```
1246
+ *
1247
+ * @since 2.0.0
1248
+ * @category sequencing
1249
+ */
1250
+ Input & Input2,
1251
+ /**
1252
+ * Returns a new `Schedule` that will first execute the left (i.e. `self`)
1253
+ * schedule to completion. Once the left schedule is complete, the right (i.e.
1254
+ * `other`) schedule will be executed to completion.
1255
+ *
1256
+ * The output of the resulting schedule is a `Result` where outputs of the
1257
+ * left schedule are emitted as `Result.Err<Output>` and outputs of the right
1258
+ * schedule are emitted as `Result.Ok<Output>`.
1259
+ *
1260
+ * @example
1261
+ * ```ts
1262
+ * import { Console, Effect, Result, Schedule } from "effect"
1263
+ *
1264
+ * // Track which phase of the schedule we're in
1265
+ * const phaseTracker = Schedule.andThenResult(
1266
+ * Schedule.exponential("100 millis").pipe(Schedule.take(2)),
1267
+ * Schedule.spaced("500 millis").pipe(Schedule.take(2))
1268
+ * )
1269
+ *
1270
+ * const program = Effect.gen(function*() {
1271
+ * yield* Effect.repeat(
1272
+ * Effect.gen(function*() {
1273
+ * yield* Console.log("Task executed")
1274
+ * return "task-result"
1275
+ * }),
1276
+ * phaseTracker.pipe(
1277
+ * Schedule.tapOutput((result) =>
1278
+ * Result.match(result, {
1279
+ * onFailure: (phase1Output) => Console.log(`Phase 1: ${phase1Output}`),
1280
+ * onSuccess: (phase2Output) => Console.log(`Phase 2: ${phase2Output}`)
1281
+ * })
1282
+ * )
1283
+ * )
1284
+ * )
1285
+ * })
1286
+ * ```
1287
+ *
1288
+ * @since 2.0.0
1289
+ * @category sequencing
1290
+ */
1291
+ Error | Error2,
1292
+ /**
1293
+ * Returns a new `Schedule` that will first execute the left (i.e. `self`)
1294
+ * schedule to completion. Once the left schedule is complete, the right (i.e.
1295
+ * `other`) schedule will be executed to completion.
1296
+ *
1297
+ * The output of the resulting schedule is a `Result` where outputs of the
1298
+ * left schedule are emitted as `Result.Err<Output>` and outputs of the right
1299
+ * schedule are emitted as `Result.Ok<Output>`.
1300
+ *
1301
+ * @example
1302
+ * ```ts
1303
+ * import { Console, Effect, Result, Schedule } from "effect"
1304
+ *
1305
+ * // Track which phase of the schedule we're in
1306
+ * const phaseTracker = Schedule.andThenResult(
1307
+ * Schedule.exponential("100 millis").pipe(Schedule.take(2)),
1308
+ * Schedule.spaced("500 millis").pipe(Schedule.take(2))
1309
+ * )
1310
+ *
1311
+ * const program = Effect.gen(function*() {
1312
+ * yield* Effect.repeat(
1313
+ * Effect.gen(function*() {
1314
+ * yield* Console.log("Task executed")
1315
+ * return "task-result"
1316
+ * }),
1317
+ * phaseTracker.pipe(
1318
+ * Schedule.tapOutput((result) =>
1319
+ * Result.match(result, {
1320
+ * onFailure: (phase1Output) => Console.log(`Phase 1: ${phase1Output}`),
1321
+ * onSuccess: (phase2Output) => Console.log(`Phase 2: ${phase2Output}`)
1322
+ * })
1323
+ * )
1324
+ * )
1325
+ * )
1326
+ * })
1327
+ * ```
1328
+ *
1329
+ * @since 2.0.0
1330
+ * @category sequencing
1331
+ */
1332
+ Env | Env2
1333
+ >(currentSide === 0 ? left : right).pipe(
1334
+ effect.flatMap((step) => {
1335
+ currentSide++
1336
+ if (currentSide === 1) {
1337
+ currentStep = (now, input) =>
1338
+ Pull.catchDone(step(now, input), (_) => {
1339
+ currentStep = undefined
1340
+ return recur(now, input)
1341
+ })
1342
+ return currentStep(now, input)
1343
+ }
1344
+ currentStep = step
1345
+ return currentStep(now, input)
1346
+ })
1347
+ );
1348
+ };
1349
+ })))
1253
1350
 
1254
1351
  /**
1255
1352
  * Combines two `Schedule`s by recurring if both of the two schedules want
@@ -2313,7 +2410,7 @@ export const collectWhile: {
2313
2410
  <Input, Output, Error2 = never, Env2 = never>(
2314
2411
  predicate: (
2315
2412
  metadata: Metadata<Output, Input>
2316
- ) => Effect<boolean, Error2, Env2>
2413
+ ) => boolean | Effect<boolean, Error2, Env2>
2317
2414
  ): <Error, Env>(
2318
2415
  self: Schedule<Output, Input, Error, Env>
2319
2416
  ) => Schedule<Array<Output>, Input, Error | Error2, Env | Env2>
@@ -2425,19 +2522,18 @@ export const collectWhile: {
2425
2522
  self: Schedule<Output, Input, Error, Env>,
2426
2523
  predicate: (
2427
2524
  metadata: Metadata<Output, Input>
2428
- ) => Effect<boolean, Error2, Env2>
2525
+ ) => boolean | Effect<boolean, Error2, Env2>
2429
2526
  ): Schedule<Array<Output>, Input, Error | Error2, Env | Env2>
2430
2527
  } = dual(2, <Output, Input, Error, Env, Error2 = never, Env2 = never>(
2431
2528
  self: Schedule<Output, Input, Error, Env>,
2432
2529
  predicate: (
2433
2530
  metadata: Metadata<Output, Input>
2434
- ) => Effect<boolean, Error2, Env2>
2531
+ ) => boolean | Effect<boolean, Error2, Env2>
2435
2532
  ): Schedule<Array<Output>, Input, Error | Error2, Env | Env2> =>
2436
- reduce(while_(self, predicate), () => [] as Array<Output>, (outputs, output) =>
2437
- effect.succeed((() => {
2438
- outputs.push(output)
2439
- return outputs
2440
- })())))
2533
+ reduce(while_(self, predicate), () => [] as Array<Output>, (outputs, output) => {
2534
+ outputs.push(output)
2535
+ return outputs
2536
+ }))
2441
2537
 
2442
2538
  /**
2443
2539
  * Returns a new `Schedule` that recurs on the specified `Cron` schedule and
@@ -2916,6 +3012,24 @@ export const delays = <Out, In, E, R>(self: Schedule<Out, In, E, R>): Schedule<D
2916
3012
  )
2917
3013
  )
2918
3014
 
3015
+ /**
3016
+ * Returns a schedule that recurs once after the specified duration.
3017
+ *
3018
+ * The schedule outputs the configured duration for its first recurrence and
3019
+ * then completes.
3020
+ *
3021
+ * @since 2.0.0
3022
+ * @category constructors
3023
+ */
3024
+ export const duration = (durationInput: Duration.Input): Schedule<Duration.Duration> => {
3025
+ const duration = Duration.fromInputUnsafe(durationInput)
3026
+ return fromStepWithMetadata(effect.succeed((meta) =>
3027
+ meta.attempt === 1
3028
+ ? effect.succeed([duration, duration])
3029
+ : Cause.done(Duration.zero)
3030
+ ))
3031
+ }
3032
+
2919
3033
  /**
2920
3034
  * Returns a new `Schedule` that will always recur, but only during the
2921
3035
  * specified `duration` of time.
@@ -3001,10 +3115,10 @@ export const delays = <Out, In, E, R>(self: Schedule<Out, In, E, R>): Schedule<D
3001
3115
  * @since 4.0.0
3002
3116
  * @category constructors
3003
3117
  */
3004
- export const during = (duration: Duration.DurationInput): Schedule<Duration.Duration> =>
3118
+ export const during = (duration: Duration.Input): Schedule<Duration.Duration> =>
3005
3119
  while_(
3006
3120
  elapsed,
3007
- ({ output }) => effect.succeed(Duration.isLessThanOrEqualTo(output, Duration.fromDurationInputUnsafe(duration)))
3121
+ ({ output }) => effect.succeed(Duration.isLessThanOrEqualTo(output, Duration.fromInputUnsafe(duration)))
3008
3122
  )
3009
3123
 
3010
3124
  /**
@@ -3744,10 +3858,10 @@ export const elapsed: Schedule<Duration.Duration> = fromStepWithMetadata(
3744
3858
  * @category constructors
3745
3859
  */
3746
3860
  export const exponential = (
3747
- base: Duration.DurationInput,
3861
+ base: Duration.Input,
3748
3862
  factor: number = 2
3749
3863
  ): Schedule<Duration.Duration> => {
3750
- const baseMillis = Duration.toMillis(Duration.fromDurationInputUnsafe(base))
3864
+ const baseMillis = Duration.toMillis(Duration.fromInputUnsafe(base))
3751
3865
  return fromStepWithMetadata(effect.succeed((meta) => {
3752
3866
  const duration = Duration.millis(baseMillis * Math.pow(factor, meta.attempt - 1))
3753
3867
  return effect.succeed([duration, duration])
@@ -3818,8 +3932,8 @@ export const exponential = (
3818
3932
  * @since 2.0.0
3819
3933
  * @category constructors
3820
3934
  */
3821
- export const fibonacci = (one: Duration.DurationInput): Schedule<Duration.Duration> => {
3822
- const oneMillis = Duration.toMillis(Duration.fromDurationInputUnsafe(one))
3935
+ export const fibonacci = (one: Duration.Input): Schedule<Duration.Duration> => {
3936
+ const oneMillis = Duration.toMillis(Duration.fromInputUnsafe(one))
3823
3937
  return fromStep(effect.sync(() => {
3824
3938
  let a = 0
3825
3939
  let b = oneMillis
@@ -3895,12 +4009,12 @@ export const fibonacci = (one: Duration.DurationInput): Schedule<Duration.Durati
3895
4009
  * @since 2.0.0
3896
4010
  * @category constructors
3897
4011
  */
3898
- export const fixed = (interval: Duration.DurationInput): Schedule<number> => {
3899
- const window = Duration.toMillis(Duration.fromDurationInputUnsafe(interval))
4012
+ export const fixed = (interval: Duration.Input): Schedule<number> => {
4013
+ const window = Duration.toMillis(Duration.fromInputUnsafe(interval))
3900
4014
  return fromStepWithMetadata(effect.succeed((meta) =>
3901
4015
  effect.succeed([
3902
4016
  meta.attempt - 1,
3903
- window === 0 || meta.elapsedSincePrevious > window
4017
+ window === 0
3904
4018
  ? Duration.zero
3905
4019
  : Duration.millis(window - (meta.elapsed % window))
3906
4020
  ])
@@ -4032,7 +4146,7 @@ export const map: {
4032
4146
  * @since 2.0.0
4033
4147
  * @category mapping
4034
4148
  */
4035
- <Output, Output2, Error2 = never, Env2 = never>(f: (output: Output) => Effect<Output2, Error2, Env2>): <Input, Error, Env>(
4149
+ <Output, Output2, Error2 = never, Env2 = never>(f: (output: Output) => Output2 | Effect<Output2, Error2, Env2>): <Input, Error, Env>(
4036
4150
  self: Schedule<Output, Input, Error, Env>
4037
4151
  ) => Schedule<Output2, Input, Error | Error2, Env | Env2>
4038
4152
  /**
@@ -4099,17 +4213,24 @@ export const map: {
4099
4213
  */
4100
4214
  <Output, Input, Error, Env, Output2, Error2 = never, Env2 = never>(
4101
4215
  self: Schedule<Output, Input, Error, Env>,
4102
- f: (output: Output) => Effect<Output2, Error2, Env2>
4216
+ f: (output: Output) => Output2 | Effect<Output2, Error2, Env2>
4103
4217
  ): Schedule<Output2, Input, Error | Error2, Env | Env2>
4104
4218
  } = dual(2, <Output, Input, Error, Env, Output2, Error2 = never, Env2 = never>(
4105
4219
  self: Schedule<Output, Input, Error, Env>,
4106
- f: (output: Output) => Effect<Output2, Error2, Env2>
4220
+ f: (output: Output) => Output2 | Effect<Output2, Error2, Env2>
4107
4221
  ): Schedule<Output2, Input, Error | Error2, Env | Env2> => {
4108
4222
  const handle = Pull.matchEffect({
4109
- onSuccess: ([output, duration]: [Output, Duration.Duration]) =>
4110
- effect.map(f(output), (output) => [output, duration] as [Output2, Duration.Duration]),
4223
+ onSuccess: ([output, duration]: [Output, Duration.Duration]) => {
4224
+ const result = f(output)
4225
+ if (!isEffect(result)) return effect.succeed([result, duration] as [Output2, Duration.Duration])
4226
+ return effect.map(result, (output) => [output, duration] as [Output2, Duration.Duration])
4227
+ },
4111
4228
  onFailure: effect.failCause<Error>,
4112
- onDone: (output: Output) => effect.flatMap(f(output), Cause.done)
4229
+ onDone: (output: Output) => {
4230
+ const result = f(output)
4231
+ if (!isEffect(result)) return Cause.done(result as Output2)
4232
+ return effect.flatMap(result, Cause.done)
4233
+ }
4113
4234
  })
4114
4235
  return fromStep(effect.map(toStep(self), (step) => (now, input) => handle(step(now, input))))
4115
4236
  })
@@ -4183,7 +4304,7 @@ export const modifyDelay: {
4183
4304
  f: (
4184
4305
  output: Output,
4185
4306
  delay: Duration.Duration
4186
- ) => Effect<Duration.DurationInput, Error2, Env2>
4307
+ ) => Effect<Duration.Input, Error2, Env2>
4187
4308
  ): <Input, Error, Env>(
4188
4309
  self: Schedule<Output, Input, Error, Env>
4189
4310
  ) => Schedule<Output, Input, Error | Error2, Env | Env2>
@@ -4223,22 +4344,39 @@ export const modifyDelay: {
4223
4344
  self: Schedule<Output, Input, Error, Env>,
4224
4345
  f: (
4225
4346
  output: Output,
4226
- delay: Duration.DurationInput
4227
- ) => Effect<Duration.DurationInput, Error2, Env2>
4347
+ delay: Duration.Input
4348
+ ) => Effect<Duration.Input, Error2, Env2>
4228
4349
  ): Schedule<Output, Input, Error | Error2, Env | Env2>
4229
4350
  } = dual(2, <Output, Input, Error, Env, Error2 = never, Env2 = never>(
4230
4351
  self: Schedule<Output, Input, Error, Env>,
4231
4352
  f: (
4232
4353
  output: Output,
4233
- delay: Duration.DurationInput
4234
- ) => Effect<Duration.DurationInput, Error2, Env2>
4354
+ delay: Duration.Input
4355
+ ) => Effect<Duration.Input, Error2, Env2>
4235
4356
  ): Schedule<Output, Input, Error | Error2, Env | Env2> =>
4236
4357
  fromStep(effect.map(toStep(self), (step) => (now, input) =>
4237
4358
  effect.flatMap(
4238
4359
  step(now, input),
4239
- ([output, delay]) => effect.map(f(output, delay), (delay) => [output, Duration.fromDurationInputUnsafe(delay)])
4360
+ ([output, delay]) => effect.map(f(output, delay), (delay) => [output, Duration.fromInputUnsafe(delay)])
4240
4361
  ))))
4241
4362
 
4363
+ /**
4364
+ * Returns a new `Schedule` that randomly adjusts each recurrence delay.
4365
+ *
4366
+ * Delays are jittered between `80%` and `120%` of the original delay.
4367
+ *
4368
+ * @since 2.0.0
4369
+ * @category utilities
4370
+ */
4371
+ export const jittered = <Output, Input, Error, Env>(
4372
+ self: Schedule<Output, Input, Error, Env>
4373
+ ): Schedule<Output, Input, Error, Env> =>
4374
+ modifyDelay(self, (_, delay) =>
4375
+ effect.map(randomNext, (random) => {
4376
+ const millis = Duration.toMillis(Duration.fromInputUnsafe(delay))
4377
+ return Duration.millis(millis * 0.8 * (1 - random) + millis * 1.2 * random)
4378
+ }))
4379
+
4242
4380
  /**
4243
4381
  * Returns a new `Schedule` that outputs the inputs of the specified schedule.
4244
4382
  *
@@ -4559,7 +4697,7 @@ export const reduce: {
4559
4697
  */
4560
4698
  <State, Output, Error2 = never, Env2 = never>(
4561
4699
  initial: LazyArg<State>,
4562
- combine: (state: State, output: Output) => Effect<State, Error2, Env2>
4700
+ combine: (state: State, output: Output) => State | Effect<State, Error2, Env2>
4563
4701
  ): <Input, Error, Env>(
4564
4702
  self: Schedule<Output, Input, Error, Env>
4565
4703
  ) => Schedule<State, Input, Error | Error2, Env | Env2>
@@ -4677,24 +4815,30 @@ export const reduce: {
4677
4815
  <Output, Input, Error, Env, State, Error2 = never, Env2 = never>(
4678
4816
  self: Schedule<Output, Input, Error, Env>,
4679
4817
  initial: LazyArg<State>,
4680
- combine: (state: State, output: Output) => Effect<State, Error2, Env2>
4818
+ combine: (state: State, output: Output) => State | Effect<State, Error2, Env2>
4681
4819
  ): Schedule<State, Input, Error | Error2, Env | Env2>
4682
4820
  } = dual(3, <Output, Input, Error, Env, State, Error2 = never, Env2 = never>(
4683
4821
  self: Schedule<Output, Input, Error, Env>,
4684
4822
  initial: LazyArg<State>,
4685
- combine: (state: State, output: Output) => Effect<State, Error2, Env2>
4823
+ combine: (state: State, output: Output) => State | Effect<State, Error2, Env2>
4686
4824
  ): Schedule<State, Input, Error | Error2, Env | Env2> =>
4687
4825
  fromStep(effect.map(toStep(self), (step) => {
4688
4826
  let state = initial()
4689
4827
  return (now, input) =>
4690
4828
  Pull.matchEffect(step(now, input), {
4691
- onSuccess: ([output, delay]) =>
4692
- effect.map(combine(state, output), (nextState) => {
4829
+ onSuccess([output, delay]) {
4830
+ const next = combine(state, output)
4831
+ if (!isEffect(next)) return effect.succeed([next, delay] as [State, Duration.Duration])
4832
+ return effect.map(next, (nextState) => {
4693
4833
  state = nextState
4694
4834
  return [nextState, delay]
4695
- }),
4835
+ })
4836
+ },
4696
4837
  onFailure: effect.failCause,
4697
- onDone: (output) => effect.flatMap(combine(state, output), Cause.done)
4838
+ onDone(output) {
4839
+ const next = combine(state, output)
4840
+ return isEffect(next) ? effect.flatMap(next, Cause.done) : Cause.done(next)
4841
+ }
4698
4842
  })
4699
4843
  })))
4700
4844
 
@@ -4747,8 +4891,8 @@ export const reduce: {
4747
4891
  * @since 2.0.0
4748
4892
  * @category constructors
4749
4893
  */
4750
- export const spaced = (duration: Duration.DurationInput): Schedule<number> => {
4751
- const decoded = Duration.fromDurationInputUnsafe(duration)
4894
+ export const spaced = (duration: Duration.Input): Schedule<number> => {
4895
+ const decoded = Duration.fromInputUnsafe(duration)
4752
4896
  return fromStepWithMetadata(effect.succeed((meta) => effect.succeed([meta.attempt - 1, decoded])))
4753
4897
  }
4754
4898
 
@@ -5761,7 +5905,7 @@ const while_: {
5761
5905
  <Input, Output, Error2 = never, Env2 = never>(
5762
5906
  predicate: (
5763
5907
  metadata: Metadata<Output, Input>
5764
- ) => Effect<boolean, Error2, Env2>
5908
+ ) => boolean | Effect<boolean, Error2, Env2>
5765
5909
  ): <Error, Env>(
5766
5910
  self: Schedule<Output, Input, Error, Env>
5767
5911
  ) => Schedule<Output, Input, Error | Error2, Env | Env2>
@@ -5769,21 +5913,22 @@ const while_: {
5769
5913
  self: Schedule<Output, Input, Error, Env>,
5770
5914
  predicate: (
5771
5915
  metadata: Metadata<Output, Input>
5772
- ) => Effect<boolean, Error2, Env2>
5916
+ ) => boolean | Effect<boolean, Error2, Env2>
5773
5917
  ): Schedule<Output, Input, Error | Error2, Env | Env2>
5774
5918
  } = dual(2, <Output, Input, Error, Env, Error2 = never, Env2 = never>(
5775
5919
  self: Schedule<Output, Input, Error, Env>,
5776
5920
  predicate: (
5777
5921
  metadata: Metadata<Output, Input>
5778
- ) => Effect<boolean, Error2, Env2>
5922
+ ) => boolean | Effect<boolean, Error2, Env2>
5779
5923
  ): Schedule<Output, Input, Error | Error2, Env | Env2> =>
5780
5924
  fromStep(effect.map(toStep(self), (step) => {
5781
5925
  const meta = metadataFn()
5782
5926
  return (now, input) =>
5783
5927
  effect.flatMap(step(now, input), (result) => {
5784
5928
  const [output, duration] = result
5929
+ const eff = predicate({ ...meta(now, input), output, duration })
5785
5930
  return effect.flatMap(
5786
- predicate({ ...meta(now, input), output, duration }),
5931
+ isEffect(eff) ? eff : effect.succeed(eff),
5787
5932
  (check) => (check ? effect.succeed(result) : Cause.done(output))
5788
5933
  )
5789
5934
  })
@@ -5838,8 +5983,8 @@ export {
5838
5983
  * @since 2.0.0
5839
5984
  * @category constructors
5840
5985
  */
5841
- export const windowed = (interval: Duration.DurationInput): Schedule<number> => {
5842
- const window = Duration.toMillis(Duration.fromDurationInputUnsafe(interval))
5986
+ export const windowed = (interval: Duration.Input): Schedule<number> => {
5987
+ const window = Duration.toMillis(Duration.fromInputUnsafe(interval))
5843
5988
  return fromStepWithMetadata(effect.succeed((meta) =>
5844
5989
  effect.sync(() => [
5845
5990
  meta.attempt - 1,
@@ -5929,6 +6074,16 @@ export const satisfiesInputType = <T>() =>
5929
6074
  self: Schedule<Output, Input, Error, Env>
5930
6075
  ): Schedule<Output, Input, Error, Env> => self
5931
6076
 
6077
+ /**
6078
+ * Sets the input type of the provided schedule to a specified type, without
6079
+ * altering the schedule's behavior.
6080
+ *
6081
+ * @since 2.0.0
6082
+ * @category ensuring types
6083
+ */
6084
+ export const setInputType =
6085
+ <T>() => <Output, Error, Env>(self: Schedule<Output, T, Error, Env>): Schedule<Output, T, Error, Env> => self
6086
+
5932
6087
  /**
5933
6088
  * Ensures that the provided schedule respects a specified output type.
5934
6089
  *