effect 4.0.0-rc.112 → 4.0.0-rc.113

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 (1229) hide show
  1. package/AGENTS.md +24 -9
  2. package/CLAUDE.md +24 -9
  3. package/ai-docs/package.json +2 -2
  4. package/ai-docs/src/01_effect/01_basics/02_effect-fn.ts +18 -5
  5. package/ai-docs/src/01_effect/01_basics/index.md +5 -3
  6. package/ai-docs/src/01_effect/03_services/20_layer-composition.ts +1 -1
  7. package/ai-docs/src/01_effect/03_services/20_layer-unwrap.ts +2 -2
  8. package/ai-docs/src/01_effect/05_resources/10_acquire-release.ts +2 -2
  9. package/ai-docs/src/03_stream/30_encoding.ts +5 -7
  10. package/ai-docs/src/08_observability/10_logging.ts +1 -1
  11. package/ai-docs/src/70_cli/10_basics.ts +7 -7
  12. package/ai-docs/src/71_ai/10_language-model.ts +2 -2
  13. package/ai-docs/src/71_ai/20_tools.ts +1 -1
  14. package/ai-docs/src/71_ai/30_chat.ts +1 -1
  15. package/dist/Array.d.ts +86 -50
  16. package/dist/Array.d.ts.map +1 -1
  17. package/dist/Array.js +58 -32
  18. package/dist/Array.js.map +1 -1
  19. package/dist/BigDecimal.d.ts +5 -1
  20. package/dist/BigDecimal.d.ts.map +1 -1
  21. package/dist/BigDecimal.js +40 -23
  22. package/dist/BigDecimal.js.map +1 -1
  23. package/dist/ByteSize.d.ts +633 -0
  24. package/dist/ByteSize.d.ts.map +1 -0
  25. package/dist/ByteSize.js +524 -0
  26. package/dist/ByteSize.js.map +1 -0
  27. package/dist/Cache.d.ts.map +1 -1
  28. package/dist/Cache.js +17 -3
  29. package/dist/Cache.js.map +1 -1
  30. package/dist/Cause.d.ts +1 -1
  31. package/dist/Cause.d.ts.map +1 -1
  32. package/dist/Channel.d.ts +97 -24
  33. package/dist/Channel.d.ts.map +1 -1
  34. package/dist/Channel.js +66 -39
  35. package/dist/Channel.js.map +1 -1
  36. package/dist/Chunk.d.ts +49 -28
  37. package/dist/Chunk.d.ts.map +1 -1
  38. package/dist/Chunk.js +27 -18
  39. package/dist/Chunk.js.map +1 -1
  40. package/dist/Config.d.ts +162 -201
  41. package/dist/Config.d.ts.map +1 -1
  42. package/dist/Config.js +103 -212
  43. package/dist/Config.js.map +1 -1
  44. package/dist/ConfigProvider.d.ts +4 -4
  45. package/dist/ConfigProvider.d.ts.map +1 -1
  46. package/dist/ConfigProvider.js +7 -7
  47. package/dist/ConfigProvider.js.map +1 -1
  48. package/dist/Context.d.ts +31 -0
  49. package/dist/Context.d.ts.map +1 -1
  50. package/dist/Context.js.map +1 -1
  51. package/dist/Cron.d.ts +2 -2
  52. package/dist/Cron.d.ts.map +1 -1
  53. package/dist/Cron.js +2 -2
  54. package/dist/Cron.js.map +1 -1
  55. package/dist/Crypto.d.ts +1 -1
  56. package/dist/Crypto.d.ts.map +1 -1
  57. package/dist/Crypto.js +3 -2
  58. package/dist/Crypto.js.map +1 -1
  59. package/dist/DateTime.d.ts +2 -2
  60. package/dist/DateTime.d.ts.map +1 -1
  61. package/dist/Deferred.d.ts.map +1 -1
  62. package/dist/Deferred.js +6 -6
  63. package/dist/Deferred.js.map +1 -1
  64. package/dist/Duration.d.ts +1 -1
  65. package/dist/Duration.d.ts.map +1 -1
  66. package/dist/Duration.js +1 -1
  67. package/dist/Duration.js.map +1 -1
  68. package/dist/Effect.d.ts +220 -113
  69. package/dist/Effect.d.ts.map +1 -1
  70. package/dist/Effect.js +27 -26
  71. package/dist/Effect.js.map +1 -1
  72. package/dist/Effectable.d.ts +58 -2
  73. package/dist/Effectable.d.ts.map +1 -1
  74. package/dist/Effectable.js +58 -6
  75. package/dist/Effectable.js.map +1 -1
  76. package/dist/Encoding.d.ts +3 -1
  77. package/dist/Encoding.d.ts.map +1 -1
  78. package/dist/Encoding.js +40 -10
  79. package/dist/Encoding.js.map +1 -1
  80. package/dist/Equal.d.ts +1 -1
  81. package/dist/Equal.d.ts.map +1 -1
  82. package/dist/Equal.js +1 -1
  83. package/dist/Equal.js.map +1 -1
  84. package/dist/ExecutionPlan.d.ts.map +1 -1
  85. package/dist/ExecutionPlan.js +1 -0
  86. package/dist/ExecutionPlan.js.map +1 -1
  87. package/dist/Fiber.d.ts +32 -8
  88. package/dist/Fiber.d.ts.map +1 -1
  89. package/dist/Fiber.js.map +1 -1
  90. package/dist/FiberHandle.js +3 -3
  91. package/dist/FiberHandle.js.map +1 -1
  92. package/dist/FiberMap.d.ts +12 -6
  93. package/dist/FiberMap.d.ts.map +1 -1
  94. package/dist/FiberMap.js +11 -6
  95. package/dist/FiberMap.js.map +1 -1
  96. package/dist/FileSystem.d.ts +42 -210
  97. package/dist/FileSystem.d.ts.map +1 -1
  98. package/dist/FileSystem.js +16 -148
  99. package/dist/FileSystem.js.map +1 -1
  100. package/dist/Formatter.d.ts +1 -0
  101. package/dist/Formatter.d.ts.map +1 -1
  102. package/dist/Formatter.js +19 -3
  103. package/dist/Formatter.js.map +1 -1
  104. package/dist/Graph.d.ts +48 -20
  105. package/dist/Graph.d.ts.map +1 -1
  106. package/dist/Graph.js +20 -5
  107. package/dist/Graph.js.map +1 -1
  108. package/dist/Hash.d.ts +1 -1
  109. package/dist/Hash.d.ts.map +1 -1
  110. package/dist/Hash.js +5 -14
  111. package/dist/Hash.js.map +1 -1
  112. package/dist/HashMap.d.ts +1 -1
  113. package/dist/HashMap.d.ts.map +1 -1
  114. package/dist/HashRing.d.ts +6 -1
  115. package/dist/HashRing.d.ts.map +1 -1
  116. package/dist/HashRing.js +9 -2
  117. package/dist/HashRing.js.map +1 -1
  118. package/dist/HashSet.d.ts +1 -1
  119. package/dist/HashSet.d.ts.map +1 -1
  120. package/dist/HashSet.js.map +1 -1
  121. package/dist/Iterable.d.ts +33 -15
  122. package/dist/Iterable.d.ts.map +1 -1
  123. package/dist/Iterable.js +58 -45
  124. package/dist/Iterable.js.map +1 -1
  125. package/dist/JsonPatch.js +4 -4
  126. package/dist/JsonPatch.js.map +1 -1
  127. package/dist/JsonPointer.d.ts +68 -4
  128. package/dist/JsonPointer.d.ts.map +1 -1
  129. package/dist/JsonPointer.js +90 -4
  130. package/dist/JsonPointer.js.map +1 -1
  131. package/dist/JsonSchema.js +8 -22
  132. package/dist/JsonSchema.js.map +1 -1
  133. package/dist/Layer.d.ts +47 -4
  134. package/dist/Layer.d.ts.map +1 -1
  135. package/dist/Layer.js +4 -6
  136. package/dist/Layer.js.map +1 -1
  137. package/dist/LayerMap.d.ts +1 -3
  138. package/dist/LayerMap.d.ts.map +1 -1
  139. package/dist/LayerMap.js +7 -5
  140. package/dist/LayerMap.js.map +1 -1
  141. package/dist/LayerRef.d.ts.map +1 -1
  142. package/dist/LayerRef.js +7 -5
  143. package/dist/LayerRef.js.map +1 -1
  144. package/dist/Logger.d.ts +114 -9
  145. package/dist/Logger.d.ts.map +1 -1
  146. package/dist/Logger.js +109 -9
  147. package/dist/Logger.js.map +1 -1
  148. package/dist/ManagedRuntime.js +1 -1
  149. package/dist/ManagedRuntime.js.map +1 -1
  150. package/dist/Match.d.ts +43 -31
  151. package/dist/Match.d.ts.map +1 -1
  152. package/dist/Match.js +5 -2
  153. package/dist/Match.js.map +1 -1
  154. package/dist/Metric.d.ts +11 -4
  155. package/dist/Metric.d.ts.map +1 -1
  156. package/dist/Metric.js +14 -18
  157. package/dist/Metric.js.map +1 -1
  158. package/dist/MutableHashMap.d.ts +1 -1
  159. package/dist/MutableHashMap.d.ts.map +1 -1
  160. package/dist/MutableHashMap.js +1 -1
  161. package/dist/MutableHashMap.js.map +1 -1
  162. package/dist/MutableHashSet.d.ts +1 -1
  163. package/dist/MutableHashSet.d.ts.map +1 -1
  164. package/dist/MutableHashSet.js +1 -1
  165. package/dist/MutableHashSet.js.map +1 -1
  166. package/dist/MutableList.d.ts +13 -2
  167. package/dist/MutableList.d.ts.map +1 -1
  168. package/dist/MutableList.js +18 -2
  169. package/dist/MutableList.js.map +1 -1
  170. package/dist/Number.d.ts +6 -0
  171. package/dist/Number.d.ts.map +1 -1
  172. package/dist/Number.js +3 -1
  173. package/dist/Number.js.map +1 -1
  174. package/dist/Optic.d.ts.map +1 -1
  175. package/dist/Optic.js +5 -4
  176. package/dist/Optic.js.map +1 -1
  177. package/dist/Option.d.ts +1 -1
  178. package/dist/Option.d.ts.map +1 -1
  179. package/dist/Option.js +1 -1
  180. package/dist/Option.js.map +1 -1
  181. package/dist/Order.d.ts +1 -0
  182. package/dist/Order.d.ts.map +1 -1
  183. package/dist/Order.js +3 -1
  184. package/dist/Order.js.map +1 -1
  185. package/dist/PartitionedSemaphore.d.ts.map +1 -1
  186. package/dist/PartitionedSemaphore.js +1 -2
  187. package/dist/PartitionedSemaphore.js.map +1 -1
  188. package/dist/Path.d.ts +1 -1
  189. package/dist/Path.d.ts.map +1 -1
  190. package/dist/Path.js +1 -1
  191. package/dist/Path.js.map +1 -1
  192. package/dist/PlatformError.d.ts +1 -1
  193. package/dist/PlatformError.d.ts.map +1 -1
  194. package/dist/PlatformError.js +1 -1
  195. package/dist/PlatformError.js.map +1 -1
  196. package/dist/Pool.d.ts +38 -1
  197. package/dist/Pool.d.ts.map +1 -1
  198. package/dist/Pool.js +81 -5
  199. package/dist/Pool.js.map +1 -1
  200. package/dist/PrimaryKey.d.ts +1 -1
  201. package/dist/PrimaryKey.d.ts.map +1 -1
  202. package/dist/PrimaryKey.js +1 -1
  203. package/dist/PrimaryKey.js.map +1 -1
  204. package/dist/PubSub.d.ts +21 -9
  205. package/dist/PubSub.d.ts.map +1 -1
  206. package/dist/PubSub.js +18 -14
  207. package/dist/PubSub.js.map +1 -1
  208. package/dist/Queue.d.ts +82 -6
  209. package/dist/Queue.d.ts.map +1 -1
  210. package/dist/Queue.js +116 -27
  211. package/dist/Queue.js.map +1 -1
  212. package/dist/Random.d.ts +17 -4
  213. package/dist/Random.d.ts.map +1 -1
  214. package/dist/Random.js +1 -1
  215. package/dist/Random.js.map +1 -1
  216. package/dist/RcMap.d.ts.map +1 -1
  217. package/dist/RcMap.js +15 -9
  218. package/dist/RcMap.js.map +1 -1
  219. package/dist/Redacted.d.ts +1 -1
  220. package/dist/Redacted.d.ts.map +1 -1
  221. package/dist/Redacted.js +1 -1
  222. package/dist/Redacted.js.map +1 -1
  223. package/dist/RequestResolver.d.ts +15 -9
  224. package/dist/RequestResolver.d.ts.map +1 -1
  225. package/dist/RequestResolver.js +33 -15
  226. package/dist/RequestResolver.js.map +1 -1
  227. package/dist/Result.d.ts +1 -1
  228. package/dist/Result.d.ts.map +1 -1
  229. package/dist/Result.js +1 -1
  230. package/dist/Result.js.map +1 -1
  231. package/dist/Scheduler.d.ts.map +1 -1
  232. package/dist/Scheduler.js +19 -10
  233. package/dist/Scheduler.js.map +1 -1
  234. package/dist/Schema.d.ts +2155 -2415
  235. package/dist/Schema.d.ts.map +1 -1
  236. package/dist/Schema.js +2755 -4174
  237. package/dist/Schema.js.map +1 -1
  238. package/dist/SchemaAST.d.ts +354 -183
  239. package/dist/SchemaAST.d.ts.map +1 -1
  240. package/dist/SchemaAST.js +277 -601
  241. package/dist/SchemaAST.js.map +1 -1
  242. package/dist/SchemaGetter.d.ts +46 -22
  243. package/dist/SchemaGetter.d.ts.map +1 -1
  244. package/dist/SchemaGetter.js +56 -53
  245. package/dist/SchemaGetter.js.map +1 -1
  246. package/dist/SchemaIssue.d.ts +122 -188
  247. package/dist/SchemaIssue.d.ts.map +1 -1
  248. package/dist/SchemaIssue.js +48 -263
  249. package/dist/SchemaIssue.js.map +1 -1
  250. package/dist/SchemaParser.js +2 -9
  251. package/dist/SchemaParser.js.map +1 -1
  252. package/dist/SchemaRepresentation.d.ts +1099 -16
  253. package/dist/SchemaRepresentation.d.ts.map +1 -1
  254. package/dist/SchemaRepresentation.js +1341 -20
  255. package/dist/SchemaRepresentation.js.map +1 -1
  256. package/dist/SchemaTransformation.d.ts +49 -16
  257. package/dist/SchemaTransformation.d.ts.map +1 -1
  258. package/dist/SchemaTransformation.js +75 -98
  259. package/dist/SchemaTransformation.js.map +1 -1
  260. package/dist/ScopedCache.d.ts.map +1 -1
  261. package/dist/ScopedCache.js +10 -3
  262. package/dist/ScopedCache.js.map +1 -1
  263. package/dist/Sink.d.ts +9 -4
  264. package/dist/Sink.d.ts.map +1 -1
  265. package/dist/Sink.js +49 -31
  266. package/dist/Sink.js.map +1 -1
  267. package/dist/Stream.d.ts +221 -35
  268. package/dist/Stream.d.ts.map +1 -1
  269. package/dist/Stream.js +168 -84
  270. package/dist/Stream.js.map +1 -1
  271. package/dist/String.d.ts +16 -6
  272. package/dist/String.d.ts.map +1 -1
  273. package/dist/String.js +12 -5
  274. package/dist/String.js.map +1 -1
  275. package/dist/Struct.d.ts.map +1 -1
  276. package/dist/Struct.js +7 -4
  277. package/dist/Struct.js.map +1 -1
  278. package/dist/SynchronizedRef.d.ts +3 -2
  279. package/dist/SynchronizedRef.d.ts.map +1 -1
  280. package/dist/SynchronizedRef.js.map +1 -1
  281. package/dist/Terminal.d.ts +3 -3
  282. package/dist/Terminal.d.ts.map +1 -1
  283. package/dist/Terminal.js +3 -3
  284. package/dist/Terminal.js.map +1 -1
  285. package/dist/Tracer.d.ts +27 -7
  286. package/dist/Tracer.d.ts.map +1 -1
  287. package/dist/Tracer.js +38 -13
  288. package/dist/Tracer.js.map +1 -1
  289. package/dist/Trie.d.ts +1 -1
  290. package/dist/Trie.d.ts.map +1 -1
  291. package/dist/Tuple.d.ts +2 -1
  292. package/dist/Tuple.d.ts.map +1 -1
  293. package/dist/Tuple.js.map +1 -1
  294. package/dist/TxChunk.d.ts +1 -1
  295. package/dist/TxChunk.d.ts.map +1 -1
  296. package/dist/TxChunk.js +1 -1
  297. package/dist/TxChunk.js.map +1 -1
  298. package/dist/TxDeferred.d.ts +1 -1
  299. package/dist/TxDeferred.d.ts.map +1 -1
  300. package/dist/TxDeferred.js +1 -1
  301. package/dist/TxDeferred.js.map +1 -1
  302. package/dist/TxHashMap.d.ts +1 -1
  303. package/dist/TxHashMap.d.ts.map +1 -1
  304. package/dist/TxHashMap.js +1 -1
  305. package/dist/TxHashMap.js.map +1 -1
  306. package/dist/TxHashSet.d.ts +1 -1
  307. package/dist/TxHashSet.d.ts.map +1 -1
  308. package/dist/TxHashSet.js +1 -1
  309. package/dist/TxHashSet.js.map +1 -1
  310. package/dist/TxPriorityQueue.d.ts +1 -1
  311. package/dist/TxPriorityQueue.d.ts.map +1 -1
  312. package/dist/TxPriorityQueue.js +1 -1
  313. package/dist/TxPriorityQueue.js.map +1 -1
  314. package/dist/TxPubSub.d.ts +1 -1
  315. package/dist/TxPubSub.d.ts.map +1 -1
  316. package/dist/TxPubSub.js +1 -1
  317. package/dist/TxPubSub.js.map +1 -1
  318. package/dist/TxQueue.d.ts +9 -9
  319. package/dist/TxQueue.d.ts.map +1 -1
  320. package/dist/TxQueue.js +93 -86
  321. package/dist/TxQueue.js.map +1 -1
  322. package/dist/TxReentrantLock.d.ts +29 -1
  323. package/dist/TxReentrantLock.d.ts.map +1 -1
  324. package/dist/TxReentrantLock.js +29 -1
  325. package/dist/TxReentrantLock.js.map +1 -1
  326. package/dist/TxRef.d.ts +1 -1
  327. package/dist/TxRef.d.ts.map +1 -1
  328. package/dist/TxRef.js +1 -1
  329. package/dist/TxRef.js.map +1 -1
  330. package/dist/TxSemaphore.d.ts +1 -1
  331. package/dist/TxSemaphore.d.ts.map +1 -1
  332. package/dist/TxSemaphore.js +1 -1
  333. package/dist/TxSemaphore.js.map +1 -1
  334. package/dist/TxSubscriptionRef.d.ts +1 -1
  335. package/dist/TxSubscriptionRef.d.ts.map +1 -1
  336. package/dist/TxSubscriptionRef.js +1 -1
  337. package/dist/TxSubscriptionRef.js.map +1 -1
  338. package/dist/Types.d.ts +33 -19
  339. package/dist/Types.d.ts.map +1 -1
  340. package/dist/Utils.d.ts.map +1 -1
  341. package/dist/Utils.js +2 -1
  342. package/dist/Utils.js.map +1 -1
  343. package/dist/index.d.ts +4 -0
  344. package/dist/index.d.ts.map +1 -1
  345. package/dist/index.js +4 -0
  346. package/dist/index.js.map +1 -1
  347. package/dist/internal/arbitrary/model.d.ts +2 -0
  348. package/dist/internal/arbitrary/model.d.ts.map +1 -0
  349. package/dist/internal/arbitrary/model.js +495 -0
  350. package/dist/internal/arbitrary/model.js.map +1 -0
  351. package/dist/internal/arbitrary/regexp.d.ts +2 -0
  352. package/dist/internal/arbitrary/regexp.d.ts.map +1 -0
  353. package/dist/internal/arbitrary/regexp.js +789 -0
  354. package/dist/internal/arbitrary/regexp.js.map +1 -0
  355. package/dist/internal/arbitrary/runner.d.ts +2 -0
  356. package/dist/internal/arbitrary/runner.d.ts.map +1 -0
  357. package/dist/internal/arbitrary/runner.js +496 -0
  358. package/dist/internal/arbitrary/runner.js.map +1 -0
  359. package/dist/internal/arbitrary/schema.d.ts.map +1 -0
  360. package/dist/internal/arbitrary/schema.js +1340 -0
  361. package/dist/internal/arbitrary/schema.js.map +1 -0
  362. package/dist/internal/core.js +27 -13
  363. package/dist/internal/core.js.map +1 -1
  364. package/dist/internal/count.d.ts +2 -0
  365. package/dist/internal/count.d.ts.map +1 -0
  366. package/dist/internal/count.js +14 -0
  367. package/dist/internal/count.js.map +1 -0
  368. package/dist/internal/dateTime.js +4 -10
  369. package/dist/internal/dateTime.js.map +1 -1
  370. package/dist/internal/effect.js +386 -251
  371. package/dist/internal/effect.js.map +1 -1
  372. package/dist/internal/graph.js +3 -1
  373. package/dist/internal/graph.js.map +1 -1
  374. package/dist/internal/hashMap.js +5 -3
  375. package/dist/internal/hashMap.js.map +1 -1
  376. package/dist/internal/hashSet.js +1 -1
  377. package/dist/internal/hashSet.js.map +1 -1
  378. package/dist/internal/matcher.js +1 -1
  379. package/dist/internal/matcher.js.map +1 -1
  380. package/dist/internal/metric.js +1 -1
  381. package/dist/internal/metric.js.map +1 -1
  382. package/dist/internal/option.js +6 -5
  383. package/dist/internal/option.js.map +1 -1
  384. package/dist/internal/random.js +17 -0
  385. package/dist/internal/random.js.map +1 -1
  386. package/dist/internal/rcRef.js +10 -7
  387. package/dist/internal/rcRef.js.map +1 -1
  388. package/dist/internal/references.js +1 -0
  389. package/dist/internal/references.js.map +1 -1
  390. package/dist/internal/request.js +13 -6
  391. package/dist/internal/request.js.map +1 -1
  392. package/dist/internal/result.js +11 -9
  393. package/dist/internal/result.js.map +1 -1
  394. package/dist/internal/schema/annotations.js +1 -1
  395. package/dist/internal/schema/annotations.js.map +1 -1
  396. package/dist/internal/schema/fromJsonSchemaDocument.js +14 -12
  397. package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
  398. package/dist/internal/schema/fromRepresentation.js +5 -5
  399. package/dist/internal/schema/fromRepresentation.js.map +1 -1
  400. package/dist/internal/schema/make.d.ts +2 -0
  401. package/dist/internal/schema/make.d.ts.map +1 -0
  402. package/dist/internal/schema/{schema.js → make.js} +1 -25
  403. package/dist/internal/schema/make.js.map +1 -0
  404. package/dist/internal/schema/parser.d.ts +0 -12
  405. package/dist/internal/schema/parser.d.ts.map +1 -1
  406. package/dist/internal/schema/parser.js +7 -0
  407. package/dist/internal/schema/parser.js.map +1 -1
  408. package/dist/internal/schema/standardSchema.d.ts +2 -0
  409. package/dist/internal/schema/standardSchema.d.ts.map +1 -0
  410. package/dist/internal/schema/standardSchema.js +112 -0
  411. package/dist/internal/schema/standardSchema.js.map +1 -0
  412. package/dist/internal/schema/toCodeDocument.js +34 -22
  413. package/dist/internal/schema/toCodeDocument.js.map +1 -1
  414. package/dist/internal/schema/toCodec.d.ts +2 -0
  415. package/dist/internal/schema/toCodec.d.ts.map +1 -0
  416. package/dist/internal/schema/toCodec.js +242 -0
  417. package/dist/internal/schema/toCodec.js.map +1 -0
  418. package/dist/internal/schema/toDifferJsonPatch.d.ts +2 -0
  419. package/dist/internal/schema/toDifferJsonPatch.d.ts.map +1 -0
  420. package/dist/internal/schema/toDifferJsonPatch.js +20 -0
  421. package/dist/internal/schema/toDifferJsonPatch.js.map +1 -0
  422. package/dist/internal/schema/toEncoderXml.d.ts +2 -0
  423. package/dist/internal/schema/toEncoderXml.d.ts.map +1 -0
  424. package/dist/internal/schema/toEncoderXml.js +104 -0
  425. package/dist/internal/schema/toEncoderXml.js.map +1 -0
  426. package/dist/internal/schema/toEquivalence.js +66 -0
  427. package/dist/internal/schema/toEquivalence.js.map +1 -1
  428. package/dist/internal/schema/toFormatter.d.ts +2 -0
  429. package/dist/internal/schema/toFormatter.d.ts.map +1 -0
  430. package/dist/internal/schema/toFormatter.js +227 -0
  431. package/dist/internal/schema/toFormatter.js.map +1 -0
  432. package/dist/internal/schema/toIso.d.ts +2 -0
  433. package/dist/internal/schema/toIso.d.ts.map +1 -0
  434. package/dist/internal/schema/toIso.js +17 -0
  435. package/dist/internal/schema/toIso.js.map +1 -0
  436. package/dist/internal/schema/toJsonSchemaDocument.js +122 -71
  437. package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
  438. package/dist/internal/schema/toRepresentation.js +3 -1
  439. package/dist/internal/schema/toRepresentation.js.map +1 -1
  440. package/dist/internal/schemaError.d.ts +4 -0
  441. package/dist/internal/schemaError.d.ts.map +1 -0
  442. package/dist/internal/schemaError.js +6 -0
  443. package/dist/internal/schemaError.js.map +1 -0
  444. package/dist/internal/stream.js +5 -6
  445. package/dist/internal/stream.js.map +1 -1
  446. package/dist/internal/tracer.d.ts +1 -3
  447. package/dist/internal/tracer.d.ts.map +1 -1
  448. package/dist/internal/tracer.js +6 -0
  449. package/dist/internal/tracer.js.map +1 -1
  450. package/dist/internal/trie.js +2 -2
  451. package/dist/internal/trie.js.map +1 -1
  452. package/dist/internal/uuid.d.ts +1 -2
  453. package/dist/internal/uuid.d.ts.map +1 -1
  454. package/dist/internal/uuid.js +2 -0
  455. package/dist/internal/uuid.js.map +1 -1
  456. package/dist/testing/TestSchema.d.ts +9 -11
  457. package/dist/testing/TestSchema.d.ts.map +1 -1
  458. package/dist/testing/TestSchema.js +20 -18
  459. package/dist/testing/TestSchema.js.map +1 -1
  460. package/dist/testing/index.d.ts +0 -4
  461. package/dist/testing/index.d.ts.map +1 -1
  462. package/dist/testing/index.js +0 -4
  463. package/dist/testing/index.js.map +1 -1
  464. package/dist/unstable/ai/AiError.d.ts +74 -23
  465. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  466. package/dist/unstable/ai/AiError.js +59 -5
  467. package/dist/unstable/ai/AiError.js.map +1 -1
  468. package/dist/unstable/ai/AnthropicStructuredOutput.d.ts.map +1 -1
  469. package/dist/unstable/ai/AnthropicStructuredOutput.js +2 -1
  470. package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
  471. package/dist/unstable/ai/Chat.d.ts +27 -32
  472. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  473. package/dist/unstable/ai/Chat.js +10 -13
  474. package/dist/unstable/ai/Chat.js.map +1 -1
  475. package/dist/unstable/ai/EmbeddingModel.d.ts +23 -16
  476. package/dist/unstable/ai/EmbeddingModel.d.ts.map +1 -1
  477. package/dist/unstable/ai/EmbeddingModel.js +13 -11
  478. package/dist/unstable/ai/EmbeddingModel.js.map +1 -1
  479. package/dist/unstable/ai/LanguageModel.d.ts +48 -37
  480. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  481. package/dist/unstable/ai/LanguageModel.js +150 -47
  482. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  483. package/dist/unstable/ai/McpServer.d.ts +2 -2
  484. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  485. package/dist/unstable/ai/McpServer.js +21 -12
  486. package/dist/unstable/ai/McpServer.js.map +1 -1
  487. package/dist/unstable/ai/OpenAiStructuredOutput.d.ts.map +1 -1
  488. package/dist/unstable/ai/OpenAiStructuredOutput.js +2 -1
  489. package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
  490. package/dist/unstable/ai/Prompt.d.ts +1 -1
  491. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  492. package/dist/unstable/ai/Prompt.js +15 -4
  493. package/dist/unstable/ai/Prompt.js.map +1 -1
  494. package/dist/unstable/ai/Response.d.ts +37 -94
  495. package/dist/unstable/ai/Response.d.ts.map +1 -1
  496. package/dist/unstable/ai/Response.js +46 -96
  497. package/dist/unstable/ai/Response.js.map +1 -1
  498. package/dist/unstable/ai/Tokenizer.js +4 -5
  499. package/dist/unstable/ai/Tokenizer.js.map +1 -1
  500. package/dist/unstable/ai/Tool.d.ts +38 -20
  501. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  502. package/dist/unstable/ai/Tool.js +27 -1
  503. package/dist/unstable/ai/Tool.js.map +1 -1
  504. package/dist/unstable/ai/Toolkit.d.ts +1 -1
  505. package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
  506. package/dist/unstable/ai/Toolkit.js +30 -18
  507. package/dist/unstable/ai/Toolkit.js.map +1 -1
  508. package/dist/unstable/ai/internal/structured-output.js +8 -5
  509. package/dist/unstable/ai/internal/structured-output.js.map +1 -1
  510. package/dist/unstable/arbitrary/Arbitrary.d.ts +626 -0
  511. package/dist/unstable/arbitrary/Arbitrary.d.ts.map +1 -0
  512. package/dist/unstable/arbitrary/Arbitrary.js +238 -0
  513. package/dist/unstable/arbitrary/Arbitrary.js.map +1 -0
  514. package/dist/unstable/arbitrary/index.d.ts +8 -0
  515. package/dist/unstable/arbitrary/index.d.ts.map +1 -0
  516. package/dist/unstable/arbitrary/index.js +9 -0
  517. package/dist/unstable/arbitrary/index.js.map +1 -0
  518. package/dist/unstable/cli/Argument.d.ts +104 -108
  519. package/dist/unstable/cli/Argument.d.ts.map +1 -1
  520. package/dist/unstable/cli/Argument.js +56 -57
  521. package/dist/unstable/cli/Argument.js.map +1 -1
  522. package/dist/unstable/cli/CliError.d.ts +2 -0
  523. package/dist/unstable/cli/CliError.d.ts.map +1 -1
  524. package/dist/unstable/cli/CliError.js +2 -0
  525. package/dist/unstable/cli/CliError.js.map +1 -1
  526. package/dist/unstable/cli/CliOutput.js +26 -3
  527. package/dist/unstable/cli/CliOutput.js.map +1 -1
  528. package/dist/unstable/cli/Command.d.ts +73 -73
  529. package/dist/unstable/cli/Command.js +18 -18
  530. package/dist/unstable/cli/Completions.d.ts +4 -4
  531. package/dist/unstable/cli/Completions.d.ts.map +1 -1
  532. package/dist/unstable/cli/Flag.d.ts +150 -161
  533. package/dist/unstable/cli/Flag.d.ts.map +1 -1
  534. package/dist/unstable/cli/Flag.js +79 -90
  535. package/dist/unstable/cli/Flag.js.map +1 -1
  536. package/dist/unstable/cli/GlobalFlag.d.ts +3 -3
  537. package/dist/unstable/cli/GlobalFlag.js +13 -13
  538. package/dist/unstable/cli/GlobalFlag.js.map +1 -1
  539. package/dist/unstable/cli/Param.d.ts +118 -126
  540. package/dist/unstable/cli/Param.d.ts.map +1 -1
  541. package/dist/unstable/cli/Param.js +104 -113
  542. package/dist/unstable/cli/Param.js.map +1 -1
  543. package/dist/unstable/cli/Primitive.d.ts +69 -58
  544. package/dist/unstable/cli/Primitive.d.ts.map +1 -1
  545. package/dist/unstable/cli/Primitive.js +65 -66
  546. package/dist/unstable/cli/Primitive.js.map +1 -1
  547. package/dist/unstable/cli/Prompt.d.ts +23 -24
  548. package/dist/unstable/cli/Prompt.d.ts.map +1 -1
  549. package/dist/unstable/cli/Prompt.js +68 -63
  550. package/dist/unstable/cli/Prompt.js.map +1 -1
  551. package/dist/unstable/cli/internal/completions/descriptor.js +23 -11
  552. package/dist/unstable/cli/internal/completions/descriptor.js.map +1 -1
  553. package/dist/unstable/cli/internal/completions/zsh.js +2 -2
  554. package/dist/unstable/cli/internal/completions/zsh.js.map +1 -1
  555. package/dist/unstable/cli/internal/config.js +4 -4
  556. package/dist/unstable/cli/internal/parser.js +1 -1
  557. package/dist/unstable/cli/internal/parser.js.map +1 -1
  558. package/dist/unstable/cli/internal/wizard.d.ts.map +1 -1
  559. package/dist/unstable/cli/internal/wizard.js +14 -13
  560. package/dist/unstable/cli/internal/wizard.js.map +1 -1
  561. package/dist/unstable/cluster/ClusterSchema.d.ts +13 -0
  562. package/dist/unstable/cluster/ClusterSchema.d.ts.map +1 -1
  563. package/dist/unstable/cluster/ClusterSchema.js +16 -1
  564. package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
  565. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  566. package/dist/unstable/cluster/ClusterWorkflowEngine.js +57 -14
  567. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  568. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  569. package/dist/unstable/cluster/Entity.js +2 -0
  570. package/dist/unstable/cluster/Entity.js.map +1 -1
  571. package/dist/unstable/cluster/EntityProxyServer.d.ts +2 -2
  572. package/dist/unstable/cluster/EntityProxyServer.d.ts.map +1 -1
  573. package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
  574. package/dist/unstable/cluster/Envelope.d.ts +4 -4
  575. package/dist/unstable/cluster/Envelope.d.ts.map +1 -1
  576. package/dist/unstable/cluster/Envelope.js +2 -3
  577. package/dist/unstable/cluster/Envelope.js.map +1 -1
  578. package/dist/unstable/cluster/HttpRunner.d.ts.map +1 -1
  579. package/dist/unstable/cluster/HttpRunner.js +5 -2
  580. package/dist/unstable/cluster/HttpRunner.js.map +1 -1
  581. package/dist/unstable/cluster/MessageStorage.d.ts +34 -4
  582. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  583. package/dist/unstable/cluster/MessageStorage.js +28 -9
  584. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  585. package/dist/unstable/cluster/Reply.d.ts +1 -1
  586. package/dist/unstable/cluster/Sharding.d.ts +1 -1
  587. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  588. package/dist/unstable/cluster/Sharding.js +32 -17
  589. package/dist/unstable/cluster/Sharding.js.map +1 -1
  590. package/dist/unstable/cluster/ShardingConfig.js +23 -23
  591. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  592. package/dist/unstable/cluster/SocketRunner.d.ts +2 -2
  593. package/dist/unstable/cluster/SocketRunner.d.ts.map +1 -1
  594. package/dist/unstable/cluster/SocketRunner.js +4 -3
  595. package/dist/unstable/cluster/SocketRunner.js.map +1 -1
  596. package/dist/unstable/cluster/SqlMessageStorage.js +11 -8
  597. package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
  598. package/dist/unstable/cluster/SqlRunnerStorage.d.ts.map +1 -1
  599. package/dist/unstable/cluster/SqlRunnerStorage.js +11 -4
  600. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  601. package/dist/unstable/cluster/internal/clusterAbandon.d.ts +5 -0
  602. package/dist/unstable/cluster/internal/clusterAbandon.d.ts.map +1 -0
  603. package/dist/unstable/cluster/internal/clusterAbandon.js +9 -0
  604. package/dist/unstable/cluster/internal/clusterAbandon.js.map +1 -0
  605. package/dist/unstable/cluster/internal/entityManager.js +7 -4
  606. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  607. package/dist/unstable/cluster/internal/interruptors.js +30 -1
  608. package/dist/unstable/cluster/internal/interruptors.js.map +1 -1
  609. package/dist/unstable/cluster/internal/resourceRef.js +12 -7
  610. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  611. package/dist/unstable/devtools/DevToolsClient.d.ts.map +1 -1
  612. package/dist/unstable/devtools/DevToolsClient.js +12 -7
  613. package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
  614. package/dist/unstable/encoding/Ini.d.ts +2 -0
  615. package/dist/unstable/encoding/Ini.d.ts.map +1 -1
  616. package/dist/unstable/encoding/Ini.js +2 -0
  617. package/dist/unstable/encoding/Ini.js.map +1 -1
  618. package/dist/unstable/encoding/SchemaBinary.d.ts +27 -3
  619. package/dist/unstable/encoding/SchemaBinary.d.ts.map +1 -1
  620. package/dist/unstable/encoding/SchemaBinary.js +108 -39
  621. package/dist/unstable/encoding/SchemaBinary.js.map +1 -1
  622. package/dist/unstable/encoding/Sse.js +1 -1
  623. package/dist/unstable/encoding/Sse.js.map +1 -1
  624. package/dist/unstable/encoding/Toml.d.ts +2 -0
  625. package/dist/unstable/encoding/Toml.d.ts.map +1 -1
  626. package/dist/unstable/encoding/Toml.js +6 -4
  627. package/dist/unstable/encoding/Toml.js.map +1 -1
  628. package/dist/unstable/encoding/Yaml.d.ts +2 -0
  629. package/dist/unstable/encoding/Yaml.d.ts.map +1 -1
  630. package/dist/unstable/encoding/Yaml.js +16 -5
  631. package/dist/unstable/encoding/Yaml.js.map +1 -1
  632. package/dist/unstable/encoding/index.d.ts +0 -4
  633. package/dist/unstable/encoding/index.d.ts.map +1 -1
  634. package/dist/unstable/encoding/index.js +0 -4
  635. package/dist/unstable/encoding/index.js.map +1 -1
  636. package/dist/unstable/eventlog/Event.d.ts +5 -5
  637. package/dist/unstable/eventlog/Event.d.ts.map +1 -1
  638. package/dist/unstable/eventlog/Event.js +3 -3
  639. package/dist/unstable/eventlog/Event.js.map +1 -1
  640. package/dist/unstable/eventlog/EventJournal.d.ts +7 -7
  641. package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
  642. package/dist/unstable/eventlog/EventJournal.js +9 -9
  643. package/dist/unstable/eventlog/EventJournal.js.map +1 -1
  644. package/dist/unstable/eventlog/EventLog.d.ts +1 -1
  645. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  646. package/dist/unstable/eventlog/EventLog.js +4 -4
  647. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  648. package/dist/unstable/eventlog/EventLogMessage.d.ts +11 -5
  649. package/dist/unstable/eventlog/EventLogMessage.d.ts.map +1 -1
  650. package/dist/unstable/eventlog/EventLogMessage.js +25 -15
  651. package/dist/unstable/eventlog/EventLogMessage.js.map +1 -1
  652. package/dist/unstable/eventlog/EventLogRemote.d.ts +7 -1
  653. package/dist/unstable/eventlog/EventLogRemote.d.ts.map +1 -1
  654. package/dist/unstable/eventlog/EventLogRemote.js +13 -3
  655. package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
  656. package/dist/unstable/eventlog/EventLogServerUnencrypted.js +2 -2
  657. package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -1
  658. package/dist/unstable/eventlog/SqlEventJournal.d.ts.map +1 -1
  659. package/dist/unstable/eventlog/SqlEventJournal.js +26 -13
  660. package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -1
  661. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -1
  662. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js +5 -1
  663. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  664. package/dist/unstable/http/Cookies.d.ts +1 -45
  665. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  666. package/dist/unstable/http/Cookies.js +2 -64
  667. package/dist/unstable/http/Cookies.js.map +1 -1
  668. package/dist/unstable/http/FetchHttpClient.js +1 -1
  669. package/dist/unstable/http/FetchHttpClient.js.map +1 -1
  670. package/dist/unstable/http/FindMyWay/internal/router.js +124 -33
  671. package/dist/unstable/http/FindMyWay/internal/router.js.map +1 -1
  672. package/dist/unstable/http/FindMyWay.d.ts +15 -5
  673. package/dist/unstable/http/FindMyWay.d.ts.map +1 -1
  674. package/dist/unstable/http/FindMyWay.js +3 -1
  675. package/dist/unstable/http/FindMyWay.js.map +1 -1
  676. package/dist/unstable/http/Headers.d.ts +0 -22
  677. package/dist/unstable/http/Headers.d.ts.map +1 -1
  678. package/dist/unstable/http/Headers.js +3 -34
  679. package/dist/unstable/http/Headers.js.map +1 -1
  680. package/dist/unstable/http/HttpBody.d.ts +41 -10
  681. package/dist/unstable/http/HttpBody.d.ts.map +1 -1
  682. package/dist/unstable/http/HttpBody.js +64 -10
  683. package/dist/unstable/http/HttpBody.js.map +1 -1
  684. package/dist/unstable/http/HttpClient.d.ts +1 -1
  685. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  686. package/dist/unstable/http/HttpClient.js +28 -18
  687. package/dist/unstable/http/HttpClient.js.map +1 -1
  688. package/dist/unstable/http/HttpClientRequest.d.ts +28 -6
  689. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  690. package/dist/unstable/http/HttpClientRequest.js +8 -19
  691. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  692. package/dist/unstable/http/HttpClientResponse.d.ts +6 -1
  693. package/dist/unstable/http/HttpClientResponse.d.ts.map +1 -1
  694. package/dist/unstable/http/HttpClientResponse.js +10 -6
  695. package/dist/unstable/http/HttpClientResponse.js.map +1 -1
  696. package/dist/unstable/http/HttpEffect.d.ts +16 -0
  697. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  698. package/dist/unstable/http/HttpEffect.js +121 -65
  699. package/dist/unstable/http/HttpEffect.js.map +1 -1
  700. package/dist/unstable/http/HttpIncomingMessage.d.ts +3 -3
  701. package/dist/unstable/http/HttpIncomingMessage.d.ts.map +1 -1
  702. package/dist/unstable/http/HttpIncomingMessage.js +1 -13
  703. package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
  704. package/dist/unstable/http/HttpMiddleware.d.ts +1 -1
  705. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  706. package/dist/unstable/http/HttpMiddleware.js +29 -21
  707. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  708. package/dist/unstable/http/HttpPlatform.d.ts +12 -11
  709. package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
  710. package/dist/unstable/http/HttpPlatform.js +36 -10
  711. package/dist/unstable/http/HttpPlatform.js.map +1 -1
  712. package/dist/unstable/http/HttpRouter.d.ts +5 -1
  713. package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
  714. package/dist/unstable/http/HttpRouter.js +22 -8
  715. package/dist/unstable/http/HttpRouter.js.map +1 -1
  716. package/dist/unstable/http/HttpServer.d.ts +11 -42
  717. package/dist/unstable/http/HttpServer.d.ts.map +1 -1
  718. package/dist/unstable/http/HttpServer.js +16 -20
  719. package/dist/unstable/http/HttpServer.js.map +1 -1
  720. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  721. package/dist/unstable/http/HttpServerRequest.js +11 -11
  722. package/dist/unstable/http/HttpServerRequest.js.map +1 -1
  723. package/dist/unstable/http/HttpServerRespondable.js +1 -1
  724. package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
  725. package/dist/unstable/http/HttpServerResponse.d.ts +9 -13
  726. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  727. package/dist/unstable/http/HttpServerResponse.js +34 -44
  728. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  729. package/dist/unstable/http/HttpStaticServer.d.ts +2 -2
  730. package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -1
  731. package/dist/unstable/http/HttpStaticServer.js +19 -19
  732. package/dist/unstable/http/HttpStaticServer.js.map +1 -1
  733. package/dist/unstable/http/Mime.d.ts +28 -0
  734. package/dist/unstable/http/Mime.d.ts.map +1 -0
  735. package/dist/unstable/http/Mime.js +72 -0
  736. package/dist/unstable/http/Mime.js.map +1 -0
  737. package/dist/unstable/http/Multipart.d.ts +22 -9
  738. package/dist/unstable/http/Multipart.d.ts.map +1 -1
  739. package/dist/unstable/http/Multipart.js +26 -10
  740. package/dist/unstable/http/Multipart.js.map +1 -1
  741. package/dist/unstable/http/MultipartParser/internal/multipart.d.ts +1 -1
  742. package/dist/unstable/http/MultipartParser/internal/multipart.d.ts.map +1 -1
  743. package/dist/unstable/http/MultipartParser/internal/multipart.js +8 -3
  744. package/dist/unstable/http/MultipartParser/internal/multipart.js.map +1 -1
  745. package/dist/unstable/http/MultipartParser.d.ts +4 -3
  746. package/dist/unstable/http/MultipartParser.d.ts.map +1 -1
  747. package/dist/unstable/http/MultipartParser.js.map +1 -1
  748. package/dist/unstable/http/UrlParams.d.ts +0 -97
  749. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  750. package/dist/unstable/http/UrlParams.js +3 -104
  751. package/dist/unstable/http/UrlParams.js.map +1 -1
  752. package/dist/unstable/http/index.d.ts +4 -0
  753. package/dist/unstable/http/index.d.ts.map +1 -1
  754. package/dist/unstable/http/index.js +4 -0
  755. package/dist/unstable/http/index.js.map +1 -1
  756. package/dist/unstable/http/internal/compression.js +8 -11
  757. package/dist/unstable/http/internal/compression.js.map +1 -1
  758. package/dist/unstable/http/internal/headers.d.ts +2 -0
  759. package/dist/unstable/http/internal/headers.d.ts.map +1 -0
  760. package/dist/unstable/http/internal/headers.js +5 -0
  761. package/dist/unstable/http/internal/headers.js.map +1 -0
  762. package/dist/unstable/http/internal/httpBody.js +8 -0
  763. package/dist/unstable/http/internal/httpBody.js.map +1 -1
  764. package/dist/unstable/http/internal/mimeTypes.d.ts +361 -0
  765. package/dist/unstable/http/internal/mimeTypes.d.ts.map +1 -0
  766. package/dist/unstable/http/internal/mimeTypes.js +363 -0
  767. package/dist/unstable/http/internal/mimeTypes.js.map +1 -0
  768. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +13 -0
  769. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  770. package/dist/unstable/httpapi/HttpApiBuilder.js +23 -6
  771. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  772. package/dist/unstable/httpapi/HttpApiClient.d.ts +4 -3
  773. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  774. package/dist/unstable/httpapi/HttpApiClient.js +25 -13
  775. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  776. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +8 -3
  777. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  778. package/dist/unstable/httpapi/HttpApiEndpoint.js +9 -6
  779. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  780. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  781. package/dist/unstable/httpapi/HttpApiError.js +3 -1
  782. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  783. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  784. package/dist/unstable/httpapi/HttpApiMiddleware.js +7 -5
  785. package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
  786. package/dist/unstable/httpapi/HttpApiSchema.d.ts +12 -0
  787. package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
  788. package/dist/unstable/httpapi/HttpApiSchema.js +8 -10
  789. package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
  790. package/dist/unstable/httpapi/HttpApiTest.d.ts.map +1 -1
  791. package/dist/unstable/httpapi/HttpApiTest.js +8 -2
  792. package/dist/unstable/httpapi/HttpApiTest.js.map +1 -1
  793. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  794. package/dist/unstable/httpapi/OpenApi.js +31 -20
  795. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  796. package/dist/unstable/net/IpInterface.d.ts +140 -0
  797. package/dist/unstable/net/IpInterface.d.ts.map +1 -0
  798. package/dist/unstable/net/IpInterface.js +149 -0
  799. package/dist/unstable/net/IpInterface.js.map +1 -0
  800. package/dist/unstable/net/IpNetwork.d.ts +227 -0
  801. package/dist/unstable/net/IpNetwork.d.ts.map +1 -0
  802. package/dist/unstable/net/IpNetwork.js +239 -0
  803. package/dist/unstable/net/IpNetwork.js.map +1 -0
  804. package/dist/unstable/net/NetAddress.d.ts +705 -0
  805. package/dist/unstable/net/NetAddress.d.ts.map +1 -0
  806. package/dist/unstable/net/NetAddress.js +956 -0
  807. package/dist/unstable/net/NetAddress.js.map +1 -0
  808. package/dist/unstable/net/index.d.ts +16 -0
  809. package/dist/unstable/net/index.d.ts.map +1 -0
  810. package/dist/unstable/net/index.js +17 -0
  811. package/dist/unstable/net/index.js.map +1 -0
  812. package/dist/unstable/observability/OtlpExporter.d.ts +1 -0
  813. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  814. package/dist/unstable/observability/OtlpExporter.js +4 -6
  815. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  816. package/dist/unstable/observability/OtlpLogger.js +9 -9
  817. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  818. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  819. package/dist/unstable/observability/OtlpMetrics.js +9 -8
  820. package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
  821. package/dist/unstable/observability/OtlpResource.d.ts.map +1 -1
  822. package/dist/unstable/observability/OtlpResource.js +2 -2
  823. package/dist/unstable/observability/OtlpResource.js.map +1 -1
  824. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  825. package/dist/unstable/observability/OtlpTracer.js +82 -55
  826. package/dist/unstable/observability/OtlpTracer.js.map +1 -1
  827. package/dist/unstable/observability/internal/otlpEnv.d.ts +1 -1
  828. package/dist/unstable/observability/internal/otlpEnv.d.ts.map +1 -1
  829. package/dist/unstable/observability/internal/otlpEnv.js +5 -9
  830. package/dist/unstable/observability/internal/otlpEnv.js.map +1 -1
  831. package/dist/unstable/persistence/PersistedCache.js +1 -1
  832. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  833. package/dist/unstable/persistence/PersistedQueue.d.ts +114 -14
  834. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  835. package/dist/unstable/persistence/PersistedQueue.js +799 -234
  836. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  837. package/dist/unstable/persistence/RateLimiter.d.ts +28 -15
  838. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  839. package/dist/unstable/persistence/RateLimiter.js +33 -41
  840. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  841. package/dist/unstable/process/ChildProcess.d.ts +8 -2
  842. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  843. package/dist/unstable/process/ChildProcess.js +7 -2
  844. package/dist/unstable/process/ChildProcess.js.map +1 -1
  845. package/dist/unstable/process/ChildProcessSpawner.d.ts +1 -1
  846. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  847. package/dist/unstable/process/ChildProcessSpawner.js +1 -1
  848. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  849. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  850. package/dist/unstable/reactivity/Atom.js +6 -3
  851. package/dist/unstable/reactivity/Atom.js.map +1 -1
  852. package/dist/unstable/reactivity/AtomHttpApi.d.ts +3 -6
  853. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  854. package/dist/unstable/reactivity/AtomHttpApi.js +6 -3
  855. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  856. package/dist/unstable/reactivity/AtomRegistry.js +2 -3
  857. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  858. package/dist/unstable/reactivity/AtomRpc.d.ts +2 -2
  859. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  860. package/dist/unstable/reactivity/AtomRpc.js +1 -1
  861. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  862. package/dist/unstable/reactivity/Hydration.d.ts +6 -4
  863. package/dist/unstable/reactivity/Hydration.d.ts.map +1 -1
  864. package/dist/unstable/reactivity/Hydration.js +20 -6
  865. package/dist/unstable/reactivity/Hydration.js.map +1 -1
  866. package/dist/unstable/reactivity/Reactivity.d.ts +26 -26
  867. package/dist/unstable/reactivity/Reactivity.d.ts.map +1 -1
  868. package/dist/unstable/reactivity/Reactivity.js +10 -12
  869. package/dist/unstable/reactivity/Reactivity.js.map +1 -1
  870. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  871. package/dist/unstable/rpc/RpcClient.js +64 -64
  872. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  873. package/dist/unstable/rpc/RpcClientError.d.ts +1 -1
  874. package/dist/unstable/rpc/RpcMessage.d.ts +3 -1
  875. package/dist/unstable/rpc/RpcMessage.d.ts.map +1 -1
  876. package/dist/unstable/rpc/RpcMessage.js +1 -1
  877. package/dist/unstable/rpc/RpcMessage.js.map +1 -1
  878. package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
  879. package/dist/unstable/rpc/RpcMiddleware.js +7 -5
  880. package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
  881. package/dist/unstable/rpc/RpcSerialization.d.ts +5 -39
  882. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  883. package/dist/unstable/rpc/RpcSerialization.js +22 -115
  884. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  885. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  886. package/dist/unstable/rpc/RpcServer.js +104 -57
  887. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  888. package/dist/unstable/schema/Model.d.ts.map +1 -1
  889. package/dist/unstable/schema/Model.js +7 -6
  890. package/dist/unstable/schema/Model.js.map +1 -1
  891. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  892. package/dist/unstable/schema/VariantSchema.js +3 -0
  893. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  894. package/dist/unstable/socket/Socket.d.ts +287 -102
  895. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  896. package/dist/unstable/socket/Socket.js +408 -215
  897. package/dist/unstable/socket/Socket.js.map +1 -1
  898. package/dist/unstable/socket/SocketServer.d.ts +5 -32
  899. package/dist/unstable/socket/SocketServer.d.ts.map +1 -1
  900. package/dist/unstable/socket/SocketServer.js +3 -3
  901. package/dist/unstable/socket/SocketServer.js.map +1 -1
  902. package/dist/unstable/sql/SqlClient.d.ts +20 -0
  903. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  904. package/dist/unstable/sql/SqlClient.js +14 -7
  905. package/dist/unstable/sql/SqlClient.js.map +1 -1
  906. package/dist/unstable/sql/SqlConnection.d.ts +15 -0
  907. package/dist/unstable/sql/SqlConnection.d.ts.map +1 -1
  908. package/dist/unstable/sql/SqlConnection.js.map +1 -1
  909. package/dist/unstable/sql/SqlModel.d.ts +1 -1
  910. package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
  911. package/dist/unstable/sql/Statement.d.ts +13 -5
  912. package/dist/unstable/sql/Statement.d.ts.map +1 -1
  913. package/dist/unstable/sql/Statement.js +29 -15
  914. package/dist/unstable/sql/Statement.js.map +1 -1
  915. package/dist/unstable/workers/Transferable.js +1 -1
  916. package/dist/unstable/workers/Worker.d.ts.map +1 -1
  917. package/dist/unstable/workers/Worker.js +3 -1
  918. package/dist/unstable/workers/Worker.js.map +1 -1
  919. package/dist/unstable/workflow/Activity.d.ts +7 -0
  920. package/dist/unstable/workflow/Activity.d.ts.map +1 -1
  921. package/dist/unstable/workflow/Activity.js +14 -4
  922. package/dist/unstable/workflow/Activity.js.map +1 -1
  923. package/dist/unstable/workflow/DurableClock.js +1 -1
  924. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  925. package/dist/unstable/workflow/DurableDeferred.d.ts +2 -2
  926. package/dist/unstable/workflow/DurableDeferred.d.ts.map +1 -1
  927. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  928. package/dist/unstable/workflow/DurableQueue.d.ts +8 -0
  929. package/dist/unstable/workflow/DurableQueue.d.ts.map +1 -1
  930. package/dist/unstable/workflow/DurableQueue.js +8 -0
  931. package/dist/unstable/workflow/DurableQueue.js.map +1 -1
  932. package/dist/unstable/workflow/Workflow.d.ts +5 -0
  933. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  934. package/dist/unstable/workflow/Workflow.js +70 -12
  935. package/dist/unstable/workflow/Workflow.js.map +1 -1
  936. package/dist/unstable/workflow/WorkflowEngine.d.ts +6 -0
  937. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  938. package/dist/unstable/workflow/WorkflowEngine.js +11 -0
  939. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  940. package/package.json +7 -9
  941. package/src/Array.ts +118 -67
  942. package/src/BigDecimal.ts +50 -28
  943. package/src/ByteSize.ts +838 -0
  944. package/src/Cache.ts +17 -3
  945. package/src/Cause.ts +1 -1
  946. package/src/Channel.ts +183 -48
  947. package/src/Chunk.ts +65 -36
  948. package/src/Config.ts +237 -248
  949. package/src/ConfigProvider.ts +7 -8
  950. package/src/Context.ts +31 -0
  951. package/src/Cron.ts +2 -2
  952. package/src/Crypto.ts +3 -2
  953. package/src/Deferred.ts +7 -6
  954. package/src/Duration.ts +1 -1
  955. package/src/Effect.ts +226 -122
  956. package/src/Effectable.ts +78 -9
  957. package/src/Encoding.ts +101 -11
  958. package/src/Equal.ts +1 -1
  959. package/src/ExecutionPlan.ts +3 -0
  960. package/src/Fiber.ts +33 -8
  961. package/src/FiberHandle.ts +3 -3
  962. package/src/FiberMap.ts +19 -10
  963. package/src/FileSystem.ts +55 -230
  964. package/src/Formatter.ts +21 -3
  965. package/src/Graph.ts +55 -25
  966. package/src/Hash.ts +5 -16
  967. package/src/HashRing.ts +9 -2
  968. package/src/HashSet.ts +56 -0
  969. package/src/Iterable.ts +66 -41
  970. package/src/JsonPatch.ts +4 -4
  971. package/src/JsonPointer.ts +97 -4
  972. package/src/JsonSchema.ts +8 -26
  973. package/src/Layer.ts +59 -18
  974. package/src/LayerMap.ts +8 -6
  975. package/src/LayerRef.ts +7 -5
  976. package/src/Logger.ts +125 -18
  977. package/src/ManagedRuntime.ts +1 -1
  978. package/src/Match.ts +33 -14
  979. package/src/Metric.ts +24 -21
  980. package/src/MutableHashMap.ts +1 -1
  981. package/src/MutableHashSet.ts +1 -1
  982. package/src/MutableList.ts +18 -2
  983. package/src/Number.ts +7 -1
  984. package/src/Optic.ts +8 -4
  985. package/src/Option.ts +1 -1
  986. package/src/Order.ts +3 -1
  987. package/src/PartitionedSemaphore.ts +1 -2
  988. package/src/Path.ts +1 -1
  989. package/src/PlatformError.ts +1 -1
  990. package/src/Pool.ts +125 -8
  991. package/src/PrimaryKey.ts +1 -1
  992. package/src/PubSub.ts +32 -20
  993. package/src/Queue.ts +119 -28
  994. package/src/Random.ts +20 -6
  995. package/src/RcMap.ts +20 -13
  996. package/src/Redacted.ts +1 -1
  997. package/src/RequestResolver.ts +49 -26
  998. package/src/Result.ts +1 -1
  999. package/src/Scheduler.ts +21 -11
  1000. package/src/Schema.ts +4809 -6368
  1001. package/src/SchemaAST.ts +1031 -284
  1002. package/src/SchemaGetter.ts +75 -21
  1003. package/src/SchemaIssue.ts +259 -15
  1004. package/src/SchemaParser.ts +2 -12
  1005. package/src/SchemaRepresentation.ts +1593 -29
  1006. package/src/SchemaTransformation.ts +145 -22
  1007. package/src/ScopedCache.ts +10 -3
  1008. package/src/Sink.ts +31 -15
  1009. package/src/Stream.ts +294 -76
  1010. package/src/String.ts +20 -9
  1011. package/src/Struct.ts +8 -4
  1012. package/src/SynchronizedRef.ts +3 -5
  1013. package/src/Terminal.ts +3 -3
  1014. package/src/Tracer.ts +43 -14
  1015. package/src/Tuple.ts +3 -1
  1016. package/src/TxChunk.ts +1 -1
  1017. package/src/TxDeferred.ts +1 -1
  1018. package/src/TxHashMap.ts +1 -1
  1019. package/src/TxHashSet.ts +92 -11
  1020. package/src/TxPriorityQueue.ts +1 -1
  1021. package/src/TxPubSub.ts +1 -1
  1022. package/src/TxQueue.ts +22 -17
  1023. package/src/TxReentrantLock.ts +29 -1
  1024. package/src/TxRef.ts +1 -1
  1025. package/src/TxSemaphore.ts +1 -1
  1026. package/src/TxSubscriptionRef.ts +1 -1
  1027. package/src/Types.ts +40 -17
  1028. package/src/Utils.ts +3 -1
  1029. package/src/index.ts +5 -0
  1030. package/src/internal/arbitrary/model.ts +701 -0
  1031. package/src/internal/arbitrary/regexp.ts +855 -0
  1032. package/src/internal/arbitrary/runner.ts +608 -0
  1033. package/src/internal/arbitrary/schema.ts +1800 -0
  1034. package/src/internal/core.ts +48 -22
  1035. package/src/internal/count.ts +14 -0
  1036. package/src/internal/dateTime.ts +8 -10
  1037. package/src/internal/effect.ts +475 -295
  1038. package/src/internal/graph.ts +6 -1
  1039. package/src/internal/hashMap.ts +5 -3
  1040. package/src/internal/hashSet.ts +1 -1
  1041. package/src/internal/matcher.ts +34 -19
  1042. package/src/internal/metric.ts +1 -1
  1043. package/src/internal/option.ts +8 -6
  1044. package/src/internal/random.ts +20 -7
  1045. package/src/internal/rcRef.ts +10 -7
  1046. package/src/internal/references.ts +1 -0
  1047. package/src/internal/request.ts +12 -7
  1048. package/src/internal/result.ts +15 -11
  1049. package/src/internal/schema/annotations.ts +3 -3
  1050. package/src/internal/schema/fromJsonSchemaDocument.ts +14 -29
  1051. package/src/internal/schema/fromRepresentation.ts +5 -3
  1052. package/src/internal/schema/{schema.ts → make.ts} +0 -40
  1053. package/src/internal/schema/parser.ts +8 -0
  1054. package/src/internal/schema/standardSchema.ts +125 -0
  1055. package/src/internal/schema/toCodeDocument.ts +58 -44
  1056. package/src/internal/schema/toCodec.ts +312 -0
  1057. package/src/internal/schema/toDifferJsonPatch.ts +24 -0
  1058. package/src/internal/schema/toEncoderXml.ts +110 -0
  1059. package/src/internal/schema/toEquivalence.ts +76 -0
  1060. package/src/internal/schema/toFormatter.ts +230 -0
  1061. package/src/internal/schema/toIso.ts +20 -0
  1062. package/src/internal/schema/toJsonSchemaDocument.ts +125 -67
  1063. package/src/internal/schema/toRepresentation.ts +1 -1
  1064. package/src/internal/schemaError.ts +8 -0
  1065. package/src/internal/stream.ts +14 -6
  1066. package/src/internal/tracer.ts +4 -0
  1067. package/src/internal/trie.ts +5 -2
  1068. package/src/internal/uuid.ts +4 -0
  1069. package/src/testing/TestSchema.ts +36 -30
  1070. package/src/testing/index.ts +0 -5
  1071. package/src/unstable/ai/AiError.ts +69 -5
  1072. package/src/unstable/ai/AnthropicStructuredOutput.ts +4 -1
  1073. package/src/unstable/ai/Chat.ts +35 -36
  1074. package/src/unstable/ai/EmbeddingModel.ts +27 -15
  1075. package/src/unstable/ai/LanguageModel.ts +283 -100
  1076. package/src/unstable/ai/McpServer.ts +36 -20
  1077. package/src/unstable/ai/OpenAiStructuredOutput.ts +4 -1
  1078. package/src/unstable/ai/Prompt.ts +19 -4
  1079. package/src/unstable/ai/Response.ts +107 -189
  1080. package/src/unstable/ai/Tokenizer.ts +4 -5
  1081. package/src/unstable/ai/Tool.ts +58 -35
  1082. package/src/unstable/ai/Toolkit.ts +43 -37
  1083. package/src/unstable/ai/internal/structured-output.ts +5 -5
  1084. package/src/unstable/arbitrary/Arbitrary.ts +715 -0
  1085. package/src/unstable/arbitrary/index.ts +10 -0
  1086. package/src/unstable/cli/Argument.ts +111 -115
  1087. package/src/unstable/cli/CliError.ts +2 -0
  1088. package/src/unstable/cli/CliOutput.ts +40 -3
  1089. package/src/unstable/cli/Command.ts +74 -74
  1090. package/src/unstable/cli/Completions.ts +4 -4
  1091. package/src/unstable/cli/Flag.ts +158 -169
  1092. package/src/unstable/cli/GlobalFlag.ts +13 -13
  1093. package/src/unstable/cli/Param.ts +150 -159
  1094. package/src/unstable/cli/Primitive.ts +75 -76
  1095. package/src/unstable/cli/Prompt.ts +88 -87
  1096. package/src/unstable/cli/internal/completions/descriptor.ts +23 -11
  1097. package/src/unstable/cli/internal/completions/zsh.ts +2 -2
  1098. package/src/unstable/cli/internal/config.ts +4 -4
  1099. package/src/unstable/cli/internal/parser.ts +1 -1
  1100. package/src/unstable/cli/internal/wizard.ts +18 -13
  1101. package/src/unstable/cluster/ClusterSchema.ts +19 -1
  1102. package/src/unstable/cluster/ClusterWorkflowEngine.ts +66 -16
  1103. package/src/unstable/cluster/Entity.ts +3 -0
  1104. package/src/unstable/cluster/EntityProxyServer.ts +6 -2
  1105. package/src/unstable/cluster/Envelope.ts +3 -3
  1106. package/src/unstable/cluster/HttpRunner.ts +7 -2
  1107. package/src/unstable/cluster/MessageStorage.ts +62 -21
  1108. package/src/unstable/cluster/Reply.ts +2 -2
  1109. package/src/unstable/cluster/Sharding.ts +44 -19
  1110. package/src/unstable/cluster/ShardingConfig.ts +23 -23
  1111. package/src/unstable/cluster/SocketRunner.ts +5 -4
  1112. package/src/unstable/cluster/SqlMessageStorage.ts +12 -8
  1113. package/src/unstable/cluster/SqlRunnerStorage.ts +18 -10
  1114. package/src/unstable/cluster/internal/clusterAbandon.ts +14 -0
  1115. package/src/unstable/cluster/internal/entityManager.ts +12 -4
  1116. package/src/unstable/cluster/internal/interruptors.ts +58 -1
  1117. package/src/unstable/cluster/internal/resourceRef.ts +15 -7
  1118. package/src/unstable/devtools/DevToolsClient.ts +13 -3
  1119. package/src/unstable/encoding/Ini.ts +2 -0
  1120. package/src/unstable/encoding/SchemaBinary.ts +150 -44
  1121. package/src/unstable/encoding/Sse.ts +1 -1
  1122. package/src/unstable/encoding/Toml.ts +7 -5
  1123. package/src/unstable/encoding/Yaml.ts +18 -5
  1124. package/src/unstable/encoding/index.ts +0 -5
  1125. package/src/unstable/eventlog/Event.ts +7 -7
  1126. package/src/unstable/eventlog/EventJournal.ts +9 -9
  1127. package/src/unstable/eventlog/EventLog.ts +5 -5
  1128. package/src/unstable/eventlog/EventLogMessage.ts +25 -15
  1129. package/src/unstable/eventlog/EventLogRemote.ts +15 -4
  1130. package/src/unstable/eventlog/EventLogServerUnencrypted.ts +2 -2
  1131. package/src/unstable/eventlog/SqlEventJournal.ts +32 -9
  1132. package/src/unstable/eventlog/SqlEventLogServerUnencrypted.ts +11 -1
  1133. package/src/unstable/http/Cookies.ts +2 -102
  1134. package/src/unstable/http/FetchHttpClient.ts +1 -1
  1135. package/src/unstable/http/FindMyWay/internal/router.ts +139 -33
  1136. package/src/unstable/http/FindMyWay.ts +15 -5
  1137. package/src/unstable/http/Headers.ts +3 -48
  1138. package/src/unstable/http/HttpBody.ts +107 -36
  1139. package/src/unstable/http/HttpClient.ts +41 -30
  1140. package/src/unstable/http/HttpClientRequest.ts +32 -18
  1141. package/src/unstable/http/HttpClientResponse.ts +16 -3
  1142. package/src/unstable/http/HttpEffect.ts +145 -73
  1143. package/src/unstable/http/HttpIncomingMessage.ts +4 -4
  1144. package/src/unstable/http/HttpMiddleware.ts +43 -24
  1145. package/src/unstable/http/HttpPlatform.ts +62 -20
  1146. package/src/unstable/http/HttpRouter.ts +27 -16
  1147. package/src/unstable/http/HttpServer.ts +18 -57
  1148. package/src/unstable/http/HttpServerRequest.ts +17 -15
  1149. package/src/unstable/http/HttpServerRespondable.ts +1 -1
  1150. package/src/unstable/http/HttpServerResponse.ts +49 -40
  1151. package/src/unstable/http/HttpStaticServer.ts +30 -28
  1152. package/src/unstable/http/Mime.ts +76 -0
  1153. package/src/unstable/http/Multipart.ts +35 -18
  1154. package/src/unstable/http/MultipartParser/internal/multipart.ts +10 -3
  1155. package/src/unstable/http/MultipartParser.ts +4 -3
  1156. package/src/unstable/http/UrlParams.ts +3 -161
  1157. package/src/unstable/http/index.ts +5 -0
  1158. package/src/unstable/http/internal/compression.ts +11 -12
  1159. package/src/unstable/http/internal/headers.ts +7 -0
  1160. package/src/unstable/http/internal/httpBody.ts +9 -0
  1161. package/src/unstable/http/internal/mimeTypes.ts +395 -0
  1162. package/src/unstable/httpapi/HttpApiBuilder.ts +52 -6
  1163. package/src/unstable/httpapi/HttpApiClient.ts +44 -24
  1164. package/src/unstable/httpapi/HttpApiEndpoint.ts +24 -11
  1165. package/src/unstable/httpapi/HttpApiError.ts +3 -1
  1166. package/src/unstable/httpapi/HttpApiMiddleware.ts +7 -5
  1167. package/src/unstable/httpapi/HttpApiSchema.ts +14 -7
  1168. package/src/unstable/httpapi/HttpApiTest.ts +6 -1
  1169. package/src/unstable/httpapi/OpenApi.ts +32 -22
  1170. package/src/unstable/net/IpInterface.ts +242 -0
  1171. package/src/unstable/net/IpNetwork.ts +357 -0
  1172. package/src/unstable/net/NetAddress.ts +1271 -0
  1173. package/src/unstable/net/index.ts +20 -0
  1174. package/src/unstable/observability/OtlpExporter.ts +5 -6
  1175. package/src/unstable/observability/OtlpLogger.ts +9 -9
  1176. package/src/unstable/observability/OtlpMetrics.ts +9 -8
  1177. package/src/unstable/observability/OtlpResource.ts +5 -4
  1178. package/src/unstable/observability/OtlpTracer.ts +103 -81
  1179. package/src/unstable/observability/internal/otlpEnv.ts +10 -13
  1180. package/src/unstable/persistence/PersistedCache.ts +1 -1
  1181. package/src/unstable/persistence/PersistedQueue.ts +1100 -291
  1182. package/src/unstable/persistence/RateLimiter.ts +64 -58
  1183. package/src/unstable/process/ChildProcess.ts +15 -4
  1184. package/src/unstable/process/ChildProcessSpawner.ts +1 -1
  1185. package/src/unstable/reactivity/Atom.ts +6 -3
  1186. package/src/unstable/reactivity/AtomHttpApi.ts +21 -10
  1187. package/src/unstable/reactivity/AtomRegistry.ts +2 -4
  1188. package/src/unstable/reactivity/AtomRpc.ts +6 -5
  1189. package/src/unstable/reactivity/Hydration.ts +26 -7
  1190. package/src/unstable/reactivity/Reactivity.ts +49 -36
  1191. package/src/unstable/rpc/RpcClient.ts +62 -59
  1192. package/src/unstable/rpc/RpcMessage.ts +3 -1
  1193. package/src/unstable/rpc/RpcMiddleware.ts +7 -5
  1194. package/src/unstable/rpc/RpcSerialization.ts +27 -117
  1195. package/src/unstable/rpc/RpcServer.ts +143 -80
  1196. package/src/unstable/schema/Model.ts +8 -7
  1197. package/src/unstable/schema/VariantSchema.ts +3 -0
  1198. package/src/unstable/socket/Socket.ts +714 -383
  1199. package/src/unstable/socket/SocketServer.ts +5 -35
  1200. package/src/unstable/sql/SqlClient.ts +42 -7
  1201. package/src/unstable/sql/SqlConnection.ts +18 -0
  1202. package/src/unstable/sql/SqlModel.ts +1 -1
  1203. package/src/unstable/sql/Statement.ts +46 -20
  1204. package/src/unstable/workers/Transferable.ts +1 -1
  1205. package/src/unstable/workers/Worker.ts +3 -1
  1206. package/src/unstable/workflow/Activity.ts +20 -9
  1207. package/src/unstable/workflow/DurableClock.ts +1 -1
  1208. package/src/unstable/workflow/DurableDeferred.ts +6 -0
  1209. package/src/unstable/workflow/DurableQueue.ts +8 -0
  1210. package/src/unstable/workflow/Workflow.ts +105 -28
  1211. package/src/unstable/workflow/WorkflowEngine.ts +22 -0
  1212. package/dist/internal/schema/schema.d.ts.map +0 -1
  1213. package/dist/internal/schema/schema.js.map +0 -1
  1214. package/dist/internal/schema/toArbitrary.d.ts +0 -2
  1215. package/dist/internal/schema/toArbitrary.d.ts.map +0 -1
  1216. package/dist/internal/schema/toArbitrary.js +0 -705
  1217. package/dist/internal/schema/toArbitrary.js.map +0 -1
  1218. package/dist/testing/FastCheck.d.ts +0 -90
  1219. package/dist/testing/FastCheck.d.ts.map +0 -1
  1220. package/dist/testing/FastCheck.js +0 -90
  1221. package/dist/testing/FastCheck.js.map +0 -1
  1222. package/dist/unstable/encoding/Msgpack.d.ts +0 -185
  1223. package/dist/unstable/encoding/Msgpack.d.ts.map +0 -1
  1224. package/dist/unstable/encoding/Msgpack.js +0 -227
  1225. package/dist/unstable/encoding/Msgpack.js.map +0 -1
  1226. package/src/internal/schema/toArbitrary.ts +0 -843
  1227. package/src/testing/FastCheck.ts +0 -90
  1228. package/src/unstable/encoding/Msgpack.ts +0 -432
  1229. /package/dist/internal/{schema → arbitrary}/schema.d.ts +0 -0
