effect 4.0.0-beta.2 → 4.0.0-beta.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (881) hide show
  1. package/dist/Array.d.ts +127 -299
  2. package/dist/Array.d.ts.map +1 -1
  3. package/dist/Array.js +102 -62
  4. package/dist/Array.js.map +1 -1
  5. package/dist/Cache.d.ts +2 -2
  6. package/dist/Cache.d.ts.map +1 -1
  7. package/dist/Cache.js +6 -5
  8. package/dist/Cache.js.map +1 -1
  9. package/dist/Cause.d.ts +1 -1
  10. package/dist/Cause.d.ts.map +1 -1
  11. package/dist/Channel.d.ts +116 -30
  12. package/dist/Channel.d.ts.map +1 -1
  13. package/dist/Channel.js +82 -37
  14. package/dist/Channel.js.map +1 -1
  15. package/dist/Chunk.d.ts +54 -247
  16. package/dist/Chunk.d.ts.map +1 -1
  17. package/dist/Chunk.js +36 -67
  18. package/dist/Chunk.js.map +1 -1
  19. package/dist/Combiner.d.ts +280 -13
  20. package/dist/Combiner.d.ts.map +1 -1
  21. package/dist/Combiner.js +198 -7
  22. package/dist/Combiner.js.map +1 -1
  23. package/dist/Config.d.ts +165 -9
  24. package/dist/Config.d.ts.map +1 -1
  25. package/dist/Config.js +62 -7
  26. package/dist/Config.js.map +1 -1
  27. package/dist/ConfigProvider.d.ts +1 -1
  28. package/dist/Cron.d.ts +1 -1
  29. package/dist/Data.d.ts +534 -365
  30. package/dist/Data.d.ts.map +1 -1
  31. package/dist/Data.js +132 -79
  32. package/dist/Data.js.map +1 -1
  33. package/dist/DateTime.d.ts +23 -161
  34. package/dist/DateTime.d.ts.map +1 -1
  35. package/dist/DateTime.js +6 -51
  36. package/dist/DateTime.js.map +1 -1
  37. package/dist/Duration.d.ts +12 -12
  38. package/dist/Duration.d.ts.map +1 -1
  39. package/dist/Duration.js +12 -12
  40. package/dist/Duration.js.map +1 -1
  41. package/dist/Effect.d.ts +829 -692
  42. package/dist/Effect.d.ts.map +1 -1
  43. package/dist/Effect.js +263 -251
  44. package/dist/Effect.js.map +1 -1
  45. package/dist/Encoding.d.ts +194 -0
  46. package/dist/Encoding.d.ts.map +1 -0
  47. package/dist/Encoding.js +352 -0
  48. package/dist/Encoding.js.map +1 -0
  49. package/dist/Equal.d.ts +276 -109
  50. package/dist/Equal.d.ts.map +1 -1
  51. package/dist/Equal.js +124 -48
  52. package/dist/Equal.js.map +1 -1
  53. package/dist/ErrorReporter.d.ts +376 -0
  54. package/dist/ErrorReporter.d.ts.map +1 -0
  55. package/dist/ErrorReporter.js +246 -0
  56. package/dist/ErrorReporter.js.map +1 -0
  57. package/dist/Fiber.d.ts +2 -2
  58. package/dist/Fiber.d.ts.map +1 -1
  59. package/dist/Fiber.js.map +1 -1
  60. package/dist/FileSystem.d.ts +1 -1
  61. package/dist/FileSystem.d.ts.map +1 -1
  62. package/dist/FileSystem.js +5 -5
  63. package/dist/FileSystem.js.map +1 -1
  64. package/dist/Filter.d.ts +30 -34
  65. package/dist/Filter.d.ts.map +1 -1
  66. package/dist/Filter.js +15 -13
  67. package/dist/Filter.js.map +1 -1
  68. package/dist/Formatter.d.ts +131 -47
  69. package/dist/Formatter.d.ts.map +1 -1
  70. package/dist/Formatter.js +229 -51
  71. package/dist/Formatter.js.map +1 -1
  72. package/dist/Graph.d.ts +1 -1
  73. package/dist/Graph.d.ts.map +1 -1
  74. package/dist/Graph.js +5 -8
  75. package/dist/Graph.js.map +1 -1
  76. package/dist/HashMap.d.ts +15 -14
  77. package/dist/HashMap.d.ts.map +1 -1
  78. package/dist/HashMap.js +4 -4
  79. package/dist/HashMap.js.map +1 -1
  80. package/dist/Iterable.d.ts +40 -39
  81. package/dist/Iterable.d.ts.map +1 -1
  82. package/dist/Iterable.js +94 -22
  83. package/dist/Iterable.js.map +1 -1
  84. package/dist/JsonSchema.d.ts +299 -10
  85. package/dist/JsonSchema.d.ts.map +1 -1
  86. package/dist/JsonSchema.js +323 -4
  87. package/dist/JsonSchema.js.map +1 -1
  88. package/dist/Latch.d.ts +109 -0
  89. package/dist/Latch.d.ts.map +1 -0
  90. package/dist/Latch.js +72 -0
  91. package/dist/Latch.js.map +1 -0
  92. package/dist/Layer.d.ts +9 -9
  93. package/dist/Layer.d.ts.map +1 -1
  94. package/dist/Layer.js.map +1 -1
  95. package/dist/LayerMap.d.ts +4 -4
  96. package/dist/LayerMap.d.ts.map +1 -1
  97. package/dist/LogLevel.d.ts +32 -0
  98. package/dist/LogLevel.d.ts.map +1 -1
  99. package/dist/LogLevel.js +28 -100
  100. package/dist/LogLevel.js.map +1 -1
  101. package/dist/Logger.d.ts +29 -95
  102. package/dist/Logger.d.ts.map +1 -1
  103. package/dist/Logger.js +2 -3
  104. package/dist/Logger.js.map +1 -1
  105. package/dist/ManagedRuntime.d.ts +1 -1
  106. package/dist/ManagedRuntime.js +1 -1
  107. package/dist/Metric.d.ts +2 -2
  108. package/dist/Metric.d.ts.map +1 -1
  109. package/dist/Metric.js +1 -1
  110. package/dist/Metric.js.map +1 -1
  111. package/dist/Optic.d.ts +947 -18
  112. package/dist/Optic.d.ts.map +1 -1
  113. package/dist/Optic.js +454 -5
  114. package/dist/Optic.js.map +1 -1
  115. package/dist/Option.d.ts +22 -15
  116. package/dist/Option.d.ts.map +1 -1
  117. package/dist/Option.js +14 -7
  118. package/dist/Option.js.map +1 -1
  119. package/dist/Pipeable.d.ts +17 -0
  120. package/dist/Pipeable.d.ts.map +1 -1
  121. package/dist/Pipeable.js +19 -1
  122. package/dist/Pipeable.js.map +1 -1
  123. package/dist/PlatformError.d.ts +10 -9
  124. package/dist/PlatformError.d.ts.map +1 -1
  125. package/dist/PlatformError.js +2 -2
  126. package/dist/PlatformError.js.map +1 -1
  127. package/dist/Pool.d.ts +6 -4
  128. package/dist/Pool.d.ts.map +1 -1
  129. package/dist/Pool.js +7 -5
  130. package/dist/Pool.js.map +1 -1
  131. package/dist/PubSub.d.ts +3 -2
  132. package/dist/PubSub.d.ts.map +1 -1
  133. package/dist/PubSub.js +3 -2
  134. package/dist/PubSub.js.map +1 -1
  135. package/dist/Pull.d.ts.map +1 -1
  136. package/dist/Pull.js +1 -1
  137. package/dist/Pull.js.map +1 -1
  138. package/dist/Queue.d.ts.map +1 -1
  139. package/dist/Queue.js +0 -1
  140. package/dist/Queue.js.map +1 -1
  141. package/dist/Random.d.ts +35 -1
  142. package/dist/Random.d.ts.map +1 -1
  143. package/dist/Random.js +46 -12
  144. package/dist/Random.js.map +1 -1
  145. package/dist/RcMap.d.ts +2 -2
  146. package/dist/RcMap.d.ts.map +1 -1
  147. package/dist/RcMap.js +1 -1
  148. package/dist/RcMap.js.map +1 -1
  149. package/dist/RcRef.d.ts +1 -1
  150. package/dist/RcRef.d.ts.map +1 -1
  151. package/dist/Record.d.ts +24 -120
  152. package/dist/Record.d.ts.map +1 -1
  153. package/dist/Record.js +21 -41
  154. package/dist/Record.js.map +1 -1
  155. package/dist/Reducer.d.ts +166 -7
  156. package/dist/Reducer.d.ts.map +1 -1
  157. package/dist/Reducer.js +135 -1
  158. package/dist/Reducer.js.map +1 -1
  159. package/dist/References.d.ts +3 -3
  160. package/dist/References.d.ts.map +1 -1
  161. package/dist/Request.d.ts +1 -1
  162. package/dist/Request.d.ts.map +1 -1
  163. package/dist/Request.js +2 -1
  164. package/dist/Request.js.map +1 -1
  165. package/dist/RequestResolver.d.ts +6 -26
  166. package/dist/RequestResolver.d.ts.map +1 -1
  167. package/dist/RequestResolver.js +0 -20
  168. package/dist/RequestResolver.js.map +1 -1
  169. package/dist/Result.d.ts +12 -0
  170. package/dist/Result.d.ts.map +1 -1
  171. package/dist/Result.js +12 -0
  172. package/dist/Result.js.map +1 -1
  173. package/dist/Schedule.d.ts +47 -20
  174. package/dist/Schedule.d.ts.map +1 -1
  175. package/dist/Schedule.js +94 -34
  176. package/dist/Schedule.js.map +1 -1
  177. package/dist/Schema.d.ts +266 -50
  178. package/dist/Schema.d.ts.map +1 -1
  179. package/dist/Schema.js +426 -74
  180. package/dist/Schema.js.map +1 -1
  181. package/dist/SchemaAST.d.ts.map +1 -1
  182. package/dist/SchemaAST.js +7 -6
  183. package/dist/SchemaAST.js.map +1 -1
  184. package/dist/SchemaGetter.d.ts +2 -2
  185. package/dist/SchemaGetter.d.ts.map +1 -1
  186. package/dist/SchemaGetter.js +12 -14
  187. package/dist/SchemaGetter.js.map +1 -1
  188. package/dist/SchemaParser.d.ts +5 -0
  189. package/dist/SchemaParser.d.ts.map +1 -1
  190. package/dist/SchemaParser.js +10 -0
  191. package/dist/SchemaParser.js.map +1 -1
  192. package/dist/SchemaRepresentation.d.ts +44 -43
  193. package/dist/SchemaRepresentation.d.ts.map +1 -1
  194. package/dist/SchemaRepresentation.js +43 -24
  195. package/dist/SchemaRepresentation.js.map +1 -1
  196. package/dist/SchemaTransformation.d.ts +107 -3
  197. package/dist/SchemaTransformation.d.ts.map +1 -1
  198. package/dist/SchemaTransformation.js +159 -4
  199. package/dist/SchemaTransformation.js.map +1 -1
  200. package/dist/ScopedCache.d.ts +2 -2
  201. package/dist/ScopedCache.d.ts.map +1 -1
  202. package/dist/ScopedCache.js +1 -1
  203. package/dist/ScopedCache.js.map +1 -1
  204. package/dist/Semaphore.d.ts +211 -0
  205. package/dist/Semaphore.d.ts.map +1 -0
  206. package/dist/{PartitionedSemaphore.js → Semaphore.js} +97 -13
  207. package/dist/Semaphore.js.map +1 -0
  208. package/dist/ServiceMap.d.ts +39 -30
  209. package/dist/ServiceMap.d.ts.map +1 -1
  210. package/dist/ServiceMap.js +3 -3
  211. package/dist/ServiceMap.js.map +1 -1
  212. package/dist/Sink.d.ts +13 -13
  213. package/dist/Sink.d.ts.map +1 -1
  214. package/dist/Sink.js +53 -6
  215. package/dist/Sink.js.map +1 -1
  216. package/dist/Stream.d.ts +235 -423
  217. package/dist/Stream.d.ts.map +1 -1
  218. package/dist/Stream.js +124 -77
  219. package/dist/Stream.js.map +1 -1
  220. package/dist/Struct.d.ts +16 -0
  221. package/dist/Struct.d.ts.map +1 -1
  222. package/dist/Struct.js +22 -0
  223. package/dist/Struct.js.map +1 -1
  224. package/dist/SubscriptionRef.d.ts +2 -1
  225. package/dist/SubscriptionRef.d.ts.map +1 -1
  226. package/dist/SubscriptionRef.js +2 -1
  227. package/dist/SubscriptionRef.js.map +1 -1
  228. package/dist/SynchronizedRef.d.ts +2 -1
  229. package/dist/SynchronizedRef.d.ts.map +1 -1
  230. package/dist/SynchronizedRef.js +2 -1
  231. package/dist/SynchronizedRef.js.map +1 -1
  232. package/dist/Trie.d.ts +18 -17
  233. package/dist/Trie.d.ts.map +1 -1
  234. package/dist/Trie.js +5 -5
  235. package/dist/Trie.js.map +1 -1
  236. package/dist/TxChunk.d.ts +37 -37
  237. package/dist/TxChunk.d.ts.map +1 -1
  238. package/dist/TxChunk.js +3 -3
  239. package/dist/TxChunk.js.map +1 -1
  240. package/dist/TxDeferred.d.ts +328 -0
  241. package/dist/TxDeferred.d.ts.map +1 -0
  242. package/dist/TxDeferred.js +196 -0
  243. package/dist/TxDeferred.js.map +1 -0
  244. package/dist/TxHashMap.d.ts +84 -83
  245. package/dist/TxHashMap.d.ts.map +1 -1
  246. package/dist/TxHashMap.js +24 -24
  247. package/dist/TxHashMap.js.map +1 -1
  248. package/dist/TxHashSet.d.ts +35 -35
  249. package/dist/TxHashSet.d.ts.map +1 -1
  250. package/dist/TxHashSet.js +14 -14
  251. package/dist/TxHashSet.js.map +1 -1
  252. package/dist/TxPriorityQueue.d.ts +609 -0
  253. package/dist/TxPriorityQueue.d.ts.map +1 -0
  254. package/dist/TxPriorityQueue.js +415 -0
  255. package/dist/TxPriorityQueue.js.map +1 -0
  256. package/dist/TxPubSub.d.ts +585 -0
  257. package/dist/TxPubSub.d.ts.map +1 -0
  258. package/dist/TxPubSub.js +521 -0
  259. package/dist/TxPubSub.js.map +1 -0
  260. package/dist/TxQueue.d.ts +32 -32
  261. package/dist/TxQueue.d.ts.map +1 -1
  262. package/dist/TxQueue.js +26 -26
  263. package/dist/TxQueue.js.map +1 -1
  264. package/dist/TxReentrantLock.d.ts +523 -0
  265. package/dist/TxReentrantLock.d.ts.map +1 -0
  266. package/dist/TxReentrantLock.js +504 -0
  267. package/dist/TxReentrantLock.js.map +1 -0
  268. package/dist/TxRef.d.ts +34 -34
  269. package/dist/TxRef.d.ts.map +1 -1
  270. package/dist/TxRef.js +21 -14
  271. package/dist/TxRef.js.map +1 -1
  272. package/dist/TxSemaphore.d.ts +8 -8
  273. package/dist/TxSemaphore.d.ts.map +1 -1
  274. package/dist/TxSemaphore.js +7 -7
  275. package/dist/TxSemaphore.js.map +1 -1
  276. package/dist/TxSubscriptionRef.d.ts +508 -0
  277. package/dist/TxSubscriptionRef.d.ts.map +1 -0
  278. package/dist/TxSubscriptionRef.js +293 -0
  279. package/dist/TxSubscriptionRef.js.map +1 -0
  280. package/dist/Types.d.ts +84 -6
  281. package/dist/Types.d.ts.map +1 -1
  282. package/dist/index.d.ts +591 -20
  283. package/dist/index.d.ts.map +1 -1
  284. package/dist/index.js +591 -20
  285. package/dist/index.js.map +1 -1
  286. package/dist/internal/core.js +11 -3
  287. package/dist/internal/core.js.map +1 -1
  288. package/dist/internal/dateTime.js +3 -11
  289. package/dist/internal/dateTime.js.map +1 -1
  290. package/dist/internal/effect.js +263 -99
  291. package/dist/internal/effect.js.map +1 -1
  292. package/dist/internal/hashMap.js +5 -4
  293. package/dist/internal/hashMap.js.map +1 -1
  294. package/dist/internal/random.d.ts +2 -0
  295. package/dist/internal/random.d.ts.map +1 -0
  296. package/dist/internal/random.js +13 -0
  297. package/dist/internal/random.js.map +1 -0
  298. package/dist/internal/rcRef.js +3 -2
  299. package/dist/internal/rcRef.js.map +1 -1
  300. package/dist/internal/request.js +2 -2
  301. package/dist/internal/request.js.map +1 -1
  302. package/dist/internal/schema/annotations.js +2 -0
  303. package/dist/internal/schema/annotations.js.map +1 -1
  304. package/dist/internal/schema/schema.js +1 -0
  305. package/dist/internal/schema/schema.js.map +1 -1
  306. package/dist/internal/trie.js +5 -4
  307. package/dist/internal/trie.js.map +1 -1
  308. package/dist/testing/TestClock.d.ts +7 -6
  309. package/dist/testing/TestClock.d.ts.map +1 -1
  310. package/dist/testing/TestClock.js +6 -4
  311. package/dist/testing/TestClock.js.map +1 -1
  312. package/dist/testing/TestSchema.d.ts +8 -8
  313. package/dist/testing/TestSchema.d.ts.map +1 -1
  314. package/dist/testing/TestSchema.js.map +1 -1
  315. package/dist/unstable/ai/AiError.d.ts +128 -48
  316. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  317. package/dist/unstable/ai/AiError.js +11 -12
  318. package/dist/unstable/ai/AiError.js.map +1 -1
  319. package/dist/unstable/ai/Chat.d.ts +3 -3
  320. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  321. package/dist/unstable/ai/Chat.js +4 -3
  322. package/dist/unstable/ai/Chat.js.map +1 -1
  323. package/dist/unstable/ai/LanguageModel.d.ts +4 -2
  324. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  325. package/dist/unstable/ai/LanguageModel.js +86 -14
  326. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  327. package/dist/unstable/ai/McpSchema.d.ts +163 -87
  328. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  329. package/dist/unstable/ai/McpSchema.js +49 -12
  330. package/dist/unstable/ai/McpSchema.js.map +1 -1
  331. package/dist/unstable/ai/McpServer.d.ts +1 -1
  332. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  333. package/dist/unstable/ai/McpServer.js +35 -7
  334. package/dist/unstable/ai/McpServer.js.map +1 -1
  335. package/dist/unstable/ai/Model.d.ts +25 -7
  336. package/dist/unstable/ai/Model.d.ts.map +1 -1
  337. package/dist/unstable/ai/Model.js +22 -6
  338. package/dist/unstable/ai/Model.js.map +1 -1
  339. package/dist/unstable/ai/Prompt.d.ts +20 -20
  340. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  341. package/dist/unstable/ai/Response.d.ts +26 -26
  342. package/dist/unstable/ai/Response.d.ts.map +1 -1
  343. package/dist/unstable/ai/Response.js +1 -1
  344. package/dist/unstable/ai/Response.js.map +1 -1
  345. package/dist/unstable/ai/Tool.d.ts +19 -3
  346. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  347. package/dist/unstable/ai/Tool.js +14 -9
  348. package/dist/unstable/ai/Tool.js.map +1 -1
  349. package/dist/unstable/ai/index.d.ts +1 -1
  350. package/dist/unstable/ai/index.js +1 -1
  351. package/dist/unstable/cli/CliError.d.ts +5 -5
  352. package/dist/unstable/cli/CliOutput.js +59 -6
  353. package/dist/unstable/cli/CliOutput.js.map +1 -1
  354. package/dist/unstable/cli/Command.d.ts +276 -19
  355. package/dist/unstable/cli/Command.d.ts.map +1 -1
  356. package/dist/unstable/cli/Command.js +234 -36
  357. package/dist/unstable/cli/Command.js.map +1 -1
  358. package/dist/unstable/cli/GlobalFlag.d.ts +125 -0
  359. package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -0
  360. package/dist/unstable/cli/GlobalFlag.js +118 -0
  361. package/dist/unstable/cli/GlobalFlag.js.map +1 -0
  362. package/dist/unstable/cli/HelpDoc.d.ts +70 -2
  363. package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
  364. package/dist/unstable/cli/index.d.ts +4 -0
  365. package/dist/unstable/cli/index.d.ts.map +1 -1
  366. package/dist/unstable/cli/index.js +4 -0
  367. package/dist/unstable/cli/index.js.map +1 -1
  368. package/dist/unstable/cli/internal/command.d.ts +17 -8
  369. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  370. package/dist/unstable/cli/internal/command.js +32 -23
  371. package/dist/unstable/cli/internal/command.js.map +1 -1
  372. package/dist/unstable/cli/internal/completions/CommandDescriptor.js +7 -2
  373. package/dist/unstable/cli/internal/completions/CommandDescriptor.js.map +1 -1
  374. package/dist/unstable/cli/internal/help.d.ts +33 -0
  375. package/dist/unstable/cli/internal/help.d.ts.map +1 -0
  376. package/dist/unstable/cli/internal/help.js +107 -0
  377. package/dist/unstable/cli/internal/help.js.map +1 -0
  378. package/dist/unstable/cli/internal/parser.js +29 -36
  379. package/dist/unstable/cli/internal/parser.js.map +1 -1
  380. package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
  381. package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
  382. package/dist/unstable/cluster/ClusterCron.js +1 -1
  383. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  384. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  385. package/dist/unstable/cluster/ClusterWorkflowEngine.js +4 -3
  386. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  387. package/dist/unstable/cluster/Entity.d.ts +7 -6
  388. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  389. package/dist/unstable/cluster/Entity.js.map +1 -1
  390. package/dist/unstable/cluster/EntityResource.d.ts +2 -2
  391. package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
  392. package/dist/unstable/cluster/Envelope.d.ts +1 -1
  393. package/dist/unstable/cluster/K8sHttpClient.d.ts +1 -1
  394. package/dist/unstable/cluster/K8sHttpClient.js +4 -4
  395. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  396. package/dist/unstable/cluster/Message.d.ts +10 -10
  397. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  398. package/dist/unstable/cluster/MessageStorage.js +2 -1
  399. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  400. package/dist/unstable/cluster/Reply.d.ts +6 -6
  401. package/dist/unstable/cluster/Runner.d.ts +1 -1
  402. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  403. package/dist/unstable/cluster/Runners.js +4 -3
  404. package/dist/unstable/cluster/Runners.js.map +1 -1
  405. package/dist/unstable/cluster/Sharding.d.ts +2 -2
  406. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  407. package/dist/unstable/cluster/Sharding.js +9 -7
  408. package/dist/unstable/cluster/Sharding.js.map +1 -1
  409. package/dist/unstable/cluster/ShardingConfig.d.ts +21 -21
  410. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  411. package/dist/unstable/cluster/ShardingConfig.js +20 -20
  412. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  413. package/dist/unstable/cluster/SqlRunnerStorage.js +1 -1
  414. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  415. package/dist/unstable/cluster/internal/entityManager.js +5 -4
  416. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  417. package/dist/unstable/cluster/internal/entityReaper.js +2 -1
  418. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  419. package/dist/unstable/cluster/internal/resourceRef.js +2 -1
  420. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  421. package/dist/unstable/devtools/DevToolsSchema.d.ts +36 -36
  422. package/dist/unstable/encoding/Msgpack.d.ts +1 -1
  423. package/dist/unstable/encoding/Ndjson.d.ts +1 -1
  424. package/dist/unstable/encoding/Sse.d.ts +4 -4
  425. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  426. package/dist/unstable/encoding/Sse.js +1 -1
  427. package/dist/unstable/encoding/Sse.js.map +1 -1
  428. package/dist/unstable/eventlog/EventJournal.d.ts +2 -2
  429. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  430. package/dist/unstable/eventlog/EventLog.js +2 -1
  431. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  432. package/dist/unstable/eventlog/EventLogRemote.d.ts +6 -6
  433. package/dist/unstable/http/Cookies.d.ts +3 -3
  434. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  435. package/dist/unstable/http/Cookies.js +2 -2
  436. package/dist/unstable/http/Cookies.js.map +1 -1
  437. package/dist/unstable/http/Headers.d.ts.map +1 -1
  438. package/dist/unstable/http/Headers.js +27 -10
  439. package/dist/unstable/http/Headers.js.map +1 -1
  440. package/dist/unstable/http/HttpBody.d.ts +17 -2
  441. package/dist/unstable/http/HttpBody.d.ts.map +1 -1
  442. package/dist/unstable/http/HttpBody.js +28 -1
  443. package/dist/unstable/http/HttpBody.js.map +1 -1
  444. package/dist/unstable/http/HttpClient.d.ts +37 -13
  445. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  446. package/dist/unstable/http/HttpClient.js +4 -4
  447. package/dist/unstable/http/HttpClient.js.map +1 -1
  448. package/dist/unstable/http/HttpClientError.d.ts +7 -7
  449. package/dist/unstable/http/HttpClientRequest.d.ts +27 -11
  450. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  451. package/dist/unstable/http/HttpClientRequest.js +15 -3
  452. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  453. package/dist/unstable/http/HttpEffect.d.ts +3 -8
  454. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  455. package/dist/unstable/http/HttpEffect.js +42 -56
  456. package/dist/unstable/http/HttpEffect.js.map +1 -1
  457. package/dist/unstable/http/HttpMethod.d.ts +4 -4
  458. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  459. package/dist/unstable/http/HttpMethod.js +3 -3
  460. package/dist/unstable/http/HttpMethod.js.map +1 -1
  461. package/dist/unstable/http/HttpMiddleware.d.ts +1 -6
  462. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  463. package/dist/unstable/http/HttpMiddleware.js +8 -17
  464. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  465. package/dist/unstable/http/HttpServerError.d.ts +20 -33
  466. package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
  467. package/dist/unstable/http/HttpServerError.js +37 -44
  468. package/dist/unstable/http/HttpServerError.js.map +1 -1
  469. package/dist/unstable/http/HttpServerRequest.d.ts +1 -1
  470. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  471. package/dist/unstable/http/HttpServerRespondable.d.ts +2 -2
  472. package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
  473. package/dist/unstable/http/HttpServerRespondable.js +5 -5
  474. package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
  475. package/dist/unstable/http/HttpServerResponse.d.ts +2 -1
  476. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  477. package/dist/unstable/http/HttpServerResponse.js +3 -1
  478. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  479. package/dist/unstable/http/Multipart.d.ts +3 -3
  480. package/dist/unstable/http/UrlParams.d.ts +14 -6
  481. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  482. package/dist/unstable/http/UrlParams.js +1 -1
  483. package/dist/unstable/http/UrlParams.js.map +1 -1
  484. package/dist/unstable/http/internal/preResponseHandler.d.ts +2 -0
  485. package/dist/unstable/http/internal/preResponseHandler.d.ts.map +1 -0
  486. package/dist/unstable/http/internal/preResponseHandler.js +10 -0
  487. package/dist/unstable/http/internal/preResponseHandler.js.map +1 -0
  488. package/dist/unstable/httpapi/HttpApi.d.ts +3 -3
  489. package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
  490. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  491. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +11 -5
  492. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  493. package/dist/unstable/httpapi/HttpApiBuilder.js +23 -12
  494. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  495. package/dist/unstable/httpapi/HttpApiClient.d.ts +7 -2
  496. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  497. package/dist/unstable/httpapi/HttpApiClient.js +3 -3
  498. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  499. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +31 -44
  500. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  501. package/dist/unstable/httpapi/HttpApiEndpoint.js +15 -24
  502. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  503. package/dist/unstable/httpapi/HttpApiError.d.ts +11 -0
  504. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  505. package/dist/unstable/httpapi/HttpApiError.js +29 -9
  506. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  507. package/dist/unstable/httpapi/HttpApiGroup.d.ts +3 -3
  508. package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
  509. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  510. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +4 -4
  511. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  512. package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
  513. package/dist/unstable/httpapi/HttpApiScalar.d.ts +6 -0
  514. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  515. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  516. package/dist/unstable/httpapi/HttpApiSecurity.d.ts +2 -2
  517. package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
  518. package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
  519. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  520. package/dist/unstable/httpapi/OpenApi.js +32 -21
  521. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  522. package/dist/unstable/observability/Otlp.d.ts +12 -12
  523. package/dist/unstable/observability/Otlp.d.ts.map +1 -1
  524. package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
  525. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  526. package/dist/unstable/observability/OtlpExporter.js +1 -1
  527. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  528. package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
  529. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  530. package/dist/unstable/observability/OtlpLogger.js +7 -4
  531. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  532. package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
  533. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  534. package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
  535. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  536. package/dist/unstable/persistence/KeyValueStore.d.ts +1 -1
  537. package/dist/unstable/persistence/KeyValueStore.js +6 -6
  538. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  539. package/dist/unstable/persistence/Persistable.d.ts +2 -2
  540. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  541. package/dist/unstable/persistence/PersistedCache.d.ts +6 -5
  542. package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
  543. package/dist/unstable/persistence/PersistedCache.js +2 -1
  544. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  545. package/dist/unstable/persistence/PersistedQueue.d.ts +12 -12
  546. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  547. package/dist/unstable/persistence/PersistedQueue.js +12 -11
  548. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  549. package/dist/unstable/persistence/Persistence.d.ts +1 -1
  550. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  551. package/dist/unstable/persistence/Persistence.js +2 -2
  552. package/dist/unstable/persistence/Persistence.js.map +1 -1
  553. package/dist/unstable/persistence/RateLimiter.d.ts +3 -3
  554. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  555. package/dist/unstable/persistence/RateLimiter.js +1 -1
  556. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  557. package/dist/unstable/process/ChildProcess.d.ts +5 -128
  558. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  559. package/dist/unstable/process/ChildProcess.js +1 -65
  560. package/dist/unstable/process/ChildProcess.js.map +1 -1
  561. package/dist/unstable/process/ChildProcessSpawner.d.ts +45 -7
  562. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  563. package/dist/unstable/process/ChildProcessSpawner.js +21 -1
  564. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  565. package/dist/unstable/reactivity/Atom.d.ts +10 -10
  566. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  567. package/dist/unstable/reactivity/Atom.js +16 -13
  568. package/dist/unstable/reactivity/Atom.js.map +1 -1
  569. package/dist/unstable/reactivity/AtomHttpApi.d.ts +8 -8
  570. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  571. package/dist/unstable/reactivity/AtomHttpApi.js +3 -3
  572. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  573. package/dist/unstable/reactivity/AtomRegistry.d.ts +6 -0
  574. package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
  575. package/dist/unstable/reactivity/AtomRegistry.js +24 -7
  576. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  577. package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
  578. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  579. package/dist/unstable/reactivity/AtomRpc.js +1 -1
  580. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  581. package/dist/unstable/reactivity/Hydration.d.ts +39 -0
  582. package/dist/unstable/reactivity/Hydration.d.ts.map +1 -0
  583. package/dist/unstable/reactivity/Hydration.js +76 -0
  584. package/dist/unstable/reactivity/Hydration.js.map +1 -0
  585. package/dist/unstable/reactivity/index.d.ts +4 -0
  586. package/dist/unstable/reactivity/index.d.ts.map +1 -1
  587. package/dist/unstable/reactivity/index.js +4 -0
  588. package/dist/unstable/reactivity/index.js.map +1 -1
  589. package/dist/unstable/rpc/Rpc.d.ts +4 -4
  590. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  591. package/dist/unstable/rpc/Rpc.js.map +1 -1
  592. package/dist/unstable/rpc/RpcClient.d.ts +5 -26
  593. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  594. package/dist/unstable/rpc/RpcClient.js +6 -13
  595. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  596. package/dist/unstable/rpc/RpcGroup.d.ts +2 -2
  597. package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
  598. package/dist/unstable/rpc/RpcGroup.js.map +1 -1
  599. package/dist/unstable/rpc/RpcMiddleware.d.ts +3 -3
  600. package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
  601. package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
  602. package/dist/unstable/rpc/RpcSchema.d.ts +13 -0
  603. package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
  604. package/dist/unstable/rpc/RpcSchema.js +14 -0
  605. package/dist/unstable/rpc/RpcSchema.js.map +1 -1
  606. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  607. package/dist/unstable/rpc/RpcSerialization.js +34 -9
  608. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  609. package/dist/unstable/rpc/RpcServer.d.ts +0 -7
  610. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  611. package/dist/unstable/rpc/RpcServer.js +15 -15
  612. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  613. package/dist/unstable/rpc/Utils.d.ts.map +1 -1
  614. package/dist/unstable/rpc/Utils.js +2 -1
  615. package/dist/unstable/rpc/Utils.js.map +1 -1
  616. package/dist/unstable/schema/Model.d.ts +1 -1
  617. package/dist/unstable/schema/Model.d.ts.map +1 -1
  618. package/dist/unstable/schema/VariantSchema.d.ts +3 -3
  619. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  620. package/dist/unstable/schema/VariantSchema.js +3 -3
  621. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  622. package/dist/unstable/socket/Socket.d.ts +4 -4
  623. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  624. package/dist/unstable/socket/Socket.js +6 -5
  625. package/dist/unstable/socket/Socket.js.map +1 -1
  626. package/dist/unstable/socket/SocketServer.d.ts +3 -3
  627. package/dist/unstable/sql/Migrator.d.ts +1 -1
  628. package/dist/unstable/sql/SqlClient.d.ts +1 -1
  629. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  630. package/dist/unstable/sql/SqlError.d.ts +14 -14
  631. package/dist/unstable/sql/SqlError.d.ts.map +1 -1
  632. package/dist/unstable/sql/SqlError.js +9 -3
  633. package/dist/unstable/sql/SqlError.js.map +1 -1
  634. package/dist/unstable/sql/SqlModel.d.ts +2 -2
  635. package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
  636. package/dist/unstable/sql/SqlModel.js +3 -3
  637. package/dist/unstable/sql/SqlModel.js.map +1 -1
  638. package/dist/unstable/sql/SqlSchema.d.ts +16 -5
  639. package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
  640. package/dist/unstable/sql/SqlSchema.js +17 -7
  641. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  642. package/dist/unstable/sql/Statement.js +0 -1
  643. package/dist/unstable/sql/Statement.js.map +1 -1
  644. package/dist/unstable/workers/Worker.d.ts.map +1 -1
  645. package/dist/unstable/workers/Worker.js +2 -1
  646. package/dist/unstable/workers/Worker.js.map +1 -1
  647. package/dist/unstable/workflow/DurableClock.d.ts +3 -3
  648. package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
  649. package/dist/unstable/workflow/DurableClock.js +3 -3
  650. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  651. package/dist/unstable/workflow/DurableDeferred.js +2 -2
  652. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  653. package/dist/unstable/workflow/Workflow.d.ts +3 -3
  654. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  655. package/dist/unstable/workflow/Workflow.js +1 -1
  656. package/dist/unstable/workflow/Workflow.js.map +1 -1
  657. package/dist/unstable/workflow/WorkflowEngine.d.ts +12 -1
  658. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  659. package/dist/unstable/workflow/WorkflowEngine.js +137 -1
  660. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  661. package/package.json +2 -2
  662. package/src/Array.ts +190 -342
  663. package/src/Cache.ts +9 -8
  664. package/src/Cause.ts +1 -1
  665. package/src/Channel.ts +554 -138
  666. package/src/Chunk.ts +81 -268
  667. package/src/Combiner.ts +280 -13
  668. package/src/Config.ts +183 -21
  669. package/src/Data.ts +538 -374
  670. package/src/DateTime.ts +24 -164
  671. package/src/Duration.ts +15 -15
  672. package/src/Effect.ts +991 -800
  673. package/src/Encoding.ts +879 -0
  674. package/src/Equal.ts +278 -111
  675. package/src/ErrorReporter.ts +459 -0
  676. package/src/Fiber.ts +9 -2
  677. package/src/FileSystem.ts +7 -8
  678. package/src/Filter.ts +48 -58
  679. package/src/Formatter.ts +253 -51
  680. package/src/Graph.ts +24 -11
  681. package/src/HashMap.ts +15 -14
  682. package/src/Iterable.ts +105 -50
  683. package/src/JsonSchema.ts +383 -10
  684. package/src/Latch.ts +112 -0
  685. package/src/Layer.ts +11 -15
  686. package/src/LayerMap.ts +5 -5
  687. package/src/LogLevel.ts +37 -0
  688. package/src/Logger.ts +33 -100
  689. package/src/ManagedRuntime.ts +1 -1
  690. package/src/Metric.ts +4 -4
  691. package/src/Optic.ts +948 -19
  692. package/src/Option.ts +30 -20
  693. package/src/Pipeable.ts +32 -1
  694. package/src/PlatformError.ts +5 -5
  695. package/src/Pool.ts +13 -11
  696. package/src/PubSub.ts +10 -9
  697. package/src/Pull.ts +1 -1
  698. package/src/Queue.ts +0 -1
  699. package/src/Random.ts +51 -14
  700. package/src/RcMap.ts +5 -5
  701. package/src/RcRef.ts +1 -1
  702. package/src/Record.ts +43 -152
  703. package/src/Reducer.ts +166 -7
  704. package/src/References.ts +4 -4
  705. package/src/Request.ts +3 -2
  706. package/src/RequestResolver.ts +9 -29
  707. package/src/Result.ts +13 -0
  708. package/src/Schedule.ts +318 -160
  709. package/src/Schema.ts +661 -116
  710. package/src/SchemaAST.ts +7 -6
  711. package/src/SchemaGetter.ts +12 -14
  712. package/src/SchemaParser.ts +11 -0
  713. package/src/SchemaRepresentation.ts +43 -24
  714. package/src/SchemaTransformation.ts +189 -4
  715. package/src/ScopedCache.ts +3 -3
  716. package/src/Semaphore.ts +356 -0
  717. package/src/ServiceMap.ts +47 -38
  718. package/src/Sink.ts +78 -26
  719. package/src/Stream.ts +566 -601
  720. package/src/Struct.ts +26 -0
  721. package/src/SubscriptionRef.ts +3 -2
  722. package/src/SynchronizedRef.ts +3 -2
  723. package/src/Trie.ts +18 -17
  724. package/src/TxChunk.ts +72 -53
  725. package/src/TxDeferred.ts +394 -0
  726. package/src/TxHashMap.ts +332 -285
  727. package/src/TxHashSet.ts +111 -116
  728. package/src/TxPriorityQueue.ts +767 -0
  729. package/src/TxPubSub.ts +789 -0
  730. package/src/TxQueue.ts +241 -251
  731. package/src/TxReentrantLock.ts +753 -0
  732. package/src/TxRef.ts +50 -38
  733. package/src/TxSemaphore.ts +29 -32
  734. package/src/TxSubscriptionRef.ts +639 -0
  735. package/src/Types.ts +78 -2
  736. package/src/index.ts +600 -21
  737. package/src/internal/core.ts +12 -5
  738. package/src/internal/dateTime.ts +9 -30
  739. package/src/internal/effect.ts +744 -265
  740. package/src/internal/hashMap.ts +9 -7
  741. package/src/internal/random.ts +20 -0
  742. package/src/internal/rcRef.ts +4 -3
  743. package/src/internal/request.ts +2 -2
  744. package/src/internal/schema/annotations.ts +2 -0
  745. package/src/internal/schema/schema.ts +1 -0
  746. package/src/internal/trie.ts +16 -9
  747. package/src/testing/TestClock.ts +13 -11
  748. package/src/testing/TestSchema.ts +10 -10
  749. package/src/unstable/ai/AiError.ts +97 -44
  750. package/src/unstable/ai/Chat.ts +12 -11
  751. package/src/unstable/ai/LanguageModel.ts +129 -25
  752. package/src/unstable/ai/McpSchema.ts +59 -13
  753. package/src/unstable/ai/McpServer.ts +48 -9
  754. package/src/unstable/ai/Model.ts +40 -9
  755. package/src/unstable/ai/Prompt.ts +37 -37
  756. package/src/unstable/ai/Response.ts +25 -25
  757. package/src/unstable/ai/Tool.ts +19 -13
  758. package/src/unstable/ai/index.ts +1 -1
  759. package/src/unstable/cli/CliOutput.ts +75 -6
  760. package/src/unstable/cli/Command.ts +501 -60
  761. package/src/unstable/cli/GlobalFlag.ts +243 -0
  762. package/src/unstable/cli/HelpDoc.ts +80 -2
  763. package/src/unstable/cli/index.ts +5 -0
  764. package/src/unstable/cli/internal/command.ts +50 -34
  765. package/src/unstable/cli/internal/completions/CommandDescriptor.ts +7 -2
  766. package/src/unstable/cli/internal/help.ts +146 -0
  767. package/src/unstable/cli/internal/parser.ts +33 -54
  768. package/src/unstable/cluster/ClusterCron.ts +2 -2
  769. package/src/unstable/cluster/ClusterWorkflowEngine.ts +5 -4
  770. package/src/unstable/cluster/Entity.ts +11 -10
  771. package/src/unstable/cluster/EntityResource.ts +4 -4
  772. package/src/unstable/cluster/Envelope.ts +1 -1
  773. package/src/unstable/cluster/K8sHttpClient.ts +5 -5
  774. package/src/unstable/cluster/MessageStorage.ts +3 -5
  775. package/src/unstable/cluster/Runners.ts +6 -5
  776. package/src/unstable/cluster/Sharding.ts +12 -10
  777. package/src/unstable/cluster/ShardingConfig.ts +30 -31
  778. package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
  779. package/src/unstable/cluster/internal/entityManager.ts +9 -8
  780. package/src/unstable/cluster/internal/entityReaper.ts +2 -1
  781. package/src/unstable/cluster/internal/resourceRef.ts +2 -1
  782. package/src/unstable/encoding/Sse.ts +3 -5
  783. package/src/unstable/eventlog/EventLog.ts +2 -1
  784. package/src/unstable/http/Cookies.ts +3 -3
  785. package/src/unstable/http/Headers.ts +28 -13
  786. package/src/unstable/http/HttpBody.ts +42 -1
  787. package/src/unstable/http/HttpClient.ts +58 -23
  788. package/src/unstable/http/HttpClientRequest.ts +38 -13
  789. package/src/unstable/http/HttpEffect.ts +46 -68
  790. package/src/unstable/http/HttpMethod.ts +16 -4
  791. package/src/unstable/http/HttpMiddleware.ts +9 -24
  792. package/src/unstable/http/HttpServerError.ts +42 -45
  793. package/src/unstable/http/HttpServerRequest.ts +1 -1
  794. package/src/unstable/http/HttpServerRespondable.ts +6 -6
  795. package/src/unstable/http/HttpServerResponse.ts +4 -2
  796. package/src/unstable/http/Multipart.ts +2 -2
  797. package/src/unstable/http/UrlParams.ts +20 -5
  798. package/src/unstable/http/internal/preResponseHandler.ts +15 -0
  799. package/src/unstable/httpapi/HttpApi.ts +5 -5
  800. package/src/unstable/httpapi/HttpApiBuilder.ts +77 -21
  801. package/src/unstable/httpapi/HttpApiClient.ts +14 -6
  802. package/src/unstable/httpapi/HttpApiEndpoint.ts +67 -83
  803. package/src/unstable/httpapi/HttpApiError.ts +30 -9
  804. package/src/unstable/httpapi/HttpApiGroup.ts +6 -6
  805. package/src/unstable/httpapi/HttpApiMiddleware.ts +4 -4
  806. package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
  807. package/src/unstable/httpapi/HttpApiSecurity.ts +3 -3
  808. package/src/unstable/httpapi/OpenApi.ts +41 -23
  809. package/src/unstable/observability/Otlp.ts +12 -12
  810. package/src/unstable/observability/OtlpExporter.ts +3 -3
  811. package/src/unstable/observability/OtlpLogger.ts +13 -9
  812. package/src/unstable/observability/OtlpMetrics.ts +4 -4
  813. package/src/unstable/observability/OtlpTracer.ts +4 -4
  814. package/src/unstable/persistence/KeyValueStore.ts +6 -6
  815. package/src/unstable/persistence/Persistable.ts +2 -2
  816. package/src/unstable/persistence/PersistedCache.ts +20 -9
  817. package/src/unstable/persistence/PersistedQueue.ts +25 -24
  818. package/src/unstable/persistence/Persistence.ts +3 -3
  819. package/src/unstable/persistence/RateLimiter.ts +4 -4
  820. package/src/unstable/process/ChildProcess.ts +6 -208
  821. package/src/unstable/process/ChildProcessSpawner.ts +75 -14
  822. package/src/unstable/reactivity/Atom.ts +27 -25
  823. package/src/unstable/reactivity/AtomHttpApi.ts +21 -20
  824. package/src/unstable/reactivity/AtomRegistry.ts +31 -7
  825. package/src/unstable/reactivity/AtomRpc.ts +3 -3
  826. package/src/unstable/reactivity/Hydration.ts +112 -0
  827. package/src/unstable/reactivity/index.ts +5 -0
  828. package/src/unstable/rpc/Rpc.ts +6 -6
  829. package/src/unstable/rpc/RpcClient.ts +12 -54
  830. package/src/unstable/rpc/RpcGroup.ts +4 -4
  831. package/src/unstable/rpc/RpcMiddleware.ts +3 -3
  832. package/src/unstable/rpc/RpcSchema.ts +17 -0
  833. package/src/unstable/rpc/RpcSerialization.ts +44 -9
  834. package/src/unstable/rpc/RpcServer.ts +21 -30
  835. package/src/unstable/rpc/Utils.ts +2 -1
  836. package/src/unstable/schema/VariantSchema.ts +6 -6
  837. package/src/unstable/socket/Socket.ts +16 -17
  838. package/src/unstable/sql/SqlClient.ts +1 -1
  839. package/src/unstable/sql/SqlError.ts +11 -9
  840. package/src/unstable/sql/SqlModel.ts +5 -5
  841. package/src/unstable/sql/SqlSchema.ts +41 -25
  842. package/src/unstable/sql/Statement.ts +0 -1
  843. package/src/unstable/workers/Worker.ts +2 -1
  844. package/src/unstable/workflow/DurableClock.ts +8 -8
  845. package/src/unstable/workflow/DurableDeferred.ts +2 -2
  846. package/src/unstable/workflow/Workflow.ts +6 -2
  847. package/src/unstable/workflow/WorkflowEngine.ts +185 -2
  848. package/dist/PartitionedSemaphore.d.ts +0 -52
  849. package/dist/PartitionedSemaphore.d.ts.map +0 -1
  850. package/dist/PartitionedSemaphore.js.map +0 -1
  851. package/dist/encoding/Base64.d.ts +0 -67
  852. package/dist/encoding/Base64.d.ts.map +0 -1
  853. package/dist/encoding/Base64.js +0 -146
  854. package/dist/encoding/Base64.js.map +0 -1
  855. package/dist/encoding/Base64Url.d.ts +0 -60
  856. package/dist/encoding/Base64Url.d.ts.map +0 -1
  857. package/dist/encoding/Base64Url.js +0 -89
  858. package/dist/encoding/Base64Url.js.map +0 -1
  859. package/dist/encoding/EncodingError.d.ts +0 -31
  860. package/dist/encoding/EncodingError.d.ts.map +0 -1
  861. package/dist/encoding/EncodingError.js +0 -22
  862. package/dist/encoding/EncodingError.js.map +0 -1
  863. package/dist/encoding/Hex.d.ts +0 -61
  864. package/dist/encoding/Hex.d.ts.map +0 -1
  865. package/dist/encoding/Hex.js +0 -115
  866. package/dist/encoding/Hex.js.map +0 -1
  867. package/dist/encoding/index.d.ts +0 -26
  868. package/dist/encoding/index.d.ts.map +0 -1
  869. package/dist/encoding/index.js +0 -27
  870. package/dist/encoding/index.js.map +0 -1
  871. package/dist/unstable/cli/internal/builtInFlags.d.ts +0 -7
  872. package/dist/unstable/cli/internal/builtInFlags.d.ts.map +0 -1
  873. package/dist/unstable/cli/internal/builtInFlags.js +0 -44
  874. package/dist/unstable/cli/internal/builtInFlags.js.map +0 -1
  875. package/src/PartitionedSemaphore.ts +0 -182
  876. package/src/encoding/Base64.ts +0 -366
  877. package/src/encoding/Base64Url.ts +0 -104
  878. package/src/encoding/EncodingError.ts +0 -35
  879. package/src/encoding/Hex.ts +0 -390
  880. package/src/encoding/index.ts +0 -31
  881. package/src/unstable/cli/internal/builtInFlags.ts +0 -78
