effect 4.0.0-beta.30 → 4.0.0-beta.32

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 (514) hide show
  1. package/dist/Array.d.ts +87 -86
  2. package/dist/Array.d.ts.map +1 -1
  3. package/dist/Array.js +47 -40
  4. package/dist/Array.js.map +1 -1
  5. package/dist/BigDecimal.d.ts +46 -45
  6. package/dist/BigDecimal.d.ts.map +1 -1
  7. package/dist/BigDecimal.js +35 -38
  8. package/dist/BigDecimal.js.map +1 -1
  9. package/dist/BigInt.d.ts +39 -32
  10. package/dist/BigInt.d.ts.map +1 -1
  11. package/dist/BigInt.js +32 -29
  12. package/dist/BigInt.js.map +1 -1
  13. package/dist/Channel.d.ts +2 -2
  14. package/dist/Channel.d.ts.map +1 -1
  15. package/dist/Channel.js.map +1 -1
  16. package/dist/Chunk.d.ts +58 -57
  17. package/dist/Chunk.d.ts.map +1 -1
  18. package/dist/Chunk.js +20 -21
  19. package/dist/Chunk.js.map +1 -1
  20. package/dist/Config.d.ts.map +1 -1
  21. package/dist/Config.js +4 -1
  22. package/dist/Config.js.map +1 -1
  23. package/dist/Cron.d.ts +3 -6
  24. package/dist/Cron.d.ts.map +1 -1
  25. package/dist/Cron.js +11 -18
  26. package/dist/Cron.js.map +1 -1
  27. package/dist/DateTime.d.ts +49 -92
  28. package/dist/DateTime.d.ts.map +1 -1
  29. package/dist/DateTime.js +9 -9
  30. package/dist/DateTime.js.map +1 -1
  31. package/dist/Deferred.d.ts +7 -5
  32. package/dist/Deferred.d.ts.map +1 -1
  33. package/dist/Deferred.js +7 -5
  34. package/dist/Deferred.js.map +1 -1
  35. package/dist/Duration.d.ts +55 -25
  36. package/dist/Duration.d.ts.map +1 -1
  37. package/dist/Duration.js +100 -70
  38. package/dist/Duration.js.map +1 -1
  39. package/dist/Effect.d.ts.map +1 -1
  40. package/dist/Effect.js +3 -4
  41. package/dist/Effect.js.map +1 -1
  42. package/dist/Fiber.d.ts +2 -1
  43. package/dist/Fiber.d.ts.map +1 -1
  44. package/dist/Fiber.js.map +1 -1
  45. package/dist/FiberHandle.d.ts +9 -8
  46. package/dist/FiberHandle.d.ts.map +1 -1
  47. package/dist/FiberHandle.js +8 -7
  48. package/dist/FiberHandle.js.map +1 -1
  49. package/dist/FiberMap.d.ts +20 -19
  50. package/dist/FiberMap.d.ts.map +1 -1
  51. package/dist/FiberMap.js +6 -6
  52. package/dist/FiberMap.js.map +1 -1
  53. package/dist/FileSystem.d.ts +17 -16
  54. package/dist/FileSystem.d.ts.map +1 -1
  55. package/dist/FileSystem.js +10 -7
  56. package/dist/FileSystem.js.map +1 -1
  57. package/dist/Graph.d.ts +64 -64
  58. package/dist/Graph.d.ts.map +1 -1
  59. package/dist/Graph.js +53 -53
  60. package/dist/Graph.js.map +1 -1
  61. package/dist/HashMap.d.ts +11 -5
  62. package/dist/HashMap.d.ts.map +1 -1
  63. package/dist/HashMap.js +3 -1
  64. package/dist/HashMap.js.map +1 -1
  65. package/dist/Iterable.d.ts +11 -11
  66. package/dist/Iterable.d.ts.map +1 -1
  67. package/dist/Iterable.js +12 -12
  68. package/dist/Iterable.js.map +1 -1
  69. package/dist/Latch.d.ts +69 -3
  70. package/dist/Latch.d.ts.map +1 -1
  71. package/dist/Latch.js +58 -0
  72. package/dist/Latch.js.map +1 -1
  73. package/dist/Layer.d.ts +181 -2
  74. package/dist/Layer.d.ts.map +1 -1
  75. package/dist/Layer.js +35 -2
  76. package/dist/Layer.js.map +1 -1
  77. package/dist/Number.d.ts +74 -18
  78. package/dist/Number.d.ts.map +1 -1
  79. package/dist/Number.js +34 -15
  80. package/dist/Number.js.map +1 -1
  81. package/dist/Option.d.ts +2 -0
  82. package/dist/Option.d.ts.map +1 -1
  83. package/dist/Option.js.map +1 -1
  84. package/dist/PartitionedSemaphore.d.ts +183 -0
  85. package/dist/PartitionedSemaphore.d.ts.map +1 -0
  86. package/dist/PartitionedSemaphore.js +231 -0
  87. package/dist/PartitionedSemaphore.js.map +1 -0
  88. package/dist/PubSub.d.ts +5 -4
  89. package/dist/PubSub.d.ts.map +1 -1
  90. package/dist/PubSub.js +6 -5
  91. package/dist/PubSub.js.map +1 -1
  92. package/dist/Queue.d.ts +3 -3
  93. package/dist/Queue.d.ts.map +1 -1
  94. package/dist/Queue.js +2 -2
  95. package/dist/Queue.js.map +1 -1
  96. package/dist/Record.d.ts +40 -40
  97. package/dist/Record.d.ts.map +1 -1
  98. package/dist/Record.js +16 -15
  99. package/dist/Record.js.map +1 -1
  100. package/dist/Scheduler.d.ts +25 -123
  101. package/dist/Scheduler.d.ts.map +1 -1
  102. package/dist/Scheduler.js +20 -123
  103. package/dist/Scheduler.js.map +1 -1
  104. package/dist/Schema.d.ts +2346 -114
  105. package/dist/Schema.d.ts.map +1 -1
  106. package/dist/Schema.js +1359 -68
  107. package/dist/Schema.js.map +1 -1
  108. package/dist/SchemaAST.d.ts +2 -2
  109. package/dist/SchemaAST.js +2 -2
  110. package/dist/SchemaGetter.js +6 -4
  111. package/dist/SchemaGetter.js.map +1 -1
  112. package/dist/SchemaRepresentation.d.ts +2 -2
  113. package/dist/SchemaRepresentation.d.ts.map +1 -1
  114. package/dist/SchemaRepresentation.js.map +1 -1
  115. package/dist/SchemaTransformation.d.ts.map +1 -1
  116. package/dist/SchemaTransformation.js +32 -27
  117. package/dist/SchemaTransformation.js.map +1 -1
  118. package/dist/Semaphore.d.ts +149 -53
  119. package/dist/Semaphore.d.ts.map +1 -1
  120. package/dist/Semaphore.js +137 -117
  121. package/dist/Semaphore.js.map +1 -1
  122. package/dist/ServiceMap.d.ts +26 -0
  123. package/dist/ServiceMap.d.ts.map +1 -1
  124. package/dist/ServiceMap.js +36 -21
  125. package/dist/ServiceMap.js.map +1 -1
  126. package/dist/Stream.js +1 -1
  127. package/dist/Stream.js.map +1 -1
  128. package/dist/String.d.ts +114 -47
  129. package/dist/String.d.ts.map +1 -1
  130. package/dist/String.js +29 -47
  131. package/dist/String.js.map +1 -1
  132. package/dist/SubscriptionRef.d.ts +1 -2
  133. package/dist/SubscriptionRef.d.ts.map +1 -1
  134. package/dist/SubscriptionRef.js +81 -115
  135. package/dist/SubscriptionRef.js.map +1 -1
  136. package/dist/Terminal.d.ts +2 -1
  137. package/dist/Terminal.d.ts.map +1 -1
  138. package/dist/Terminal.js.map +1 -1
  139. package/dist/Tracer.d.ts +5 -4
  140. package/dist/Tracer.d.ts.map +1 -1
  141. package/dist/Tracer.js +2 -1
  142. package/dist/Tracer.js.map +1 -1
  143. package/dist/Trie.d.ts +26 -14
  144. package/dist/Trie.d.ts.map +1 -1
  145. package/dist/Trie.js +8 -4
  146. package/dist/Trie.js.map +1 -1
  147. package/dist/TxHashMap.d.ts +77 -59
  148. package/dist/TxHashMap.d.ts.map +1 -1
  149. package/dist/TxHashMap.js +25 -19
  150. package/dist/TxHashMap.js.map +1 -1
  151. package/dist/TxSemaphore.d.ts +162 -2
  152. package/dist/TxSemaphore.d.ts.map +1 -1
  153. package/dist/TxSemaphore.js +16 -2
  154. package/dist/TxSemaphore.js.map +1 -1
  155. package/dist/index.d.ts +88 -32
  156. package/dist/index.d.ts.map +1 -1
  157. package/dist/index.js +88 -32
  158. package/dist/index.js.map +1 -1
  159. package/dist/internal/dateTime.js +66 -59
  160. package/dist/internal/dateTime.js.map +1 -1
  161. package/dist/internal/effect.js +21 -90
  162. package/dist/internal/effect.js.map +1 -1
  163. package/dist/internal/hashMap.js +2 -1
  164. package/dist/internal/hashMap.js.map +1 -1
  165. package/dist/internal/option.js +6 -0
  166. package/dist/internal/option.js.map +1 -1
  167. package/dist/internal/trie.js +3 -3
  168. package/dist/internal/trie.js.map +1 -1
  169. package/dist/unstable/ai/AiError.js +1 -1
  170. package/dist/unstable/ai/AiError.js.map +1 -1
  171. package/dist/unstable/ai/AnthropicStructuredOutput.d.ts.map +1 -1
  172. package/dist/unstable/ai/AnthropicStructuredOutput.js +4 -0
  173. package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
  174. package/dist/unstable/ai/Chat.d.ts +3 -4
  175. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  176. package/dist/unstable/ai/Chat.js +2 -2
  177. package/dist/unstable/ai/Chat.js.map +1 -1
  178. package/dist/unstable/ai/LanguageModel.d.ts +30 -16
  179. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  180. package/dist/unstable/ai/LanguageModel.js +10 -87
  181. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  182. package/dist/unstable/ai/OpenAiStructuredOutput.d.ts.map +1 -1
  183. package/dist/unstable/ai/OpenAiStructuredOutput.js +4 -0
  184. package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
  185. package/dist/unstable/ai/Tool.d.ts +14 -0
  186. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  187. package/dist/unstable/ai/Tool.js +13 -0
  188. package/dist/unstable/ai/Tool.js.map +1 -1
  189. package/dist/unstable/cli/Argument.d.ts +2 -4
  190. package/dist/unstable/cli/Argument.d.ts.map +1 -1
  191. package/dist/unstable/cli/Argument.js +1 -3
  192. package/dist/unstable/cli/Argument.js.map +1 -1
  193. package/dist/unstable/cli/CliOutput.d.ts +3 -2
  194. package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
  195. package/dist/unstable/cli/CliOutput.js +4 -3
  196. package/dist/unstable/cli/CliOutput.js.map +1 -1
  197. package/dist/unstable/cli/Command.d.ts +3 -2
  198. package/dist/unstable/cli/Command.d.ts.map +1 -1
  199. package/dist/unstable/cli/Command.js +3 -3
  200. package/dist/unstable/cli/Command.js.map +1 -1
  201. package/dist/unstable/cli/Completions.d.ts +16 -0
  202. package/dist/unstable/cli/Completions.d.ts.map +1 -0
  203. package/dist/unstable/cli/Completions.js +23 -0
  204. package/dist/unstable/cli/Completions.js.map +1 -0
  205. package/dist/unstable/cli/Flag.d.ts +2 -2
  206. package/dist/unstable/cli/Flag.d.ts.map +1 -1
  207. package/dist/unstable/cli/Flag.js +1 -1
  208. package/dist/unstable/cli/Flag.js.map +1 -1
  209. package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -1
  210. package/dist/unstable/cli/GlobalFlag.js +4 -4
  211. package/dist/unstable/cli/GlobalFlag.js.map +1 -1
  212. package/dist/unstable/cli/HelpDoc.d.ts +14 -12
  213. package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
  214. package/dist/unstable/cli/Param.d.ts +4 -4
  215. package/dist/unstable/cli/Param.d.ts.map +1 -1
  216. package/dist/unstable/cli/Param.js +7 -7
  217. package/dist/unstable/cli/Param.js.map +1 -1
  218. package/dist/unstable/cli/Primitive.d.ts +1 -1
  219. package/dist/unstable/cli/Primitive.d.ts.map +1 -1
  220. package/dist/unstable/cli/Primitive.js.map +1 -1
  221. package/dist/unstable/cli/Prompt.js +71 -67
  222. package/dist/unstable/cli/Prompt.js.map +1 -1
  223. package/dist/unstable/cli/index.d.ts +4 -0
  224. package/dist/unstable/cli/index.d.ts.map +1 -1
  225. package/dist/unstable/cli/index.js +4 -0
  226. package/dist/unstable/cli/index.js.map +1 -1
  227. package/dist/unstable/cli/internal/completions/CommandDescriptor.js +9 -2
  228. package/dist/unstable/cli/internal/completions/CommandDescriptor.js.map +1 -1
  229. package/dist/unstable/cli/internal/parser.js +8 -3
  230. package/dist/unstable/cli/internal/parser.js.map +1 -1
  231. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts +3 -2
  232. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  233. package/dist/unstable/cluster/ClusterWorkflowEngine.js +25 -23
  234. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  235. package/dist/unstable/cluster/DeliverAt.js +1 -1
  236. package/dist/unstable/cluster/DeliverAt.js.map +1 -1
  237. package/dist/unstable/cluster/Entity.d.ts +3 -2
  238. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  239. package/dist/unstable/cluster/Entity.js +7 -7
  240. package/dist/unstable/cluster/Entity.js.map +1 -1
  241. package/dist/unstable/cluster/Message.d.ts +4 -3
  242. package/dist/unstable/cluster/Message.d.ts.map +1 -1
  243. package/dist/unstable/cluster/Message.js +3 -2
  244. package/dist/unstable/cluster/Message.js.map +1 -1
  245. package/dist/unstable/cluster/MessageStorage.d.ts +10 -10
  246. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  247. package/dist/unstable/cluster/MessageStorage.js +12 -12
  248. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  249. package/dist/unstable/cluster/Reply.d.ts +2 -1
  250. package/dist/unstable/cluster/Reply.d.ts.map +1 -1
  251. package/dist/unstable/cluster/Reply.js +4 -3
  252. package/dist/unstable/cluster/Reply.js.map +1 -1
  253. package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
  254. package/dist/unstable/cluster/RunnerServer.js +9 -8
  255. package/dist/unstable/cluster/RunnerServer.js.map +1 -1
  256. package/dist/unstable/cluster/Runners.d.ts +2 -1
  257. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  258. package/dist/unstable/cluster/Runners.js +7 -6
  259. package/dist/unstable/cluster/Runners.js.map +1 -1
  260. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  261. package/dist/unstable/cluster/Sharding.js +19 -13
  262. package/dist/unstable/cluster/Sharding.js.map +1 -1
  263. package/dist/unstable/cluster/ShardingConfig.d.ts +5 -4
  264. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  265. package/dist/unstable/cluster/ShardingConfig.js +4 -4
  266. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  267. package/dist/unstable/cluster/SqlMessageStorage.d.ts.map +1 -1
  268. package/dist/unstable/cluster/SqlMessageStorage.js +19 -18
  269. package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
  270. package/dist/unstable/cluster/internal/entityManager.js +9 -10
  271. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  272. package/dist/unstable/devtools/DevToolsSchema.d.ts +2 -1
  273. package/dist/unstable/devtools/DevToolsSchema.d.ts.map +1 -1
  274. package/dist/unstable/devtools/DevToolsSchema.js +1 -4
  275. package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
  276. package/dist/unstable/encoding/Ndjson.d.ts +8 -8
  277. package/dist/unstable/encoding/Ndjson.d.ts.map +1 -1
  278. package/dist/unstable/encoding/Ndjson.js.map +1 -1
  279. package/dist/unstable/http/Cookies.d.ts +5 -4
  280. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  281. package/dist/unstable/http/Cookies.js +3 -4
  282. package/dist/unstable/http/Cookies.js.map +1 -1
  283. package/dist/unstable/http/Etag.d.ts.map +1 -1
  284. package/dist/unstable/http/Etag.js +5 -1
  285. package/dist/unstable/http/Etag.js.map +1 -1
  286. package/dist/unstable/http/Headers.d.ts +3 -2
  287. package/dist/unstable/http/Headers.d.ts.map +1 -1
  288. package/dist/unstable/http/Headers.js +2 -1
  289. package/dist/unstable/http/Headers.js.map +1 -1
  290. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  291. package/dist/unstable/http/HttpClient.js +2 -1
  292. package/dist/unstable/http/HttpClient.js.map +1 -1
  293. package/dist/unstable/http/HttpClientRequest.d.ts +4 -3
  294. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  295. package/dist/unstable/http/HttpClientRequest.js +8 -6
  296. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  297. package/dist/unstable/http/HttpClientResponse.d.ts.map +1 -1
  298. package/dist/unstable/http/HttpClientResponse.js +2 -1
  299. package/dist/unstable/http/HttpClientResponse.js.map +1 -1
  300. package/dist/unstable/http/HttpIncomingMessage.d.ts +3 -2
  301. package/dist/unstable/http/HttpIncomingMessage.d.ts.map +1 -1
  302. package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
  303. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  304. package/dist/unstable/http/HttpMiddleware.js +16 -15
  305. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  306. package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
  307. package/dist/unstable/http/HttpPlatform.js +3 -2
  308. package/dist/unstable/http/HttpPlatform.js.map +1 -1
  309. package/dist/unstable/http/HttpRouter.d.ts +2 -1
  310. package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
  311. package/dist/unstable/http/HttpRouter.js +7 -7
  312. package/dist/unstable/http/HttpRouter.js.map +1 -1
  313. package/dist/unstable/http/HttpServer.d.ts.map +1 -1
  314. package/dist/unstable/http/HttpServer.js +2 -2
  315. package/dist/unstable/http/HttpServer.js.map +1 -1
  316. package/dist/unstable/http/HttpServerError.d.ts +2 -1
  317. package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
  318. package/dist/unstable/http/HttpServerError.js +2 -1
  319. package/dist/unstable/http/HttpServerError.js.map +1 -1
  320. package/dist/unstable/http/HttpServerRequest.d.ts +3 -2
  321. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  322. package/dist/unstable/http/HttpServerRequest.js +14 -10
  323. package/dist/unstable/http/HttpServerRequest.js.map +1 -1
  324. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  325. package/dist/unstable/http/HttpServerResponse.js +4 -3
  326. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  327. package/dist/unstable/http/HttpTraceContext.d.ts +3 -2
  328. package/dist/unstable/http/HttpTraceContext.d.ts.map +1 -1
  329. package/dist/unstable/http/HttpTraceContext.js +27 -15
  330. package/dist/unstable/http/HttpTraceContext.js.map +1 -1
  331. package/dist/unstable/http/UrlParams.d.ts +5 -4
  332. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  333. package/dist/unstable/http/UrlParams.js +5 -6
  334. package/dist/unstable/http/UrlParams.js.map +1 -1
  335. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +2 -2
  336. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  337. package/dist/unstable/httpapi/HttpApiBuilder.js +4 -2
  338. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  339. package/dist/unstable/httpapi/HttpApiError.d.ts +15 -0
  340. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  341. package/dist/unstable/httpapi/HttpApiError.js +81 -3
  342. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  343. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  344. package/dist/unstable/observability/OtlpExporter.js +2 -2
  345. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  346. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  347. package/dist/unstable/observability/OtlpTracer.js +7 -3
  348. package/dist/unstable/observability/OtlpTracer.js.map +1 -1
  349. package/dist/unstable/persistence/Persistable.js +1 -1
  350. package/dist/unstable/persistence/Persistable.js.map +1 -1
  351. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  352. package/dist/unstable/reactivity/Atom.js +1 -5
  353. package/dist/unstable/reactivity/Atom.js.map +1 -1
  354. package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
  355. package/dist/unstable/reactivity/AtomRegistry.js +4 -2
  356. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  357. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  358. package/dist/unstable/rpc/Rpc.js +4 -3
  359. package/dist/unstable/rpc/Rpc.js.map +1 -1
  360. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  361. package/dist/unstable/rpc/RpcClient.js +4 -4
  362. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  363. package/dist/unstable/rpc/RpcGroup.d.ts +1 -3
  364. package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
  365. package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
  366. package/dist/unstable/rpc/RpcSchema.js +3 -2
  367. package/dist/unstable/rpc/RpcSchema.js.map +1 -1
  368. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  369. package/dist/unstable/rpc/RpcSerialization.js +4 -1
  370. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  371. package/dist/unstable/rpc/RpcServer.d.ts +1 -1
  372. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  373. package/dist/unstable/rpc/RpcServer.js +3 -2
  374. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  375. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  376. package/dist/unstable/socket/Socket.js +2 -1
  377. package/dist/unstable/socket/Socket.js.map +1 -1
  378. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  379. package/dist/unstable/sql/SqlClient.js +1 -1
  380. package/dist/unstable/sql/SqlClient.js.map +1 -1
  381. package/dist/unstable/workflow/DurableDeferred.js +6 -6
  382. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  383. package/dist/unstable/workflow/Workflow.d.ts +2 -1
  384. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  385. package/dist/unstable/workflow/WorkflowEngine.d.ts +5 -4
  386. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  387. package/dist/unstable/workflow/WorkflowEngine.js +19 -14
  388. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  389. package/package.json +1 -1
  390. package/src/Array.ts +112 -105
  391. package/src/BigDecimal.ts +63 -66
  392. package/src/BigInt.ts +49 -41
  393. package/src/Channel.ts +3 -3
  394. package/src/Chunk.ts +68 -63
  395. package/src/Config.ts +4 -1
  396. package/src/Cron.ts +13 -18
  397. package/src/DateTime.ts +51 -92
  398. package/src/Deferred.ts +8 -6
  399. package/src/Duration.ts +112 -56
  400. package/src/Effect.ts +3 -4
  401. package/src/Fiber.ts +2 -1
  402. package/src/FiberHandle.ts +10 -9
  403. package/src/FiberMap.ts +22 -22
  404. package/src/FileSystem.ts +25 -22
  405. package/src/Graph.ts +105 -105
  406. package/src/HashMap.ts +11 -5
  407. package/src/Iterable.ts +13 -13
  408. package/src/Latch.ts +85 -3
  409. package/src/Layer.ts +244 -19
  410. package/src/Number.ts +85 -26
  411. package/src/Option.ts +2 -0
  412. package/src/PartitionedSemaphore.ts +414 -0
  413. package/src/PubSub.ts +7 -6
  414. package/src/Queue.ts +5 -5
  415. package/src/Record.ts +52 -47
  416. package/src/Scheduler.ts +37 -126
  417. package/src/Schema.ts +2366 -116
  418. package/src/SchemaAST.ts +2 -2
  419. package/src/SchemaGetter.ts +4 -4
  420. package/src/SchemaRepresentation.ts +2 -2
  421. package/src/SchemaTransformation.ts +27 -27
  422. package/src/Semaphore.ts +271 -183
  423. package/src/ServiceMap.ts +83 -31
  424. package/src/Stream.ts +1 -1
  425. package/src/String.ts +122 -69
  426. package/src/SubscriptionRef.ts +96 -117
  427. package/src/Terminal.ts +2 -1
  428. package/src/Tracer.ts +6 -5
  429. package/src/Trie.ts +26 -14
  430. package/src/TxHashMap.ts +78 -60
  431. package/src/TxSemaphore.ts +186 -11
  432. package/src/index.ts +89 -33
  433. package/src/internal/dateTime.ts +74 -65
  434. package/src/internal/effect.ts +30 -122
  435. package/src/internal/hashMap.ts +4 -3
  436. package/src/internal/option.ts +7 -0
  437. package/src/internal/trie.ts +6 -6
  438. package/src/unstable/ai/AiError.ts +1 -1
  439. package/src/unstable/ai/AnthropicStructuredOutput.ts +4 -0
  440. package/src/unstable/ai/Chat.ts +17 -15
  441. package/src/unstable/ai/LanguageModel.ts +148 -97
  442. package/src/unstable/ai/OpenAiStructuredOutput.ts +4 -0
  443. package/src/unstable/ai/Tool.ts +20 -0
  444. package/src/unstable/cli/Argument.ts +2 -4
  445. package/src/unstable/cli/CliOutput.ts +7 -5
  446. package/src/unstable/cli/Command.ts +5 -5
  447. package/src/unstable/cli/Completions.ts +36 -0
  448. package/src/unstable/cli/Flag.ts +2 -2
  449. package/src/unstable/cli/GlobalFlag.ts +4 -5
  450. package/src/unstable/cli/HelpDoc.ts +14 -12
  451. package/src/unstable/cli/Param.ts +15 -11
  452. package/src/unstable/cli/Primitive.ts +1 -1
  453. package/src/unstable/cli/Prompt.ts +81 -83
  454. package/src/unstable/cli/index.ts +5 -0
  455. package/src/unstable/cli/internal/completions/CommandDescriptor.ts +3 -2
  456. package/src/unstable/cli/internal/parser.ts +7 -4
  457. package/src/unstable/cluster/ClusterWorkflowEngine.ts +35 -30
  458. package/src/unstable/cluster/DeliverAt.ts +1 -1
  459. package/src/unstable/cluster/Entity.ts +13 -12
  460. package/src/unstable/cluster/Message.ts +6 -5
  461. package/src/unstable/cluster/MessageStorage.ts +26 -25
  462. package/src/unstable/cluster/Reply.ts +7 -4
  463. package/src/unstable/cluster/RunnerServer.ts +10 -13
  464. package/src/unstable/cluster/Runners.ts +8 -7
  465. package/src/unstable/cluster/Sharding.ts +24 -17
  466. package/src/unstable/cluster/ShardingConfig.ts +6 -6
  467. package/src/unstable/cluster/SqlMessageStorage.ts +21 -18
  468. package/src/unstable/cluster/internal/entityManager.ts +27 -21
  469. package/src/unstable/devtools/DevToolsSchema.ts +3 -2
  470. package/src/unstable/encoding/Ndjson.ts +17 -17
  471. package/src/unstable/http/Cookies.ts +7 -8
  472. package/src/unstable/http/Etag.ts +5 -3
  473. package/src/unstable/http/Headers.ts +6 -5
  474. package/src/unstable/http/HttpClient.ts +2 -1
  475. package/src/unstable/http/HttpClientRequest.ts +11 -9
  476. package/src/unstable/http/HttpClientResponse.ts +5 -4
  477. package/src/unstable/http/HttpIncomingMessage.ts +3 -2
  478. package/src/unstable/http/HttpMiddleware.ts +16 -15
  479. package/src/unstable/http/HttpPlatform.ts +3 -2
  480. package/src/unstable/http/HttpRouter.ts +9 -9
  481. package/src/unstable/http/HttpServer.ts +3 -9
  482. package/src/unstable/http/HttpServerError.ts +3 -2
  483. package/src/unstable/http/HttpServerRequest.ts +29 -25
  484. package/src/unstable/http/HttpServerResponse.ts +7 -6
  485. package/src/unstable/http/HttpTraceContext.ts +31 -17
  486. package/src/unstable/http/UrlParams.ts +11 -14
  487. package/src/unstable/httpapi/HttpApiBuilder.ts +13 -7
  488. package/src/unstable/httpapi/HttpApiError.ts +67 -12
  489. package/src/unstable/observability/OtlpExporter.ts +5 -2
  490. package/src/unstable/observability/OtlpTracer.ts +8 -4
  491. package/src/unstable/persistence/Persistable.ts +1 -1
  492. package/src/unstable/reactivity/Atom.ts +1 -4
  493. package/src/unstable/reactivity/AtomRegistry.ts +5 -3
  494. package/src/unstable/rpc/Rpc.ts +4 -3
  495. package/src/unstable/rpc/RpcClient.ts +10 -9
  496. package/src/unstable/rpc/RpcGroup.ts +3 -3
  497. package/src/unstable/rpc/RpcSchema.ts +6 -5
  498. package/src/unstable/rpc/RpcSerialization.ts +4 -1
  499. package/src/unstable/rpc/RpcServer.ts +3 -3
  500. package/src/unstable/socket/Socket.ts +2 -1
  501. package/src/unstable/sql/SqlClient.ts +5 -3
  502. package/src/unstable/workflow/DurableDeferred.ts +6 -6
  503. package/src/unstable/workflow/Workflow.ts +1 -1
  504. package/src/unstable/workflow/WorkflowEngine.ts +29 -20
  505. package/dist/NullOr.d.ts +0 -149
  506. package/dist/NullOr.d.ts.map +0 -1
  507. package/dist/NullOr.js +0 -152
  508. package/dist/NullOr.js.map +0 -1
  509. package/dist/unstable/cli/internal/completions/Completions.d.ts +0 -2
  510. package/dist/unstable/cli/internal/completions/Completions.d.ts.map +0 -1
  511. package/dist/unstable/cli/internal/completions/Completions.js +0 -23
  512. package/dist/unstable/cli/internal/completions/Completions.js.map +0 -1
  513. package/src/NullOr.ts +0 -204
  514. package/src/unstable/cli/internal/completions/Completions.ts +0 -31
