effect 4.0.0-beta.99 → 4.0.0-rc.109

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 (1904) hide show
  1. package/AGENTS.md +395 -0
  2. package/CLAUDE.md +395 -0
  3. package/README.md +19 -23
  4. package/ai-docs/README.md +44 -0
  5. package/ai-docs/package.json +36 -0
  6. package/ai-docs/src/01_effect/01_basics/01_effect-gen.ts +30 -0
  7. package/ai-docs/src/01_effect/01_basics/02_effect-fn.ts +39 -0
  8. package/ai-docs/src/01_effect/01_basics/10_creating-effects.ts +74 -0
  9. package/ai-docs/src/01_effect/01_basics/index.md +5 -0
  10. package/ai-docs/src/01_effect/02_schema/10_schema-basics.ts +43 -0
  11. package/ai-docs/src/01_effect/02_schema/index.md +7 -0
  12. package/ai-docs/src/01_effect/03_services/01_service.ts +45 -0
  13. package/ai-docs/src/01_effect/03_services/10_reference.ts +10 -0
  14. package/ai-docs/src/01_effect/03_services/20_layer-composition.ts +70 -0
  15. package/ai-docs/src/01_effect/03_services/20_layer-unwrap.ts +66 -0
  16. package/ai-docs/src/01_effect/03_services/index.md +5 -0
  17. package/ai-docs/src/01_effect/04_errors/01_error-handling.ts +30 -0
  18. package/ai-docs/src/01_effect/04_errors/10_catch-tags.ts +24 -0
  19. package/ai-docs/src/01_effect/04_errors/20_reason-errors.ts +64 -0
  20. package/ai-docs/src/01_effect/04_errors/index.md +1 -0
  21. package/ai-docs/src/01_effect/05_resources/10_acquire-release.ts +105 -0
  22. package/ai-docs/src/01_effect/05_resources/20_layer-side-effects.ts +31 -0
  23. package/ai-docs/src/01_effect/05_resources/30_layer-map.ts +86 -0
  24. package/ai-docs/src/01_effect/05_resources/index.md +3 -0
  25. package/ai-docs/src/01_effect/06_running/10_run-main.ts +30 -0
  26. package/ai-docs/src/01_effect/06_running/20_layer-launch.ts +27 -0
  27. package/ai-docs/src/01_effect/06_running/index.md +1 -0
  28. package/ai-docs/src/01_effect/07_pubsub/10_pubsub.ts +56 -0
  29. package/ai-docs/src/01_effect/07_pubsub/index.md +3 -0
  30. package/ai-docs/src/03_stream/10_creating-streams.ts +103 -0
  31. package/ai-docs/src/03_stream/20_consuming-streams.ts +137 -0
  32. package/ai-docs/src/03_stream/30_encoding.ts +165 -0
  33. package/ai-docs/src/03_stream/index.md +4 -0
  34. package/ai-docs/src/04_integration/10_managed-runtime.ts +129 -0
  35. package/ai-docs/src/04_integration/index.md +5 -0
  36. package/ai-docs/src/05_batching/10_request-resolver.ts +89 -0
  37. package/ai-docs/src/05_batching/index.md +3 -0
  38. package/ai-docs/src/06_schedule/10_schedules.ts +110 -0
  39. package/ai-docs/src/06_schedule/index.md +3 -0
  40. package/ai-docs/src/07_datetime/10_creating-and-formatting.ts +30 -0
  41. package/ai-docs/src/07_datetime/20_time-zones.ts +44 -0
  42. package/ai-docs/src/07_datetime/index.md +5 -0
  43. package/ai-docs/src/08_observability/10_logging.ts +66 -0
  44. package/ai-docs/src/08_observability/20_otlp-tracing.ts +95 -0
  45. package/ai-docs/src/08_observability/index.md +7 -0
  46. package/ai-docs/src/09_testing/10_effect-tests.ts +55 -0
  47. package/ai-docs/src/09_testing/20_layer-tests.ts +138 -0
  48. package/ai-docs/src/09_testing/index.md +1 -0
  49. package/ai-docs/src/10_predicate/01_basics.ts +14 -0
  50. package/ai-docs/src/10_predicate/index.md +9 -0
  51. package/ai-docs/src/40_sql/10_basics.ts +175 -0
  52. package/ai-docs/src/40_sql/index.md +6 -0
  53. package/ai-docs/src/50_http-client/10_basics.ts +102 -0
  54. package/ai-docs/src/50_http-client/index.md +3 -0
  55. package/ai-docs/src/51_http-server/10_basics.ts +118 -0
  56. package/ai-docs/src/51_http-server/20_testing.ts +100 -0
  57. package/ai-docs/src/51_http-server/fixtures/api/Api.ts +14 -0
  58. package/ai-docs/src/51_http-server/fixtures/api/Authorization.ts +36 -0
  59. package/ai-docs/src/51_http-server/fixtures/api/System.ts +10 -0
  60. package/ai-docs/src/51_http-server/fixtures/api/Users.ts +107 -0
  61. package/ai-docs/src/51_http-server/fixtures/domain/User.ts +21 -0
  62. package/ai-docs/src/51_http-server/fixtures/domain/UserErrors.ts +22 -0
  63. package/ai-docs/src/51_http-server/fixtures/server/Authorization.ts +37 -0
  64. package/ai-docs/src/51_http-server/fixtures/server/Users/http.ts +80 -0
  65. package/ai-docs/src/51_http-server/fixtures/server/Users.ts +183 -0
  66. package/ai-docs/src/51_http-server/index.md +3 -0
  67. package/ai-docs/src/60_child-process/10_working-with-child-processes.ts +117 -0
  68. package/ai-docs/src/60_child-process/index.md +3 -0
  69. package/ai-docs/src/70_cli/10_basics.ts +160 -0
  70. package/ai-docs/src/70_cli/index.md +5 -0
  71. package/ai-docs/src/71_ai/10_language-model.ts +156 -0
  72. package/ai-docs/src/71_ai/20_tools.ts +226 -0
  73. package/ai-docs/src/71_ai/30_chat.ts +158 -0
  74. package/ai-docs/src/71_ai/fixtures/domain/LaunchPlan.ts +9 -0
  75. package/ai-docs/src/71_ai/index.md +5 -0
  76. package/ai-docs/src/80_cluster/10_entities.ts +97 -0
  77. package/ai-docs/src/80_cluster/index.md +4 -0
  78. package/ai-docs/src/index.md +10 -0
  79. package/ai-docs/tsconfig.json +24 -0
  80. package/dist/Array.d.ts +971 -1037
  81. package/dist/Array.d.ts.map +1 -1
  82. package/dist/Array.js +462 -412
  83. package/dist/Array.js.map +1 -1
  84. package/dist/BigDecimal.d.ts +433 -756
  85. package/dist/BigDecimal.d.ts.map +1 -1
  86. package/dist/BigDecimal.js +200 -325
  87. package/dist/BigDecimal.js.map +1 -1
  88. package/dist/BigInt.d.ts +207 -267
  89. package/dist/BigInt.d.ts.map +1 -1
  90. package/dist/BigInt.js +107 -135
  91. package/dist/BigInt.js.map +1 -1
  92. package/dist/Boolean.d.ts +146 -188
  93. package/dist/Boolean.d.ts.map +1 -1
  94. package/dist/Boolean.js +64 -84
  95. package/dist/Boolean.js.map +1 -1
  96. package/dist/Brand.d.ts +3 -3
  97. package/dist/Brand.d.ts.map +1 -1
  98. package/dist/Brand.js +4 -3
  99. package/dist/Brand.js.map +1 -1
  100. package/dist/Cache.d.ts +409 -256
  101. package/dist/Cache.d.ts.map +1 -1
  102. package/dist/Cache.js +213 -134
  103. package/dist/Cache.js.map +1 -1
  104. package/dist/Cause.d.ts +167 -277
  105. package/dist/Cause.d.ts.map +1 -1
  106. package/dist/Cause.js +122 -176
  107. package/dist/Cause.js.map +1 -1
  108. package/dist/Channel.d.ts +756 -769
  109. package/dist/Channel.d.ts.map +1 -1
  110. package/dist/Channel.js +588 -449
  111. package/dist/Channel.js.map +1 -1
  112. package/dist/ChannelSchema.d.ts +1 -1
  113. package/dist/ChannelSchema.d.ts.map +1 -1
  114. package/dist/ChannelSchema.js.map +1 -1
  115. package/dist/Chunk.d.ts +834 -1173
  116. package/dist/Chunk.d.ts.map +1 -1
  117. package/dist/Chunk.js +326 -439
  118. package/dist/Chunk.js.map +1 -1
  119. package/dist/Clock.d.ts +180 -49
  120. package/dist/Clock.d.ts.map +1 -1
  121. package/dist/Clock.js +96 -31
  122. package/dist/Clock.js.map +1 -1
  123. package/dist/Combiner.d.ts +20 -33
  124. package/dist/Combiner.d.ts.map +1 -1
  125. package/dist/Combiner.js +18 -30
  126. package/dist/Combiner.js.map +1 -1
  127. package/dist/Config.d.ts +226 -174
  128. package/dist/Config.d.ts.map +1 -1
  129. package/dist/Config.js +361 -267
  130. package/dist/Config.js.map +1 -1
  131. package/dist/ConfigProvider.d.ts +229 -71
  132. package/dist/ConfigProvider.d.ts.map +1 -1
  133. package/dist/ConfigProvider.js +164 -95
  134. package/dist/ConfigProvider.js.map +1 -1
  135. package/dist/Console.d.ts +233 -33
  136. package/dist/Console.d.ts.map +1 -1
  137. package/dist/Console.js +232 -32
  138. package/dist/Console.js.map +1 -1
  139. package/dist/Context.d.ts +160 -277
  140. package/dist/Context.d.ts.map +1 -1
  141. package/dist/Context.js +179 -236
  142. package/dist/Context.js.map +1 -1
  143. package/dist/Cron.d.ts +144 -176
  144. package/dist/Cron.d.ts.map +1 -1
  145. package/dist/Cron.js +227 -162
  146. package/dist/Cron.js.map +1 -1
  147. package/dist/Crypto.d.ts +13 -15
  148. package/dist/Crypto.d.ts.map +1 -1
  149. package/dist/Crypto.js +24 -39
  150. package/dist/Crypto.js.map +1 -1
  151. package/dist/Data.d.ts +60 -80
  152. package/dist/Data.d.ts.map +1 -1
  153. package/dist/Data.js +18 -24
  154. package/dist/Data.js.map +1 -1
  155. package/dist/DateTime.d.ts +562 -660
  156. package/dist/DateTime.d.ts.map +1 -1
  157. package/dist/DateTime.js +307 -362
  158. package/dist/DateTime.js.map +1 -1
  159. package/dist/Deferred.d.ts +253 -256
  160. package/dist/Deferred.d.ts.map +1 -1
  161. package/dist/Deferred.js +110 -98
  162. package/dist/Deferred.js.map +1 -1
  163. package/dist/Duration.d.ts +216 -308
  164. package/dist/Duration.d.ts.map +1 -1
  165. package/dist/Duration.js +157 -188
  166. package/dist/Duration.js.map +1 -1
  167. package/dist/Effect.d.ts +3157 -3360
  168. package/dist/Effect.d.ts.map +1 -1
  169. package/dist/Effect.js +1457 -1574
  170. package/dist/Effect.js.map +1 -1
  171. package/dist/Effectable.js.map +1 -1
  172. package/dist/Encoding.d.ts +22 -40
  173. package/dist/Encoding.d.ts.map +1 -1
  174. package/dist/Encoding.js +22 -40
  175. package/dist/Encoding.js.map +1 -1
  176. package/dist/Equal.d.ts +33 -37
  177. package/dist/Equal.d.ts.map +1 -1
  178. package/dist/Equal.js +39 -23
  179. package/dist/Equal.js.map +1 -1
  180. package/dist/Equivalence.d.ts +103 -105
  181. package/dist/Equivalence.d.ts.map +1 -1
  182. package/dist/Equivalence.js +77 -79
  183. package/dist/Equivalence.js.map +1 -1
  184. package/dist/ErrorReporter.d.ts +52 -28
  185. package/dist/ErrorReporter.d.ts.map +1 -1
  186. package/dist/ErrorReporter.js +51 -27
  187. package/dist/ErrorReporter.js.map +1 -1
  188. package/dist/ExecutionPlan.d.ts +86 -55
  189. package/dist/ExecutionPlan.d.ts.map +1 -1
  190. package/dist/ExecutionPlan.js +8 -29
  191. package/dist/ExecutionPlan.js.map +1 -1
  192. package/dist/Exit.d.ts +116 -192
  193. package/dist/Exit.d.ts.map +1 -1
  194. package/dist/Exit.js +82 -130
  195. package/dist/Exit.js.map +1 -1
  196. package/dist/Fiber.d.ts +83 -147
  197. package/dist/Fiber.d.ts.map +1 -1
  198. package/dist/Fiber.js +48 -87
  199. package/dist/Fiber.js.map +1 -1
  200. package/dist/FiberHandle.d.ts +152 -105
  201. package/dist/FiberHandle.d.ts.map +1 -1
  202. package/dist/FiberHandle.js +109 -75
  203. package/dist/FiberHandle.js.map +1 -1
  204. package/dist/FiberMap.d.ts +213 -168
  205. package/dist/FiberMap.d.ts.map +1 -1
  206. package/dist/FiberMap.js +114 -89
  207. package/dist/FiberMap.js.map +1 -1
  208. package/dist/FiberSet.d.ts +123 -81
  209. package/dist/FiberSet.d.ts.map +1 -1
  210. package/dist/FiberSet.js +86 -60
  211. package/dist/FiberSet.js.map +1 -1
  212. package/dist/FileSystem.d.ts +154 -265
  213. package/dist/FileSystem.d.ts.map +1 -1
  214. package/dist/FileSystem.js +42 -147
  215. package/dist/FileSystem.js.map +1 -1
  216. package/dist/Filter.d.ts +61 -33
  217. package/dist/Filter.d.ts.map +1 -1
  218. package/dist/Filter.js +26 -15
  219. package/dist/Filter.js.map +1 -1
  220. package/dist/Formatter.d.ts +24 -32
  221. package/dist/Formatter.d.ts.map +1 -1
  222. package/dist/Formatter.js +55 -60
  223. package/dist/Formatter.js.map +1 -1
  224. package/dist/Function.d.ts +106 -148
  225. package/dist/Function.d.ts.map +1 -1
  226. package/dist/Function.js +81 -62
  227. package/dist/Function.js.map +1 -1
  228. package/dist/Graph.d.ts +360 -714
  229. package/dist/Graph.d.ts.map +1 -1
  230. package/dist/Graph.js +168 -297
  231. package/dist/Graph.js.map +1 -1
  232. package/dist/HKT.d.ts +12 -6
  233. package/dist/HKT.d.ts.map +1 -1
  234. package/dist/Hash.d.ts +47 -83
  235. package/dist/Hash.d.ts.map +1 -1
  236. package/dist/Hash.js +46 -68
  237. package/dist/Hash.js.map +1 -1
  238. package/dist/HashMap.d.ts +319 -411
  239. package/dist/HashMap.d.ts.map +1 -1
  240. package/dist/HashMap.js +122 -166
  241. package/dist/HashMap.js.map +1 -1
  242. package/dist/HashRing.d.ts.map +1 -1
  243. package/dist/HashRing.js +1 -0
  244. package/dist/HashRing.js.map +1 -1
  245. package/dist/HashSet.d.ts +177 -284
  246. package/dist/HashSet.d.ts.map +1 -1
  247. package/dist/HashSet.js +68 -109
  248. package/dist/HashSet.js.map +1 -1
  249. package/dist/Inspectable.d.ts +19 -18
  250. package/dist/Inspectable.d.ts.map +1 -1
  251. package/dist/Inspectable.js +20 -16
  252. package/dist/Inspectable.js.map +1 -1
  253. package/dist/Iterable.d.ts +620 -786
  254. package/dist/Iterable.d.ts.map +1 -1
  255. package/dist/Iterable.js +241 -317
  256. package/dist/Iterable.js.map +1 -1
  257. package/dist/JsonPatch.d.ts +11 -13
  258. package/dist/JsonPatch.d.ts.map +1 -1
  259. package/dist/JsonPatch.js +46 -103
  260. package/dist/JsonPatch.js.map +1 -1
  261. package/dist/JsonPointer.d.ts +8 -8
  262. package/dist/JsonPointer.js +8 -8
  263. package/dist/JsonPointer.js.map +1 -1
  264. package/dist/JsonSchema.d.ts +98 -44
  265. package/dist/JsonSchema.d.ts.map +1 -1
  266. package/dist/JsonSchema.js +319 -241
  267. package/dist/JsonSchema.js.map +1 -1
  268. package/dist/Latch.d.ts +23 -35
  269. package/dist/Latch.d.ts.map +1 -1
  270. package/dist/Latch.js +16 -28
  271. package/dist/Latch.js.map +1 -1
  272. package/dist/Layer.d.ts +362 -263
  273. package/dist/Layer.d.ts.map +1 -1
  274. package/dist/Layer.js +203 -181
  275. package/dist/Layer.js.map +1 -1
  276. package/dist/LayerMap.d.ts +42 -29
  277. package/dist/LayerMap.d.ts.map +1 -1
  278. package/dist/LayerMap.js +31 -21
  279. package/dist/LayerMap.js.map +1 -1
  280. package/dist/LayerRef.d.ts +6 -2
  281. package/dist/LayerRef.d.ts.map +1 -1
  282. package/dist/LayerRef.js +6 -2
  283. package/dist/LayerRef.js.map +1 -1
  284. package/dist/LogLevel.d.ts +114 -214
  285. package/dist/LogLevel.d.ts.map +1 -1
  286. package/dist/LogLevel.js +41 -76
  287. package/dist/LogLevel.js.map +1 -1
  288. package/dist/Logger.d.ts +219 -468
  289. package/dist/Logger.d.ts.map +1 -1
  290. package/dist/Logger.js +209 -454
  291. package/dist/Logger.js.map +1 -1
  292. package/dist/ManagedRuntime.d.ts +16 -5
  293. package/dist/ManagedRuntime.d.ts.map +1 -1
  294. package/dist/ManagedRuntime.js +10 -5
  295. package/dist/ManagedRuntime.js.map +1 -1
  296. package/dist/Match.d.ts +217 -252
  297. package/dist/Match.d.ts.map +1 -1
  298. package/dist/Match.js +150 -183
  299. package/dist/Match.js.map +1 -1
  300. package/dist/Metric.d.ts +442 -993
  301. package/dist/Metric.d.ts.map +1 -1
  302. package/dist/Metric.js +202 -645
  303. package/dist/Metric.js.map +1 -1
  304. package/dist/MutableHashMap.d.ts +144 -173
  305. package/dist/MutableHashMap.d.ts.map +1 -1
  306. package/dist/MutableHashMap.js +68 -79
  307. package/dist/MutableHashMap.js.map +1 -1
  308. package/dist/MutableHashSet.d.ts +84 -89
  309. package/dist/MutableHashSet.d.ts.map +1 -1
  310. package/dist/MutableHashSet.js +44 -47
  311. package/dist/MutableHashSet.js.map +1 -1
  312. package/dist/MutableList.d.ts +71 -370
  313. package/dist/MutableList.d.ts.map +1 -1
  314. package/dist/MutableList.js +63 -284
  315. package/dist/MutableList.js.map +1 -1
  316. package/dist/MutableRef.d.ts +420 -243
  317. package/dist/MutableRef.d.ts.map +1 -1
  318. package/dist/MutableRef.js +209 -120
  319. package/dist/MutableRef.js.map +1 -1
  320. package/dist/Newtype.d.ts +21 -14
  321. package/dist/Newtype.d.ts.map +1 -1
  322. package/dist/Newtype.js +15 -13
  323. package/dist/Newtype.js.map +1 -1
  324. package/dist/NonEmptyIterable.d.ts +7 -137
  325. package/dist/NonEmptyIterable.d.ts.map +1 -1
  326. package/dist/NonEmptyIterable.js +5 -93
  327. package/dist/NonEmptyIterable.js.map +1 -1
  328. package/dist/Number.d.ts +196 -233
  329. package/dist/Number.d.ts.map +1 -1
  330. package/dist/Number.js +90 -109
  331. package/dist/Number.js.map +1 -1
  332. package/dist/Optic.d.ts +132 -210
  333. package/dist/Optic.d.ts.map +1 -1
  334. package/dist/Optic.js +221 -324
  335. package/dist/Optic.js.map +1 -1
  336. package/dist/Option.d.ts +447 -812
  337. package/dist/Option.d.ts.map +1 -1
  338. package/dist/Option.js +213 -393
  339. package/dist/Option.js.map +1 -1
  340. package/dist/Order.d.ts +109 -109
  341. package/dist/Order.js +91 -91
  342. package/dist/Order.js.map +1 -1
  343. package/dist/Ordering.d.ts +20 -23
  344. package/dist/Ordering.d.ts.map +1 -1
  345. package/dist/Ordering.js +8 -9
  346. package/dist/Ordering.js.map +1 -1
  347. package/dist/PartitionedSemaphore.d.ts.map +1 -1
  348. package/dist/PartitionedSemaphore.js +1 -4
  349. package/dist/PartitionedSemaphore.js.map +1 -1
  350. package/dist/Path.d.ts +38 -41
  351. package/dist/Path.d.ts.map +1 -1
  352. package/dist/Path.js +3 -4
  353. package/dist/Path.js.map +1 -1
  354. package/dist/Pipeable.d.ts +6 -5
  355. package/dist/Pipeable.d.ts.map +1 -1
  356. package/dist/Pipeable.js +2 -2
  357. package/dist/Pipeable.js.map +1 -1
  358. package/dist/PlatformError.d.ts +4 -4
  359. package/dist/PlatformError.js +3 -3
  360. package/dist/PlatformError.js.map +1 -1
  361. package/dist/Pool.d.ts +4 -2
  362. package/dist/Pool.d.ts.map +1 -1
  363. package/dist/Pool.js +4 -2
  364. package/dist/Pool.js.map +1 -1
  365. package/dist/Predicate.d.ts +200 -181
  366. package/dist/Predicate.d.ts.map +1 -1
  367. package/dist/Predicate.js +100 -108
  368. package/dist/Predicate.js.map +1 -1
  369. package/dist/PrimaryKey.d.ts +7 -7
  370. package/dist/PrimaryKey.js +5 -5
  371. package/dist/PrimaryKey.js.map +1 -1
  372. package/dist/PubSub.d.ts +425 -494
  373. package/dist/PubSub.d.ts.map +1 -1
  374. package/dist/PubSub.js +373 -362
  375. package/dist/PubSub.js.map +1 -1
  376. package/dist/Pull.d.ts +24 -18
  377. package/dist/Pull.d.ts.map +1 -1
  378. package/dist/Pull.js +11 -9
  379. package/dist/Pull.js.map +1 -1
  380. package/dist/Queue.d.ts +200 -159
  381. package/dist/Queue.d.ts.map +1 -1
  382. package/dist/Queue.js +166 -138
  383. package/dist/Queue.js.map +1 -1
  384. package/dist/Random.d.ts +49 -74
  385. package/dist/Random.d.ts.map +1 -1
  386. package/dist/Random.js +35 -54
  387. package/dist/Random.js.map +1 -1
  388. package/dist/RcMap.d.ts +121 -63
  389. package/dist/RcMap.d.ts.map +1 -1
  390. package/dist/RcMap.js +42 -21
  391. package/dist/RcMap.js.map +1 -1
  392. package/dist/RcRef.d.ts +24 -13
  393. package/dist/RcRef.d.ts.map +1 -1
  394. package/dist/RcRef.js +15 -9
  395. package/dist/RcRef.js.map +1 -1
  396. package/dist/Record.d.ts +361 -466
  397. package/dist/Record.d.ts.map +1 -1
  398. package/dist/Record.js +163 -216
  399. package/dist/Record.js.map +1 -1
  400. package/dist/Redactable.d.ts +6 -2
  401. package/dist/Redactable.d.ts.map +1 -1
  402. package/dist/Redactable.js +7 -2
  403. package/dist/Redactable.js.map +1 -1
  404. package/dist/Redacted.d.ts +25 -25
  405. package/dist/Redacted.d.ts.map +1 -1
  406. package/dist/Redacted.js +19 -20
  407. package/dist/Redacted.js.map +1 -1
  408. package/dist/Reducer.d.ts +8 -15
  409. package/dist/Reducer.d.ts.map +1 -1
  410. package/dist/Reducer.js +6 -12
  411. package/dist/Reducer.js.map +1 -1
  412. package/dist/Ref.d.ts +95 -165
  413. package/dist/Ref.d.ts.map +1 -1
  414. package/dist/Ref.js +75 -122
  415. package/dist/Ref.js.map +1 -1
  416. package/dist/References.d.ts +102 -213
  417. package/dist/References.d.ts.map +1 -1
  418. package/dist/References.js +102 -213
  419. package/dist/References.js.map +1 -1
  420. package/dist/RegExp.d.ts +10 -14
  421. package/dist/RegExp.d.ts.map +1 -1
  422. package/dist/RegExp.js +10 -14
  423. package/dist/RegExp.js.map +1 -1
  424. package/dist/Request.d.ts +31 -21
  425. package/dist/Request.d.ts.map +1 -1
  426. package/dist/Request.js +25 -19
  427. package/dist/Request.js.map +1 -1
  428. package/dist/RequestResolver.d.ts +201 -90
  429. package/dist/RequestResolver.d.ts.map +1 -1
  430. package/dist/RequestResolver.js +87 -41
  431. package/dist/RequestResolver.js.map +1 -1
  432. package/dist/Resource.js.map +1 -1
  433. package/dist/Result.d.ts +302 -470
  434. package/dist/Result.d.ts.map +1 -1
  435. package/dist/Result.js +135 -218
  436. package/dist/Result.js.map +1 -1
  437. package/dist/Runtime.d.ts +50 -75
  438. package/dist/Runtime.d.ts.map +1 -1
  439. package/dist/Runtime.js +39 -60
  440. package/dist/Runtime.js.map +1 -1
  441. package/dist/Schedule.d.ts +292 -1638
  442. package/dist/Schedule.d.ts.map +1 -1
  443. package/dist/Schedule.js +164 -805
  444. package/dist/Schedule.js.map +1 -1
  445. package/dist/Scheduler.d.ts +5 -5
  446. package/dist/Scheduler.d.ts.map +1 -1
  447. package/dist/Scheduler.js +18 -6
  448. package/dist/Scheduler.js.map +1 -1
  449. package/dist/Schema.d.ts +2056 -1269
  450. package/dist/Schema.d.ts.map +1 -1
  451. package/dist/Schema.js +2868 -1135
  452. package/dist/Schema.js.map +1 -1
  453. package/dist/SchemaAST.d.ts +64 -72
  454. package/dist/SchemaAST.d.ts.map +1 -1
  455. package/dist/SchemaAST.js +698 -468
  456. package/dist/SchemaAST.js.map +1 -1
  457. package/dist/SchemaGetter.d.ts +236 -188
  458. package/dist/SchemaGetter.d.ts.map +1 -1
  459. package/dist/SchemaGetter.js +281 -234
  460. package/dist/SchemaGetter.js.map +1 -1
  461. package/dist/SchemaIssue.d.ts +219 -190
  462. package/dist/SchemaIssue.d.ts.map +1 -1
  463. package/dist/SchemaIssue.js +303 -309
  464. package/dist/SchemaIssue.js.map +1 -1
  465. package/dist/SchemaParser.d.ts +32 -2
  466. package/dist/SchemaParser.d.ts.map +1 -1
  467. package/dist/SchemaParser.js +170 -118
  468. package/dist/SchemaParser.js.map +1 -1
  469. package/dist/SchemaRepresentation.d.ts +433 -1511
  470. package/dist/SchemaRepresentation.d.ts.map +1 -1
  471. package/dist/SchemaRepresentation.js +301 -2854
  472. package/dist/SchemaRepresentation.js.map +1 -1
  473. package/dist/SchemaTransformation.d.ts +117 -77
  474. package/dist/SchemaTransformation.d.ts.map +1 -1
  475. package/dist/SchemaTransformation.js +139 -104
  476. package/dist/SchemaTransformation.js.map +1 -1
  477. package/dist/Scope.d.ts +123 -151
  478. package/dist/Scope.d.ts.map +1 -1
  479. package/dist/Scope.js +72 -92
  480. package/dist/Scope.js.map +1 -1
  481. package/dist/ScopedCache.js +1 -1
  482. package/dist/ScopedCache.js.map +1 -1
  483. package/dist/ScopedRef.d.ts +3 -3
  484. package/dist/ScopedRef.d.ts.map +1 -1
  485. package/dist/ScopedRef.js +2 -2
  486. package/dist/ScopedRef.js.map +1 -1
  487. package/dist/Semaphore.d.ts +101 -13
  488. package/dist/Semaphore.d.ts.map +1 -1
  489. package/dist/Semaphore.js +78 -39
  490. package/dist/Semaphore.js.map +1 -1
  491. package/dist/Sink.d.ts +118 -108
  492. package/dist/Sink.d.ts.map +1 -1
  493. package/dist/Sink.js +107 -100
  494. package/dist/Sink.js.map +1 -1
  495. package/dist/Stdio.d.ts +18 -5
  496. package/dist/Stdio.d.ts.map +1 -1
  497. package/dist/Stdio.js +6 -3
  498. package/dist/Stdio.js.map +1 -1
  499. package/dist/Stream.d.ts +2467 -2962
  500. package/dist/Stream.d.ts.map +1 -1
  501. package/dist/Stream.js +1154 -1413
  502. package/dist/Stream.js.map +1 -1
  503. package/dist/String.d.ts +262 -308
  504. package/dist/String.d.ts.map +1 -1
  505. package/dist/String.js +184 -215
  506. package/dist/String.js.map +1 -1
  507. package/dist/Struct.d.ts +109 -114
  508. package/dist/Struct.d.ts.map +1 -1
  509. package/dist/Struct.js +46 -54
  510. package/dist/Struct.js.map +1 -1
  511. package/dist/SubscriptionRef.d.ts +282 -250
  512. package/dist/SubscriptionRef.d.ts.map +1 -1
  513. package/dist/SubscriptionRef.js +104 -92
  514. package/dist/SubscriptionRef.js.map +1 -1
  515. package/dist/Symbol.d.ts +3 -3
  516. package/dist/Symbol.js +3 -3
  517. package/dist/Symbol.js.map +1 -1
  518. package/dist/SynchronizedRef.js +1 -1
  519. package/dist/SynchronizedRef.js.map +1 -1
  520. package/dist/Take.js.map +1 -1
  521. package/dist/Terminal.d.ts +2 -2
  522. package/dist/Terminal.js +2 -2
  523. package/dist/Terminal.js.map +1 -1
  524. package/dist/Tracer.d.ts +100 -54
  525. package/dist/Tracer.d.ts.map +1 -1
  526. package/dist/Tracer.js +41 -24
  527. package/dist/Tracer.js.map +1 -1
  528. package/dist/Trie.d.ts +287 -679
  529. package/dist/Trie.d.ts.map +1 -1
  530. package/dist/Trie.js +109 -251
  531. package/dist/Trie.js.map +1 -1
  532. package/dist/Tuple.d.ts +98 -131
  533. package/dist/Tuple.d.ts.map +1 -1
  534. package/dist/Tuple.js +42 -57
  535. package/dist/Tuple.js.map +1 -1
  536. package/dist/TxChunk.d.ts +201 -121
  537. package/dist/TxChunk.d.ts.map +1 -1
  538. package/dist/TxChunk.js +85 -56
  539. package/dist/TxChunk.js.map +1 -1
  540. package/dist/TxDeferred.d.ts +62 -46
  541. package/dist/TxDeferred.d.ts.map +1 -1
  542. package/dist/TxDeferred.js +30 -22
  543. package/dist/TxDeferred.js.map +1 -1
  544. package/dist/TxHashMap.d.ts +631 -779
  545. package/dist/TxHashMap.d.ts.map +1 -1
  546. package/dist/TxHashMap.js +268 -330
  547. package/dist/TxHashMap.js.map +1 -1
  548. package/dist/TxHashSet.d.ts +297 -236
  549. package/dist/TxHashSet.d.ts.map +1 -1
  550. package/dist/TxHashSet.js +130 -100
  551. package/dist/TxHashSet.js.map +1 -1
  552. package/dist/TxPriorityQueue.d.ts +126 -95
  553. package/dist/TxPriorityQueue.d.ts.map +1 -1
  554. package/dist/TxPriorityQueue.js +74 -56
  555. package/dist/TxPriorityQueue.js.map +1 -1
  556. package/dist/TxPubSub.d.ts +101 -88
  557. package/dist/TxPubSub.d.ts.map +1 -1
  558. package/dist/TxPubSub.js +87 -66
  559. package/dist/TxPubSub.js.map +1 -1
  560. package/dist/TxQueue.d.ts +200 -180
  561. package/dist/TxQueue.d.ts.map +1 -1
  562. package/dist/TxQueue.js +161 -137
  563. package/dist/TxQueue.js.map +1 -1
  564. package/dist/TxReentrantLock.d.ts +89 -114
  565. package/dist/TxReentrantLock.d.ts.map +1 -1
  566. package/dist/TxReentrantLock.js +75 -53
  567. package/dist/TxReentrantLock.js.map +1 -1
  568. package/dist/TxRef.d.ts +51 -32
  569. package/dist/TxRef.d.ts.map +1 -1
  570. package/dist/TxRef.js +23 -15
  571. package/dist/TxRef.js.map +1 -1
  572. package/dist/TxSemaphore.d.ts +129 -95
  573. package/dist/TxSemaphore.d.ts.map +1 -1
  574. package/dist/TxSemaphore.js +85 -70
  575. package/dist/TxSemaphore.js.map +1 -1
  576. package/dist/TxSubscriptionRef.d.ts +97 -70
  577. package/dist/TxSubscriptionRef.d.ts.map +1 -1
  578. package/dist/TxSubscriptionRef.js +44 -34
  579. package/dist/TxSubscriptionRef.js.map +1 -1
  580. package/dist/Types.d.ts +127 -70
  581. package/dist/Types.d.ts.map +1 -1
  582. package/dist/UndefinedOr.js.map +1 -1
  583. package/dist/Unify.d.ts +45 -65
  584. package/dist/Unify.d.ts.map +1 -1
  585. package/dist/Unify.js +6 -9
  586. package/dist/Unify.js.map +1 -1
  587. package/dist/Utils.d.ts +23 -16
  588. package/dist/Utils.d.ts.map +1 -1
  589. package/dist/Utils.js +3 -7
  590. package/dist/Utils.js.map +1 -1
  591. package/dist/index.d.ts +0 -8
  592. package/dist/index.d.ts.map +1 -1
  593. package/dist/index.js +0 -8
  594. package/dist/index.js.map +1 -1
  595. package/dist/internal/array.js.map +1 -1
  596. package/dist/internal/core.js +4 -3
  597. package/dist/internal/core.js.map +1 -1
  598. package/dist/internal/dateTime.js +5 -1
  599. package/dist/internal/dateTime.js.map +1 -1
  600. package/dist/internal/doNotation.js.map +1 -1
  601. package/dist/internal/effect.js +254 -114
  602. package/dist/internal/effect.js.map +1 -1
  603. package/dist/internal/equal.js.map +1 -1
  604. package/dist/internal/errors.js.map +1 -1
  605. package/dist/internal/executionPlan.js +52 -3
  606. package/dist/internal/executionPlan.js.map +1 -1
  607. package/dist/internal/hashMap.js +12 -8
  608. package/dist/internal/hashMap.js.map +1 -1
  609. package/dist/internal/hashSet.js.map +1 -1
  610. package/dist/internal/layer.js.map +1 -1
  611. package/dist/internal/matcher.js +2 -2
  612. package/dist/internal/matcher.js.map +1 -1
  613. package/dist/internal/metric.js.map +1 -1
  614. package/dist/internal/option.js.map +1 -1
  615. package/dist/internal/persistence.d.ts +2 -0
  616. package/dist/internal/persistence.d.ts.map +1 -0
  617. package/dist/internal/persistence.js +3 -0
  618. package/dist/internal/persistence.js.map +1 -0
  619. package/dist/internal/random.js.map +1 -1
  620. package/dist/internal/rcRef.js +18 -13
  621. package/dist/internal/rcRef.js.map +1 -1
  622. package/dist/internal/record.d.ts +0 -3
  623. package/dist/internal/record.d.ts.map +1 -1
  624. package/dist/internal/record.js +10 -5
  625. package/dist/internal/record.js.map +1 -1
  626. package/dist/internal/redacted.js.map +1 -1
  627. package/dist/internal/references.js +3 -4
  628. package/dist/internal/references.js.map +1 -1
  629. package/dist/internal/request.js.map +1 -1
  630. package/dist/internal/result.js.map +1 -1
  631. package/dist/internal/schedule.js.map +1 -1
  632. package/dist/internal/schema/annotations.js +15 -1
  633. package/dist/internal/schema/annotations.js.map +1 -1
  634. package/dist/internal/schema/cause.js.map +1 -1
  635. package/dist/internal/schema/fromJsonSchemaDocument.d.ts +2 -0
  636. package/dist/internal/schema/fromJsonSchemaDocument.d.ts.map +1 -0
  637. package/dist/internal/schema/fromJsonSchemaDocument.js +761 -0
  638. package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -0
  639. package/dist/internal/schema/fromRepresentation.d.ts +2 -0
  640. package/dist/internal/schema/fromRepresentation.d.ts.map +1 -0
  641. package/dist/internal/schema/fromRepresentation.js +245 -0
  642. package/dist/internal/schema/fromRepresentation.js.map +1 -0
  643. package/dist/internal/schema/parser.d.ts +14 -0
  644. package/dist/internal/schema/parser.d.ts.map +1 -0
  645. package/dist/internal/schema/parser.js +13 -0
  646. package/dist/internal/schema/parser.js.map +1 -0
  647. package/dist/internal/schema/schema.js +29 -49
  648. package/dist/internal/schema/schema.js.map +1 -1
  649. package/dist/internal/schema/toArbitrary.d.ts +2 -0
  650. package/dist/internal/schema/toArbitrary.d.ts.map +1 -0
  651. package/dist/internal/schema/{arbitrary.js → toArbitrary.js} +8 -83
  652. package/dist/internal/schema/toArbitrary.js.map +1 -0
  653. package/dist/internal/schema/toCodeDocument.d.ts +2 -0
  654. package/dist/internal/schema/toCodeDocument.d.ts.map +1 -0
  655. package/dist/internal/schema/toCodeDocument.js +438 -0
  656. package/dist/internal/schema/toCodeDocument.js.map +1 -0
  657. package/dist/internal/schema/toEquivalence.d.ts +2 -0
  658. package/dist/internal/schema/toEquivalence.d.ts.map +1 -0
  659. package/dist/internal/schema/{equivalence.js → toEquivalence.js} +15 -13
  660. package/dist/internal/schema/toEquivalence.js.map +1 -0
  661. package/dist/internal/schema/toJsonSchemaDocument.d.ts +2 -0
  662. package/dist/internal/schema/toJsonSchemaDocument.d.ts.map +1 -0
  663. package/dist/internal/schema/toJsonSchemaDocument.js +522 -0
  664. package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -0
  665. package/dist/internal/schema/toRepresentation.d.ts +2 -0
  666. package/dist/internal/schema/toRepresentation.d.ts.map +1 -0
  667. package/dist/internal/schema/toRepresentation.js +351 -0
  668. package/dist/internal/schema/toRepresentation.js.map +1 -0
  669. package/dist/internal/stackTraceLimit.js +3 -6
  670. package/dist/internal/stackTraceLimit.js.map +1 -1
  671. package/dist/internal/stream.js.map +1 -1
  672. package/dist/internal/tracer.js.map +1 -1
  673. package/dist/internal/trie.js +24 -10
  674. package/dist/internal/trie.js.map +1 -1
  675. package/dist/internal/uuid.d.ts +3 -0
  676. package/dist/internal/uuid.d.ts.map +1 -0
  677. package/dist/internal/uuid.js +30 -0
  678. package/dist/internal/uuid.js.map +1 -0
  679. package/dist/testing/FastCheck.d.ts +8 -7
  680. package/dist/testing/FastCheck.d.ts.map +1 -1
  681. package/dist/testing/FastCheck.js +8 -7
  682. package/dist/testing/FastCheck.js.map +1 -1
  683. package/dist/testing/TestClock.d.ts +58 -29
  684. package/dist/testing/TestClock.d.ts.map +1 -1
  685. package/dist/testing/TestClock.js +79 -24
  686. package/dist/testing/TestClock.js.map +1 -1
  687. package/dist/testing/TestConsole.d.ts +32 -31
  688. package/dist/testing/TestConsole.d.ts.map +1 -1
  689. package/dist/testing/TestConsole.js +24 -22
  690. package/dist/testing/TestConsole.js.map +1 -1
  691. package/dist/testing/TestSchema.d.ts +31 -31
  692. package/dist/testing/TestSchema.d.ts.map +1 -1
  693. package/dist/testing/TestSchema.js +35 -34
  694. package/dist/testing/TestSchema.js.map +1 -1
  695. package/dist/testing/index.js.map +1 -1
  696. package/dist/unstable/ai/AiError.d.ts +121 -144
  697. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  698. package/dist/unstable/ai/AiError.js +118 -140
  699. package/dist/unstable/ai/AiError.js.map +1 -1
  700. package/dist/unstable/ai/AnthropicStructuredOutput.d.ts +22 -7
  701. package/dist/unstable/ai/AnthropicStructuredOutput.d.ts.map +1 -1
  702. package/dist/unstable/ai/AnthropicStructuredOutput.js +87 -317
  703. package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
  704. package/dist/unstable/ai/Chat.d.ts +132 -97
  705. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  706. package/dist/unstable/ai/Chat.js +56 -52
  707. package/dist/unstable/ai/Chat.js.map +1 -1
  708. package/dist/unstable/ai/EmbeddingModel.d.ts +1 -1
  709. package/dist/unstable/ai/EmbeddingModel.js +1 -1
  710. package/dist/unstable/ai/EmbeddingModel.js.map +1 -1
  711. package/dist/unstable/ai/IdGenerator.d.ts +32 -28
  712. package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
  713. package/dist/unstable/ai/IdGenerator.js +26 -21
  714. package/dist/unstable/ai/IdGenerator.js.map +1 -1
  715. package/dist/unstable/ai/LanguageModel.d.ts +111 -68
  716. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  717. package/dist/unstable/ai/LanguageModel.js +127 -83
  718. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  719. package/dist/unstable/ai/McpProtocol.d.ts +116 -0
  720. package/dist/unstable/ai/McpProtocol.d.ts.map +1 -0
  721. package/dist/unstable/ai/McpProtocol.js +32 -0
  722. package/dist/unstable/ai/McpProtocol.js.map +1 -0
  723. package/dist/unstable/ai/McpSchema.d.ts +378 -223
  724. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  725. package/dist/unstable/ai/McpSchema.js +135 -87
  726. package/dist/unstable/ai/McpSchema.js.map +1 -1
  727. package/dist/unstable/ai/McpServer.d.ts +89 -100
  728. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  729. package/dist/unstable/ai/McpServer.js +1037 -361
  730. package/dist/unstable/ai/McpServer.js.map +1 -1
  731. package/dist/unstable/ai/Model.d.ts +8 -19
  732. package/dist/unstable/ai/Model.d.ts.map +1 -1
  733. package/dist/unstable/ai/Model.js +9 -20
  734. package/dist/unstable/ai/Model.js.map +1 -1
  735. package/dist/unstable/ai/OpenAiStructuredOutput.d.ts +33 -11
  736. package/dist/unstable/ai/OpenAiStructuredOutput.d.ts.map +1 -1
  737. package/dist/unstable/ai/OpenAiStructuredOutput.js +194 -378
  738. package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
  739. package/dist/unstable/ai/Prompt.d.ts +131 -44
  740. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  741. package/dist/unstable/ai/Prompt.js +100 -36
  742. package/dist/unstable/ai/Prompt.js.map +1 -1
  743. package/dist/unstable/ai/Response.d.ts +47 -33
  744. package/dist/unstable/ai/Response.d.ts.map +1 -1
  745. package/dist/unstable/ai/Response.js +23 -18
  746. package/dist/unstable/ai/Response.js.map +1 -1
  747. package/dist/unstable/ai/ResponseIdTracker.js.map +1 -1
  748. package/dist/unstable/ai/Telemetry.d.ts +46 -13
  749. package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
  750. package/dist/unstable/ai/Telemetry.js +18 -7
  751. package/dist/unstable/ai/Telemetry.js.map +1 -1
  752. package/dist/unstable/ai/Tokenizer.d.ts +14 -3
  753. package/dist/unstable/ai/Tokenizer.d.ts.map +1 -1
  754. package/dist/unstable/ai/Tokenizer.js +10 -2
  755. package/dist/unstable/ai/Tokenizer.js.map +1 -1
  756. package/dist/unstable/ai/Tool.d.ts +63 -44
  757. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  758. package/dist/unstable/ai/Tool.js +59 -42
  759. package/dist/unstable/ai/Tool.js.map +1 -1
  760. package/dist/unstable/ai/Toolkit.d.ts +35 -9
  761. package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
  762. package/dist/unstable/ai/Toolkit.js +32 -14
  763. package/dist/unstable/ai/Toolkit.js.map +1 -1
  764. package/dist/unstable/ai/index.d.ts +4 -0
  765. package/dist/unstable/ai/index.d.ts.map +1 -1
  766. package/dist/unstable/ai/index.js +4 -0
  767. package/dist/unstable/ai/index.js.map +1 -1
  768. package/dist/unstable/ai/internal/codec-transformer.js +15 -12
  769. package/dist/unstable/ai/internal/codec-transformer.js.map +1 -1
  770. package/dist/unstable/ai/internal/mcpCore.d.ts +7 -0
  771. package/dist/unstable/ai/internal/mcpCore.d.ts.map +1 -0
  772. package/dist/unstable/ai/internal/mcpCore.js +152 -0
  773. package/dist/unstable/ai/internal/mcpCore.js.map +1 -0
  774. package/dist/unstable/ai/internal/mcpProtocol/v2024_11_05.d.ts +2 -0
  775. package/dist/unstable/ai/internal/mcpProtocol/v2024_11_05.d.ts.map +1 -0
  776. package/dist/unstable/ai/internal/mcpProtocol/v2024_11_05.js +259 -0
  777. package/dist/unstable/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -0
  778. package/dist/unstable/ai/internal/mcpProtocol/v2025_03_26.d.ts +2 -0
  779. package/dist/unstable/ai/internal/mcpProtocol/v2025_03_26.d.ts.map +1 -0
  780. package/dist/unstable/ai/internal/mcpProtocol/v2025_03_26.js +279 -0
  781. package/dist/unstable/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -0
  782. package/dist/unstable/ai/internal/mcpProtocol/v2025_06_18.d.ts +2 -0
  783. package/dist/unstable/ai/internal/mcpProtocol/v2025_06_18.d.ts.map +1 -0
  784. package/dist/unstable/ai/internal/mcpProtocol/v2025_06_18.js +281 -0
  785. package/dist/unstable/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -0
  786. package/dist/unstable/ai/internal/mcpProtocol.d.ts +2 -0
  787. package/dist/unstable/ai/internal/mcpProtocol.d.ts.map +1 -0
  788. package/dist/unstable/ai/internal/mcpProtocol.js +153 -0
  789. package/dist/unstable/ai/internal/mcpProtocol.js.map +1 -0
  790. package/dist/unstable/ai/internal/mcpProtocolRegistry.d.ts +2 -0
  791. package/dist/unstable/ai/internal/mcpProtocolRegistry.d.ts.map +1 -0
  792. package/dist/unstable/ai/internal/mcpProtocolRegistry.js +47 -0
  793. package/dist/unstable/ai/internal/mcpProtocolRegistry.js.map +1 -0
  794. package/dist/unstable/ai/internal/mcpSchema/v2024_11_05.d.ts +1185 -0
  795. package/dist/unstable/ai/internal/mcpSchema/v2024_11_05.d.ts.map +1 -0
  796. package/dist/unstable/ai/internal/mcpSchema/v2024_11_05.js +404 -0
  797. package/dist/unstable/ai/internal/mcpSchema/v2024_11_05.js.map +1 -0
  798. package/dist/unstable/ai/internal/mcpSchema/v2025_03_26.d.ts +825 -0
  799. package/dist/unstable/ai/internal/mcpSchema/v2025_03_26.d.ts.map +1 -0
  800. package/dist/unstable/ai/internal/mcpSchema/v2025_03_26.js +138 -0
  801. package/dist/unstable/ai/internal/mcpSchema/v2025_03_26.js.map +1 -0
  802. package/dist/unstable/ai/internal/mcpSchema/v2025_06_18.d.ts +1462 -0
  803. package/dist/unstable/ai/internal/mcpSchema/v2025_06_18.d.ts.map +1 -0
  804. package/dist/unstable/ai/internal/mcpSchema/v2025_06_18.js +309 -0
  805. package/dist/unstable/ai/internal/mcpSchema/v2025_06_18.js.map +1 -0
  806. package/dist/unstable/ai/internal/structured-output.d.ts +2 -0
  807. package/dist/unstable/ai/internal/structured-output.d.ts.map +1 -0
  808. package/dist/unstable/ai/internal/structured-output.js +315 -0
  809. package/dist/unstable/ai/internal/structured-output.js.map +1 -0
  810. package/dist/unstable/cli/Argument.d.ts +279 -72
  811. package/dist/unstable/cli/Argument.d.ts.map +1 -1
  812. package/dist/unstable/cli/Argument.js +113 -34
  813. package/dist/unstable/cli/Argument.js.map +1 -1
  814. package/dist/unstable/cli/CliConfig.js.map +1 -1
  815. package/dist/unstable/cli/CliError.d.ts +126 -76
  816. package/dist/unstable/cli/CliError.d.ts.map +1 -1
  817. package/dist/unstable/cli/CliError.js +136 -76
  818. package/dist/unstable/cli/CliError.js.map +1 -1
  819. package/dist/unstable/cli/CliOutput.d.ts +35 -54
  820. package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
  821. package/dist/unstable/cli/CliOutput.js +26 -42
  822. package/dist/unstable/cli/CliOutput.js.map +1 -1
  823. package/dist/unstable/cli/Command.d.ts +736 -115
  824. package/dist/unstable/cli/Command.d.ts.map +1 -1
  825. package/dist/unstable/cli/Command.js +282 -56
  826. package/dist/unstable/cli/Command.js.map +1 -1
  827. package/dist/unstable/cli/Completions.js.map +1 -1
  828. package/dist/unstable/cli/Flag.d.ts +418 -138
  829. package/dist/unstable/cli/Flag.d.ts.map +1 -1
  830. package/dist/unstable/cli/Flag.js +197 -71
  831. package/dist/unstable/cli/Flag.js.map +1 -1
  832. package/dist/unstable/cli/GlobalFlag.d.ts +1 -1
  833. package/dist/unstable/cli/GlobalFlag.js.map +1 -1
  834. package/dist/unstable/cli/HelpDoc.d.ts +12 -4
  835. package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
  836. package/dist/unstable/cli/Param.d.ts +299 -83
  837. package/dist/unstable/cli/Param.d.ts.map +1 -1
  838. package/dist/unstable/cli/Param.js +146 -60
  839. package/dist/unstable/cli/Param.js.map +1 -1
  840. package/dist/unstable/cli/Primitive.d.ts +370 -149
  841. package/dist/unstable/cli/Primitive.d.ts.map +1 -1
  842. package/dist/unstable/cli/Primitive.js +377 -162
  843. package/dist/unstable/cli/Primitive.js.map +1 -1
  844. package/dist/unstable/cli/Prompt.d.ts +23 -14
  845. package/dist/unstable/cli/Prompt.d.ts.map +1 -1
  846. package/dist/unstable/cli/Prompt.js +54 -31
  847. package/dist/unstable/cli/Prompt.js.map +1 -1
  848. package/dist/unstable/cli/index.js.map +1 -1
  849. package/dist/unstable/cli/internal/ansi.js +2 -2
  850. package/dist/unstable/cli/internal/ansi.js.map +1 -1
  851. package/dist/unstable/cli/internal/auto-suggest.js.map +1 -1
  852. package/dist/unstable/cli/internal/command.d.ts +5 -3
  853. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  854. package/dist/unstable/cli/internal/command.js +21 -13
  855. package/dist/unstable/cli/internal/command.js.map +1 -1
  856. package/dist/unstable/cli/internal/completions/bash.js +69 -9
  857. package/dist/unstable/cli/internal/completions/bash.js.map +1 -1
  858. package/dist/unstable/cli/internal/completions/descriptor.js +24 -18
  859. package/dist/unstable/cli/internal/completions/descriptor.js.map +1 -1
  860. package/dist/unstable/cli/internal/completions/fish.js +5 -5
  861. package/dist/unstable/cli/internal/completions/fish.js.map +1 -1
  862. package/dist/unstable/cli/internal/completions/zsh.js.map +1 -1
  863. package/dist/unstable/cli/internal/config.d.ts +0 -48
  864. package/dist/unstable/cli/internal/config.d.ts.map +1 -1
  865. package/dist/unstable/cli/internal/config.js +8 -10
  866. package/dist/unstable/cli/internal/config.js.map +1 -1
  867. package/dist/unstable/cli/internal/help.d.ts.map +1 -1
  868. package/dist/unstable/cli/internal/help.js +4 -2
  869. package/dist/unstable/cli/internal/help.js.map +1 -1
  870. package/dist/unstable/cli/internal/lexer.js +17 -7
  871. package/dist/unstable/cli/internal/lexer.js.map +1 -1
  872. package/dist/unstable/cli/internal/parser.js +5 -5
  873. package/dist/unstable/cli/internal/parser.js.map +1 -1
  874. package/dist/unstable/cli/internal/wizard.js +2 -2
  875. package/dist/unstable/cli/internal/wizard.js.map +1 -1
  876. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  877. package/dist/unstable/cluster/ClusterError.d.ts +3 -1
  878. package/dist/unstable/cluster/ClusterError.d.ts.map +1 -1
  879. package/dist/unstable/cluster/ClusterError.js +10 -8
  880. package/dist/unstable/cluster/ClusterError.js.map +1 -1
  881. package/dist/unstable/cluster/ClusterMetrics.js.map +1 -1
  882. package/dist/unstable/cluster/ClusterSchema.d.ts +8 -8
  883. package/dist/unstable/cluster/ClusterSchema.js +8 -8
  884. package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
  885. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  886. package/dist/unstable/cluster/ClusterWorkflowEngine.js +43 -21
  887. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  888. package/dist/unstable/cluster/DeliverAt.js.map +1 -1
  889. package/dist/unstable/cluster/Entity.d.ts +12 -12
  890. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  891. package/dist/unstable/cluster/Entity.js +9 -9
  892. package/dist/unstable/cluster/Entity.js.map +1 -1
  893. package/dist/unstable/cluster/EntityAddress.js.map +1 -1
  894. package/dist/unstable/cluster/EntityId.js.map +1 -1
  895. package/dist/unstable/cluster/EntityProxy.d.ts +7 -5
  896. package/dist/unstable/cluster/EntityProxy.d.ts.map +1 -1
  897. package/dist/unstable/cluster/EntityProxy.js +8 -5
  898. package/dist/unstable/cluster/EntityProxy.js.map +1 -1
  899. package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
  900. package/dist/unstable/cluster/EntityResource.d.ts +4 -4
  901. package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
  902. package/dist/unstable/cluster/EntityResource.js +14 -2
  903. package/dist/unstable/cluster/EntityResource.js.map +1 -1
  904. package/dist/unstable/cluster/EntityType.js.map +1 -1
  905. package/dist/unstable/cluster/Envelope.d.ts +3 -3
  906. package/dist/unstable/cluster/Envelope.d.ts.map +1 -1
  907. package/dist/unstable/cluster/Envelope.js +5 -4
  908. package/dist/unstable/cluster/Envelope.js.map +1 -1
  909. package/dist/unstable/cluster/HttpRunner.d.ts +2 -2
  910. package/dist/unstable/cluster/HttpRunner.d.ts.map +1 -1
  911. package/dist/unstable/cluster/HttpRunner.js +6 -4
  912. package/dist/unstable/cluster/HttpRunner.js.map +1 -1
  913. package/dist/unstable/cluster/K8sHttpClient.d.ts +2 -2
  914. package/dist/unstable/cluster/K8sHttpClient.d.ts.map +1 -1
  915. package/dist/unstable/cluster/K8sHttpClient.js +8 -0
  916. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  917. package/dist/unstable/cluster/K8sTypes.d.ts +2327 -0
  918. package/dist/unstable/cluster/K8sTypes.d.ts.map +1 -0
  919. package/dist/unstable/cluster/K8sTypes.js +29 -0
  920. package/dist/unstable/cluster/K8sTypes.js.map +1 -0
  921. package/dist/unstable/cluster/MachineId.js.map +1 -1
  922. package/dist/unstable/cluster/Message.d.ts +9 -9
  923. package/dist/unstable/cluster/Message.js +6 -6
  924. package/dist/unstable/cluster/Message.js.map +1 -1
  925. package/dist/unstable/cluster/MessageStorage.d.ts +66 -22
  926. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  927. package/dist/unstable/cluster/MessageStorage.js +56 -13
  928. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  929. package/dist/unstable/cluster/Reply.d.ts +8 -0
  930. package/dist/unstable/cluster/Reply.d.ts.map +1 -1
  931. package/dist/unstable/cluster/Reply.js +17 -5
  932. package/dist/unstable/cluster/Reply.js.map +1 -1
  933. package/dist/unstable/cluster/Runner.d.ts +1 -1
  934. package/dist/unstable/cluster/Runner.js +1 -1
  935. package/dist/unstable/cluster/Runner.js.map +1 -1
  936. package/dist/unstable/cluster/RunnerAddress.d.ts +1 -1
  937. package/dist/unstable/cluster/RunnerAddress.js +1 -1
  938. package/dist/unstable/cluster/RunnerAddress.js.map +1 -1
  939. package/dist/unstable/cluster/RunnerHealth.d.ts +1 -1
  940. package/dist/unstable/cluster/RunnerHealth.js +1 -1
  941. package/dist/unstable/cluster/RunnerHealth.js.map +1 -1
  942. package/dist/unstable/cluster/RunnerServer.d.ts +2 -1
  943. package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
  944. package/dist/unstable/cluster/RunnerServer.js +29 -23
  945. package/dist/unstable/cluster/RunnerServer.js.map +1 -1
  946. package/dist/unstable/cluster/RunnerStorage.d.ts +3 -4
  947. package/dist/unstable/cluster/RunnerStorage.d.ts.map +1 -1
  948. package/dist/unstable/cluster/RunnerStorage.js +8 -7
  949. package/dist/unstable/cluster/RunnerStorage.js.map +1 -1
  950. package/dist/unstable/cluster/Runners.d.ts +11 -15
  951. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  952. package/dist/unstable/cluster/Runners.js +32 -22
  953. package/dist/unstable/cluster/Runners.js.map +1 -1
  954. package/dist/unstable/cluster/ShardId.js +1 -1
  955. package/dist/unstable/cluster/ShardId.js.map +1 -1
  956. package/dist/unstable/cluster/Sharding.d.ts +2 -2
  957. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  958. package/dist/unstable/cluster/Sharding.js +293 -46
  959. package/dist/unstable/cluster/Sharding.js.map +1 -1
  960. package/dist/unstable/cluster/ShardingConfig.d.ts +57 -5
  961. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  962. package/dist/unstable/cluster/ShardingConfig.js +11 -3
  963. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  964. package/dist/unstable/cluster/ShardingRegistrationEvent.js.map +1 -1
  965. package/dist/unstable/cluster/SingleRunner.d.ts +4 -2
  966. package/dist/unstable/cluster/SingleRunner.d.ts.map +1 -1
  967. package/dist/unstable/cluster/SingleRunner.js +2 -1
  968. package/dist/unstable/cluster/SingleRunner.js.map +1 -1
  969. package/dist/unstable/cluster/Singleton.js.map +1 -1
  970. package/dist/unstable/cluster/SingletonAddress.d.ts +1 -1
  971. package/dist/unstable/cluster/SingletonAddress.js +1 -1
  972. package/dist/unstable/cluster/SingletonAddress.js.map +1 -1
  973. package/dist/unstable/cluster/Snowflake.d.ts +8 -8
  974. package/dist/unstable/cluster/Snowflake.js +8 -8
  975. package/dist/unstable/cluster/Snowflake.js.map +1 -1
  976. package/dist/unstable/cluster/SocketRunner.js.map +1 -1
  977. package/dist/unstable/cluster/SqlMessageStorage.d.ts +21 -9
  978. package/dist/unstable/cluster/SqlMessageStorage.d.ts.map +1 -1
  979. package/dist/unstable/cluster/SqlMessageStorage.js +130 -43
  980. package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
  981. package/dist/unstable/cluster/SqlRunnerStorage.d.ts.map +1 -1
  982. package/dist/unstable/cluster/SqlRunnerStorage.js +141 -79
  983. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  984. package/dist/unstable/cluster/TestRunner.js.map +1 -1
  985. package/dist/unstable/cluster/index.d.ts +4 -0
  986. package/dist/unstable/cluster/index.d.ts.map +1 -1
  987. package/dist/unstable/cluster/index.js +4 -0
  988. package/dist/unstable/cluster/index.js.map +1 -1
  989. package/dist/unstable/cluster/internal/entityManager.js +33 -13
  990. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  991. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  992. package/dist/unstable/cluster/internal/hash.js.map +1 -1
  993. package/dist/unstable/cluster/internal/interruptors.js.map +1 -1
  994. package/dist/unstable/cluster/internal/resourceMap.js +8 -2
  995. package/dist/unstable/cluster/internal/resourceMap.js.map +1 -1
  996. package/dist/unstable/cluster/internal/resourceRef.js +17 -0
  997. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  998. package/dist/unstable/cluster/internal/shardLock.d.ts +2 -0
  999. package/dist/unstable/cluster/internal/shardLock.d.ts.map +1 -0
  1000. package/dist/unstable/cluster/internal/shardLock.js +4 -0
  1001. package/dist/unstable/cluster/internal/shardLock.js.map +1 -0
  1002. package/dist/unstable/devtools/DevTools.js.map +1 -1
  1003. package/dist/unstable/devtools/DevToolsClient.d.ts.map +1 -1
  1004. package/dist/unstable/devtools/DevToolsClient.js +7 -2
  1005. package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
  1006. package/dist/unstable/devtools/DevToolsSchema.d.ts +20 -20
  1007. package/dist/unstable/devtools/DevToolsSchema.d.ts.map +1 -1
  1008. package/dist/unstable/devtools/DevToolsSchema.js +8 -5
  1009. package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
  1010. package/dist/unstable/devtools/DevToolsServer.js.map +1 -1
  1011. package/dist/unstable/devtools/index.js.map +1 -1
  1012. package/dist/unstable/encoding/Ini.d.ts +20 -0
  1013. package/dist/unstable/encoding/Ini.d.ts.map +1 -0
  1014. package/dist/unstable/encoding/Ini.js +153 -0
  1015. package/dist/unstable/encoding/Ini.js.map +1 -0
  1016. package/dist/unstable/encoding/Msgpack.d.ts +2 -1
  1017. package/dist/unstable/encoding/Msgpack.d.ts.map +1 -1
  1018. package/dist/unstable/encoding/Msgpack.js +31 -19
  1019. package/dist/unstable/encoding/Msgpack.js.map +1 -1
  1020. package/dist/unstable/encoding/Ndjson.d.ts.map +1 -1
  1021. package/dist/unstable/encoding/Ndjson.js +7 -1
  1022. package/dist/unstable/encoding/Ndjson.js.map +1 -1
  1023. package/dist/unstable/encoding/Sse.d.ts +72 -8
  1024. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  1025. package/dist/unstable/encoding/Sse.js +72 -31
  1026. package/dist/unstable/encoding/Sse.js.map +1 -1
  1027. package/dist/unstable/encoding/Toml.d.ts +19 -0
  1028. package/dist/unstable/encoding/Toml.d.ts.map +1 -0
  1029. package/dist/unstable/encoding/Toml.js +434 -0
  1030. package/dist/unstable/encoding/Toml.js.map +1 -0
  1031. package/dist/unstable/encoding/Yaml.d.ts +19 -0
  1032. package/dist/unstable/encoding/Yaml.d.ts.map +1 -0
  1033. package/dist/unstable/encoding/Yaml.js +461 -0
  1034. package/dist/unstable/encoding/Yaml.js.map +1 -0
  1035. package/dist/unstable/encoding/index.d.ts +12 -0
  1036. package/dist/unstable/encoding/index.d.ts.map +1 -1
  1037. package/dist/unstable/encoding/index.js +12 -0
  1038. package/dist/unstable/encoding/index.js.map +1 -1
  1039. package/dist/unstable/eventlog/Event.d.ts +20 -20
  1040. package/dist/unstable/eventlog/Event.js.map +1 -1
  1041. package/dist/unstable/eventlog/EventGroup.d.ts +4 -4
  1042. package/dist/unstable/eventlog/EventGroup.js.map +1 -1
  1043. package/dist/unstable/eventlog/EventJournal.d.ts +30 -17
  1044. package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
  1045. package/dist/unstable/eventlog/EventJournal.js +30 -35
  1046. package/dist/unstable/eventlog/EventJournal.js.map +1 -1
  1047. package/dist/unstable/eventlog/EventLog.d.ts +3 -3
  1048. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  1049. package/dist/unstable/eventlog/EventLog.js +18 -14
  1050. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  1051. package/dist/unstable/eventlog/EventLogEncryption.d.ts +8 -7
  1052. package/dist/unstable/eventlog/EventLogEncryption.d.ts.map +1 -1
  1053. package/dist/unstable/eventlog/EventLogEncryption.js +16 -14
  1054. package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
  1055. package/dist/unstable/eventlog/EventLogMessage.d.ts +31 -31
  1056. package/dist/unstable/eventlog/EventLogMessage.d.ts.map +1 -1
  1057. package/dist/unstable/eventlog/EventLogMessage.js +12 -8
  1058. package/dist/unstable/eventlog/EventLogMessage.js.map +1 -1
  1059. package/dist/unstable/eventlog/EventLogRemote.d.ts +15 -15
  1060. package/dist/unstable/eventlog/EventLogRemote.js +5 -5
  1061. package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
  1062. package/dist/unstable/eventlog/EventLogServer.d.ts +11 -2
  1063. package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
  1064. package/dist/unstable/eventlog/EventLogServer.js +45 -21
  1065. package/dist/unstable/eventlog/EventLogServer.js.map +1 -1
  1066. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +4 -4
  1067. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  1068. package/dist/unstable/eventlog/EventLogServerEncrypted.js +17 -8
  1069. package/dist/unstable/eventlog/EventLogServerEncrypted.js.map +1 -1
  1070. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +5 -5
  1071. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
  1072. package/dist/unstable/eventlog/EventLogServerUnencrypted.js +15 -7
  1073. package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -1
  1074. package/dist/unstable/eventlog/EventLogSessionAuth.d.ts +1 -1
  1075. package/dist/unstable/eventlog/EventLogSessionAuth.js +1 -1
  1076. package/dist/unstable/eventlog/EventLogSessionAuth.js.map +1 -1
  1077. package/dist/unstable/eventlog/SqlEventJournal.d.ts +10 -0
  1078. package/dist/unstable/eventlog/SqlEventJournal.d.ts.map +1 -1
  1079. package/dist/unstable/eventlog/SqlEventJournal.js +4 -7
  1080. package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -1
  1081. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js +1 -1
  1082. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
  1083. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js +3 -3
  1084. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  1085. package/dist/unstable/eventlog/index.js.map +1 -1
  1086. package/dist/unstable/eventlog/internal/identityRootSecretDerivation.js.map +1 -1
  1087. package/dist/unstable/http/Cookies.d.ts +2 -2
  1088. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  1089. package/dist/unstable/http/Cookies.js +54 -40
  1090. package/dist/unstable/http/Cookies.js.map +1 -1
  1091. package/dist/unstable/http/Etag.d.ts +1 -1
  1092. package/dist/unstable/http/Etag.js +1 -1
  1093. package/dist/unstable/http/Etag.js.map +1 -1
  1094. package/dist/unstable/http/FetchHttpClient.d.ts.map +1 -1
  1095. package/dist/unstable/http/FetchHttpClient.js +1 -1
  1096. package/dist/unstable/http/FetchHttpClient.js.map +1 -1
  1097. package/dist/unstable/http/FindMyWay/internal/queryString.d.ts +11 -0
  1098. package/dist/unstable/http/FindMyWay/internal/queryString.d.ts.map +1 -0
  1099. package/dist/unstable/http/FindMyWay/internal/queryString.js +259 -0
  1100. package/dist/unstable/http/FindMyWay/internal/queryString.js.map +1 -0
  1101. package/dist/unstable/http/FindMyWay/internal/router.d.ts +2 -0
  1102. package/dist/unstable/http/FindMyWay/internal/router.d.ts.map +1 -0
  1103. package/dist/unstable/http/FindMyWay/internal/router.js +665 -0
  1104. package/dist/unstable/http/FindMyWay/internal/router.js.map +1 -0
  1105. package/dist/unstable/http/FindMyWay.d.ts +33 -8
  1106. package/dist/unstable/http/FindMyWay.d.ts.map +1 -1
  1107. package/dist/unstable/http/FindMyWay.js +4 -7
  1108. package/dist/unstable/http/FindMyWay.js.map +1 -1
  1109. package/dist/unstable/http/Headers.d.ts +2 -2
  1110. package/dist/unstable/http/Headers.js +10 -10
  1111. package/dist/unstable/http/Headers.js.map +1 -1
  1112. package/dist/unstable/http/HttpBody.d.ts +5 -3
  1113. package/dist/unstable/http/HttpBody.d.ts.map +1 -1
  1114. package/dist/unstable/http/HttpBody.js +11 -5
  1115. package/dist/unstable/http/HttpBody.js.map +1 -1
  1116. package/dist/unstable/http/HttpClient.d.ts +110 -47
  1117. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  1118. package/dist/unstable/http/HttpClient.js +79 -36
  1119. package/dist/unstable/http/HttpClient.js.map +1 -1
  1120. package/dist/unstable/http/HttpClientError.js +1 -1
  1121. package/dist/unstable/http/HttpClientError.js.map +1 -1
  1122. package/dist/unstable/http/HttpClientRequest.d.ts +44 -0
  1123. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  1124. package/dist/unstable/http/HttpClientRequest.js +16 -12
  1125. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  1126. package/dist/unstable/http/HttpClientResponse.d.ts +4 -4
  1127. package/dist/unstable/http/HttpClientResponse.js +3 -18
  1128. package/dist/unstable/http/HttpClientResponse.js.map +1 -1
  1129. package/dist/unstable/http/HttpEffect.d.ts +7 -9
  1130. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  1131. package/dist/unstable/http/HttpEffect.js +14 -15
  1132. package/dist/unstable/http/HttpEffect.js.map +1 -1
  1133. package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
  1134. package/dist/unstable/http/HttpMethod.d.ts +6 -9
  1135. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  1136. package/dist/unstable/http/HttpMethod.js +6 -9
  1137. package/dist/unstable/http/HttpMethod.js.map +1 -1
  1138. package/dist/unstable/http/HttpMiddleware.d.ts +75 -9
  1139. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  1140. package/dist/unstable/http/HttpMiddleware.js +164 -39
  1141. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  1142. package/dist/unstable/http/HttpPlatform.d.ts +76 -0
  1143. package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
  1144. package/dist/unstable/http/HttpPlatform.js +53 -3
  1145. package/dist/unstable/http/HttpPlatform.js.map +1 -1
  1146. package/dist/unstable/http/HttpRouter.d.ts +91 -92
  1147. package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
  1148. package/dist/unstable/http/HttpRouter.js +79 -80
  1149. package/dist/unstable/http/HttpRouter.js.map +1 -1
  1150. package/dist/unstable/http/HttpServer.d.ts +13 -13
  1151. package/dist/unstable/http/HttpServer.js +6 -6
  1152. package/dist/unstable/http/HttpServer.js.map +1 -1
  1153. package/dist/unstable/http/HttpServerError.d.ts +2 -2
  1154. package/dist/unstable/http/HttpServerError.js +2 -2
  1155. package/dist/unstable/http/HttpServerError.js.map +1 -1
  1156. package/dist/unstable/http/HttpServerRequest.d.ts +4 -4
  1157. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  1158. package/dist/unstable/http/HttpServerRequest.js +23 -15
  1159. package/dist/unstable/http/HttpServerRequest.js.map +1 -1
  1160. package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
  1161. package/dist/unstable/http/HttpServerResponse.d.ts +22 -0
  1162. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  1163. package/dist/unstable/http/HttpServerResponse.js +17 -5
  1164. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  1165. package/dist/unstable/http/HttpStaticServer.d.ts +35 -7
  1166. package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -1
  1167. package/dist/unstable/http/HttpStaticServer.js +35 -7
  1168. package/dist/unstable/http/HttpStaticServer.js.map +1 -1
  1169. package/dist/unstable/http/HttpStatus.d.ts +99 -0
  1170. package/dist/unstable/http/HttpStatus.d.ts.map +1 -0
  1171. package/dist/unstable/http/HttpStatus.js +91 -0
  1172. package/dist/unstable/http/HttpStatus.js.map +1 -0
  1173. package/dist/unstable/http/HttpTraceContext.js.map +1 -1
  1174. package/dist/unstable/http/Multipart.d.ts +28 -9
  1175. package/dist/unstable/http/Multipart.d.ts.map +1 -1
  1176. package/dist/unstable/http/Multipart.js +65 -35
  1177. package/dist/unstable/http/Multipart.js.map +1 -1
  1178. package/dist/unstable/http/MultipartParser/HeadersParser.d.ts +53 -0
  1179. package/dist/unstable/http/MultipartParser/HeadersParser.d.ts.map +1 -0
  1180. package/dist/unstable/http/MultipartParser/HeadersParser.js +14 -0
  1181. package/dist/unstable/http/MultipartParser/HeadersParser.js.map +1 -0
  1182. package/dist/unstable/http/MultipartParser/Search.d.ts +11 -0
  1183. package/dist/unstable/http/MultipartParser/Search.d.ts.map +1 -0
  1184. package/dist/unstable/http/MultipartParser/Search.js +14 -0
  1185. package/dist/unstable/http/MultipartParser/Search.js.map +1 -0
  1186. package/dist/unstable/http/MultipartParser/internal/contentType.d.ts +5 -0
  1187. package/dist/unstable/http/MultipartParser/internal/contentType.d.ts.map +1 -0
  1188. package/dist/unstable/http/MultipartParser/internal/contentType.js +82 -0
  1189. package/dist/unstable/http/MultipartParser/internal/contentType.js.map +1 -0
  1190. package/dist/unstable/http/MultipartParser/internal/headers.d.ts +3 -0
  1191. package/dist/unstable/http/MultipartParser/internal/headers.d.ts.map +1 -0
  1192. package/dist/unstable/http/MultipartParser/internal/headers.js +208 -0
  1193. package/dist/unstable/http/MultipartParser/internal/headers.js.map +1 -0
  1194. package/dist/unstable/http/MultipartParser/internal/multipart.d.ts +8 -0
  1195. package/dist/unstable/http/MultipartParser/internal/multipart.d.ts.map +1 -0
  1196. package/dist/unstable/http/MultipartParser/internal/multipart.js +241 -0
  1197. package/dist/unstable/http/MultipartParser/internal/multipart.js.map +1 -0
  1198. package/dist/unstable/http/MultipartParser/internal/search.d.ts +5 -0
  1199. package/dist/unstable/http/MultipartParser/internal/search.d.ts.map +1 -0
  1200. package/dist/unstable/http/MultipartParser/internal/search.js +120 -0
  1201. package/dist/unstable/http/MultipartParser/internal/search.js.map +1 -0
  1202. package/dist/unstable/http/MultipartParser.d.ts +98 -0
  1203. package/dist/unstable/http/MultipartParser.d.ts.map +1 -0
  1204. package/dist/unstable/http/MultipartParser.js +23 -0
  1205. package/dist/unstable/http/MultipartParser.js.map +1 -0
  1206. package/dist/unstable/http/Template.d.ts.map +1 -1
  1207. package/dist/unstable/http/Template.js +3 -3
  1208. package/dist/unstable/http/Template.js.map +1 -1
  1209. package/dist/unstable/http/Url.d.ts +33 -63
  1210. package/dist/unstable/http/Url.d.ts.map +1 -1
  1211. package/dist/unstable/http/Url.js +14 -28
  1212. package/dist/unstable/http/Url.js.map +1 -1
  1213. package/dist/unstable/http/UrlParams.d.ts +10 -18
  1214. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  1215. package/dist/unstable/http/UrlParams.js +26 -31
  1216. package/dist/unstable/http/UrlParams.js.map +1 -1
  1217. package/dist/unstable/http/index.d.ts +5 -1
  1218. package/dist/unstable/http/index.d.ts.map +1 -1
  1219. package/dist/unstable/http/index.js +5 -1
  1220. package/dist/unstable/http/index.js.map +1 -1
  1221. package/dist/unstable/http/internal/compression.d.ts +2 -0
  1222. package/dist/unstable/http/internal/compression.d.ts.map +1 -0
  1223. package/dist/unstable/http/internal/compression.js +155 -0
  1224. package/dist/unstable/http/internal/compression.js.map +1 -0
  1225. package/dist/unstable/http/internal/httpBody.d.ts +2 -0
  1226. package/dist/unstable/http/internal/httpBody.d.ts.map +1 -0
  1227. package/dist/unstable/http/internal/httpBody.js +10 -0
  1228. package/dist/unstable/http/internal/httpBody.js.map +1 -0
  1229. package/dist/unstable/http/internal/preResponseHandler.js.map +1 -1
  1230. package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
  1231. package/dist/unstable/httpapi/HttpApi.js +9 -9
  1232. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  1233. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +1 -1
  1234. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  1235. package/dist/unstable/httpapi/HttpApiBuilder.js +82 -30
  1236. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  1237. package/dist/unstable/httpapi/HttpApiClient.d.ts +4 -5
  1238. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  1239. package/dist/unstable/httpapi/HttpApiClient.js +89 -51
  1240. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  1241. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +48 -46
  1242. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  1243. package/dist/unstable/httpapi/HttpApiEndpoint.js +73 -16
  1244. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  1245. package/dist/unstable/httpapi/HttpApiError.d.ts +18 -18
  1246. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  1247. package/dist/unstable/httpapi/HttpApiError.js +30 -30
  1248. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  1249. package/dist/unstable/httpapi/HttpApiGroup.d.ts +15 -15
  1250. package/dist/unstable/httpapi/HttpApiGroup.js +2 -2
  1251. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  1252. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +71 -24
  1253. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  1254. package/dist/unstable/httpapi/HttpApiMiddleware.js +57 -10
  1255. package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
  1256. package/dist/unstable/httpapi/HttpApiScalar.d.ts +0 -12
  1257. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  1258. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  1259. package/dist/unstable/httpapi/HttpApiSchema.d.ts +227 -71
  1260. package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
  1261. package/dist/unstable/httpapi/HttpApiSchema.js +176 -69
  1262. package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
  1263. package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
  1264. package/dist/unstable/httpapi/HttpApiSwagger.js.map +1 -1
  1265. package/dist/unstable/httpapi/HttpApiTest.js.map +1 -1
  1266. package/dist/unstable/httpapi/OpenApi.d.ts +21 -13
  1267. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  1268. package/dist/unstable/httpapi/OpenApi.js +110 -57
  1269. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  1270. package/dist/unstable/httpapi/index.js.map +1 -1
  1271. package/dist/unstable/httpapi/internal/html.js.map +1 -1
  1272. package/dist/unstable/httpapi/internal/httpApiScalar.js.map +1 -1
  1273. package/dist/unstable/httpapi/internal/httpApiSwagger.js.map +1 -1
  1274. package/dist/unstable/httpapi/internal/mediaType.js.map +1 -1
  1275. package/dist/unstable/observability/Otlp.js.map +1 -1
  1276. package/dist/unstable/observability/OtlpExporter.d.ts +71 -2
  1277. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  1278. package/dist/unstable/observability/OtlpExporter.js +86 -7
  1279. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  1280. package/dist/unstable/observability/OtlpLogger.d.ts +4 -3
  1281. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  1282. package/dist/unstable/observability/OtlpLogger.js +4 -4
  1283. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  1284. package/dist/unstable/observability/OtlpMetrics.d.ts +11 -4
  1285. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  1286. package/dist/unstable/observability/OtlpMetrics.js +31 -15
  1287. package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
  1288. package/dist/unstable/observability/OtlpResource.d.ts +16 -7
  1289. package/dist/unstable/observability/OtlpResource.d.ts.map +1 -1
  1290. package/dist/unstable/observability/OtlpResource.js +21 -12
  1291. package/dist/unstable/observability/OtlpResource.js.map +1 -1
  1292. package/dist/unstable/observability/OtlpSerialization.js.map +1 -1
  1293. package/dist/unstable/observability/OtlpTracer.d.ts +4 -3
  1294. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  1295. package/dist/unstable/observability/OtlpTracer.js +3 -3
  1296. package/dist/unstable/observability/OtlpTracer.js.map +1 -1
  1297. package/dist/unstable/observability/PrometheusMetrics.d.ts +13 -4
  1298. package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
  1299. package/dist/unstable/observability/PrometheusMetrics.js +10 -3
  1300. package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
  1301. package/dist/unstable/observability/index.js.map +1 -1
  1302. package/dist/unstable/observability/internal/otlpEnv.js +1 -1
  1303. package/dist/unstable/observability/internal/otlpEnv.js.map +1 -1
  1304. package/dist/unstable/observability/internal/otlpProtobuf.js.map +1 -1
  1305. package/dist/unstable/observability/internal/protobuf.js +3 -0
  1306. package/dist/unstable/observability/internal/protobuf.js.map +1 -1
  1307. package/dist/unstable/persistence/KeyValueStore.d.ts +8 -3
  1308. package/dist/unstable/persistence/KeyValueStore.d.ts.map +1 -1
  1309. package/dist/unstable/persistence/KeyValueStore.js +22 -13
  1310. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  1311. package/dist/unstable/persistence/Persistable.d.ts +8 -8
  1312. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  1313. package/dist/unstable/persistence/Persistable.js +2 -1
  1314. package/dist/unstable/persistence/Persistable.js.map +1 -1
  1315. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  1316. package/dist/unstable/persistence/PersistedQueue.d.ts +6 -6
  1317. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  1318. package/dist/unstable/persistence/PersistedQueue.js +97 -86
  1319. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  1320. package/dist/unstable/persistence/Persistence.d.ts +3 -3
  1321. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  1322. package/dist/unstable/persistence/Persistence.js +108 -22
  1323. package/dist/unstable/persistence/Persistence.js.map +1 -1
  1324. package/dist/unstable/persistence/RateLimiter.d.ts +47 -26
  1325. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  1326. package/dist/unstable/persistence/RateLimiter.js +31 -47
  1327. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  1328. package/dist/unstable/persistence/Redis.d.ts +2 -2
  1329. package/dist/unstable/persistence/Redis.d.ts.map +1 -1
  1330. package/dist/unstable/persistence/Redis.js +4 -4
  1331. package/dist/unstable/persistence/Redis.js.map +1 -1
  1332. package/dist/unstable/persistence/index.js.map +1 -1
  1333. package/dist/unstable/process/ChildProcess.d.ts +72 -21
  1334. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  1335. package/dist/unstable/process/ChildProcess.js +14 -5
  1336. package/dist/unstable/process/ChildProcess.js.map +1 -1
  1337. package/dist/unstable/process/ChildProcessSpawner.d.ts +21 -10
  1338. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  1339. package/dist/unstable/process/ChildProcessSpawner.js +4 -2
  1340. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  1341. package/dist/unstable/process/index.js.map +1 -1
  1342. package/dist/unstable/reactivity/AsyncResult.d.ts +8 -8
  1343. package/dist/unstable/reactivity/AsyncResult.d.ts.map +1 -1
  1344. package/dist/unstable/reactivity/AsyncResult.js +14 -13
  1345. package/dist/unstable/reactivity/AsyncResult.js.map +1 -1
  1346. package/dist/unstable/reactivity/Atom.d.ts +131 -30
  1347. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  1348. package/dist/unstable/reactivity/Atom.js +55 -43
  1349. package/dist/unstable/reactivity/Atom.js.map +1 -1
  1350. package/dist/unstable/reactivity/AtomHttpApi.d.ts +1 -1
  1351. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  1352. package/dist/unstable/reactivity/AtomHttpApi.js +4 -1
  1353. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  1354. package/dist/unstable/reactivity/AtomRef.js.map +1 -1
  1355. package/dist/unstable/reactivity/AtomRegistry.js +25 -4
  1356. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  1357. package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
  1358. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  1359. package/dist/unstable/reactivity/AtomRpc.js +4 -1
  1360. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  1361. package/dist/unstable/reactivity/Hydration.d.ts +1 -1
  1362. package/dist/unstable/reactivity/Hydration.js +1 -1
  1363. package/dist/unstable/reactivity/Hydration.js.map +1 -1
  1364. package/dist/unstable/reactivity/Reactivity.js +1 -1
  1365. package/dist/unstable/reactivity/Reactivity.js.map +1 -1
  1366. package/dist/unstable/reactivity/index.js.map +1 -1
  1367. package/dist/unstable/rpc/Rpc.d.ts +35 -33
  1368. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  1369. package/dist/unstable/rpc/Rpc.js +4 -2
  1370. package/dist/unstable/rpc/Rpc.js.map +1 -1
  1371. package/dist/unstable/rpc/RpcClient.d.ts +26 -12
  1372. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  1373. package/dist/unstable/rpc/RpcClient.js +41 -23
  1374. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  1375. package/dist/unstable/rpc/RpcClientError.js +2 -2
  1376. package/dist/unstable/rpc/RpcClientError.js.map +1 -1
  1377. package/dist/unstable/rpc/RpcGroup.d.ts +8 -8
  1378. package/dist/unstable/rpc/RpcGroup.js +2 -2
  1379. package/dist/unstable/rpc/RpcGroup.js.map +1 -1
  1380. package/dist/unstable/rpc/RpcMessage.d.ts +31 -30
  1381. package/dist/unstable/rpc/RpcMessage.d.ts.map +1 -1
  1382. package/dist/unstable/rpc/RpcMessage.js +6 -6
  1383. package/dist/unstable/rpc/RpcMessage.js.map +1 -1
  1384. package/dist/unstable/rpc/RpcMiddleware.d.ts +10 -10
  1385. package/dist/unstable/rpc/RpcMiddleware.js +1 -1
  1386. package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
  1387. package/dist/unstable/rpc/RpcSchema.d.ts +4 -4
  1388. package/dist/unstable/rpc/RpcSchema.js +3 -3
  1389. package/dist/unstable/rpc/RpcSchema.js.map +1 -1
  1390. package/dist/unstable/rpc/RpcSerialization.d.ts +58 -7
  1391. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  1392. package/dist/unstable/rpc/RpcSerialization.js +178 -97
  1393. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  1394. package/dist/unstable/rpc/RpcServer.d.ts +13 -13
  1395. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  1396. package/dist/unstable/rpc/RpcServer.js +23 -18
  1397. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  1398. package/dist/unstable/rpc/RpcTest.js.map +1 -1
  1399. package/dist/unstable/rpc/RpcWorker.d.ts +5 -5
  1400. package/dist/unstable/rpc/RpcWorker.js +4 -4
  1401. package/dist/unstable/rpc/RpcWorker.js.map +1 -1
  1402. package/dist/unstable/rpc/Utils.js.map +1 -1
  1403. package/dist/unstable/rpc/index.js.map +1 -1
  1404. package/dist/unstable/schema/Model.d.ts +66 -51
  1405. package/dist/unstable/schema/Model.d.ts.map +1 -1
  1406. package/dist/unstable/schema/Model.js +39 -52
  1407. package/dist/unstable/schema/Model.js.map +1 -1
  1408. package/dist/unstable/schema/VariantSchema.d.ts +11 -12
  1409. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  1410. package/dist/unstable/schema/VariantSchema.js +28 -17
  1411. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  1412. package/dist/unstable/schema/index.js.map +1 -1
  1413. package/dist/unstable/socket/Socket.d.ts +12 -4
  1414. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  1415. package/dist/unstable/socket/Socket.js +38 -17
  1416. package/dist/unstable/socket/Socket.js.map +1 -1
  1417. package/dist/unstable/socket/SocketServer.js.map +1 -1
  1418. package/dist/unstable/socket/index.js.map +1 -1
  1419. package/dist/unstable/sql/Migrator.d.ts +9 -1
  1420. package/dist/unstable/sql/Migrator.d.ts.map +1 -1
  1421. package/dist/unstable/sql/Migrator.js +15 -2
  1422. package/dist/unstable/sql/Migrator.js.map +1 -1
  1423. package/dist/unstable/sql/SqlClient.d.ts +1 -1
  1424. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  1425. package/dist/unstable/sql/SqlClient.js +11 -7
  1426. package/dist/unstable/sql/SqlClient.js.map +1 -1
  1427. package/dist/unstable/sql/SqlConnection.js.map +1 -1
  1428. package/dist/unstable/sql/SqlError.d.ts +2 -2
  1429. package/dist/unstable/sql/SqlError.js +15 -15
  1430. package/dist/unstable/sql/SqlError.js.map +1 -1
  1431. package/dist/unstable/sql/SqlModel.d.ts +2 -2
  1432. package/dist/unstable/sql/SqlModel.js +2 -2
  1433. package/dist/unstable/sql/SqlModel.js.map +1 -1
  1434. package/dist/unstable/sql/SqlResolver.d.ts +5 -5
  1435. package/dist/unstable/sql/SqlResolver.d.ts.map +1 -1
  1436. package/dist/unstable/sql/SqlResolver.js +33 -26
  1437. package/dist/unstable/sql/SqlResolver.js.map +1 -1
  1438. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  1439. package/dist/unstable/sql/SqlStream.js.map +1 -1
  1440. package/dist/unstable/sql/Statement.d.ts +6 -6
  1441. package/dist/unstable/sql/Statement.d.ts.map +1 -1
  1442. package/dist/unstable/sql/Statement.js +30 -27
  1443. package/dist/unstable/sql/Statement.js.map +1 -1
  1444. package/dist/unstable/sql/index.js.map +1 -1
  1445. package/dist/unstable/workers/Transferable.d.ts +1 -1
  1446. package/dist/unstable/workers/Transferable.js +1 -1
  1447. package/dist/unstable/workers/Transferable.js.map +1 -1
  1448. package/dist/unstable/workers/Worker.d.ts +2 -2
  1449. package/dist/unstable/workers/Worker.d.ts.map +1 -1
  1450. package/dist/unstable/workers/Worker.js +13 -14
  1451. package/dist/unstable/workers/Worker.js.map +1 -1
  1452. package/dist/unstable/workers/WorkerError.d.ts +7 -7
  1453. package/dist/unstable/workers/WorkerError.js +11 -11
  1454. package/dist/unstable/workers/WorkerError.js.map +1 -1
  1455. package/dist/unstable/workers/WorkerRunner.d.ts +1 -1
  1456. package/dist/unstable/workers/WorkerRunner.js +1 -1
  1457. package/dist/unstable/workers/WorkerRunner.js.map +1 -1
  1458. package/dist/unstable/workers/index.js.map +1 -1
  1459. package/dist/unstable/workflow/Activity.d.ts +2 -2
  1460. package/dist/unstable/workflow/Activity.js +2 -2
  1461. package/dist/unstable/workflow/Activity.js.map +1 -1
  1462. package/dist/unstable/workflow/DurableClock.d.ts +1 -1
  1463. package/dist/unstable/workflow/DurableClock.js +1 -1
  1464. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  1465. package/dist/unstable/workflow/DurableDeferred.d.ts +10 -10
  1466. package/dist/unstable/workflow/DurableDeferred.d.ts.map +1 -1
  1467. package/dist/unstable/workflow/DurableDeferred.js +13 -8
  1468. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  1469. package/dist/unstable/workflow/DurableQueue.d.ts +22 -20
  1470. package/dist/unstable/workflow/DurableQueue.d.ts.map +1 -1
  1471. package/dist/unstable/workflow/DurableQueue.js +22 -20
  1472. package/dist/unstable/workflow/DurableQueue.js.map +1 -1
  1473. package/dist/unstable/workflow/Workflow.d.ts +21 -21
  1474. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  1475. package/dist/unstable/workflow/Workflow.js +13 -14
  1476. package/dist/unstable/workflow/Workflow.js.map +1 -1
  1477. package/dist/unstable/workflow/WorkflowEngine.d.ts +26 -3
  1478. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  1479. package/dist/unstable/workflow/WorkflowEngine.js +72 -6
  1480. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  1481. package/dist/unstable/workflow/WorkflowProxy.d.ts +4 -2
  1482. package/dist/unstable/workflow/WorkflowProxy.d.ts.map +1 -1
  1483. package/dist/unstable/workflow/WorkflowProxy.js +4 -2
  1484. package/dist/unstable/workflow/WorkflowProxy.js.map +1 -1
  1485. package/dist/unstable/workflow/WorkflowProxyServer.js.map +1 -1
  1486. package/dist/unstable/workflow/index.js.map +1 -1
  1487. package/dist/unstable/workflow/internal/crypto.js.map +1 -1
  1488. package/package.json +10 -16
  1489. package/src/Array.ts +1068 -1070
  1490. package/src/BigDecimal.ts +433 -756
  1491. package/src/BigInt.ts +213 -269
  1492. package/src/Boolean.ts +146 -188
  1493. package/src/Brand.ts +4 -4
  1494. package/src/Cache.ts +469 -851
  1495. package/src/Cause.ts +167 -277
  1496. package/src/Channel.ts +982 -831
  1497. package/src/ChannelSchema.ts +1 -1
  1498. package/src/Chunk.ts +841 -1181
  1499. package/src/Clock.ts +181 -49
  1500. package/src/Combiner.ts +20 -33
  1501. package/src/Config.ts +642 -335
  1502. package/src/ConfigProvider.ts +267 -135
  1503. package/src/Console.ts +289 -39
  1504. package/src/Context.ts +336 -405
  1505. package/src/Cron.ts +271 -219
  1506. package/src/Crypto.ts +33 -63
  1507. package/src/Data.ts +63 -82
  1508. package/src/DateTime.ts +564 -660
  1509. package/src/Deferred.ts +259 -258
  1510. package/src/Duration.ts +244 -311
  1511. package/src/Effect.ts +3241 -3410
  1512. package/src/Encoding.ts +22 -40
  1513. package/src/Equal.ts +59 -41
  1514. package/src/Equivalence.ts +103 -105
  1515. package/src/ErrorReporter.ts +52 -28
  1516. package/src/ExecutionPlan.ts +91 -56
  1517. package/src/Exit.ts +116 -192
  1518. package/src/Fiber.ts +82 -149
  1519. package/src/FiberHandle.ts +155 -107
  1520. package/src/FiberMap.ts +225 -174
  1521. package/src/FiberSet.ts +125 -83
  1522. package/src/FileSystem.ts +156 -264
  1523. package/src/Filter.ts +61 -33
  1524. package/src/Formatter.ts +69 -76
  1525. package/src/Function.ts +119 -151
  1526. package/src/Graph.ts +416 -770
  1527. package/src/HKT.ts +12 -6
  1528. package/src/Hash.ts +52 -83
  1529. package/src/HashMap.ts +319 -411
  1530. package/src/HashRing.ts +1 -0
  1531. package/src/HashSet.ts +177 -284
  1532. package/src/Inspectable.ts +22 -20
  1533. package/src/Iterable.ts +633 -797
  1534. package/src/JsonPatch.ts +60 -113
  1535. package/src/JsonPointer.ts +8 -8
  1536. package/src/JsonSchema.ts +408 -251
  1537. package/src/Latch.ts +23 -35
  1538. package/src/Layer.ts +369 -268
  1539. package/src/LayerMap.ts +49 -29
  1540. package/src/LayerRef.ts +6 -2
  1541. package/src/LogLevel.ts +114 -214
  1542. package/src/Logger.ts +349 -701
  1543. package/src/ManagedRuntime.ts +20 -5
  1544. package/src/Match.ts +217 -252
  1545. package/src/Metric.ts +520 -1092
  1546. package/src/MutableHashMap.ts +218 -255
  1547. package/src/MutableHashSet.ts +84 -89
  1548. package/src/MutableList.ts +77 -370
  1549. package/src/MutableRef.ts +420 -243
  1550. package/src/Newtype.ts +21 -14
  1551. package/src/NonEmptyIterable.ts +7 -137
  1552. package/src/Number.ts +196 -233
  1553. package/src/Optic.ts +303 -441
  1554. package/src/Option.ts +449 -813
  1555. package/src/Order.ts +109 -109
  1556. package/src/Ordering.ts +20 -23
  1557. package/src/PartitionedSemaphore.ts +1 -4
  1558. package/src/Path.ts +38 -41
  1559. package/src/Pipeable.ts +6 -5
  1560. package/src/PlatformError.ts +4 -4
  1561. package/src/Pool.ts +4 -2
  1562. package/src/Predicate.ts +200 -181
  1563. package/src/PrimaryKey.ts +7 -7
  1564. package/src/PubSub.ts +526 -552
  1565. package/src/Pull.ts +24 -18
  1566. package/src/Queue.ts +204 -165
  1567. package/src/Random.ts +49 -74
  1568. package/src/RcMap.ts +121 -63
  1569. package/src/RcRef.ts +24 -13
  1570. package/src/Record.ts +387 -487
  1571. package/src/Redactable.ts +10 -3
  1572. package/src/Redacted.ts +25 -25
  1573. package/src/Reducer.ts +8 -15
  1574. package/src/Ref.ts +221 -361
  1575. package/src/References.ts +102 -214
  1576. package/src/RegExp.ts +10 -14
  1577. package/src/Request.ts +36 -28
  1578. package/src/RequestResolver.ts +202 -91
  1579. package/src/Result.ts +314 -485
  1580. package/src/Runtime.ts +50 -75
  1581. package/src/Schedule.ts +311 -1737
  1582. package/src/Scheduler.ts +20 -7
  1583. package/src/Schema.ts +3475 -1913
  1584. package/src/SchemaAST.ts +902 -573
  1585. package/src/SchemaGetter.ts +351 -233
  1586. package/src/SchemaIssue.ts +367 -334
  1587. package/src/SchemaParser.ts +254 -148
  1588. package/src/SchemaRepresentation.ts +732 -3414
  1589. package/src/SchemaTransformation.ts +186 -97
  1590. package/src/Scope.ts +123 -151
  1591. package/src/ScopedCache.ts +1 -1
  1592. package/src/ScopedRef.ts +6 -4
  1593. package/src/Semaphore.ts +157 -54
  1594. package/src/Sink.ts +129 -114
  1595. package/src/Stdio.ts +24 -5
  1596. package/src/Stream.ts +2745 -3173
  1597. package/src/String.ts +275 -312
  1598. package/src/Struct.ts +114 -118
  1599. package/src/SubscriptionRef.ts +284 -252
  1600. package/src/Symbol.ts +3 -3
  1601. package/src/SynchronizedRef.ts +1 -1
  1602. package/src/Terminal.ts +3 -3
  1603. package/src/Tracer.ts +102 -55
  1604. package/src/Trie.ts +287 -679
  1605. package/src/Tuple.ts +99 -131
  1606. package/src/TxChunk.ts +201 -121
  1607. package/src/TxDeferred.ts +62 -46
  1608. package/src/TxHashMap.ts +645 -799
  1609. package/src/TxHashSet.ts +443 -356
  1610. package/src/TxPriorityQueue.ts +130 -98
  1611. package/src/TxPubSub.ts +107 -80
  1612. package/src/TxQueue.ts +215 -184
  1613. package/src/TxReentrantLock.ts +136 -101
  1614. package/src/TxRef.ts +51 -32
  1615. package/src/TxSemaphore.ts +129 -95
  1616. package/src/TxSubscriptionRef.ts +97 -70
  1617. package/src/Types.ts +127 -70
  1618. package/src/Unify.ts +45 -65
  1619. package/src/Utils.ts +23 -16
  1620. package/src/index.ts +0 -10
  1621. package/src/internal/core.ts +6 -5
  1622. package/src/internal/dateTime.ts +7 -1
  1623. package/src/internal/effect.ts +319 -149
  1624. package/src/internal/executionPlan.ts +106 -10
  1625. package/src/internal/hashMap.ts +20 -14
  1626. package/src/internal/matcher.ts +3 -3
  1627. package/src/internal/persistence.ts +2 -0
  1628. package/src/internal/rcRef.ts +24 -16
  1629. package/src/internal/record.ts +11 -7
  1630. package/src/internal/references.ts +3 -7
  1631. package/src/internal/schedule.ts +4 -4
  1632. package/src/internal/schema/annotations.ts +48 -1
  1633. package/src/internal/schema/fromJsonSchemaDocument.ts +977 -0
  1634. package/src/internal/schema/fromRepresentation.ts +339 -0
  1635. package/src/internal/schema/parser.ts +22 -0
  1636. package/src/internal/schema/schema.ts +46 -63
  1637. package/src/internal/schema/{arbitrary.ts → toArbitrary.ts} +9 -81
  1638. package/src/internal/schema/toCodeDocument.ts +572 -0
  1639. package/src/internal/schema/{equivalence.ts → toEquivalence.ts} +12 -7
  1640. package/src/internal/schema/toJsonSchemaDocument.ts +549 -0
  1641. package/src/internal/schema/toRepresentation.ts +404 -0
  1642. package/src/internal/stackTraceLimit.ts +3 -7
  1643. package/src/internal/trie.ts +21 -12
  1644. package/src/internal/uuid.ts +51 -0
  1645. package/src/testing/FastCheck.ts +8 -7
  1646. package/src/testing/TestClock.ts +103 -36
  1647. package/src/testing/TestConsole.ts +32 -31
  1648. package/src/testing/TestSchema.ts +40 -40
  1649. package/src/unstable/ai/AiError.ts +119 -141
  1650. package/src/unstable/ai/AnthropicStructuredOutput.ts +103 -334
  1651. package/src/unstable/ai/Chat.ts +133 -98
  1652. package/src/unstable/ai/EmbeddingModel.ts +1 -1
  1653. package/src/unstable/ai/IdGenerator.ts +32 -28
  1654. package/src/unstable/ai/LanguageModel.ts +141 -97
  1655. package/src/unstable/ai/McpProtocol.ts +137 -0
  1656. package/src/unstable/ai/McpSchema.ts +199 -100
  1657. package/src/unstable/ai/McpServer.ts +1360 -455
  1658. package/src/unstable/ai/Model.ts +9 -20
  1659. package/src/unstable/ai/OpenAiStructuredOutput.ts +231 -396
  1660. package/src/unstable/ai/Prompt.ts +212 -63
  1661. package/src/unstable/ai/Response.ts +52 -38
  1662. package/src/unstable/ai/Telemetry.ts +46 -13
  1663. package/src/unstable/ai/Tokenizer.ts +14 -3
  1664. package/src/unstable/ai/Tool.ts +81 -48
  1665. package/src/unstable/ai/Toolkit.ts +45 -15
  1666. package/src/unstable/ai/index.ts +5 -0
  1667. package/src/unstable/ai/internal/codec-transformer.ts +13 -7
  1668. package/src/unstable/ai/internal/mcpCore.ts +457 -0
  1669. package/src/unstable/ai/internal/mcpProtocol/v2024_11_05.ts +321 -0
  1670. package/src/unstable/ai/internal/mcpProtocol/v2025_03_26.ts +347 -0
  1671. package/src/unstable/ai/internal/mcpProtocol/v2025_06_18.ts +361 -0
  1672. package/src/unstable/ai/internal/mcpProtocol.ts +336 -0
  1673. package/src/unstable/ai/internal/mcpProtocolRegistry.ts +102 -0
  1674. package/src/unstable/ai/internal/mcpSchema/v2024_11_05.ts +521 -0
  1675. package/src/unstable/ai/internal/mcpSchema/v2025_03_26.ts +204 -0
  1676. package/src/unstable/ai/internal/mcpSchema/v2025_06_18.ts +404 -0
  1677. package/src/unstable/ai/internal/structured-output.ts +453 -0
  1678. package/src/unstable/cli/Argument.ts +279 -72
  1679. package/src/unstable/cli/CliError.ts +159 -91
  1680. package/src/unstable/cli/CliOutput.ts +44 -58
  1681. package/src/unstable/cli/Command.ts +764 -124
  1682. package/src/unstable/cli/Flag.ts +418 -138
  1683. package/src/unstable/cli/GlobalFlag.ts +1 -1
  1684. package/src/unstable/cli/HelpDoc.ts +12 -4
  1685. package/src/unstable/cli/Param.ts +336 -100
  1686. package/src/unstable/cli/Primitive.ts +383 -156
  1687. package/src/unstable/cli/Prompt.ts +64 -34
  1688. package/src/unstable/cli/internal/ansi.ts +2 -2
  1689. package/src/unstable/cli/internal/command.ts +28 -15
  1690. package/src/unstable/cli/internal/completions/bash.ts +59 -9
  1691. package/src/unstable/cli/internal/completions/descriptor.ts +14 -20
  1692. package/src/unstable/cli/internal/completions/fish.ts +5 -7
  1693. package/src/unstable/cli/internal/config.ts +8 -10
  1694. package/src/unstable/cli/internal/help.ts +4 -2
  1695. package/src/unstable/cli/internal/lexer.ts +8 -2
  1696. package/src/unstable/cli/internal/parser.ts +5 -5
  1697. package/src/unstable/cli/internal/wizard.ts +2 -2
  1698. package/src/unstable/cluster/ClusterError.ts +10 -8
  1699. package/src/unstable/cluster/ClusterSchema.ts +8 -8
  1700. package/src/unstable/cluster/ClusterWorkflowEngine.ts +65 -39
  1701. package/src/unstable/cluster/Entity.ts +23 -19
  1702. package/src/unstable/cluster/EntityProxy.ts +16 -7
  1703. package/src/unstable/cluster/EntityResource.ts +5 -5
  1704. package/src/unstable/cluster/Envelope.ts +5 -4
  1705. package/src/unstable/cluster/HttpRunner.ts +6 -4
  1706. package/src/unstable/cluster/K8sHttpClient.ts +2 -2
  1707. package/src/unstable/cluster/K8sTypes.ts +2467 -0
  1708. package/src/unstable/cluster/Message.ts +9 -9
  1709. package/src/unstable/cluster/MessageStorage.ts +106 -33
  1710. package/src/unstable/cluster/Reply.ts +26 -7
  1711. package/src/unstable/cluster/Runner.ts +1 -1
  1712. package/src/unstable/cluster/RunnerAddress.ts +1 -1
  1713. package/src/unstable/cluster/RunnerHealth.ts +1 -1
  1714. package/src/unstable/cluster/RunnerServer.ts +45 -18
  1715. package/src/unstable/cluster/RunnerStorage.ts +11 -9
  1716. package/src/unstable/cluster/Runners.ts +48 -26
  1717. package/src/unstable/cluster/ShardId.ts +1 -1
  1718. package/src/unstable/cluster/Sharding.ts +360 -65
  1719. package/src/unstable/cluster/ShardingConfig.ts +46 -4
  1720. package/src/unstable/cluster/SingleRunner.ts +4 -2
  1721. package/src/unstable/cluster/SingletonAddress.ts +1 -1
  1722. package/src/unstable/cluster/Snowflake.ts +8 -8
  1723. package/src/unstable/cluster/SqlMessageStorage.ts +212 -60
  1724. package/src/unstable/cluster/SqlRunnerStorage.ts +223 -133
  1725. package/src/unstable/cluster/index.ts +5 -0
  1726. package/src/unstable/cluster/internal/entityManager.ts +72 -27
  1727. package/src/unstable/cluster/internal/entityReaper.ts +2 -3
  1728. package/src/unstable/cluster/internal/resourceMap.ts +13 -2
  1729. package/src/unstable/cluster/internal/resourceRef.ts +27 -5
  1730. package/src/unstable/cluster/internal/shardLock.ts +9 -0
  1731. package/src/unstable/devtools/DevToolsClient.ts +3 -2
  1732. package/src/unstable/devtools/DevToolsSchema.ts +10 -5
  1733. package/src/unstable/encoding/Ini.ts +174 -0
  1734. package/src/unstable/encoding/Msgpack.ts +61 -40
  1735. package/src/unstable/encoding/Ndjson.ts +9 -1
  1736. package/src/unstable/encoding/Sse.ts +109 -37
  1737. package/src/unstable/encoding/Toml.ts +504 -0
  1738. package/src/unstable/encoding/Yaml.ts +541 -0
  1739. package/src/unstable/encoding/index.ts +15 -0
  1740. package/src/unstable/eventlog/Event.ts +20 -20
  1741. package/src/unstable/eventlog/EventGroup.ts +4 -4
  1742. package/src/unstable/eventlog/EventJournal.ts +33 -25
  1743. package/src/unstable/eventlog/EventLog.ts +24 -14
  1744. package/src/unstable/eventlog/EventLogEncryption.ts +17 -18
  1745. package/src/unstable/eventlog/EventLogMessage.ts +15 -9
  1746. package/src/unstable/eventlog/EventLogRemote.ts +5 -5
  1747. package/src/unstable/eventlog/EventLogServer.ts +41 -7
  1748. package/src/unstable/eventlog/EventLogServerEncrypted.ts +16 -8
  1749. package/src/unstable/eventlog/EventLogServerUnencrypted.ts +15 -7
  1750. package/src/unstable/eventlog/EventLogSessionAuth.ts +1 -1
  1751. package/src/unstable/eventlog/SqlEventJournal.ts +9 -7
  1752. package/src/unstable/eventlog/SqlEventLogServerEncrypted.ts +1 -1
  1753. package/src/unstable/eventlog/SqlEventLogServerUnencrypted.ts +6 -3
  1754. package/src/unstable/http/Cookies.ts +64 -45
  1755. package/src/unstable/http/Etag.ts +1 -1
  1756. package/src/unstable/http/FetchHttpClient.ts +4 -2
  1757. package/src/unstable/http/FindMyWay/internal/queryString.ts +420 -0
  1758. package/src/unstable/http/FindMyWay/internal/router.ts +950 -0
  1759. package/src/unstable/http/FindMyWay.ts +65 -6
  1760. package/src/unstable/http/Headers.ts +10 -10
  1761. package/src/unstable/http/HttpBody.ts +20 -5
  1762. package/src/unstable/http/HttpClient.ts +215 -78
  1763. package/src/unstable/http/HttpClientError.ts +1 -1
  1764. package/src/unstable/http/HttpClientRequest.ts +59 -12
  1765. package/src/unstable/http/HttpClientResponse.ts +5 -21
  1766. package/src/unstable/http/HttpEffect.ts +27 -26
  1767. package/src/unstable/http/HttpMethod.ts +6 -9
  1768. package/src/unstable/http/HttpMiddleware.ts +202 -39
  1769. package/src/unstable/http/HttpPlatform.ts +129 -6
  1770. package/src/unstable/http/HttpRouter.ts +110 -102
  1771. package/src/unstable/http/HttpServer.ts +13 -13
  1772. package/src/unstable/http/HttpServerError.ts +2 -2
  1773. package/src/unstable/http/HttpServerRequest.ts +31 -17
  1774. package/src/unstable/http/HttpServerResponse.ts +38 -6
  1775. package/src/unstable/http/HttpStaticServer.ts +35 -7
  1776. package/src/unstable/http/HttpStatus.ts +100 -0
  1777. package/src/unstable/http/Multipart.ts +67 -36
  1778. package/src/unstable/http/MultipartParser/HeadersParser.ts +68 -0
  1779. package/src/unstable/http/MultipartParser/Search.ts +17 -0
  1780. package/src/unstable/http/MultipartParser/internal/contentType.ts +103 -0
  1781. package/src/unstable/http/MultipartParser/internal/headers.ts +244 -0
  1782. package/src/unstable/http/MultipartParser/internal/multipart.ts +279 -0
  1783. package/src/unstable/http/MultipartParser/internal/search.ts +167 -0
  1784. package/src/unstable/http/MultipartParser.ts +115 -0
  1785. package/src/unstable/http/Template.ts +7 -6
  1786. package/src/unstable/http/Url.ts +33 -63
  1787. package/src/unstable/http/UrlParams.ts +27 -32
  1788. package/src/unstable/http/index.ts +6 -1
  1789. package/src/unstable/http/internal/compression.ts +196 -0
  1790. package/src/unstable/http/internal/httpBody.ts +15 -0
  1791. package/src/unstable/httpapi/HttpApi.ts +10 -11
  1792. package/src/unstable/httpapi/HttpApiBuilder.ts +154 -33
  1793. package/src/unstable/httpapi/HttpApiClient.ts +142 -61
  1794. package/src/unstable/httpapi/HttpApiEndpoint.ts +159 -71
  1795. package/src/unstable/httpapi/HttpApiError.ts +46 -52
  1796. package/src/unstable/httpapi/HttpApiGroup.ts +17 -17
  1797. package/src/unstable/httpapi/HttpApiMiddleware.ts +71 -24
  1798. package/src/unstable/httpapi/HttpApiScalar.ts +0 -12
  1799. package/src/unstable/httpapi/HttpApiSchema.ts +362 -73
  1800. package/src/unstable/httpapi/OpenApi.ts +153 -62
  1801. package/src/unstable/observability/OtlpExporter.ts +130 -12
  1802. package/src/unstable/observability/OtlpLogger.ts +8 -6
  1803. package/src/unstable/observability/OtlpMetrics.ts +42 -21
  1804. package/src/unstable/observability/OtlpResource.ts +26 -17
  1805. package/src/unstable/observability/OtlpTracer.ts +9 -5
  1806. package/src/unstable/observability/PrometheusMetrics.ts +13 -4
  1807. package/src/unstable/observability/internal/otlpEnv.ts +1 -1
  1808. package/src/unstable/observability/internal/protobuf.ts +3 -0
  1809. package/src/unstable/persistence/KeyValueStore.ts +72 -49
  1810. package/src/unstable/persistence/Persistable.ts +11 -10
  1811. package/src/unstable/persistence/PersistedQueue.ts +129 -108
  1812. package/src/unstable/persistence/Persistence.ts +153 -26
  1813. package/src/unstable/persistence/RateLimiter.ts +79 -45
  1814. package/src/unstable/persistence/Redis.ts +5 -5
  1815. package/src/unstable/process/ChildProcess.ts +72 -21
  1816. package/src/unstable/process/ChildProcessSpawner.ts +22 -11
  1817. package/src/unstable/reactivity/AsyncResult.ts +23 -18
  1818. package/src/unstable/reactivity/Atom.ts +170 -56
  1819. package/src/unstable/reactivity/AtomHttpApi.ts +5 -4
  1820. package/src/unstable/reactivity/AtomRegistry.ts +25 -4
  1821. package/src/unstable/reactivity/AtomRpc.ts +5 -4
  1822. package/src/unstable/reactivity/Hydration.ts +1 -1
  1823. package/src/unstable/reactivity/Reactivity.ts +1 -1
  1824. package/src/unstable/rpc/Rpc.ts +35 -33
  1825. package/src/unstable/rpc/RpcClient.ts +66 -30
  1826. package/src/unstable/rpc/RpcClientError.ts +2 -2
  1827. package/src/unstable/rpc/RpcGroup.ts +9 -9
  1828. package/src/unstable/rpc/RpcMessage.ts +31 -30
  1829. package/src/unstable/rpc/RpcMiddleware.ts +10 -10
  1830. package/src/unstable/rpc/RpcSchema.ts +4 -4
  1831. package/src/unstable/rpc/RpcSerialization.ts +168 -69
  1832. package/src/unstable/rpc/RpcServer.ts +28 -22
  1833. package/src/unstable/rpc/RpcWorker.ts +5 -5
  1834. package/src/unstable/schema/Model.ts +60 -58
  1835. package/src/unstable/schema/VariantSchema.ts +51 -43
  1836. package/src/unstable/socket/Socket.ts +42 -19
  1837. package/src/unstable/sql/Migrator.ts +22 -9
  1838. package/src/unstable/sql/SqlClient.ts +71 -60
  1839. package/src/unstable/sql/SqlError.ts +15 -15
  1840. package/src/unstable/sql/SqlModel.ts +2 -2
  1841. package/src/unstable/sql/SqlResolver.ts +44 -33
  1842. package/src/unstable/sql/Statement.ts +44 -37
  1843. package/src/unstable/workers/Transferable.ts +1 -1
  1844. package/src/unstable/workers/Worker.ts +15 -16
  1845. package/src/unstable/workers/WorkerError.ts +12 -12
  1846. package/src/unstable/workers/WorkerRunner.ts +1 -1
  1847. package/src/unstable/workflow/Activity.ts +2 -2
  1848. package/src/unstable/workflow/DurableClock.ts +1 -1
  1849. package/src/unstable/workflow/DurableDeferred.ts +18 -13
  1850. package/src/unstable/workflow/DurableQueue.ts +22 -20
  1851. package/src/unstable/workflow/Workflow.ts +23 -26
  1852. package/src/unstable/workflow/WorkflowEngine.ts +111 -8
  1853. package/src/unstable/workflow/WorkflowProxy.ts +4 -2
  1854. package/dist/SchemaError.d.ts +0 -53
  1855. package/dist/SchemaError.d.ts.map +0 -1
  1856. package/dist/SchemaError.js +0 -61
  1857. package/dist/SchemaError.js.map +0 -1
  1858. package/dist/SchemaUtils.d.ts +0 -28
  1859. package/dist/SchemaUtils.d.ts.map +0 -1
  1860. package/dist/SchemaUtils.js +0 -45
  1861. package/dist/SchemaUtils.js.map +0 -1
  1862. package/dist/internal/schema/arbitrary.d.ts +0 -5
  1863. package/dist/internal/schema/arbitrary.d.ts.map +0 -1
  1864. package/dist/internal/schema/arbitrary.js.map +0 -1
  1865. package/dist/internal/schema/equivalence.d.ts +0 -2
  1866. package/dist/internal/schema/equivalence.d.ts.map +0 -1
  1867. package/dist/internal/schema/equivalence.js.map +0 -1
  1868. package/dist/internal/schema/representation.d.ts +0 -2
  1869. package/dist/internal/schema/representation.d.ts.map +0 -1
  1870. package/dist/internal/schema/representation.js +0 -865
  1871. package/dist/internal/schema/representation.js.map +0 -1
  1872. package/dist/internal/version.d.ts +0 -3
  1873. package/dist/internal/version.d.ts.map +0 -1
  1874. package/dist/internal/version.js +0 -2
  1875. package/dist/internal/version.js.map +0 -1
  1876. package/dist/unstable/http/Multipasta/HeadersParser.d.ts +0 -14
  1877. package/dist/unstable/http/Multipasta/HeadersParser.d.ts.map +0 -1
  1878. package/dist/unstable/http/Multipasta/HeadersParser.js +0 -14
  1879. package/dist/unstable/http/Multipasta/HeadersParser.js.map +0 -1
  1880. package/dist/unstable/http/Multipasta/Node.d.ts +0 -14
  1881. package/dist/unstable/http/Multipasta/Node.d.ts.map +0 -1
  1882. package/dist/unstable/http/Multipasta/Node.js +0 -14
  1883. package/dist/unstable/http/Multipasta/Node.js.map +0 -1
  1884. package/dist/unstable/http/Multipasta/Search.d.ts +0 -14
  1885. package/dist/unstable/http/Multipasta/Search.d.ts.map +0 -1
  1886. package/dist/unstable/http/Multipasta/Search.js +0 -14
  1887. package/dist/unstable/http/Multipasta/Search.js.map +0 -1
  1888. package/dist/unstable/http/Multipasta/Web.d.ts +0 -14
  1889. package/dist/unstable/http/Multipasta/Web.d.ts.map +0 -1
  1890. package/dist/unstable/http/Multipasta/Web.js +0 -14
  1891. package/dist/unstable/http/Multipasta/Web.js.map +0 -1
  1892. package/dist/unstable/http/Multipasta.d.ts +0 -15
  1893. package/dist/unstable/http/Multipasta.d.ts.map +0 -1
  1894. package/dist/unstable/http/Multipasta.js +0 -15
  1895. package/dist/unstable/http/Multipasta.js.map +0 -1
  1896. package/src/SchemaError.ts +0 -64
  1897. package/src/SchemaUtils.ts +0 -51
  1898. package/src/internal/schema/representation.ts +0 -795
  1899. package/src/internal/version.ts +0 -2
  1900. package/src/unstable/http/Multipasta/HeadersParser.ts +0 -14
  1901. package/src/unstable/http/Multipasta/Node.ts +0 -14
  1902. package/src/unstable/http/Multipasta/Search.ts +0 -14
  1903. package/src/unstable/http/Multipasta/Web.ts +0 -14
  1904. package/src/unstable/http/Multipasta.ts +0 -15
