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/Record.ts CHANGED
@@ -7,6 +7,7 @@
7
7
  import type * as Combiner from "./Combiner.ts"
8
8
  import * as Equal from "./Equal.ts"
9
9
  import type { Equivalence } from "./Equivalence.ts"
10
+ import type * as Filter from "./Filter.ts"
10
11
  import { dual, identity } from "./Function.ts"
11
12
  import type { TypeLambda } from "./HKT.ts"
12
13
  import * as Option from "./Option.ts"
@@ -1002,16 +1003,16 @@ export const mapEntries: {
1002
1003
  )
1003
1004
 
1004
1005
  /**
1005
- * Transforms a record into a record by applying the function `f` to each key and value in the original record.
1006
- * If the function returns `Some`, the key-value pair is included in the output record.
1006
+ * Transforms a record by applying the function `f` to each key and value in the original record.
1007
+ * If the function succeeds, the key-value pair is included in the output record.
1007
1008
  *
1008
1009
  * @example
1009
1010
  * ```ts
1010
- * import { Option, Record } from "effect"
1011
+ * import { Record, Result } from "effect"
1011
1012
  * import * as assert from "node:assert"
1012
1013
  *
1013
1014
  * const x = { a: 1, b: 2, c: 3 }
1014
- * const f = (a: number, key: string) => a > 2 ? Option.some(a * 2) : Option.none()
1015
+ * const f = (a: number, key: string) => a > 2 ? Result.succeed(a * 2) : Result.failVoid
1015
1016
  * assert.deepStrictEqual(Record.filterMap(x, f), { c: 6 })
1016
1017
  * ```
1017
1018
  *
@@ -1020,52 +1021,52 @@ export const mapEntries: {
1020
1021
  */