@@ -29,7 +29,6 @@ import { addSpanStackTrace, makeStackCleaner } from "./tracer.js";
29
29
  // ----------------------------------------------------------------------------
30
30
  /** @internal */
31
31
  export class Interrupt extends ReasonBase {
32
- fiberId;
33
32
  constructor(fiberId, annotations = constEmptyAnnotations) {
34
33
  super("Interrupt", annotations, "Interrupted");
35
34
  this.fiberId = fiberId;
@@ -127,6 +126,25 @@ export const causeAnnotations = self => {
127
126
  }
128
127
  return Context.makeUnsafe(map);
129
128
  };
129
+ const dedupeReasons = (self, that) => {
130
+ // Keep deduplication local so causeCombine does not retain Array.ts in the core bundle.
131
+ // Snapshot both arrays before invoking user-defined hash or equality methods.
132
+ const buckets = new Map();
133
+ const out = [];
134
+ for (const reason of self.concat(that)) {
135
+ const hash = Hash.hash(reason);
136
+ const bucket = buckets.get(hash);
137
+ if (bucket === undefined) {
138
+ buckets.set(hash, [reason]);
139
+ } else if (bucket.some(previous => Equal.equals(previous, reason))) {
140
+ continue;
141
+ } else {
142
+ bucket.push(reason);
143
+ }
144
+ out.push(reason);
145
+ }
146
+ return out;
147
+ };
130
148
  /** @internal */
131
149
  export const causeCombine = /*#__PURE__*/dual(2, (self, that) => {
132
150
  if (self.reasons.length === 0) {
@@ -134,7 +152,7 @@ export const causeCombine = /*#__PURE__*/dual(2, (self, that) => {
134
152
  } else if (that.reasons.length === 0) {
135
153
  return self;
136
154
  }
137
- const newCause = new CauseImpl(Arr.union(self.reasons, that.reasons));
155
+ const newCause = new CauseImpl(dedupeReasons(self.reasons, that.reasons));
138
156
  return Equal.equals(self, newCause) ? self : newCause;
139
157
  });
140
158
  /** @internal */
@@ -179,7 +197,7 @@ export const causePrettyErrors = (self, options) => {
179
197
  const interrupts = [];
180
198
  if (self.reasons.length === 0) return errors;
181
199
  const prevStackLimit = getStackTraceLimit();
182
- setStackTraceLimit(1);
200
+ if (prevStackLimit !== 0) setStackTraceLimit(1);
183
201
  for (const failure of self.reasons) {
184
202
  if (failure._tag === "Interrupt") {
185
203
  interrupts.push(failure);
@@ -198,7 +216,7 @@ export const causePrettyErrors = (self, options) => {
198
216
  error.stack = `${error.name}: ${error.message}`;
199
217
  errors.push(causePrettyError(error, interrupts[0].annotations, options));
200
218
  }
201
- setStackTraceLimit(prevStackLimit);
219
+ if (prevStackLimit !== 0) setStackTraceLimit(prevStackLimit);
202
220
  return errors;
203
221
  };
204
222
  /** @internal */
@@ -335,14 +353,15 @@ export class FiberImpl {
335
353
  this.currentOpCount = 0;
336
354
  this.interruptible = interruptible;
337
355
  this._stack = [];
338
- this._observers = [];
356
+ this._observers = undefined;
339
357
  this._exit = undefined;
340
358
  this._children = undefined;
341
359
  this._interruptedCause = undefined;
342
360
  this._yielded = undefined;
343
361
  this._running = false;
344
362
  this._deferredInterrupt = false;
345
- this.runtimeMetrics?.recordFiberStart(this.context);
363
+ this._parent = undefined;
364
+ this.cache.runtimeMetrics?.recordFiberStart(this.context);
346
365
  }
347
366
  [FiberTypeId];
348
367
  id;
@@ -356,20 +375,13 @@ export class FiberImpl {
356
375
  _yielded;
357
376
  _running;
358
377
  _deferredInterrupt;
378
+ _parent;
359
379
  // set in setContext
360
380
  context;
361
- currentScheduler;
362
- currentTracerContext;
363
- currentSpan;
364
- currentLogLevel;
365
- minimumLogLevel;
366
- currentStackFrame;
367
- runtimeMetrics;
368
- maxOpsBeforeYield;
369
- currentPreventYield;
381
+ cache;
370
382
  _dispatcher = undefined;
371
383
  get currentDispatcher() {
372
- return this._dispatcher ??= this.currentScheduler.makeDispatcher();
384
+ return this._dispatcher ??= this.cache.scheduler.makeDispatcher();
373
385
  }
374
386
  getRef(ref) {
375
387
  return Context.get(this.context, ref);
@@ -379,9 +391,13 @@ export class FiberImpl {
379
391
  cb(this._exit);
380
392
  return constVoid;
381
393
  }
382
- this._observers.push(cb);
394
+ if (this._observers === undefined) {
395
+ this._observers = [cb];
396
+ } else {
397
+ this._observers.push(cb);
398
+ }
383
399
  return () => {
384
- if (this._exit) return;
400
+ if (this._exit || this._observers === undefined) return;
385
401
  const index = this._observers.indexOf(cb);
386
402
  if (index >= 0) {
387
403
  this._observers.splice(index, 1);
@@ -393,8 +409,8 @@ export class FiberImpl {
393
409
  return;
394
410
  }
395
411
  let cause = causeInterrupt(fiberId);
396
- if (this.currentStackFrame) {
397
- cause = causeAnnotate(cause, Context.make(CauseStackTrace, this.currentStackFrame));
412
+ if (this.cache.stackFrame) {
413
+ cause = causeAnnotate(cause, Context.make(CauseStackTrace, this.cache.stackFrame));
398
414
  }
399
415
  if (annotations) {
400
416
  cause = causeAnnotate(cause, annotations);
@@ -430,11 +446,18 @@ export class FiberImpl {
430
446
  return this.evaluate(flatMap(interruptChildren, () => exit));
431
447
  }
432
448
  this._exit = exit;
433
- this.runtimeMetrics?.recordFiberEnd(this.context, this._exit);
434
- for (let i = 0; i < this._observers.length; i++) {
435
- this._observers[i](exit);
449
+ this.cache.runtimeMetrics?.recordFiberEnd(this.context, this._exit);
450
+ if (this._parent) {
451
+ this._parent._children?.delete(this);
452
+ this._parent = undefined;
453
+ }
454
+ if (this._observers !== undefined) {
455
+ const observers = this._observers;
456
+ this._observers = undefined;
457
+ for (let i = 0; i < observers.length; i++) {
458
+ observers[i](exit);
459
+ }
436
460
  }
437
- this._observers.length = 0;
438
461
  this._stack.length = 0;
439
462
  this._children = undefined;
440
463
  this.context = Context.empty();
@@ -454,12 +477,14 @@ export class FiberImpl {
454
477
  current = failCause(this._interruptedCause);
455
478
  }
456
479
  this.currentOpCount++;
457
- if (!yielding && !this.currentPreventYield && this.currentScheduler.shouldYield(this)) {
480
+ // Refresh the cache because a primitive can replace the fiber context.
481
+ const cache = this.cache;
482
+ if (!yielding && !cache.preventYield && cache.scheduler.shouldYield(this)) {
458
483
  yielding = true;
459
484
  const prev = current;
460
485
  current = flatMap(yieldNow, () => prev);
461
486
  }
462
- current = this.currentTracerContext ? this.currentTracerContext(current, this) : current[evaluate](this);
487
+ current = cache.tracerContext ? cache.tracerContext(current, this) : current[evaluate](this);
463
488
  if (current === Yield) {
464
489
  const yielded = this._yielded;
465
490
  if (ExitTypeId in yielded) {
@@ -492,11 +517,14 @@ export class FiberImpl {
492
517
  while (true) {
493
518
  const op = this._stack.pop();
494
519
  if (!op) return undefined;
495
- const cont = op[contAll] && op[contAll](this);
496
- if (cont) {
497
- ;
498
- cont[symbol] = cont;
499
- return cont;
520
+ const all = op[contAll];
521
+ if (all !== undefined) {
522
+ const cont = all.call(op, this);
523
+ if (cont) {
524
+ ;
525
+ cont[symbol] = cont;
526
+ return cont;
527
+ }
500
528
  }
501
529
  if (op[symbol]) return op;
502
530
  }
@@ -517,27 +545,39 @@ export class FiberImpl {
517
545
  // Every key cached below opts in to Context caching, so contexts related
518
546
  // only by non-caching adds cannot have changed any of them
519
547
  if (previous !== undefined && Context.hasSameCache(previous, context)) return;
520
- const scheduler = this.getRef(Scheduler.Scheduler);
521
- if (scheduler !== this.currentScheduler) {
522
- this.currentScheduler = scheduler;
548
+ // Contexts sharing a cacheRoot resolve every cached key identically, so
549
+ // the derived cache object is computed once per root and shared by all
550
+ // fibers running with that root (forked fibers reuse the parent's).
551
+ const root = context.cacheRoot;
552
+ const cache = root._fiberCache ??= makeFiberContextCache(context);
553
+ if (this.cache !== undefined && this.cache.scheduler !== cache.scheduler) {
523
554
  this._dispatcher = undefined;
524
555
  }
525
- // The string-keyed lookups keep the Tracer key values (and the native
526
- // tracer behind Tracer.Tracer's default) out of every bundle
527
- this.currentSpan = Context.getOrUndefinedUnsafe(context, Tracer.ParentSpanKey);
528
- this.currentLogLevel = this.getRef(CurrentLogLevel);
529
- this.minimumLogLevel = this.getRef(MinimumLogLevel);
530
- this.currentStackFrame = this.getRef(CurrentStackFrame);
531
- this.maxOpsBeforeYield = this.getRef(Scheduler.MaxOpsBeforeYield);
532
- this.currentPreventYield = this.getRef(Scheduler.PreventSchedulerYield);
533
- this.runtimeMetrics = Context.getOrUndefinedUnsafe(context, InternalMetric.FiberRuntimeMetricsKey);
534
- const currentTracer = Context.getOrUndefinedUnsafe(context, Tracer.TracerKey);
535
- this.currentTracerContext = currentTracer ? currentTracer["context"] : undefined;
556
+ this.cache = cache;
536
557
  }
537
558
  get currentSpanLocal() {
538
- return this.currentSpan?._tag === "Span" ? this.currentSpan : undefined;
559
+ const span = this.cache.span;
560
+ return span?._tag === "Span" ? span : undefined;
539
561
  }
540
562
  }
563
+ const makeFiberContextCache = context => {
564
+ // The string-keyed lookups keep the Tracer key values (and the native
565
+ // tracer behind Tracer.Tracer's default) out of every bundle
566
+ const currentTracer = Context.getOrUndefinedUnsafe(context, Tracer.TracerKey);
567
+ return {
568
+ scheduler: Context.get(context, Scheduler.Scheduler),
569
+ tracer: currentTracer,
570
+ tracerContext: currentTracer ? currentTracer["context"] : undefined,
571
+ tracerEnabled: Context.get(context, TracerEnabled),
572
+ span: Context.getOrUndefinedUnsafe(context, Tracer.ParentSpanKey),
573
+ logLevel: Context.get(context, CurrentLogLevel),
574
+ minimumLogLevel: Context.get(context, MinimumLogLevel),
575
+ stackFrame: Context.get(context, CurrentStackFrame),
576
+ runtimeMetrics: Context.getOrUndefinedUnsafe(context, InternalMetric.FiberRuntimeMetricsKey),
577
+ maxOpsBeforeYield: Context.get(context, Scheduler.MaxOpsBeforeYield),
578
+ preventYield: Context.get(context, Scheduler.PreventSchedulerYield)
579
+ };
580
+ };
541
581
  const deferredInterruptCont = {
542
582
  [contA](_value, fiber) {
543
583
  return failCause(fiber._interruptedCause);
@@ -550,9 +590,9 @@ const fiberMiddleware = {
550
590
  interruptChildren: undefined
551
591
  };
552
592
  const fiberStackAnnotations = fiber => {
553
- if (!fiber.currentStackFrame) return undefined;
593
+ if (!fiber.cache.stackFrame) return undefined;
554
594
  const annotations = new Map();
555
- annotations.set(InterruptorStackTrace.key, fiber.currentStackFrame);
595
+ annotations.set(InterruptorStackTrace.key, fiber.cache.stackFrame);
556
596
  return Context.makeUnsafe(annotations);
557
597
  };
558
598
  const fiberInterruptChildren = fiber => {
@@ -766,39 +806,48 @@ export const withFiberId = f => withFiber(fiber => f(fiber.id));
766
806
  export const fiber = /*#__PURE__*/withFiber(succeed);
767
807
  /** @internal */
768
808
  export const fiberId = /*#__PURE__*/withFiberId(succeed);
769
- const callbackOptions = /*#__PURE__*/makePrimitive({
770
- op: "Async",
771
- single: false,
772
- [evaluate](fiber) {
773
- const register = internalCall(() => this[args][0].bind(fiber.currentScheduler));
774
- let resumed = false;
775
- let yielded = false;
776
- const controller = this[args][1] ? new AbortController() : undefined;
777
- const onCancel = register(effect => {
778
- if (resumed) return;
779
- resumed = true;
780
- if (yielded) {
781
- fiber.evaluate(effect);
782
- } else {
783
- yielded = effect;
809
+ const callbackOptions = /*#__PURE__*/function () {
810
+ const Proto = /*#__PURE__*/makePrimitiveProto({
811
+ op: "Async",
812
+ [evaluate](fiber) {
813
+ const register = internalCall(() => this.register.bind(fiber.cache.scheduler));
814
+ let resumed = false;
815
+ let yielded = false;
816
+ const controller = this.withSignal ? new AbortController() : undefined;
817
+ const onCancel = register(effect => {
818
+ if (resumed) return;
819
+ resumed = true;
820
+ if (yielded) {
821
+ fiber.evaluate(effect);
822
+ } else {
823
+ yielded = effect;
824
+ }
825
+ }, controller?.signal);
826
+ if (yielded !== false) return yielded;
827
+ yielded = true;
828
+ fiber._yielded = () => {
829
+ resumed = true;
830
+ };
831
+ if (controller === undefined && onCancel === undefined) {
832
+ return Yield;
784
833
  }
785
- }, controller?.signal);
786
- if (yielded !== false) return yielded;
787
- yielded = true;
788
- fiber._yielded = () => {
789
- resumed = true;
790
- };
791
- if (controller === undefined && onCancel === undefined) {
834
+ fiber._stack.push(asyncFinalizer(() => {
835
+ resumed = true;
836
+ controller?.abort();
837
+ return onCancel ?? exitVoid;
838
+ }));
792
839
  return Yield;
793
840
  }
794
- fiber._stack.push(asyncFinalizer(() => {
795
- resumed = true;
796
- controller?.abort();
797
- return onCancel ?? exitVoid;
798
- }));
799
- return Yield;
800
- }
801
- });
841
+ });
842
+ const AsyncImpl = function (register, withSignal) {
843
+ this.register = register;
844
+ this.withSignal = withSignal;
845
+ };
846
+ AsyncImpl.prototype = Proto;
847
+ return function (register, withSignal) {
848
+ return new AsyncImpl(register, withSignal);
849
+ };
850
+ }();
802
851
  const asyncFinalizer = /*#__PURE__*/makePrimitive({
803
852
  op: "AsyncFinalizer",
804
853
  [contAll](fiber) {
@@ -816,7 +865,14 @@ export const callback = register => callbackOptions(register, register.length >=
816
865
  /** @internal */
817
866
  export const never = /*#__PURE__*/callback(constVoid);
818
867
  /** @internal */
819
- export const gen = (...args) => suspend(() => fromIteratorUnsafe(args.length === 1 ? args[0]() : args[1].call(args[0].self)));
868
+ export const gen = (...args) => {
869
+ if (args.length === 1) {
870
+ const body = args[0];
871
+ return suspend(() => fromIteratorUnsafe(body()));
872
+ }
873
+ const [options, body] = args;
874
+ return suspend(() => fromIteratorUnsafe(body.call(options.self)));
875
+ };
820
876
  /** @internal */
821
877
  export const fnUntraced = (body, ...pipeables) => {
822
878
  const fn = pipeables.length === 0 ? function () {
@@ -841,9 +897,12 @@ export const fn = function () {
841
897
  const name = nameFirst ? arguments[0] : "Effect.fn";
842
898
  const spanOptions = nameFirst ? arguments[1] : undefined;
843
899
  const prevLimit = getStackTraceLimit();
844
- setStackTraceLimit(2);
845
- const defError = new globalThis.Error();
846
- setStackTraceLimit(prevLimit);
900
+ let defError;
901
+ if (prevLimit !== 0) {
902
+ setStackTraceLimit(2);
903
+ defError = new globalThis.Error();
904
+ setStackTraceLimit(prevLimit);
905
+ }
847
906
  if (nameFirst) {
848
907
  return (body, ...pipeables) => makeFn(name, body, defError, pipeables, nameFirst, spanOptions);
849
908
  }
@@ -863,15 +922,18 @@ const makeFn = (name, bodyOrOptions, defError, pipeables, addSpan, spanOptions)
863
922
  return result;
864
923
  }
865
924
  const prevLimit = getStackTraceLimit();
866
- setStackTraceLimit(2);
867
- const callError = new globalThis.Error();
868
- setStackTraceLimit(prevLimit);
925
+ let callError;
926
+ if (prevLimit !== 0) {
927
+ setStackTraceLimit(2);
928
+ callError = new globalThis.Error();
929
+ setStackTraceLimit(prevLimit);
930
+ }
869
931
  return updateService(addSpan ? useSpan(name, spanOptions, span => provideParentSpan(result, span)) : result, CurrentStackFrame, prev => ({
870
932
  name,
871
- stack: fnStackCleaner(() => callError.stack),
933
+ stack: callError ? fnStackCleaner(() => callError.stack) : constUndefined,
872
934
  parent: {
873
935
  name: `${name} (definition)`,
874
- stack: fnStackCleaner(() => defError.stack),
936
+ stack: defError ? fnStackCleaner(() => defError.stack) : constUndefined,
875
937
  parent: prev
876
938
  }
877
939
  }));
@@ -883,7 +945,7 @@ export const fnUntracedEager = (body, ...pipeables) => defineFunctionLength(body
883
945
  } : function () {
884
946
  let effect = fromIteratorEagerUnsafe(() => body.apply(this, arguments));
885
947
  for (const pipeable of pipeables) {
886
- effect = pipeable(effect);
948
+ effect = pipeable(effect, ...arguments);
887
949
  }
888
950
  return effect;
889
951
  });
@@ -919,35 +981,82 @@ const fromIteratorEagerUnsafe = evaluate => {
919
981
  return die(error);
920
982
  }
921
983
  };
922
- const fromIteratorUnsafe = /*#__PURE__*/makePrimitive({
923
- op: "Iterator",
924
- single: false,
925
- [contA](value, fiber) {
926
- const iter = this[args][0];
927
- while (true) {
928
- const state = iter.next(value);
929
- if (state.done) return succeed(state.value);
930
- if (!effectIsExit(state.value)) {
931
- fiber._stack.push(this);
932
- return state.value;
933
- } else if (state.value._tag === "Failure") {
934
- return state.value;
984
+ const fromIteratorUnsafe = /*#__PURE__*/function () {
985
+ const Proto = /*#__PURE__*/makePrimitiveProto({
986
+ op: "Iterator",
987
+ [contA](value, fiber) {
988
+ const iter = this.iterator;
989
+ while (true) {
990
+ const state = iter.next(value);
991
+ if (state.done) return succeed(state.value);
992
+ if (!effectIsExit(state.value)) {
993
+ fiber._stack.push(this);
994
+ return state.value;
995
+ } else if (state.value._tag === "Failure") {
996
+ return state.value;
997
+ }
998
+ value = state.value.value;
935
999
  }
936
- value = state.value.value;
1000
+ },
1001
+ [evaluate](fiber) {
1002
+ return this[contA](this.initial, fiber);
937
1003
  }
938
- },
939
- [evaluate](fiber) {
940
- return this[contA](this[args][1], fiber);
941
- }
942
- });
1004
+ });
1005
+ const IteratorImpl = function (iterator, initial) {
1006
+ this.iterator = iterator;
1007
+ this.initial = initial;
1008
+ };
1009
+ IteratorImpl.prototype = Proto;
1010
+ return function (iterator, initial) {
1011
+ return new IteratorImpl(iterator, initial);
1012
+ };
1013
+ }();
943
1014
  // ----------------------------------------------------------------------------
944
1015
  // mapping & sequencing
945
1016
  // ----------------------------------------------------------------------------
946
1017
  /** @internal */
947
- export const as = /*#__PURE__*/dual(2, (self, value) => {
948
- const b = succeed(value);
949
- return flatMap(self, _ => b);
1018
+ export const as = /*#__PURE__*/dual(2, (self, value) => new ContImpl(self, returnPayload, succeed(value)));
1019
+ const evaluateCont = function (fiber) {
1020
+ fiber._stack.push(this);
1021
+ return this[args];
1022
+ };
1023
+ const OnSuccessProto = /*#__PURE__*/makePrimitiveProto({
1024
+ op: "OnSuccess",
1025
+ [evaluate]: evaluateCont
950
1026
  });
1027
+ const OnSuccessImpl = function (self, f) {
1028
+ this[args] = self;
1029
+ this[contA] = f;
1030
+ };
1031
+ OnSuccessImpl.prototype = OnSuccessProto;
1032
+ // A success continuation with an extra payload slot. The stored continuation
1033
+ // receives the primitive as `this` and reads `this.payload`, so combinators
1034
+ // like map / as / tap / andThen can share module-level continuation functions
1035
+ // instead of allocating a closure per call.
1036
+ const ContImpl = function (self, cont, payload) {
1037
+ this[args] = self;
1038
+ this[contA] = cont;
1039
+ this.payload = payload;
1040
+ };
1041
+ ContImpl.prototype = OnSuccessProto;
1042
+ const returnPayload = function () {
1043
+ return this.payload;
1044
+ };
1045
+ const mapCont = function (value) {
1046
+ const f = this.payload;
1047
+ return succeed(internalCall(() => f(value)));
1048
+ };
1049
+ const andThenCont = function (value) {
1050
+ const f = this.payload;
1051
+ return internalCall(() => f(value));
1052
+ };
1053
+ const tapCont = function (value) {
1054
+ const f = this.payload;
1055
+ return new ContImpl(internalCall(() => f(value)), returnPayload, exitSucceed(value));
1056
+ };
1057
+ const tapEffectCont = function (value) {
1058
+ return new ContImpl(this.payload, returnPayload, exitSucceed(value));
1059
+ };
951
1060
  /** @internal */
952
1061
  export const asSome = self => map(self, Option.some);
953
1062
  /** @internal */
@@ -956,11 +1065,11 @@ export const flip = self => matchEffect(self, {
956
1065
  onSuccess: fail
957
1066
  });
958
1067
  /** @internal */
959
- export const andThen = /*#__PURE__*/dual(2, (self, f) => flatMap(self, a => isEffect(f) ? f : internalCall(() => f(a))));
1068
+ export const andThen = /*#__PURE__*/dual(2, (self, f) => new ContImpl(self, isEffect(f) ? returnPayload : andThenCont, f));
960
1069
  /** @internal */
961
- export const tap = /*#__PURE__*/dual(2, (self, f) => flatMap(self, a => as(isEffect(f) ? f : internalCall(() => f(a)), a)));
1070
+ export const tap = /*#__PURE__*/dual(2, (self, f) => new ContImpl(self, isEffect(f) ? tapEffectCont : tapCont, f));
962
1071
  /** @internal */
963
- export const asVoid = self => flatMap(self, _ => exitVoid);
1072
+ export const asVoid = self => new ContImpl(self, returnPayload, exitVoid);
964
1073
  /** @internal */
965
1074
  export const sandbox = self => catchCause(self, fail);
966
1075
  /** @internal */
@@ -1036,19 +1145,7 @@ export const race = /*#__PURE__*/dual(args => isEffect(args[1]), (self, that, op
1036
1145
  /** @internal */
1037
1146
  export const raceFirst = /*#__PURE__*/dual(args => isEffect(args[1]), (self, that, options) => raceAllFirst([self, that], options));
1038
1147
  /** @internal */
1039
- export const flatMap = /*#__PURE__*/dual(2, (self, f) => {
1040
- const onSuccess = Object.create(OnSuccessProto);
1041
- onSuccess[args] = self;
1042
- onSuccess[contA] = f.length !== 1 ? a => f(a) : f;
1043
- return onSuccess;
1044
- });
1045
- const OnSuccessProto = /*#__PURE__*/makePrimitiveProto({
1046
- op: "OnSuccess",
1047
- [evaluate](fiber) {
1048
- fiber._stack.push(this);
1049
- return this[args];
1050
- }
1051
- });
1148
+ export const flatMap = /*#__PURE__*/dual(2, (self, f) => new OnSuccessImpl(self, f.length !== 1 ? a => f(a) : f));
1052
1149
  /** @internal */
1053
1150
  export const matchCauseEffectEager = /*#__PURE__*/dual(2, (self, options) => {
1054
1151
  if (effectIsExit(self)) {
@@ -1057,7 +1154,7 @@ export const matchCauseEffectEager = /*#__PURE__*/dual(2, (self, options) => {
1057
1154
  return matchCauseEffect(self, options);
1058
1155
  });
1059
1156
  /** @internal */
1060
- export const effectIsExit = effect => ExitTypeId in effect;
1157
+ export const effectIsExit = effect => effect[ExitTypeId] !== undefined;
1061
1158
  /** @internal */
1062
1159
  export const flatMapEager = /*#__PURE__*/dual(2, (self, f) => {
1063
1160
  if (effectIsExit(self)) {
@@ -1071,7 +1168,7 @@ export const flatMapEager = /*#__PURE__*/dual(2, (self, f) => {
1071
1168
  /** @internal */
1072
1169
  export const flatten = self => flatMap(self, identity);
1073
1170
  /** @internal */
1074
- export const map = /*#__PURE__*/dual(2, (self, f) => flatMap(self, a => succeed(internalCall(() => f(a)))));
1171
+ export const map = /*#__PURE__*/dual(2, (self, f) => new ContImpl(self, mapCont, f));
1075
1172
  /** @internal */
1076
1173
  export const mapEager = /*#__PURE__*/dual(2, (self, f) => effectIsExit(self) ? exitMap(self, f) : map(self, f));
1077
1174
  /** @internal */
@@ -1193,7 +1290,9 @@ export const updateServiceScoped = (service, update, options) => uninterruptible
1193
1290
  const updated = update(original);
1194
1291
  fiber.setContext(Context.add(fiber.context, service, updated));
1195
1292
  return scopeAddFinalizerExit(Context.getUnsafe(fiber.context, scopeTag), _ => {
1196
- const current = Context.getUnsafe(fiber.context, service);
1293
+ const currentOption = Context.getOption(fiber.context, service);
1294
+ if (Option.isNone(currentOption)) return void_;
1295
+ const current = currentOption.value;
1197
1296
  let next;
1198
1297
  if (options?.reset === undefined) {
1199
1298
  if (current !== updated) return void_;
@@ -1241,7 +1340,7 @@ export const zipWith = /*#__PURE__*/dual(args => isEffect(args[1]), (self, that,
1241
1340
  // ----------------------------------------------------------------------------
1242
1341
  // filtering & conditionals
1243
1342
  // ----------------------------------------------------------------------------
1244
- /* @internal */
1343
+ /** @internal */
1245
1344
  export const filterOrFail = /*#__PURE__*/dual(args => isEffect(args[0]), (self, predicate, orFailWith) => filterOrElse(self, predicate, orFailWith ? a => fail(orFailWith(a)) : () => fail(new NoSuchElementError())));
1246
1345
  /** @internal */
1247
1346
  export const when = /*#__PURE__*/dual(2, (self, condition) => flatMap(condition, pass => pass ? asSome(self) : succeedNone));
@@ -1264,19 +1363,16 @@ export const forever = /*#__PURE__*/dual(args => isEffect(args[0]), (self, optio
1264
1363
  // error handling
1265
1364
  // ----------------------------------------------------------------------------
1266
1365
  /** @internal */
1267
- export const catchCause = /*#__PURE__*/dual(2, (self, f) => {
1268
- const onFailure = Object.create(OnFailureProto);
1269
- onFailure[args] = self;
1270
- onFailure[contE] = f.length !== 1 ? cause => f(cause) : f;
1271
- return onFailure;
1272
- });
1366
+ export const catchCause = /*#__PURE__*/dual(2, (self, f) => new OnFailureImpl(self, f.length !== 1 ? cause => f(cause) : f));
1273
1367
  const OnFailureProto = /*#__PURE__*/makePrimitiveProto({
1274
1368
  op: "OnFailure",
1275
- [evaluate](fiber) {
1276
- fiber._stack.push(this);
1277
- return this[args];
1278
- }
1369
+ [evaluate]: evaluateCont
1279
1370
  });
1371
+ const OnFailureImpl = function (self, f) {
1372
+ this[args] = self;
1373
+ this[contE] = f;
1374
+ };
1375
+ OnFailureImpl.prototype = OnFailureProto;
1280
1376
  /** @internal */
1281
1377
  export const catchCauseIf = /*#__PURE__*/dual(3, (self, predicate, f) => catchCause(self, cause => {
1282
1378
  if (!predicate(cause)) {
@@ -1352,7 +1448,7 @@ export const catchTags = /*#__PURE__*/dual(args => isEffect(args[0]), (self, cas
1352
1448
  }, e => internalCall(() => cases[e["_tag"]](e)), orElse);
1353
1449
  });
1354
1450
  /** @internal */
1355
- export const catchReason = /*#__PURE__*/dual(args => isEffect(args[0]), (self, errorTag, reasonTag, f, orElse) => catchIf(self, e => isTagged(e, errorTag) && hasProperty(e, "reason"), e => {
1451
+ export const catchReason = /*#__PURE__*/dual(args => isEffect(args[0]), (self, errorTag, reasonTag, f, orElse) => catchIf(self, e => isTagged(e, errorTag) && hasProperty(e, "reason") && (orElse !== undefined || isTagged(e.reason, reasonTag)), e => {
1356
1452
  const reason = e.reason;
1357
1453
  if (isTagged(reason, reasonTag)) return f(reason, e);
1358
1454
  return orElse ? internalCall(() => orElse(reason, e)) : fail(e);
@@ -1360,7 +1456,7 @@ export const catchReason = /*#__PURE__*/dual(args => isEffect(args[0]), (self, e
1360
1456
  /** @internal */
1361
1457
  export const catchReasons = /*#__PURE__*/dual(args => isEffect(args[0]), (self, errorTag, cases, orElse) => {
1362
1458
  let keys;
1363
- return catchIf(self, e => isTagged(e, errorTag) && hasProperty(e, "reason") && hasProperty(e.reason, "_tag") && isString(e.reason._tag), e => {
1459
+ return catchIf(self, e => isTagged(e, errorTag) && hasProperty(e, "reason") && hasProperty(e.reason, "_tag") && isString(e.reason._tag) && (orElse !== undefined || (keys ??= Object.keys(cases)).includes(e.reason._tag)), e => {
1364
1460
  const reason = e.reason;
1365
1461
  keys ??= Object.keys(cases);
1366
1462
  if (keys.includes(reason._tag)) {
@@ -1378,7 +1474,7 @@ export const unwrapReason = /*#__PURE__*/dual(2, (self, errorTag) => catchFilter
1378
1474
  }, fail));
1379
1475
  /** @internal */
1380
1476
  export const mapError = /*#__PURE__*/dual(2, (self, f) => catch_(self, error => failSync(() => f(error))));
1381
- /* @internal */
1477
+ /** @internal */
1382
1478
  export const mapBoth = /*#__PURE__*/dual(2, (self, options) => matchEffect(self, {
1383
1479
  onFailure: e => failSync(() => options.onFailure(e)),
1384
1480
  onSuccess: a => sync(() => options.onSuccess(a))
@@ -1448,20 +1544,17 @@ export const result = self => matchEager(self, {
1448
1544
  // pattern matching
1449
1545
  // ----------------------------------------------------------------------------
1450
1546
  /** @internal */
1451
- export const matchCauseEffect = /*#__PURE__*/dual(2, (self, options) => {
1452
- const primitive = Object.create(OnSuccessAndFailureProto);
1453
- primitive[args] = self;
1454
- primitive[contA] = options.onSuccess.length !== 1 ? a => options.onSuccess(a) : options.onSuccess;
1455
- primitive[contE] = options.onFailure.length !== 1 ? cause => options.onFailure(cause) : options.onFailure;
1456
- return primitive;
1457
- });
1547
+ export const matchCauseEffect = /*#__PURE__*/dual(2, (self, options) => new OnSuccessAndFailureImpl(self, options.onSuccess.length !== 1 ? a => options.onSuccess(a) : options.onSuccess, options.onFailure.length !== 1 ? cause => options.onFailure(cause) : options.onFailure));
1458
1548
  const OnSuccessAndFailureProto = /*#__PURE__*/makePrimitiveProto({
1459
1549
  op: "OnSuccessAndFailure",
1460
- [evaluate](fiber) {
1461
- fiber._stack.push(this);
1462
- return this[args];
1463
- }
1550
+ [evaluate]: evaluateCont
1464
1551
  });
1552
+ const OnSuccessAndFailureImpl = function (self, onSuccess, onFailure) {
1553
+ this[args] = self;
1554
+ this[contA] = onSuccess;
1555
+ this[contE] = onFailure;
1556
+ };
1557
+ OnSuccessAndFailureImpl.prototype = OnSuccessAndFailureProto;
1465
1558
  /** @internal */
1466
1559
  export const matchCause = /*#__PURE__*/dual(2, (self, options) => matchCauseEffect(self, {
1467
1560
  onFailure: cause => sync(() => options.onFailure(cause)),
@@ -1532,12 +1625,17 @@ export const isSuccess = /*#__PURE__*/matchEager({
1532
1625
  /** @internal */
1533
1626
  export const delay = /*#__PURE__*/dual(2, (self, duration) => andThen(sleep(duration), self));
1534
1627
  /** @internal */
1535
- export const timeoutOrElse = /*#__PURE__*/dual(2, (self, options) => raceFirst(self, flatMap(sleep(options.duration), options.orElse)));
1628
+ export const timeoutOrElse = /*#__PURE__*/dual(2, (self, options) => flatMap(timeoutOption(self, options.duration), option => Option.isNone(option) ? options.orElse() : succeed(option.value)));
1536
1629
  /** @internal */
1537
- export const timeout = /*#__PURE__*/dual(2, (self, duration) => timeoutOrElse(self, {
1538
- duration,
1539
- orElse: () => fail(new TimeoutError())
1540
- }));
1630
+ const timeoutErrorFromDuration = duration => new TimeoutError(`Operation timed out after '${Duration.format(duration)}'`);
1631
+ /** @internal */
1632
+ export const timeout = /*#__PURE__*/dual(2, (self, duration) => {
1633
+ const decoded = Duration.fromInputUnsafe(duration);
1634
+ return timeoutOrElse(self, {
1635
+ duration: decoded,
1636
+ orElse: () => fail(timeoutErrorFromDuration(decoded))
1637
+ });
1638
+ });
1541
1639
  /** @internal */
1542
1640
  export const timeoutOption = /*#__PURE__*/dual(2, (self, duration) => raceFirst(asSome(self), as(sleep(duration), Option.none())));
1543
1641
  /** @internal */
@@ -1701,30 +1799,40 @@ export const acquireRelease = (acquire, release, options) => contextWith(context
1701
1799
  /** @internal */
1702
1800
  export const addFinalizer = finalizer => flatMap(scope, scope => contextWith(context => scopeAddFinalizerExit(scope, exit => provideContext(finalizer(exit), context))));
1703
1801
  /** @internal */
1704
- export const onExitPrimitive = /*#__PURE__*/makePrimitive({
1705
- op: "OnExit",
1706
- single: false,
1707
- [evaluate](fiber) {
1708
- fiber._stack.push(this);
1709
- return this[args][0];
1710
- },
1711
- [contAll](fiber) {
1712
- if (fiber.interruptible && this[args][2] !== true) {
1713
- fiber._stack.push(setInterruptibleTrue);
1714
- fiber.interruptible = false;
1802
+ export const onExitPrimitive = /*#__PURE__*/function () {
1803
+ const Proto = /*#__PURE__*/makePrimitiveProto({
1804
+ op: "OnExit",
1805
+ [evaluate](fiber) {
1806
+ fiber._stack.push(this);
1807
+ return this.effect;
1808
+ },
1809
+ [contAll](fiber) {
1810
+ if (fiber.interruptible && this.interruptible !== true) {
1811
+ fiber._stack.push(setInterruptibleTrue);
1812
+ fiber.interruptible = false;
1813
+ }
1814
+ },
1815
+ [contA](value, _, exit) {
1816
+ exit ??= exitSucceed(value);
1817
+ const eff = this.onExit(exit);
1818
+ return eff ? flatMap(eff, _ => exit) : exit;
1819
+ },
1820
+ [contE](cause, _, exit) {
1821
+ exit ??= exitFailCause(cause);
1822
+ const eff = this.onExit(exit);
1823
+ return eff ? flatMap(combineFinalizerCause(exit, eff), _ => exit) : exit;
1715
1824
  }
1716
- },
1717
- [contA](value, _, exit) {
1718
- exit ??= exitSucceed(value);
1719
- const eff = this[args][1](exit);
1720
- return eff ? flatMap(eff, _ => exit) : exit;
1721
- },
1722
- [contE](cause, _, exit) {
1723
- exit ??= exitFailCause(cause);
1724
- const eff = this[args][1](exit);
1725
- return eff ? flatMap(combineFinalizerCause(exit, eff), _ => exit) : exit;
1726
- }
1727
- });
1825
+ });
1826
+ const OnExitImpl = function (effect, onExit, interruptible) {
1827
+ this.effect = effect;
1828
+ this.onExit = onExit;
1829
+ this.interruptible = interruptible;
1830
+ };
1831
+ OnExitImpl.prototype = Proto;
1832
+ return function (effect, onExit, interruptible) {
1833
+ return new OnExitImpl(effect, onExit, interruptible);
1834
+ };
1835
+ }();
1728
1836
  /** @internal */
1729
1837
  export const onExit = /*#__PURE__*/dual(2, onExitPrimitive);
1730
1838
  /** @internal */
@@ -1761,7 +1869,7 @@ export const onErrorFilter = /*#__PURE__*/dual(3, (self, filter, f) => onExit(se
1761
1869
  /** @internal */
1762
1870
  export const onInterrupt = /*#__PURE__*/dual(2, (self, finalizer) => onErrorFilter(causeFilterInterruptors, finalizer)(self));
1763
1871
  /** @internal */
1764
- export const acquireUseRelease = (acquire, use, release) => uninterruptibleMask(restore => flatMap(acquire, a => onExitPrimitive(restore(use(a)), exit => release(a, exit), true)));
1872
+ export const acquireUseRelease = (acquire, use, release) => uninterruptibleMask(restore => flatMap(acquire, a => onExitPrimitive(suspend(() => restore(use(a))), exit => release(a, exit), true)));
1765
1873
  /** @internal */
1766
1874
  export const acquireDisposable = acquire => acquireRelease(acquire, resource => hasProperty(resource, Symbol.asyncDispose) ? promise(() => resource[Symbol.asyncDispose]()) : sync(() => resource[Symbol.dispose]()));
1767
1875
  // ----------------------------------------------------------------------------
@@ -1798,7 +1906,21 @@ export const cachedInvalidateWithTTL = /*#__PURE__*/dual(2, (self, ttl) => sync(
1798
1906
  /** @internal */
1799
1907
  export const cachedWithTTL = /*#__PURE__*/dual(2, (self, timeToLive) => map(cachedInvalidateWithTTL(self, timeToLive), tuple => tuple[0]));
1800
1908
  /** @internal */
1801
- export const cached = self => cachedWithTTL(self, Duration.infinity);
1909
+ export const cached = self => sync(() => {
1910
+ const latch = makeLatchUnsafe(false);
1911
+ let started = false;
1912
+ let exit;
1913
+ const wait = flatMap(latch.await, () => exit);
1914
+ return suspend(() => {
1915
+ if (exit !== undefined) return exit;
1916
+ if (started) return wait;
1917
+ started = true;
1918
+ return onExit(self, result => sync(() => {
1919
+ exit = result;
1920
+ latch.openUnsafe();
1921
+ }));
1922
+ });
1923
+ });
1802
1924
  // ----------------------------------------------------------------------------
1803
1925
  // interruption
1804
1926
  // ----------------------------------------------------------------------------
@@ -1827,6 +1949,30 @@ const setFiberInterruptible = fiber => {
1827
1949
  fiber._stack.push(setInterruptibleFalse);
1828
1950
  if (fiber._interruptedCause) return failCause(fiber._interruptedCause);
1829
1951
  };
1952
+ /**
1953
+ * Makes the current fiber uninterruptible for the returned effect without an
1954
+ * extra primitive. Call only within `withFiber`.
1955
+ *
1956
+ * @internal
1957
+ */
1958
+ export const fiberEnterUninterruptibleUnsafe = fiber => {
1959
+ const impl = fiber;
1960
+ if (!impl.interruptible) return;
1961
+ impl.interruptible = false;
1962
+ impl._stack.push(setInterruptibleTrue);
1963
+ };
1964
+ /**
1965
+ * Makes the current fiber interruptible for the returned effect without an
1966
+ * extra primitive. Call only within `withFiber` and return any pending
1967
+ * interruption it produces.
1968
+ *
1969
+ * @internal
1970
+ */
1971
+ export const fiberEnterInterruptibleUnsafe = fiber => {
1972
+ const impl = fiber;
1973
+ if (impl.interruptible) return undefined;
1974
+ return setFiberInterruptible(impl);
1975
+ };
1830
1976
  /** @internal */
1831
1977
  export const interruptible = self => withFiber(fiber => {
1832
1978
  if (fiber.interruptible) return self;
@@ -1955,8 +2101,7 @@ export const whileLoop = /*#__PURE__*/makePrimitive({
1955
2101
  });
1956
2102
  /** @internal */
1957
2103
  export const forEach = /*#__PURE__*/dual(args => typeof args[1] === "function", (iterable, f, options) => suspend(() => {
1958
- const concurrencyOption = options?.concurrency ?? 1;
1959
- const concurrency = concurrencyOption === "unbounded" ? Number.POSITIVE_INFINITY : Math.max(1, concurrencyOption);
2104
+ const concurrency = resolveConcurrency(options?.concurrency);
1960
2105
  if (concurrency === 1) {
1961
2106
  return forEachSequential(iterable, f, options);
1962
2107
  }
@@ -1993,10 +2138,13 @@ const forEachSequential = (iterable, f, options) => suspend(() => {
1993
2138
  }
1994
2139
  }), out);
1995
2140
  });
1996
- const iterateEagerImpl = options => {
2141
+ /** @internal */
2142
+ export const resolveConcurrency = concurrency => concurrency === "unbounded" ? Number.POSITIVE_INFINITY : Math.max(1, concurrency ?? 1);
2143
+ /** @internal */
2144
+ export const iterateEager = () => options => {
1997
2145
  const onItem = options.onItem;
1998
2146
  const step = options.step;
1999
- const runSequential = (state, items, index, end) => {
2147
+ const runSequential = (state, items, index = 0, end = items.length) => {
2000
2148
  for (; index < end; index++) {
2001
2149
  const item = items[index];
2002
2150
  const effect = onItem(state, item, index);
@@ -2007,14 +2155,15 @@ const iterateEagerImpl = options => {
2007
2155
  if (terminal) return terminal._tag === "Failure" ? terminal : undefined;
2008
2156
  }
2009
2157
  };
2158
+ return runSequential;
2159
+ };
2160
+ const iterateConcurrentImpl = options => {
2161
+ const onItem = options.onItem;
2162
+ const step = options.step;
2010
2163
  return (state, items, opts) => {
2011
2164
  let index = 0;
2012
- const end = opts?.end ?? items.length;
2013
- const concurrency = opts?.concurrency ?? 1;
2014
- if (concurrency === 1) {
2015
- return runSequential(state, items, 0, end);
2016
- }
2017
- const orderedStep = opts?.orderedStep === true;
2165
+ const end = opts.end ?? items.length;
2166
+ const concurrency = opts.concurrency;
2018
2167
  let done = false;
2019
2168
  let parentFiber;
2020
2169
  let fibers;
@@ -2022,8 +2171,6 @@ const iterateEagerImpl = options => {
2022
2171
  let interrupted = false;
2023
2172
  let terminal;
2024
2173
  let effect;
2025
- let nextIndex = index;
2026
- const exits = orderedStep ? new Array(end) : undefined;
2027
2174
  const failDefect = error => {
2028
2175
  const defect = exitDie(error);
2029
2176
  terminal = defect;
@@ -2031,19 +2178,6 @@ const iterateEagerImpl = options => {
2031
2178
  interrupted = true;
2032
2179
  return fibers && fibers.size > 0 ? flatMap(uninterruptible(fiberInterruptAll(Array.from(fibers))), () => defect) : defect;
2033
2180
  };
2034
- const runStep = (item, exit, currentIndex) => {
2035
- if (!orderedStep) return step(state, item, exit, currentIndex);
2036
- if (terminal) return terminal;
2037
- exits[currentIndex] = exit;
2038
- while (nextIndex < end) {
2039
- const nextExit = exits[nextIndex];
2040
- if (nextExit === undefined) return;
2041
- exits[nextIndex] = undefined;
2042
- const index = nextIndex++;
2043
- const result = step(state, items[index], nextExit, index);
2044
- if (result) return result;
2045
- }
2046
- };
2047
2181
  const go = () => {
2048
2182
  let paused = false;
2049
2183
  for (; !terminal && index < end; index++) {
@@ -2051,7 +2185,7 @@ const iterateEagerImpl = options => {
2051
2185
  const eff = effect ?? onItem(state, item, index);
2052
2186
  // fast case (already an exit)
2053
2187
  if (effectIsExit(eff)) {
2054
- terminal = runStep(item, eff, index);
2188
+ terminal = step(state, item, eff, index);
2055
2189
  if (terminal) break;
2056
2190
  // We have an effect, so enter "async" mode
2057
2191
  } else if (!parentFiber) {
@@ -2079,7 +2213,7 @@ const iterateEagerImpl = options => {
2079
2213
  effect = undefined;
2080
2214
  const fiber = forkUnsafe(parentFiber, eff, true, true, "inherit");
2081
2215
  if (fiber._exit) {
2082
- terminal = runStep(item, fiber._exit, index);
2216
+ terminal = step(state, item, fiber._exit, index);
2083
2217
  if (terminal) break;
2084
2218
  continue;
2085
2219
  }
@@ -2101,7 +2235,7 @@ const iterateEagerImpl = options => {
2101
2235
  }
2102
2236
  }
2103
2237
  } else {
2104
- const result = runStep(item, exit, currentIndex);
2238
+ const result = step(state, item, exit, currentIndex);
2105
2239
  if (result) {
2106
2240
  terminal = result._tag === "Failure" ? exitFailCause(causeFromReasons(result.cause.reasons.slice())) : result;
2107
2241
  go();
@@ -2146,8 +2280,8 @@ const iterateEagerImpl = options => {
2146
2280
  };
2147
2281
  };
2148
2282
  /** @internal */
2149
- export const iterateEager = () => iterateEagerImpl;
2150
- const forEachConcurrent = /*#__PURE__*/iterateEagerImpl({
2283
+ export const iterateConcurrent = () => options => iterateConcurrentImpl(options);
2284
+ const forEachConcurrent = /*#__PURE__*/iterateConcurrentImpl({
2151
2285
  onItem(state, item, index) {
2152
2286
  return state.f(item, index);
2153
2287
  },
@@ -2157,14 +2291,14 @@ const forEachConcurrent = /*#__PURE__*/iterateEagerImpl({
2157
2291
  }
2158
2292
  }
2159
2293
  });
2160
- /* @internal */
2294
+ /** @internal */
2161
2295
  export const filterOrElse = /*#__PURE__*/dual(3, (self, predicate, orElse) => flatMap(self, a => predicate(a) ? succeed(a) : orElse(a)));
2162
2296
  /** @internal */
2163
2297
  export const filterMapOrElse = /*#__PURE__*/dual(3, (self, filter, orElse) => flatMap(self, a => {
2164
2298
  const result = filter(a);
2165
2299
  return Result.isFailure(result) ? orElse(result.failure) : succeed(result.success);
2166
2300
  }));
2167
- /* @internal */
2301
+ /** @internal */
2168
2302
  export const filterMapOrFail = /*#__PURE__*/dual(args => isEffect(args[0]), (self, filter, orFailWith) => filterMapOrElse(self, filter, orFailWith ? x => fail(orFailWith(x)) : () => fail(new NoSuchElementError())));
2169
2303
  /** @internal */
2170
2304
  export const filter = /*#__PURE__*/dual(args => isIterable(args[0]) && !isEffect(args[0]), (elements, predicate, options) => suspend(() => {
@@ -2241,7 +2375,7 @@ export const forkUnsafe = (parent, effect, immediate = false, daemon = false, un
2241
2375
  }
2242
2376
  if (!daemon && !child._exit) {
2243
2377
  parentRuntime.children().add(child);
2244
- child.addObserver(() => parentRuntime._children.delete(child));
2378
+ child._parent = parentRuntime;
2245
2379
  }
2246
2380
  return child;
2247
2381
  };
@@ -2508,7 +2642,7 @@ const filterDisablePropagation = span => {
2508
2642
  /** @internal */
2509
2643
  export const makeSpanUnsafe = (fiber, name, options) => {
2510
2644
  const disablePropagation = !fiber.getRef(TracerEnabled) || options?.annotations && Context.get(options.annotations, Tracer.DisablePropagation);
2511
- const parent = options?.parent !== undefined ? Option.some(options.parent) : options?.root ? Option.none() : filterDisablePropagation(fiber.currentSpan);
2645
+ const parent = options?.parent !== undefined ? Option.some(options.parent) : options?.root ? Option.none() : filterDisablePropagation(fiber.cache.span);
2512
2646
  let span;
2513
2647
  if (disablePropagation) {
2514
2648
  span = noopSpan({
@@ -2529,7 +2663,7 @@ export const makeSpanUnsafe = (fiber, name, options) => {
2529
2663
  parent,
2530
2664
  annotations: options?.annotations ?? Context.empty(),
2531
2665
  links,
2532
- startTime: timingEnabled ? clock.currentTimeNanosUnsafe() : BigInt(0),
2666
+ startTime: timingEnabled ? clock.currentTimeNanosUnsafe() : bigint0,
2533
2667
  kind: options?.kind ?? "internal",
2534
2668
  root: options?.root ?? Option.isNone(parent),
2535
2669
  sampled: options?.sampled ?? (Option.isSome(parent) && parent.value.sampled === false ? false : !isLogLevelGreaterThan(fiber.getRef(Tracer.MinimumTraceLevel), level))
@@ -2600,7 +2734,7 @@ export const useSpan = (name, ...args) => {
2600
2734
  const span = makeSpanUnsafe(fiber, name, options);
2601
2735
  const clock = fiber.getRef(ClockRef);
2602
2736
  const timingEnabled = fiber.getRef(TracerTimingEnabled);
2603
- return onExit(internalCall(() => evaluate(span)), exit => endSpan(span, exit, clock, timingEnabled));
2737
+ return onExit(suspend(() => internalCall(() => evaluate(span))), exit => endSpan(span, exit, clock, timingEnabled));
2604
2738
  });
2605
2739
  };
2606
2740
  const provideParentSpan = /*#__PURE__*/provideService(Tracer.ParentSpan);
@@ -2821,7 +2955,7 @@ export class UnknownError extends /*#__PURE__*/TaggedError("UnknownError") {
2821
2955
  // Console
2822
2956
  // ----------------------------------------------------------------------------
2823
2957
  /** @internal */
2824
- export const ConsoleRef = /*#__PURE__*/Context.Reference("effect/Console/CurrentConsole", {
2958
+ export const ConsoleRef = /*#__PURE__*/Context.Reference("effect/Console", {
2825
2959
  defaultValue: () => globalThis.console
2826
2960
  });
2827
2961
  // ----------------------------------------------------------------------------
@@ -2856,7 +2990,7 @@ export const isLogLevelGreaterThan = /*#__PURE__*/Order.isGreaterThan(LogLevelOr
2856
2990
  // Logger
2857
2991
  // ----------------------------------------------------------------------------
2858
2992
  /** @internal */
2859
- export const CurrentLoggers = /*#__PURE__*/Context.Reference("effect/Loggers/CurrentLoggers", {
2993
+ export const CurrentLoggers = /*#__PURE__*/Context.Reference("effect/Logger/CurrentLoggers", {
2860
2994
  defaultValue: () => new Set([defaultLogger, tracerLogger])
2861
2995
  });
2862
2996
  /** @internal */
@@ -2883,7 +3017,7 @@ export const annotateLogsScoped = function () {
2883
3017
  };
2884
3018
  for (let i = 0; i < entries.length; i++) {
2885
3019
  const [key, value] = entries[i];
2886
- if (current[key] !== value) continue;
3020
+ if (current[key] !== value && !Object.is(current[key], value)) continue;
2887
3021
  if (Object.hasOwn(prev, key)) {
2888
3022
  InternalRecord.assignProperty(next, key, prev[key]);
2889
3023
  } else {
@@ -2962,8 +3096,8 @@ export const logWithLevel = level => (...message) => {
2962
3096
  cause = causeEmpty;
2963
3097
  }
2964
3098
  return withFiber(fiber => {
2965
- const logLevel = level ?? fiber.currentLogLevel;
2966
- if (isLogLevelGreaterThan(fiber.minimumLogLevel, logLevel)) {
3099
+ const logLevel = level ?? fiber.cache.logLevel;
3100
+ if (isLogLevelGreaterThan(fiber.cache.minimumLogLevel, logLevel)) {
2967
3101
  return void_;
2968
3102
  }
2969
3103
  const clock = fiber.getRef(ClockRef);
@@ -3030,24 +3164,22 @@ export const consolePretty = options => {
3030
3164
  // property accesses, which bundlers must retain as possible side effects
3031
3165
  const process = globalThis.process;
3032
3166
  const hasProcessStdout = typeof process?.stdout === "object" && process.stdout !== null;
3033
- const processStdoutIsTTY = hasProcessStdout && process.stdout.isTTY === true;
3034
- const hasProcessStdoutOrDeno = hasProcessStdout || "Deno" in globalThis;
3035
- const mode_ = options?.mode ?? "auto";
3036
- const mode = mode_ === "auto" ? hasProcessStdoutOrDeno ? "tty" : "browser" : mode_;
3037
- const isBrowser = mode === "browser";
3038
- const showColors = typeof options?.colors === "boolean" ? options.colors : processStdoutIsTTY || isBrowser;
3039
- const formatDate = options?.formatDate ?? defaultDateFormat;
3040
- return isBrowser ? prettyLoggerBrowser({
3041
- colors: showColors,
3042
- formatDate
3043
- }) : prettyLoggerTty({
3044
- colors: showColors,
3045
- formatDate
3046
- });
3167
+ const isDeno = "Deno" in globalThis;
3168
+ const mode = options?.mode ?? "auto";
3169
+ const isTtyLogger = mode === "auto" ? hasProcessStdout || isDeno : mode === "tty";
3170
+ return isTtyLogger ? prettyLoggerTty(options) : prettyLoggerBrowser(options);
3047
3171
  };
3048
- const prettyLoggerTty = options => {
3049
- const processIsBun = globalThis.process?.isBun === true;
3050
- const color = options.colors ? withColor : withColorNoop;
3172
+ /** @internal */
3173
+ export const prettyLoggerTty = options => {
3174
+ const formatDate = options?.formatDate ?? defaultDateFormat;
3175
+ // evaluated lazily so the module-level bundle stays free of `process`
3176
+ // property accesses, which bundlers must retain as possible side effects
3177
+ const process = globalThis.process;
3178
+ const hasProcessStdout = typeof process?.stdout === "object" && process.stdout !== null;
3179
+ const processStdoutIsTTY = hasProcessStdout && process.stdout.isTTY === true;
3180
+ const showColors = typeof options?.colors === "boolean" ? options.colors : processStdoutIsTTY;
3181
+ const color = showColors ? withColor : withColorNoop;
3182
+ const processIsBun = process?.isBun === true;
3051
3183
  return loggerMake(({
3052
3184
  cause,
3053
3185
  date,
@@ -3059,7 +3191,7 @@ const prettyLoggerTty = options => {
3059
3191
  // oxlint-disable-next-line no-console
3060
3192
  const log = fiber.getRef(LogToStderr) ? console.error : console.log;
3061
3193
  const message = Array.isArray(message_) ? message_.slice() : [message_];
3062
- let firstLine = color(`[${options.formatDate(date)}]`, colors.white) + ` ${color(logLevel.toUpperCase(), ...logLevelColors[logLevel])}` + ` (#${fiber.id})`;
3194
+ let firstLine = color(`[${formatDate(date)}]`, colors.white) + ` ${color(logLevel.toUpperCase(), ...logLevelColors[logLevel])}` + ` (#${fiber.id})`;
3063
3195
  const now = date.getTime();
3064
3196
  const spans = fiber.getRef(CurrentLogSpans);
3065
3197
  for (const span of spans) {
@@ -3093,8 +3225,11 @@ const prettyLoggerTty = options => {
3093
3225
  if (!processIsBun) console.groupEnd();
3094
3226
  });
3095
3227
  };
3096
- const prettyLoggerBrowser = options => {
3097
- const color = options.colors ? "%c" : "";
3228
+ /** @internal */
3229
+ export const prettyLoggerBrowser = options => {
3230
+ const showColors = options?.colors !== false;
3231
+ const color = showColors ? "%c" : "";
3232
+ const formatDate = options?.formatDate ?? defaultDateFormat;
3098
3233
  return loggerMake(({
3099
3234
  cause,
3100
3235
  date,
@@ -3104,13 +3239,13 @@ const prettyLoggerBrowser = options => {
3104
3239
  }) => {
3105
3240
  const console = fiber.getRef(ConsoleRef);
3106
3241
  const message = Array.isArray(message_) ? message_.slice() : [message_];
3107
- let firstLine = `${color}[${options.formatDate(date)}]`;
3242
+ let firstLine = `${color}[${formatDate(date)}]`;
3108
3243
  const firstParams = [];
3109
- if (options.colors) {
3244
+ if (showColors) {
3110
3245
  firstParams.push("color:gray");
3111
3246
  }
3112
3247
  firstLine += ` ${color}${logLevel.toUpperCase()}${color} (#${fiber.id})`;
3113
- if (options.colors) {
3248
+ if (showColors) {
3114
3249
  firstParams.push(logLevelStyle[logLevel], "");
3115
3250
  }
3116
3251
  const now = date.getTime();
@@ -3124,7 +3259,7 @@ const prettyLoggerBrowser = options => {
3124
3259
  const firstMaybeString = structuredMessage(message[0]);
3125
3260
  if (typeof firstMaybeString === "string") {
3126
3261
  firstLine += ` ${color}${firstMaybeString}`;
3127
- if (options.colors) {
3262
+ if (showColors) {
3128
3263
  firstParams.push("color:deepskyblue");
3129
3264
  }
3130
3265
  messageIndex++;
@@ -3145,7 +3280,7 @@ const prettyLoggerBrowser = options => {
3145
3280
  const annotations = fiber.getRef(CurrentLogAnnotations);
3146
3281
  for (const [key, value] of Object.entries(annotations)) {
3147
3282
  const redacted = redact(value);
3148
- if (options.colors) {
3283
+ if (showColors) {
3149
3284
  // oxlint-disable-next-line no-console
3150
3285
  console.log(`%c${key}:`, "color:gray", redacted);
3151
3286
  } else {
@@ -3193,7 +3328,7 @@ export const tracerLogger = /*#__PURE__*/loggerMake(({
3193
3328
  }) => {
3194
3329
  const clock = fiber.getRef(ClockRef);
3195
3330
  const annotations = fiber.getRef(CurrentLogAnnotations);
3196
- const span = fiber.currentSpan;
3331
+ const span = fiber.cache.span;
3197
3332
  if (span === undefined || span._tag === "ExternalSpan") return;
3198
3333
  const attributes = {};
3199
3334
  for (const [key, value] of Object.entries(annotations)) {