package/dist/Data.d.ts CHANGED
@@ -1,118 +1,190 @@
1
1
  /**
2
- * This module provides utilities for creating data types with structural equality
3
- * semantics. Unlike regular JavaScript objects, `Data` types support value-based
4
- * equality comparison using the `Equal` module.
2
+ * Immutable data constructors with discriminated-union support.
3
+ *
4
+ * The `Data` module provides base classes and factory functions for creating
5
+ * immutable value types with a `_tag` field for discriminated unions.
6
+ * It is the recommended way to define domain models, error types, and
7
+ * lightweight ADTs in Effect applications.
8
+ *
9
+ * ## Mental model
10
+ *
11
+ * - **`Class`** — base class for plain immutable data. Extend it with a type
12
+ * parameter to declare the fields. Instances are `Pipeable`.
13
+ * - **`TaggedClass`** — like `Class` but automatically adds a `readonly _tag`
14
+ * string literal field. Useful for single-variant types or ad-hoc tagged
15
+ * values.
16
+ * - **`TaggedEnum`** (type) + **`taggedEnum`** (value) — define a multi-variant
17
+ * discriminated union from a simple record. `taggedEnum()` returns per-variant
18
+ * constructors plus `$is` / `$match` helpers.
19
+ * - **`Error`** — like `Class` but extends `Cause.YieldableError`, so instances
20
+ * can be yielded inside `Effect.gen` to fail the effect.
21
+ * - **`TaggedError`** — like `TaggedClass` but extends `Cause.YieldableError`.
22
+ * Works with `Effect.catchTag` for tag-based error recovery.
23
+ *
24
+ * ## Common tasks
25
+ *
26
+ * - Define a simple value class → {@link Class}
27
+ * - Define a value class with a `_tag` → {@link TaggedClass}
28
+ * - Define a discriminated union with constructors → {@link TaggedEnum} + {@link taggedEnum}
29
+ * - Define a yieldable error → {@link Error}
30
+ * - Define a yieldable tagged error → {@link TaggedError}
31
+ * - Type-guard a tagged value → `$is` from {@link taggedEnum}
32
+ * - Pattern-match on a tagged union → `$match` from {@link taggedEnum}
33
+ *
34
+ * ## Gotchas
35
+ *
36
+ * - Variant records passed to `TaggedEnum` must **not** contain a `_tag` key;
37
+ * the `_tag` is added automatically from the record key.
38
+ * - When a class has no fields, the constructor argument is optional (`void`).
39
+ * - `taggedEnum()` creates **plain objects**, not class instances. If you need
40
+ * class-based variants, use `TaggedClass` or `TaggedError` instead.
41
+ * - `TaggedEnum.WithGenerics` supports up to 4 generic type parameters.
42
+ *
43
+ * ## Quickstart
44
+ *
45
+ * **Example** (tagged union with pattern matching)
5
46
  *
6
- * The main benefits of using `Data` types are:
7
- * - **Structural equality**: Two `Data` objects are equal if their contents are equal
8
- * - **Immutability**: `Data` types are designed to be immutable
9
- * - **Type safety**: Constructors ensure type safety and consistency
10
- * - **Effect integration**: Error types work seamlessly with Effect's error handling
47
+ * ```ts
48
+ * import { Data } from "effect"
49
+ *
50
+ * type Shape = Data.TaggedEnum<{
51
+ * Circle: { readonly radius: number }
52
+ * Rect: { readonly width: number; readonly height: number }
53
+ * }>
54
+ * const { Circle, Rect, $match } = Data.taggedEnum<Shape>()
55
+ *
56
+ * const area = $match({
57
+ * Circle: ({ radius }) => Math.PI * radius ** 2,
58
+ * Rect: ({ width, height }) => width * height
59
+ * })
60
+ *
61
+ * console.log(area(Circle({ radius: 5 })))
62
+ * // 78.53981633974483
63
+ * console.log(area(Rect({ width: 3, height: 4 })))
64
+ * // 12
65
+ * ```
66
+ *
67
+ * @see {@link Class} — plain immutable data class
68
+ * @see {@link TaggedEnum} — discriminated union type
69
+ * @see {@link taggedEnum} — discriminated union constructors
70
+ * @see {@link TaggedError} — yieldable tagged error class
11
71
  *
12
72
  * @since 2.0.0
13
73
  */