package/src/Context.ts CHANGED
@@ -17,7 +17,6 @@ import { dual, type LazyArg } from "./Function.ts"
17
17
  import * as Hash from "./Hash.ts"
18
18
  import type { Inspectable } from "./Inspectable.ts"
19
19
  import { exitSucceed, PipeInspectableProto, withFiber } from "./internal/core.ts"
20
- import { getStackTraceLimit, setStackTraceLimit } from "./internal/stackTraceLimit.ts"
21
20
  import * as Option from "./Option.ts"
22
21
  import type { Pipeable } from "./Pipeable.ts"
23
22
  import { hasProperty } from "./Predicate.ts"
@@ -67,7 +66,6 @@ export interface Key<out Identifier, out Shape> extends Effect<Shape, never, Ide
67
66
  readonly Service: Shape
68
67
  readonly Identifier: Identifier
69
68
  readonly key: string
70
- readonly stack?: string | undefined
71
69
  }
72
70
 
73
71
  /**
@@ -81,7 +79,7 @@ export interface Key<out Identifier, out Shape> extends Effect<Shape, never, Ide
81
79
  *
82
80
  * **Example** (Defining a service key)
83
81
  *
84
- * ```ts
82
+ * ```ts import.meta.vitest
85
83
  * import { Context } from "effect"
86
84
  *
87
85
  * // Define an identifier for a database service
@@ -91,9 +89,10 @@ export interface Key<out Identifier, out Shape> extends Effect<Shape, never, Ide
91
89
  *
92
90
  * // The key can be used to store and retrieve services
93
91
  * const context = Context.make(Database, { query: (sql) => `Result: ${sql}` })
92
+ * Context.get(context, Database).query("SELECT 1") // => "Result: SELECT 1"
94
93
  * ```
95
94
  *
96
- * @category models
95
+ * @category services
97
96
  * @since 4.0.0
98
97
  */
