effect 4.0.0-beta.4 → 4.0.0-beta.41

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 (1235) hide show
  1. package/dist/Array.d.ts +213 -385
  2. package/dist/Array.d.ts.map +1 -1
  3. package/dist/Array.js +149 -102
  4. package/dist/Array.js.map +1 -1
  5. package/dist/BigDecimal.d.ts +82 -45
  6. package/dist/BigDecimal.d.ts.map +1 -1
  7. package/dist/BigDecimal.js +87 -38
  8. package/dist/BigDecimal.js.map +1 -1
  9. package/dist/BigInt.d.ts +39 -32
  10. package/dist/BigInt.d.ts.map +1 -1
  11. package/dist/BigInt.js +32 -29
  12. package/dist/BigInt.js.map +1 -1
  13. package/dist/Brand.d.ts +1 -1
  14. package/dist/Brand.d.ts.map +1 -1
  15. package/dist/Brand.js +1 -1
  16. package/dist/Brand.js.map +1 -1
  17. package/dist/Cache.d.ts +2 -2
  18. package/dist/Cache.d.ts.map +1 -1
  19. package/dist/Cache.js +6 -5
  20. package/dist/Cache.js.map +1 -1
  21. package/dist/Cause.d.ts +33 -2
  22. package/dist/Cause.d.ts.map +1 -1
  23. package/dist/Cause.js +19 -0
  24. package/dist/Cause.js.map +1 -1
  25. package/dist/Channel.d.ts +130 -35
  26. package/dist/Channel.d.ts.map +1 -1
  27. package/dist/Channel.js +96 -45
  28. package/dist/Channel.js.map +1 -1
  29. package/dist/Chunk.d.ts +112 -304
  30. package/dist/Chunk.d.ts.map +1 -1
  31. package/dist/Chunk.js +56 -88
  32. package/dist/Chunk.js.map +1 -1
  33. package/dist/Combiner.d.ts +280 -13
  34. package/dist/Combiner.d.ts.map +1 -1
  35. package/dist/Combiner.js +198 -7
  36. package/dist/Combiner.js.map +1 -1
  37. package/dist/Config.d.ts +169 -9
  38. package/dist/Config.d.ts.map +1 -1
  39. package/dist/Config.js +69 -11
  40. package/dist/Config.js.map +1 -1
  41. package/dist/ConfigProvider.d.ts +1 -1
  42. package/dist/Cron.d.ts +11 -7
  43. package/dist/Cron.d.ts.map +1 -1
  44. package/dist/Cron.js +120 -63
  45. package/dist/Cron.js.map +1 -1
  46. package/dist/Data.d.ts +535 -366
  47. package/dist/Data.d.ts.map +1 -1
  48. package/dist/Data.js +132 -79
  49. package/dist/Data.js.map +1 -1
  50. package/dist/DateTime.d.ts +72 -253
  51. package/dist/DateTime.d.ts.map +1 -1
  52. package/dist/DateTime.js +15 -60
  53. package/dist/DateTime.js.map +1 -1
  54. package/dist/Deferred.d.ts +7 -5
  55. package/dist/Deferred.d.ts.map +1 -1
  56. package/dist/Deferred.js +7 -5
  57. package/dist/Deferred.js.map +1 -1
  58. package/dist/Duration.d.ts +62 -32
  59. package/dist/Duration.d.ts.map +1 -1
  60. package/dist/Duration.js +108 -78
  61. package/dist/Duration.js.map +1 -1
  62. package/dist/Effect.d.ts +1225 -951
  63. package/dist/Effect.d.ts.map +1 -1
  64. package/dist/Effect.js +398 -338
  65. package/dist/Effect.js.map +1 -1
  66. package/dist/Encoding.d.ts +194 -0
  67. package/dist/Encoding.d.ts.map +1 -0
  68. package/dist/Encoding.js +352 -0
  69. package/dist/Encoding.js.map +1 -0
  70. package/dist/Equal.d.ts +276 -109
  71. package/dist/Equal.d.ts.map +1 -1
  72. package/dist/Equal.js +124 -48
  73. package/dist/Equal.js.map +1 -1
  74. package/dist/Equivalence.d.ts +60 -3
  75. package/dist/Equivalence.d.ts.map +1 -1
  76. package/dist/Equivalence.js +70 -13
  77. package/dist/Equivalence.js.map +1 -1
  78. package/dist/ErrorReporter.d.ts +374 -0
  79. package/dist/ErrorReporter.d.ts.map +1 -0
  80. package/dist/ErrorReporter.js +245 -0
  81. package/dist/ErrorReporter.js.map +1 -0
  82. package/dist/Exit.d.ts +24 -12
  83. package/dist/Exit.d.ts.map +1 -1
  84. package/dist/Exit.js +8 -4
  85. package/dist/Exit.js.map +1 -1
  86. package/dist/Fiber.d.ts +5 -3
  87. package/dist/Fiber.d.ts.map +1 -1
  88. package/dist/Fiber.js.map +1 -1
  89. package/dist/FiberHandle.d.ts +9 -8
  90. package/dist/FiberHandle.d.ts.map +1 -1
  91. package/dist/FiberHandle.js +8 -7
  92. package/dist/FiberHandle.js.map +1 -1
  93. package/dist/FiberMap.d.ts +20 -19
  94. package/dist/FiberMap.d.ts.map +1 -1
  95. package/dist/FiberMap.js +6 -6
  96. package/dist/FiberMap.js.map +1 -1
  97. package/dist/FileSystem.d.ts +18 -17
  98. package/dist/FileSystem.d.ts.map +1 -1
  99. package/dist/FileSystem.js +17 -13
  100. package/dist/FileSystem.js.map +1 -1
  101. package/dist/Filter.d.ts +34 -38
  102. package/dist/Filter.d.ts.map +1 -1
  103. package/dist/Filter.js +15 -13
  104. package/dist/Filter.js.map +1 -1
  105. package/dist/Formatter.d.ts +131 -47
  106. package/dist/Formatter.d.ts.map +1 -1
  107. package/dist/Formatter.js +229 -51
  108. package/dist/Formatter.js.map +1 -1
  109. package/dist/Function.d.ts +1 -9
  110. package/dist/Function.d.ts.map +1 -1
  111. package/dist/Function.js +2 -10
  112. package/dist/Function.js.map +1 -1
  113. package/dist/Graph.d.ts +65 -65
  114. package/dist/Graph.d.ts.map +1 -1
  115. package/dist/Graph.js +60 -62
  116. package/dist/Graph.js.map +1 -1
  117. package/dist/HashMap.d.ts +26 -19
  118. package/dist/HashMap.d.ts.map +1 -1
  119. package/dist/HashMap.js +7 -5
  120. package/dist/HashMap.js.map +1 -1
  121. package/dist/Iterable.d.ts +50 -50
  122. package/dist/Iterable.d.ts.map +1 -1
  123. package/dist/Iterable.js +106 -34
  124. package/dist/Iterable.js.map +1 -1
  125. package/dist/JsonSchema.d.ts +299 -10
  126. package/dist/JsonSchema.d.ts.map +1 -1
  127. package/dist/JsonSchema.js +323 -4
  128. package/dist/JsonSchema.js.map +1 -1
  129. package/dist/Latch.d.ts +175 -0
  130. package/dist/Latch.d.ts.map +1 -0
  131. package/dist/Latch.js +130 -0
  132. package/dist/Latch.js.map +1 -0
  133. package/dist/Layer.d.ts +306 -129
  134. package/dist/Layer.d.ts.map +1 -1
  135. package/dist/Layer.js +93 -48
  136. package/dist/Layer.js.map +1 -1
  137. package/dist/LayerMap.d.ts +9 -8
  138. package/dist/LayerMap.d.ts.map +1 -1
  139. package/dist/LayerMap.js +3 -3
  140. package/dist/LayerMap.js.map +1 -1
  141. package/dist/LogLevel.d.ts +32 -0
  142. package/dist/LogLevel.d.ts.map +1 -1
  143. package/dist/LogLevel.js +28 -100
  144. package/dist/LogLevel.js.map +1 -1
  145. package/dist/Logger.d.ts +29 -95
  146. package/dist/Logger.d.ts.map +1 -1
  147. package/dist/Logger.js +2 -3
  148. package/dist/Logger.js.map +1 -1
  149. package/dist/ManagedRuntime.d.ts +2 -2
  150. package/dist/ManagedRuntime.d.ts.map +1 -1
  151. package/dist/ManagedRuntime.js +21 -9
  152. package/dist/ManagedRuntime.js.map +1 -1
  153. package/dist/Metric.d.ts +4 -6
  154. package/dist/Metric.d.ts.map +1 -1
  155. package/dist/Metric.js +3 -5
  156. package/dist/Metric.js.map +1 -1
  157. package/dist/MutableHashMap.d.ts +7 -0
  158. package/dist/MutableHashMap.d.ts.map +1 -1
  159. package/dist/MutableHashMap.js +8 -0
  160. package/dist/MutableHashMap.js.map +1 -1
  161. package/dist/MutableHashSet.d.ts +7 -0
  162. package/dist/MutableHashSet.d.ts.map +1 -1
  163. package/dist/MutableHashSet.js +8 -0
  164. package/dist/MutableHashSet.js.map +1 -1
  165. package/dist/Newtype.d.ts +291 -0
  166. package/dist/Newtype.d.ts.map +1 -0
  167. package/dist/Newtype.js +161 -0
  168. package/dist/Newtype.js.map +1 -0
  169. package/dist/Number.d.ts +74 -18
  170. package/dist/Number.d.ts.map +1 -1
  171. package/dist/Number.js +34 -15
  172. package/dist/Number.js.map +1 -1
  173. package/dist/Optic.d.ts +947 -18
  174. package/dist/Optic.d.ts.map +1 -1
  175. package/dist/Optic.js +454 -5
  176. package/dist/Optic.js.map +1 -1
  177. package/dist/Option.d.ts +25 -16
  178. package/dist/Option.d.ts.map +1 -1
  179. package/dist/Option.js +15 -9
  180. package/dist/Option.js.map +1 -1
  181. package/dist/Order.d.ts +6 -1
  182. package/dist/Order.d.ts.map +1 -1
  183. package/dist/Order.js +19 -14
  184. package/dist/Order.js.map +1 -1
  185. package/dist/PartitionedSemaphore.d.ts +146 -15
  186. package/dist/PartitionedSemaphore.d.ts.map +1 -1
  187. package/dist/PartitionedSemaphore.js +174 -61
  188. package/dist/PartitionedSemaphore.js.map +1 -1
  189. package/dist/Pipeable.d.ts +17 -0
  190. package/dist/Pipeable.d.ts.map +1 -1
  191. package/dist/Pipeable.js +19 -1
  192. package/dist/Pipeable.js.map +1 -1
  193. package/dist/PlatformError.d.ts +10 -9
  194. package/dist/PlatformError.d.ts.map +1 -1
  195. package/dist/PlatformError.js +2 -2
  196. package/dist/PlatformError.js.map +1 -1
  197. package/dist/Pool.d.ts +6 -4
  198. package/dist/Pool.d.ts.map +1 -1
  199. package/dist/Pool.js +7 -5
  200. package/dist/Pool.js.map +1 -1
  201. package/dist/PubSub.d.ts +8 -6
  202. package/dist/PubSub.d.ts.map +1 -1
  203. package/dist/PubSub.js +18 -10
  204. package/dist/PubSub.js.map +1 -1
  205. package/dist/Pull.d.ts.map +1 -1
  206. package/dist/Pull.js +1 -1
  207. package/dist/Pull.js.map +1 -1
  208. package/dist/Queue.d.ts +9 -6
  209. package/dist/Queue.d.ts.map +1 -1
  210. package/dist/Queue.js +7 -5
  211. package/dist/Queue.js.map +1 -1
  212. package/dist/Random.d.ts +35 -1
  213. package/dist/Random.d.ts.map +1 -1
  214. package/dist/Random.js +46 -12
  215. package/dist/Random.js.map +1 -1
  216. package/dist/RcMap.d.ts +2 -2
  217. package/dist/RcMap.d.ts.map +1 -1
  218. package/dist/RcMap.js +1 -1
  219. package/dist/RcMap.js.map +1 -1
  220. package/dist/RcRef.d.ts +1 -1
  221. package/dist/RcRef.d.ts.map +1 -1
  222. package/dist/Record.d.ts +63 -160
  223. package/dist/Record.d.ts.map +1 -1
  224. package/dist/Record.js +37 -56
  225. package/dist/Record.js.map +1 -1
  226. package/dist/Reducer.d.ts +166 -7
  227. package/dist/Reducer.d.ts.map +1 -1
  228. package/dist/Reducer.js +135 -1
  229. package/dist/Reducer.js.map +1 -1
  230. package/dist/References.d.ts +242 -226
  231. package/dist/References.d.ts.map +1 -1
  232. package/dist/References.js +240 -247
  233. package/dist/References.js.map +1 -1
  234. package/dist/Request.d.ts +1 -1
  235. package/dist/Request.d.ts.map +1 -1
  236. package/dist/Request.js +2 -1
  237. package/dist/Request.js.map +1 -1
  238. package/dist/RequestResolver.d.ts +25 -45
  239. package/dist/RequestResolver.d.ts.map +1 -1
  240. package/dist/RequestResolver.js +10 -30
  241. package/dist/RequestResolver.js.map +1 -1
  242. package/dist/Resource.d.ts.map +1 -1
  243. package/dist/Resource.js +2 -1
  244. package/dist/Resource.js.map +1 -1
  245. package/dist/Result.d.ts +1 -1
  246. package/dist/Result.d.ts.map +1 -1
  247. package/dist/Result.js +1 -2
  248. package/dist/Result.js.map +1 -1
  249. package/dist/Runtime.d.ts +66 -0
  250. package/dist/Runtime.d.ts.map +1 -1
  251. package/dist/Runtime.js +79 -6
  252. package/dist/Runtime.js.map +1 -1
  253. package/dist/Schedule.d.ts +174 -291
  254. package/dist/Schedule.d.ts.map +1 -1
  255. package/dist/Schedule.js +160 -134
  256. package/dist/Schedule.js.map +1 -1
  257. package/dist/Scheduler.d.ts +34 -123
  258. package/dist/Scheduler.d.ts.map +1 -1
  259. package/dist/Scheduler.js +31 -123
  260. package/dist/Scheduler.js.map +1 -1
  261. package/dist/Schema.d.ts +2722 -247
  262. package/dist/Schema.d.ts.map +1 -1
  263. package/dist/Schema.js +1947 -224
  264. package/dist/Schema.js.map +1 -1
  265. package/dist/SchemaAST.d.ts +7 -2
  266. package/dist/SchemaAST.d.ts.map +1 -1
  267. package/dist/SchemaAST.js +131 -25
  268. package/dist/SchemaAST.js.map +1 -1
  269. package/dist/SchemaGetter.d.ts +5 -5
  270. package/dist/SchemaGetter.d.ts.map +1 -1
  271. package/dist/SchemaGetter.js +18 -18
  272. package/dist/SchemaGetter.js.map +1 -1
  273. package/dist/SchemaParser.d.ts +44 -54
  274. package/dist/SchemaParser.d.ts.map +1 -1
  275. package/dist/SchemaParser.js +55 -2
  276. package/dist/SchemaParser.js.map +1 -1
  277. package/dist/SchemaRepresentation.d.ts +46 -45
  278. package/dist/SchemaRepresentation.d.ts.map +1 -1
  279. package/dist/SchemaRepresentation.js +49 -24
  280. package/dist/SchemaRepresentation.js.map +1 -1
  281. package/dist/SchemaTransformation.d.ts +107 -3
  282. package/dist/SchemaTransformation.d.ts.map +1 -1
  283. package/dist/SchemaTransformation.js +173 -13
  284. package/dist/SchemaTransformation.js.map +1 -1
  285. package/dist/ScopedCache.d.ts +2 -2
  286. package/dist/ScopedCache.d.ts.map +1 -1
  287. package/dist/ScopedCache.js +1 -1
  288. package/dist/ScopedCache.js.map +1 -1
  289. package/dist/Semaphore.d.ts +307 -0
  290. package/dist/Semaphore.d.ts.map +1 -0
  291. package/dist/Semaphore.js +222 -0
  292. package/dist/Semaphore.js.map +1 -0
  293. package/dist/ServiceMap.d.ts +76 -52
  294. package/dist/ServiceMap.d.ts.map +1 -1
  295. package/dist/ServiceMap.js +45 -29
  296. package/dist/ServiceMap.js.map +1 -1
  297. package/dist/Sink.d.ts +18 -15
  298. package/dist/Sink.d.ts.map +1 -1
  299. package/dist/Sink.js +53 -6
  300. package/dist/Sink.js.map +1 -1
  301. package/dist/Stdio.d.ts +16 -4
  302. package/dist/Stdio.d.ts.map +1 -1
  303. package/dist/Stdio.js +18 -0
  304. package/dist/Stdio.js.map +1 -1
  305. package/dist/Stream.d.ts +284 -431
  306. package/dist/Stream.d.ts.map +1 -1
  307. package/dist/Stream.js +189 -88
  308. package/dist/Stream.js.map +1 -1
  309. package/dist/String.d.ts +114 -47
  310. package/dist/String.d.ts.map +1 -1
  311. package/dist/String.js +29 -47
  312. package/dist/String.js.map +1 -1
  313. package/dist/Struct.d.ts +23 -7
  314. package/dist/Struct.d.ts.map +1 -1
  315. package/dist/Struct.js +22 -0
  316. package/dist/Struct.js.map +1 -1
  317. package/dist/SubscriptionRef.d.ts +3 -3
  318. package/dist/SubscriptionRef.d.ts.map +1 -1
  319. package/dist/SubscriptionRef.js +85 -117
  320. package/dist/SubscriptionRef.js.map +1 -1
  321. package/dist/SynchronizedRef.d.ts +2 -1
  322. package/dist/SynchronizedRef.d.ts.map +1 -1
  323. package/dist/SynchronizedRef.js +2 -1
  324. package/dist/SynchronizedRef.js.map +1 -1
  325. package/dist/Terminal.d.ts +2 -1
  326. package/dist/Terminal.d.ts.map +1 -1
  327. package/dist/Terminal.js.map +1 -1
  328. package/dist/Tracer.d.ts +5 -4
  329. package/dist/Tracer.d.ts.map +1 -1
  330. package/dist/Tracer.js +2 -1
  331. package/dist/Tracer.js.map +1 -1
  332. package/dist/Trie.d.ts +44 -31
  333. package/dist/Trie.d.ts.map +1 -1
  334. package/dist/Trie.js +13 -9
  335. package/dist/Trie.js.map +1 -1
  336. package/dist/TxChunk.d.ts +37 -37
  337. package/dist/TxChunk.d.ts.map +1 -1
  338. package/dist/TxChunk.js +3 -3
  339. package/dist/TxChunk.js.map +1 -1
  340. package/dist/TxDeferred.d.ts +328 -0
  341. package/dist/TxDeferred.d.ts.map +1 -0
  342. package/dist/TxDeferred.js +197 -0
  343. package/dist/TxDeferred.js.map +1 -0
  344. package/dist/TxHashMap.d.ts +159 -140
  345. package/dist/TxHashMap.d.ts.map +1 -1
  346. package/dist/TxHashMap.js +51 -44
  347. package/dist/TxHashMap.js.map +1 -1
  348. package/dist/TxHashSet.d.ts +36 -36
  349. package/dist/TxHashSet.d.ts.map +1 -1
  350. package/dist/TxHashSet.js +16 -15
  351. package/dist/TxHashSet.js.map +1 -1
  352. package/dist/TxPriorityQueue.d.ts +609 -0
  353. package/dist/TxPriorityQueue.d.ts.map +1 -0
  354. package/dist/TxPriorityQueue.js +416 -0
  355. package/dist/TxPriorityQueue.js.map +1 -0
  356. package/dist/TxPubSub.d.ts +585 -0
  357. package/dist/TxPubSub.d.ts.map +1 -0
  358. package/dist/TxPubSub.js +521 -0
  359. package/dist/TxPubSub.js.map +1 -0
  360. package/dist/TxQueue.d.ts +32 -32
  361. package/dist/TxQueue.d.ts.map +1 -1
  362. package/dist/TxQueue.js +26 -26
  363. package/dist/TxQueue.js.map +1 -1
  364. package/dist/TxReentrantLock.d.ts +523 -0
  365. package/dist/TxReentrantLock.d.ts.map +1 -0
  366. package/dist/TxReentrantLock.js +504 -0
  367. package/dist/TxReentrantLock.js.map +1 -0
  368. package/dist/TxRef.d.ts +34 -34
  369. package/dist/TxRef.d.ts.map +1 -1
  370. package/dist/TxRef.js +21 -14
  371. package/dist/TxRef.js.map +1 -1
  372. package/dist/TxSemaphore.d.ts +170 -10
  373. package/dist/TxSemaphore.d.ts.map +1 -1
  374. package/dist/TxSemaphore.js +23 -8
  375. package/dist/TxSemaphore.js.map +1 -1
  376. package/dist/TxSubscriptionRef.d.ts +508 -0
  377. package/dist/TxSubscriptionRef.d.ts.map +1 -0
  378. package/dist/TxSubscriptionRef.js +293 -0
  379. package/dist/TxSubscriptionRef.js.map +1 -0
  380. package/dist/Types.d.ts +80 -23
  381. package/dist/Types.d.ts.map +1 -1
  382. package/dist/Utils.d.ts +137 -65
  383. package/dist/Utils.d.ts.map +1 -1
  384. package/dist/Utils.js +38 -66
  385. package/dist/Utils.js.map +1 -1
  386. package/dist/index.d.ts +806 -55
  387. package/dist/index.d.ts.map +1 -1
  388. package/dist/index.js +806 -55
  389. package/dist/index.js.map +1 -1
  390. package/dist/internal/core.js +11 -3
  391. package/dist/internal/core.js.map +1 -1
  392. package/dist/internal/dateTime.js +77 -71
  393. package/dist/internal/dateTime.js.map +1 -1
  394. package/dist/internal/effect.js +284 -201
  395. package/dist/internal/effect.js.map +1 -1
  396. package/dist/internal/hashMap.js +7 -5
  397. package/dist/internal/hashMap.js.map +1 -1
  398. package/dist/internal/option.js +6 -0
  399. package/dist/internal/option.js.map +1 -1
  400. package/dist/internal/random.d.ts +2 -0
  401. package/dist/internal/random.d.ts.map +1 -0
  402. package/dist/internal/random.js +13 -0
  403. package/dist/internal/random.js.map +1 -0
  404. package/dist/internal/rcRef.js +3 -2
  405. package/dist/internal/rcRef.js.map +1 -1
  406. package/dist/internal/references.d.ts +2 -0
  407. package/dist/internal/references.d.ts.map +1 -0
  408. package/dist/internal/references.js +51 -0
  409. package/dist/internal/references.js.map +1 -0
  410. package/dist/internal/request.js +2 -2
  411. package/dist/internal/request.js.map +1 -1
  412. package/dist/internal/schema/annotations.js +2 -0
  413. package/dist/internal/schema/annotations.js.map +1 -1
  414. package/dist/internal/schema/representation.js +75 -106
  415. package/dist/internal/schema/representation.js.map +1 -1
  416. package/dist/internal/schema/schema.js +1 -0
  417. package/dist/internal/schema/schema.js.map +1 -1
  418. package/dist/internal/schema/to-codec.js +7 -10
  419. package/dist/internal/schema/to-codec.js.map +1 -1
  420. package/dist/internal/trie.js +8 -7
  421. package/dist/internal/trie.js.map +1 -1
  422. package/dist/testing/TestClock.d.ts +8 -7
  423. package/dist/testing/TestClock.d.ts.map +1 -1
  424. package/dist/testing/TestClock.js +6 -4
  425. package/dist/testing/TestClock.js.map +1 -1
  426. package/dist/testing/TestSchema.d.ts +266 -32
  427. package/dist/testing/TestSchema.d.ts.map +1 -1
  428. package/dist/testing/TestSchema.js +296 -23
  429. package/dist/testing/TestSchema.js.map +1 -1
  430. package/dist/testing/index.d.ts +64 -1
  431. package/dist/testing/index.d.ts.map +1 -1
  432. package/dist/testing/index.js +64 -1
  433. package/dist/testing/index.js.map +1 -1
  434. package/dist/unstable/ai/AiError.d.ts +136 -54
  435. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  436. package/dist/unstable/ai/AiError.js +28 -23
  437. package/dist/unstable/ai/AiError.js.map +1 -1
  438. package/dist/unstable/ai/AnthropicStructuredOutput.d.ts.map +1 -1
  439. package/dist/unstable/ai/AnthropicStructuredOutput.js +4 -0
  440. package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
  441. package/dist/unstable/ai/Chat.d.ts +35 -7
  442. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  443. package/dist/unstable/ai/Chat.js +38 -44
  444. package/dist/unstable/ai/Chat.js.map +1 -1
  445. package/dist/unstable/ai/EmbeddingModel.d.ts +130 -0
  446. package/dist/unstable/ai/EmbeddingModel.d.ts.map +1 -0
  447. package/dist/unstable/ai/EmbeddingModel.js +127 -0
  448. package/dist/unstable/ai/EmbeddingModel.js.map +1 -0
  449. package/dist/unstable/ai/LanguageModel.d.ts +117 -47
  450. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  451. package/dist/unstable/ai/LanguageModel.js +258 -59
  452. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  453. package/dist/unstable/ai/McpSchema.d.ts +183 -88
  454. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  455. package/dist/unstable/ai/McpSchema.js +57 -12
  456. package/dist/unstable/ai/McpSchema.js.map +1 -1
  457. package/dist/unstable/ai/McpServer.d.ts +66 -13
  458. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  459. package/dist/unstable/ai/McpServer.js +193 -51
  460. package/dist/unstable/ai/McpServer.js.map +1 -1
  461. package/dist/unstable/ai/Model.d.ts +25 -7
  462. package/dist/unstable/ai/Model.d.ts.map +1 -1
  463. package/dist/unstable/ai/Model.js +22 -6
  464. package/dist/unstable/ai/Model.js.map +1 -1
  465. package/dist/unstable/ai/OpenAiStructuredOutput.d.ts.map +1 -1
  466. package/dist/unstable/ai/OpenAiStructuredOutput.js +4 -0
  467. package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
  468. package/dist/unstable/ai/Prompt.d.ts +20 -20
  469. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  470. package/dist/unstable/ai/Response.d.ts +26 -26
  471. package/dist/unstable/ai/Response.d.ts.map +1 -1
  472. package/dist/unstable/ai/Response.js +1 -1
  473. package/dist/unstable/ai/Response.js.map +1 -1
  474. package/dist/unstable/ai/ResponseIdTracker.d.ts +38 -0
  475. package/dist/unstable/ai/ResponseIdTracker.d.ts.map +1 -0
  476. package/dist/unstable/ai/ResponseIdTracker.js +68 -0
  477. package/dist/unstable/ai/ResponseIdTracker.js.map +1 -0
  478. package/dist/unstable/ai/Tool.d.ts +34 -4
  479. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  480. package/dist/unstable/ai/Tool.js +28 -10
  481. package/dist/unstable/ai/Tool.js.map +1 -1
  482. package/dist/unstable/ai/Toolkit.d.ts +1 -1
  483. package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
  484. package/dist/unstable/ai/Toolkit.js +4 -11
  485. package/dist/unstable/ai/Toolkit.js.map +1 -1
  486. package/dist/unstable/ai/index.d.ts +22 -1
  487. package/dist/unstable/ai/index.d.ts.map +1 -1
  488. package/dist/unstable/ai/index.js +22 -1
  489. package/dist/unstable/ai/index.js.map +1 -1
  490. package/dist/unstable/ai/internal/codec-transformer.js +0 -5
  491. package/dist/unstable/ai/internal/codec-transformer.js.map +1 -1
  492. package/dist/unstable/cli/Argument.d.ts +2 -4
  493. package/dist/unstable/cli/Argument.d.ts.map +1 -1
  494. package/dist/unstable/cli/Argument.js +1 -3
  495. package/dist/unstable/cli/Argument.js.map +1 -1
  496. package/dist/unstable/cli/CliError.d.ts +27 -60
  497. package/dist/unstable/cli/CliError.d.ts.map +1 -1
  498. package/dist/unstable/cli/CliError.js +25 -57
  499. package/dist/unstable/cli/CliError.js.map +1 -1
  500. package/dist/unstable/cli/CliOutput.d.ts +3 -2
  501. package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
  502. package/dist/unstable/cli/CliOutput.js +65 -10
  503. package/dist/unstable/cli/CliOutput.js.map +1 -1
  504. package/dist/unstable/cli/Command.d.ts +371 -58
  505. package/dist/unstable/cli/Command.d.ts.map +1 -1
  506. package/dist/unstable/cli/Command.js +328 -67
  507. package/dist/unstable/cli/Command.js.map +1 -1
  508. package/dist/unstable/cli/Completions.d.ts +16 -0
  509. package/dist/unstable/cli/Completions.d.ts.map +1 -0
  510. package/dist/unstable/cli/Completions.js +23 -0
  511. package/dist/unstable/cli/Completions.js.map +1 -0
  512. package/dist/unstable/cli/Flag.d.ts +2 -2
  513. package/dist/unstable/cli/Flag.d.ts.map +1 -1
  514. package/dist/unstable/cli/Flag.js +1 -1
  515. package/dist/unstable/cli/Flag.js.map +1 -1
  516. package/dist/unstable/cli/GlobalFlag.d.ts +125 -0
  517. package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -0
  518. package/dist/unstable/cli/GlobalFlag.js +118 -0
  519. package/dist/unstable/cli/GlobalFlag.js.map +1 -0
  520. package/dist/unstable/cli/HelpDoc.d.ts +81 -11
  521. package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
  522. package/dist/unstable/cli/Param.d.ts +4 -4
  523. package/dist/unstable/cli/Param.d.ts.map +1 -1
  524. package/dist/unstable/cli/Param.js +7 -7
  525. package/dist/unstable/cli/Param.js.map +1 -1
  526. package/dist/unstable/cli/Primitive.d.ts +2 -2
  527. package/dist/unstable/cli/Primitive.d.ts.map +1 -1
  528. package/dist/unstable/cli/Primitive.js +1 -1
  529. package/dist/unstable/cli/Primitive.js.map +1 -1
  530. package/dist/unstable/cli/Prompt.js +259 -85
  531. package/dist/unstable/cli/Prompt.js.map +1 -1
  532. package/dist/unstable/cli/index.d.ts +8 -0
  533. package/dist/unstable/cli/index.d.ts.map +1 -1
  534. package/dist/unstable/cli/index.js +8 -0
  535. package/dist/unstable/cli/index.js.map +1 -1
  536. package/dist/unstable/cli/internal/command.d.ts +40 -14
  537. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  538. package/dist/unstable/cli/internal/command.js +72 -46
  539. package/dist/unstable/cli/internal/command.js.map +1 -1
  540. package/dist/unstable/cli/internal/completions/CommandDescriptor.js +16 -4
  541. package/dist/unstable/cli/internal/completions/CommandDescriptor.js.map +1 -1
  542. package/dist/unstable/cli/internal/config.js +42 -0
  543. package/dist/unstable/cli/internal/config.js.map +1 -1
  544. package/dist/unstable/cli/internal/help.d.ts +33 -0
  545. package/dist/unstable/cli/internal/help.d.ts.map +1 -0
  546. package/dist/unstable/cli/internal/help.js +125 -0
  547. package/dist/unstable/cli/internal/help.js.map +1 -0
  548. package/dist/unstable/cli/internal/parser.js +61 -43
  549. package/dist/unstable/cli/internal/parser.js.map +1 -1
  550. package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
  551. package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
  552. package/dist/unstable/cluster/ClusterCron.js +1 -1
  553. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  554. package/dist/unstable/cluster/ClusterSchema.d.ts +18 -0
  555. package/dist/unstable/cluster/ClusterSchema.d.ts.map +1 -1
  556. package/dist/unstable/cluster/ClusterSchema.js +21 -1
  557. package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
  558. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts +3 -2
  559. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  560. package/dist/unstable/cluster/ClusterWorkflowEngine.js +35 -29
  561. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  562. package/dist/unstable/cluster/DeliverAt.js +1 -1
  563. package/dist/unstable/cluster/DeliverAt.js.map +1 -1
  564. package/dist/unstable/cluster/Entity.d.ts +10 -8
  565. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  566. package/dist/unstable/cluster/Entity.js +8 -7
  567. package/dist/unstable/cluster/Entity.js.map +1 -1
  568. package/dist/unstable/cluster/EntityAddress.d.ts.map +1 -1
  569. package/dist/unstable/cluster/EntityAddress.js +1 -1
  570. package/dist/unstable/cluster/EntityAddress.js.map +1 -1
  571. package/dist/unstable/cluster/EntityResource.d.ts +2 -2
  572. package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
  573. package/dist/unstable/cluster/Envelope.d.ts +1 -1
  574. package/dist/unstable/cluster/K8sHttpClient.d.ts +1 -1
  575. package/dist/unstable/cluster/K8sHttpClient.js +4 -4
  576. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  577. package/dist/unstable/cluster/Message.d.ts +18 -15
  578. package/dist/unstable/cluster/Message.d.ts.map +1 -1
  579. package/dist/unstable/cluster/Message.js +15 -7
  580. package/dist/unstable/cluster/Message.js.map +1 -1
  581. package/dist/unstable/cluster/MessageStorage.d.ts +33 -10
  582. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  583. package/dist/unstable/cluster/MessageStorage.js +36 -20
  584. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  585. package/dist/unstable/cluster/Reply.d.ts +8 -7
  586. package/dist/unstable/cluster/Reply.d.ts.map +1 -1
  587. package/dist/unstable/cluster/Reply.js +4 -3
  588. package/dist/unstable/cluster/Reply.js.map +1 -1
  589. package/dist/unstable/cluster/Runner.d.ts +1 -1
  590. package/dist/unstable/cluster/Runner.d.ts.map +1 -1
  591. package/dist/unstable/cluster/Runner.js +1 -1
  592. package/dist/unstable/cluster/Runner.js.map +1 -1
  593. package/dist/unstable/cluster/RunnerAddress.d.ts.map +1 -1
  594. package/dist/unstable/cluster/RunnerAddress.js +1 -1
  595. package/dist/unstable/cluster/RunnerAddress.js.map +1 -1
  596. package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
  597. package/dist/unstable/cluster/RunnerServer.js +9 -8
  598. package/dist/unstable/cluster/RunnerServer.js.map +1 -1
  599. package/dist/unstable/cluster/Runners.d.ts +2 -1
  600. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  601. package/dist/unstable/cluster/Runners.js +11 -9
  602. package/dist/unstable/cluster/Runners.js.map +1 -1
  603. package/dist/unstable/cluster/ShardId.js +3 -3
  604. package/dist/unstable/cluster/ShardId.js.map +1 -1
  605. package/dist/unstable/cluster/Sharding.d.ts +2 -2
  606. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  607. package/dist/unstable/cluster/Sharding.js +51 -39
  608. package/dist/unstable/cluster/Sharding.js.map +1 -1
  609. package/dist/unstable/cluster/ShardingConfig.d.ts +26 -25
  610. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  611. package/dist/unstable/cluster/ShardingConfig.js +24 -24
  612. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  613. package/dist/unstable/cluster/SqlMessageStorage.d.ts.map +1 -1
  614. package/dist/unstable/cluster/SqlMessageStorage.js +25 -19
  615. package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
  616. package/dist/unstable/cluster/SqlRunnerStorage.js +1 -1
  617. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  618. package/dist/unstable/cluster/internal/entityManager.js +24 -18
  619. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  620. package/dist/unstable/cluster/internal/entityReaper.js +2 -1
  621. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  622. package/dist/unstable/cluster/internal/resourceRef.js +2 -1
  623. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  624. package/dist/unstable/devtools/DevToolsClient.d.ts.map +1 -1
  625. package/dist/unstable/devtools/DevToolsClient.js +4 -3
  626. package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
  627. package/dist/unstable/devtools/DevToolsSchema.d.ts +40 -40
  628. package/dist/unstable/devtools/DevToolsSchema.d.ts.map +1 -1
  629. package/dist/unstable/devtools/DevToolsSchema.js +9 -2
  630. package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
  631. package/dist/unstable/encoding/Msgpack.d.ts +1 -1
  632. package/dist/unstable/encoding/Ndjson.d.ts +9 -9
  633. package/dist/unstable/encoding/Ndjson.d.ts.map +1 -1
  634. package/dist/unstable/encoding/Ndjson.js.map +1 -1
  635. package/dist/unstable/encoding/Sse.d.ts +4 -4
  636. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  637. package/dist/unstable/encoding/Sse.js +1 -1
  638. package/dist/unstable/encoding/Sse.js.map +1 -1
  639. package/dist/unstable/eventlog/EventJournal.d.ts +2 -2
  640. package/dist/unstable/eventlog/EventJournal.js +2 -2
  641. package/dist/unstable/eventlog/EventJournal.js.map +1 -1
  642. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  643. package/dist/unstable/eventlog/EventLog.js +3 -2
  644. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  645. package/dist/unstable/eventlog/EventLogRemote.d.ts +6 -6
  646. package/dist/unstable/eventlog/SqlEventLogJournal.js +2 -2
  647. package/dist/unstable/eventlog/SqlEventLogJournal.js.map +1 -1
  648. package/dist/unstable/http/Cookies.d.ts +52 -7
  649. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  650. package/dist/unstable/http/Cookies.js +27 -6
  651. package/dist/unstable/http/Cookies.js.map +1 -1
  652. package/dist/unstable/http/Etag.d.ts.map +1 -1
  653. package/dist/unstable/http/Etag.js +5 -1
  654. package/dist/unstable/http/Etag.js.map +1 -1
  655. package/dist/unstable/http/Headers.d.ts +19 -2
  656. package/dist/unstable/http/Headers.d.ts.map +1 -1
  657. package/dist/unstable/http/Headers.js +40 -11
  658. package/dist/unstable/http/Headers.js.map +1 -1
  659. package/dist/unstable/http/HttpBody.d.ts +1 -1
  660. package/dist/unstable/http/HttpClient.d.ts +117 -15
  661. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  662. package/dist/unstable/http/HttpClient.js +191 -13
  663. package/dist/unstable/http/HttpClient.js.map +1 -1
  664. package/dist/unstable/http/HttpClientError.d.ts +7 -7
  665. package/dist/unstable/http/HttpClientRequest.d.ts +43 -15
  666. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  667. package/dist/unstable/http/HttpClientRequest.js +131 -21
  668. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  669. package/dist/unstable/http/HttpClientResponse.d.ts +2 -1
  670. package/dist/unstable/http/HttpClientResponse.d.ts.map +1 -1
  671. package/dist/unstable/http/HttpClientResponse.js +6 -1
  672. package/dist/unstable/http/HttpClientResponse.js.map +1 -1
  673. package/dist/unstable/http/HttpEffect.d.ts +7 -5
  674. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  675. package/dist/unstable/http/HttpEffect.js +46 -54
  676. package/dist/unstable/http/HttpEffect.js.map +1 -1
  677. package/dist/unstable/http/HttpIncomingMessage.d.ts +3 -2
  678. package/dist/unstable/http/HttpIncomingMessage.d.ts.map +1 -1
  679. package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
  680. package/dist/unstable/http/HttpMethod.d.ts +4 -4
  681. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  682. package/dist/unstable/http/HttpMethod.js +3 -3
  683. package/dist/unstable/http/HttpMethod.js.map +1 -1
  684. package/dist/unstable/http/HttpMiddleware.d.ts +1 -6
  685. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  686. package/dist/unstable/http/HttpMiddleware.js +24 -32
  687. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  688. package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
  689. package/dist/unstable/http/HttpPlatform.js +3 -2
  690. package/dist/unstable/http/HttpPlatform.js.map +1 -1
  691. package/dist/unstable/http/HttpRouter.d.ts +2 -1
  692. package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
  693. package/dist/unstable/http/HttpRouter.js +7 -7
  694. package/dist/unstable/http/HttpRouter.js.map +1 -1
  695. package/dist/unstable/http/HttpServer.d.ts.map +1 -1
  696. package/dist/unstable/http/HttpServer.js +2 -2
  697. package/dist/unstable/http/HttpServer.js.map +1 -1
  698. package/dist/unstable/http/HttpServerError.d.ts +22 -34
  699. package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
  700. package/dist/unstable/http/HttpServerError.js +39 -45
  701. package/dist/unstable/http/HttpServerError.js.map +1 -1
  702. package/dist/unstable/http/HttpServerRequest.d.ts +15 -3
  703. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  704. package/dist/unstable/http/HttpServerRequest.js +301 -7
  705. package/dist/unstable/http/HttpServerRequest.js.map +1 -1
  706. package/dist/unstable/http/HttpServerRespondable.d.ts +2 -2
  707. package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
  708. package/dist/unstable/http/HttpServerRespondable.js +5 -5
  709. package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
  710. package/dist/unstable/http/HttpServerResponse.d.ts +50 -3
  711. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  712. package/dist/unstable/http/HttpServerResponse.js +236 -1
  713. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  714. package/dist/unstable/http/HttpStaticServer.d.ts +69 -0
  715. package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -0
  716. package/dist/unstable/http/HttpStaticServer.js +353 -0
  717. package/dist/unstable/http/HttpStaticServer.js.map +1 -0
  718. package/dist/unstable/http/HttpTraceContext.d.ts +3 -2
  719. package/dist/unstable/http/HttpTraceContext.d.ts.map +1 -1
  720. package/dist/unstable/http/HttpTraceContext.js +27 -15
  721. package/dist/unstable/http/HttpTraceContext.js.map +1 -1
  722. package/dist/unstable/http/Multipart.d.ts +3 -3
  723. package/dist/unstable/http/Url.d.ts +604 -0
  724. package/dist/unstable/http/Url.d.ts.map +1 -0
  725. package/dist/unstable/http/Url.js +256 -0
  726. package/dist/unstable/http/Url.js.map +1 -0
  727. package/dist/unstable/http/UrlParams.d.ts +19 -10
  728. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  729. package/dist/unstable/http/UrlParams.js +6 -7
  730. package/dist/unstable/http/UrlParams.js.map +1 -1
  731. package/dist/unstable/http/index.d.ts +8 -0
  732. package/dist/unstable/http/index.d.ts.map +1 -1
  733. package/dist/unstable/http/index.js +8 -0
  734. package/dist/unstable/http/index.js.map +1 -1
  735. package/dist/unstable/http/internal/preResponseHandler.d.ts +2 -0
  736. package/dist/unstable/http/internal/preResponseHandler.d.ts.map +1 -0
  737. package/dist/unstable/http/internal/preResponseHandler.js +10 -0
  738. package/dist/unstable/http/internal/preResponseHandler.js.map +1 -0
  739. package/dist/unstable/httpapi/HttpApi.d.ts +4 -4
  740. package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
  741. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  742. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +11 -5
  743. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  744. package/dist/unstable/httpapi/HttpApiBuilder.js +40 -27
  745. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  746. package/dist/unstable/httpapi/HttpApiClient.d.ts +83 -7
  747. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  748. package/dist/unstable/httpapi/HttpApiClient.js +78 -10
  749. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  750. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +207 -101
  751. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  752. package/dist/unstable/httpapi/HttpApiEndpoint.js +49 -43
  753. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  754. package/dist/unstable/httpapi/HttpApiError.d.ts +31 -14
  755. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  756. package/dist/unstable/httpapi/HttpApiError.js +125 -32
  757. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  758. package/dist/unstable/httpapi/HttpApiGroup.d.ts +4 -3
  759. package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
  760. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  761. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +46 -15
  762. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  763. package/dist/unstable/httpapi/HttpApiMiddleware.js +32 -3
  764. package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
  765. package/dist/unstable/httpapi/HttpApiScalar.d.ts +6 -0
  766. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  767. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  768. package/dist/unstable/httpapi/HttpApiSchema.d.ts +6 -3
  769. package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
  770. package/dist/unstable/httpapi/HttpApiSchema.js +20 -2
  771. package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
  772. package/dist/unstable/httpapi/HttpApiSecurity.d.ts +2 -2
  773. package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
  774. package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
  775. package/dist/unstable/httpapi/OpenApi.d.ts +1 -0
  776. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  777. package/dist/unstable/httpapi/OpenApi.js +34 -26
  778. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  779. package/dist/unstable/observability/Otlp.d.ts +12 -12
  780. package/dist/unstable/observability/Otlp.d.ts.map +1 -1
  781. package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
  782. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  783. package/dist/unstable/observability/OtlpExporter.js +3 -3
  784. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  785. package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
  786. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  787. package/dist/unstable/observability/OtlpLogger.js +7 -4
  788. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  789. package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
  790. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  791. package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
  792. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  793. package/dist/unstable/observability/OtlpTracer.js +7 -3
  794. package/dist/unstable/observability/OtlpTracer.js.map +1 -1
  795. package/dist/unstable/persistence/KeyValueStore.d.ts +1 -1
  796. package/dist/unstable/persistence/KeyValueStore.js +6 -6
  797. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  798. package/dist/unstable/persistence/Persistable.d.ts +2 -2
  799. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  800. package/dist/unstable/persistence/Persistable.js +1 -1
  801. package/dist/unstable/persistence/Persistable.js.map +1 -1
  802. package/dist/unstable/persistence/PersistedCache.d.ts +6 -5
  803. package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
  804. package/dist/unstable/persistence/PersistedCache.js +2 -1
  805. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  806. package/dist/unstable/persistence/PersistedQueue.d.ts +12 -12
  807. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  808. package/dist/unstable/persistence/PersistedQueue.js +12 -11
  809. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  810. package/dist/unstable/persistence/Persistence.d.ts +1 -1
  811. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  812. package/dist/unstable/persistence/Persistence.js +2 -2
  813. package/dist/unstable/persistence/Persistence.js.map +1 -1
  814. package/dist/unstable/persistence/RateLimiter.d.ts +3 -3
  815. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  816. package/dist/unstable/persistence/RateLimiter.js +1 -1
  817. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  818. package/dist/unstable/process/ChildProcess.d.ts +5 -128
  819. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  820. package/dist/unstable/process/ChildProcess.js +1 -65
  821. package/dist/unstable/process/ChildProcess.js.map +1 -1
  822. package/dist/unstable/process/ChildProcessSpawner.d.ts +45 -7
  823. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  824. package/dist/unstable/process/ChildProcessSpawner.js +21 -1
  825. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  826. package/dist/unstable/reactivity/Atom.d.ts +73 -12
  827. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  828. package/dist/unstable/reactivity/Atom.js +108 -25
  829. package/dist/unstable/reactivity/Atom.js.map +1 -1
  830. package/dist/unstable/reactivity/AtomHttpApi.d.ts +17 -15
  831. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  832. package/dist/unstable/reactivity/AtomHttpApi.js +45 -15
  833. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  834. package/dist/unstable/reactivity/AtomRegistry.d.ts +6 -0
  835. package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
  836. package/dist/unstable/reactivity/AtomRegistry.js +54 -11
  837. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  838. package/dist/unstable/reactivity/AtomRpc.d.ts +9 -9
  839. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  840. package/dist/unstable/reactivity/AtomRpc.js +47 -21
  841. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  842. package/dist/unstable/reactivity/Hydration.d.ts +39 -0
  843. package/dist/unstable/reactivity/Hydration.d.ts.map +1 -0
  844. package/dist/unstable/reactivity/Hydration.js +76 -0
  845. package/dist/unstable/reactivity/Hydration.js.map +1 -0
  846. package/dist/unstable/reactivity/index.d.ts +4 -0
  847. package/dist/unstable/reactivity/index.d.ts.map +1 -1
  848. package/dist/unstable/reactivity/index.js +4 -0
  849. package/dist/unstable/reactivity/index.js.map +1 -1
  850. package/dist/unstable/rpc/Rpc.d.ts +6 -5
  851. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  852. package/dist/unstable/rpc/Rpc.js +4 -3
  853. package/dist/unstable/rpc/Rpc.js.map +1 -1
  854. package/dist/unstable/rpc/RpcClient.d.ts +5 -26
  855. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  856. package/dist/unstable/rpc/RpcClient.js +53 -43
  857. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  858. package/dist/unstable/rpc/RpcGroup.d.ts +3 -5
  859. package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
  860. package/dist/unstable/rpc/RpcGroup.js.map +1 -1
  861. package/dist/unstable/rpc/RpcMiddleware.d.ts +8 -8
  862. package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
  863. package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
  864. package/dist/unstable/rpc/RpcSchema.d.ts +13 -0
  865. package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
  866. package/dist/unstable/rpc/RpcSchema.js +17 -2
  867. package/dist/unstable/rpc/RpcSchema.js.map +1 -1
  868. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  869. package/dist/unstable/rpc/RpcSerialization.js +39 -11
  870. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  871. package/dist/unstable/rpc/RpcServer.d.ts +6 -10
  872. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  873. package/dist/unstable/rpc/RpcServer.js +20 -19
  874. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  875. package/dist/unstable/rpc/Utils.d.ts.map +1 -1
  876. package/dist/unstable/rpc/Utils.js +3 -2
  877. package/dist/unstable/rpc/Utils.js.map +1 -1
  878. package/dist/unstable/schema/Model.d.ts +22 -1
  879. package/dist/unstable/schema/Model.d.ts.map +1 -1
  880. package/dist/unstable/schema/Model.js +15 -0
  881. package/dist/unstable/schema/Model.js.map +1 -1
  882. package/dist/unstable/schema/VariantSchema.d.ts +6 -6
  883. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  884. package/dist/unstable/schema/VariantSchema.js +6 -6
  885. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  886. package/dist/unstable/socket/Socket.d.ts +6 -5
  887. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  888. package/dist/unstable/socket/Socket.js +12 -9
  889. package/dist/unstable/socket/Socket.js.map +1 -1
  890. package/dist/unstable/socket/SocketServer.d.ts +3 -3
  891. package/dist/unstable/sql/Migrator.d.ts +1 -1
  892. package/dist/unstable/sql/Migrator.d.ts.map +1 -1
  893. package/dist/unstable/sql/Migrator.js +2 -2
  894. package/dist/unstable/sql/Migrator.js.map +1 -1
  895. package/dist/unstable/sql/SqlClient.d.ts +1 -1
  896. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  897. package/dist/unstable/sql/SqlClient.js +1 -1
  898. package/dist/unstable/sql/SqlClient.js.map +1 -1
  899. package/dist/unstable/sql/SqlError.d.ts +237 -17
  900. package/dist/unstable/sql/SqlError.d.ts.map +1 -1
  901. package/dist/unstable/sql/SqlError.js +260 -4
  902. package/dist/unstable/sql/SqlError.js.map +1 -1
  903. package/dist/unstable/sql/SqlModel.d.ts +2 -2
  904. package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
  905. package/dist/unstable/sql/SqlModel.js +3 -3
  906. package/dist/unstable/sql/SqlModel.js.map +1 -1
  907. package/dist/unstable/sql/SqlResolver.d.ts.map +1 -1
  908. package/dist/unstable/sql/SqlResolver.js +17 -8
  909. package/dist/unstable/sql/SqlResolver.js.map +1 -1
  910. package/dist/unstable/sql/SqlSchema.d.ts +17 -6
  911. package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
  912. package/dist/unstable/sql/SqlSchema.js +17 -7
  913. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  914. package/dist/unstable/sql/Statement.js +0 -1
  915. package/dist/unstable/sql/Statement.js.map +1 -1
  916. package/dist/unstable/workers/Worker.d.ts.map +1 -1
  917. package/dist/unstable/workers/Worker.js +2 -1
  918. package/dist/unstable/workers/Worker.js.map +1 -1
  919. package/dist/unstable/workflow/Activity.d.ts +5 -0
  920. package/dist/unstable/workflow/Activity.d.ts.map +1 -1
  921. package/dist/unstable/workflow/Activity.js +13 -0
  922. package/dist/unstable/workflow/Activity.js.map +1 -1
  923. package/dist/unstable/workflow/DurableClock.d.ts +3 -3
  924. package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
  925. package/dist/unstable/workflow/DurableClock.js +3 -3
  926. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  927. package/dist/unstable/workflow/DurableDeferred.js +8 -8
  928. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  929. package/dist/unstable/workflow/Workflow.d.ts +5 -4
  930. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  931. package/dist/unstable/workflow/Workflow.js +1 -1
  932. package/dist/unstable/workflow/Workflow.js.map +1 -1
  933. package/dist/unstable/workflow/WorkflowEngine.d.ts +17 -5
  934. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  935. package/dist/unstable/workflow/WorkflowEngine.js +153 -12
  936. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  937. package/package.json +2 -2
  938. package/src/Array.ts +304 -447
  939. package/src/BigDecimal.ts +117 -66
  940. package/src/BigInt.ts +49 -41
  941. package/src/Brand.ts +1 -1
  942. package/src/Cache.ts +9 -8
  943. package/src/Cause.ts +37 -2
  944. package/src/Channel.ts +582 -154
  945. package/src/Chunk.ts +149 -331
  946. package/src/Combiner.ts +280 -13
  947. package/src/Config.ts +195 -25
  948. package/src/Cron.ts +155 -63
  949. package/src/Data.ts +539 -376
  950. package/src/DateTime.ts +75 -256
  951. package/src/Deferred.ts +8 -6
  952. package/src/Duration.ts +122 -66
  953. package/src/Effect.ts +1484 -1157
  954. package/src/Encoding.ts +879 -0
  955. package/src/Equal.ts +278 -111
  956. package/src/Equivalence.ts +114 -52
  957. package/src/ErrorReporter.ts +458 -0
  958. package/src/Exit.ts +24 -12
  959. package/src/Fiber.ts +12 -3
  960. package/src/FiberHandle.ts +10 -9
  961. package/src/FiberMap.ts +22 -22
  962. package/src/FileSystem.ts +34 -31
  963. package/src/Filter.ts +52 -63
  964. package/src/Formatter.ts +253 -51
  965. package/src/Function.ts +2 -10
  966. package/src/Graph.ts +131 -117
  967. package/src/HashMap.ts +26 -19
  968. package/src/Iterable.ts +117 -63
  969. package/src/JsonSchema.ts +383 -10
  970. package/src/Latch.ts +194 -0
  971. package/src/Layer.ts +394 -160
  972. package/src/LayerMap.ts +11 -9
  973. package/src/LogLevel.ts +37 -0
  974. package/src/Logger.ts +33 -100
  975. package/src/ManagedRuntime.ts +35 -22
  976. package/src/Metric.ts +6 -8
  977. package/src/MutableHashMap.ts +9 -0
  978. package/src/MutableHashSet.ts +9 -0
  979. package/src/Newtype.ts +308 -0
  980. package/src/Number.ts +85 -26
  981. package/src/Optic.ts +948 -19
  982. package/src/Option.ts +34 -24
  983. package/src/Order.ts +39 -32
  984. package/src/PartitionedSemaphore.ts +288 -56
  985. package/src/Pipeable.ts +32 -1
  986. package/src/PlatformError.ts +5 -5
  987. package/src/Pool.ts +13 -11
  988. package/src/PubSub.ts +30 -20
  989. package/src/Pull.ts +1 -1
  990. package/src/Queue.ts +11 -9
  991. package/src/Random.ts +51 -14
  992. package/src/RcMap.ts +5 -5
  993. package/src/RcRef.ts +1 -1
  994. package/src/Record.ts +94 -199
  995. package/src/Reducer.ts +166 -7
  996. package/src/References.ts +283 -287
  997. package/src/Request.ts +3 -2
  998. package/src/RequestResolver.ts +29 -49
  999. package/src/Resource.ts +2 -1
  1000. package/src/Result.ts +2 -4
  1001. package/src/Runtime.ts +102 -6
  1002. package/src/Schedule.ts +458 -449
  1003. package/src/Scheduler.ts +49 -126
  1004. package/src/Schema.ts +3298 -392
  1005. package/src/SchemaAST.ts +172 -33
  1006. package/src/SchemaGetter.ts +19 -21
  1007. package/src/SchemaParser.ts +92 -27
  1008. package/src/SchemaRepresentation.ts +51 -26
  1009. package/src/SchemaTransformation.ts +198 -13
  1010. package/src/ScopedCache.ts +3 -3
  1011. package/src/Semaphore.ts +444 -0
  1012. package/src/ServiceMap.ts +144 -97
  1013. package/src/Sink.ts +83 -28
  1014. package/src/Stdio.ts +27 -4
  1015. package/src/Stream.ts +687 -617
  1016. package/src/String.ts +122 -69
  1017. package/src/Struct.ts +33 -7
  1018. package/src/SubscriptionRef.ts +101 -120
  1019. package/src/SynchronizedRef.ts +3 -2
  1020. package/src/Terminal.ts +2 -1
  1021. package/src/Tracer.ts +6 -5
  1022. package/src/Trie.ts +44 -31
  1023. package/src/TxChunk.ts +72 -53
  1024. package/src/TxDeferred.ts +394 -0
  1025. package/src/TxHashMap.ts +409 -343
  1026. package/src/TxHashSet.ts +113 -118
  1027. package/src/TxPriorityQueue.ts +766 -0
  1028. package/src/TxPubSub.ts +789 -0
  1029. package/src/TxQueue.ts +241 -251
  1030. package/src/TxReentrantLock.ts +753 -0
  1031. package/src/TxRef.ts +50 -38
  1032. package/src/TxSemaphore.ts +217 -44
  1033. package/src/TxSubscriptionRef.ts +639 -0
  1034. package/src/Types.ts +73 -19
  1035. package/src/Utils.ts +137 -111
  1036. package/src/index.ts +816 -56
  1037. package/src/internal/core.ts +12 -5
  1038. package/src/internal/dateTime.ts +91 -96
  1039. package/src/internal/effect.ts +844 -432
  1040. package/src/internal/hashMap.ts +12 -10
  1041. package/src/internal/option.ts +7 -0
  1042. package/src/internal/random.ts +20 -0
  1043. package/src/internal/rcRef.ts +4 -3
  1044. package/src/internal/references.ts +72 -0
  1045. package/src/internal/request.ts +2 -2
  1046. package/src/internal/schema/annotations.ts +2 -0
  1047. package/src/internal/schema/representation.ts +73 -94
  1048. package/src/internal/schema/schema.ts +1 -0
  1049. package/src/internal/schema/to-codec.ts +7 -17
  1050. package/src/internal/trie.ts +21 -15
  1051. package/src/testing/TestClock.ts +13 -11
  1052. package/src/testing/TestSchema.ts +332 -35
  1053. package/src/testing/index.ts +64 -1
  1054. package/src/unstable/ai/AiError.ts +111 -54
  1055. package/src/unstable/ai/AnthropicStructuredOutput.ts +4 -0
  1056. package/src/unstable/ai/Chat.ts +134 -85
  1057. package/src/unstable/ai/EmbeddingModel.ts +209 -0
  1058. package/src/unstable/ai/LanguageModel.ts +683 -253
  1059. package/src/unstable/ai/McpSchema.ts +73 -13
  1060. package/src/unstable/ai/McpServer.ts +271 -61
  1061. package/src/unstable/ai/Model.ts +40 -9
  1062. package/src/unstable/ai/OpenAiStructuredOutput.ts +4 -0
  1063. package/src/unstable/ai/Prompt.ts +37 -37
  1064. package/src/unstable/ai/Response.ts +25 -25
  1065. package/src/unstable/ai/ResponseIdTracker.ts +97 -0
  1066. package/src/unstable/ai/Tool.ts +42 -16
  1067. package/src/unstable/ai/Toolkit.ts +5 -14
  1068. package/src/unstable/ai/index.ts +24 -1
  1069. package/src/unstable/ai/internal/codec-transformer.ts +0 -7
  1070. package/src/unstable/cli/Argument.ts +2 -4
  1071. package/src/unstable/cli/CliError.ts +47 -59
  1072. package/src/unstable/cli/CliOutput.ts +85 -13
  1073. package/src/unstable/cli/Command.ts +801 -192
  1074. package/src/unstable/cli/Completions.ts +36 -0
  1075. package/src/unstable/cli/Flag.ts +2 -2
  1076. package/src/unstable/cli/GlobalFlag.ts +242 -0
  1077. package/src/unstable/cli/HelpDoc.ts +91 -11
  1078. package/src/unstable/cli/Param.ts +15 -11
  1079. package/src/unstable/cli/Primitive.ts +2 -2
  1080. package/src/unstable/cli/Prompt.ts +265 -101
  1081. package/src/unstable/cli/index.ts +10 -0
  1082. package/src/unstable/cli/internal/command.ts +109 -63
  1083. package/src/unstable/cli/internal/completions/CommandDescriptor.ts +10 -4
  1084. package/src/unstable/cli/internal/config.ts +49 -0
  1085. package/src/unstable/cli/internal/help.ts +171 -0
  1086. package/src/unstable/cli/internal/parser.ts +71 -63
  1087. package/src/unstable/cluster/ClusterCron.ts +2 -2
  1088. package/src/unstable/cluster/ClusterSchema.ts +29 -1
  1089. package/src/unstable/cluster/ClusterWorkflowEngine.ts +62 -37
  1090. package/src/unstable/cluster/DeliverAt.ts +1 -1
  1091. package/src/unstable/cluster/Entity.ts +25 -22
  1092. package/src/unstable/cluster/EntityAddress.ts +1 -1
  1093. package/src/unstable/cluster/EntityResource.ts +4 -4
  1094. package/src/unstable/cluster/Envelope.ts +1 -1
  1095. package/src/unstable/cluster/K8sHttpClient.ts +5 -5
  1096. package/src/unstable/cluster/Message.ts +28 -15
  1097. package/src/unstable/cluster/MessageStorage.ts +66 -36
  1098. package/src/unstable/cluster/Reply.ts +7 -4
  1099. package/src/unstable/cluster/Runner.ts +1 -1
  1100. package/src/unstable/cluster/RunnerAddress.ts +1 -1
  1101. package/src/unstable/cluster/RunnerServer.ts +10 -13
  1102. package/src/unstable/cluster/Runners.ts +14 -12
  1103. package/src/unstable/cluster/ShardId.ts +2 -2
  1104. package/src/unstable/cluster/Sharding.ts +66 -49
  1105. package/src/unstable/cluster/ShardingConfig.ts +36 -37
  1106. package/src/unstable/cluster/SqlMessageStorage.ts +31 -19
  1107. package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
  1108. package/src/unstable/cluster/internal/entityManager.ts +50 -34
  1109. package/src/unstable/cluster/internal/entityReaper.ts +2 -1
  1110. package/src/unstable/cluster/internal/resourceRef.ts +2 -1
  1111. package/src/unstable/devtools/DevToolsClient.ts +23 -18
  1112. package/src/unstable/devtools/DevToolsSchema.ts +16 -3
  1113. package/src/unstable/encoding/Ndjson.ts +17 -17
  1114. package/src/unstable/encoding/Sse.ts +3 -5
  1115. package/src/unstable/eventlog/EventJournal.ts +2 -2
  1116. package/src/unstable/eventlog/EventLog.ts +3 -2
  1117. package/src/unstable/eventlog/SqlEventLogJournal.ts +2 -2
  1118. package/src/unstable/http/Cookies.ts +94 -11
  1119. package/src/unstable/http/Etag.ts +5 -3
  1120. package/src/unstable/http/Headers.ts +68 -18
  1121. package/src/unstable/http/HttpClient.ts +376 -34
  1122. package/src/unstable/http/HttpClientRequest.ts +151 -39
  1123. package/src/unstable/http/HttpClientResponse.ts +12 -6
  1124. package/src/unstable/http/HttpEffect.ts +54 -68
  1125. package/src/unstable/http/HttpIncomingMessage.ts +3 -2
  1126. package/src/unstable/http/HttpMethod.ts +16 -4
  1127. package/src/unstable/http/HttpMiddleware.ts +25 -39
  1128. package/src/unstable/http/HttpPlatform.ts +3 -2
  1129. package/src/unstable/http/HttpRouter.ts +9 -9
  1130. package/src/unstable/http/HttpServer.ts +3 -9
  1131. package/src/unstable/http/HttpServerError.ts +45 -47
  1132. package/src/unstable/http/HttpServerRequest.ts +407 -16
  1133. package/src/unstable/http/HttpServerRespondable.ts +6 -6
  1134. package/src/unstable/http/HttpServerResponse.ts +345 -7
  1135. package/src/unstable/http/HttpStaticServer.ts +456 -0
  1136. package/src/unstable/http/HttpTraceContext.ts +31 -17
  1137. package/src/unstable/http/Multipart.ts +2 -2
  1138. package/src/unstable/http/Url.ts +650 -0
  1139. package/src/unstable/http/UrlParams.ts +31 -19
  1140. package/src/unstable/http/index.ts +10 -0
  1141. package/src/unstable/http/internal/preResponseHandler.ts +15 -0
  1142. package/src/unstable/httpapi/HttpApi.ts +6 -6
  1143. package/src/unstable/httpapi/HttpApiBuilder.ts +106 -41
  1144. package/src/unstable/httpapi/HttpApiClient.ts +180 -28
  1145. package/src/unstable/httpapi/HttpApiEndpoint.ts +216 -104
  1146. package/src/unstable/httpapi/HttpApiError.ts +108 -30
  1147. package/src/unstable/httpapi/HttpApiGroup.ts +7 -6
  1148. package/src/unstable/httpapi/HttpApiMiddleware.ts +83 -22
  1149. package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
  1150. package/src/unstable/httpapi/HttpApiSchema.ts +21 -3
  1151. package/src/unstable/httpapi/HttpApiSecurity.ts +3 -3
  1152. package/src/unstable/httpapi/OpenApi.ts +44 -29
  1153. package/src/unstable/observability/Otlp.ts +12 -12
  1154. package/src/unstable/observability/OtlpExporter.ts +8 -5
  1155. package/src/unstable/observability/OtlpLogger.ts +13 -9
  1156. package/src/unstable/observability/OtlpMetrics.ts +4 -4
  1157. package/src/unstable/observability/OtlpTracer.ts +12 -8
  1158. package/src/unstable/persistence/KeyValueStore.ts +6 -6
  1159. package/src/unstable/persistence/Persistable.ts +3 -3
  1160. package/src/unstable/persistence/PersistedCache.ts +20 -9
  1161. package/src/unstable/persistence/PersistedQueue.ts +25 -24
  1162. package/src/unstable/persistence/Persistence.ts +3 -3
  1163. package/src/unstable/persistence/RateLimiter.ts +4 -4
  1164. package/src/unstable/process/ChildProcess.ts +6 -208
  1165. package/src/unstable/process/ChildProcessSpawner.ts +75 -14
  1166. package/src/unstable/reactivity/Atom.ts +212 -54
  1167. package/src/unstable/reactivity/AtomHttpApi.ts +81 -41
  1168. package/src/unstable/reactivity/AtomRegistry.ts +66 -12
  1169. package/src/unstable/reactivity/AtomRpc.ts +51 -20
  1170. package/src/unstable/reactivity/Hydration.ts +112 -0
  1171. package/src/unstable/reactivity/index.ts +5 -0
  1172. package/src/unstable/rpc/Rpc.ts +12 -12
  1173. package/src/unstable/rpc/RpcClient.ts +67 -96
  1174. package/src/unstable/rpc/RpcGroup.ts +7 -7
  1175. package/src/unstable/rpc/RpcMiddleware.ts +15 -9
  1176. package/src/unstable/rpc/RpcSchema.ts +23 -5
  1177. package/src/unstable/rpc/RpcSerialization.ts +49 -11
  1178. package/src/unstable/rpc/RpcServer.ts +31 -35
  1179. package/src/unstable/rpc/Utils.ts +3 -2
  1180. package/src/unstable/schema/Model.ts +31 -0
  1181. package/src/unstable/schema/VariantSchema.ts +10 -10
  1182. package/src/unstable/socket/Socket.ts +31 -27
  1183. package/src/unstable/sql/Migrator.ts +7 -5
  1184. package/src/unstable/sql/SqlClient.ts +6 -4
  1185. package/src/unstable/sql/SqlError.ts +365 -11
  1186. package/src/unstable/sql/SqlModel.ts +5 -5
  1187. package/src/unstable/sql/SqlResolver.ts +17 -7
  1188. package/src/unstable/sql/SqlSchema.ts +42 -26
  1189. package/src/unstable/sql/Statement.ts +0 -1
  1190. package/src/unstable/workers/Worker.ts +2 -1
  1191. package/src/unstable/workflow/Activity.ts +23 -0
  1192. package/src/unstable/workflow/DurableClock.ts +8 -8
  1193. package/src/unstable/workflow/DurableDeferred.ts +8 -8
  1194. package/src/unstable/workflow/Workflow.ts +7 -3
  1195. package/src/unstable/workflow/WorkflowEngine.ts +211 -19
  1196. package/dist/NullOr.d.ts +0 -149
  1197. package/dist/NullOr.d.ts.map +0 -1
  1198. package/dist/NullOr.js +0 -152
  1199. package/dist/NullOr.js.map +0 -1
  1200. package/dist/encoding/Base64.d.ts +0 -67
  1201. package/dist/encoding/Base64.d.ts.map +0 -1
  1202. package/dist/encoding/Base64.js +0 -146
  1203. package/dist/encoding/Base64.js.map +0 -1
  1204. package/dist/encoding/Base64Url.d.ts +0 -60
  1205. package/dist/encoding/Base64Url.d.ts.map +0 -1
  1206. package/dist/encoding/Base64Url.js +0 -89
  1207. package/dist/encoding/Base64Url.js.map +0 -1
  1208. package/dist/encoding/EncodingError.d.ts +0 -31
  1209. package/dist/encoding/EncodingError.d.ts.map +0 -1
  1210. package/dist/encoding/EncodingError.js +0 -22
  1211. package/dist/encoding/EncodingError.js.map +0 -1
  1212. package/dist/encoding/Hex.d.ts +0 -61
  1213. package/dist/encoding/Hex.d.ts.map +0 -1
  1214. package/dist/encoding/Hex.js +0 -115
  1215. package/dist/encoding/Hex.js.map +0 -1
  1216. package/dist/encoding/index.d.ts +0 -26
  1217. package/dist/encoding/index.d.ts.map +0 -1
  1218. package/dist/encoding/index.js +0 -27
  1219. package/dist/encoding/index.js.map +0 -1
  1220. package/dist/unstable/cli/internal/builtInFlags.d.ts +0 -7
  1221. package/dist/unstable/cli/internal/builtInFlags.d.ts.map +0 -1
  1222. package/dist/unstable/cli/internal/builtInFlags.js +0 -44
  1223. package/dist/unstable/cli/internal/builtInFlags.js.map +0 -1
  1224. package/dist/unstable/cli/internal/completions/Completions.d.ts +0 -2
  1225. package/dist/unstable/cli/internal/completions/Completions.d.ts.map +0 -1
  1226. package/dist/unstable/cli/internal/completions/Completions.js +0 -23
  1227. package/dist/unstable/cli/internal/completions/Completions.js.map +0 -1
  1228. package/src/NullOr.ts +0 -204
  1229. package/src/encoding/Base64.ts +0 -366
  1230. package/src/encoding/Base64Url.ts +0 -104
  1231. package/src/encoding/EncodingError.ts +0 -35
  1232. package/src/encoding/Hex.ts +0 -390
  1233. package/src/encoding/index.ts +0 -31
  1234. package/src/unstable/cli/internal/builtInFlags.ts +0 -78
  1235. package/src/unstable/cli/internal/completions/Completions.ts +0 -31