14
74
  import type * as Cause from "./Cause.ts";
75
+ import * as Pipeable from "./Pipeable.ts";
15
76
  import type * as Types from "./Types.ts";
16
77
  import type { Unify } from "./Unify.ts";
17
78
  /**
18
- * Provides a constructor for a Case Class.
79
+ * Base class for immutable data types.
80
+ *
81
+ * Extend `Class` with a type parameter to declare fields. The constructor
82
+ * accepts those fields as a single object argument. When there are no fields
83
+ * the argument is optional.
84
+ *
85
+ * - Use when you need a lightweight immutable value type with `.pipe()` support.
86
+ * - Instances are `Readonly` and `Pipeable`.
87
+ * - If you also need a `_tag` discriminator, use {@link TaggedClass} instead.
88
+ * - If you need a yieldable error, use {@link Error} or {@link TaggedError}.
89
+ *
90
+ * **Example** (defining a value class)
19
91
  *
20
- * @example
21
92
  * ```ts
22
93
  * import { Data, Equal } from "effect"
23
- * import * as assert from "node:assert"
24
94
  *
25
95
  * class Person extends Data.Class<{ readonly name: string }> {}
26
96
  *
27
- * // Creating instances of Person
28
97
  * const mike1 = new Person({ name: "Mike" })
29
98
  * const mike2 = new Person({ name: "Mike" })
30
- * const john = new Person({ name: "John" })
31
99
  *
32
- * // Checking equality
33
- * assert.deepStrictEqual(Equal.equals(mike1, mike2), true)
34
- * assert.deepStrictEqual(Equal.equals(mike1, john), false)
100
+ * console.log(Equal.equals(mike1, mike2))
101
+ * // true
35
102
  * ```
36
103
  *
37
- * @since 2.0.0
104
+ * @see {@link TaggedClass} — adds a `_tag` field
105
+ * @see {@link Error} — yieldable error variant
106
+ *
38
107
  * @category constructors
108
+ * @since 2.0.0
39
109
  */