@@ -37,7 +37,10 @@ export const json: RpcSerialization["Service"] = RpcSerialization.of({
37
37
  makeUnsafe: () => {
38
38
  const decoder = new TextDecoder()
39
39
  return {
40
- decode: (bytes) => [JSON.parse(typeof bytes === "string" ? bytes : decoder.decode(bytes))],
40
+ decode: (bytes) => {
41
+ const decoded = JSON.parse(typeof bytes === "string" ? bytes : decoder.decode(bytes))
42
+ return Array.isArray(decoded) ? decoded : [decoded]
43
+ },
41
44
  encode: (response) => JSON.stringify(response)
42
45
  }
43
46
  }
@@ -11,7 +11,7 @@ import { constant, constTrue, constVoid, identity } from "../../Function.ts"
11
11
  import { reportCauseUnsafe } from "../../internal/effect.ts"
12
12
  import * as Latch from "../../Latch.ts"
13
13
  import * as Layer from "../../Layer.ts"
14
- import type * as Option from "../../Option.ts"
14
+ import * as Option from "../../Option.ts"
15
15
  import * as Predicate from "../../Predicate.ts"
16
16
  import * as Pull from "../../Pull.ts"
17
17
  import * as Queue from "../../Queue.ts"
@@ -547,7 +547,7 @@ export const make: <Rpcs extends Rpc.Any>(
547
547
  decode: Schema.decodeUnknownEffect(Schema.toCodecJson(rpc.payloadSchema)) as any,
548
548
  encodeChunk: Schema.encodeUnknownEffect(
549
549
  Schema.toCodecJson(
550
- Schema.Array(streamSchemas ? streamSchemas.success : Schema.Any)
550
+ Schema.Array(Option.isSome(streamSchemas) ? streamSchemas.value.success : Schema.Any)
551
551
  )
552
552
  ) as any,
553
553
  encodeExit: Schema.encodeUnknownEffect(Schema.toCodecJson(Rpc.exitSchema(rpc as any))) as any,
@@ -1245,7 +1245,7 @@ export const makeProtocolWorkerRunner: Effect.Effect<
1245
1245
  Effect.tapCause(Effect.logError),
1246
1246
  Effect.onExit(() =>
1247
1247
  Effect.sync(() => {
1248
- fiber.currentScheduler.scheduleTask(() => fiber.interruptUnsafe(fiber.id), 0)
1248
+ fiber.currentDispatcher.scheduleTask(() => fiber.interruptUnsafe(fiber.id), 0)
1249
1249
  })
1250
1250
  ),
1251
1251
  Effect.forkScoped
@@ -500,6 +500,7 @@ export const fromWebSocket = <RO>(
500
500
  )
501
501
  }
502
502
  function onClose(event: globalThis.CloseEvent) {
503
+ const code = typeof event.code === "number" ? event.code : 1001
503
504
  ws.removeEventListener("message", onMessage)
504
505
  ws.removeEventListener("error", onError)
505
506
  Deferred.doneUnsafe(
@@ -507,7 +508,7 @@ export const fromWebSocket = <RO>(
507
508
  Effect.fail(
508
509
  new SocketError({
509
510
  reason: new SocketCloseError({
510
- code: event.code,
511
+ code,
511
512
  closeReason: event.reason
512
513
  })
513
514
  })
@@ -215,9 +215,11 @@ export const makeWithTransaction = <I, S>(options: {
215
215
  Effect.flatMap(() =>
216
216
  Effect.provideServices(
217
217
  restore(effect),
218
- ServiceMap.add(services, options.transactionService, [conn, id]).pipe(
219
- ServiceMap.add(Tracer.ParentSpan, span)
220
- )
218
+ ServiceMap.mutate(services, (services) =>
219
+ services.pipe(
220
+ ServiceMap.add(options.transactionService, [conn, id]),
221
+ ServiceMap.add(Tracer.ParentSpan, span)
222
+ ))
221
223
  )
222
224
  ),
223
225
  Effect.exit,
@@ -8,7 +8,7 @@ import * as Effect from "../../Effect.ts"
8
8
  import * as Encoding from "../../Encoding.ts"
9
9
  import * as Exit from "../../Exit.ts"
10
10
  import { dual } from "../../Function.ts"
11
- import * as Predicate from "../../Predicate.ts"
11
+ import * as Option from "../../Option.ts"
12
12
  import * as Schema from "../../Schema.ts"
13
13
  import * as Getter from "../../SchemaGetter.ts"
14
14
  import * as ServiceMap from "../../ServiceMap.ts"
@@ -124,12 +124,12 @@ const await_: <Success extends Schema.Top, Error extends Schema.Top>(
124
124
  const instance = yield* InstanceTag
125
125
  const exit = yield* Workflow.wrapActivityResult(
126
126
  engine.deferredResult(self),
127
- Predicate.isUndefined
127
+ Option.isNone
128
128
  )
129
- if (exit === undefined) {
129
+ if (Option.isNone(exit)) {
130
130
  return yield* Workflow.suspend(instance)
131
131
  }
132
- return yield* exit as Exit.Exit<any, any>
132
+ return yield* exit.value as Exit.Exit<any, any>
133
133
  })
134
134
 
135
135
  export {
@@ -241,8 +241,8 @@ export const raceAll = <
241
241
  return Effect.gen(function*() {
242
242
  const engine = yield* EngineTag
243
243
  const exit = yield* engine.deferredResult(deferred)
244
- if (exit !== undefined) {
245
- return yield* Effect.flatten(exit) as Effect.Effect<any, any, any>
244
+ if (Option.isSome(exit)) {
245
+ return yield* Effect.flatten(exit.value) as Effect.Effect<any, any, any>
246
246
  }
247
247
  return yield* into(Effect.raceAll(options.effects), deferred)
248
248
  })
@@ -78,7 +78,7 @@ export interface Workflow<
78
78
  readonly poll: (
79
79
  executionId: string
80
80
  ) => Effect.Effect<
81
- Result<Success["Type"], Error["Type"]> | undefined,
81
+ Option.Option<Result<Success["Type"], Error["Type"]>>,
82
82
  never,
83
83
  WorkflowEngine | Success["DecodingServices"] | Error["DecodingServices"]
84
84
  >
@@ -98,7 +98,7 @@ export class WorkflowEngine extends ServiceMap.Service<
98
98
  workflow: Workflow.Workflow<Name, Payload, Success, Error>,
99
99
  executionId: string
100
100
  ) => Effect.Effect<
101
- Workflow.Result<Success["Type"], Error["Type"]> | undefined,
101
+ Option.Option<Workflow.Result<Success["Type"], Error["Type"]>>,
102
102
  never,
103
103
  Success["DecodingServices"] | Error["DecodingServices"]
104
104
  >
@@ -147,7 +147,7 @@ export class WorkflowEngine extends ServiceMap.Service<
147
147
  >(
148
148
  deferred: DurableDeferred.DurableDeferred<Success, Error>
149
149
  ) => Effect.Effect<
150
- Exit.Exit<Success["Type"], Error["Type"]> | undefined,
150
+ Option.Option<Exit.Exit<Success["Type"], Error["Type"]>>,
151
151
  never,
152
152
  WorkflowInstance
153
153
  >
@@ -277,7 +277,7 @@ export interface Encoded {
277
277
  readonly poll: (
278
278
  workflow: Workflow.Any,
279
279
  executionId: string
280
- ) => Effect.Effect<Workflow.Result<unknown, unknown> | undefined>
280
+ ) => Effect.Effect<Option.Option<Workflow.Result<unknown, unknown>>>
281
281
  readonly interrupt: (
282
282
  workflow: Workflow.Any,
283
283
  executionId: string
@@ -297,7 +297,7 @@ export interface Encoded {
297
297
  readonly deferredResult: (
298
298
  deferred: DurableDeferred.Any
299
299
  ) => Effect.Effect<
300
- Exit.Exit<unknown, unknown> | undefined,
300
+ Option.Option<Exit.Exit<unknown, unknown>>,
301
301
  never,
302
302
  WorkflowInstance
303
303
  >
@@ -354,14 +354,14 @@ export const makeUnsafe = (options: Encoded): WorkflowEngine["Service"] =>
354
354
  const executionId = opts.executionId
355
355
  const suspendedRetrySchedule = opts.suspendedRetrySchedule ?? defaultRetrySchedule
356
356
  yield* Effect.annotateCurrentSpan({ executionId })
357
- let result: Workflow.Result<Success["Type"], Error["Type"]> | undefined
357
+ let result = Option.none<Workflow.Result<Success["Type"], Error["Type"]>>()
358
358
 
359
359
  // link interruption with parent workflow
360
360
  const parentInstance = yield* Effect.serviceOption(WorkflowInstance)
361
361
  if (Option.isSome(parentInstance)) {
362
362
  const instance = parentInstance.value
363
363
  yield* Effect.addFinalizer(() => {
364
- if (!instance.interrupted || result?._tag === "Complete") {
364
+ if (!instance.interrupted || (Option.isSome(result) && result.value._tag === "Complete")) {
365
365
  return Effect.void
366
366
  }
367
367
  return options.interrupt(self, executionId)
@@ -384,21 +384,23 @@ export const makeUnsafe = (options: Encoded): WorkflowEngine["Service"] =>
384
384
  parent: Option.getOrUndefined(parentInstance)
385
385
  })
386
386
  if (Option.isSome(parentInstance)) {
387
- result = yield* Workflow.wrapActivityResult(
387
+ const wrapped = yield* Workflow.wrapActivityResult(
388
388
  run,
389
389
  (result) => result._tag === "Suspended"
390
390
  )
391
- if (result._tag === "Suspended") {
391
+ result = Option.some(wrapped)
392
+ if (wrapped._tag === "Suspended") {
392
393
  return yield* Workflow.suspend(parentInstance.value)
393
394
  }
394
- return yield* result.exit
395
+ return yield* wrapped.exit
395
396
  }
396
397
 
397
398
  let sleep: Effect.Effect<any> | undefined
398
399
  while (true) {
399
- result = yield* run
400
- if (result._tag === "Complete") {
401
- return yield* result.exit as Exit.Exit<any>
400
+ const wrapped = yield* run
401
+ result = Option.some(wrapped)
402
+ if (wrapped._tag === "Complete") {
403
+ return yield* wrapped.exit as Exit.Exit<any>
402
404
  }
403
405
  sleep ??= (yield* Schedule.toStepWithSleep(suspendedRetrySchedule))(
404
406
  void 0
@@ -438,12 +440,14 @@ export const makeUnsafe = (options: Encoded): WorkflowEngine["Service"] =>
438
440
  executionId: instance.executionId
439
441
  })
440
442
  const exit = yield* options.deferredResult(deferred)
441
- if (exit === undefined) {
442
- return exit
443
+ if (Option.isNone(exit)) {
444
+ return Option.none()
443
445
  }
444
- return yield* Effect.orDie(
445
- Schema.decodeEffect(deferred.exitSchema)(toJsonExit(exit))
446
- ) as Effect.Effect<Exit.Exit<Success["Type"], Error["Type"]>>
446
+ return Option.some(
447
+ yield* Effect.orDie(
448
+ Schema.decodeEffect(deferred.exitSchema)(toJsonExit(exit.value))
449
+ ) as Effect.Effect<Exit.Exit<Success["Type"], Error["Type"]>>
450
+ )
447
451
  },
448
452
  Effect.withSpan(
449
453
  "WorkflowEngine.deferredResult",
@@ -646,15 +650,20 @@ export const layerMemory: Layer.Layer<WorkflowEngine> = Layer.effect(WorkflowEng
646
650
  Effect.suspend(() => {
647
651
  const state = executions.get(executionId)
648
652
  if (!state) {
649
- return Effect.succeed(undefined)
653
+ return Effect.succeedNone
650
654
  }
651
655
  const exit = state.fiber?.pollUnsafe()
652
- return exit ?? Effect.succeed(undefined)
656
+ if (!exit) {
657
+ return Effect.succeedNone
658
+ }
659
+ return exit._tag === "Success"
660
+ ? Effect.succeedSome(exit.value)
661
+ : Effect.die(exit.cause)
653
662
  }),
654
663
  deferredResult: Effect.fnUntraced(function*(deferred) {
655
664
  const instance = yield* WorkflowInstance
656
665
  const id = `${instance.executionId}/${deferred.name}`
657
- return deferredResults.get(id)
666
+ return Option.fromNullishOr(deferredResults.get(id))
658
667
  }),
659
668
  deferredDone: (options) =>
660
669
  Effect.suspend(() => {
package/dist/NullOr.d.ts DELETED
@@ -1,149 +0,0 @@
1
- /**
2
- * This module provides small, allocation-free utilities for working with values of type
3
- * `A | null`, where `null` means "no value".
4
- *
5
- * Why not `Option<A>`?
6
- * In TypeScript, `Option<A>` is often unnecessary. If `null` already models absence
7
- * in your domain, using `A | null` keeps types simple, avoids extra wrappers, and
8
- * reduces overhead. The key is that `A` itself must not include `null`; in this
9
- * module `null` is reserved to mean "no value".
10
- *
11
- * When to use `A | null`:
12
- * - Absence can be represented by `null` in your domain model.
13
- * - You do not need to distinguish between "no value" and "value is null".
14
- * - You want straightforward ergonomics and zero extra allocations.
15
- *
16
- * When to prefer `Option<A>`:
17
- * - You must distinguish `None` from `Some(null)` (that is, `null` is a valid
18
- * payload and carries meaning on its own).
19
- * - You need a tagged representation for serialization or pattern matching across
20
- * boundaries where `null` would be ambiguous.
21
- * - You want the richer `Option` API and are comfortable with the extra wrapper.
22
- *
23
- * Lawfulness note:
24
- * All helpers treat `null` as absence. Do not use these utilities with payloads
25
- * where `A` can itself be `null`, or you will lose information. If you need to
26
- * carry `null` as a valid payload, use `Option<A>` instead.
27
- *
28
- * @since 4.0.0
29
- */
30
- import * as Combiner from "./Combiner.ts";
31
- import type { LazyArg } from "./Function.ts";
32
- import * as Reducer from "./Reducer.ts";
33
- /**
34
- * @since 4.0.0
35
- */
36
- export declare const map: {
37
- /**
38
- * @since 4.0.0
39
- */
40
- <A, B>(f: (a: A) => B): (self: A | null) => B | null;
41
- /**
42
- * @since 4.0.0
43
- */
44
- <A, B>(self: A | null, f: (a: A) => B): B | null;
45
- };
46
- /**
47
- * @since 4.0.0
48
- */
49
- export declare const match: {
50
- /**
51
- * @since 4.0.0
52
- */
53
- <B, A, C = B>(options: {
54
- readonly onNull: LazyArg<B>;
55
- readonly onNotNull: (a: A) => C;
56
- }): (self: A | null) => B | C;
57
- /**
58
- * @since 4.0.0
59
- */
60
- <A, B, C = B>(self: A | null, options: {
61
- readonly onNull: LazyArg<B>;
62
- readonly onNotNull: (a: A) => C;
63
- }): B | C;
64
- };
65
- /**
66
- * @since 4.0.0
67
- */
68
- export declare const getOrThrowWith: {
69
- /**
70
- * @since 4.0.0
71
- */
72
- (onNull: () => unknown): <A>(self: A | null) => A;
73
- /**
74
- * @since 4.0.0
75
- */
76
- <A>(self: A | null, onNull: () => unknown): A;
77
- };
78
- /**
79
- * @since 4.0.0
80
- */
81
- export declare const getOrThrow: <A>(self: A | null) => A;
82
- /**
83
- * @since 4.0.0
84
- */
85
- export declare const liftThrowable: <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => B) => (...a: A) => B | null;
86
- /**
87
- * Creates a `Reducer` for `NullOr<A>` that prioritizes the first non-`null`
88
- * value and combines values when both operands are present.
89
- *
90
- * This `Reducer` is useful for scenarios where you want to:
91
- * - Take the first available value (like a fallback chain)
92
- * - Combine values when both are present
93
- * - Maintain a `null` state only when all values are `null`
94
- *
95
- * The `initialValue` of the `Reducer` is `null`.
96
- *
97
- * **Behavior:**
98
- * - `null` + `null` = `null`
99
- * - `a` + `null` = `a` (first value wins)
100
- * - `null` + `b` = `b` (second value wins)
101
- * - `a` + `b` = `a + b` (values combined)
102
- *
103
- * @since 4.0.0
104
- */
105
- export declare function makeReducer<A>(combiner: Combiner.Combiner<A>): Reducer.Reducer<A | null>;
106
- /**
107
- * Creates a `Combiner` for `NullOr<A>` that only combines values when both
108
- * operands are not `null`, failing fast if either is `null`.
109
- *
110
- * This `Combiner` is useful for scenarios where you need both values to be
111
- * present to perform an operation, such as:
112
- * - Mathematical operations that require two operands
113
- * - Data validation that needs both fields
114
- * - Operations that can't proceed with partial data
115
- *
116
- * **Behavior:**
117
- * - `null` + `null` = `null`
118
- * - `a` + `null` = `null` (fails fast)
119
- * - `null` + `b` = `null` (fails fast)
120
- * - `a` + `b` = `a + b` (values combined)
121
- *
122
- * @see {@link makeReducerFailFast} if you have a `Reducer` and want to lift it
123
- * to `NullOr` values.
124
- *
125
- * @since 4.0.0
126
- */
127
- export declare function makeCombinerFailFast<A>(combiner: Combiner.Combiner<A>): Combiner.Combiner<A | null>;
128
- /**
129
- * Creates a `Reducer` for `NullOr<A>` by wrapping an existing `Reducer` with
130
- * fail-fast semantics for `NullOr` values.
131
- *
132
- * This function lifts a regular `Reducer` into the `NullOr` context, allowing
133
- * you to use existing `Reducer`s with `NullOr` values while maintaining the
134
- * fail-fast behavior where any `null` value causes the entire reduction to fail.
135
- *
136
- * The initial value is `some(reducer.initialValue)`, ensuring the `Reducer`
137
- * starts with a valid `NullOr` value.
138
- *
139
- * **Behavior:**
140
- * - Fails fast (returns `null`) if any operand is `null`
141
- * - Uses the underlying reducer's combine logic when both values are present
142
- *
143
- * @see {@link makeCombinerFailFast} if you only have a `Combiner` and want to
144
- * lift it to `NullOr` values.
145
- *
146
- * @since 4.0.0
147
- */
148
- export declare function makeReducerFailFast<A>(reducer: Reducer.Reducer<A>): Reducer.Reducer<A | null>;
149
- //# sourceMappingURL=NullOr.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NullOr.d.ts","sourceRoot":"","sources":["../src/NullOr.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAE5C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,eAAO,MAAM,GAAG,EAAE;IAChB;;OAEG;IACH,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,CAAA;IACpD;;OAEG;IACH,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;CACQ,CAAA;AAE1D;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE;IAClB;;OAEG;IACH,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EACV,OAAO,EAAE;QACP,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;QAC3B,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;KAChC,GACA,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAA;IAC5B;;OAEG;IACH,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EACV,IAAI,EAAE,CAAC,GAAG,IAAI,EACd,OAAO,EAAE;QACP,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;QAC3B,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;KAChC,GACA,CAAC,GAAG,CAAC,CAAA;CAOT,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE;IAC3B;;OAEG;IACH,CAAC,MAAM,EAAE,MAAM,OAAO,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,CAAA;IACjD;;OAEG;IACH,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,OAAO,GAAG,CAAC,CAAA;CAM7C,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,KAAK,CAAkE,CAAA;AAElH;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,EAC/D,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,KAChB,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,IAOnB,CAAA;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAMxF;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,CAKnG;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAW7F"}
package/dist/NullOr.js DELETED
@@ -1,152 +0,0 @@
1
- /**
2
- * This module provides small, allocation-free utilities for working with values of type
3
- * `A | null`, where `null` means "no value".
4
- *
5
- * Why not `Option<A>`?
6
- * In TypeScript, `Option<A>` is often unnecessary. If `null` already models absence
7
- * in your domain, using `A | null` keeps types simple, avoids extra wrappers, and
8
- * reduces overhead. The key is that `A` itself must not include `null`; in this
9
- * module `null` is reserved to mean "no value".
10
- *
11
- * When to use `A | null`:
12
- * - Absence can be represented by `null` in your domain model.
13
- * - You do not need to distinguish between "no value" and "value is null".
14
- * - You want straightforward ergonomics and zero extra allocations.
15
- *
16
- * When to prefer `Option<A>`:
17
- * - You must distinguish `None` from `Some(null)` (that is, `null` is a valid
18
- * payload and carries meaning on its own).
19
- * - You need a tagged representation for serialization or pattern matching across
20
- * boundaries where `null` would be ambiguous.
21
- * - You want the richer `Option` API and are comfortable with the extra wrapper.
22
- *
23
- * Lawfulness note:
24
- * All helpers treat `null` as absence. Do not use these utilities with payloads
25
- * where `A` can itself be `null`, or you will lose information. If you need to
26
- * carry `null` as a valid payload, use `Option<A>` instead.
27
- *
28
- * @since 4.0.0
29
- */
30
- import * as Combiner from "./Combiner.js";
31
- import { dual } from "./Function.js";
32
- import * as Reducer from "./Reducer.js";
33
- /**
34
- * @since 4.0.0
35
- */
36
- export const map = /*#__PURE__*/dual(2, (self, f) => self === null ? null : f(self));
37
- /**
38
- * @since 4.0.0
39
- */
40
- export const match = /*#__PURE__*/dual(2, (self, {
41
- onNotNull,
42
- onNull
43
- }) => self === null ? onNull() : onNotNull(self));
44
- /**
45
- * @since 4.0.0
46
- */
47
- export const getOrThrowWith = /*#__PURE__*/dual(2, (self, onNull) => {
48
- if (self !== null) {
49
- return self;
50
- }
51
- throw onNull();
52
- });
53
- /**
54
- * @since 4.0.0
55
- */
56
- export const getOrThrow = /*#__PURE__*/getOrThrowWith(() => new Error("getOrThrow called on a null"));
57
- /**
58
- * @since 4.0.0
59
- */
60
- export const liftThrowable = f => (...a) => {
61
- try {
62
- return f(...a);
63
- } catch {
64
- return null;
65
- }
66
- };
67
- /**
68
- * Creates a `Reducer` for `NullOr<A>` that prioritizes the first non-`null`
69
- * value and combines values when both operands are present.
70
- *
71
- * This `Reducer` is useful for scenarios where you want to:
72
- * - Take the first available value (like a fallback chain)
73
- * - Combine values when both are present
74
- * - Maintain a `null` state only when all values are `null`
75
- *
76
- * The `initialValue` of the `Reducer` is `null`.
77
- *
78
- * **Behavior:**
79
- * - `null` + `null` = `null`
80
- * - `a` + `null` = `a` (first value wins)
81
- * - `null` + `b` = `b` (second value wins)
82
- * - `a` + `b` = `a + b` (values combined)
83
- *
84
- * @since 4.0.0
85
- */
86
- export function makeReducer(combiner) {
87
- return Reducer.make((self, that) => {
88
- if (self === null) return that;
89
- if (that === null) return self;
90
- return combiner.combine(self, that);
91
- }, null);
92
- }
93
- /**
94
- * Creates a `Combiner` for `NullOr<A>` that only combines values when both
95
- * operands are not `null`, failing fast if either is `null`.
96
- *
97
- * This `Combiner` is useful for scenarios where you need both values to be
98
- * present to perform an operation, such as:
99
- * - Mathematical operations that require two operands
100
- * - Data validation that needs both fields
101
- * - Operations that can't proceed with partial data
102
- *
103
- * **Behavior:**
104
- * - `null` + `null` = `null`
105
- * - `a` + `null` = `null` (fails fast)
106
- * - `null` + `b` = `null` (fails fast)
107
- * - `a` + `b` = `a + b` (values combined)
108
- *
109
- * @see {@link makeReducerFailFast} if you have a `Reducer` and want to lift it
110
- * to `NullOr` values.
111
- *
112
- * @since 4.0.0
113
- */
114
- export function makeCombinerFailFast(combiner) {
115
- return Combiner.make((self, that) => {
116
- if (self === null || that === null) return null;
117
- return combiner.combine(self, that);
118
- });
119
- }
120
- /**
121
- * Creates a `Reducer` for `NullOr<A>` by wrapping an existing `Reducer` with
122
- * fail-fast semantics for `NullOr` values.
123
- *
124
- * This function lifts a regular `Reducer` into the `NullOr` context, allowing
125
- * you to use existing `Reducer`s with `NullOr` values while maintaining the
126
- * fail-fast behavior where any `null` value causes the entire reduction to fail.
127
- *
128
- * The initial value is `some(reducer.initialValue)`, ensuring the `Reducer`
129
- * starts with a valid `NullOr` value.
130
- *
131
- * **Behavior:**
132
- * - Fails fast (returns `null`) if any operand is `null`
133
- * - Uses the underlying reducer's combine logic when both values are present
134
- *
135
- * @see {@link makeCombinerFailFast} if you only have a `Combiner` and want to
136
- * lift it to `NullOr` values.
137
- *
138
- * @since 4.0.0
139
- */
140
- export function makeReducerFailFast(reducer) {
141
- const combine = makeCombinerFailFast(reducer).combine;
142
- const initialValue = reducer.initialValue;
143
- return Reducer.make(combine, initialValue, collection => {
144
- let out = initialValue;
145
- for (const value of collection) {
146
- out = combine(out, value);
147
- if (out === null) return out;
148
- }
149
- return out;
150
- });
151
- }
152
- //# sourceMappingURL=NullOr.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NullOr.js","names":["Combiner","dual","Reducer","map","self","f","match","onNotNull","onNull","getOrThrowWith","getOrThrow","Error","liftThrowable","a","makeReducer","combiner","make","that","combine","makeCombinerFailFast","makeReducerFailFast","reducer","initialValue","collection","out","value"],"sources":["../src/NullOr.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,OAAO,KAAKA,QAAQ,MAAM,eAAe;AAEzC,SAASC,IAAI,QAAQ,eAAe;AACpC,OAAO,KAAKC,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,MAAMC,GAAG,gBASZF,IAAI,CAAC,CAAC,EAAE,CAACG,IAAI,EAAEC,CAAC,KAAMD,IAAI,KAAK,IAAI,GAAG,IAAI,GAAGC,CAAC,CAACD,IAAI,CAAE,CAAC;AAE1D;;;AAGA,OAAO,MAAME,KAAK,gBAoBdL,IAAI,CACN,CAAC,EACD,CAAcG,IAAc,EAAE;EAAEG,SAAS;EAAEC;AAAM,CAGhD,KAAYJ,IAAI,KAAK,IAAI,GAAGI,MAAM,EAAE,GAAGD,SAAS,CAACH,IAAI,CAAC,CACxD;AAED;;;AAGA,OAAO,MAAMK,cAAc,gBASvBR,IAAI,CAAC,CAAC,EAAE,CAAIG,IAAc,EAAEI,MAAqB,KAAO;EAC1D,IAAIJ,IAAI,KAAK,IAAI,EAAE;IACjB,OAAOA,IAAI;EACb;EACA,MAAMI,MAAM,EAAE;AAChB,CAAC,CAAC;AAEF;;;AAGA,OAAO,MAAME,UAAU,gBAA6BD,cAAc,CAAC,MAAM,IAAIE,KAAK,CAAC,6BAA6B,CAAC,CAAC;AAElH;;;AAGA,OAAO,MAAMC,aAAa,GACxBP,CAAiB,IAEnB,CAAC,GAAGQ,CAAC,KAAI;EACP,IAAI;IACF,OAAOR,CAAC,CAAC,GAAGQ,CAAC,CAAC;EAChB,CAAC,CAAC,MAAM;IACN,OAAO,IAAI;EACb;AACF,CAAC;AAED;;;;;;;;;;;;;;;;;;;AAmBA,OAAM,SAAUC,WAAWA,CAAIC,QAA8B;EAC3D,OAAOb,OAAO,CAACc,IAAI,CAAC,CAACZ,IAAI,EAAEa,IAAI,KAAI;IACjC,IAAIb,IAAI,KAAK,IAAI,EAAE,OAAOa,IAAI;IAC9B,IAAIA,IAAI,KAAK,IAAI,EAAE,OAAOb,IAAI;IAC9B,OAAOW,QAAQ,CAACG,OAAO,CAACd,IAAI,EAAEa,IAAI,CAAC;EACrC,CAAC,EAAE,IAAgB,CAAC;AACtB;AAEA;;;;;;;;;;;;;;;;;;;;;AAqBA,OAAM,SAAUE,oBAAoBA,CAAIJ,QAA8B;EACpE,OAAOf,QAAQ,CAACgB,IAAI,CAAC,CAACZ,IAAI,EAAEa,IAAI,KAAI;IAClC,IAAIb,IAAI,KAAK,IAAI,IAAIa,IAAI,KAAK,IAAI,EAAE,OAAO,IAAI;IAC/C,OAAOF,QAAQ,CAACG,OAAO,CAACd,IAAI,EAAEa,IAAI,CAAC;EACrC,CAAC,CAAC;AACJ;AAEA;;;;;;;;;;;;;;;;;;;;AAoBA,OAAM,SAAUG,mBAAmBA,CAAIC,OAA2B;EAChE,MAAMH,OAAO,GAAGC,oBAAoB,CAACE,OAAO,CAAC,CAACH,OAAO;EACrD,MAAMI,YAAY,GAAGD,OAAO,CAACC,YAAwB;EACrD,OAAOpB,OAAO,CAACc,IAAI,CAACE,OAAO,EAAEI,YAAY,EAAGC,UAAU,IAAI;IACxD,IAAIC,GAAG,GAAGF,YAAY;IACtB,KAAK,MAAMG,KAAK,IAAIF,UAAU,EAAE;MAC9BC,GAAG,GAAGN,OAAO,CAACM,GAAG,EAAEC,KAAK,CAAC;MACzB,IAAID,GAAG,KAAK,IAAI,EAAE,OAAOA,GAAG;IAC9B;IACA,OAAOA,GAAG;EACZ,CAAC,CAAC;AACJ","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=Completions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Completions.d.ts","sourceRoot":"","sources":["../../../../../src/unstable/cli/internal/completions/Completions.ts"],"names":[],"mappings":""}
@@ -1,23 +0,0 @@
1
- /**
2
- * Top-level completions dispatcher.
3
- *
4
- * Routes to the appropriate shell-specific generator based on the
5
- * requested shell type.
6
- *
7
- * @internal
8
- */
9
- import * as Bash from "./bash.js";
10
- import * as Fish from "./fish.js";
11
- import * as Zsh from "./zsh.js";
12
- /** @internal */
13
- export const generate = (executableName, shell, descriptor) => {
14
- switch (shell) {
15
- case "bash":
16
- return Bash.generate(executableName, descriptor);
17
- case "zsh":
18
- return Zsh.generate(executableName, descriptor);
19
- case "fish":
20
- return Fish.generate(executableName, descriptor);
21
- }
22
- };
23
- //# sourceMappingURL=Completions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Completions.js","names":["Bash","Fish","Zsh","generate","executableName","shell","descriptor"],"sources":["../../../../../src/unstable/cli/internal/completions/Completions.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;AAQA,OAAO,KAAKA,IAAI,MAAM,WAAW;AAEjC,OAAO,KAAKC,IAAI,MAAM,WAAW;AACjC,OAAO,KAAKC,GAAG,MAAM,UAAU;AAK/B;AACA,OAAO,MAAMC,QAAQ,GAAGA,CACtBC,cAAsB,EACtBC,KAAY,EACZC,UAA6B,KACnB;EACV,QAAQD,KAAK;IACX,KAAK,MAAM;MACT,OAAOL,IAAI,CAACG,QAAQ,CAACC,cAAc,EAAEE,UAAU,CAAC;IAClD,KAAK,KAAK;MACR,OAAOJ,GAAG,CAACC,QAAQ,CAACC,cAAc,EAAEE,UAAU,CAAC;IACjD,KAAK,MAAM;MACT,OAAOL,IAAI,CAACE,QAAQ,CAACC,cAAc,EAAEE,UAAU,CAAC;EACpD;AACF,CAAC","ignoreList":[]}