package/src/index.ts CHANGED
@@ -10,7 +10,7 @@ export {
10
10
  /**
11
11
  * @since 2.0.0
12
12
  */
13
- coerceUnsafe,
13
+ cast,
14
14
  /**
15
15
  * @since 2.0.0
16
16
  */
@@ -444,6 +444,65 @@ export * as Chunk from "./Chunk.ts"
444
444
  export * as Clock from "./Clock.ts"
445
445
 
446
446
  /**
447
+ * A module for combining two values of the same type into one.
448
+ *
449
+ * A `Combiner<A>` wraps a single binary function `(self: A, that: A) => A`.
450
+ * It describes *how* two values merge but carries no initial/empty value
451
+ * (for that, see {@link Reducer} which extends `Combiner` with an
452
+ * `initialValue`).
453
+ *
454
+ * ## Mental model
455
+ *
456
+ * - **Combiner** – an object with a `combine(self, that)` method that returns
457
+ * a value of the same type.
458
+ * - **Argument order** – `self` is the "left" / accumulator side, `that` is
459
+ * the "right" / incoming side.
460
+ * - **No identity element** – unlike a monoid, a `Combiner` does not require
461
+ * a neutral element. Use {@link Reducer} when you need one.
462
+ * - **Purity** – all combiners produced by this module are pure; they never
463
+ * mutate their arguments.
464
+ * - **Composability** – combiners can be lifted into `Option`, `Struct`,
465
+ * `Tuple`, and other container types via helpers in those modules.
466
+ *
467
+ * ## Common tasks
468
+ *
469
+ * - Create a combiner from any binary function → {@link make}
470
+ * - Swap argument order → {@link flip}
471
+ * - Pick the smaller / larger of two values → {@link min} / {@link max}
472
+ * - Always keep the first or last value → {@link first} / {@link last}
473
+ * - Ignore both values and return a fixed result → {@link constant}
474
+ * - Insert a separator between combined values → {@link intercalate}
475
+ *
476
+ * ## Gotchas
477
+ *
478
+ * - `min` and `max` require an `Order<A>`, not a raw comparator. Import from
479
+ * e.g. `Number.Order` or `String.Order`.
480
+ * - `intercalate` is curried: call it with the separator first, then pass the
481
+ * base combiner.
482
+ * - A `Reducer` (which adds `initialValue`) is also a valid `Combiner` — you
483
+ * can pass a `Reducer` anywhere a `Combiner` is expected.
484
+ *
485
+ * ## Quickstart
486
+ *
487
+ * **Example** (combining strings with a separator)
488
+ *
489
+ * ```ts
490
+ * import { Combiner, String } from "effect"
491
+ *
492
+ * const csv = Combiner.intercalate(",")(String.ReducerConcat)
493
+ *
494
+ * console.log(csv.combine("a", "b"))
495
+ * // Output: "a,b"
496
+ *
497
+ * console.log(csv.combine(csv.combine("a", "b"), "c"))
498
+ * // Output: "a,b,c"
499
+ * ```
500
+ *
501
+ * ## See also
502
+ *
503
+ * - {@link make} – the primary constructor
504
+ * - {@link Combiner} – the core interface
505
+ *
447
506
  * @since 4.0.0
448
507
  */
449
508
  export * as Combiner from "./Combiner.ts"
@@ -684,15 +743,75 @@ export * as Console from "./Console.ts"
684
743
  export * as Cron from "./Cron.ts"
685
744
 
686
745
  /**
687
- * This module provides utilities for creating data types with structural equality
688
- * semantics. Unlike regular JavaScript objects, `Data` types support value-based
689
- * equality comparison using the `Equal` module.
746
+ * Immutable data constructors with discriminated-union support.
747
+ *
748
+ * The `Data` module provides base classes and factory functions for creating
749
+ * immutable value types with a `_tag` field for discriminated unions.
750
+ * It is the recommended way to define domain models, error types, and
751
+ * lightweight ADTs in Effect applications.
752
+ *
753
+ * ## Mental model
754
+ *
755
+ * - **`Class`** — base class for plain immutable data. Extend it with a type
756
+ * parameter to declare the fields. Instances are `Pipeable`.
757
+ * - **`TaggedClass`** — like `Class` but automatically adds a `readonly _tag`
758
+ * string literal field. Useful for single-variant types or ad-hoc tagged
759
+ * values.
760
+ * - **`TaggedEnum`** (type) + **`taggedEnum`** (value) — define a multi-variant
761
+ * discriminated union from a simple record. `taggedEnum()` returns per-variant
762
+ * constructors plus `$is` / `$match` helpers.
763
+ * - **`Error`** — like `Class` but extends `Cause.YieldableError`, so instances
764
+ * can be yielded inside `Effect.gen` to fail the effect.
765
+ * - **`TaggedError`** — like `TaggedClass` but extends `Cause.YieldableError`.
766
+ * Works with `Effect.catchTag` for tag-based error recovery.
767
+ *
768
+ * ## Common tasks
769
+ *
770
+ * - Define a simple value class → {@link Class}
771
+ * - Define a value class with a `_tag` → {@link TaggedClass}
772
+ * - Define a discriminated union with constructors → {@link TaggedEnum} + {@link taggedEnum}
773
+ * - Define a yieldable error → {@link Error}
774
+ * - Define a yieldable tagged error → {@link TaggedError}
775
+ * - Type-guard a tagged value → `$is` from {@link taggedEnum}
776
+ * - Pattern-match on a tagged union → `$match` from {@link taggedEnum}
777
+ *
778
+ * ## Gotchas
779
+ *
780
+ * - Variant records passed to `TaggedEnum` must **not** contain a `_tag` key;
781
+ * the `_tag` is added automatically from the record key.
782
+ * - When a class has no fields, the constructor argument is optional (`void`).
783
+ * - `taggedEnum()` creates **plain objects**, not class instances. If you need
784
+ * class-based variants, use `TaggedClass` or `TaggedError` instead.
785
+ * - `TaggedEnum.WithGenerics` supports up to 4 generic type parameters.
786
+ *
787
+ * ## Quickstart
788
+ *
789
+ * **Example** (tagged union with pattern matching)
790
+ *
791
+ * ```ts
792
+ * import { Data } from "effect"
690
793
  *
691
- * The main benefits of using `Data` types are:
692
- * - **Structural equality**: Two `Data` objects are equal if their contents are equal
693
- * - **Immutability**: `Data` types are designed to be immutable
694
- * - **Type safety**: Constructors ensure type safety and consistency
695
- * - **Effect integration**: Error types work seamlessly with Effect's error handling
794
+ * type Shape = Data.TaggedEnum<{
795
+ * Circle: { readonly radius: number }
796
+ * Rect: { readonly width: number; readonly height: number }
797
+ * }>
798
+ * const { Circle, Rect, $match } = Data.taggedEnum<Shape>()
799
+ *
800
+ * const area = $match({
801
+ * Circle: ({ radius }) => Math.PI * radius ** 2,
802
+ * Rect: ({ width, height }) => width * height
803
+ * })
804
+ *
805
+ * console.log(area(Circle({ radius: 5 })))
806
+ * // 78.53981633974483
807
+ * console.log(area(Rect({ width: 3, height: 4 })))
808
+ * // 12
809
+ * ```
810
+ *
811
+ * @see {@link Class} — plain immutable data class
812
+ * @see {@link TaggedEnum} — discriminated union type
813
+ * @see {@link taggedEnum} — discriminated union constructors
814
+ * @see {@link TaggedError} — yieldable tagged error class
696
815
  *
697
816
  * @since 2.0.0
698
817
  */
@@ -837,12 +956,14 @@ export * as Duration from "./Duration.ts"
837
956
  *
838
957
  * @example
839
958
  * ```ts
840
- * import { Effect } from "effect"
959
+ * import { Data, Effect } from "effect"
960
+ *
961
+ * class DiscountRateError extends Data.TaggedError("DiscountRateError")<{}> {}
841
962
  *
842
963
  * // Effect that may fail
843
964
  * const divide = (a: number, b: number) =>
844
965
  * b === 0
845
- * ? Effect.fail(new Error("Division by zero"))
966
+ * ? Effect.fail(new DiscountRateError())
846
967
  * : Effect.succeed(a / b)
847
968
  *
848
969
  * // Error handling
@@ -866,9 +987,80 @@ export * as Duration from "./Duration.ts"
866
987
  export * as Effect from "./Effect.ts"
867
988
 
868
989
  /**
869
- * This module provides functionality for defining and working with equality between values.
870
- * It includes the `Equal` interface for types that can determine equality with other values
871
- * of the same type, and utilities for comparing values.
990
+ * Encoding & decoding for Base64 (RFC4648), Base64Url, and Hex.
991
+ *
992
+ * @since 4.0.0
993
+ */
994
+ export * as Encoding from "./Encoding.ts"
995
+
996
+ /**
997
+ * Structural and custom equality for Effect values.
998
+ *
999
+ * The `Equal` module provides deep structural comparison for primitives, plain
1000
+ * objects, arrays, Maps, Sets, Dates, and RegExps. Types that implement the
1001
+ * {@link Equal} interface can supply their own comparison logic while staying
1002
+ * compatible with the rest of the ecosystem (HashMap, HashSet, etc.).
1003
+ *
1004
+ * ## Mental model
1005
+ *
1006
+ * - **Structural equality** — two values are equal when their contents match,
1007
+ * not when they share the same reference.
1008
+ * - **Hash-first shortcut** — before comparing fields, the module checks
1009
+ * {@link Hash.hash}. If the hashes differ the objects are unequal without
1010
+ * further traversal.
1011
+ * - **Equal interface** — any object that implements both {@link symbol} (the
1012
+ * equality method) and `Hash.symbol` (the hash method) can define custom
1013
+ * comparison logic.
1014
+ * - **Caching** — comparison results for object pairs are cached in a WeakMap.
1015
+ * This makes repeated checks fast but **requires immutability** after the
1016
+ * first comparison.
1017
+ * - **By-reference opt-out** — {@link byReference} and {@link byReferenceUnsafe}
1018
+ * let you switch individual objects back to reference equality when you need
1019
+ * mutable identity semantics.
1020
+ *
1021
+ * ## Common tasks
1022
+ *
1023
+ * - Compare two values → {@link equals}
1024
+ * - Check if a value implements `Equal` → {@link isEqual}
1025
+ * - Use `equals` where an `Equivalence` is expected → {@link asEquivalence}
1026
+ * - Implement custom equality on a class → implement {@link Equal} (see
1027
+ * example on the interface)
1028
+ * - Opt an object out of structural equality → {@link byReference} /
1029
+ * {@link byReferenceUnsafe}
1030
+ *
1031
+ * ## Gotchas
1032
+ *
1033
+ * - Objects **must be treated as immutable** after their first equality check.
1034
+ * Results are cached; mutating an object afterwards yields stale results.
1035
+ * - `NaN` is considered equal to `NaN` (unlike `===`).
1036
+ * - Functions without an `Equal` implementation are compared by reference.
1037
+ * - Map and Set comparisons are order-independent but O(n²) in size.
1038
+ * - If only one of two objects implements `Equal`, they are never equal.
1039
+ *
1040
+ * ## Quickstart
1041
+ *
1042
+ * **Example** (basic structural comparison)
1043
+ *
1044
+ * ```ts
1045
+ * import { Equal } from "effect"
1046
+ *
1047
+ * // Primitives
1048
+ * console.log(Equal.equals(1, 1)) // true
1049
+ * console.log(Equal.equals("a", "b")) // false
1050
+ *
1051
+ * // Objects and arrays
1052
+ * console.log(Equal.equals({ x: 1 }, { x: 1 })) // true
1053
+ * console.log(Equal.equals([1, 2], [1, 2])) // true
1054
+ *
1055
+ * // Curried form
1056
+ * const is42 = Equal.equals(42)
1057
+ * console.log(is42(42)) // true
1058
+ * console.log(is42(0)) // false
1059
+ * ```
1060
+ *
1061
+ * @see {@link equals} — the main comparison function
1062
+ * @see {@link Equal} — the interface for custom equality
1063
+ * @see {@link Hash} — the companion hashing module
872
1064
  *
873
1065
  * @since 2.0.0
874
1066
  */
@@ -894,7 +1086,7 @@ export * as Equal from "./Equal.ts"
894
1086
  * - Using strict equality (`===`) → {@link strictEqual}
895
1087
  * - Combining multiple equivalences (AND logic) → {@link combine}, {@link combineAll}
896
1088
  * - Transforming input before comparison → {@link mapInput}
897
- * - Creating equivalences for structured types → {@link Struct}, {@link Tuple}, {@link Array}, {@link Record}
1089
+ * - Creating equivalences for structured types → {@link Struct}, {@link Tuple}, {@link Array_}, {@link Record}
898
1090
  *
899
1091
  * ## Gotchas
900
1092
  *
@@ -922,13 +1114,65 @@ export * as Equal from "./Equal.ts"
922
1114
  * ## See also
923
1115
  *
924
1116
  * - {@link Equal} - For structural equality (can convert to Equivalence)
925
- * - {@link Array.dedupeWith} - Remove duplicates using an equivalence
1117
+ * - {@link Array_.dedupeWith} - Remove duplicates using an equivalence
926
1118
  * - {@link Chunk} - Collections that use equivalences for operations
927
1119
  *
928
1120
  * @since 2.0.0
929
1121
  */
930
1122
  export * as Equivalence from "./Equivalence.ts"
931
1123
 
1124
+ /**
1125
+ * Pluggable error reporting for Effect programs.
1126
+ *
1127
+ * Reporting is triggered by `Effect.withErrorReporting`,
1128
+ * `ErrorReporter.report`, or built-in reporting boundaries in the HTTP and
1129
+ * RPC server modules.
1130
+ *
1131
+ * Each reporter receives a structured callback with the failing `Cause`, a
1132
+ * pretty-printed `Error`, severity, and any extra attributes attached to the
1133
+ * original error — making it straightforward to forward failures to Sentry,
1134
+ * Datadog, or a custom logging backend.
1135
+ *
1136
+ * Use the annotation symbols (`ignore`, `severity`, `attributes`) on your
1137
+ * error classes to control reporting behavior per-error.
1138
+ *
1139
+ * @example
1140
+ * ```ts
1141
+ * import { Data, Effect, ErrorReporter } from "effect"
1142
+ *
1143
+ * // A reporter that logs to the console
1144
+ * const consoleReporter = ErrorReporter.make(({ error, severity }) => {
1145
+ * console.error(`[${severity}]`, error.message)
1146
+ * })
1147
+ *
1148
+ * // An error that should be ignored by reporters
1149
+ * class NotFoundError extends Data.TaggedError("NotFoundError")<{}> {
1150
+ * readonly [ErrorReporter.ignore] = true
1151
+ * }
1152
+ *
1153
+ * // An error with custom severity and attributes
1154
+ * class RateLimitError extends Data.TaggedError("RateLimitError")<{
1155
+ * readonly retryAfter: number
1156
+ * }> {
1157
+ * readonly [ErrorReporter.severity] = "Warn" as const
1158
+ * readonly [ErrorReporter.attributes] = {
1159
+ * retryAfter: this.retryAfter
1160
+ * }
1161
+ * }
1162
+ *
1163
+ * // Opt in to error reporting with Effect.withErrorReporting
1164
+ * const program = Effect.gen(function*() {
1165
+ * return yield* new RateLimitError({ retryAfter: 60 })
1166
+ * }).pipe(
1167
+ * Effect.withErrorReporting,
1168
+ * Effect.provide(ErrorReporter.layer([consoleReporter]))
1169
+ * )
1170
+ * ```
1171
+ *
1172
+ * @since 4.0.0
1173
+ */
1174
+ export * as ErrorReporter from "./ErrorReporter.ts"
1175
+
932
1176
  /**
933
1177
  * @since 3.16.0
934
1178
  */
@@ -1130,6 +1374,57 @@ export * as FileSystem from "./FileSystem.ts"
1130
1374
  export * as Filter from "./Filter.ts"
1131
1375
 
1132
1376
  /**
1377
+ * Utilities for converting arbitrary JavaScript values into human-readable
1378
+ * strings, with support for circular references, redaction, and common JS
1379
+ * types that `JSON.stringify` handles poorly.
1380
+ *
1381
+ * Mental model:
1382
+ * - A `Formatter<Value, Format>` is a callable `(value: Value) => Format`.
1383
+ * - {@link format} is the general-purpose pretty-printer: it handles
1384
+ * primitives, arrays, objects, `BigInt`, `Symbol`, `Date`, `RegExp`,
1385
+ * `Set`, `Map`, class instances, and circular references.
1386
+ * - {@link formatJson} is a safe `JSON.stringify` wrapper that silently
1387
+ * drops circular references and applies redaction.
1388
+ * - Both functions accept a `space` option for indentation control.
1389
+ *
1390
+ * Common tasks:
1391
+ * - Pretty-print any value for debugging / logging -> {@link format}
1392
+ * - Serialize to JSON safely (no circular throws) -> {@link formatJson}
1393
+ * - Format a single object property key -> {@link formatPropertyKey}
1394
+ * - Format a property path like `["a"]["b"]` -> {@link formatPath}
1395
+ * - Format a `Date` to ISO string safely -> {@link formatDate}
1396
+ *
1397
+ * Gotchas:
1398
+ * - {@link format} output is **not** valid JSON; use {@link formatJson} when
1399
+ * you need parseable JSON.
1400
+ * - {@link format} calls `toString()` on objects by default; pass
1401
+ * `ignoreToString: true` to disable.
1402
+ * - {@link formatJson} silently omits circular references (the key is
1403
+ * dropped from the output).
1404
+ * - Values implementing the `Redactable` protocol are automatically
1405
+ * redacted by both {@link format} and {@link formatJson}.
1406
+ *
1407
+ * **Example** (Pretty-print a value)
1408
+ *
1409
+ * ```ts
1410
+ * import { Formatter } from "effect"
1411
+ *
1412
+ * const obj = { name: "Alice", scores: [100, 97] }
1413
+ * console.log(Formatter.format(obj))
1414
+ * // {"name":"Alice","scores":[100,97]}
1415
+ *
1416
+ * console.log(Formatter.format(obj, { space: 2 }))
1417
+ * // {
1418
+ * // "name": "Alice",
1419
+ * // "scores": [
1420
+ * // 100,
1421
+ * // 97
1422
+ * // ]
1423
+ * // }
1424
+ * ```
1425
+ *
1426
+ * See also: {@link Formatter}, {@link format}, {@link formatJson}
1427
+ *
1133
1428
  * @since 4.0.0
1134
1429
  */
1135
1430
  export * as Formatter from "./Formatter.ts"
@@ -1263,7 +1558,7 @@ export * as Inspectable from "./Inspectable.ts"
1263
1558
  *
1264
1559
  * @example
1265
1560
  * ```ts
1266
- * import { Iterable } from "effect"
1561
+ * import { Iterable, Option } from "effect"
1267
1562
  *
1268
1563
  * // Create iterables
1269
1564
  * const numbers = Iterable.range(1, 5)
@@ -1273,7 +1568,7 @@ export * as Inspectable from "./Inspectable.ts"
1273
1568
  * console.log(Array.from(filtered)) // [6, 8, 10]
1274
1569
  *
1275
1570
  * // Infinite iterables
1276
- * const fibonacci = Iterable.unfold([0, 1], ([a, b]) => [a, [b, a + b]])
1571
+ * const fibonacci = Iterable.unfold([0, 1], ([a, b]) => Option.some([a, [b, a + b]]))
1277
1572
  * const first10 = Iterable.take(fibonacci, 10)
1278
1573
  * console.log(Array.from(first10)) // [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
1279
1574
  * ```
@@ -1394,10 +1689,98 @@ export * as JsonPatch from "./JsonPatch.ts"
1394
1689
  export * as JsonPointer from "./JsonPointer.ts"
1395
1690
 
1396
1691
  /**
1692
+ * Convert JSON Schema documents between dialects (Draft-07, Draft-2020-12,
1693
+ * OpenAPI 3.0, OpenAPI 3.1). All dialects are normalized to an internal
1694
+ * `Document<"draft-2020-12">` representation before optional conversion to
1695
+ * an output dialect.
1696
+ *
1697
+ * ## Mental model
1698
+ *
1699
+ * - **JsonSchema** — a plain object with string keys; represents any single
1700
+ * JSON Schema node.
1701
+ * - **Dialect** — one of `"draft-07"`, `"draft-2020-12"`, `"openapi-3.1"`,
1702
+ * or `"openapi-3.0"`.
1703
+ * - **Document** — a structured container holding a root `schema`, its
1704
+ * companion `definitions`, and the target `dialect`. Definitions are
1705
+ * stored separately from the root schema so they can be relocated when
1706
+ * converting between dialects.
1707
+ * - **MultiDocument** — same as `Document` but carries multiple root
1708
+ * schemas (at least one). Useful when generating several schemas that
1709
+ * share a single definitions pool.
1710
+ * - **Definitions** — a `Record<string, JsonSchema>` keyed by definition
1711
+ * name. The ref pointer prefix depends on the dialect.
1712
+ * - **`from*` functions** — parse a raw JSON Schema object into the
1713
+ * canonical `Document<"draft-2020-12">`.
1714
+ * - **`to*` functions** — convert from the canonical representation to a
1715
+ * specific output dialect.
1716
+ *
1717
+ * ## Common tasks
1718
+ *
1719
+ * - Parse a Draft-07 schema → {@link fromSchemaDraft07}
1720
+ * - Parse a Draft-2020-12 schema → {@link fromSchemaDraft2020_12}
1721
+ * - Parse an OpenAPI 3.1 schema → {@link fromSchemaOpenApi3_1}
1722
+ * - Parse an OpenAPI 3.0 schema → {@link fromSchemaOpenApi3_0}
1723
+ * - Convert to Draft-07 output → {@link toDocumentDraft07}
1724
+ * - Convert to OpenAPI 3.1 output → {@link toMultiDocumentOpenApi3_1}
1725
+ * - Resolve a `$ref` against definitions → {@link resolve$ref}
1726
+ * - Inline the root `$ref` of a document → {@link resolveTopLevel$ref}
1727
+ *
1728
+ * ## Gotchas
1729
+ *
1730
+ * - All `from*` functions normalize to `Document<"draft-2020-12">`
1731
+ * regardless of the input dialect.
1732
+ * - Unsupported or unrecognized JSON Schema keywords are silently dropped
1733
+ * during conversion.
1734
+ * - Draft-07 tuple syntax (`items` as array + `additionalItems`) is
1735
+ * converted to 2020-12 form (`prefixItems` + `items`), and vice-versa.
1736
+ * - OpenAPI 3.0 `nullable: true` is expanded into `type` arrays or
1737
+ * `anyOf` unions. The `nullable` keyword is removed.
1738
+ * - OpenAPI 3.0 singular `example` is converted to `examples` (array).
1739
+ * - {@link resolve$ref} only looks up the last segment of the ref path in
1740
+ * the definitions map; it does not follow arbitrary JSON Pointer paths.
1741
+ *
1742
+ * ## Quickstart
1743
+ *
1744
+ * **Example** (Parse a Draft-07 schema and convert to Draft-07 output)
1745
+ *
1746
+ * ```ts
1747
+ * import { JsonSchema } from "effect"
1748
+ *
1749
+ * const raw: JsonSchema.JsonSchema = {
1750
+ * type: "object",
1751
+ * properties: {
1752
+ * name: { type: "string" }
1753
+ * },
1754
+ * required: ["name"]
1755
+ * }
1756
+ *
1757
+ * // Parse into canonical form
1758
+ * const doc = JsonSchema.fromSchemaDraft07(raw)
1759
+ *
1760
+ * // Convert back to Draft-07
1761
+ * const draft07 = JsonSchema.toDocumentDraft07(doc)
1762
+ *
1763
+ * console.log(draft07.dialect) // "draft-07"
1764
+ * console.log(draft07.schema) // { type: "object", properties: { name: { type: "string" } }, required: ["name"] }
1765
+ * ```
1766
+ *
1767
+ * ## See also
1768
+ *
1769
+ * - {@link Document}
1770
+ * - {@link MultiDocument}
1771
+ * - {@link fromSchemaDraft07}
1772
+ * - {@link toDocumentDraft07}
1773
+ * - {@link resolve$ref}
1774
+ *
1397
1775
  * @since 4.0.0
1398
1776
  */
1399
1777
  export * as JsonSchema from "./JsonSchema.ts"
1400
1778
 
1779
+ /**
1780
+ * @since 3.8.0
1781
+ */
1782
+ export * as Latch from "./Latch.ts"
1783
+
1401
1784
  /**
1402
1785
  * A `Layer<ROut, E, RIn>` describes how to build one or more services in your
1403
1786
  * application. Services can be injected into effects via
@@ -1931,6 +2314,73 @@ export * as MutableList from "./MutableList.ts"
1931
2314
  */
1932
2315
  export * as MutableRef from "./MutableRef.ts"
1933
2316
 
2317
+ /**
2318
+ * Lightweight wrapper types that prevent accidental mixing of structurally
2319
+ * identical values (e.g. `UserId` vs `OrderId`, both `string` at runtime).
2320
+ *
2321
+ * **Mental model**
2322
+ *
2323
+ * - **Newtype** — a compile-time wrapper around a **carrier** type (the
2324
+ * underlying primitive or object). At runtime the value is unchanged; the
2325
+ * tag exists only in the type system.
2326
+ * - **Key** — a unique string literal that distinguishes one newtype from
2327
+ * another (e.g. `"Label"`, `"UserId"`).
2328
+ * - **Carrier** — the underlying type the newtype wraps (e.g. `string`,
2329
+ * `number`).
2330
+ * - **Iso** — a lossless two-way conversion between a newtype and its carrier,
2331
+ * created with {@link makeIso}. Use `iso.set(carrier)` to wrap and
2332
+ * `iso.get(newtype)` to unwrap.
2333
+ *
2334
+ * **Common tasks**
2335
+ *
2336
+ * - Define a newtype → declare an `interface` extending
2337
+ * `Newtype.Newtype<Key, Carrier>`
2338
+ * - Wrap / unwrap values → {@link makeIso} (returns an `Optic.Iso`)
2339
+ * - Unwrap only → {@link value}
2340
+ * - Lift an `Equivalence` → {@link makeEquivalence}
2341
+ * - Lift an `Order` → {@link makeOrder}
2342
+ * - Lift a `Combiner` → {@link makeCombiner}
2343
+ * - Lift a `Reducer` → {@link makeReducer}
2344
+ *
2345
+ * **Gotchas**
2346
+ *
2347
+ * - Newtypes are **purely compile-time**. There is zero runtime overhead;
2348
+ * `value` and `makeIso` use identity casts.
2349
+ * - Two newtypes sharing the same key string will be assignable to each other.
2350
+ * Choose unique key strings.
2351
+ * - A newtype value is **not** assignable to its carrier type without
2352
+ * explicitly unwrapping via {@link value} or an iso.
2353
+ *
2354
+ * **Quickstart**
2355
+ *
2356
+ * **Example** (defining and using a newtype)
2357
+ *
2358
+ * ```ts
2359
+ * import { Newtype } from "effect"
2360
+ *
2361
+ * // 1. Define a newtype
2362
+ * interface Label extends Newtype.Newtype<"Label", string> {}
2363
+ *
2364
+ * // 2. Create an iso for wrapping/unwrapping
2365
+ * const labelIso = Newtype.makeIso<Label>()
2366
+ *
2367
+ * // 3. Wrap a raw string
2368
+ * const myLabel: Label = labelIso.set("hello")
2369
+ *
2370
+ * // 4. Unwrap back to string
2371
+ * const raw: string = labelIso.get(myLabel) // "hello"
2372
+ * ```
2373
+ *
2374
+ * **See also**
2375
+ *
2376
+ * - {@link Newtype} (the tagged interface)
2377
+ * - {@link makeIso} (wrap and unwrap)
2378
+ * - {@link value} (unwrap only)
2379
+ *
2380
+ * @since 4.0.0
2381
+ */
2382
+ export * as Newtype from "./Newtype.ts"
2383
+
1934
2384
  /**
1935
2385
  * @since 2.0.0
1936
2386
  *
@@ -2063,37 +2513,6 @@ export * as MutableRef from "./MutableRef.ts"
2063
2513
  */
2064
2514
  export * as NonEmptyIterable from "./NonEmptyIterable.ts"
2065
2515
 
2066
- /**
2067
- * This module provides small, allocation-free utilities for working with values of type
2068
- * `A | null`, where `null` means "no value".
2069
- *
2070
- * Why not `Option<A>`?
2071
- * In TypeScript, `Option<A>` is often unnecessary. If `null` already models absence
2072
- * in your domain, using `A | null` keeps types simple, avoids extra wrappers, and
2073
- * reduces overhead. The key is that `A` itself must not include `null`; in this
2074
- * module `null` is reserved to mean "no value".
2075
- *
2076
- * When to use `A | null`:
2077
- * - Absence can be represented by `null` in your domain model.
2078
- * - You do not need to distinguish between "no value" and "value is null".
2079
- * - You want straightforward ergonomics and zero extra allocations.
2080
- *
2081
- * When to prefer `Option<A>`:
2082
- * - You must distinguish `None` from `Some(null)` (that is, `null` is a valid
2083
- * payload and carries meaning on its own).
2084
- * - You need a tagged representation for serialization or pattern matching across
2085
- * boundaries where `null` would be ambiguous.
2086
- * - You want the richer `Option` API and are comfortable with the extra wrapper.
2087
- *
2088
- * Lawfulness note:
2089
- * All helpers treat `null` as absence. Do not use these utilities with payloads
2090
- * where `A` can itself be `null`, or you will lose information. If you need to
2091
- * carry `null` as a valid payload, use `Option<A>` instead.
2092
- *
2093
- * @since 4.0.0
2094
- */
2095
- export * as NullOr from "./NullOr.ts"
2096
-
2097
2516
  /**
2098
2517
  * This module provides utility functions and type class instances for working with the `number` type in TypeScript.
2099
2518
  * It includes functions for basic arithmetic operations.
@@ -2103,11 +2522,100 @@ export * as NullOr from "./NullOr.ts"
2103
2522
  export * as Number from "./Number.ts"
2104
2523
 
2105
2524
  /**
2106
- * Design: "pretty good" persistency.
2107
- * Real updates copy only the path; unrelated branches keep referential identity.
2108
- * No-op updates may still allocate a new root/parents — callers must not rely on identity for no-ops.
2525
+ * Composable, immutable accessors for reading and updating nested data
2526
+ * structures without mutation.
2527
+ *
2528
+ * **Mental model**
2529
+ *
2530
+ * - **Optic** — a first-class reference to a piece inside a larger structure.
2531
+ * Compose optics to reach deeply nested values.
2532
+ * - **Iso** — lossless two-way conversion (`get`/`set`) between `S` and `A`.
2533
+ * Extends both {@link Lens} and {@link Prism}.
2534
+ * - **Lens** — focuses on exactly one part of `S`. `get` always succeeds;
2535
+ * `replace` needs the original `S` to produce the updated whole.
2536
+ * - **Prism** — focuses on a part that may not be present (e.g. a union
2537
+ * variant). `getResult` can fail; `set` builds a new `S` from `A` alone.
2538
+ * - **Optional** — the most general optic: both reading and writing can fail.
2539
+ * - **Traversal** — focuses on zero or more elements of an array-like
2540
+ * structure. Technically `Optional<S, ReadonlyArray<A>>`.
2541
+ * - **Hierarchy** (strongest → weakest):
2542
+ * `Iso > Lens | Prism > Optional`. Composing a weaker optic with any other
2543
+ * produces the weaker kind.
2544
+ *
2545
+ * **Common tasks**
2546
+ *
2547
+ * - Start a chain → {@link id} (identity iso)
2548
+ * - Drill into a struct key → `.key("name")` / `.optionalKey("name")`
2549
+ * - Drill into a key that may not exist → `.at("name")`
2550
+ * - Narrow a tagged union → `.tag("MyVariant")`
2551
+ * - Narrow by type guard → `.refine(guard)`
2552
+ * - Add validation → `.check(Schema.isGreaterThan(0))`
2553
+ * - Filter out `undefined` → `.notUndefined()`
2554
+ * - Pick/omit struct keys → `.pick(["a","b"])` / `.omit(["c"])`
2555
+ * - Traverse array elements → `.forEach(el => el.key("field"))`
2556
+ * - Build an iso → {@link makeIso}
2557
+ * - Build a lens → {@link makeLens}
2558
+ * - Build a prism → {@link makePrism}, {@link fromChecks}
2559
+ * - Build an optional → {@link makeOptional}
2560
+ * - Focus into `Option.Some` → {@link some}
2561
+ * - Focus into `Result.Success`/`Failure` → {@link success}, {@link failure}
2562
+ * - Convert record ↔ entries → {@link entries}
2563
+ * - Extract all traversal elements → {@link getAll}
2564
+ *
2565
+ * **Gotchas**
2566
+ *
2567
+ * - Updates are structurally persistent: only nodes on the path are cloned.
2568
+ * Unrelated branches keep referential identity. However, **no-op updates
2569
+ * may still allocate** a new root — do not rely on reference identity to
2570
+ * detect no-ops.
2571
+ * - `replace` silently returns the original `S` when the optic cannot focus
2572
+ * (e.g. wrong tag). Use `replaceResult` for explicit failure.
2573
+ * - `modify` also returns the original `S` on focus failure — it never throws.
2574
+ * - `.key()` and `.optionalKey()` do not work on union types (compile error).
2575
+ * - Only plain objects (`Object.prototype` or `null` prototype) and arrays can
2576
+ * be cloned. Class instances cause a runtime error on `replace`/`modify`.
2577
+ *
2578
+ * **Quickstart**
2579
+ *
2580
+ * **Example** (reading and updating nested state)
2581
+ *
2582
+ * ```ts
2583
+ * import { Optic } from "effect"
2584
+ *
2585
+ * type State = { user: { name: string; age: number } }
2586
+ *
2587
+ * const _age = Optic.id<State>().key("user").key("age")
2588
+ *
2589
+ * const s1: State = { user: { name: "Alice", age: 30 } }
2590
+ *
2591
+ * // Read
2592
+ * console.log(_age.get(s1))
2593
+ * // Output: 30
2594
+ *
2595
+ * // Update immutably
2596
+ * const s2 = _age.replace(31, s1)
2597
+ * console.log(s2)
2598
+ * // Output: { user: { name: "Alice", age: 31 } }
2599
+ *
2600
+ * // Modify with a function
2601
+ * const s3 = _age.modify((n) => n + 1)(s1)
2602
+ * console.log(s3)
2603
+ * // Output: { user: { name: "Alice", age: 31 } }
2604
+ *
2605
+ * // Referential identity is preserved for unrelated branches
2606
+ * console.log(s2.user !== s1.user)
2607
+ * // Output: true (on the path)
2608
+ * ```
2609
+ *
2610
+ * **See also**
2611
+ *
2612
+ * - {@link id} — entry point for optic chains
2613
+ * - {@link Lens} / {@link Prism} / {@link Optional} — core optic types
2614
+ * - {@link Traversal} / {@link getAll} — multi-focus optics
2615
+ * - {@link some} / {@link success} / {@link failure} — built-in prisms
2109
2616
  *
2110
2617
  * @since 4.0.0
2618
+ * @module
2111
2619
  */
2112
2620
  export * as Optic from "./Optic.ts"
2113
2621
 
@@ -2144,7 +2652,7 @@ export * as Optic from "./Optic.ts"
2144
2652
  * **Gotchas**
2145
2653
  *
2146
2654
  * - `Option.some(null)` is a valid `Some`; use {@link fromNullishOr} to treat `null`/`undefined` as `None`
2147
- * - {@link filterMap} is an alias for {@link flatMap}
2655
+ * - {@link filterMap} uses a `Filter` callback that returns `Result`
2148
2656
  * - {@link getOrThrow} throws a generic `Error`; prefer {@link getOrThrowWith} for custom errors
2149
2657
  * - `None` is a singleton; compare with {@link isNone}, not `===`
2150
2658
  * - When yielded in `Effect.gen`, a `None` becomes a `NoSuchElementError` defect
@@ -2270,8 +2778,7 @@ export * as Order from "./Order.ts"
2270
2778
  export * as Ordering from "./Ordering.ts"
2271
2779
 
2272
2780
  /**
2273
- * @since 3.19.4
2274
- * @experimental
2781
+ * @since 4.0.0
2275
2782
  */
2276
2783
  export * as PartitionedSemaphore from "./PartitionedSemaphore.ts"
2277
2784
 
@@ -2451,6 +2958,71 @@ export * as Redactable from "./Redactable.ts"
2451
2958
  export * as Redacted from "./Redacted.ts"
2452
2959
 
2453
2960
  /**
2961
+ * A module for reducing collections of values into a single result.
2962
+ *
2963
+ * A `Reducer<A>` extends {@link Combiner.Combiner} by adding an
2964
+ * `initialValue` (identity element) and a `combineAll` method that folds an
2965
+ * entire collection. Think `Array.prototype.reduce`, but packaged as a
2966
+ * reusable, composable value.
2967
+ *
2968
+ * ## Mental model
2969
+ *
2970
+ * - **Reducer** – a {@link Combiner.Combiner} plus an `initialValue` and a
2971
+ * `combineAll` method.
2972
+ * - **initialValue** – the neutral/identity element. Combining any value with
2973
+ * `initialValue` should return the original value unchanged (e.g. `0` for
2974
+ * addition, `""` for string concatenation).
2975
+ * - **combineAll** – folds an `Iterable<A>` starting from `initialValue`.
2976
+ * When omitted from {@link make}, a default left-to-right fold is used.
2977
+ * - **Purity** – all reducers produced by this module are pure; they never
2978
+ * mutate their arguments.
2979
+ * - **Composability** – reducers can be lifted into `Option`, `Struct`,
2980
+ * `Tuple`, `Record`, and other container types via helpers in those modules.
2981
+ * - **Subtype of Combiner** – every `Reducer` is also a valid
2982
+ * `Combiner`, so you can pass a `Reducer` anywhere a `Combiner` is
2983
+ * expected.
2984
+ *
2985
+ * ## Common tasks
2986
+ *
2987
+ * - Create a reducer from a combine function and initial value → {@link make}
2988
+ * - Swap argument order → {@link flip}
2989
+ * - Combine two values without an initial value → use {@link Combiner.Combiner}
2990
+ * instead
2991
+ *
2992
+ * ## Gotchas
2993
+ *
2994
+ * - `combineAll` on an empty iterable returns `initialValue`, not an error.
2995
+ * - The default `combineAll` folds left-to-right. If your `combine` is not
2996
+ * associative, order matters. Pass a custom `combineAll` to {@link make} if
2997
+ * you need different traversal or short-circuiting.
2998
+ * - A `Reducer` is also a valid `Combiner` — but a `Combiner` is *not* a
2999
+ * `Reducer` (it lacks `initialValue`).
3000
+ *
3001
+ * ## Quickstart
3002
+ *
3003
+ * **Example** (summing a list of numbers)
3004
+ *
3005
+ * ```ts
3006
+ * import { Reducer } from "effect"
3007
+ *
3008
+ * const Sum = Reducer.make<number>((a, b) => a + b, 0)
3009
+ *
3010
+ * console.log(Sum.combine(3, 4))
3011
+ * // Output: 7
3012
+ *
3013
+ * console.log(Sum.combineAll([1, 2, 3, 4]))
3014
+ * // Output: 10
3015
+ *
3016
+ * console.log(Sum.combineAll([]))
3017
+ * // Output: 0
3018
+ * ```
3019
+ *
3020
+ * ## See also
3021
+ *
3022
+ * - {@link make} – the primary constructor
3023
+ * - {@link Reducer} – the core interface
3024
+ * - {@link Combiner.Combiner} – the parent interface (no `initialValue`)
3025
+ *
2454
3026
  * @since 4.0.0
2455
3027
  */
2456
3028
  export * as Reducer from "./Reducer.ts"
@@ -2650,7 +3222,7 @@ export * as Runtime from "./Runtime.ts"
2650
3222
  *
2651
3223
  * // Retry with exponential backoff
2652
3224
  * const retryPolicy = Schedule.exponential("100 millis", 2.0)
2653
- * .pipe(Schedule.compose(Schedule.recurs(3)))
3225
+ * .pipe(Schedule.both(Schedule.recurs(3)))
2654
3226
  *
2655
3227
  * const program = Effect.gen(function*() {
2656
3228
  * // This will retry up to 3 times with exponential backoff
@@ -2675,6 +3247,88 @@ export * as Schedule from "./Schedule.ts"
2675
3247
  export * as Scheduler from "./Scheduler.ts"
2676
3248
 
2677
3249
  /**
3250
+ * Define data shapes, validate unknown input, and transform values between formats.
3251
+ *
3252
+ * ## Mental model
3253
+ *
3254
+ * - **Schema** — a description of a data shape. Every schema carries a decoded
3255
+ * *Type* (the value you work with) and an *Encoded* representation (the
3256
+ * serialized form, e.g. JSON).
3257
+ * - **Decoding** — turning unknown external data (API responses, form
3258
+ * submissions, config files) into typed, validated values.
3259
+ * - **Encoding** — turning typed values back into a serializable format.
3260
+ * - **Codec** — a schema that tracks both Type and Encoded, so it can decode
3261
+ * *and* encode. Most concrete schemas are Codecs.
3262
+ * - **Check / Filter** — a constraint attached to a schema (e.g. `isMinLength`,
3263
+ * `isGreaterThan`). Attach them with `.check(...)`.
3264
+ * - **Transformation** — a pair of functions (decode + encode) that convert
3265
+ * values between two schemas. Created with {@link decodeTo} / {@link encodeTo}.
3266
+ * - **Annotation** — metadata attached to a schema (title, description, custom
3267
+ * keys). Attach with `.annotate(...)`.
3268
+ *
3269
+ * ## Common tasks
3270
+ *
3271
+ * - Define a struct: {@link Struct}
3272
+ * - Define a union: {@link Union}, {@link TaggedUnion}, {@link Literals}
3273
+ * - Define an array: {@link ArraySchema}, {@link NonEmptyArray}
3274
+ * - Define a record: {@link Record}
3275
+ * - Define a tuple: {@link Tuple}, {@link TupleWithRest}
3276
+ * - Validate unknown data synchronously: {@link decodeUnknownSync}
3277
+ * - Validate unknown data (Effect): {@link decodeUnknownEffect}
3278
+ * - Encode a value: {@link encodeUnknownSync}, {@link encodeUnknownEffect}
3279
+ * - Type guard: {@link is}
3280
+ * - Assertion: {@link asserts}
3281
+ * - Add constraints: `.check(...)` with filters like {@link isMinLength},
3282
+ * {@link isGreaterThan}, {@link isPattern}, {@link isUUID}
3283
+ * - Transform between schemas: {@link decodeTo}, {@link encodeTo}
3284
+ * - Add a default for missing keys: {@link withDecodingDefault}, {@link withDecodingDefaultKey}
3285
+ * - Create branded types: {@link brand}
3286
+ * - Define classes with validation: {@link Class}, {@link TaggedClass}
3287
+ * - Define error classes: {@link ErrorClass}, {@link TaggedErrorClass}
3288
+ * - Generate JSON Schema: {@link toJsonSchemaDocument}
3289
+ * - Generate test data: {@link toArbitrary}
3290
+ * - Derive equivalence: {@link toEquivalence}
3291
+ *
3292
+ * ## Gotchas
3293
+ *
3294
+ * - `Schema.optional` creates `T | undefined` (key can be missing *or*
3295
+ * `undefined`). Use `Schema.optionalKey` for exact optional properties.
3296
+ * - `decodeTo` is curried: use `from.pipe(Schema.decodeTo(to, ...))`.
3297
+ * - `decodeUnknownSync` throws on failure. Use `decodeUnknownExit` or
3298
+ * `decodeUnknownOption` for non-throwing alternatives.
3299
+ * - Filters do not change the TypeScript type. Use {@link refine} or
3300
+ * {@link brand} to narrow the type.
3301
+ * - Recursive schemas require {@link suspend} to avoid infinite loops.
3302
+ *
3303
+ * ## Quickstart
3304
+ *
3305
+ * **Example** (Validate a user object)
3306
+ *
3307
+ * ```ts
3308
+ * import { Schema } from "effect"
3309
+ *
3310
+ * const User = Schema.Struct({
3311
+ * name: Schema.String.check(Schema.isMinLength(1)),
3312
+ * age: Schema.Number.check(Schema.isGreaterThanOrEqualTo(0)),
3313
+ * email: Schema.optionalKey(Schema.String)
3314
+ * })
3315
+ *
3316
+ * // Decode unknown input — throws on failure
3317
+ * const user = Schema.decodeUnknownSync(User)({
3318
+ * name: "Alice",
3319
+ * age: 30
3320
+ * })
3321
+ *
3322
+ * console.log(user)
3323
+ * // { name: "Alice", age: 30 }
3324
+ * ```
3325
+ *
3326
+ * @see {@link Schema} — type-level view tracking only the decoded Type
3327
+ * @see {@link Codec} — type-level view tracking both Type and Encoded
3328
+ * @see {@link Struct} — define object shapes
3329
+ * @see {@link decodeUnknownSync} — synchronous validation
3330
+ * @see {@link decodeTo} — schema transformations
3331
+ *
2678
3332
  * @since 4.0.0
2679
3333
  */
2680
3334
  export * as Schema from "./Schema.ts"
@@ -3137,6 +3791,11 @@ export * as ScopedCache from "./ScopedCache.ts"
3137
3791
  */
3138
3792
  export * as ScopedRef from "./ScopedRef.ts"
3139
3793
 
3794
+ /**
3795
+ * @since 2.0.0
3796
+ */
3797
+ export * as Semaphore from "./Semaphore.ts"
3798
+
3140
3799
  /**
3141
3800
  * This module provides a data structure called `ServiceMap` that can be used
3142
3801
  * for dependency injection in effectful programs. It is essentially a table
@@ -3386,6 +4045,14 @@ export * as Tuple from "./Tuple.ts"
3386
4045
  */
3387
4046
  export * as TxChunk from "./TxChunk.ts"
3388
4047
 
4048
+ /**
4049
+ * A transactional deferred value — a write-once cell that can be read within transactions.
4050
+ * Readers retry until a value is set; once set, the value is immutable.
4051
+ *
4052
+ * @since 4.0.0
4053
+ */
4054
+ export * as TxDeferred from "./TxDeferred.ts"
4055
+
3389
4056
  /**
3390
4057
  * @since 2.0.0
3391
4058
  */
@@ -3396,6 +4063,25 @@ export * as TxHashMap from "./TxHashMap.ts"
3396
4063
  */
3397
4064
  export * as TxHashSet from "./TxHashSet.ts"
3398
4065
 
4066
+ /**
4067
+ * A transactional priority queue. Elements are dequeued in order determined by the
4068
+ * provided `Order` instance. All operations participate in the STM transaction system.
4069
+ *
4070
+ * @since 4.0.0
4071
+ */
4072
+ export * as TxPriorityQueue from "./TxPriorityQueue.ts"
4073
+
4074
+ /**
4075
+ * TxPubSub is a transactional publish/subscribe hub that provides Software Transactional Memory
4076
+ * (STM) semantics for message broadcasting. Publishers broadcast messages to all current
4077
+ * subscribers, with each subscriber receiving its own copy of every published message.
4078
+ *
4079
+ * Supports multiple queue strategies: bounded, unbounded, dropping, and sliding.
4080
+ *
4081
+ * @since 4.0.0
4082
+ */
4083
+ export * as TxPubSub from "./TxPubSub.ts"
4084
+
3399
4085
  /**
3400
4086
  * TxQueue is a transactional queue data structure that provides Software Transactional Memory (STM)
3401
4087
  * semantics for queue operations. It uses TxRef for transactional state management and supports
@@ -3409,6 +4095,16 @@ export * as TxHashSet from "./TxHashSet.ts"
3409
4095
  */
3410
4096
  export * as TxQueue from "./TxQueue.ts"
3411
4097
 
4098
+ /**
4099
+ * TxReentrantLock is a transactional read/write lock with reentrant semantics using Software
4100
+ * Transactional Memory (STM). Multiple readers can hold the lock concurrently, OR a single
4101
+ * writer can hold exclusive access. A fiber holding a write lock may acquire additional
4102
+ * read or write locks (reentrancy).
4103
+ *
4104
+ * @since 4.0.0
4105
+ */
4106
+ export * as TxReentrantLock from "./TxReentrantLock.ts"
4107
+
3412
4108
  /**
3413
4109
  * TxRef is a transactional value, it can be read and modified within the body of a transaction.
3414
4110
  *
@@ -3426,6 +4122,14 @@ export * as TxRef from "./TxRef.ts"
3426
4122
  */
3427
4123
  export * as TxSemaphore from "./TxSemaphore.ts"
3428
4124
 
4125
+ /**
4126
+ * TxSubscriptionRef is a TxRef that allows subscribing to all committed changes. Subscribers
4127
+ * receive the current value followed by every subsequent update via a transactional queue.
4128
+ *
4129
+ * @since 4.0.0
4130
+ */
4131
+ export * as TxSubscriptionRef from "./TxSubscriptionRef.ts"
4132
+
3429
4133
  /**
3430
4134
  * Type-level utility types for TypeScript.
3431
4135
  *
@@ -3519,6 +4223,62 @@ export * as UndefinedOr from "./UndefinedOr.ts"
3519
4223
  export * as Unify from "./Unify.ts"
3520
4224
 
3521
4225
  /**
4226
+ * Internal utilities for the Effect ecosystem's generator-based syntax and
4227
+ * higher-kinded type machinery.
4228
+ *
4229
+ * ## Mental model
4230
+ *
4231
+ * - **SingleShotGen** — an `IterableIterator` wrapper that yields its value
4232
+ * exactly once. Used internally by `[Symbol.iterator]()` on Effect, Option,
4233
+ * Result, and other yieldable types so they work inside generator functions.
4234
+ * - **Gen** — a type-level signature for generator-based monadic composition
4235
+ * (`gen` functions). Parametric over any `TypeLambda` so each module
4236
+ * (Effect, Option, Result, ...) can expose its own `gen` with correct types.
4237
+ * - **Variance** — a type-level marker that encodes the variance (covariant,
4238
+ * contravariant, invariant) of a `TypeLambda`'s type parameters.
4239
+ * Used by {@link Gen} for type inference.
4240
+ *
4241
+ * ## Common tasks
4242
+ *
4243
+ * - Make a type yieldable in generators -> implement `[Symbol.iterator]()` returning a {@link SingleShotGen}
4244
+ * - Define a generator-based API for a new TypeLambda -> type it as {@link Gen}`<MyTypeLambda>`
4245
+ * - Encode variance for a higher-kinded type -> use {@link Variance}
4246
+ *
4247
+ * ## Gotchas
4248
+ *
4249
+ * - {@link SingleShotGen} yields its value only on the first `.next()` call.
4250
+ * Calling `.next()` again returns `{ done: true }`. Iterating the same
4251
+ * instance twice will skip the value on the second pass; call
4252
+ * `[Symbol.iterator]()` to get a fresh iterator.
4253
+ * - {@link Gen} and {@link Variance} are pure type-level constructs — they
4254
+ * have no runtime representation.
4255
+ *
4256
+ * ## Quickstart
4257
+ *
4258
+ * **Example** (Using SingleShotGen to make a type yieldable)
4259
+ *
4260
+ * ```ts
4261
+ * import { Utils } from "effect"
4262
+ *
4263
+ * class MyWrapper<A> {
4264
+ * constructor(readonly value: A) {}
4265
+ * [Symbol.iterator]() {
4266
+ * return new Utils.SingleShotGen<MyWrapper<A>, A>(this)
4267
+ * }
4268
+ * }
4269
+ *
4270
+ * const w = new MyWrapper(42)
4271
+ * const iter = w[Symbol.iterator]()
4272
+ * console.log(iter.next(undefined as any))
4273
+ * // { value: MyWrapper { value: 42 }, done: false }
4274
+ * console.log(iter.next(42))
4275
+ * // { value: 42, done: true }
4276
+ * ```
4277
+ *
4278
+ * @see {@link SingleShotGen}
4279
+ * @see {@link Gen}
4280
+ * @see {@link Variance}
4281
+ *
3522
4282
  * @since 2.0.0
3523
4283
  */
3524
4284
  export * as Utils from "./Utils.ts"