40
- export declare const Class: new <A extends Record<string, any> = {}>(args: Types.Equals<A, {}> extends true ? void : {
110
+ export declare const Class: new <A extends Record<string, any> = {}>(args: Types.VoidIfEmpty<{
41
111
  readonly [P in keyof A]: A[P];
42
- }) => Readonly<A>;
112
+ }>) => Readonly<A> & Pipeable.Pipeable;
43
113
  /**
44
- * Provides a Tagged constructor for a Case Class.
114
+ * Base class for immutable data types with a `_tag` discriminator.
45
115
  *
46
- * @example
47
- * ```ts
48
- * import { Data, Equal } from "effect"
49
- * import * as assert from "node:assert"
116
+ * Like {@link Class}, but the resulting instances also carry a
117
+ * `readonly _tag: Tag` property. The `_tag` is excluded from the constructor
118
+ * argument.
50
119
  *
51
- * class Person extends Data.TaggedClass("Person")<{ readonly name: string }> {}
120
+ * - Use when you need a single-variant tagged type or an ad-hoc discriminator.
121
+ * - For multi-variant unions, prefer {@link TaggedEnum} + {@link taggedEnum}.
122
+ * - For yieldable errors, use {@link TaggedError}.
52
123
  *
53
- * // Creating instances of Person
54
- * const mike1 = new Person({ name: "Mike" })
55
- * const mike2 = new Person({ name: "Mike" })
56
- * const john = new Person({ name: "John" })
124
+ * **Example** (defining a tagged class)
57
125
  *
58
- * // Checking equality
59
- * assert.deepStrictEqual(Equal.equals(mike1, mike2), true)
60
- * assert.deepStrictEqual(Equal.equals(mike1, john), false)
126
+ * ```ts
127
+ * import { Data } from "effect"
61
128
  *
62
- * assert.deepStrictEqual(mike1._tag, "Person")
129
+ * class Person extends Data.TaggedClass("Person")<{
130
+ * readonly name: string
131
+ * }> {}
132
+ *
133
+ * const mike = new Person({ name: "Mike" })
134
+ * console.log(mike._tag)
135
+ * // "Person"
63
136
  * ```
64
137
  *
65
- * @since 2.0.0
138
+ * @see {@link Class} — without a `_tag`
139
+ * @see {@link TaggedError} — tagged error variant
140
+ * @see {@link TaggedEnum} — multi-variant unions
141
+ *
66
142
  * @category constructors
143
+ * @since 2.0.0
67
144
  */