1021
1022
  export const filterMap: {
1022
1023
  /**
1023
- * Transforms a record into a record by applying the function `f` to each key and value in the original record.
1024
- * If the function returns `Some`, the key-value pair is included in the output record.
1024
+ * Transforms a record by applying the function `f` to each key and value in the original record.
1025
+ * If the function succeeds, the key-value pair is included in the output record.
1025
1026
  *
1026
1027
  * @example
1027
1028
  * ```ts
1028
- * import { Option, Record } from "effect"
1029
+ * import { Record, Result } from "effect"
1029
1030
  * import * as assert from "node:assert"
1030
1031
  *
1031
1032
  * const x = { a: 1, b: 2, c: 3 }
1032
- * const f = (a: number, key: string) => a > 2 ? Option.some(a * 2) : Option.none()
1033
+ * const f = (a: number, key: string) => a > 2 ? Result.succeed(a * 2) : Result.failVoid
1033
1034
  * assert.deepStrictEqual(Record.filterMap(x, f), { c: 6 })
1034
1035
  * ```
1035
1036
  *
1036
1037
  * @category filtering
1037
1038
  * @since 2.0.0
1038
1039
  */
1039
- <K extends string, A, B>(f: (a: A, key: K) => Option.Option<B>): (self: ReadonlyRecord<K, A>) => Record<ReadonlyRecord.NonLiteralKey<K>, B>
1040
+ <K extends string, A, B, X>(f: Filter.Filter<A, B, X, [key: K]>): (self: ReadonlyRecord<K, A>) => Record<ReadonlyRecord.NonLiteralKey<K>, B>
1040
1041
  /**
1041
- * Transforms a record into a record by applying the function `f` to each key and value in the original record.
1042
- * If the function returns `Some`, the key-value pair is included in the output record.
1042
+ * Transforms a record by applying the function `f` to each key and value in the original record.
1043
+ * If the function succeeds, the key-value pair is included in the output record.
1043
1044
  *
1044
1045
  * @example
1045
1046
  * ```ts
1046
- * import { Option, Record } from "effect"
1047
+ * import { Record, Result } from "effect"
1047
1048
  * import * as assert from "node:assert"
1048
1049
  *
1049
1050
  * const x = { a: 1, b: 2, c: 3 }
1050
- * const f = (a: number, key: string) => a > 2 ? Option.some(a * 2) : Option.none()
1051
+ * const f = (a: number, key: string) => a > 2 ? Result.succeed(a * 2) : Result.failVoid
1051
1052
  * assert.deepStrictEqual(Record.filterMap(x, f), { c: 6 })
1052
1053
  * ```
1053
1054
  *
1054
1055
  * @category filtering
1055
1056
  * @since 2.0.0
1056
1057
  */
1057
- <K extends string, A, B>(self: ReadonlyRecord<K, A>, f: (a: A, key: K) => Option.Option<B>): Record<ReadonlyRecord.NonLiteralKey<K>, B>
1058
+ <K extends string, A, B, X>(self: ReadonlyRecord<K, A>, f: Filter.Filter<A, B, X, [key: K]>): Record<ReadonlyRecord.NonLiteralKey<K>, B>
1058
1059
  } = dual(
1059
1060
  2,
1060
- <K extends string, A, B>(
1061
+ <K extends string, A, B, X>(
1061
1062
  self: ReadonlyRecord<K, A>,
1062
- f: (a: A, key: K) => Option.Option<B>
1063
+ f: Filter.Filter<A, B, X, [key: K]>
1063
1064
  ): Record<ReadonlyRecord.NonLiteralKey<K>, B> => {
1064
1065
  const out: Record<string, B> = empty()
1065
1066
  for (const key of keys(self)) {
1066
- const o = f(self[key], key)
1067
- if (Option.isSome(o)) {
1068
- out[key] = o.value
1067
+ const result = f(self[key], key)
1068
+ if (R.isSuccess(result)) {
1069
+ out[key] = result.success
1069
1070
  }
1070
1071
  }
1071
1072
  return out
@@ -1187,9 +1188,18 @@ export const filter: {
1187
1188
  */
1188
1189
  export const getSomes: <K extends string, A>(
1189
1190
  self: ReadonlyRecord<K, Option.Option<A>>
1190
- ) => Record<ReadonlyRecord.NonLiteralKey<K>, A> = filterMap(
1191
- identity
1192
- )
1191
+ ) => Record<ReadonlyRecord.NonLiteralKey<K>, A> = <K extends string, A>(
1192
+ self: ReadonlyRecord<K, Option.Option<A>>
1193
+ ): Record<ReadonlyRecord.NonLiteralKey<K>, A> => {
1194
+ const out: Record<string, A> = empty()
1195
+ for (const key of keys(self)) {
1196
+ const option = self[key]
1197
+ if (Option.isSome(option)) {
1198
+ out[key] = option.value
1199
+ }
1200
+ }
1201
+ return out
1202
+ }
1193
1203
 
1194
1204
  /**
1195
1205
  * Given a record with `Result` values, returns a new record containing only the `Err` values, preserving the original keys.
@@ -1262,7 +1272,7 @@ export const getSuccesses = <K extends string, A, E>(
1262
1272
  }
1263
1273
 
1264
1274
  /**
1265
- * Partitions the elements of a record into two groups: those that match a predicate, and those that don't.
1275
+ * Partitions the elements of a record into two groups: those that match a filter, and those that don't.
1266
1276
  *
1267
1277
  * @example
1268
1278
  * ```ts
@@ -1271,15 +1281,15 @@ export const getSuccesses = <K extends string, A, E>(
1271
1281
  *
1272
1282
  * const x = { a: 1, b: 2, c: 3 }
1273
1283
  * const f = (n: number) => (n % 2 === 0 ? Result.succeed(n) : Result.fail(n))
1274
- * assert.deepStrictEqual(Record.partitionMap(x, f), [{ a: 1, c: 3 }, { b: 2 }])
1284
+ * assert.deepStrictEqual(Record.partition(x, f), [{ a: 1, c: 3 }, { b: 2 }])
1275
1285
  * ```
1276
1286
  *
1277
1287
  * @category filtering
1278
1288
  * @since 2.0.0
1279
1289
  */
1280
- export const partitionMap: {
1290
+ export const partition: {
1281
1291
  /**
1282
- * Partitions the elements of a record into two groups: those that match a predicate, and those that don't.
1292
+ * Partitions the elements of a record into two groups: those that match a filter, and those that don't.
1283
1293
  *
1284
1294
  * @example
1285
1295
  * ```ts
@@ -1288,17 +1298,17 @@ export const partitionMap: {
1288
1298
  *
1289
1299
  * const x = { a: 1, b: 2, c: 3 }
1290
1300
  * const f = (n: number) => (n % 2 === 0 ? Result.succeed(n) : Result.fail(n))
1291
- * assert.deepStrictEqual(Record.partitionMap(x, f), [{ a: 1, c: 3 }, { b: 2 }])
1301
+ * assert.deepStrictEqual(Record.partition(x, f), [{ a: 1, c: 3 }, { b: 2 }])
1292
1302
  * ```
1293
1303
  *
1294
1304
  * @category filtering
1295
1305
  * @since 2.0.0
1296
1306
  */
1297
- <K extends string, A, B, C>(f: (a: A, key: K) => Result<C, B>): (
1307
+ <K extends string, A, B, C>(f: Filter.Filter<A, C, B, [key: K]>): (
1298
1308
  self: ReadonlyRecord<K, A>
1299
1309
  ) => [left: Record<ReadonlyRecord.NonLiteralKey<K>, B>, right: Record<ReadonlyRecord.NonLiteralKey<K>, C>]
1300
1310
  /**
1301
- * Partitions the elements of a record into two groups: those that match a predicate, and those that don't.
1311
+ * Partitions the elements of a record into two groups: those that match a filter, and those that don't.
1302
1312
  *
1303
1313
  * @example
1304
1314
  * ```ts
@@ -1307,18 +1317,18 @@ export const partitionMap: {
1307
1317
  *
1308
1318
  * const x = { a: 1, b: 2, c: 3 }
1309
1319
  * const f = (n: number) => (n % 2 === 0 ? Result.succeed(n) : Result.fail(n))
1310
- * assert.deepStrictEqual(Record.partitionMap(x, f), [{ a: 1, c: 3 }, { b: 2 }])
1320
+ * assert.deepStrictEqual(Record.partition(x, f), [{ a: 1, c: 3 }, { b: 2 }])
1311
1321
  * ```
1312
1322
  *
1313
1323
  * @category filtering
1314
1324
  * @since 2.0.0
1315
1325
  */
1316
- <K extends string, A, B, C>(self: ReadonlyRecord<K, A>, f: (a: A, key: K) => Result<C, B>): [left: Record<ReadonlyRecord.NonLiteralKey<K>, B>, right: Record<ReadonlyRecord.NonLiteralKey<K>, C>]
1326
+ <K extends string, A, B, C>(self: ReadonlyRecord<K, A>, f: Filter.Filter<A, C, B, [key: K]>): [left: Record<ReadonlyRecord.NonLiteralKey<K>, B>, right: Record<ReadonlyRecord.NonLiteralKey<K>, C>]
1317
1327
  } = dual(
1318
1328
  2,
1319
1329
  <K extends string, A, B, C>(
1320
1330
  self: ReadonlyRecord<K, A>,
1321
- f: (a: A, key: K) => Result<C, B>
1331
+ f: Filter.Filter<A, C, B, [key: K]>
1322
1332
  ): [left: Record<ReadonlyRecord.NonLiteralKey<K>, B>, right: Record<ReadonlyRecord.NonLiteralKey<K>, C>] => {
1323
1333
  const left: Record<string, B> = empty()
1324
1334
  const right: Record<string, C> = empty()
@@ -1354,126 +1364,7 @@ export const partitionMap: {
1354
1364
  */
1355
1365
  export const separate: <K extends string, A, B>(
1356
1366
  self: ReadonlyRecord<K, Result<B, A>>
1357
- ) => [Record<ReadonlyRecord.NonLiteralKey<K>, A>, Record<ReadonlyRecord.NonLiteralKey<K>, B>] = partitionMap(identity)
1358
-
1359
- /**
1360
- * Partitions a record into two separate records based on the result of a predicate function.
1361
- *
1362
- * @example
1363
- * ```ts
1364
- * import { Record } from "effect"
1365
- * import * as assert from "node:assert"
1366
- *
1367
- * assert.deepStrictEqual(
1368
- * Record.partition({ a: 1, b: 3 }, (n) => n > 2),
1369
- * [{ a: 1 }, { b: 3 }]
1370
- * )
1371
- * ```
1372
- *
1373
- * @category filtering
1374
- * @since 2.0.0
1375
- */
1376
- export const partition: {
1377
- /**
1378
- * Partitions a record into two separate records based on the result of a predicate function.
1379
- *
1380
- * @example
1381
- * ```ts
1382
- * import { Record } from "effect"
1383
- * import * as assert from "node:assert"
1384
- *
1385
- * assert.deepStrictEqual(
1386
- * Record.partition({ a: 1, b: 3 }, (n) => n > 2),
1387
- * [{ a: 1 }, { b: 3 }]
1388
- * )
1389
- * ```
1390
- *
1391
- * @category filtering
1392
- * @since 2.0.0
1393
- */
1394
- <K extends string, A, B extends A>(refinement: (a: NoInfer<A>, key: K) => a is B): (
1395
- self: ReadonlyRecord<K, A>
1396
- ) => [
1397
- excluded: Record<ReadonlyRecord.NonLiteralKey<K>, Exclude<A, B>>,
1398
- satisfying: Record<ReadonlyRecord.NonLiteralKey<K>, B>
1399
- ]
1400
- /**
1401
- * Partitions a record into two separate records based on the result of a predicate function.
1402
- *
1403
- * @example
1404
- * ```ts
1405
- * import { Record } from "effect"
1406
- * import * as assert from "node:assert"
1407
- *
1408
- * assert.deepStrictEqual(
1409
- * Record.partition({ a: 1, b: 3 }, (n) => n > 2),
1410
- * [{ a: 1 }, { b: 3 }]
1411
- * )
1412
- * ```
1413
- *
1414
- * @category filtering
1415
- * @since 2.0.0
1416
- */
1417
- <K extends string, A>(predicate: (a: NoInfer<A>, key: K) => boolean): (
1418
- self: ReadonlyRecord<K, A>
1419
- ) => [excluded: Record<ReadonlyRecord.NonLiteralKey<K>, A>, satisfying: Record<ReadonlyRecord.NonLiteralKey<K>, A>]
1420
- /**
1421
- * Partitions a record into two separate records based on the result of a predicate function.
1422
- *
1423
- * @example
1424
- * ```ts
1425
- * import { Record } from "effect"
1426
- * import * as assert from "node:assert"
1427
- *
1428
- * assert.deepStrictEqual(
1429
- * Record.partition({ a: 1, b: 3 }, (n) => n > 2),
1430
- * [{ a: 1 }, { b: 3 }]
1431
- * )
1432
- * ```
1433
- *
1434
- * @category filtering
1435
- * @since 2.0.0
1436
- */
1437
- <K extends string, A, B extends A>(self: ReadonlyRecord<K, A>, refinement: (a: A, key: K) => a is B): [
1438
- excluded: Record<ReadonlyRecord.NonLiteralKey<K>, Exclude<A, B>>,
1439
- satisfying: Record<ReadonlyRecord.NonLiteralKey<K>, B>
1440
- ]
1441
- /**
1442
- * Partitions a record into two separate records based on the result of a predicate function.
1443
- *
1444
- * @example
1445
- * ```ts
1446
- * import { Record } from "effect"
1447
- * import * as assert from "node:assert"
1448
- *
1449
- * assert.deepStrictEqual(
1450
- * Record.partition({ a: 1, b: 3 }, (n) => n > 2),
1451
- * [{ a: 1 }, { b: 3 }]
1452
- * )
1453
- * ```
1454
- *
1455
- * @category filtering
1456
- * @since 2.0.0
1457
- */
1458
- <K extends string, A>(self: ReadonlyRecord<K, A>, predicate: (a: A, key: K) => boolean): [excluded: Record<ReadonlyRecord.NonLiteralKey<K>, A>, satisfying: Record<ReadonlyRecord.NonLiteralKey<K>, A>]
1459
- } = dual(
1460
- 2,
1461
- <K extends string, A>(
1462
- self: ReadonlyRecord<K, A>,
1463
- predicate: (a: A, key: K) => boolean
1464
- ): [excluded: Record<ReadonlyRecord.NonLiteralKey<K>, A>, satisfying: Record<ReadonlyRecord.NonLiteralKey<K>, A>] => {
1465
- const left: Record<string, A> = empty()
1466
- const right: Record<string, A> = empty()
1467
- for (const key of keys(self)) {
1468
- if (predicate(self[key], key)) {
1469
- right[key] = self[key]
1470
- } else {
1471
- left[key] = self[key]
1472
- }
1473
- }
1474
- return [left, right]
1475
- }
1476
- )
1367
+ ) => [Record<ReadonlyRecord.NonLiteralKey<K>, A>, Record<ReadonlyRecord.NonLiteralKey<K>, B>] = partition(identity)
1477
1368
 
1478
1369
  /**
1479
1370
  * Retrieve the keys of a given record as an array.
package/src/Reducer.ts CHANGED
@@ -1,17 +1,107 @@
1
1
  /**
2
+ * A module for reducing collections of values into a single result.
3
+ *
4
+ * A `Reducer<A>` extends {@link Combiner.Combiner} by adding an
5
+ * `initialValue` (identity element) and a `combineAll` method that folds an
6
+ * entire collection. Think `Array.prototype.reduce`, but packaged as a
7
+ * reusable, composable value.
8
+ *
9
+ * ## Mental model
10
+ *
11
+ * - **Reducer** – a {@link Combiner.Combiner} plus an `initialValue` and a
12
+ * `combineAll` method.
13
+ * - **initialValue** – the neutral/identity element. Combining any value with
14
+ * `initialValue` should return the original value unchanged (e.g. `0` for
15
+ * addition, `""` for string concatenation).
16
+ * - **combineAll** – folds an `Iterable<A>` starting from `initialValue`.
17
+ * When omitted from {@link make}, a default left-to-right fold is used.
18
+ * - **Purity** – all reducers produced by this module are pure; they never
19
+ * mutate their arguments.
20
+ * - **Composability** – reducers can be lifted into `Option`, `Struct`,
21
+ * `Tuple`, `Record`, and other container types via helpers in those modules.
22
+ * - **Subtype of Combiner** – every `Reducer` is also a valid
23
+ * `Combiner`, so you can pass a `Reducer` anywhere a `Combiner` is
24
+ * expected.
25
+ *
26
+ * ## Common tasks
27
+ *
28
+ * - Create a reducer from a combine function and initial value → {@link make}
29
+ * - Swap argument order → {@link flip}
30
+ * - Combine two values without an initial value → use {@link Combiner.Combiner}
31
+ * instead
32
+ *
33
+ * ## Gotchas
34
+ *
35
+ * - `combineAll` on an empty iterable returns `initialValue`, not an error.
36
+ * - The default `combineAll` folds left-to-right. If your `combine` is not
37
+ * associative, order matters. Pass a custom `combineAll` to {@link make} if
38
+ * you need different traversal or short-circuiting.
39
+ * - A `Reducer` is also a valid `Combiner` — but a `Combiner` is *not* a
40
+ * `Reducer` (it lacks `initialValue`).
41
+ *
42
+ * ## Quickstart
43
+ *
44
+ * **Example** (summing a list of numbers)
45
+ *
46
+ * ```ts
47
+ * import { Reducer } from "effect"
48
+ *
49
+ * const Sum = Reducer.make<number>((a, b) => a + b, 0)
50
+ *
51
+ * console.log(Sum.combine(3, 4))
52
+ * // Output: 7
53
+ *
54
+ * console.log(Sum.combineAll([1, 2, 3, 4]))
55
+ * // Output: 10
56
+ *
57
+ * console.log(Sum.combineAll([]))
58
+ * // Output: 0
59
+ * ```
60
+ *
61
+ * ## See also
62
+ *
63
+ * - {@link make} – the primary constructor
64
+ * - {@link Reducer} – the core interface
65
+ * - {@link Combiner.Combiner} – the parent interface (no `initialValue`)
66
+ *
2
67
  * @since 4.0.0
3
68
  */
4
69
 
5
70
  import type * as Combiner from "./Combiner.ts"
6
71
 
7
72
  /**
8
- * A `Reducer` is a `Combiner` with an `initialValue` and a way to
9
- * combine a whole collection. Think `Array.prototype.reduce`, but reusable.
73
+ * Represents a strategy for reducing a collection of values of type `A` into
74
+ * a single result.
75
+ *
76
+ * Extends {@link Combiner.Combiner} with:
77
+ * - `initialValue` – the identity/neutral element for `combine`.
78
+ * - `combineAll` – folds an entire `Iterable<A>` from `initialValue`.
79
+ *
80
+ * When to use:
81
+ * - You need to fold/reduce a collection into a single value.
82
+ * - You want a reusable reducing strategy that can be passed to library
83
+ * functions like `Struct.makeReducer`, `Option.makeReducer`, or
84
+ * `Record.makeReducerUnion`.
85
+ * - You need both the combining logic *and* a known starting value.
86
+ *
87
+ * Many modules ship pre-built reducers:
88
+ * - `Number.ReducerSum`, `Number.ReducerMultiply`
89
+ * - `String.ReducerConcat`
90
+ * - `Boolean.ReducerAnd`, `Boolean.ReducerOr`
10
91
  *
11
- * Common initial values:
12
- * - numbers with addition: `0`
13
- * - strings with concatenation: `""`
14
- * - arrays with concatenation: `[]`
92
+ * **Example** (string concatenation reducer)
93
+ *
94
+ * ```ts
95
+ * import { Reducer } from "effect"
96
+ *
97
+ * const Concat = Reducer.make<string>((a, b) => a + b, "")
98
+ *
99
+ * console.log(Concat.combineAll(["hello", " ", "world"]))
100
+ * // Output: "hello world"
101
+ * ```
102
+ *
103
+ * @see {@link make} – create a `Reducer` from a function and initial value
104
+ * @see {@link Combiner.Combiner} – parent interface without `initialValue`
15
105
  *
16
106
  * @category model
17
107
  * @since 4.0.0
@@ -27,7 +117,44 @@ export interface Reducer<A> extends Combiner.Combiner<A> {
27
117
  /**
28
118
  * Creates a `Reducer` from a `combine` function and an `initialValue`.
29
119
  *
30
- * If `combineAll` is omitted, a default implementation reduces left-to-right.
120
+ * When to use:
121
+ * - You have a custom reducing operation not covered by a pre-built reducer.
122
+ * - You want to provide an optimized `combineAll` (e.g. short-circuiting on
123
+ * a known absorbing element like `0` for multiplication).
124
+ *
125
+ * Behavior:
126
+ * - If `combineAll` is omitted, a default left-to-right fold starting from
127
+ * `initialValue` is used.
128
+ * - If `combineAll` is provided, it completely replaces the default fold.
129
+ * - Pure – the returned reducer does not mutate its arguments.
130
+ *
131
+ * **Example** (multiplication with short-circuit)
132
+ *
133
+ * ```ts
134
+ * import { Reducer } from "effect"
135
+ *
136
+ * const Product = Reducer.make<number>(
137
+ * (a, b) => a * b,
138
+ * 1,
139
+ * (collection) => {
140
+ * let acc = 1
141
+ * for (const n of collection) {
142
+ * if (n === 0) return 0
143
+ * acc *= n
144
+ * }
145
+ * return acc
146
+ * }
147
+ * )
148
+ *
149
+ * console.log(Product.combineAll([2, 3, 4]))
150
+ * // Output: 24
151
+ *
152
+ * console.log(Product.combineAll([2, 0, 4]))
153
+ * // Output: 0
154
+ * ```
155
+ *
156
+ * @see {@link Reducer} – the interface this creates
157
+ * @see {@link flip} – reverse the argument order
31
158
  *
32
159
  * @since 4.0.0
33
160
  */
@@ -51,6 +178,38 @@ export function make<A>(
51
178
  }
52
179
 
53
180
  /**
181
+ * Reverses the argument order of a reducer's `combine` method.
182
+ *
183
+ * When to use:
184
+ * - You need the "right" value to act as the accumulator side.
185
+ * - You want to reverse the natural direction of a non-commutative reducer
186
+ * (e.g. string concatenation becomes prepend).
187
+ *
188
+ * Behavior:
189
+ * - Returns a new `Reducer` where `combine(self, that)` calls the original
190
+ * reducer as `combine(that, self)`.
191
+ * - The `initialValue` is preserved from the original reducer.
192
+ * - The `combineAll` is re-derived from the flipped `combine` (using the
193
+ * default left-to-right fold), not carried over from the original.
194
+ * - Does not mutate the input reducer.
195
+ *
196
+ * **Example** (reversing string concatenation)
197
+ *
198
+ * ```ts
199
+ * import { Reducer, String } from "effect"
200
+ *
201
+ * const Prepend = Reducer.flip(String.ReducerConcat)
202
+ *
203
+ * console.log(Prepend.combine("a", "b"))
204
+ * // Output: "ba"
205
+ *
206
+ * console.log(Prepend.combineAll(["a", "b", "c"]))
207
+ * // Output: "cba"
208
+ * ```
209
+ *
210
+ * @see {@link make}
211
+ * @see {@link Combiner.flip} – the same operation on a plain `Combiner`
212
+ *
54
213
  * @since 4.0.0
55
214
  */
56
215
  export function flip<A>(reducer: Reducer<A>): Reducer<A> {
package/src/References.ts CHANGED
@@ -11,7 +11,7 @@
11
11
  * @since 4.0.0
12
12
  */
13
13
  import { constTrue, constUndefined } from "./Function.ts"
14
- import type { LogLevel } from "./LogLevel.ts"
14
+ import type { LogLevel, Severity } from "./LogLevel.ts"
15
15
  import type { ReadonlyRecord } from "./Record.ts"
16
16
  import { MaxOpsBeforeYield } from "./Scheduler.ts"
17
17
  import * as ServiceMap from "./ServiceMap.ts"
@@ -451,7 +451,7 @@ export const CurrentLogAnnotations = ServiceMap.Reference<ReadonlyRecord<string,
451
451
  * @category references
452
452
  * @since 4.0.0
453
453
  */
454
- export const CurrentLogLevel: ServiceMap.Reference<LogLevel> = ServiceMap.Reference<LogLevel>(
454
+ export const CurrentLogLevel: ServiceMap.Reference<Severity> = ServiceMap.Reference<Severity>(
455
455
  "effect/References/CurrentLogLevel",
456
456
  { defaultValue: () => "Info" }
457
457
  )
@@ -516,9 +516,9 @@ export const MinimumLogLevel = ServiceMap.Reference<
516
516
  * @category references
517
517
  * @since 4.0.0
518
518
  */
519
- export const UnhandledLogLevel: ServiceMap.Reference<LogLevel | undefined> = ServiceMap.Reference(
519
+ export const UnhandledLogLevel: ServiceMap.Reference<Severity | undefined> = ServiceMap.Reference(
520
520
  "effect/References/UnhandledLogLevel",
521
- { defaultValue: (): LogLevel | undefined => "Error" }
521
+ { defaultValue: (): Severity | undefined => "Error" }
522
522
  )
523
523
 
524
524
  /**
package/src/Request.ts CHANGED
@@ -88,7 +88,7 @@ export interface Variance<out A, out E, out R> {
88
88
  * @category models
89
89
  */
90
90
  export interface Constructor<R extends Request<any, any, any>, T extends keyof R = never> {
91
- (args: Omit<R, T | keyof (Variance<any, any, any>)>): R
91
+ (args: Types.VoidIfEmpty<Types.Simplify<Omit<R, T | keyof (Variance<any, any, any>)>>>): R
92
92
  }
93
93
 
94
94
  /**
@@ -285,7 +285,8 @@ export const tagged = <R extends Request<any, any, any> & { _tag: string }>(
285
285
  tag: R["_tag"]
286
286
  ): Constructor<R, "_tag"> =>
287
287
  (args) => {
288
- const request = Object.assign(Object.create(RequestPrototype), args)
288
+ const request = Object.create(RequestPrototype)
289
+ if (args) Object.assign(request, args)
289
290
  request._tag = tag
290
291
  return request
291
292
  }
@@ -652,7 +652,7 @@ export const setDelay: {
652
652
  * @since 4.0.0
653
653
  * @category delay
654
654
  */
655
- (duration: Duration.DurationInput): <A extends Request.Any>(self: RequestResolver<A>) => RequestResolver<A>
655
+ (duration: Duration.Input): <A extends Request.Any>(self: RequestResolver<A>) => RequestResolver<A>
656
656
  /**
657
657
  * Sets the batch delay window for this request resolver to the specified duration.
658
658
  *
@@ -683,10 +683,10 @@ export const setDelay: {
683
683
  * @since 4.0.0
684
684
  * @category delay
685
685
  */
686
- <A extends Request.Any>(self: RequestResolver<A>, duration: Duration.DurationInput): RequestResolver<A>
686
+ <A extends Request.Any>(self: RequestResolver<A>, duration: Duration.Input): RequestResolver<A>
687
687
  } = dual(
688
688
  2,
689
- <A extends Request.Any>(self: RequestResolver<A>, duration: Duration.DurationInput): RequestResolver<A> =>
689
+ <A extends Request.Any>(self: RequestResolver<A>, duration: Duration.Input): RequestResolver<A> =>
690
690
  makeWith({
691
691
  ...self,
692
692
  delay: Effect.sleep(duration)
@@ -841,26 +841,6 @@ export const around: {
841
841
  /**
842
842
  * A request resolver that never executes requests.
843
843
  *
844
- * @example
845
- * ```ts
846
- * import { Effect, Request, RequestResolver } from "effect"
847
- *
848
- * // A resolver that will never complete
849
- * const neverResolver = RequestResolver.never
850
- *
851
- * // For testing timeout behavior with any request type
852
- * interface TestRequest extends Request.Request<string> {
853
- * readonly _tag: "TestRequest"
854
- * }
855
- * const TestRequest = Request.tagged<TestRequest>("TestRequest")
856
- *
857
- * // This will never resolve
858
- * const neverEffect = Effect.request(TestRequest({}), Effect.succeed(neverResolver) as any)
859
- *
860
- * // Useful for testing timeout behavior
861
- * const timeoutTest = Effect.timeout(neverEffect, "1 second")
862
- * ```
863
- *
864
844
  * @since 2.0.0
865
845
  * @category constructors
866
846
  */
@@ -1468,7 +1448,7 @@ export const asCache: {
1468
1448
  >(
1469
1449
  options: {
1470
1450
  readonly capacity: number
1471
- readonly timeToLive?: ((exit: Request.Result<A>, request: A) => Duration.DurationInput) | undefined
1451
+ readonly timeToLive?: ((exit: Request.Result<A>, request: A) => Duration.Input) | undefined
1472
1452
  readonly requireServicesAt?: ServiceMode | undefined
1473
1453
  }
1474
1454
  ): (self: RequestResolver<A>) => Effect.Effect<
@@ -1495,7 +1475,7 @@ export const asCache: {
1495
1475
  self: RequestResolver<A>,
1496
1476
  options: {
1497
1477
  readonly capacity: number
1498
- readonly timeToLive?: ((exit: Request.Result<A>, request: A) => Duration.DurationInput) | undefined
1478
+ readonly timeToLive?: ((exit: Request.Result<A>, request: A) => Duration.Input) | undefined
1499
1479
  readonly requireServicesAt?: ServiceMode | undefined
1500
1480
  }
1501
1481
  ): Effect.Effect<
@@ -1513,7 +1493,7 @@ export const asCache: {
1513
1493
  ServiceMode extends "lookup" | "construction" = never
1514
1494
  >(self: RequestResolver<A>, options: {
1515
1495
  readonly capacity: number
1516
- readonly timeToLive?: ((exit: Request.Result<A>, request: A) => Duration.DurationInput) | undefined
1496
+ readonly timeToLive?: ((exit: Request.Result<A>, request: A) => Duration.Input) | undefined
1517
1497
  readonly requireServicesAt?: ServiceMode | undefined
1518
1498
  }): Effect.Effect<
1519
1499
  Cache.Cache<
@@ -1649,7 +1629,7 @@ export const persisted: {
1649
1629
  <A extends Request.Request<any, Persistence.PersistenceError | Schema.SchemaError, any> & Persistable.Any>(
1650
1630
  options: {
1651
1631
  readonly storeId: string
1652
- readonly timeToLive?: ((exit: Request.Result<A>, request: A) => Duration.DurationInput) | undefined
1632
+ readonly timeToLive?: ((exit: Request.Result<A>, request: A) => Duration.Input) | undefined
1653
1633
  readonly staleWhileRevalidate?: ((exit: Request.Result<A>, request: A) => boolean) | undefined
1654
1634
  }
1655
1635
  ): (self: RequestResolver<A>) => Effect.Effect<
@@ -1667,7 +1647,7 @@ export const persisted: {
1667
1647
  self: RequestResolver<A>,
1668
1648
  options: {
1669
1649
  readonly storeId: string
1670
- readonly timeToLive?: ((exit: Request.Result<A>, request: A) => Duration.DurationInput) | undefined
1650
+ readonly timeToLive?: ((exit: Request.Result<A>, request: A) => Duration.Input) | undefined
1671
1651
  readonly staleWhileRevalidate?: ((exit: Request.Result<A>, request: A) => boolean) | undefined
1672
1652
  }
1673
1653
  ): Effect.Effect<
@@ -1683,7 +1663,7 @@ export const persisted: {
1683
1663
  self: RequestResolver<A>,
1684
1664
  options: {
1685
1665
  readonly storeId: string
1686
- readonly timeToLive?: ((exit: Request.Result<A>, request: A) => Duration.DurationInput) | undefined
1666
+ readonly timeToLive?: ((exit: Request.Result<A>, request: A) => Duration.Input) | undefined
1687
1667
  readonly staleWhileRevalidate?: ((exit: Request.Result<A>, request: A) => boolean) | undefined
1688
1668
  }
1689
1669
  ) {
package/src/Result.ts CHANGED
@@ -374,6 +374,19 @@ export {
374
374
  void_ as void
375
375
  }
376
376
 
377
+ /**
378
+ * A pre-built `Result<void>` holding `undefined` as its failure value.
379
+ *
380
+ * - Use when you need a `Result` that represents "failed with no meaningful value"
381
+ * - Equivalent to `Result.fail(undefined)` but avoids an extra allocation
382
+ *
383
+ * @see {@link fail}
384
+ *
385
+ * @category Constructors
386
+ * @since 4.0.0
387
+ */
388
+ export const failVoid: Result<never, void> = fail(void 0)
389
+
377
390
  /**
378
391
  * Converts a possibly `null` or `undefined` value into a `Result`.
379
392
  *