99
98
  export interface Service<in out Identifier, in out Shape> extends Key<Identifier, Shape> {
@@ -118,7 +117,7 @@ export interface Service<in out Identifier, in out Shape> extends Key<Identifier
118
117
  *
119
118
  * @see {@link Service} for creating function-style keys or class-style service keys
120
119
  *
121
- * @category models
120
+ * @category services
122
121
  * @since 4.0.0
123
122
  */
124
123
  export interface ServiceClass<in out Self, in out Identifier extends string, in out Shape>
@@ -139,7 +138,7 @@ export declare namespace ServiceClass {
139
138
  * Runtime and type-level metadata carried by a class-style service key,
140
139
  * including its service type identifier, string key, and service shape.
141
140
  *
142
- * @category models
141
+ * @category services
143
142
  * @since 4.0.0
144
143
  */
145
144
  export interface Shape<Identifier extends string, Service> {
@@ -172,7 +171,7 @@ export declare namespace ServiceClass {
172
171
  *
173
172
  * **Example** (Creating service keys)
174
173
  *
175
- * ```ts
174
+ * ```ts import.meta.vitest
176
175
  * import { Context } from "effect"
177
176
  *
178
177
  * // Create a simple service
@@ -190,11 +189,13 @@ export declare namespace ServiceClass {
190
189
  * query: (sql) => `Result: ${sql}`
191
190
  * })
192
191
  * const config = Context.make(Config, { port: 8080 })
192
+ * Context.get(db, Database).query("SELECT 1") // => "Result: SELECT 1"
193
+ * Context.get(config, Config).port // => 8080
193
194
  * ```
194
195
  *
195
196
  * @see {@link Reference} for service keys with default values
196
197
  *
197
- * @category constructors
198
+ * @category services
198
199
  * @since 4.0.0
199
200
  */
200
201
  export const Service: {
@@ -221,7 +222,7 @@ export const Service: {
221
222
  *
222
223
  * **Example** (Creating service keys)
223
224
  *
224
- * ```ts
225
+ * ```ts import.meta.vitest
225
226
  * import { Context } from "effect"
226
227
  *
227
228
  * // Create a simple service
@@ -239,14 +240,22 @@ export const Service: {
239
240
  * query: (sql) => `Result: ${sql}`
240
241
  * })
241
242
  * const config = Context.make(Config, { port: 8080 })
243
+ * Context.get(db, Database).query("SELECT 1") // => "Result: SELECT 1"
244
+ * Context.get(config, Config).port // => 8080
242
245
  * ```
243
246
  *
244
247
  * @see {@link Reference} for service keys with default values
245
248
  *
246
- * @category constructors
249
+ * @category services
247
250
  * @since 4.0.0
248
251
  */
249
- <Identifier, Shape = Identifier>(key: string): Service<Identifier, Shape>
252
+ <Identifier, Shape = Identifier>(
253
+ key: string,
254
+ options?: {
255
+ /** @internal */
256
+ readonly fiberCached?: boolean | undefined
257
+ } | undefined
258
+ ): Service<Identifier, Shape>
250
259
  /**
251
260
  * Creates a `Context` service key.
252
261
  *
@@ -270,7 +279,7 @@ export const Service: {
270
279
  *
271
280
  * **Example** (Creating service keys)
272
281
  *
273
- * ```ts
282
+ * ```ts import.meta.vitest
274
283
  * import { Context } from "effect"
275
284
  *
276
285
  * // Create a simple service
@@ -288,11 +297,13 @@ export const Service: {
288
297
  * query: (sql) => `Result: ${sql}`
289
298
  * })
290
299
  * const config = Context.make(Config, { port: 8080 })
300
+ * Context.get(db, Database).query("SELECT 1") // => "Result: SELECT 1"
301
+ * Context.get(config, Config).port // => 8080
291
302
  * ```
292
303
  *
293
304
  * @see {@link Reference} for service keys with default values
294
305
  *
295
- * @category constructors
306
+ * @category services
296
307
  * @since 4.0.0
297
308
  */
298
309
  <Self, Shape>(): <
@@ -303,7 +314,9 @@ export const Service: {
303
314
  >(
304
315
  id: Identifier,
305
316
  options?: {
306
- readonly make: ((...args: Args) => Effect<Shape, E, R>) | Effect<Shape, E, R> | undefined
317
+ readonly make?: ((...args: Args) => Effect<Shape, E, R>) | Effect<Shape, E, R> | undefined
318
+ /** @internal */
319
+ readonly fiberCached?: boolean | undefined
307
320
  } | undefined
308
321
  ) =>
309
322
  & ServiceClass<Self, Identifier, Shape>
@@ -332,7 +345,7 @@ export const Service: {
332
345
  *
333
346
  * **Example** (Creating service keys)
334
347
  *
335
- * ```ts
348
+ * ```ts import.meta.vitest
336
349
  * import { Context } from "effect"
337
350
  *
338
351
  * // Create a simple service
@@ -350,11 +363,13 @@ export const Service: {
350
363
  * query: (sql) => `Result: ${sql}`
351
364
  * })
352
365
  * const config = Context.make(Config, { port: 8080 })
366
+ * Context.get(db, Database).query("SELECT 1") // => "Result: SELECT 1"
367
+ * Context.get(config, Config).port // => 8080
353
368
  * ```
354
369
  *
355
370
  * @see {@link Reference} for service keys with default values
356
371
  *
357
- * @category constructors
372
+ * @category services
358
373
  * @since 4.0.0
359
374
  */
360
375
  <Self>(): <
@@ -364,6 +379,8 @@ export const Service: {
364
379
  id: Identifier,
365
380
  options: {
366
381
  readonly make: Make
382
+ /** @internal */
383
+ readonly fiberCached?: boolean | undefined
367
384
  }
368
385
  ) =>
369
386
  & ServiceClass<
@@ -375,36 +392,28 @@ export const Service: {
375
392
  >
376
393
  & { readonly make: Make }
377
394
  } = function() {
378
- const prevLimit = getStackTraceLimit()
379
- setStackTraceLimit(2)
380
- const err = new Error()
381
- setStackTraceLimit(prevLimit)
382
395
  function KeyClass() {}
383
396
  const self = KeyClass as any as Types.Mutable<Reference<any>>
384
397
  Object.setPrototypeOf(self, ServiceProto)
385
- // @effect-diagnostics-next-line floatingEffect:off
386
- Object.defineProperty(self, "stack", {
387
- get() {
388
- return err.stack
389
- }
390
- })
391
- if (arguments.length > 0) {
392
- self.key = arguments[0]
393
- if (arguments[1]?.defaultValue) {
394
- self[ReferenceTypeId] = ReferenceTypeId
395
- self.defaultValue = arguments[1].defaultValue
396
- }
397
- return self
398
- }
399
- return function(key: string, options?: {
398
+ const init = (key: string, options?: {
399
+ readonly defaultValue?: any
400
400
  readonly make?: any
401
- }) {
401
+ readonly fiberCached?: boolean
402
+ }) => {
402
403
  self.key = key
404
+ if (options?.defaultValue) {
405
+ self[ReferenceTypeId] = ReferenceTypeId
406
+ self.defaultValue = options.defaultValue
407
+ }
403
408
  if (options?.make) {
404
409
  ;(self as any).make = options.make
405
410
  }
411
+ if (options?.fiberCached) {
412
+ cacheKeys.add(key)
413
+ }
406
414
  return self
407
415
  }
416
+ return arguments.length > 0 ? init(arguments[0], arguments[1]) : init
408
417
  } as any
409
418
 
410
419
  const ServiceProto: any = {
@@ -418,8 +427,7 @@ const ServiceProto: any = {
418
427
  toJSON<I, A>(this: Service<I, A>) {
419
428
  return {
420
429
  _id: "Service",
421
- key: this.key,
422
- stack: this.stack
430
+ key: this.key
423
431
  }
424
432
  },
425
433
  of<Service>(this: void, self: Service): Service {
@@ -439,6 +447,8 @@ const ServiceProto: any = {
439
447
  }
440
448
  }
441
449
 
450
+ const cacheKeys = new Set<string>()
451
+
442
452
  const ReferenceTypeId = "~effect/Context/Reference" as const
443
453
 
444
454
  /**
@@ -452,21 +462,24 @@ const ReferenceTypeId = "~effect/Context/Reference" as const
452
462
  *
453
463
  * **Example** (Defining a reference with a default value)
454
464
  *
455
- * ```ts
465
+ * ```ts import.meta.vitest
456
466
  * import { Context } from "effect"
457
467
  *
458
468
  * // Define a reference with a default value
469
+ * const messages: Array<string> = []
459
470
  * const LoggerRef: Context.Reference<{ log: (msg: string) => void }> =
460
471
  * Context.Reference("Logger", {
461
- * defaultValue: () => ({ log: (msg: string) => console.log(msg) })
472
+ * defaultValue: () => ({ log: (msg) => { messages.push(msg) } })
462
473
  * })
463
474
  *
464
475
  * // The reference can be used without explicit provision
465
476
  * const context = Context.empty()
466
477
  * const logger = Context.get(context, LoggerRef) // Uses default value
478
+ * logger.log("default logger")
479
+ * messages // => ["default logger"]
467
480
  * ```
468
481
  *
469
- * @category models
482
+ * @category services
470
483
  * @since 3.11.0
471
484
  */
472
485
  export interface Reference<in out Shape> extends Service<never, Shape> {
@@ -481,7 +494,7 @@ export interface Reference<in out Shape> extends Service<never, Shape> {
481
494
  *
482
495
  * **Example** (Extracting service types)
483
496
  *
484
- * ```ts
497
+ * ```ts import.meta.vitest
485
498
  * import { Context } from "effect"
486
499
  *
487
500
  * const Database = Context.Service<{
@@ -493,6 +506,8 @@ export interface Reference<in out Shape> extends Service<never, Shape> {
493
506
  *
494
507
  * // Extract identifier type from a key
495
508
  * type DatabaseId = Context.Service.Identifier<typeof Database>
509
+ *
510
+ * Database.key // => "Database"
496
511
  * ```
497
512
  *
498
513
  * @since 2.0.0
@@ -504,7 +519,7 @@ export declare namespace Service {
504
519
  *
505
520
  * **Example** (Typing any service key)
506
521
  *
507
- * ```ts
522
+ * ```ts import.meta.vitest
508
523
  * import { Context } from "effect"
509
524
  *
510
525
  * // Any represents any possible service type
@@ -512,9 +527,10 @@ export declare namespace Service {
512
527
  * Context.Service<{ log: (msg: string) => void }>("Logger"),
513
528
  * Context.Service<{ query: (sql: string) => string }>("Database")
514
529
  * ]
530
+ * services.map((service) => service.key) // => ["Logger", "Database"]
515
531
  * ```
516
532
  *
517
- * @category models
533
+ * @category utility types
518
534
  * @since 4.0.0
519
535
  */
520
536
  export type Any = Key<never, any> | Key<any, any>
@@ -525,7 +541,7 @@ export declare namespace Service {
525
541
  *
526
542
  * **Example** (Extracting a service shape)
527
543
  *
528
- * ```ts
544
+ * ```ts import.meta.vitest
529
545
  * import { Context } from "effect"
530
546
  *
531
547
  * const Database = Context.Service<{ query: (sql: string) => string }>(
@@ -535,9 +551,10 @@ export declare namespace Service {
535
551
  * // Extract the service shape from the service
536
552
  * type DatabaseService = Context.Service.Shape<typeof Database>
537
553
  * // DatabaseService is { query: (sql: string) => string }
554
+ * Database.key // => "Database"
538
555
  * ```
539
556
  *
540
- * @category models
557
+ * @category utility types
541
558
  * @since 4.0.0
542
559
  */
543
560
  export type Shape<T> = T extends Key<infer _I, infer S> ? S : never
@@ -548,7 +565,7 @@ export declare namespace Service {
548
565
  *
549
566
  * **Example** (Extracting a service identifier)
550
567
  *
551
- * ```ts
568
+ * ```ts import.meta.vitest
552
569
  * import { Context } from "effect"
553
570
  *
554
571
  * const Database = Context.Service<{ query: (sql: string) => string }>(
@@ -558,9 +575,10 @@ export declare namespace Service {
558
575
  * // Extract the identifier type from a key
559
576
  * type DatabaseId = Context.Service.Identifier<typeof Database>
560
577
  * // DatabaseId is the identifier type
578
+ * Database.key // => "Database"
561
579
  * ```
562
580
  *
563
- * @category models
581
+ * @category utility types
564
582
  * @since 2.0.0
565
583
  */
566
584
  export type Identifier<T> = T extends Key<infer I, infer _S> ? I : never
@@ -579,7 +597,7 @@ const TypeId = "~effect/Context" as const
579
597
  *
580
598
  * **Example** (Creating a context with multiple services)
581
599
  *
582
- * ```ts
600
+ * ```ts import.meta.vitest
583
601
  * import { Context } from "effect"
584
602
  *
585
603
  * // Create a context with multiple services
@@ -588,10 +606,9 @@ const TypeId = "~effect/Context" as const
588
606
  * "Database"
589
607
  * )
590
608
  *
591
- * const context = Context.make(Logger, {
592
- * log: (msg: string) => console.log(msg)
593
- * })
609
+ * const context = Context.make(Logger, { log: (_msg: string) => {} })
594
610
  * .pipe(Context.add(Database, { query: (sql) => `Result: ${sql}` }))
611
+ * Context.get(context, Database).query("SELECT 1") // => "Result: SELECT 1"
595
612
  * ```
596
613
  *
597
614
  * @category models
@@ -602,7 +619,81 @@ export interface Context<in Services> extends Equal.Equal, Pipeable, Inspectable
602
619
  readonly _Services: Types.Contravariant<Services>
603
620
  }
604
621
  readonly mapUnsafe: ReadonlyMap<string, any>
605
- mutable: boolean
622
+ }
623
+
624
+ interface ContextImpl<in Services> extends Context<Services> {
625
+ cacheRoot: ContextImpl<any> | undefined
626
+ base: ReadonlyMap<string, any>
627
+ baseHits: number
628
+ overlay: Overlay | undefined
629
+ depth: number
630
+ _flat: ReadonlyMap<string, any> | undefined
631
+ }
632
+
633
+ interface Overlay {
634
+ readonly key: string
635
+ readonly value: unknown
636
+ readonly parent: Overlay | undefined
637
+ }
638
+
639
+ const MaxDepth = 8
640
+ const FlattenAfterBaseHits = 8
641
+
642
+ const makeImpl = <Services>(
643
+ cacheRoot: ContextImpl<any> | undefined,
644
+ base: ReadonlyMap<string, any>,
645
+ overlay: Overlay | undefined,
646
+ depth: number
647
+ ): ContextImpl<Services> => {
648
+ const self: ContextImpl<Services> = Object.create(Proto)
649
+ self.cacheRoot = cacheRoot ?? self
650
+ self.base = base
651
+ self.overlay = overlay
652
+ self.depth = depth
653
+ self._flat = undefined
654
+ self.baseHits = 0
655
+ return self
656
+ }
657
+
658
+ const applyOverlays = (map: Map<string, any>, overlay: Overlay | undefined): void => {
659
+ if (!overlay) return
660
+ applyOverlays(map, overlay.parent)
661
+ map.set(overlay.key, overlay.value)
662
+ }
663
+
664
+ const flatten = (self: ContextImpl<any>): ReadonlyMap<string, any> => {
665
+ if (self._flat) return self._flat
666
+ if (!self.overlay) return self._flat = self.base
667
+ const map = new Map(self.base)
668
+ applyOverlays(map, self.overlay)
669
+ return self._flat = map
670
+ }
671
+
672
+ const withFlat = <B>(self: Context<any>, f: (map: Map<string, any>) => void): Context<B> => {
673
+ const map = new Map(self.mapUnsafe)
674
+ f(map)
675
+ return makeUnsafe(map)
676
+ }
677
+
678
+ // A private symbol so user code cannot forge a value that reads as absent
679
+ const notFound = Symbol()
680
+
681
+ const lookup = (self: Context<any>, key: string): unknown => {
682
+ const impl = self as ContextImpl<any>
683
+ for (let overlay = impl.overlay; overlay; overlay = overlay.parent) {
684
+ if (overlay.key === key) return overlay.value
685
+ }
686
+ const value = impl.base.get(key)
687
+ // Misses must not advance the counter: reference-default lookups miss the
688
+ // base on every fiber cache refresh, which would flatten every short-lived
689
+ // request context and reintroduce the O(services) per-request cost
690
+ if (value === undefined && !impl.base.has(key)) return notFound
691
+ if (impl.overlay && ++impl.baseHits >= FlattenAfterBaseHits) {
692
+ impl.base = flatten(impl)
693
+ impl.overlay = undefined
694
+ impl.depth = 0
695
+ }
696
+ return value
606
697
  }
607
698
 
608
699
  /**
@@ -615,38 +706,41 @@ export interface Context<in Services> extends Equal.Equal, Pipeable, Inspectable
615
706
  *
616
707
  * **Gotchas**
617
708
  *
618
- * This is unsafe because later mutation of the provided map can affect the
619
- * created `Context`. Prefer `empty`, `make`, `add`, or `merge` for normal
620
- * Context construction.
709
+ * The provided map is retained without copying and must not be mutated after
710
+ * construction. Prefer `empty`, `make`, `add`, or `merge` for normal Context
711
+ * construction.
621
712
  *
622
713
  * **Example** (Creating a context from a map)
623
714
  *
624
- * ```ts
715
+ * ```ts import.meta.vitest
625
716
  * import { Context } from "effect"
626
717
  *
627
718
  * // Create a context from a Map (unsafe)
628
719
  * const map = new Map([
629
- * ["Logger", { log: (msg: string) => console.log(msg) }]
720
+ * ["Logger", { log: (_msg: string) => {} }]
630
721
  * ])
631
722
  *
632
723
  * const context = Context.makeUnsafe(map)
724
+ * context.mapUnsafe.size // => 1
633
725
  * ```
634
726
  *
635
727
  * @category constructors
636
728
  * @since 4.0.0
637
729
  */
638
- export const makeUnsafe = <Services = never>(mapUnsafe: ReadonlyMap<string, any>): Context<Services> => {
639
- const self = Object.create(Proto)
640
- self.mapUnsafe = mapUnsafe
641
- self.mutable = false
642
- return self
643
- }
730
+ export const makeUnsafe = <Services = never>(mapUnsafe: ReadonlyMap<string, any>): Context<Services> =>
731
+ makeImpl(undefined, mapUnsafe, undefined, 0)
644
732
 
645
- const Proto: Omit<Context<never>, "mapUnsafe" | "mutable"> = {
733
+ const Proto: Omit<
734
+ ContextImpl<never>,
735
+ "cacheRoot" | "base" | "overlay" | "depth" | "_flat" | "baseHits"
736
+ > = {
646
737
  ...PipeInspectableProto,
647
738
  [TypeId]: {
648
739
  _Services: (_: never) => _
649
740
  },
741
+ get mapUnsafe() {
742
+ return flatten(this as any as ContextImpl<any>)
743
+ },
650
744
  toJSON(this: Context<never>) {
651
745
  return {
652
746
  _id: "Context",
@@ -654,17 +748,12 @@ const Proto: Omit<Context<never>, "mapUnsafe" | "mutable"> = {
654
748
  }
655
749
  },
656
750
  [Equal.symbol]<A>(this: Context<A>, that: unknown): boolean {
657
- if (
658
- !isContext(that)
659
- || this.mapUnsafe.size !== that.mapUnsafe.size
660
- ) return false
661
- for (const k of this.mapUnsafe.keys()) {
662
- if (
663
- !that.mapUnsafe.has(k) ||
664
- !Equal.equals(this.mapUnsafe.get(k), that.mapUnsafe.get(k))
665
- ) {
666
- return false
667
- }
751
+ if (!isContext(that)) return false
752
+ const self = this.mapUnsafe
753
+ const other = that.mapUnsafe
754
+ if (self.size !== other.size) return false
755
+ for (const [key, value] of self) {
756
+ if (!other.has(key) || !Equal.equals(value, other.get(key))) return false
668
757
  }
669
758
  return true
670
759
  },
@@ -673,6 +762,12 @@ const Proto: Omit<Context<never>, "mapUnsafe" | "mutable"> = {
673
762
  }
674
763
  }
675
764
 
765
+ /** @internal */
766
+ export const hasSameCache = <Services, Services2>(
767
+ self: Context<Services>,
768
+ that: Context<Services2>
769
+ ): boolean => (self as ContextImpl<Services>).cacheRoot === (that as ContextImpl<Services2>).cacheRoot
770
+
676
771
  /**
677
772
  * Checks whether the provided argument is a `Context`.
678
773
  *
@@ -693,11 +788,9 @@ const Proto: Omit<Context<never>, "mapUnsafe" | "mutable"> = {
693
788
  *
694
789
  * **Example** (Checking for contexts)
695
790
  *
696
- * ```ts
791
+ * ```ts import.meta.vitest
697
792
  * import { Context } from "effect"
698
- * import * as assert from "node:assert"
699
- *
700
- * assert.strictEqual(Context.isContext(Context.empty()), true)
793
+ * Context.isContext(Context.empty()) // => true
701
794
  * ```
702
795
  *
703
796
  * @see {@link isKey} for checking service keys
@@ -713,11 +806,9 @@ export const isContext = (u: unknown): u is Context<never> => hasProperty(u, Typ
713
806
  *
714
807
  * **Example** (Checking for keys)
715
808
  *
716
- * ```ts
809
+ * ```ts import.meta.vitest
717
810
  * import { Context } from "effect"
718
- * import * as assert from "node:assert"
719
- *
720
- * assert.strictEqual(Context.isKey(Context.Service("Service")), true)
811
+ * Context.isKey(Context.Service("Service")) // => true
721
812
  * ```
722
813
  *
723
814
  * @category guards
@@ -730,33 +821,30 @@ export const isKey = (u: unknown): u is Key<any, any> => hasProperty(u, ServiceT
730
821
  *
731
822
  * **Example** (Checking for references)
732
823
  *
733
- * ```ts
824
+ * ```ts import.meta.vitest
734
825
  * import { Context } from "effect"
735
- * import * as assert from "node:assert"
736
826
  *
737
827
  * const LoggerRef = Context.Reference("Logger", {
738
- * defaultValue: () => ({ log: (msg: string) => console.log(msg) })
828
+ * defaultValue: () => ({ log: (_msg: string) => {} })
739
829
  * })
740
830
  *
741
- * assert.strictEqual(Context.isReference(LoggerRef), true)
742
- * assert.strictEqual(Context.isReference(Context.Service("Key")), false)
831
+ * Context.isReference(LoggerRef) // => true
832
+ * Context.isReference(Context.Service("Key")) // => false
743
833
  * ```
744
834
  *
745
835
  * @category guards
746
836
  * @since 3.11.0
747
837
  */
748
- export const isReference = (u: unknown): u is Reference<any> => hasProperty(u, ReferenceTypeId)
838
+ export const isReference = <I, S>(u: Key<I, S>): u is Reference<S> => !!(u as Reference<S>)[ReferenceTypeId]
749
839
 
750
840
  /**
751
841
  * Returns an empty `Context`.
752
842
  *
753
843
  * **Example** (Creating an empty context)
754
844
  *
755
- * ```ts
845
+ * ```ts import.meta.vitest
756
846
  * import { Context } from "effect"
757
- * import * as assert from "node:assert"
758
- *
759
- * assert.strictEqual(Context.isContext(Context.empty()), true)
847
+ * Context.empty().mapUnsafe.size // => 0
760
848
  * ```
761
849
  *
762
850
  * @category constructors
@@ -770,15 +858,14 @@ const emptyContext = makeUnsafe(new Map())
770
858
  *
771
859
  * **Example** (Creating a context with one service)
772
860
  *
773
- * ```ts
861
+ * ```ts import.meta.vitest
774
862
  * import { Context } from "effect"
775
- * import * as assert from "node:assert"
776
863
  *
777
864
  * const Port = Context.Service<{ PORT: number }>("Port")
778
865
  *
779
866
  * const context = Context.make(Port, { PORT: 8080 })
780
867
  *
781
- * assert.deepStrictEqual(Context.get(context, Port), { PORT: 8080 })
868
+ * Context.get(context, Port).PORT // => 8080
782
869
  * ```
783
870
  *
784
871
  * @category constructors
@@ -803,9 +890,8 @@ export const make = <I, S>(
803
890
  *
804
891
  * **Example** (Adding a service to a context)
805
892
  *
806
- * ```ts
893
+ * ```ts import.meta.vitest
807
894
  * import { Context, pipe } from "effect"
808
- * import * as assert from "node:assert"
809
895
  *
810
896
  * const Port = Context.Service<{ PORT: number }>("Port")
811
897
  * const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
@@ -817,13 +903,13 @@ export const make = <I, S>(
817
903
  * Context.add(Timeout, { TIMEOUT: 5000 })
818
904
  * )
819
905
  *
820
- * assert.deepStrictEqual(Context.get(context, Port), { PORT: 8080 })
821
- * assert.deepStrictEqual(Context.get(context, Timeout), { TIMEOUT: 5000 })
906
+ * const values = [Context.get(context, Port).PORT, Context.get(context, Timeout).TIMEOUT]
907
+ * values // => [8080, 5000]
822
908
  * ```
823
909
  *
824
910
  * @see {@link addOrOmit} for adding or removing a service from an `Option`
825
911
  *
826
- * @category adders
912
+ * @category combining
827
913
  * @since 2.0.0
828
914
  */
829
915
  export const add: {
@@ -841,9 +927,8 @@ export const add: {
841
927
  *
842
928
  * **Example** (Adding a service to a context)
843
929
  *
844
- * ```ts
930
+ * ```ts import.meta.vitest
845
931
  * import { Context, pipe } from "effect"
846
- * import * as assert from "node:assert"
847
932
  *
848
933
  * const Port = Context.Service<{ PORT: number }>("Port")
849
934
  * const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
@@ -855,13 +940,13 @@ export const add: {
855
940
  * Context.add(Timeout, { TIMEOUT: 5000 })
856
941
  * )
857
942
  *
858
- * assert.deepStrictEqual(Context.get(context, Port), { PORT: 8080 })
859
- * assert.deepStrictEqual(Context.get(context, Timeout), { TIMEOUT: 5000 })
943
+ * const values = [Context.get(context, Port).PORT, Context.get(context, Timeout).TIMEOUT]
944
+ * values // => [8080, 5000]
860
945
  * ```
861
946
  *
862
947
  * @see {@link addOrOmit} for adding or removing a service from an `Option`
863
948
  *
864
- * @category adders
949
+ * @category combining
865
950
  * @since 2.0.0
866
951
  */
867
952
  <I, S>(key: Key<I, S>, service: Types.NoInfer<S>): <Services>(self: Context<Services>) => Context<Services | I>
@@ -879,9 +964,8 @@ export const add: {
879
964
  *
880
965
  * **Example** (Adding a service to a context)
881
966
  *
882
- * ```ts
967
+ * ```ts import.meta.vitest
883
968
  * import { Context, pipe } from "effect"
884
- * import * as assert from "node:assert"
885
969
  *
886
970
  * const Port = Context.Service<{ PORT: number }>("Port")
887
971
  * const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
@@ -893,13 +977,13 @@ export const add: {
893
977
  * Context.add(Timeout, { TIMEOUT: 5000 })
894
978
  * )
895
979
  *
896
- * assert.deepStrictEqual(Context.get(context, Port), { PORT: 8080 })
897
- * assert.deepStrictEqual(Context.get(context, Timeout), { TIMEOUT: 5000 })
980
+ * const values = [Context.get(context, Port).PORT, Context.get(context, Timeout).TIMEOUT]
981
+ * values // => [8080, 5000]
898
982
  * ```
899
983
  *
900
984
  * @see {@link addOrOmit} for adding or removing a service from an `Option`
901
985
  *
902
- * @category adders
986
+ * @category combining
903
987
  * @since 2.0.0
904
988
  */
905
989
  <Services, I, S>(self: Context<Services>, key: Key<I, S>, service: Types.NoInfer<S>): Context<Services | I>
@@ -907,10 +991,36 @@ export const add: {
907
991
  self: Context<Services>,
908
992
  key: Key<I, S>,
909
993
  service: Types.NoInfer<S>
910
- ): Context<Services | I> =>
911
- withMapUnsafe(self, (map) => {
912
- map.set(key.key, service)
913
- }))
994
+ ): Context<Services | I> => addUnsafe(self, key.key, service))
995
+
996
+ /**
997
+ * Adds a service by key to a given `Context` using a string key.
998
+ *
999
+ * @category combining
1000
+ * @since 4.0.0
1001
+ */
1002
+ export const addUnsafe = <Services, I, S>(
1003
+ self: Context<Services>,
1004
+ key: string,
1005
+ service: Types.NoInfer<S>
1006
+ ): Context<Services | I> => {
1007
+ const impl = self as ContextImpl<Services>
1008
+ const cacheRoot = cacheKeys.has(key) ? undefined : impl.cacheRoot
1009
+ if (impl.depth >= MaxDepth) {
1010
+ // Rebase the overlay chain into a flat map, keeping the cacheRoot so a
1011
+ // rebase on an ordinary key does not invalidate fiber caches
1012
+ const map = new Map(impl.mapUnsafe)
1013
+ map.set(key, service)
1014
+ return makeImpl(cacheRoot, map, undefined, 0)
1015
+ }
1016
+
1017
+ return makeImpl(
1018
+ cacheRoot,
1019
+ impl.base,
1020
+ { key, value: service, parent: impl.overlay },
1021
+ impl.depth + 1
1022
+ )
1023
+ }
914
1024
 
915
1025
  /**
916
1026
  * Adds or removes a service depending on an `Option`.
@@ -926,7 +1036,7 @@ export const add: {
926
1036
  *
927
1037
  * **Example** (Adding optional services)
928
1038
  *
929
- * ```ts
1039
+ * ```ts import.meta.vitest
930
1040
  * import { Context, Option } from "effect"
931
1041
  *
932
1042
  * const Port = Context.Service<{ PORT: number }>("Port")
@@ -938,11 +1048,13 @@ export const add: {
938
1048
  * const withoutPort = withPort.pipe(
939
1049
  * Context.addOrOmit(Port, Option.none())
940
1050
  * )
1051
+ * Context.getOption(withPort, Port) // => Option.some({ PORT: 8080 })
1052
+ * Context.getOption(withoutPort, Port) // => Option.none()
941
1053
  * ```
942
1054
  *
943
1055
  * @see {@link add} for always storing a service value
944
1056
  *
945
- * @category adders
1057
+ * @category combining
946
1058
  * @since 4.0.0
947
1059
  */
948
1060
  export const addOrOmit: {
@@ -960,7 +1072,7 @@ export const addOrOmit: {
960
1072
  *
961
1073
  * **Example** (Adding optional services)
962
1074
  *
963
- * ```ts
1075
+ * ```ts import.meta.vitest
964
1076
  * import { Context, Option } from "effect"
965
1077
  *
966
1078
  * const Port = Context.Service<{ PORT: number }>("Port")
@@ -972,14 +1084,16 @@ export const addOrOmit: {
972
1084
  * const withoutPort = withPort.pipe(
973
1085
  * Context.addOrOmit(Port, Option.none())
974
1086
  * )
1087
+ * Context.getOption(withPort, Port) // => Option.some({ PORT: 8080 })
1088
+ * Context.getOption(withoutPort, Port) // => Option.none()
975
1089
  * ```
976
1090
  *
977
1091
  * @see {@link add} for always storing a service value
978
1092
  *
979
- * @category adders
1093
+ * @category combining
980
1094
  * @since 4.0.0
981
1095
  */
982
- <I, S>(key: Key<I, S>, service: Option.Option<Types.NoInfer<S>>): <Services>(self: Context<Services>) => Context<Services | I>
1096
+ <I, S>(key: Key<I, S>, service: Option.Option<Types.NoInfer<S>>): <Services>(self: Context<Services>) => Context<Exclude<Services, I>>
983
1097
  /**
984
1098
  * Adds or removes a service depending on an `Option`.
985
1099
  *
@@ -994,7 +1108,7 @@ export const addOrOmit: {
994
1108
  *
995
1109
  * **Example** (Adding optional services)
996
1110
  *
997
- * ```ts
1111
+ * ```ts import.meta.vitest
998
1112
  * import { Context, Option } from "effect"
999
1113
  *
1000
1114
  * const Port = Context.Service<{ PORT: number }>("Port")
@@ -1006,30 +1120,28 @@ export const addOrOmit: {
1006
1120
  * const withoutPort = withPort.pipe(
1007
1121
  * Context.addOrOmit(Port, Option.none())
1008
1122
  * )
1123
+ * Context.getOption(withPort, Port) // => Option.some({ PORT: 8080 })
1124
+ * Context.getOption(withoutPort, Port) // => Option.none()
1009
1125
  * ```
1010
1126
  *
1011
1127
  * @see {@link add} for always storing a service value
1012
1128
  *
1013
- * @category adders
1129
+ * @category combining
1014
1130
  * @since 4.0.0
1015
1131
  */
1016
1132
  <Services, I, S>(
1017
1133
  self: Context<Services>,
1018
1134
  key: Key<I, S>,
1019
1135
  service: Option.Option<Types.NoInfer<S>>
1020
- ): Context<Services | I>
1136
+ ): Context<Exclude<Services, I>>
1021
1137
  } = dual(3, <Services, I, S>(
1022
1138
  self: Context<Services>,
1023
1139
  key: Key<I, S>,
1024
1140
  service: Option.Option<Types.NoInfer<S>>
1025
- ): Context<Services | I> =>
1026
- withMapUnsafe(self, (map) => {
1027
- if (service._tag === "None") {
1028
- map.delete(key.key)
1029
- } else {
1030
- map.set(key.key, service.value)
1031
- }
1032
- }))
1141
+ ): Context<Exclude<Services, I>> =>
1142
+ service._tag === "None"
1143
+ ? omit(key)(self)
1144
+ : add(self, key, service.value) as any)
1033
1145
 
1034
1146
  /**
1035
1147
  * Gets the service for a key, or evaluates the fallback when a non-reference
@@ -1052,7 +1164,7 @@ export const addOrOmit: {
1052
1164
  *
1053
1165
  * **Example** (Falling back for missing services)
1054
1166
  *
1055
- * ```ts
1167
+ * ```ts import.meta.vitest
1056
1168
  * import { Context } from "effect"
1057
1169
  *
1058
1170
  * const Logger = Context.Service<{ log: (msg: string) => void }>("Logger")
@@ -1060,9 +1172,7 @@ export const addOrOmit: {
1060
1172
  * "Database"
1061
1173
  * )
1062
1174
  *
1063
- * const context = Context.make(Logger, {
1064
- * log: (msg: string) => console.log(msg)
1065
- * })
1175
+ * const context = Context.make(Logger, { log: (_msg: string) => {} })
1066
1176
  *
1067
1177
  * const logger = Context.getOrElse(context, Logger, () => ({ log: () => {} }))
1068
1178
  * const database = Context.getOrElse(
@@ -1071,8 +1181,8 @@ export const addOrOmit: {
1071
1181
  * () => ({ query: () => "fallback" })
1072
1182
  * )
1073
1183
  *
1074
- * console.log(logger === Context.get(context, Logger)) // true
1075
- * console.log(database.query("SELECT 1")) // "fallback"
1184
+ * logger === Context.get(context, Logger) // => true
1185
+ * database.query("SELECT 1") // => "fallback"
1076
1186
  * ```
1077
1187
  *
1078
1188
  * @see {@link getOption} for returning `Option.none` when a non-reference key is missing
@@ -1102,7 +1212,7 @@ export const getOrElse: {
1102
1212
  *
1103
1213
  * **Example** (Falling back for missing services)
1104
1214
  *
1105
- * ```ts
1215
+ * ```ts import.meta.vitest
1106
1216
  * import { Context } from "effect"
1107
1217
  *
1108
1218
  * const Logger = Context.Service<{ log: (msg: string) => void }>("Logger")
@@ -1110,9 +1220,7 @@ export const getOrElse: {
1110
1220
  * "Database"
1111
1221
  * )
1112
1222
  *
1113
- * const context = Context.make(Logger, {
1114
- * log: (msg: string) => console.log(msg)
1115
- * })
1223
+ * const context = Context.make(Logger, { log: (_msg: string) => {} })
1116
1224
  *
1117
1225
  * const logger = Context.getOrElse(context, Logger, () => ({ log: () => {} }))
1118
1226
  * const database = Context.getOrElse(
@@ -1121,8 +1229,8 @@ export const getOrElse: {
1121
1229
  * () => ({ query: () => "fallback" })
1122
1230
  * )
1123
1231
  *
1124
- * console.log(logger === Context.get(context, Logger)) // true
1125
- * console.log(database.query("SELECT 1")) // "fallback"
1232
+ * logger === Context.get(context, Logger) // => true
1233
+ * database.query("SELECT 1") // => "fallback"
1126
1234
  * ```
1127
1235
  *
1128
1236
  * @see {@link getOption} for returning `Option.none` when a non-reference key is missing
@@ -1152,7 +1260,7 @@ export const getOrElse: {
1152
1260
  *
1153
1261
  * **Example** (Falling back for missing services)
1154
1262
  *
1155
- * ```ts
1263
+ * ```ts import.meta.vitest
1156
1264
  * import { Context } from "effect"
1157
1265
  *
1158
1266
  * const Logger = Context.Service<{ log: (msg: string) => void }>("Logger")
@@ -1160,9 +1268,7 @@ export const getOrElse: {
1160
1268
  * "Database"
1161
1269
  * )
1162
1270
  *
1163
- * const context = Context.make(Logger, {
1164
- * log: (msg: string) => console.log(msg)
1165
- * })
1271
+ * const context = Context.make(Logger, { log: (_msg: string) => {} })
1166
1272
  *
1167
1273
  * const logger = Context.getOrElse(context, Logger, () => ({ log: () => {} }))
1168
1274
  * const database = Context.getOrElse(
@@ -1171,8 +1277,8 @@ export const getOrElse: {
1171
1277
  * () => ({ query: () => "fallback" })
1172
1278
  * )
1173
1279
  *
1174
- * console.log(logger === Context.get(context, Logger)) // true
1175
- * console.log(database.query("SELECT 1")) // "fallback"
1280
+ * logger === Context.get(context, Logger) // => true
1281
+ * database.query("SELECT 1") // => "fallback"
1176
1282
  * ```
1177
1283
  *
1178
1284
  * @see {@link getOption} for returning `Option.none` when a non-reference key is missing
@@ -1182,9 +1288,8 @@ export const getOrElse: {
1182
1288
  */
1183
1289
  <Services, S, I, B>(self: Context<Services>, key: Key<I, S>, orElse: LazyArg<B>): S | B
1184
1290
  } = dual(3, <Services, S, I, B>(self: Context<Services>, key: Key<I, S>, orElse: LazyArg<B>): S | B => {
1185
- if (self.mapUnsafe.has(key.key)) {
1186
- return self.mapUnsafe.get(key.key)! as any
1187
- }
1291
+ const value = lookup(self, key.key)
1292
+ if (value !== notFound) return value as any
1188
1293
  return isReference(key) ? getDefaultValue(key) : orElse()
1189
1294
  })
1190
1295
 
@@ -1250,9 +1355,15 @@ export const getOrUndefined: {
1250
1355
  <Services, S, I>(self: Context<Services>, key: Key<I, S>): S | undefined
1251
1356
  } = dual(
1252
1357
  2,
1253
- <Services, S, I>(self: Context<Services>, key: Key<I, S>): S | undefined => self.mapUnsafe.get(key.key)
1358
+ <Services, S, I>(self: Context<Services>, key: Key<I, S>): S | undefined => getOrUndefinedUnsafe(self, key.key)
1254
1359
  )
1255
1360
 
1361
+ /** @internal */
1362
+ export const getOrUndefinedUnsafe = <A, Services = never>(self: Context<Services>, key: string): A | undefined => {
1363
+ const value = lookup(self, key)
1364
+ return value === notFound ? undefined : value as A
1365
+ }
1366
+
1256
1367
  /**
1257
1368
  * Gets the service for a key, throwing if an absent non-reference key cannot be
1258
1369
  * resolved.
@@ -1270,17 +1381,16 @@ export const getOrUndefined: {
1270
1381
  *
1271
1382
  * **Example** (Getting services unsafely)
1272
1383
  *
1273
- * ```ts
1274
- * import { Context } from "effect"
1275
- * import * as assert from "node:assert"
1384
+ * ```ts import.meta.vitest
1385
+ * import { Context, Option } from "effect"
1276
1386
  *
1277
1387
  * const Port = Context.Service<{ PORT: number }>("Port")
1278
1388
  * const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
1279
1389
  *
1280
1390
  * const context = Context.make(Port, { PORT: 8080 })
1281
1391
  *
1282
- * assert.deepStrictEqual(Context.getUnsafe(context, Port), { PORT: 8080 })
1283
- * assert.throws(() => Context.getUnsafe(context, Timeout))
1392
+ * Context.getUnsafe(context, Port).PORT // => 8080
1393
+ * Context.getOption(context, Timeout) // => Option.none()
1284
1394
  * ```
1285
1395
  *
1286
1396
  * @see {@link get} for type-checked service access
@@ -1307,17 +1417,16 @@ export const getUnsafe: {
1307
1417
  *
1308
1418
  * **Example** (Getting services unsafely)
1309
1419
  *
1310
- * ```ts
1311
- * import { Context } from "effect"
1312
- * import * as assert from "node:assert"
1420
+ * ```ts import.meta.vitest
1421
+ * import { Context, Option } from "effect"
1313
1422
  *
1314
1423
  * const Port = Context.Service<{ PORT: number }>("Port")
1315
1424
  * const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
1316
1425
  *
1317
1426
  * const context = Context.make(Port, { PORT: 8080 })
1318
1427
  *
1319
- * assert.deepStrictEqual(Context.getUnsafe(context, Port), { PORT: 8080 })
1320
- * assert.throws(() => Context.getUnsafe(context, Timeout))
1428
+ * Context.getUnsafe(context, Port).PORT // => 8080
1429
+ * Context.getOption(context, Timeout) // => Option.none()
1321
1430
  * ```
1322
1431
  *
1323
1432
  * @see {@link get} for type-checked service access
@@ -1344,17 +1453,16 @@ export const getUnsafe: {
1344
1453
  *
1345
1454
  * **Example** (Getting services unsafely)
1346
1455
  *
1347
- * ```ts
1348
- * import { Context } from "effect"
1349
- * import * as assert from "node:assert"
1456
+ * ```ts import.meta.vitest
1457
+ * import { Context, Option } from "effect"
1350
1458
  *
1351
1459
  * const Port = Context.Service<{ PORT: number }>("Port")
1352
1460
  * const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
1353
1461
  *
1354
1462
  * const context = Context.make(Port, { PORT: 8080 })
1355
1463
  *
1356
- * assert.deepStrictEqual(Context.getUnsafe(context, Port), { PORT: 8080 })
1357
- * assert.throws(() => Context.getUnsafe(context, Timeout))
1464
+ * Context.getUnsafe(context, Port).PORT // => 8080
1465
+ * Context.getOption(context, Timeout) // => Option.none()
1358
1466
  * ```
1359
1467
  *
1360
1468
  * @see {@link get} for type-checked service access
@@ -1367,11 +1475,12 @@ export const getUnsafe: {
1367
1475
  } = dual(
1368
1476
  2,
1369
1477
  <Services, I extends Services, S>(self: Context<Services>, service: Key<I, S>): S => {
1370
- if (!self.mapUnsafe.has(service.key)) {
1371
- if (ReferenceTypeId in service) return getDefaultValue(service as any)
1478
+ const value = lookup(self, service.key)
1479
+ if (value === notFound) {
1480
+ if (isReference(service)) return getDefaultValue(service as any)
1372
1481
  throw serviceNotFoundError(service)
1373
1482
  }
1374
- return self.mapUnsafe.get(service.key)! as any
1483
+ return value as any
1375
1484
  }
1376
1485
  )
1377
1486
 
@@ -1385,9 +1494,8 @@ export const getUnsafe: {
1385
1494
  *
1386
1495
  * **Example** (Getting a service from a context)
1387
1496
  *
1388
- * ```ts
1497
+ * ```ts import.meta.vitest
1389
1498
  * import { Context, pipe } from "effect"
1390
- * import * as assert from "node:assert"
1391
1499
  *
1392
1500
  * const Port = Context.Service<{ PORT: number }>("Port")
1393
1501
  * const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
@@ -1397,7 +1505,7 @@ export const getUnsafe: {
1397
1505
  * Context.add(Timeout, { TIMEOUT: 5000 })
1398
1506
  * )
1399
1507
  *
1400
- * assert.deepStrictEqual(Context.get(context, Timeout), { TIMEOUT: 5000 })
1508
+ * Context.get(context, Timeout).TIMEOUT // => 5000
1401
1509
  * ```
1402
1510
  *
1403
1511
  * @see {@link getOption} for optional service access
@@ -1417,9 +1525,8 @@ export const get: {
1417
1525
  *
1418
1526
  * **Example** (Getting a service from a context)
1419
1527
  *
1420
- * ```ts
1528
+ * ```ts import.meta.vitest
1421
1529
  * import { Context, pipe } from "effect"
1422
- * import * as assert from "node:assert"
1423
1530
  *
1424
1531
  * const Port = Context.Service<{ PORT: number }>("Port")
1425
1532
  * const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
@@ -1429,7 +1536,7 @@ export const get: {
1429
1536
  * Context.add(Timeout, { TIMEOUT: 5000 })
1430
1537
  * )
1431
1538
  *
1432
- * assert.deepStrictEqual(Context.get(context, Timeout), { TIMEOUT: 5000 })
1539
+ * Context.get(context, Timeout).TIMEOUT // => 5000
1433
1540
  * ```
1434
1541
  *
1435
1542
  * @see {@link getOption} for optional service access
@@ -1449,9 +1556,8 @@ export const get: {
1449
1556
  *
1450
1557
  * **Example** (Getting a service from a context)
1451
1558
  *
1452
- * ```ts
1559
+ * ```ts import.meta.vitest
1453
1560
  * import { Context, pipe } from "effect"
1454
- * import * as assert from "node:assert"
1455
1561
  *
1456
1562
  * const Port = Context.Service<{ PORT: number }>("Port")
1457
1563
  * const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
@@ -1461,7 +1567,7 @@ export const get: {
1461
1567
  * Context.add(Timeout, { TIMEOUT: 5000 })
1462
1568
  * )
1463
1569
  *
1464
- * assert.deepStrictEqual(Context.get(context, Timeout), { TIMEOUT: 5000 })
1570
+ * Context.get(context, Timeout).TIMEOUT // => 5000
1465
1571
  * ```
1466
1572
  *
1467
1573
  * @see {@link getOption} for optional service access
@@ -1473,54 +1579,6 @@ export const get: {
1473
1579
  <Services, I extends Services, S>(self: Context<Services>, service: Key<I, S>): S
1474
1580
  } = getUnsafe
1475
1581
 
1476
- /**
1477
- * Gets the value for a `Context.Reference`, returning its cached default when
1478
- * the context does not contain an override.
1479
- *
1480
- * **When to use**
1481
- *
1482
- * Use when you need a `Context.Reference` value resolved from either a stored
1483
- * override or the reference's default value.
1484
- *
1485
- * **Details**
1486
- *
1487
- * Stored overrides take precedence. If no override is present, the reference's
1488
- * default value is computed lazily and cached on the reference itself.
1489
- *
1490
- * **Gotchas**
1491
- *
1492
- * Mutable default values can be shared across contexts unless an override is
1493
- * provided, because the default is cached on the `Context.Reference`.
1494
- *
1495
- * **Example** (Getting reference defaults unsafely)
1496
- *
1497
- * ```ts
1498
- * import { Context } from "effect"
1499
- *
1500
- * const LoggerRef = Context.Reference("Logger", {
1501
- * defaultValue: () => ({ log: (msg: string) => console.log(msg) })
1502
- * })
1503
- *
1504
- * const context = Context.empty()
1505
- * const logger = Context.getReferenceUnsafe(context, LoggerRef)
1506
- *
1507
- * console.log(typeof logger.log) // "function"
1508
- * ```
1509
- *
1510
- * @see {@link getUnsafe} for unsafe access with any service key
1511
- * @see {@link get} for type-checked reference-aware access
1512
- * @see {@link getOption} for optional access to non-reference keys
1513
- *
1514
- * @category unsafe
1515
- * @since 4.0.0
1516
- */
1517
- export const getReferenceUnsafe = <Services, S>(self: Context<Services>, service: Reference<S>): S => {
1518
- if (!self.mapUnsafe.has(service.key)) {
1519
- return getDefaultValue(service as any)
1520
- }
1521
- return self.mapUnsafe.get(service.key)! as any
1522
- }
1523
-
1524
1582
  const defaultValueCacheKey = "~effect/Context/defaultValue" as const
1525
1583
 
1526
1584
  const getDefaultValue = (ref: Reference<any>) => {
@@ -1534,15 +1592,6 @@ const serviceNotFoundError = (service: Key<any, any>) => {
1534
1592
  const error = new Error(
1535
1593
  `Service not found${service.key ? `: ${String(service.key)}` : ""}`
1536
1594
  )
1537
- if (service.stack) {
1538
- const lines = service.stack.split("\n")
1539
- if (lines.length > 2) {
1540
- const afterAt = lines[2].match(/at (.*)/)
1541
- if (afterAt) {
1542
- error.message = error.message + ` (defined at ${afterAt[1]})`
1543
- }
1544
- }
1545
- }
1546
1595
  if (error.stack) {
1547
1596
  const lines = error.stack.split("\n")
1548
1597
  lines.splice(1, 3)
@@ -1567,20 +1616,16 @@ const serviceNotFoundError = (service: Key<any, any>) => {
1567
1616
  *
1568
1617
  * **Example** (Getting optional services)
1569
1618
  *
1570
- * ```ts
1619
+ * ```ts import.meta.vitest
1571
1620
  * import { Context, Option } from "effect"
1572
- * import * as assert from "node:assert"
1573
1621
  *
1574
1622
  * const Port = Context.Service<{ PORT: number }>("Port")
1575
1623
  * const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
1576
1624
  *
1577
1625
  * const context = Context.make(Port, { PORT: 8080 })
1578
1626
  *
1579
- * assert.deepStrictEqual(
1580
- * Context.getOption(context, Port),
1581
- * Option.some({ PORT: 8080 })
1582
- * )
1583
- * assert.deepStrictEqual(Context.getOption(context, Timeout), Option.none())
1627
+ * Context.getOption(context, Port) // => Option.some({ PORT: 8080 })
1628
+ * Context.getOption(context, Timeout) // => Option.none()
1584
1629
  * ```
1585
1630
  *
1586
1631
  * @see {@link getOrElse} for returning a fallback value directly
@@ -1605,20 +1650,16 @@ export const getOption: {
1605
1650
  *
1606
1651
  * **Example** (Getting optional services)
1607
1652
  *
1608
- * ```ts
1653
+ * ```ts import.meta.vitest
1609
1654
  * import { Context, Option } from "effect"
1610
- * import * as assert from "node:assert"
1611
1655
  *
1612
1656
  * const Port = Context.Service<{ PORT: number }>("Port")
1613
1657
  * const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
1614
1658
  *
1615
1659
  * const context = Context.make(Port, { PORT: 8080 })
1616
1660
  *
1617
- * assert.deepStrictEqual(
1618
- * Context.getOption(context, Port),
1619
- * Option.some({ PORT: 8080 })
1620
- * )
1621
- * assert.deepStrictEqual(Context.getOption(context, Timeout), Option.none())
1661
+ * Context.getOption(context, Port) // => Option.some({ PORT: 8080 })
1662
+ * Context.getOption(context, Timeout) // => Option.none()
1622
1663
  * ```
1623
1664
  *
1624
1665
  * @see {@link getOrElse} for returning a fallback value directly
@@ -1643,20 +1684,16 @@ export const getOption: {
1643
1684
  *
1644
1685
  * **Example** (Getting optional services)
1645
1686
  *
1646
- * ```ts
1687
+ * ```ts import.meta.vitest
1647
1688
  * import { Context, Option } from "effect"
1648
- * import * as assert from "node:assert"
1649
1689
  *
1650
1690
  * const Port = Context.Service<{ PORT: number }>("Port")
1651
1691
  * const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
1652
1692
  *
1653
1693
  * const context = Context.make(Port, { PORT: 8080 })
1654
1694
  *
1655
- * assert.deepStrictEqual(
1656
- * Context.getOption(context, Port),
1657
- * Option.some({ PORT: 8080 })
1658
- * )
1659
- * assert.deepStrictEqual(Context.getOption(context, Timeout), Option.none())
1695
+ * Context.getOption(context, Port) // => Option.some({ PORT: 8080 })
1696
+ * Context.getOption(context, Timeout) // => Option.none()
1660
1697
  * ```
1661
1698
  *
1662
1699
  * @see {@link getOrElse} for returning a fallback value directly
@@ -1666,9 +1703,8 @@ export const getOption: {
1666
1703
  */
1667
1704
  <Services, S, I>(self: Context<Services>, service: Key<I, S>): Option.Option<S>
1668
1705
  } = dual(2, <Services, I extends Services, S>(self: Context<Services>, service: Key<I, S>): Option.Option<S> => {
1669
- if (self.mapUnsafe.has(service.key)) {
1670
- return Option.some(self.mapUnsafe.get(service.key)! as any)
1671
- }
1706
+ const value = lookup(self, service.key)
1707
+ if (value !== notFound) return Option.some(value as any)
1672
1708
  return isReference(service) ? Option.some(getDefaultValue(service as any)) : Option.none()
1673
1709
  })
1674
1710
 
@@ -1686,9 +1722,8 @@ export const getOption: {
1686
1722
  *
1687
1723
  * **Example** (Merging two contexts)
1688
1724
  *
1689
- * ```ts
1725
+ * ```ts import.meta.vitest
1690
1726
  * import { Context } from "effect"
1691
- * import * as assert from "node:assert"
1692
1727
  *
1693
1728
  * const Port = Context.Service<{ PORT: number }>("Port")
1694
1729
  * const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
@@ -1698,8 +1733,8 @@ export const getOption: {
1698
1733
  *
1699
1734
  * const context = Context.merge(firstContext, secondContext)
1700
1735
  *
1701
- * assert.deepStrictEqual(Context.get(context, Port), { PORT: 8080 })
1702
- * assert.deepStrictEqual(Context.get(context, Timeout), { TIMEOUT: 5000 })
1736
+ * const values = [Context.get(context, Port).PORT, Context.get(context, Timeout).TIMEOUT]
1737
+ * values // => [8080, 5000]
1703
1738
  * ```
1704
1739
  *
1705
1740
  * @see {@link mergeAll} for merging more than two contexts at once
@@ -1722,9 +1757,8 @@ export const merge: {
1722
1757
  *
1723
1758
  * **Example** (Merging two contexts)
1724
1759
  *
1725
- * ```ts
1760
+ * ```ts import.meta.vitest
1726
1761
  * import { Context } from "effect"
1727
- * import * as assert from "node:assert"
1728
1762
  *
1729
1763
  * const Port = Context.Service<{ PORT: number }>("Port")
1730
1764
  * const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
@@ -1734,8 +1768,8 @@ export const merge: {
1734
1768
  *
1735
1769
  * const context = Context.merge(firstContext, secondContext)
1736
1770
  *
1737
- * assert.deepStrictEqual(Context.get(context, Port), { PORT: 8080 })
1738
- * assert.deepStrictEqual(Context.get(context, Timeout), { TIMEOUT: 5000 })
1771
+ * const values = [Context.get(context, Port).PORT, Context.get(context, Timeout).TIMEOUT]
1772
+ * values // => [8080, 5000]
1739
1773
  * ```
1740
1774
  *
1741
1775
  * @see {@link mergeAll} for merging more than two contexts at once
@@ -1758,9 +1792,8 @@ export const merge: {
1758
1792
  *
1759
1793
  * **Example** (Merging two contexts)
1760
1794
  *
1761
- * ```ts
1795
+ * ```ts import.meta.vitest
1762
1796
  * import { Context } from "effect"
1763
- * import * as assert from "node:assert"
1764
1797
  *
1765
1798
  * const Port = Context.Service<{ PORT: number }>("Port")
1766
1799
  * const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
@@ -1770,8 +1803,8 @@ export const merge: {
1770
1803
  *
1771
1804
  * const context = Context.merge(firstContext, secondContext)
1772
1805
  *
1773
- * assert.deepStrictEqual(Context.get(context, Port), { PORT: 8080 })
1774
- * assert.deepStrictEqual(Context.get(context, Timeout), { TIMEOUT: 5000 })
1806
+ * const values = [Context.get(context, Port).PORT, Context.get(context, Timeout).TIMEOUT]
1807
+ * values // => [8080, 5000]
1775
1808
  * ```
1776
1809
  *
1777
1810
  * @see {@link mergeAll} for merging more than two contexts at once
@@ -1783,9 +1816,7 @@ export const merge: {
1783
1816
  } = dual(2, <Services, R1>(self: Context<Services>, that: Context<R1>): Context<Services | R1> => {
1784
1817
  if (self.mapUnsafe.size === 0) return that as any
1785
1818
  if (that.mapUnsafe.size === 0) return self as any
1786
- return withMapUnsafe(self, (map) => {
1787
- that.mapUnsafe.forEach((value, key) => map.set(key, value))
1788
- })
1819
+ return withFlat(self, (map) => that.mapUnsafe.forEach((value, key) => map.set(key, value)))
1789
1820
  })
1790
1821
 
1791
1822
  /**
@@ -1802,9 +1833,8 @@ export const merge: {
1802
1833
  *
1803
1834
  * **Example** (Merging multiple contexts)
1804
1835
  *
1805
- * ```ts
1836
+ * ```ts import.meta.vitest
1806
1837
  * import { Context } from "effect"
1807
- * import * as assert from "node:assert"
1808
1838
  *
1809
1839
  * const Port = Context.Service<{ PORT: number }>("Port")
1810
1840
  * const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
@@ -1820,9 +1850,7 @@ export const merge: {
1820
1850
  * thirdContext
1821
1851
  * )
1822
1852
  *
1823
- * assert.deepStrictEqual(Context.get(context, Port), { PORT: 8080 })
1824
- * assert.deepStrictEqual(Context.get(context, Timeout), { TIMEOUT: 5000 })
1825
- * assert.deepStrictEqual(Context.get(context, Host), { HOST: "localhost" })
1853
+ * context.mapUnsafe.size // => 3
1826
1854
  * ```
1827
1855
  *
1828
1856
  * @see {@link merge} for merging two contexts
@@ -1851,9 +1879,8 @@ export const mergeAll = <T extends Array<unknown>>(
1851
1879
  *
1852
1880
  * **Example** (Picking services from a context)
1853
1881
  *
1854
- * ```ts
1882
+ * ```ts import.meta.vitest
1855
1883
  * import { Context, Option, pipe } from "effect"
1856
- * import * as assert from "node:assert"
1857
1884
  *
1858
1885
  * const Port = Context.Service<{ PORT: number }>("Port")
1859
1886
  * const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
@@ -1865,11 +1892,8 @@ export const mergeAll = <T extends Array<unknown>>(
1865
1892
  *
1866
1893
  * const context = pipe(someContext, Context.pick(Port))
1867
1894
  *
1868
- * assert.deepStrictEqual(
1869
- * Context.getOption(context, Port),
1870
- * Option.some({ PORT: 8080 })
1871
- * )
1872
- * assert.deepStrictEqual(Context.getOption(context, Timeout), Option.none())
1895
+ * Context.getOption(context, Port) // => Option.some({ PORT: 8080 })
1896
+ * Context.getOption(context, Timeout) // => Option.none()
1873
1897
  * ```
1874
1898
  *
1875
1899
  * @see {@link omit} for removing selected services
@@ -1880,14 +1904,13 @@ export const mergeAll = <T extends Array<unknown>>(
1880
1904
  export const pick = <S extends ReadonlyArray<Key<any, any>>>(
1881
1905
  ...services: S
1882
1906
  ) =>
1883
- <Services>(self: Context<Services>): Context<Services & Service.Identifier<S[number]>> =>
1884
- withMapUnsafe(self, (map) => {
1885
- const keySet = new Set(services.map((key) => key.key))
1907
+ <Services>(self: Context<Services>): Context<Services & Service.Identifier<S[number]>> => {
1908
+ const keep = new Set(services.map((key) => key.key))
1909
+ return withFlat(self, (map) =>
1886
1910
  map.forEach((_, key) => {
1887
- if (keySet.has(key)) return
1888
- map.delete(key)
1889
- })
1890
- })
1911
+ if (!keep.has(key)) map.delete(key)
1912
+ }))
1913
+ }
1891
1914
 
1892
1915
  /**
1893
1916
  * Returns a new `Context` with the specified service keys removed.
@@ -1898,9 +1921,8 @@ export const pick = <S extends ReadonlyArray<Key<any, any>>>(
1898
1921
  *
1899
1922
  * **Example** (Omitting services from a context)
1900
1923
  *
1901
- * ```ts
1924
+ * ```ts import.meta.vitest
1902
1925
  * import { Context, Option, pipe } from "effect"
1903
- * import * as assert from "node:assert"
1904
1926
  *
1905
1927
  * const Port = Context.Service<{ PORT: number }>("Port")
1906
1928
  * const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
@@ -1912,11 +1934,8 @@ export const pick = <S extends ReadonlyArray<Key<any, any>>>(
1912
1934
  *
1913
1935
  * const context = pipe(someContext, Context.omit(Timeout))
1914
1936
  *
1915
- * assert.deepStrictEqual(
1916
- * Context.getOption(context, Port),
1917
- * Option.some({ PORT: 8080 })
1918
- * )
1919
- * assert.deepStrictEqual(Context.getOption(context, Timeout), Option.none())
1937
+ * Context.getOption(context, Port) // => Option.some({ PORT: 8080 })
1938
+ * Context.getOption(context, Timeout) // => Option.none()
1920
1939
  * ```
1921
1940
  *
1922
1941
  * @see {@link pick} for keeping selected services
@@ -1928,108 +1947,12 @@ export const omit = <S extends ReadonlyArray<Key<any, any>>>(
1928
1947
  ...keys: S
1929
1948
  ) =>
1930
1949
  <Services>(self: Context<Services>): Context<Exclude<Services, Service.Identifier<S[number]>>> =>
1931
- withMapUnsafe(self, (map) => {
1950
+ withFlat(self, (map) => {
1932
1951
  for (let i = 0; i < keys.length; i++) {
1933
1952
  map.delete(keys[i].key)
1934
1953
  }
1935
1954
  })
1936
1955
 
1937
- /**
1938
- * Performs a series of mutations on a `Context`. Prevents unnecessary copying
1939
- * of the underlying map when multiple mutations are needed.
1940
- *
1941
- * **When to use**
1942
- *
1943
- * Use to apply several `Context` transformations in one callback while copying
1944
- * the underlying service map only once.
1945
- *
1946
- * @see {@link add} for adding or replacing a service
1947
- * @see {@link addOrOmit} for adding or removing a service from an `Option`
1948
- * @see {@link merge} for combining two contexts
1949
- * @see {@link pick} for keeping selected services
1950
- * @see {@link omit} for removing selected services
1951
- *
1952
- * @category mutations
1953
- * @since 4.0.0
1954
- */
1955
- export const mutate: {
1956
- /**
1957
- * Performs a series of mutations on a `Context`. Prevents unnecessary copying
1958
- * of the underlying map when multiple mutations are needed.
1959
- *
1960
- * **When to use**
1961
- *
1962
- * Use to apply several `Context` transformations in one callback while copying
1963
- * the underlying service map only once.
1964
- *
1965
- * @see {@link add} for adding or replacing a service
1966
- * @see {@link addOrOmit} for adding or removing a service from an `Option`
1967
- * @see {@link merge} for combining two contexts
1968
- * @see {@link pick} for keeping selected services
1969
- * @see {@link omit} for removing selected services
1970
- *
1971
- * @category mutations
1972
- * @since 4.0.0
1973
- */
1974
- <Services, B>(f: (context: Context<Services>) => Context<B>): <Services>(self: Context<Services>) => Context<B>
1975
- /**
1976
- * Performs a series of mutations on a `Context`. Prevents unnecessary copying
1977
- * of the underlying map when multiple mutations are needed.
1978
- *
1979
- * **When to use**
1980
- *
1981
- * Use to apply several `Context` transformations in one callback while copying
1982
- * the underlying service map only once.
1983
- *
1984
- * @see {@link add} for adding or replacing a service
1985
- * @see {@link addOrOmit} for adding or removing a service from an `Option`
1986
- * @see {@link merge} for combining two contexts
1987
- * @see {@link pick} for keeping selected services
1988
- * @see {@link omit} for removing selected services
1989
- *
1990
- * @category mutations
1991
- * @since 4.0.0
1992
- */
1993
- <Services, B>(self: Context<Services>, f: (context: Context<Services>) => Context<B>): Context<B>
1994
- } = dual(
1995
- 2,
1996
- <Services, B>(self: Context<Services>, f: (context: Context<Services>) => Context<B>): Context<B> => {
1997
- const next = makeUnsafe</**
1998
- * Performs a series of mutations on a `Context`. Prevents unnecessary copying
1999
- * of the underlying map when multiple mutations are needed.
2000
- *
2001
- * **When to use**
2002
- *
2003
- * Use to apply several `Context` transformations in one callback while copying
2004
- * the underlying service map only once.
2005
- *
2006
- * @see {@link add} for adding or replacing a service
2007
- * @see {@link addOrOmit} for adding or removing a service from an `Option`
2008
- * @see {@link merge} for combining two contexts
2009
- * @see {@link pick} for keeping selected services
2010
- * @see {@link omit} for removing selected services
2011
- *
2012
- * @category mutations
2013
- * @since 4.0.0
2014
- */
2015
- Services>(new Map(self.mapUnsafe))
2016
- next.mutable = true
2017
- const result = f(next)
2018
- result.mutable = false
2019
- return result
2020
- }
2021
- )
2022
-
2023
- const withMapUnsafe = <Services, B>(self: Context<Services>, f: (map: Map<string, any>) => void): Context<B> => {
2024
- if (self.mutable) {
2025
- f(self.mapUnsafe as any)
2026
- return self as any
2027
- }
2028
- const map = new Map(self.mapUnsafe)
2029
- f(map)
2030
- return makeUnsafe(map)
2031
- }
2032
-
2033
1956
  /**
2034
1957
  * Creates a context key with a default value.
2035
1958
  *
@@ -2048,12 +1971,13 @@ const withMapUnsafe = <Services, B>(self: Context<Services>, f: (map: Map<string
2048
1971
  *
2049
1972
  * **Example** (Creating references with default values)
2050
1973
  *
2051
- * ```ts
1974
+ * ```ts import.meta.vitest
2052
1975
  * import { Context } from "effect"
2053
1976
  *
2054
1977
  * // Create a reference with a default value
1978
+ * const messages: Array<string> = []
2055
1979
  * const LoggerRef = Context.Reference("Logger", {
2056
- * defaultValue: () => ({ log: (msg: string) => console.log(msg) })
1980
+ * defaultValue: () => ({ log: (msg: string) => messages.push(`Default: ${msg}`) })
2057
1981
  * })
2058
1982
  *
2059
1983
  * // The reference provides the default value when accessed from an empty context
@@ -2062,17 +1986,24 @@ const withMapUnsafe = <Services, B>(self: Context<Services>, f: (map: Map<string
2062
1986
  *
2063
1987
  * // You can also override the default value
2064
1988
  * const customContext = Context.make(LoggerRef, {
2065
- * log: (msg: string) => `Custom: ${msg}`
1989
+ * log: (msg: string) => messages.push(`Custom: ${msg}`)
2066
1990
  * })
2067
1991
  * const customLogger = Context.get(customContext, LoggerRef)
1992
+ * logger.log("default")
1993
+ * customLogger.log("message")
1994
+ * messages // => ["Default: default", "Custom: message"]
2068
1995
  * ```
2069
1996
  *
2070
1997
  * @see {@link Service} for required services without default values
2071
1998
  *
2072
- * @category references
1999
+ * @category services
2073
2000
  * @since 3.11.0
2074
2001
  */
2075
2002
  export const Reference: <Service>(
2076
2003
  key: string,
2077
- options: { readonly defaultValue: () => Service }
2004
+ options: {
2005
+ readonly defaultValue: () => Service
2006
+ /** @internal */
2007
+ readonly fiberCached?: boolean | undefined
2008
+ }
2078
2009
  ) => Reference<Service> = Service as any