68
- export declare const TaggedClass: <Tag extends string>(tag: Tag) => new <A extends Record<string, any> = {}>(args: Types.Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => Readonly<A> & {
145
+ export declare const TaggedClass: <Tag extends string>(tag: Tag) => new <A extends Record<string, any> = {}>(args: Types.VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => Readonly<A> & {
69
146
  readonly _tag: Tag;
70
- };
147
+ } & Pipeable.Pipeable;
71
148
  /**
72
- * Create a tagged enum data type, which is a union of `Data` structs.
149
+ * Transforms a record of variant definitions into a discriminated union type.
150
+ *
151
+ * Each key in the record becomes a variant with `readonly _tag` set to that
152
+ * key. Use with {@link taggedEnum} to get runtime constructors, type guards,
153
+ * and pattern matching.
73
154
  *
74
- * A `TaggedEnum` transforms a record of variant definitions into a discriminated
75
- * union type where each variant has a `_tag` field for type discrimination.
155
+ * - Use when you have two or more variants that share a common `_tag`
156
+ * discriminator.
157
+ * - Variant records must **not** include a `_tag` property — it is added
158
+ * automatically.
159
+ * - For generic tagged enums, see {@link TaggedEnum.WithGenerics}.
160
+ *
161
+ * **Example** (defining a tagged enum)
76
162
  *
77
- * @example
78
163
  * ```ts
79
164
  * import { Data } from "effect"
80
165
  *
81
- * // Define a tagged enum type
82
166
  * type HttpError = Data.TaggedEnum<{
83
167
  * BadRequest: { readonly status: 400; readonly message: string }
84
- * NotFound: { readonly status: 404; readonly message: string }
85
- * InternalError: { readonly status: 500; readonly details: string }
168
+ * NotFound: { readonly status: 404 }
86
169
  * }>
87
170
  *
88
- * // This is equivalent to the union type:
89
- * type HttpErrorExpanded =
90
- * | {
91
- * readonly _tag: "BadRequest"
92
- * readonly status: 400
93
- * readonly message: string
94
- * }
95
- * | {
96
- * readonly _tag: "NotFound"
97
- * readonly status: 404
98
- * readonly message: string
99
- * }
100
- * | {
101
- * readonly _tag: "InternalError"
102
- * readonly status: 500
103
- * readonly details: string
104
- * }
105
- *
106
- * // Usage with constructors
107
- * const { BadRequest, InternalError, NotFound } = Data.taggedEnum<HttpError>()
108
- *
109
- * const error: HttpError = BadRequest({ status: 400, message: "Invalid request" })
110
- * console.log(error._tag) // "BadRequest"
111
- * console.log(error.status) // 400
171
+ * // Equivalent to:
172
+ * // | { readonly _tag: "BadRequest"; readonly status: 400; readonly message: string }
173
+ * // | { readonly _tag: "NotFound"; readonly status: 404 }
174
+ *
175
+ * const { BadRequest, NotFound } = Data.taggedEnum<HttpError>()
176
+ *
177
+ * const err = BadRequest({ status: 400, message: "missing id" })
178
+ * console.log(err._tag)
179
+ * // "BadRequest"
112
180
  * ```
113
181
  *
114
- * @since 2.0.0
182
+ * @see {@link taggedEnum} — runtime constructors for a `TaggedEnum`
183
+ * @see {@link TaggedEnum.WithGenerics} — generic tagged enums
184
+ * @see {@link TaggedEnum.Constructor} — the constructor object type
185
+ *
115
186
  * @category models
187
+ * @since 2.0.0
116
188
  */
117
189
  export type TaggedEnum<A extends Record<string, Record<string, any>> & UntaggedChildren<A>> = keyof A extends infer Tag ? Tag extends keyof A ? Types.Simplify<{
118
190
  readonly _tag: Tag;
@@ -122,52 +194,53 @@ export type TaggedEnum<A extends Record<string, Record<string, any>> & UntaggedC
122
194
  type ChildrenAreTagged<A> = keyof A extends infer K ? K extends keyof A ? "_tag" extends keyof A[K] ? true : false : never : never;
123
195
  type UntaggedChildren<A> = true extends ChildrenAreTagged<A> ? "It looks like you're trying to create a tagged enum, but one or more of its members already has a `_tag` property." : unknown;
124
196
  /**
125
- * A namespace providing utilities for TaggedEnum types.
126
- *
127
- * This namespace contains types and utilities for working with tagged enums,
128
- * which are discriminated unions with structural equality semantics.
129
- *
130
- * @example
131
- * ```ts
132
- * import { Data } from "effect"
197
+ * Namespace for `TaggedEnum` utility types.
133
198
  *
134
- * // Basic tagged enum usage
135
- * const { Failure, Success } = Data.taggedEnum<
136
- * | { readonly _tag: "Success"; readonly value: number }
137
- * | { readonly _tag: "Failure"; readonly error: string }
138
- * >()
199
+ * Provides helper types for:
200
+ * - Generic tagged enums ({@link TaggedEnum.WithGenerics}, {@link TaggedEnum.Kind})
201
+ * - Extracting constructor arguments ({@link TaggedEnum.Args}) and variant
202
+ * values ({@link TaggedEnum.Value})
203
+ * - Full constructor objects ({@link TaggedEnum.Constructor})
139
204
  *
140
- * const result = Success({ value: 42 })
141
- * console.log(result._tag) // "Success"
142
- * console.log(result.value) // 42
143
- * ```
144
- *
145
- * @since 2.0.0
146
205
  * @category types
206
+ * @since 2.0.0
147
207
  */
148
208
  export declare namespace TaggedEnum {
149
209
  /**
150
- * A type-level helper for tagged enums that support generic type parameters.
151
- * This interface is used to define the structure of tagged enum definitions
152
- * that can accept generic type parameters.
210
+ * Defines a tagged enum shape that accepts generic type parameters.
211
+ *
212
+ * Extend this interface and set `taggedEnum` to your union type, using
213
+ * `this["A"]`, `this["B"]`, etc. as placeholders for the generics. The
214
+ * `Count` parameter declares how many generics are used (up to 4).
215
+ *
216
+ * - Use when variant payloads need to be parameterized (e.g., `Result<E, A>`).
217
+ * - Pass the interface (not the type alias) to {@link taggedEnum} to get
218
+ * generic-aware constructors.
219
+ *
220
+ * **Example** (generic tagged enum)
153
221
  *
154
- * @example
155
222
  * ```ts
156
- * import type { Data } from "effect"
223
+ * import { Data } from "effect"
157
224
  *
158
- * // Define a tagged enum with generic parameters
159
- * interface MyTaggedEnum<A, B> extends Data.TaggedEnum.WithGenerics<2> {
160
- * readonly taggedEnum:
161
- * | { readonly _tag: "Success"; readonly value: A }
162
- * | { readonly _tag: "Failure"; readonly error: B }
225
+ * type MyResult<E, A> = Data.TaggedEnum<{
226
+ * Failure: { readonly error: E }
227
+ * Success: { readonly value: A }
228
+ * }>
229
+ *
230
+ * interface MyResultDef extends Data.TaggedEnum.WithGenerics<2> {
231
+ * readonly taggedEnum: MyResult<this["A"], this["B"]>
163
232
  * }
164
233
  *
165
- * // The number of generics is tracked in the type
166
- * type NumGenerics = MyTaggedEnum<string, Error>["numberOfGenerics"] // 2
234
+ * const { Failure, Success } = Data.taggedEnum<MyResultDef>()
235
+ *
236
+ * const ok = Success({ value: 42 })
237
+ * // ok: { readonly _tag: "Success"; readonly value: number }
167
238
  * ```
168
239
  *
240
+ * @see {@link Kind} — apply concrete types to a `WithGenerics` definition
241
+ * @see {@link taggedEnum} — runtime constructors
242
+ *
169
243
  * @since 2.0.0
170
- * @category models
171
244
  */
172
245
  interface WithGenerics<Count extends number> {
173
246
  readonly taggedEnum: {
@@ -180,45 +253,33 @@ export declare namespace TaggedEnum {
180
253
  readonly D: unknown;
181
254
  }
182
255
  /**
183
- * Utility type for applying generic type parameters to a tagged enum definition.
256
+ * Applies concrete type arguments to a `WithGenerics` definition, producing
257
+ * the resulting tagged union type.
258
+ *
259
+ * - Use to refer to a specific instantiation of a generic tagged enum in
260
+ * type signatures.
184
261
  *
185
- * This type takes a `WithGenerics` definition and applies the provided type
186
- * parameters to create a concrete tagged enum type.
262
+ * **Example** (applying generics)
187
263
  *
188
- * @example
189
264
  * ```ts
190
265
  * import type { Data } from "effect"
191
266
  *
192
- * // Define a generic Option type
193
267
  * type Option<A> = Data.TaggedEnum<{
194
268
  * None: {}
195
269
  * Some: { readonly value: A }
196
270
  * }>
197
- *
198
- * interface OptionDefinition extends Data.TaggedEnum.WithGenerics<1> {
271
+ * interface OptionDef extends Data.TaggedEnum.WithGenerics<1> {
199
272
  * readonly taggedEnum: Option<this["A"]>
200
273
  * }
201
274
  *
202
- * // Apply specific type to get concrete type
203
- * type StringOption = Data.TaggedEnum.Kind<OptionDefinition, string>
204
- * // Result: { readonly _tag: "None" } | { readonly _tag: "Some"; readonly value: string }
205
- *
206
- * type NumberOption = Data.TaggedEnum.Kind<OptionDefinition, number>
207
- * // Result: { readonly _tag: "None" } | { readonly _tag: "Some"; readonly value: number }
208
- *
209
- * // Usage in type-safe functions
210
- * const processOption = (opt: StringOption): string => {
211
- * switch (opt._tag) {
212
- * case "None":
213
- * return "No value"
214
- * case "Some":
215
- * return `Value: ${opt.value}`
216
- * }
217
- * }
275
+ * // Resolve to the concrete union for `string`
276
+ * type StringOption = Data.TaggedEnum.Kind<OptionDef, string>
277
+ * // { _tag: "None" } | { _tag: "Some"; value: string }
218
278
  * ```
219
279
  *
280
+ * @see {@link WithGenerics} — define the generic shape
281
+ *
220
282
  * @since 2.0.0
221
- * @category models
222
283
  */
223
284
  type Kind<Z extends WithGenerics<number>, A = unknown, B = unknown, C = unknown, D = unknown> = (Z & {
224
285
  readonly A: A;
@@ -227,30 +288,30 @@ export declare namespace TaggedEnum {
227
288
  readonly D: D;
228
289
  })["taggedEnum"];
229
290
  /**
230
- * Extracts the argument types for a tagged enum constructor.
291
+ * Extracts the constructor argument type for a specific variant of a tagged
292
+ * union.
293
+ *
294
+ * Returns `void` if the variant has no fields beyond `_tag`.
231
295
  *
232
- * This utility type extracts the required arguments for constructing
233
- * a specific variant of a tagged enum, excluding the `_tag` field.
296
+ * **Example** (extracting variant args)
234
297
  *
235
- * @example
236
298
  * ```ts
237
299
  * import type { Data } from "effect"
238
300
  *
239
301
  * type Result =
240
- * | { readonly _tag: "Success"; readonly value: number }
241
- * | { readonly _tag: "Failure"; readonly error: string }
302
+ * | { readonly _tag: "Ok"; readonly value: number }
303
+ * | { readonly _tag: "Err"; readonly error: string }
242
304
  *
243
- * // Extract arguments for Success variant
244
- * type SuccessArgs = Data.TaggedEnum.Args<Result, "Success">
245
- * // Result: { readonly value: number }
305
+ * type OkArgs = Data.TaggedEnum.Args<Result, "Ok">
306
+ * // { readonly value: number }
246
307
  *
247
- * // Extract arguments for Failure variant
248
- * type FailureArgs = Data.TaggedEnum.Args<Result, "Failure">
249
- * // Result: { readonly error: string }
308
+ * type ErrArgs = Data.TaggedEnum.Args<Result, "Err">
309
+ * // { readonly error: string }
250
310
  * ```
251
311
  *
312
+ * @see {@link Value} — extracts the full variant type (including `_tag`)
313
+ *
252
314
  * @since 2.0.0
253
- * @category types
254
315
  */
255
316
  type Args<A extends {
256
317
  readonly _tag: string;
@@ -260,30 +321,24 @@ export declare namespace TaggedEnum {
260
321
  readonly [K in keyof E as K extends "_tag" ? never : K]: E[K];
261
322
  } extends infer T ? {} extends T ? void : T : never;
262
323
  /**
263
- * Extracts the complete value type for a tagged enum variant.
324
+ * Extracts the full variant type (including `_tag`) for a specific tag.
264
325
  *
265
- * This utility type extracts the full type (including the `_tag` field)
266
- * for a specific variant of a tagged enum.
326
+ * **Example** (extracting a variant type)
267
327
  *
268
- * @example
269
328
  * ```ts
270
329
  * import type { Data } from "effect"
271
330
  *
272
331
  * type Result =
273
- * | { readonly _tag: "Success"; readonly value: number }
274
- * | { readonly _tag: "Failure"; readonly error: string }
275
- *
276
- * // Extract complete Success type
277
- * type SuccessValue = Data.TaggedEnum.Value<Result, "Success">
278
- * // Result: { readonly _tag: "Success"; readonly value: number }
332
+ * | { readonly _tag: "Ok"; readonly value: number }
333
+ * | { readonly _tag: "Err"; readonly error: string }
279
334
  *
280
- * // Extract complete Failure type
281
- * type FailureValue = Data.TaggedEnum.Value<Result, "Failure">
282
- * // Result: { readonly _tag: "Failure"; readonly error: string }
335
+ * type OkVariant = Data.TaggedEnum.Value<Result, "Ok">
336
+ * // { readonly _tag: "Ok"; readonly value: number }
283
337
  * ```
284
338
  *
339
+ * @see {@link Args} — extracts fields without `_tag`
340
+ *
285
341
  * @since 2.0.0
286
- * @category types
287
342
  */
288
343
  type Value<A extends {
289
344
  readonly _tag: string;
@@ -291,37 +346,40 @@ export declare namespace TaggedEnum {
291
346
  readonly _tag: K;
292
347
  }>;
293
348
  /**
294
- * Provides a complete constructor interface for tagged enums.
349
+ * The full constructor-object type returned by {@link taggedEnum}.
295
350
  *
296
- * This type creates a constructor object that includes:
297
- * - Individual constructors for each variant
298
- * - `$is` for type predicates
299
- * - `$match` for pattern matching
351
+ * Includes:
352
+ * - A constructor function for each variant (keyed by tag name)
353
+ * - `$is(tag)` returns a type-guard for the given variant
354
+ * - `$match` exhaustive pattern matching (data-last or data-first)
355
+ *
356
+ * **Example** (using the constructor object)
300
357
  *
301
- * @example
302
358
  * ```ts
303
359
  * import { Data } from "effect"
304
360
  *
305
- * type HttpError =
306
- * | { readonly _tag: "BadRequest"; readonly message: string }
307
- * | { readonly _tag: "NotFound"; readonly resource: string }
361
+ * type Shape =
362
+ * | { readonly _tag: "Circle"; readonly radius: number }
363
+ * | { readonly _tag: "Rect"; readonly w: number; readonly h: number }
308
364
  *
309
- * const { $is, $match, BadRequest, NotFound } = Data.taggedEnum<HttpError>()
365
+ * const { Circle, Rect, $is, $match } = Data.taggedEnum<Shape>()
310
366
  *
311
- * const error = BadRequest({ message: "Invalid input" })
367
+ * const shape = Circle({ radius: 10 })
312
368
  *
313
- * // Type predicate
314
- * if ($is("BadRequest")(error)) {
315
- * console.log(error.message) // TypeScript knows this is BadRequest
369
+ * // Type guard
370
+ * if ($is("Circle")(shape)) {
371
+ * console.log(shape.radius)
316
372
  * }
317
373
  *
318
374
  * // Pattern matching
319
- * const result = $match(error, {
320
- * BadRequest: ({ message }) => `Bad request: ${message}`,
321
- * NotFound: ({ resource }) => `Not found: ${resource}`
375
+ * const label = $match(shape, {
376
+ * Circle: (s) => `circle r=${s.radius}`,
377
+ * Rect: (s) => `rect ${s.w}x${s.h}`
322
378
  * })
323
379
  * ```
324
380
  *
381
+ * @see {@link taggedEnum} — creates a `Constructor`
382
+ *
325
383
  * @since 3.1.0
326
384
  * @category types
327
385
  */
@@ -349,50 +407,25 @@ export declare namespace TaggedEnum {
349
407
  };
350
408
  }>;
351
409
  /**
410
+ * Function type that constructs a tagged-union variant from its fields,
411
+ * excluding the keys listed in `Tag`.
412
+ *
413
+ * Returns `void` when no fields remain after excluding `Tag` keys.
414
+ *
352
415
  * @since 4.0.0
353
- * @category types
354
416
  */
355
- type ConstructorFrom<A, Tag extends keyof A = never> = (args: Types.Equals<Omit<A, Tag>, {}> extends true ? void : {
417
+ type ConstructorFrom<A, Tag extends keyof A = never> = (args: Types.VoidIfEmpty<{
356
418
  readonly [P in keyof A as P extends Tag ? never : P]: A[P];
357
- }) => A;
419
+ }>) => A;
358
420
  /**
359
- * Provides type-safe pattern matching for generic tagged enums.
421
+ * Type-guard and pattern-matching interface for generic tagged enums.
360
422
  *
361
- * This interface provides `$is` and `$match` utilities for tagged enums
362
- * that use generics, ensuring type safety across different generic instantiations.
423
+ * This is the `$is` / `$match` portion of the object returned by
424
+ * {@link taggedEnum} when used with a {@link WithGenerics} definition.
363
425
  *
364
- * @example
365
- * ```ts
366
- * import { Data } from "effect"
367
- *
368
- * type Result<E, A> = Data.TaggedEnum<{
369
- * Failure: { readonly error: E }
370
- * Success: { readonly value: A }
371
- * }>
372
- *
373
- * interface ResultDefinition extends Data.TaggedEnum.WithGenerics<2> {
374
- * readonly taggedEnum: Result<this["A"], this["B"]>
375
- * }
376
- *
377
- * const { $is, $match, Failure, Success } = Data.taggedEnum<ResultDefinition>()
378
- *
379
- * const stringResult = Success({ value: "hello" })
380
- * const numberResult = Failure({ error: 404 })
381
- *
382
- * // Generic type checking
383
- * if ($is("Success")(stringResult)) {
384
- * console.log(stringResult.value) // TypeScript knows this is string
385
- * }
386
- *
387
- * // Generic pattern matching
388
- * const message = $match(numberResult, {
389
- * Success: ({ value }) => `Value: ${value}`,
390
- * Failure: ({ error }) => `Error: ${error}`
391
- * })
392
- * ```
426
+ * @see {@link Constructor} — the non-generic equivalent
393
427
  *
394
428
  * @since 3.2.0
395
- * @category types
396
429
  */
397
430
  interface GenericMatchers<Z extends WithGenerics<number>> {
398
431
  readonly $is: <Tag extends Z["taggedEnum"]["_tag"]>(tag: Tag) => {
@@ -418,88 +451,128 @@ export declare namespace TaggedEnum {
418
451
  }
419
452
  }
420
453
  /**
421
- * Create a constructor for a tagged union of `Data` structs.
454
+ * Creates runtime constructors, type guards, and pattern matching for a
455
+ * {@link TaggedEnum} type.
422
456
  *
423
- * You can also pass a `TaggedEnum.WithGenerics` if you want to add generics to
424
- * the constructor.
457
+ * Returns an object with:
458
+ * - One constructor per variant (keyed by tag name)
459
+ * - `$is(tag)` — returns a type-guard function
460
+ * - `$match` — exhaustive pattern matching (data-first or data-last)
461
+ *
462
+ * - Use when you have a `TaggedEnum` type and need to construct/inspect values.
463
+ * - Constructors produce **plain objects** (not class instances).
464
+ * - For generic enums, pass a {@link TaggedEnum.WithGenerics} interface.
465
+ *
466
+ * **Example** (basic usage)
425
467
  *
426
- * @example
427
468
  * ```ts
428
469
  * import { Data } from "effect"
429
470
  *
430
- * const { BadRequest, NotFound } = Data.taggedEnum<
431
- * | {
432
- * readonly _tag: "BadRequest"
433
- * readonly status: 400
434
- * readonly message: string
435
- * }
436
- * | {
437
- * readonly _tag: "NotFound"
438
- * readonly status: 404
439
- * readonly message: string
440
- * }
441
- * >()
442
- *
443
- * const notFound = NotFound({ status: 404, message: "Not Found" })
471
+ * type HttpError = Data.TaggedEnum<{
472
+ * BadRequest: { readonly message: string }
473
+ * NotFound: { readonly url: string }
474
+ * }>
475
+ *
476
+ * const { BadRequest, NotFound, $is, $match } = Data.taggedEnum<HttpError>()
477
+ *
478
+ * const err = NotFound({ url: "/missing" })
479
+ *
480
+ * // Type guard
481
+ * console.log($is("NotFound")(err)) // true
482
+ *
483
+ * // Pattern matching
484
+ * const msg = $match(err, {
485
+ * BadRequest: (e) => e.message,
486
+ * NotFound: (e) => `${e.url} not found`
487
+ * })
488
+ * console.log(msg) // "/missing not found"
444
489
  * ```
445
490
  *
446
- * @example
491
+ * **Example** (generic tagged enum)
492
+ *
493
+ * ```ts
447
494
  * import { Data } from "effect"
448
495
  *
449
496
  * type MyResult<E, A> = Data.TaggedEnum<{
450
497
  * Failure: { readonly error: E }
451
498
  * Success: { readonly value: A }
452
499
  * }>
453
- * interface MyResultDefinition extends Data.TaggedEnum.WithGenerics<2> {
500
+ * interface MyResultDef extends Data.TaggedEnum.WithGenerics<2> {
454
501
  * readonly taggedEnum: MyResult<this["A"], this["B"]>
455
502
  * }
456
- * const { Failure, Success } = Data.taggedEnum<MyResultDefinition>()
503
+ * const { Failure, Success } = Data.taggedEnum<MyResultDef>()
457
504
  *
458
- * const success = Success({ value: 1 })
505
+ * const ok = Success({ value: 42 })
506
+ * // ok: { readonly _tag: "Success"; readonly value: number }
507
+ * ```
508
+ *
509
+ * @see {@link TaggedEnum} — the type-level companion
510
+ * @see {@link TaggedEnum.Constructor} — the returned object type
511
+ * @see {@link TaggedEnum.WithGenerics} — generic enum support
459
512
  *
460
513
  * @category constructors
461
514
  * @since 2.0.0
462
515
  */
463
516
  export declare const taggedEnum: {
464
517
  /**
465
- * Create a constructor for a tagged union of `Data` structs.
518
+ * Creates runtime constructors, type guards, and pattern matching for a
519
+ * {@link TaggedEnum} type.
520
+ *
521
+ * Returns an object with:
522
+ * - One constructor per variant (keyed by tag name)
523
+ * - `$is(tag)` — returns a type-guard function
524
+ * - `$match` — exhaustive pattern matching (data-first or data-last)
466
525
  *
467
- * You can also pass a `TaggedEnum.WithGenerics` if you want to add generics to
468
- * the constructor.
526
+ * - Use when you have a `TaggedEnum` type and need to construct/inspect values.
527
+ * - Constructors produce **plain objects** (not class instances).
528
+ * - For generic enums, pass a {@link TaggedEnum.WithGenerics} interface.
529
+ *
530
+ * **Example** (basic usage)
469
531
  *
470
- * @example
471
532
  * ```ts
472
533
  * import { Data } from "effect"
473
534
  *
474
- * const { BadRequest, NotFound } = Data.taggedEnum<
475
- * | {
476
- * readonly _tag: "BadRequest"
477
- * readonly status: 400
478
- * readonly message: string
479
- * }
480
- * | {
481
- * readonly _tag: "NotFound"
482
- * readonly status: 404
483
- * readonly message: string
484
- * }
485
- * >()
486
- *
487
- * const notFound = NotFound({ status: 404, message: "Not Found" })
535
+ * type HttpError = Data.TaggedEnum<{
536
+ * BadRequest: { readonly message: string }
537
+ * NotFound: { readonly url: string }
538
+ * }>
539
+ *
540
+ * const { BadRequest, NotFound, $is, $match } = Data.taggedEnum<HttpError>()
541
+ *
542
+ * const err = NotFound({ url: "/missing" })
543
+ *
544
+ * // Type guard
545
+ * console.log($is("NotFound")(err)) // true
546
+ *
547
+ * // Pattern matching
548
+ * const msg = $match(err, {
549
+ * BadRequest: (e) => e.message,
550
+ * NotFound: (e) => `${e.url} not found`
551
+ * })
552
+ * console.log(msg) // "/missing not found"
488
553
  * ```
489
554
  *
490
- * @example
555
+ * **Example** (generic tagged enum)
556
+ *
557
+ * ```ts
491
558
  * import { Data } from "effect"
492
559
  *
493
560
  * type MyResult<E, A> = Data.TaggedEnum<{
494
561
  * Failure: { readonly error: E }
495
562
  * Success: { readonly value: A }
496
563
  * }>
497
- * interface MyResultDefinition extends Data.TaggedEnum.WithGenerics<2> {
564
+ * interface MyResultDef extends Data.TaggedEnum.WithGenerics<2> {
498
565
  * readonly taggedEnum: MyResult<this["A"], this["B"]>
499
566
  * }
500
- * const { Failure, Success } = Data.taggedEnum<MyResultDefinition>()
567
+ * const { Failure, Success } = Data.taggedEnum<MyResultDef>()
568
+ *
569
+ * const ok = Success({ value: 42 })
570
+ * // ok: { readonly _tag: "Success"; readonly value: number }
571
+ * ```
501
572
  *
502
- * const success = Success({ value: 1 })
573
+ * @see {@link TaggedEnum} the type-level companion
574
+ * @see {@link TaggedEnum.Constructor} — the returned object type
575
+ * @see {@link TaggedEnum.WithGenerics} — generic enum support
503
576
  *
504
577
  * @category constructors
505
578
  * @since 2.0.0
@@ -510,44 +583,64 @@ export declare const taggedEnum: {
510
583
  }>>) => TaggedEnum.Value<TaggedEnum.Kind<Z, A>, Tag>;
511
584
  } & TaggedEnum.GenericMatchers<Z>>;
512
585
  /**
513
- * Create a constructor for a tagged union of `Data` structs.
586
+ * Creates runtime constructors, type guards, and pattern matching for a
587
+ * {@link TaggedEnum} type.
588
+ *
589
+ * Returns an object with:
590
+ * - One constructor per variant (keyed by tag name)
591
+ * - `$is(tag)` — returns a type-guard function
592
+ * - `$match` — exhaustive pattern matching (data-first or data-last)
593
+ *
594
+ * - Use when you have a `TaggedEnum` type and need to construct/inspect values.
595
+ * - Constructors produce **plain objects** (not class instances).
596
+ * - For generic enums, pass a {@link TaggedEnum.WithGenerics} interface.
514
597
  *
515
- * You can also pass a `TaggedEnum.WithGenerics` if you want to add generics to
516
- * the constructor.
598
+ * **Example** (basic usage)
517
599
  *
518
- * @example
519
600
  * ```ts
520
601
  * import { Data } from "effect"
521
602
  *
522
- * const { BadRequest, NotFound } = Data.taggedEnum<
523
- * | {
524
- * readonly _tag: "BadRequest"
525
- * readonly status: 400
526
- * readonly message: string
527
- * }
528
- * | {
529
- * readonly _tag: "NotFound"
530
- * readonly status: 404
531
- * readonly message: string
532
- * }
533
- * >()
534
- *
535
- * const notFound = NotFound({ status: 404, message: "Not Found" })
603
+ * type HttpError = Data.TaggedEnum<{
604
+ * BadRequest: { readonly message: string }
605
+ * NotFound: { readonly url: string }
606
+ * }>
607
+ *
608
+ * const { BadRequest, NotFound, $is, $match } = Data.taggedEnum<HttpError>()
609
+ *
610
+ * const err = NotFound({ url: "/missing" })
611
+ *
612
+ * // Type guard
613
+ * console.log($is("NotFound")(err)) // true
614
+ *
615
+ * // Pattern matching
616
+ * const msg = $match(err, {
617
+ * BadRequest: (e) => e.message,
618
+ * NotFound: (e) => `${e.url} not found`
619
+ * })
620
+ * console.log(msg) // "/missing not found"
536
621
  * ```
537
622
  *
538
- * @example
623
+ * **Example** (generic tagged enum)
624
+ *
625
+ * ```ts
539
626
  * import { Data } from "effect"
540
627
  *
541
628
  * type MyResult<E, A> = Data.TaggedEnum<{
542
629
  * Failure: { readonly error: E }
543
630
  * Success: { readonly value: A }
544
631
  * }>
545
- * interface MyResultDefinition extends Data.TaggedEnum.WithGenerics<2> {
632
+ * interface MyResultDef extends Data.TaggedEnum.WithGenerics<2> {
546
633
  * readonly taggedEnum: MyResult<this["A"], this["B"]>
547
634
  * }
548
- * const { Failure, Success } = Data.taggedEnum<MyResultDefinition>()
635
+ * const { Failure, Success } = Data.taggedEnum<MyResultDef>()
636
+ *
637
+ * const ok = Success({ value: 42 })
638
+ * // ok: { readonly _tag: "Success"; readonly value: number }
639
+ * ```
549
640
  *
550
- * const success = Success({ value: 1 })
641
+ * @see {@link TaggedEnum} the type-level companion
642
+ * @see {@link TaggedEnum.Constructor} — the returned object type
643
+ * @see {@link TaggedEnum.WithGenerics} — generic enum support
551
644
  *
552
645
  * @category constructors
553
646
  * @since 2.0.0
@@ -558,44 +651,64 @@ export declare const taggedEnum: {
558
651
  }>>) => TaggedEnum.Value<TaggedEnum.Kind<Z, A, B>, Tag>;
559
652
  } & TaggedEnum.GenericMatchers<Z>>;
560
653
  /**
561
- * Create a constructor for a tagged union of `Data` structs.
654
+ * Creates runtime constructors, type guards, and pattern matching for a
655
+ * {@link TaggedEnum} type.
656
+ *
657
+ * Returns an object with:
658
+ * - One constructor per variant (keyed by tag name)
659
+ * - `$is(tag)` — returns a type-guard function
660
+ * - `$match` — exhaustive pattern matching (data-first or data-last)
661
+ *
662
+ * - Use when you have a `TaggedEnum` type and need to construct/inspect values.
663
+ * - Constructors produce **plain objects** (not class instances).
664
+ * - For generic enums, pass a {@link TaggedEnum.WithGenerics} interface.
562
665
  *
563
- * You can also pass a `TaggedEnum.WithGenerics` if you want to add generics to
564
- * the constructor.
666
+ * **Example** (basic usage)
565
667
  *
566
- * @example
567
668
  * ```ts
568
669
  * import { Data } from "effect"
569
670
  *
570
- * const { BadRequest, NotFound } = Data.taggedEnum<
571
- * | {
572
- * readonly _tag: "BadRequest"
573
- * readonly status: 400
574
- * readonly message: string
575
- * }
576
- * | {
577
- * readonly _tag: "NotFound"
578
- * readonly status: 404
579
- * readonly message: string
580
- * }
581
- * >()
582
- *
583
- * const notFound = NotFound({ status: 404, message: "Not Found" })
671
+ * type HttpError = Data.TaggedEnum<{
672
+ * BadRequest: { readonly message: string }
673
+ * NotFound: { readonly url: string }
674
+ * }>
675
+ *
676
+ * const { BadRequest, NotFound, $is, $match } = Data.taggedEnum<HttpError>()
677
+ *
678
+ * const err = NotFound({ url: "/missing" })
679
+ *
680
+ * // Type guard
681
+ * console.log($is("NotFound")(err)) // true
682
+ *
683
+ * // Pattern matching
684
+ * const msg = $match(err, {
685
+ * BadRequest: (e) => e.message,
686
+ * NotFound: (e) => `${e.url} not found`
687
+ * })
688
+ * console.log(msg) // "/missing not found"
584
689
  * ```
585
690
  *
586
- * @example
691
+ * **Example** (generic tagged enum)
692
+ *
693
+ * ```ts
587
694
  * import { Data } from "effect"
588
695
  *
589
696
  * type MyResult<E, A> = Data.TaggedEnum<{
590
697
  * Failure: { readonly error: E }
591
698
  * Success: { readonly value: A }
592
699
  * }>
593
- * interface MyResultDefinition extends Data.TaggedEnum.WithGenerics<2> {
700
+ * interface MyResultDef extends Data.TaggedEnum.WithGenerics<2> {
594
701
  * readonly taggedEnum: MyResult<this["A"], this["B"]>
595
702
  * }
596
- * const { Failure, Success } = Data.taggedEnum<MyResultDefinition>()
703
+ * const { Failure, Success } = Data.taggedEnum<MyResultDef>()
704
+ *
705
+ * const ok = Success({ value: 42 })
706
+ * // ok: { readonly _tag: "Success"; readonly value: number }
707
+ * ```
597
708
  *
598
- * const success = Success({ value: 1 })
709
+ * @see {@link TaggedEnum} the type-level companion
710
+ * @see {@link TaggedEnum.Constructor} — the returned object type
711
+ * @see {@link TaggedEnum.WithGenerics} — generic enum support
599
712
  *
600
713
  * @category constructors
601
714
  * @since 2.0.0
@@ -606,44 +719,64 @@ export declare const taggedEnum: {
606
719
  }>>) => TaggedEnum.Value<TaggedEnum.Kind<Z, A, B, C>, Tag>;
607
720
  } & TaggedEnum.GenericMatchers<Z>>;
608
721
  /**
609
- * Create a constructor for a tagged union of `Data` structs.
722
+ * Creates runtime constructors, type guards, and pattern matching for a
723
+ * {@link TaggedEnum} type.
724
+ *
725
+ * Returns an object with:
726
+ * - One constructor per variant (keyed by tag name)
727
+ * - `$is(tag)` — returns a type-guard function
728
+ * - `$match` — exhaustive pattern matching (data-first or data-last)
729
+ *
730
+ * - Use when you have a `TaggedEnum` type and need to construct/inspect values.
731
+ * - Constructors produce **plain objects** (not class instances).
732
+ * - For generic enums, pass a {@link TaggedEnum.WithGenerics} interface.
610
733
  *
611
- * You can also pass a `TaggedEnum.WithGenerics` if you want to add generics to
612
- * the constructor.
734
+ * **Example** (basic usage)
613
735
  *
614
- * @example
615
736
  * ```ts
616
737
  * import { Data } from "effect"
617
738
  *
618
- * const { BadRequest, NotFound } = Data.taggedEnum<
619
- * | {
620
- * readonly _tag: "BadRequest"
621
- * readonly status: 400
622
- * readonly message: string
623
- * }
624
- * | {
625
- * readonly _tag: "NotFound"
626
- * readonly status: 404
627
- * readonly message: string
628
- * }
629
- * >()
630
- *
631
- * const notFound = NotFound({ status: 404, message: "Not Found" })
739
+ * type HttpError = Data.TaggedEnum<{
740
+ * BadRequest: { readonly message: string }
741
+ * NotFound: { readonly url: string }
742
+ * }>
743
+ *
744
+ * const { BadRequest, NotFound, $is, $match } = Data.taggedEnum<HttpError>()
745
+ *
746
+ * const err = NotFound({ url: "/missing" })
747
+ *
748
+ * // Type guard
749
+ * console.log($is("NotFound")(err)) // true
750
+ *
751
+ * // Pattern matching
752
+ * const msg = $match(err, {
753
+ * BadRequest: (e) => e.message,
754
+ * NotFound: (e) => `${e.url} not found`
755
+ * })
756
+ * console.log(msg) // "/missing not found"
632
757
  * ```
633
758
  *
634
- * @example
759
+ * **Example** (generic tagged enum)
760
+ *
761
+ * ```ts
635
762
  * import { Data } from "effect"
636
763
  *
637
764
  * type MyResult<E, A> = Data.TaggedEnum<{
638
765
  * Failure: { readonly error: E }
639
766
  * Success: { readonly value: A }
640
767
  * }>
641
- * interface MyResultDefinition extends Data.TaggedEnum.WithGenerics<2> {
768
+ * interface MyResultDef extends Data.TaggedEnum.WithGenerics<2> {
642
769
  * readonly taggedEnum: MyResult<this["A"], this["B"]>
643
770
  * }
644
- * const { Failure, Success } = Data.taggedEnum<MyResultDefinition>()
771
+ * const { Failure, Success } = Data.taggedEnum<MyResultDef>()
772
+ *
773
+ * const ok = Success({ value: 42 })
774
+ * // ok: { readonly _tag: "Success"; readonly value: number }
775
+ * ```
645
776
  *
646
- * const success = Success({ value: 1 })
777
+ * @see {@link TaggedEnum} the type-level companion
778
+ * @see {@link TaggedEnum.Constructor} — the returned object type
779
+ * @see {@link TaggedEnum.WithGenerics} — generic enum support
647
780
  *
648
781
  * @category constructors
649
782
  * @since 2.0.0
@@ -654,44 +787,64 @@ export declare const taggedEnum: {
654
787
  }>>) => TaggedEnum.Value<TaggedEnum.Kind<Z, A, B, C, D>, Tag>;
655
788
  } & TaggedEnum.GenericMatchers<Z>>;
656
789
  /**
657
- * Create a constructor for a tagged union of `Data` structs.
790
+ * Creates runtime constructors, type guards, and pattern matching for a
791
+ * {@link TaggedEnum} type.
658
792
  *
659
- * You can also pass a `TaggedEnum.WithGenerics` if you want to add generics to
660
- * the constructor.
793
+ * Returns an object with:
794
+ * - One constructor per variant (keyed by tag name)
795
+ * - `$is(tag)` — returns a type-guard function
796
+ * - `$match` — exhaustive pattern matching (data-first or data-last)
797
+ *
798
+ * - Use when you have a `TaggedEnum` type and need to construct/inspect values.
799
+ * - Constructors produce **plain objects** (not class instances).
800
+ * - For generic enums, pass a {@link TaggedEnum.WithGenerics} interface.
801
+ *
802
+ * **Example** (basic usage)
661
803
  *
662
- * @example
663
804
  * ```ts
664
805
  * import { Data } from "effect"
665
806
  *
666
- * const { BadRequest, NotFound } = Data.taggedEnum<
667
- * | {
668
- * readonly _tag: "BadRequest"
669
- * readonly status: 400
670
- * readonly message: string
671
- * }
672
- * | {
673
- * readonly _tag: "NotFound"
674
- * readonly status: 404
675
- * readonly message: string
676
- * }
677
- * >()
678
- *
679
- * const notFound = NotFound({ status: 404, message: "Not Found" })
807
+ * type HttpError = Data.TaggedEnum<{
808
+ * BadRequest: { readonly message: string }
809
+ * NotFound: { readonly url: string }
810
+ * }>
811
+ *
812
+ * const { BadRequest, NotFound, $is, $match } = Data.taggedEnum<HttpError>()
813
+ *
814
+ * const err = NotFound({ url: "/missing" })
815
+ *
816
+ * // Type guard
817
+ * console.log($is("NotFound")(err)) // true
818
+ *
819
+ * // Pattern matching
820
+ * const msg = $match(err, {
821
+ * BadRequest: (e) => e.message,
822
+ * NotFound: (e) => `${e.url} not found`
823
+ * })
824
+ * console.log(msg) // "/missing not found"
680
825
  * ```
681
826
  *
682
- * @example
827
+ * **Example** (generic tagged enum)
828
+ *
829
+ * ```ts
683
830
  * import { Data } from "effect"
684
831
  *
685
832
  * type MyResult<E, A> = Data.TaggedEnum<{
686
833
  * Failure: { readonly error: E }
687
834
  * Success: { readonly value: A }
688
835
  * }>
689
- * interface MyResultDefinition extends Data.TaggedEnum.WithGenerics<2> {
836
+ * interface MyResultDef extends Data.TaggedEnum.WithGenerics<2> {
690
837
  * readonly taggedEnum: MyResult<this["A"], this["B"]>
691
838
  * }
692
- * const { Failure, Success } = Data.taggedEnum<MyResultDefinition>()
839
+ * const { Failure, Success } = Data.taggedEnum<MyResultDef>()
693
840
  *
694
- * const success = Success({ value: 1 })
841
+ * const ok = Success({ value: 42 })
842
+ * // ok: { readonly _tag: "Success"; readonly value: number }
843
+ * ```
844
+ *
845
+ * @see {@link TaggedEnum} — the type-level companion
846
+ * @see {@link TaggedEnum.Constructor} — the returned object type
847
+ * @see {@link TaggedEnum.WithGenerics} — generic enum support
695
848
  *
696
849
  * @category constructors
697
850
  * @since 2.0.0
@@ -701,70 +854,86 @@ export declare const taggedEnum: {
701
854
  }>(): TaggedEnum.Constructor<A>;
702
855
  };
703
856
  /**
704
- * Create a structured error constructor that supports Effect's error handling.
857
+ * Base class for yieldable errors.
858
+ *
859
+ * Extends `Cause.YieldableError`, so instances can be yielded inside
860
+ * `Effect.gen` to fail the enclosing effect. Fields are passed as a single
861
+ * object; when there are no fields the argument is optional.
705
862
  *
706
- * This constructor creates errors that are both `Cause.YieldableError` (can be
707
- * yielded in Effect generators) and have structural equality semantics.
863
+ * - Use for errors that do **not** need tag-based discrimination.
864
+ * - If you need `Effect.catchTag` support, use {@link TaggedError} instead.
865
+ * - If a `message` field is provided, it becomes the error's `.message`.
866
+ *
867
+ * **Example** (defining a yieldable error)
708
868
  *
709
- * @example
710
869
  * ```ts
711
870
  * import { Data, Effect } from "effect"
712
871
  *
713
- * class NetworkError extends Data.Error<{ code: number; message: string }> {}
872
+ * class NetworkError extends Data.Error<{
873
+ * readonly code: number
874
+ * readonly message: string
875
+ * }> {}
714
876
  *
715
877
  * const program = Effect.gen(function*() {
716
- * yield* new NetworkError({ code: 500, message: "Server error" })
878
+ * yield* new NetworkError({ code: 500, message: "timeout" })
717
879
  * })
718
880
  *
881
+ * // The effect fails with a NetworkError
719
882
  * Effect.runSync(Effect.exit(program))
720
- * // Exit.fail(NetworkError({ code: 500, message: "Server error" }))
721
883
  * ```
722
884
  *
885
+ * @see {@link TaggedError} — adds a `_tag` for `Effect.catchTag`
886
+ * @see {@link Class} — non-error data class
887
+ *
723
888
  * @category constructors
724
889
  * @since 2.0.0
725
890
  */
726
- export declare const Error: new <A extends Record<string, any> = {}>(args: Types.Equals<A, {}> extends true ? void : {
891
+ export declare const Error: new <A extends Record<string, any> = {}>(args: Types.VoidIfEmpty<{
727
892
  readonly [P in keyof A]: A[P];
728
- }) => Cause.YieldableError & Readonly<A>;
893
+ }>) => Cause.YieldableError & Readonly<A>;
729
894
  /**
730
- * Create a tagged error constructor with a specific tag for discriminated unions.
895
+ * Creates a tagged error class with a `_tag` discriminator.
896
+ *
897
+ * Like {@link Error}, but instances also carry a `readonly _tag` property,
898
+ * enabling `Effect.catchTag` and `Effect.catchTags` for tag-based recovery.
899
+ * The `_tag` is excluded from the constructor argument.
900
+ *
901
+ * - Use for domain errors in Effect applications where you want
902
+ * discriminated-union error handling.
903
+ * - Yielding an instance inside `Effect.gen` fails the effect with this error.
731
904
  *
732
- * This constructor creates errors with a `_tag` property that are both
733
- * `Cause.YieldableError` and have structural equality semantics.
905
+ * **Example** (tag-based error recovery)
734
906
  *
735
- * @example
736
907
  * ```ts
737
- * import { Data, Effect, pipe } from "effect"
908
+ * import { Data, Effect } from "effect"
738
909
  *
739
- * class NetworkError extends Data.TaggedError("NetworkError")<{
740
- * code: number
741
- * message: string
910
+ * class NotFound extends Data.TaggedError("NotFound")<{
911
+ * readonly resource: string
742
912
  * }> {}
743
913
  *
744
- * class ValidationError extends Data.TaggedError("ValidationError")<{
745
- * field: string
746
- * message: string
914
+ * class Forbidden extends Data.TaggedError("Forbidden")<{
915
+ * readonly reason: string
747
916
  * }> {}
748
917
  *
749
918
  * const program = Effect.gen(function*() {
750
- * yield* new NetworkError({ code: 500, message: "Server error" })
919
+ * yield* new NotFound({ resource: "/users/42" })
751
920
  * })
752
921
  *
753
- * const result = pipe(
754
- * program,
755
- * Effect.catchTag(
756
- * "NetworkError",
757
- * (error) => Effect.succeed(`Network error: ${error.message}`)
758
- * )
922
+ * const recovered = program.pipe(
923
+ * Effect.catchTag("NotFound", (e) =>
924
+ * Effect.succeed(`missing: ${e.resource}`))
759
925
  * )
760
926
  * ```
761
927
  *
928
+ * @see {@link Error} — without a `_tag`
929
+ * @see {@link TaggedClass} — tagged class that is not an error
930
+ *
762
931
  * @category constructors
763
932
  * @since 2.0.0
764
933
  */
765
- export declare const TaggedError: <Tag extends string>(tag: Tag) => new <A extends Record<string, any> = {}>(args: Types.Equals<A, {}> extends true ? void : {
934
+ export declare const TaggedError: <Tag extends string>(tag: Tag) => new <A extends Record<string, any> = {}>(args: Types.VoidIfEmpty<{
766
935
  readonly [P in keyof A as P extends "_tag" ? never : P]: A[P];
767
- }) => Cause.YieldableError & {
936
+ }>) => Cause.YieldableError & {
768
937
  readonly _tag: Tag;
769
938
  } & Readonly<A>;
770
939
  export {};