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/Cache.ts CHANGED
@@ -9,7 +9,6 @@
9
9
  * @since 4.0.0
10
10
  */
11
11
  import * as Context from "./Context.ts"
12
- import * as Deferred from "./Deferred.ts"
13
12
  import * as Duration from "./Duration.ts"
14
13
  import type * as Effect from "./Effect.ts"
15
14
  import type * as Exit from "./Exit.ts"
@@ -33,7 +32,7 @@ const TypeId = "~effect/Cache"
33
32
  *
34
33
  * **Example** (Creating a basic cache)
35
34
  *
36
- * ```ts
35
+ * ```ts import.meta.vitest
37
36
  * import { Cache, Effect } from "effect"
38
37
  *
39
38
  * // Basic cache with string keys and number values
@@ -50,12 +49,15 @@ const TypeId = "~effect/Cache"
50
49
  *
51
50
  * return [value1, value2, value3]
52
51
  * })
52
+ *
53
+ * const actual = await Effect.runPromise(program)
54
+ * actual // => [5, 5, 5]
53
55
  * ```
54
56
  *
55
57
  * **Example** (Handling lookup failures)
56
58
  *
57
- * ```ts
58
- * import { Cache, Effect } from "effect"
59
+ * ```ts import.meta.vitest
60
+ * import { Cache, Effect, Exit } from "effect"
59
61
  *
60
62
  * // Cache with error handling
61
63
  * const program = Effect.gen(function*() {
@@ -68,16 +70,19 @@ const TypeId = "~effect/Cache"
68
70
  * })
69
71
  *
70
72
  * // Handle successful and failed lookups
71
- * const success = yield* Cache.get(cache, "test") // 4
72
- * const failure = yield* Effect.exit(Cache.get(cache, "error")) // Exit.fail
73
+ * const success = yield* Cache.get(cache, "test")
74
+ * const failure = yield* Effect.exit(Cache.get(cache, "error"))
73
75
  *
74
- * return { success, failure }
76
+ * return [success, failure] as const
75
77
  * })
78
+ *
79
+ * const actual = await Effect.runPromise(program)
80
+ * actual // => [4, Exit.fail("Lookup failed")]
76
81
  * ```
77
82
  *
78
83
  * **Example** (Using complex keys with TTL)
79
84
  *
80
- * ```ts
85
+ * ```ts import.meta.vitest
81
86
  * import { Cache, Data, Duration, Effect } from "effect"
82
87
  *
83
88
  * // Cache with complex key types and TTL
@@ -93,8 +98,11 @@ const TypeId = "~effect/Cache"
93
98
  * const userId = new UserId({ id: 123 })
94
99
  * const userName = yield* Cache.get(userCache, userId)
95
100
  *
96
- * return userName // "User-123"
101
+ * return userName
97
102
  * })
103
+ *
104
+ * const actual = await Effect.runPromise(program)
105
+ * actual // => "User-123"
98
106
  * ```
99
107
  *
100
108
  * @category models
@@ -129,7 +137,9 @@ export interface Cache<in out Key, in out A, in out E = never, out R = never> ex
129
137
  */
130
138
  export interface Entry<A, E> {
131
139
  expiresAt: number | undefined
132
- readonly deferred: Deferred.Deferred<A, E>
140
+ awaiters: number
141
+ readonly fiber: Fiber.Fiber<A, E>
142
+ await(this: Entry<A, E>): Effect.Effect<A, E>
133
143
  }
134
144
 
135
145
  /**
@@ -147,11 +157,11 @@ export interface Entry<A, E> {
147
157
  *
148
158
  * **Example** (Configuring dynamic time to live)
149
159
  *
150
- * ```ts
160
+ * ```ts import.meta.vitest
151
161
  * import { Cache, Effect, Exit } from "effect"
152
162
  *
153
163
  * // Cache with TTL based on computed value
154
- * const userCache = Effect.gen(function*() {
164
+ * const program = Effect.gen(function*() {
155
165
  * const cache = yield* Cache.makeWith(
156
166
  * (id: number) => Effect.succeed({ id, active: id % 2 === 0 }),
157
167
  * {
@@ -166,8 +176,11 @@ export interface Entry<A, E> {
166
176
  * }
167
177
  * )
168
178
  *
169
- * return cache
179
+ * return cache.capacity
170
180
  * })
181
+ *
182
+ * const actual = await Effect.runPromise(program)
183
+ * actual // => 1000
171
184
  * ```
172
185
  *
173
186
  * @see {@link make} for a simpler cache constructor with a fixed time-to-live for all entries
@@ -214,7 +227,7 @@ export const makeWith = <
214
227
  *
215
228
  * **Example** (Creating a basic cache)
216
229
  *
217
- * ```ts
230
+ * ```ts import.meta.vitest
218
231
  * import { Cache, Effect } from "effect"
219
232
  *
220
233
  * // Basic cache with string keys
@@ -226,13 +239,16 @@ export const makeWith = <
226
239
  *
227
240
  * const result1 = yield* Cache.get(cache, "hello")
228
241
  * const result2 = yield* Cache.get(cache, "world")
229
- * console.log({ result1, result2 }) // { result1: 5, result2: 5 }
242
+ * return { result1, result2 }
230
243
  * })
244
+ *
245
+ * const actual = await Effect.runPromise(program)
246
+ * actual // => { result1: 5, result2: 5 }
231
247
  * ```
232
248
  *
233
249
  * **Example** (Creating a cache with TTL)
234
250
  *
235
- * ```ts
251
+ * ```ts import.meta.vitest
236
252
  * import { Cache, Effect } from "effect"
237
253
  *
238
254
  * const program = Effect.gen(function*() {
@@ -258,11 +274,12 @@ export const makeWith = <
258
274
  * })
259
275
  *
260
276
  * const user1 = yield* Cache.get(cache, 123)
261
- * console.log(user1) // { name: "Ada", email: "ada@example.com" }
262
- *
263
277
  * const user2 = yield* Cache.get(cache, 123)
264
- * console.log(user2) // { name: "Ada", email: "ada@example.com" }
278
+ * return [user1, user2, user1 === user2] as const
265
279
  * })
280
+ *
281
+ * const actual = await Effect.runPromise(program)
282
+ * actual // => [{ name: "Ada", email: "ada@example.com" }, { name: "Ada", email: "ada@example.com" }, true]
266
283
  * ```
267
284
  *
268
285
  * @category constructors
@@ -288,7 +305,7 @@ export const make = <
288
305
  > =>
289
306
  makeWith<Key, A, E, R, ServiceMode>(options.lookup, {
290
307
  ...options,
291
- timeToLive: options.timeToLive ? () => options.timeToLive! : defaultTimeToLive
308
+ timeToLive: options.timeToLive !== undefined ? () => options.timeToLive! : defaultTimeToLive
292
309
  })
293
310
 
294
311
  const Proto = {
@@ -317,7 +334,7 @@ const defaultTimeToLive = <A, E>(_: Exit.Exit<A, E>, _key: unknown): Duration.Du
317
334
  *
318
335
  * **Example** (Getting cached values)
319
336
  *
320
- * ```ts
337
+ * ```ts import.meta.vitest
321
338
  * import { Cache, Effect } from "effect"
322
339
  *
323
340
  * const program = Effect.gen(function*() {
@@ -328,20 +345,21 @@ const defaultTimeToLive = <A, E>(_: Exit.Exit<A, E>, _key: unknown): Duration.Du
328
345
  *
329
346
  * // Cache miss - triggers lookup function
330
347
  * const result1 = yield* Cache.get(cache, "hello")
331
- * console.log(result1) // 5
332
348
  *
333
349
  * // Cache hit - returns cached value without lookup
334
350
  * const result2 = yield* Cache.get(cache, "hello")
335
- * console.log(result2) // 5 (from cache)
336
351
  *
337
352
  * return { result1, result2 }
338
353
  * })
354
+ *
355
+ * const actual = await Effect.runPromise(program)
356
+ * actual // => { result1: 5, result2: 5 }
339
357
  * ```
340
358
  *
341
359
  * **Example** (Handling lookup failures)
342
360
  *
343
- * ```ts
344
- * import { Cache, Effect } from "effect"
361
+ * ```ts import.meta.vitest
362
+ * import { Cache, Effect, Exit } from "effect"
345
363
  *
346
364
  * // Error handling when lookup fails
347
365
  * const program = Effect.gen(function*() {
@@ -355,17 +373,19 @@ const defaultTimeToLive = <A, E>(_: Exit.Exit<A, E>, _key: unknown): Duration.Du
355
373
  *
356
374
  * // Successful lookup
357
375
  * const success = yield* Cache.get(cache, "hello")
358
- * console.log(success) // 5
359
376
  *
360
377
  * // Failed lookup - returns error
361
378
  * const failure = yield* Effect.exit(Cache.get(cache, "error"))
362
- * console.log(failure) // Exit.fail("Lookup failed")
379
+ * return [success, failure] as const
363
380
  * })
381
+ *
382
+ * const actual = await Effect.runPromise(program)
383
+ * actual // => [5, Exit.fail("Lookup failed")]
364
384
  * ```
365
385
  *
366
386
  * **Example** (Sharing concurrent lookups)
367
387
  *
368
- * ```ts
388
+ * ```ts import.meta.vitest
369
389
  * import { Cache, Effect } from "effect"
370
390
  *
371
391
  * // Concurrent access - multiple gets of same key only invoke lookup once
@@ -387,9 +407,11 @@ const defaultTimeToLive = <A, E>(_: Exit.Exit<A, E>, _key: unknown): Duration.Du
387
407
  * Cache.get(cache, "hello")
388
408
  * ], { concurrency: "unbounded" })
389
409
  *
390
- * console.log(results) // [5, 5, 5]
391
- * console.log(lookupCount) // 1 (lookup called only once)
410
+ * return { results, lookupCount }
392
411
  * })
412
+ *
413
+ * const actual = await Effect.runPromise(program)
414
+ * actual // => { results: [5, 5, 5], lookupCount: 1 }
393
415
  * ```
394
416
  *
395
417
  * @category combinators
@@ -408,7 +430,7 @@ export const get: {
408
430
  *
409
431
  * **Example** (Getting cached values)
410
432
  *
411
- * ```ts
433
+ * ```ts import.meta.vitest
412
434
  * import { Cache, Effect } from "effect"
413
435
  *
414
436
  * const program = Effect.gen(function*() {
@@ -419,20 +441,21 @@ export const get: {
419
441
  *
420
442
  * // Cache miss - triggers lookup function
421
443
  * const result1 = yield* Cache.get(cache, "hello")
422
- * console.log(result1) // 5
423
444
  *
424
445
  * // Cache hit - returns cached value without lookup
425
446
  * const result2 = yield* Cache.get(cache, "hello")
426
- * console.log(result2) // 5 (from cache)
427
447
  *
428
448
  * return { result1, result2 }
429
449
  * })
450
+ *
451
+ * const actual = await Effect.runPromise(program)
452
+ * actual // => { result1: 5, result2: 5 }
430
453
  * ```
431
454
  *
432
455
  * **Example** (Handling lookup failures)
433
456
  *
434
- * ```ts
435
- * import { Cache, Effect } from "effect"
457
+ * ```ts import.meta.vitest
458
+ * import { Cache, Effect, Exit } from "effect"
436
459
  *
437
460
  * // Error handling when lookup fails
438
461
  * const program = Effect.gen(function*() {
@@ -446,17 +469,19 @@ export const get: {
446
469
  *
447
470
  * // Successful lookup
448
471
  * const success = yield* Cache.get(cache, "hello")
449
- * console.log(success) // 5
450
472
  *
451
473
  * // Failed lookup - returns error
452
474
  * const failure = yield* Effect.exit(Cache.get(cache, "error"))
453
- * console.log(failure) // Exit.fail("Lookup failed")
475
+ * return [success, failure] as const
454
476
  * })
477
+ *
478
+ * const actual = await Effect.runPromise(program)
479
+ * actual // => [5, Exit.fail("Lookup failed")]
455
480
  * ```
456
481
  *
457
482
  * **Example** (Sharing concurrent lookups)
458
483
  *
459
- * ```ts
484
+ * ```ts import.meta.vitest
460
485
  * import { Cache, Effect } from "effect"
461
486
  *
462
487
  * // Concurrent access - multiple gets of same key only invoke lookup once
@@ -478,9 +503,11 @@ export const get: {
478
503
  * Cache.get(cache, "hello")
479
504
  * ], { concurrency: "unbounded" })
480
505
  *
481
- * console.log(results) // [5, 5, 5]
482
- * console.log(lookupCount) // 1 (lookup called only once)
506
+ * return { results, lookupCount }
483
507
  * })
508
+ *
509
+ * const actual = await Effect.runPromise(program)
510
+ * actual // => { results: [5, 5, 5], lookupCount: 1 }
484
511
  * ```
485
512
  *
486
513
  * @category combinators
@@ -499,7 +526,7 @@ export const get: {
499
526
  *
500
527
  * **Example** (Getting cached values)
501
528
  *
502
- * ```ts
529
+ * ```ts import.meta.vitest
503
530
  * import { Cache, Effect } from "effect"
504
531
  *
505
532
  * const program = Effect.gen(function*() {
@@ -510,20 +537,21 @@ export const get: {
510
537
  *
511
538
  * // Cache miss - triggers lookup function
512
539
  * const result1 = yield* Cache.get(cache, "hello")
513
- * console.log(result1) // 5
514
540
  *
515
541
  * // Cache hit - returns cached value without lookup
516
542
  * const result2 = yield* Cache.get(cache, "hello")
517
- * console.log(result2) // 5 (from cache)
518
543
  *
519
544
  * return { result1, result2 }
520
545
  * })
546
+ *
547
+ * const actual = await Effect.runPromise(program)
548
+ * actual // => { result1: 5, result2: 5 }
521
549
  * ```
522
550
  *
523
551
  * **Example** (Handling lookup failures)
524
552
  *
525
- * ```ts
526
- * import { Cache, Effect } from "effect"
553
+ * ```ts import.meta.vitest
554
+ * import { Cache, Effect, Exit } from "effect"
527
555
  *
528
556
  * // Error handling when lookup fails
529
557
  * const program = Effect.gen(function*() {
@@ -537,17 +565,19 @@ export const get: {
537
565
  *
538
566
  * // Successful lookup
539
567
  * const success = yield* Cache.get(cache, "hello")
540
- * console.log(success) // 5
541
568
  *
542
569
  * // Failed lookup - returns error
543
570
  * const failure = yield* Effect.exit(Cache.get(cache, "error"))
544
- * console.log(failure) // Exit.fail("Lookup failed")
571
+ * return [success, failure] as const
545
572
  * })
573
+ *
574
+ * const actual = await Effect.runPromise(program)
575
+ * actual // => [5, Exit.fail("Lookup failed")]
546
576
  * ```
547
577
  *
548
578
  * **Example** (Sharing concurrent lookups)
549
579
  *
550
- * ```ts
580
+ * ```ts import.meta.vitest
551
581
  * import { Cache, Effect } from "effect"
552
582
  *
553
583
  * // Concurrent access - multiple gets of same key only invoke lookup once
@@ -569,9 +599,11 @@ export const get: {
569
599
  * Cache.get(cache, "hello")
570
600
  * ], { concurrency: "unbounded" })
571
601
  *
572
- * console.log(results) // [5, 5, 5]
573
- * console.log(lookupCount) // 1 (lookup called only once)
602
+ * return { results, lookupCount }
574
603
  * })
604
+ *
605
+ * const actual = await Effect.runPromise(program)
606
+ * actual // => { results: [5, 5, 5], lookupCount: 1 }
575
607
  * ```
576
608
  *
577
609
  * @category combinators
@@ -587,210 +619,58 @@ export const get: {
587
619
  // Move the entry to the end of the map to keep it fresh
588
620
  MutableHashMap.remove(self.map, key)
589
621
  MutableHashMap.set(self.map, key, oentry.value)
590
- return Deferred.await(oentry.value.deferred)
591
- }
592
- const deferred = Deferred.makeUnsafe</**
593
- * Retrieves the value for a key, invoking the lookup function on a cache miss
594
- * or expired entry.
595
- *
596
- * **Details**
597
- *
598
- * Concurrent `get` calls for the same missing key share the same pending
599
- * lookup. The cache stores the lookup `Exit`, so failed lookups are cached and
600
- * will fail again until the entry expires, is invalidated, or is refreshed.
601
- *
602
- * **Example** (Getting cached values)
603
- *
604
- * ```ts
605
- * import { Cache, Effect } from "effect"
606
- *
607
- * const program = Effect.gen(function*() {
608
- * const cache = yield* Cache.make({
609
- * capacity: 10,
610
- * lookup: (key: string) => Effect.succeed(key.length)
611
- * })
612
- *
613
- * // Cache miss - triggers lookup function
614
- * const result1 = yield* Cache.get(cache, "hello")
615
- * console.log(result1) // 5
616
- *
617
- * // Cache hit - returns cached value without lookup
618
- * const result2 = yield* Cache.get(cache, "hello")
619
- * console.log(result2) // 5 (from cache)
620
- *
621
- * return { result1, result2 }
622
- * })
623
- * ```
624
- *
625
- * **Example** (Handling lookup failures)
626
- *
627
- * ```ts
628
- * import { Cache, Effect } from "effect"
629
- *
630
- * // Error handling when lookup fails
631
- * const program = Effect.gen(function*() {
632
- * const cache = yield* Cache.make<string, number, string>({
633
- * capacity: 10,
634
- * lookup: (key: string) =>
635
- * key === "error"
636
- * ? Effect.fail("Lookup failed")
637
- * : Effect.succeed(key.length)
638
- * })
639
- *
640
- * // Successful lookup
641
- * const success = yield* Cache.get(cache, "hello")
642
- * console.log(success) // 5
643
- *
644
- * // Failed lookup - returns error
645
- * const failure = yield* Effect.exit(Cache.get(cache, "error"))
646
- * console.log(failure) // Exit.fail("Lookup failed")
647
- * })
648
- * ```
649
- *
650
- * **Example** (Sharing concurrent lookups)
651
- *
652
- * ```ts
653
- * import { Cache, Effect } from "effect"
654
- *
655
- * // Concurrent access - multiple gets of same key only invoke lookup once
656
- * const program = Effect.gen(function*() {
657
- * let lookupCount = 0
658
- * const cache = yield* Cache.make({
659
- * capacity: 10,
660
- * lookup: (key: string) =>
661
- * Effect.sync(() => {
662
- * lookupCount++
663
- * return key.length
664
- * })
665
- * })
666
- *
667
- * // Multiple concurrent gets
668
- * const results = yield* Effect.all([
669
- * Cache.get(cache, "hello"),
670
- * Cache.get(cache, "hello"),
671
- * Cache.get(cache, "hello")
672
- * ], { concurrency: "unbounded" })
673
- *
674
- * console.log(results) // [5, 5, 5]
675
- * console.log(lookupCount) // 1 (lookup called only once)
676
- * })
677
- * ```
678
- *
679
- * @category combinators
680
- * @since 4.0.0
681
- */
682
- A, /**
683
- * Retrieves the value for a key, invoking the lookup function on a cache miss
684
- * or expired entry.
685
- *
686
- * **Details**
687
- *
688
- * Concurrent `get` calls for the same missing key share the same pending
689
- * lookup. The cache stores the lookup `Exit`, so failed lookups are cached and
690
- * will fail again until the entry expires, is invalidated, or is refreshed.
691
- *
692
- * **Example** (Getting cached values)
693
- *
694
- * ```ts
695
- * import { Cache, Effect } from "effect"
696
- *
697
- * const program = Effect.gen(function*() {
698
- * const cache = yield* Cache.make({
699
- * capacity: 10,
700
- * lookup: (key: string) => Effect.succeed(key.length)
701
- * })
702
- *
703
- * // Cache miss - triggers lookup function
704
- * const result1 = yield* Cache.get(cache, "hello")
705
- * console.log(result1) // 5
706
- *
707
- * // Cache hit - returns cached value without lookup
708
- * const result2 = yield* Cache.get(cache, "hello")
709
- * console.log(result2) // 5 (from cache)
710
- *
711
- * return { result1, result2 }
712
- * })
713
- * ```
714
- *
715
- * **Example** (Handling lookup failures)
716
- *
717
- * ```ts
718
- * import { Cache, Effect } from "effect"
719
- *
720
- * // Error handling when lookup fails
721
- * const program = Effect.gen(function*() {
722
- * const cache = yield* Cache.make<string, number, string>({
723
- * capacity: 10,
724
- * lookup: (key: string) =>
725
- * key === "error"
726
- * ? Effect.fail("Lookup failed")
727
- * : Effect.succeed(key.length)
728
- * })
729
- *
730
- * // Successful lookup
731
- * const success = yield* Cache.get(cache, "hello")
732
- * console.log(success) // 5
733
- *
734
- * // Failed lookup - returns error
735
- * const failure = yield* Effect.exit(Cache.get(cache, "error"))
736
- * console.log(failure) // Exit.fail("Lookup failed")
737
- * })
738
- * ```
739
- *
740
- * **Example** (Sharing concurrent lookups)
741
- *
742
- * ```ts
743
- * import { Cache, Effect } from "effect"
744
- *
745
- * // Concurrent access - multiple gets of same key only invoke lookup once
746
- * const program = Effect.gen(function*() {
747
- * let lookupCount = 0
748
- * const cache = yield* Cache.make({
749
- * capacity: 10,
750
- * lookup: (key: string) =>
751
- * Effect.sync(() => {
752
- * lookupCount++
753
- * return key.length
754
- * })
755
- * })
756
- *
757
- * // Multiple concurrent gets
758
- * const results = yield* Effect.all([
759
- * Cache.get(cache, "hello"),
760
- * Cache.get(cache, "hello"),
761
- * Cache.get(cache, "hello")
762
- * ], { concurrency: "unbounded" })
763
- *
764
- * console.log(results) // [5, 5, 5]
765
- * console.log(lookupCount) // 1 (lookup called only once)
766
- * })
767
- * ```
768
- *
769
- * @category combinators
770
- * @since 4.0.0
771
- */
772
- E>()
773
- const entry: Entry<A, E> = {
774
- expiresAt: undefined,
775
- deferred
776
- }
777
- MutableHashMap.set(self.map, key, entry)
778
- if (Number.isFinite(self.capacity)) {
779
- checkCapacity(self)
622
+ return oentry.value.await()
780
623
  }
781
- return effect.onExit(self.lookup(key), (exit) => {
782
- Deferred.doneUnsafe(deferred, exit)
624
+ const entry = new EntryImpl(fiber, self.lookup(key))
625
+ entry.fiber.addObserver((exit) => {
626
+ if (effect.exitHasInterrupts(exit)) {
627
+ const current = MutableHashMap.get(self.map, key)
628
+ if (Option.isSome(current) && current.value === entry) {
629
+ MutableHashMap.remove(self.map, key)
630
+ }
631
+ return
632
+ }
783
633
  const ttl = self.timeToLive(exit, key)
784
634
  if (Duration.isFinite(ttl)) {
785
635
  entry.expiresAt = fiber.getRef(effect.ClockRef).currentTimeMillisUnsafe() + Duration.toMillis(ttl)
786
636
  } else if (Duration.isZero(ttl)) {
787
637
  MutableHashMap.remove(self.map, key)
788
638
  }
789
- return effect.void
790
639
  })
640
+ MutableHashMap.set(self.map, key, entry)
641
+ if (Number.isFinite(self.capacity)) {
642
+ checkCapacity(self)
643
+ }
644
+ return entry.await()
791
645
  })
792
646
  )
793
647
 
648
+ class EntryImpl<A, E> implements Entry<A, E> {
649
+ expiresAt: number | undefined
650
+ awaiters: number
651
+ fiber: Fiber.Fiber<A, E>
652
+
653
+ constructor(
654
+ parent: Fiber.Fiber<unknown, unknown>,
655
+ valueEffect: Effect.Effect<A, E, any>
656
+ ) {
657
+ this.fiber = effect.forkUnsafe(parent, valueEffect, true, true)
658
+ this.awaiters = 0
659
+ this.expiresAt = undefined
660
+ }
661
+
662
+ await(): Effect.Effect<A, E> {
663
+ const exit = this.fiber.pollUnsafe()
664
+ if (exit) return exit
665
+ this.awaiters++
666
+ return effect.onExit(effect.fiberJoin(this.fiber), () => {
667
+ this.awaiters--
668
+ if (this.awaiters > 0 || this.fiber.pollUnsafe()) return effect.void
669
+ return effect.fiberInterrupt(this.fiber)
670
+ })
671
+ }
672
+ }
673
+
794
674
  const hasExpired = <A, E>(entry: Entry<A, E>, fiber: Fiber.Fiber<unknown, unknown>): boolean => {
795
675
  if (entry.expiresAt === undefined) {
796
676
  return false
@@ -821,8 +701,8 @@ const checkCapacity = <K, A, E, R>(self: Cache<K, A, E, R>) => {
821
701
  *
822
702
  * **Example** (Reading cached values without lookup)
823
703
  *
824
- * ```ts
825
- * import { Cache, Effect } from "effect"
704
+ * ```ts import.meta.vitest
705
+ * import { Cache, Effect, Option } from "effect"
826
706
  *
827
707
  * const program = Effect.gen(function*() {
828
708
  * const cache = yield* Cache.make({
@@ -832,23 +712,23 @@ const checkCapacity = <K, A, E, R>(self: Cache<K, A, E, R>) => {
832
712
  *
833
713
  * // No value in cache yet - returns None without lookup
834
714
  * const empty = yield* Cache.getOption(cache, "hello")
835
- * console.log(empty) // Option.none()
836
715
  *
837
716
  * // Populate cache using get
838
717
  * yield* Cache.get(cache, "hello")
839
718
  *
840
719
  * // Now getOption returns the cached value
841
720
  * const cached = yield* Cache.getOption(cache, "hello")
842
- * console.log(cached) // Option.some(5)
843
- *
844
- * return { empty, cached }
721
+ * return [empty, cached] as const
845
722
  * })
723
+ *
724
+ * const actual = await Effect.runPromise(program)
725
+ * actual // => [Option.none(), Option.some(5)]
846
726
  * ```
847
727
  *
848
728
  * **Example** (Skipping expired entries)
849
729
  *
850
- * ```ts
851
- * import { Cache, Effect } from "effect"
730
+ * ```ts import.meta.vitest
731
+ * import { Cache, Effect, Option } from "effect"
852
732
  * import { TestClock } from "effect/testing"
853
733
  *
854
734
  * // Expired entries return None
@@ -864,21 +744,23 @@ const checkCapacity = <K, A, E, R>(self: Cache<K, A, E, R>) => {
864
744
  *
865
745
  * // Value exists before expiration
866
746
  * const beforeExpiry = yield* Cache.getOption(cache, "hello")
867
- * console.log(beforeExpiry) // Option.some(5)
868
747
  *
869
748
  * // Simulate time passing
870
749
  * yield* TestClock.adjust("2 hours")
871
750
  *
872
751
  * // Value expired - returns None
873
752
  * const afterExpiry = yield* Cache.getOption(cache, "hello")
874
- * console.log(afterExpiry) // Option.none()
753
+ * return [beforeExpiry, afterExpiry] as const
875
754
  * })
755
+ *
756
+ * const actual = await Effect.runPromise(Effect.provide(program, TestClock.layer()))
757
+ * actual // => [Option.some(5), Option.none()]
876
758
  * ```
877
759
  *
878
760
  * **Example** (Waiting for pending lookups)
879
761
  *
880
- * ```ts
881
- * import { Cache, Deferred, Effect, Fiber } from "effect"
762
+ * ```ts import.meta.vitest
763
+ * import { Cache, Deferred, Effect, Fiber, Option } from "effect"
882
764
  *
883
765
  * // Waits for ongoing computation to complete
884
766
  * const program = Effect.gen(function*() {
@@ -898,11 +780,12 @@ const checkCapacity = <K, A, E, R>(self: Cache<K, A, E, R>) => {
898
780
  * yield* Deferred.succeed(deferred, void 0)
899
781
  *
900
782
  * const result = yield* Fiber.join(optionFiber)
901
- * console.log(result) // Option.some(42)
902
- *
903
783
  * const value = yield* Fiber.join(getFiber)
904
- * console.log(value) // 42
784
+ * return [result, value] as const
905
785
  * })
786
+ *
787
+ * const actual = await Effect.runPromise(program)
788
+ * actual // => [Option.some(42), 42]
906
789
  * ```
907
790
  *
908
791
  * @category combinators
@@ -921,8 +804,8 @@ export const getOption: {
921
804
  *
922
805
  * **Example** (Reading cached values without lookup)
923
806
  *
924
- * ```ts
925
- * import { Cache, Effect } from "effect"
807
+ * ```ts import.meta.vitest
808
+ * import { Cache, Effect, Option } from "effect"
926
809
  *
927
810
  * const program = Effect.gen(function*() {
928
811
  * const cache = yield* Cache.make({
@@ -932,23 +815,23 @@ export const getOption: {
932
815
  *
933
816
  * // No value in cache yet - returns None without lookup
934
817
  * const empty = yield* Cache.getOption(cache, "hello")
935
- * console.log(empty) // Option.none()
936
818
  *
937
819
  * // Populate cache using get
938
820
  * yield* Cache.get(cache, "hello")
939
821
  *
940
822
  * // Now getOption returns the cached value
941
823
  * const cached = yield* Cache.getOption(cache, "hello")
942
- * console.log(cached) // Option.some(5)
943
- *
944
- * return { empty, cached }
824
+ * return [empty, cached] as const
945
825
  * })
826
+ *
827
+ * const actual = await Effect.runPromise(program)
828
+ * actual // => [Option.none(), Option.some(5)]
946
829
  * ```
947
830
  *
948
831
  * **Example** (Skipping expired entries)
949
832
  *
950
- * ```ts
951
- * import { Cache, Effect } from "effect"
833
+ * ```ts import.meta.vitest
834
+ * import { Cache, Effect, Option } from "effect"
952
835
  * import { TestClock } from "effect/testing"
953
836
  *
954
837
  * // Expired entries return None
@@ -964,21 +847,23 @@ export const getOption: {
964
847
  *
965
848
  * // Value exists before expiration
966
849
  * const beforeExpiry = yield* Cache.getOption(cache, "hello")
967
- * console.log(beforeExpiry) // Option.some(5)
968
850
  *
969
851
  * // Simulate time passing
970
852
  * yield* TestClock.adjust("2 hours")
971
853
  *
972
854
  * // Value expired - returns None
973
855
  * const afterExpiry = yield* Cache.getOption(cache, "hello")
974
- * console.log(afterExpiry) // Option.none()
856
+ * return [beforeExpiry, afterExpiry] as const
975
857
  * })
858
+ *
859
+ * const actual = await Effect.runPromise(Effect.provide(program, TestClock.layer()))
860
+ * actual // => [Option.some(5), Option.none()]
976
861
  * ```
977
862
  *
978
863
  * **Example** (Waiting for pending lookups)
979
864
  *
980
- * ```ts
981
- * import { Cache, Deferred, Effect, Fiber } from "effect"
865
+ * ```ts import.meta.vitest
866
+ * import { Cache, Deferred, Effect, Fiber, Option } from "effect"
982
867
  *
983
868
  * // Waits for ongoing computation to complete
984
869
  * const program = Effect.gen(function*() {
@@ -998,11 +883,12 @@ export const getOption: {
998
883
  * yield* Deferred.succeed(deferred, void 0)
999
884
  *
1000
885
  * const result = yield* Fiber.join(optionFiber)
1001
- * console.log(result) // Option.some(42)
1002
- *
1003
886
  * const value = yield* Fiber.join(getFiber)
1004
- * console.log(value) // 42
887
+ * return [result, value] as const
1005
888
  * })
889
+ *
890
+ * const actual = await Effect.runPromise(program)
891
+ * actual // => [Option.some(42), 42]
1006
892
  * ```
1007
893
  *
1008
894
  * @category combinators
@@ -1021,8 +907,8 @@ export const getOption: {
1021
907
  *
1022
908
  * **Example** (Reading cached values without lookup)
1023
909
  *
1024
- * ```ts
1025
- * import { Cache, Effect } from "effect"
910
+ * ```ts import.meta.vitest
911
+ * import { Cache, Effect, Option } from "effect"
1026
912
  *
1027
913
  * const program = Effect.gen(function*() {
1028
914
  * const cache = yield* Cache.make({
@@ -1032,23 +918,23 @@ export const getOption: {
1032
918
  *
1033
919
  * // No value in cache yet - returns None without lookup
1034
920
  * const empty = yield* Cache.getOption(cache, "hello")
1035
- * console.log(empty) // Option.none()
1036
921
  *
1037
922
  * // Populate cache using get
1038
923
  * yield* Cache.get(cache, "hello")
1039
924
  *
1040
925
  * // Now getOption returns the cached value
1041
926
  * const cached = yield* Cache.getOption(cache, "hello")
1042
- * console.log(cached) // Option.some(5)
1043
- *
1044
- * return { empty, cached }
927
+ * return [empty, cached] as const
1045
928
  * })
929
+ *
930
+ * const actual = await Effect.runPromise(program)
931
+ * actual // => [Option.none(), Option.some(5)]
1046
932
  * ```
1047
933
  *
1048
934
  * **Example** (Skipping expired entries)
1049
935
  *
1050
- * ```ts
1051
- * import { Cache, Effect } from "effect"
936
+ * ```ts import.meta.vitest
937
+ * import { Cache, Effect, Option } from "effect"
1052
938
  * import { TestClock } from "effect/testing"
1053
939
  *
1054
940
  * // Expired entries return None
@@ -1064,21 +950,23 @@ export const getOption: {
1064
950
  *
1065
951
  * // Value exists before expiration
1066
952
  * const beforeExpiry = yield* Cache.getOption(cache, "hello")
1067
- * console.log(beforeExpiry) // Option.some(5)
1068
953
  *
1069
954
  * // Simulate time passing
1070
955
  * yield* TestClock.adjust("2 hours")
1071
956
  *
1072
957
  * // Value expired - returns None
1073
958
  * const afterExpiry = yield* Cache.getOption(cache, "hello")
1074
- * console.log(afterExpiry) // Option.none()
959
+ * return [beforeExpiry, afterExpiry] as const
1075
960
  * })
961
+ *
962
+ * const actual = await Effect.runPromise(Effect.provide(program, TestClock.layer()))
963
+ * actual // => [Option.some(5), Option.none()]
1076
964
  * ```
1077
965
  *
1078
966
  * **Example** (Waiting for pending lookups)
1079
967
  *
1080
- * ```ts
1081
- * import { Cache, Deferred, Effect, Fiber } from "effect"
968
+ * ```ts import.meta.vitest
969
+ * import { Cache, Deferred, Effect, Fiber, Option } from "effect"
1082
970
  *
1083
971
  * // Waits for ongoing computation to complete
1084
972
  * const program = Effect.gen(function*() {
@@ -1098,11 +986,12 @@ export const getOption: {
1098
986
  * yield* Deferred.succeed(deferred, void 0)
1099
987
  *
1100
988
  * const result = yield* Fiber.join(optionFiber)
1101
- * console.log(result) // Option.some(42)
1102
- *
1103
989
  * const value = yield* Fiber.join(getFiber)
1104
- * console.log(value) // 42
990
+ * return [result, value] as const
1105
991
  * })
992
+ *
993
+ * const actual = await Effect.runPromise(program)
994
+ * actual // => [Option.some(42), 42]
1106
995
  * ```
1107
996
  *
1108
997
  * @category combinators
@@ -1114,7 +1003,7 @@ export const getOption: {
1114
1003
  <Key, A, E, R>(self: Cache<Key, A, E, R>, key: Key): Effect.Effect<Option.Option<A>, E> =>
1115
1004
  core.withFiber((fiber) => {
1116
1005
  const entry = getImpl(self, key, fiber)
1117
- return entry ? effect.asSome(Deferred.await(entry.deferred)) : effect.succeedNone
1006
+ return entry ? effect.asSome(entry.await()) : effect.succeedNone
1118
1007
  })
1119
1008
  )
1120
1009
 
@@ -1192,7 +1081,7 @@ export const getSuccess: {
1192
1081
  2,
1193
1082
  <Key, A, E, R>(self: Cache<Key, A, E, R>, key: Key): Effect.Effect<Option.Option<A>> =>
1194
1083
  core.withFiber((fiber) => {
1195
- const exit = getImpl(self, key, fiber)?.deferred.effect as Exit.Exit<A, E> | undefined
1084
+ const exit = getImpl(self, key, fiber)?.fiber.pollUnsafe()
1196
1085
  if (exit && effect.exitIsSuccess(exit)) {
1197
1086
  return effect.succeedSome(exit.value)
1198
1087
  }
@@ -1206,7 +1095,7 @@ export const getSuccess: {
1206
1095
  *
1207
1096
  * **Example** (Setting values directly)
1208
1097
  *
1209
- * ```ts
1098
+ * ```ts import.meta.vitest
1210
1099
  * import { Cache, Effect } from "effect"
1211
1100
  *
1212
1101
  * const program = Effect.gen(function*() {
@@ -1217,14 +1106,16 @@ export const getSuccess: {
1217
1106
  *
1218
1107
  * // Set a value directly without invoking lookup
1219
1108
  * yield* Cache.set(cache, "hello", 42)
1220
- * const result = yield* Cache.get(cache, "hello")
1221
- * console.log(result) // 42 (not 5 from lookup)
1109
+ * return yield* Cache.get(cache, "hello")
1222
1110
  * })
1111
+ *
1112
+ * const actual = await Effect.runPromise(program)
1113
+ * actual // => 42
1223
1114
  * ```
1224
1115
  *
1225
1116
  * **Example** (Overwriting cached values)
1226
1117
  *
1227
- * ```ts
1118
+ * ```ts import.meta.vitest
1228
1119
  * import { Cache, Effect } from "effect"
1229
1120
  *
1230
1121
  * // Overwriting existing cached values
@@ -1241,13 +1132,16 @@ export const getSuccess: {
1241
1132
  * yield* Cache.set(cache, "test", 999)
1242
1133
  * const updated = yield* Cache.get(cache, "test") // 999
1243
1134
  *
1244
- * console.log({ original, updated })
1135
+ * return { original, updated }
1245
1136
  * })
1137
+ *
1138
+ * const actual = await Effect.runPromise(program)
1139
+ * actual // => { original: 4, updated: 999 }
1246
1140
  * ```
1247
1141
  *
1248
1142
  * **Example** (Applying TTL to set values)
1249
1143
  *
1250
- * ```ts
1144
+ * ```ts import.meta.vitest
1251
1145
  * import { Cache, Effect } from "effect"
1252
1146
  * import { TestClock } from "effect/testing"
1253
1147
  *
@@ -1261,17 +1155,21 @@ export const getSuccess: {
1261
1155
  *
1262
1156
  * // Set value with TTL applied
1263
1157
  * yield* Cache.set(cache, "temporary", 123)
1264
- * console.log(yield* Cache.has(cache, "temporary")) // true
1158
+ * const beforeExpiry = yield* Cache.has(cache, "temporary")
1265
1159
  *
1266
1160
  * // Advance time past TTL
1267
1161
  * yield* TestClock.adjust("2 hours")
1268
- * console.log(yield* Cache.has(cache, "temporary")) // false
1162
+ * const afterExpiry = yield* Cache.has(cache, "temporary")
1163
+ * return [beforeExpiry, afterExpiry]
1269
1164
  * })
1165
+ *
1166
+ * const actual = await Effect.runPromise(Effect.provide(program, TestClock.layer()))
1167
+ * actual // => [true, false]
1270
1168
  * ```
1271
1169
  *
1272
1170
  * **Example** (Enforcing capacity when setting values)
1273
1171
  *
1274
- * ```ts
1172
+ * ```ts import.meta.vitest
1275
1173
  * import { Cache, Effect } from "effect"
1276
1174
  *
1277
1175
  * // Capacity enforcement with set operations
@@ -1284,14 +1182,18 @@ export const getSuccess: {
1284
1182
  * // Fill cache to capacity
1285
1183
  * yield* Cache.set(cache, "a", 1)
1286
1184
  * yield* Cache.set(cache, "b", 2)
1287
- * console.log(yield* Cache.size(cache)) // 2
1185
+ * const sizeBeforeEviction = yield* Cache.size(cache)
1288
1186
  *
1289
1187
  * // Adding another entry evicts oldest
1290
1188
  * yield* Cache.set(cache, "c", 3)
1291
- * console.log(yield* Cache.size(cache)) // 2
1292
- * console.log(yield* Cache.has(cache, "a")) // false (evicted)
1293
- * console.log(yield* Cache.has(cache, "c")) // true
1189
+ * const sizeAfterEviction = yield* Cache.size(cache)
1190
+ * const hasOldest = yield* Cache.has(cache, "a")
1191
+ * const hasNewest = yield* Cache.has(cache, "c")
1192
+ * return [sizeBeforeEviction, sizeAfterEviction, hasOldest, hasNewest]
1294
1193
  * })
1194
+ *
1195
+ * const actual = await Effect.runPromise(program)
1196
+ * actual // => [2, 2, false, true]
1295
1197
  * ```
1296
1198
  *
1297
1199
  * @category combinators
@@ -1304,7 +1206,7 @@ export const set: {
1304
1206
  *
1305
1207
  * **Example** (Setting values directly)
1306
1208
  *
1307
- * ```ts
1209
+ * ```ts import.meta.vitest
1308
1210
  * import { Cache, Effect } from "effect"
1309
1211
  *
1310
1212
  * const program = Effect.gen(function*() {
@@ -1315,14 +1217,16 @@ export const set: {
1315
1217
  *
1316
1218
  * // Set a value directly without invoking lookup
1317
1219
  * yield* Cache.set(cache, "hello", 42)
1318
- * const result = yield* Cache.get(cache, "hello")
1319
- * console.log(result) // 42 (not 5 from lookup)
1220
+ * return yield* Cache.get(cache, "hello")
1320
1221
  * })
1222
+ *
1223
+ * const actual = await Effect.runPromise(program)
1224
+ * actual // => 42
1321
1225
  * ```
1322
1226
  *
1323
1227
  * **Example** (Overwriting cached values)
1324
1228
  *
1325
- * ```ts
1229
+ * ```ts import.meta.vitest
1326
1230
  * import { Cache, Effect } from "effect"
1327
1231
  *
1328
1232
  * // Overwriting existing cached values
@@ -1339,13 +1243,16 @@ export const set: {
1339
1243
  * yield* Cache.set(cache, "test", 999)
1340
1244
  * const updated = yield* Cache.get(cache, "test") // 999
1341
1245
  *
1342
- * console.log({ original, updated })
1246
+ * return { original, updated }
1343
1247
  * })
1248
+ *
1249
+ * const actual = await Effect.runPromise(program)
1250
+ * actual // => { original: 4, updated: 999 }
1344
1251
  * ```
1345
1252
  *
1346
1253
  * **Example** (Applying TTL to set values)
1347
1254
  *
1348
- * ```ts
1255
+ * ```ts import.meta.vitest
1349
1256
  * import { Cache, Effect } from "effect"
1350
1257
  * import { TestClock } from "effect/testing"
1351
1258
  *
@@ -1359,17 +1266,21 @@ export const set: {
1359
1266
  *
1360
1267
  * // Set value with TTL applied
1361
1268
  * yield* Cache.set(cache, "temporary", 123)
1362
- * console.log(yield* Cache.has(cache, "temporary")) // true
1269
+ * const beforeExpiry = yield* Cache.has(cache, "temporary")
1363
1270
  *
1364
1271
  * // Advance time past TTL
1365
1272
  * yield* TestClock.adjust("2 hours")
1366
- * console.log(yield* Cache.has(cache, "temporary")) // false
1273
+ * const afterExpiry = yield* Cache.has(cache, "temporary")
1274
+ * return [beforeExpiry, afterExpiry]
1367
1275
  * })
1276
+ *
1277
+ * const actual = await Effect.runPromise(Effect.provide(program, TestClock.layer()))
1278
+ * actual // => [true, false]
1368
1279
  * ```
1369
1280
  *
1370
1281
  * **Example** (Enforcing capacity when setting values)
1371
1282
  *
1372
- * ```ts
1283
+ * ```ts import.meta.vitest
1373
1284
  * import { Cache, Effect } from "effect"
1374
1285
  *
1375
1286
  * // Capacity enforcement with set operations
@@ -1382,14 +1293,18 @@ export const set: {
1382
1293
  * // Fill cache to capacity
1383
1294
  * yield* Cache.set(cache, "a", 1)
1384
1295
  * yield* Cache.set(cache, "b", 2)
1385
- * console.log(yield* Cache.size(cache)) // 2
1296
+ * const sizeBeforeEviction = yield* Cache.size(cache)
1386
1297
  *
1387
1298
  * // Adding another entry evicts oldest
1388
1299
  * yield* Cache.set(cache, "c", 3)
1389
- * console.log(yield* Cache.size(cache)) // 2
1390
- * console.log(yield* Cache.has(cache, "a")) // false (evicted)
1391
- * console.log(yield* Cache.has(cache, "c")) // true
1300
+ * const sizeAfterEviction = yield* Cache.size(cache)
1301
+ * const hasOldest = yield* Cache.has(cache, "a")
1302
+ * const hasNewest = yield* Cache.has(cache, "c")
1303
+ * return [sizeBeforeEviction, sizeAfterEviction, hasOldest, hasNewest]
1392
1304
  * })
1305
+ *
1306
+ * const actual = await Effect.runPromise(program)
1307
+ * actual // => [2, 2, false, true]
1393
1308
  * ```
1394
1309
  *
1395
1310
  * @category combinators
@@ -1402,7 +1317,7 @@ export const set: {
1402
1317
  *
1403
1318
  * **Example** (Setting values directly)
1404
1319
  *
1405
- * ```ts
1320
+ * ```ts import.meta.vitest
1406
1321
  * import { Cache, Effect } from "effect"
1407
1322
  *
1408
1323
  * const program = Effect.gen(function*() {
@@ -1413,14 +1328,16 @@ export const set: {
1413
1328
  *
1414
1329
  * // Set a value directly without invoking lookup
1415
1330
  * yield* Cache.set(cache, "hello", 42)
1416
- * const result = yield* Cache.get(cache, "hello")
1417
- * console.log(result) // 42 (not 5 from lookup)
1331
+ * return yield* Cache.get(cache, "hello")
1418
1332
  * })
1333
+ *
1334
+ * const actual = await Effect.runPromise(program)
1335
+ * actual // => 42
1419
1336
  * ```
1420
1337
  *
1421
1338
  * **Example** (Overwriting cached values)
1422
1339
  *
1423
- * ```ts
1340
+ * ```ts import.meta.vitest
1424
1341
  * import { Cache, Effect } from "effect"
1425
1342
  *
1426
1343
  * // Overwriting existing cached values
@@ -1437,13 +1354,16 @@ export const set: {
1437
1354
  * yield* Cache.set(cache, "test", 999)
1438
1355
  * const updated = yield* Cache.get(cache, "test") // 999
1439
1356
  *
1440
- * console.log({ original, updated })
1357
+ * return { original, updated }
1441
1358
  * })
1359
+ *
1360
+ * const actual = await Effect.runPromise(program)
1361
+ * actual // => { original: 4, updated: 999 }
1442
1362
  * ```
1443
1363
  *
1444
1364
  * **Example** (Applying TTL to set values)
1445
1365
  *
1446
- * ```ts
1366
+ * ```ts import.meta.vitest
1447
1367
  * import { Cache, Effect } from "effect"
1448
1368
  * import { TestClock } from "effect/testing"
1449
1369
  *
@@ -1457,17 +1377,21 @@ export const set: {
1457
1377
  *
1458
1378
  * // Set value with TTL applied
1459
1379
  * yield* Cache.set(cache, "temporary", 123)
1460
- * console.log(yield* Cache.has(cache, "temporary")) // true
1380
+ * const beforeExpiry = yield* Cache.has(cache, "temporary")
1461
1381
  *
1462
1382
  * // Advance time past TTL
1463
1383
  * yield* TestClock.adjust("2 hours")
1464
- * console.log(yield* Cache.has(cache, "temporary")) // false
1384
+ * const afterExpiry = yield* Cache.has(cache, "temporary")
1385
+ * return [beforeExpiry, afterExpiry]
1465
1386
  * })
1387
+ *
1388
+ * const actual = await Effect.runPromise(Effect.provide(program, TestClock.layer()))
1389
+ * actual // => [true, false]
1466
1390
  * ```
1467
1391
  *
1468
1392
  * **Example** (Enforcing capacity when setting values)
1469
1393
  *
1470
- * ```ts
1394
+ * ```ts import.meta.vitest
1471
1395
  * import { Cache, Effect } from "effect"
1472
1396
  *
1473
1397
  * // Capacity enforcement with set operations
@@ -1480,14 +1404,18 @@ export const set: {
1480
1404
  * // Fill cache to capacity
1481
1405
  * yield* Cache.set(cache, "a", 1)
1482
1406
  * yield* Cache.set(cache, "b", 2)
1483
- * console.log(yield* Cache.size(cache)) // 2
1407
+ * const sizeBeforeEviction = yield* Cache.size(cache)
1484
1408
  *
1485
1409
  * // Adding another entry evicts oldest
1486
1410
  * yield* Cache.set(cache, "c", 3)
1487
- * console.log(yield* Cache.size(cache)) // 2
1488
- * console.log(yield* Cache.has(cache, "a")) // false (evicted)
1489
- * console.log(yield* Cache.has(cache, "c")) // true
1411
+ * const sizeAfterEviction = yield* Cache.size(cache)
1412
+ * const hasOldest = yield* Cache.has(cache, "a")
1413
+ * const hasNewest = yield* Cache.has(cache, "c")
1414
+ * return [sizeBeforeEviction, sizeAfterEviction, hasOldest, hasNewest]
1490
1415
  * })
1416
+ *
1417
+ * const actual = await Effect.runPromise(program)
1418
+ * actual // => [2, 2, false, true]
1491
1419
  * ```
1492
1420
  *
1493
1421
  * @category combinators
@@ -1499,213 +1427,16 @@ export const set: {
1499
1427
  <Key, A, E, R>(self: Cache<Key, A, E, R>, key: Key, value: A): Effect.Effect<void> =>
1500
1428
  core.withFiber((fiber) => {
1501
1429
  const exit = core.exitSucceed(value)
1502
- const deferred = Deferred.makeUnsafe</**
1503
- * Sets the value associated with the specified key in the cache. This will
1504
- * overwrite any existing value for that key, skipping the lookup function.
1505
- *
1506
- * **Example** (Setting values directly)
1507
- *
1508
- * ```ts
1509
- * import { Cache, Effect } from "effect"
1510
- *
1511
- * const program = Effect.gen(function*() {
1512
- * const cache = yield* Cache.make({
1513
- * capacity: 100,
1514
- * lookup: (key: string) => Effect.succeed(key.length)
1515
- * })
1516
- *
1517
- * // Set a value directly without invoking lookup
1518
- * yield* Cache.set(cache, "hello", 42)
1519
- * const result = yield* Cache.get(cache, "hello")
1520
- * console.log(result) // 42 (not 5 from lookup)
1521
- * })
1522
- * ```
1523
- *
1524
- * **Example** (Overwriting cached values)
1525
- *
1526
- * ```ts
1527
- * import { Cache, Effect } from "effect"
1528
- *
1529
- * // Overwriting existing cached values
1530
- * const program = Effect.gen(function*() {
1531
- * const cache = yield* Cache.make({
1532
- * capacity: 100,
1533
- * lookup: (key: string) => Effect.succeed(key.length)
1534
- * })
1535
- *
1536
- * // First get populates via lookup
1537
- * const original = yield* Cache.get(cache, "test") // 4
1538
- *
1539
- * // Set overwrites the cached value
1540
- * yield* Cache.set(cache, "test", 999)
1541
- * const updated = yield* Cache.get(cache, "test") // 999
1542
- *
1543
- * console.log({ original, updated })
1544
- * })
1545
- * ```
1546
- *
1547
- * **Example** (Applying TTL to set values)
1548
- *
1549
- * ```ts
1550
- * import { Cache, Effect } from "effect"
1551
- * import { TestClock } from "effect/testing"
1552
- *
1553
- * // TTL behavior with set operations
1554
- * const program = Effect.gen(function*() {
1555
- * const cache = yield* Cache.make({
1556
- * capacity: 100,
1557
- * lookup: (key: string) => Effect.succeed(key.length),
1558
- * timeToLive: "1 hour"
1559
- * })
1560
- *
1561
- * // Set value with TTL applied
1562
- * yield* Cache.set(cache, "temporary", 123)
1563
- * console.log(yield* Cache.has(cache, "temporary")) // true
1564
- *
1565
- * // Advance time past TTL
1566
- * yield* TestClock.adjust("2 hours")
1567
- * console.log(yield* Cache.has(cache, "temporary")) // false
1568
- * })
1569
- * ```
1570
- *
1571
- * **Example** (Enforcing capacity when setting values)
1572
- *
1573
- * ```ts
1574
- * import { Cache, Effect } from "effect"
1575
- *
1576
- * // Capacity enforcement with set operations
1577
- * const program = Effect.gen(function*() {
1578
- * const cache = yield* Cache.make({
1579
- * capacity: 2,
1580
- * lookup: (key: string) => Effect.succeed(key.length)
1581
- * })
1582
- *
1583
- * // Fill cache to capacity
1584
- * yield* Cache.set(cache, "a", 1)
1585
- * yield* Cache.set(cache, "b", 2)
1586
- * console.log(yield* Cache.size(cache)) // 2
1587
- *
1588
- * // Adding another entry evicts oldest
1589
- * yield* Cache.set(cache, "c", 3)
1590
- * console.log(yield* Cache.size(cache)) // 2
1591
- * console.log(yield* Cache.has(cache, "a")) // false (evicted)
1592
- * console.log(yield* Cache.has(cache, "c")) // true
1593
- * })
1594
- * ```
1595
- *
1596
- * @category combinators
1597
- * @since 4.0.0
1598
- */
1599
- A, /**
1600
- * Sets the value associated with the specified key in the cache. This will
1601
- * overwrite any existing value for that key, skipping the lookup function.
1602
- *
1603
- * **Example** (Setting values directly)
1604
- *
1605
- * ```ts
1606
- * import { Cache, Effect } from "effect"
1607
- *
1608
- * const program = Effect.gen(function*() {
1609
- * const cache = yield* Cache.make({
1610
- * capacity: 100,
1611
- * lookup: (key: string) => Effect.succeed(key.length)
1612
- * })
1613
- *
1614
- * // Set a value directly without invoking lookup
1615
- * yield* Cache.set(cache, "hello", 42)
1616
- * const result = yield* Cache.get(cache, "hello")
1617
- * console.log(result) // 42 (not 5 from lookup)
1618
- * })
1619
- * ```
1620
- *
1621
- * **Example** (Overwriting cached values)
1622
- *
1623
- * ```ts
1624
- * import { Cache, Effect } from "effect"
1625
- *
1626
- * // Overwriting existing cached values
1627
- * const program = Effect.gen(function*() {
1628
- * const cache = yield* Cache.make({
1629
- * capacity: 100,
1630
- * lookup: (key: string) => Effect.succeed(key.length)
1631
- * })
1632
- *
1633
- * // First get populates via lookup
1634
- * const original = yield* Cache.get(cache, "test") // 4
1635
- *
1636
- * // Set overwrites the cached value
1637
- * yield* Cache.set(cache, "test", 999)
1638
- * const updated = yield* Cache.get(cache, "test") // 999
1639
- *
1640
- * console.log({ original, updated })
1641
- * })
1642
- * ```
1643
- *
1644
- * **Example** (Applying TTL to set values)
1645
- *
1646
- * ```ts
1647
- * import { Cache, Effect } from "effect"
1648
- * import { TestClock } from "effect/testing"
1649
- *
1650
- * // TTL behavior with set operations
1651
- * const program = Effect.gen(function*() {
1652
- * const cache = yield* Cache.make({
1653
- * capacity: 100,
1654
- * lookup: (key: string) => Effect.succeed(key.length),
1655
- * timeToLive: "1 hour"
1656
- * })
1657
- *
1658
- * // Set value with TTL applied
1659
- * yield* Cache.set(cache, "temporary", 123)
1660
- * console.log(yield* Cache.has(cache, "temporary")) // true
1661
- *
1662
- * // Advance time past TTL
1663
- * yield* TestClock.adjust("2 hours")
1664
- * console.log(yield* Cache.has(cache, "temporary")) // false
1665
- * })
1666
- * ```
1667
- *
1668
- * **Example** (Enforcing capacity when setting values)
1669
- *
1670
- * ```ts
1671
- * import { Cache, Effect } from "effect"
1672
- *
1673
- * // Capacity enforcement with set operations
1674
- * const program = Effect.gen(function*() {
1675
- * const cache = yield* Cache.make({
1676
- * capacity: 2,
1677
- * lookup: (key: string) => Effect.succeed(key.length)
1678
- * })
1679
- *
1680
- * // Fill cache to capacity
1681
- * yield* Cache.set(cache, "a", 1)
1682
- * yield* Cache.set(cache, "b", 2)
1683
- * console.log(yield* Cache.size(cache)) // 2
1684
- *
1685
- * // Adding another entry evicts oldest
1686
- * yield* Cache.set(cache, "c", 3)
1687
- * console.log(yield* Cache.size(cache)) // 2
1688
- * console.log(yield* Cache.has(cache, "a")) // false (evicted)
1689
- * console.log(yield* Cache.has(cache, "c")) // true
1690
- * })
1691
- * ```
1692
- *
1693
- * @category combinators
1694
- * @since 4.0.0
1695
- */
1696
- E>()
1697
- Deferred.doneUnsafe(deferred, exit)
1430
+ const entry = new EntryImpl(fiber, exit)
1698
1431
  const ttl = self.timeToLive(exit, key)
1699
1432
  if (Duration.isZero(ttl)) {
1700
1433
  MutableHashMap.remove(self.map, key)
1701
1434
  return effect.void
1702
1435
  }
1703
- MutableHashMap.set(self.map, key, {
1704
- deferred,
1705
- expiresAt: Duration.isFinite(ttl)
1706
- ? fiber.getRef(effect.ClockRef).currentTimeMillisUnsafe() + Duration.toMillis(ttl)
1707
- : undefined
1708
- })
1436
+ entry.expiresAt = Duration.isFinite(ttl)
1437
+ ? fiber.getRef(effect.ClockRef).currentTimeMillisUnsafe() + Duration.toMillis(ttl)
1438
+ : undefined
1439
+ MutableHashMap.set(self.map, key, entry)
1709
1440
  checkCapacity(self)
1710
1441
  return effect.void
1711
1442
  })
@@ -1721,7 +1452,7 @@ export const set: {
1721
1452
  *
1722
1453
  * **Example** (Checking for cached keys)
1723
1454
  *
1724
- * ```ts
1455
+ * ```ts import.meta.vitest
1725
1456
  * import { Cache, Effect } from "effect"
1726
1457
  *
1727
1458
  * const program = Effect.gen(function*() {
@@ -1731,17 +1462,21 @@ export const set: {
1731
1462
  * })
1732
1463
  *
1733
1464
  * // Check non-existent key
1734
- * console.log(yield* Cache.has(cache, "missing")) // false
1465
+ * const missing = yield* Cache.has(cache, "missing")
1735
1466
  *
1736
1467
  * // Add entry and check existence
1737
1468
  * yield* Cache.get(cache, "hello")
1738
- * console.log(yield* Cache.has(cache, "hello")) // true
1469
+ * const present = yield* Cache.has(cache, "hello")
1470
+ * return [missing, present]
1739
1471
  * })
1472
+ *
1473
+ * const actual = await Effect.runPromise(program)
1474
+ * actual // => [false, true]
1740
1475
  * ```
1741
1476
  *
1742
1477
  * **Example** (Checking TTL expiration)
1743
1478
  *
1744
- * ```ts
1479
+ * ```ts import.meta.vitest
1745
1480
  * import { Cache, Effect } from "effect"
1746
1481
  * import { TestClock } from "effect/testing"
1747
1482
  *
@@ -1755,21 +1490,25 @@ export const set: {
1755
1490
  *
1756
1491
  * // Add entry with TTL
1757
1492
  * yield* Cache.get(cache, "expires")
1758
- * console.log(yield* Cache.has(cache, "expires")) // true
1493
+ * const initial = yield* Cache.has(cache, "expires")
1759
1494
  *
1760
1495
  * // Still valid before expiration
1761
1496
  * yield* TestClock.adjust("30 minutes")
1762
- * console.log(yield* Cache.has(cache, "expires")) // true
1497
+ * const beforeExpiry = yield* Cache.has(cache, "expires")
1763
1498
  *
1764
1499
  * // Expired after TTL
1765
1500
  * yield* TestClock.adjust("31 minutes")
1766
- * console.log(yield* Cache.has(cache, "expires")) // false
1501
+ * const afterExpiry = yield* Cache.has(cache, "expires")
1502
+ * return [initial, beforeExpiry, afterExpiry]
1767
1503
  * })
1504
+ *
1505
+ * const actual = await Effect.runPromise(Effect.provide(program, TestClock.layer()))
1506
+ * actual // => [true, true, false]
1768
1507
  * ```
1769
1508
  *
1770
1509
  * **Example** (Checking multiple keys)
1771
1510
  *
1772
- * ```ts
1511
+ * ```ts import.meta.vitest
1773
1512
  * import { Cache, Effect } from "effect"
1774
1513
  *
1775
1514
  * // Checking multiple keys efficiently
@@ -1785,16 +1524,16 @@ export const set: {
1785
1524
  *
1786
1525
  * // Check multiple keys
1787
1526
  * const keys = ["apple", "banana", "cherry", "date"]
1527
+ * const results: Array<string> = []
1788
1528
  * for (const key of keys) {
1789
1529
  * const exists = yield* Cache.has(cache, key)
1790
- * console.log(`${key}: ${exists}`)
1530
+ * results.push(`${key}: ${exists}`)
1791
1531
  * }
1792
- * // Output:
1793
- * // apple: true
1794
- * // banana: true
1795
- * // cherry: false
1796
- * // date: false
1532
+ * return results
1797
1533
  * })
1534
+ *
1535
+ * const actual = await Effect.runPromise(program)
1536
+ * actual // => ["apple: true", "banana: true", "cherry: false", "date: false"]
1798
1537
  * ```
1799
1538
  *
1800
1539
  * @category combinators
@@ -1811,7 +1550,7 @@ export const has: {
1811
1550
  *
1812
1551
  * **Example** (Checking for cached keys)
1813
1552
  *
1814
- * ```ts
1553
+ * ```ts import.meta.vitest
1815
1554
  * import { Cache, Effect } from "effect"
1816
1555
  *
1817
1556
  * const program = Effect.gen(function*() {
@@ -1821,17 +1560,21 @@ export const has: {
1821
1560
  * })
1822
1561
  *
1823
1562
  * // Check non-existent key
1824
- * console.log(yield* Cache.has(cache, "missing")) // false
1563
+ * const missing = yield* Cache.has(cache, "missing")
1825
1564
  *
1826
1565
  * // Add entry and check existence
1827
1566
  * yield* Cache.get(cache, "hello")
1828
- * console.log(yield* Cache.has(cache, "hello")) // true
1567
+ * const present = yield* Cache.has(cache, "hello")
1568
+ * return [missing, present]
1829
1569
  * })
1570
+ *
1571
+ * const actual = await Effect.runPromise(program)
1572
+ * actual // => [false, true]
1830
1573
  * ```
1831
1574
  *
1832
1575
  * **Example** (Checking TTL expiration)
1833
1576
  *
1834
- * ```ts
1577
+ * ```ts import.meta.vitest
1835
1578
  * import { Cache, Effect } from "effect"
1836
1579
  * import { TestClock } from "effect/testing"
1837
1580
  *
@@ -1845,21 +1588,25 @@ export const has: {
1845
1588
  *
1846
1589
  * // Add entry with TTL
1847
1590
  * yield* Cache.get(cache, "expires")
1848
- * console.log(yield* Cache.has(cache, "expires")) // true
1591
+ * const initial = yield* Cache.has(cache, "expires")
1849
1592
  *
1850
1593
  * // Still valid before expiration
1851
1594
  * yield* TestClock.adjust("30 minutes")
1852
- * console.log(yield* Cache.has(cache, "expires")) // true
1595
+ * const beforeExpiry = yield* Cache.has(cache, "expires")
1853
1596
  *
1854
1597
  * // Expired after TTL
1855
1598
  * yield* TestClock.adjust("31 minutes")
1856
- * console.log(yield* Cache.has(cache, "expires")) // false
1599
+ * const afterExpiry = yield* Cache.has(cache, "expires")
1600
+ * return [initial, beforeExpiry, afterExpiry]
1857
1601
  * })
1602
+ *
1603
+ * const actual = await Effect.runPromise(Effect.provide(program, TestClock.layer()))
1604
+ * actual // => [true, true, false]
1858
1605
  * ```
1859
1606
  *
1860
1607
  * **Example** (Checking multiple keys)
1861
1608
  *
1862
- * ```ts
1609
+ * ```ts import.meta.vitest
1863
1610
  * import { Cache, Effect } from "effect"
1864
1611
  *
1865
1612
  * // Checking multiple keys efficiently
@@ -1875,16 +1622,16 @@ export const has: {
1875
1622
  *
1876
1623
  * // Check multiple keys
1877
1624
  * const keys = ["apple", "banana", "cherry", "date"]
1625
+ * const results: Array<string> = []
1878
1626
  * for (const key of keys) {
1879
1627
  * const exists = yield* Cache.has(cache, key)
1880
- * console.log(`${key}: ${exists}`)
1628
+ * results.push(`${key}: ${exists}`)
1881
1629
  * }
1882
- * // Output:
1883
- * // apple: true
1884
- * // banana: true
1885
- * // cherry: false
1886
- * // date: false
1630
+ * return results
1887
1631
  * })
1632
+ *
1633
+ * const actual = await Effect.runPromise(program)
1634
+ * actual // => ["apple: true", "banana: true", "cherry: false", "date: false"]
1888
1635
  * ```
1889
1636
  *
1890
1637
  * @category combinators
@@ -1901,7 +1648,7 @@ export const has: {
1901
1648
  *
1902
1649
  * **Example** (Checking for cached keys)
1903
1650
  *
1904
- * ```ts
1651
+ * ```ts import.meta.vitest
1905
1652
  * import { Cache, Effect } from "effect"
1906
1653
  *
1907
1654
  * const program = Effect.gen(function*() {
@@ -1911,17 +1658,21 @@ export const has: {
1911
1658
  * })
1912
1659
  *
1913
1660
  * // Check non-existent key
1914
- * console.log(yield* Cache.has(cache, "missing")) // false
1661
+ * const missing = yield* Cache.has(cache, "missing")
1915
1662
  *
1916
1663
  * // Add entry and check existence
1917
1664
  * yield* Cache.get(cache, "hello")
1918
- * console.log(yield* Cache.has(cache, "hello")) // true
1665
+ * const present = yield* Cache.has(cache, "hello")
1666
+ * return [missing, present]
1919
1667
  * })
1668
+ *
1669
+ * const actual = await Effect.runPromise(program)
1670
+ * actual // => [false, true]
1920
1671
  * ```
1921
1672
  *
1922
1673
  * **Example** (Checking TTL expiration)
1923
1674
  *
1924
- * ```ts
1675
+ * ```ts import.meta.vitest
1925
1676
  * import { Cache, Effect } from "effect"
1926
1677
  * import { TestClock } from "effect/testing"
1927
1678
  *
@@ -1935,21 +1686,25 @@ export const has: {
1935
1686
  *
1936
1687
  * // Add entry with TTL
1937
1688
  * yield* Cache.get(cache, "expires")
1938
- * console.log(yield* Cache.has(cache, "expires")) // true
1689
+ * const initial = yield* Cache.has(cache, "expires")
1939
1690
  *
1940
1691
  * // Still valid before expiration
1941
1692
  * yield* TestClock.adjust("30 minutes")
1942
- * console.log(yield* Cache.has(cache, "expires")) // true
1693
+ * const beforeExpiry = yield* Cache.has(cache, "expires")
1943
1694
  *
1944
1695
  * // Expired after TTL
1945
1696
  * yield* TestClock.adjust("31 minutes")
1946
- * console.log(yield* Cache.has(cache, "expires")) // false
1697
+ * const afterExpiry = yield* Cache.has(cache, "expires")
1698
+ * return [initial, beforeExpiry, afterExpiry]
1947
1699
  * })
1700
+ *
1701
+ * const actual = await Effect.runPromise(Effect.provide(program, TestClock.layer()))
1702
+ * actual // => [true, true, false]
1948
1703
  * ```
1949
1704
  *
1950
1705
  * **Example** (Checking multiple keys)
1951
1706
  *
1952
- * ```ts
1707
+ * ```ts import.meta.vitest
1953
1708
  * import { Cache, Effect } from "effect"
1954
1709
  *
1955
1710
  * // Checking multiple keys efficiently
@@ -1965,16 +1720,16 @@ export const has: {
1965
1720
  *
1966
1721
  * // Check multiple keys
1967
1722
  * const keys = ["apple", "banana", "cherry", "date"]
1723
+ * const results: Array<string> = []
1968
1724
  * for (const key of keys) {
1969
1725
  * const exists = yield* Cache.has(cache, key)
1970
- * console.log(`${key}: ${exists}`)
1726
+ * results.push(`${key}: ${exists}`)
1971
1727
  * }
1972
- * // Output:
1973
- * // apple: true
1974
- * // banana: true
1975
- * // cherry: false
1976
- * // date: false
1728
+ * return results
1977
1729
  * })
1730
+ *
1731
+ * const actual = await Effect.runPromise(program)
1732
+ * actual // => ["apple: true", "banana: true", "cherry: false", "date: false"]
1978
1733
  * ```
1979
1734
  *
1980
1735
  * @category combinators
@@ -1995,7 +1750,7 @@ export const has: {
1995
1750
  *
1996
1751
  * **Example** (Invalidating cached entries)
1997
1752
  *
1998
- * ```ts
1753
+ * ```ts import.meta.vitest
1999
1754
  * import { Cache, Effect } from "effect"
2000
1755
  *
2001
1756
  * const program = Effect.gen(function*() {
@@ -2006,11 +1761,11 @@ export const has: {
2006
1761
  *
2007
1762
  * // Add a value to the cache
2008
1763
  * yield* Cache.get(cache, "hello")
2009
- * console.log(yield* Cache.has(cache, "hello")) // true
1764
+ * const beforeInvalidation = yield* Cache.has(cache, "hello")
2010
1765
  *
2011
1766
  * // Invalidate the entry
2012
1767
  * yield* Cache.invalidate(cache, "hello")
2013
- * console.log(yield* Cache.has(cache, "hello")) // false
1768
+ * const afterInvalidation = yield* Cache.has(cache, "hello")
2014
1769
  *
2015
1770
  * // Invalidating non-existent keys doesn't error
2016
1771
  * yield* Cache.invalidate(cache, "nonexistent")
@@ -2029,7 +1784,11 @@ export const has: {
2029
1784
  * yield* Cache.get(cache2, "test") // lookupCount = 1
2030
1785
  * yield* Cache.invalidate(cache2, "test")
2031
1786
  * yield* Cache.get(cache2, "test") // lookupCount = 2 (lookup called again)
1787
+ * return { beforeInvalidation, afterInvalidation, lookupCount }
2032
1788
  * })
1789
+ *
1790
+ * const actual = await Effect.runPromise(program)
1791
+ * actual // => { beforeInvalidation: true, afterInvalidation: false, lookupCount: 2 }
2033
1792
  * ```
2034
1793
  *
2035
1794
  * @category combinators
@@ -2041,7 +1800,7 @@ export const invalidate: {
2041
1800
  *
2042
1801
  * **Example** (Invalidating cached entries)
2043
1802
  *
2044
- * ```ts
1803
+ * ```ts import.meta.vitest
2045
1804
  * import { Cache, Effect } from "effect"
2046
1805
  *
2047
1806
  * const program = Effect.gen(function*() {
@@ -2052,11 +1811,11 @@ export const invalidate: {
2052
1811
  *
2053
1812
  * // Add a value to the cache
2054
1813
  * yield* Cache.get(cache, "hello")
2055
- * console.log(yield* Cache.has(cache, "hello")) // true
1814
+ * const beforeInvalidation = yield* Cache.has(cache, "hello")
2056
1815
  *
2057
1816
  * // Invalidate the entry
2058
1817
  * yield* Cache.invalidate(cache, "hello")
2059
- * console.log(yield* Cache.has(cache, "hello")) // false
1818
+ * const afterInvalidation = yield* Cache.has(cache, "hello")
2060
1819
  *
2061
1820
  * // Invalidating non-existent keys doesn't error
2062
1821
  * yield* Cache.invalidate(cache, "nonexistent")
@@ -2075,7 +1834,11 @@ export const invalidate: {
2075
1834
  * yield* Cache.get(cache2, "test") // lookupCount = 1
2076
1835
  * yield* Cache.invalidate(cache2, "test")
2077
1836
  * yield* Cache.get(cache2, "test") // lookupCount = 2 (lookup called again)
1837
+ * return { beforeInvalidation, afterInvalidation, lookupCount }
2078
1838
  * })
1839
+ *
1840
+ * const actual = await Effect.runPromise(program)
1841
+ * actual // => { beforeInvalidation: true, afterInvalidation: false, lookupCount: 2 }
2079
1842
  * ```
2080
1843
  *
2081
1844
  * @category combinators
@@ -2087,7 +1850,7 @@ export const invalidate: {
2087
1850
  *
2088
1851
  * **Example** (Invalidating cached entries)
2089
1852
  *
2090
- * ```ts
1853
+ * ```ts import.meta.vitest
2091
1854
  * import { Cache, Effect } from "effect"
2092
1855
  *
2093
1856
  * const program = Effect.gen(function*() {
@@ -2098,11 +1861,11 @@ export const invalidate: {
2098
1861
  *
2099
1862
  * // Add a value to the cache
2100
1863
  * yield* Cache.get(cache, "hello")
2101
- * console.log(yield* Cache.has(cache, "hello")) // true
1864
+ * const beforeInvalidation = yield* Cache.has(cache, "hello")
2102
1865
  *
2103
1866
  * // Invalidate the entry
2104
1867
  * yield* Cache.invalidate(cache, "hello")
2105
- * console.log(yield* Cache.has(cache, "hello")) // false
1868
+ * const afterInvalidation = yield* Cache.has(cache, "hello")
2106
1869
  *
2107
1870
  * // Invalidating non-existent keys doesn't error
2108
1871
  * yield* Cache.invalidate(cache, "nonexistent")
@@ -2121,7 +1884,11 @@ export const invalidate: {
2121
1884
  * yield* Cache.get(cache2, "test") // lookupCount = 1
2122
1885
  * yield* Cache.invalidate(cache2, "test")
2123
1886
  * yield* Cache.get(cache2, "test") // lookupCount = 2 (lookup called again)
1887
+ * return { beforeInvalidation, afterInvalidation, lookupCount }
2124
1888
  * })
1889
+ *
1890
+ * const actual = await Effect.runPromise(program)
1891
+ * actual // => { beforeInvalidation: true, afterInvalidation: false, lookupCount: 2 }
2125
1892
  * ```
2126
1893
  *
2127
1894
  * @category combinators
@@ -2139,7 +1906,7 @@ export const invalidate: {
2139
1906
  *
2140
1907
  * **Example** (Invalidating entries conditionally)
2141
1908
  *
2142
- * ```ts
1909
+ * ```ts import.meta.vitest
2143
1910
  * import { Cache, Effect } from "effect"
2144
1911
  *
2145
1912
  * const program = Effect.gen(function*() {
@@ -2158,8 +1925,7 @@ export const invalidate: {
2158
1925
  * "hello",
2159
1926
  * (value) => value === 5
2160
1927
  * )
2161
- * console.log(invalidated1) // true
2162
- * console.log(yield* Cache.has(cache, "hello")) // false
1928
+ * const hasHello = yield* Cache.has(cache, "hello")
2163
1929
  *
2164
1930
  * // Don't invalidate when predicate doesn't match
2165
1931
  * const invalidated2 = yield* Cache.invalidateWhen(
@@ -2167,8 +1933,7 @@ export const invalidate: {
2167
1933
  * "hi",
2168
1934
  * (value) => value === 5
2169
1935
  * )
2170
- * console.log(invalidated2) // false
2171
- * console.log(yield* Cache.has(cache, "hi")) // true (still present)
1936
+ * const hasHi = yield* Cache.has(cache, "hi")
2172
1937
  *
2173
1938
  * // Returns false for non-existent keys
2174
1939
  * const invalidated3 = yield* Cache.invalidateWhen(
@@ -2176,7 +1941,6 @@ export const invalidate: {
2176
1941
  * "nonexistent",
2177
1942
  * () => true
2178
1943
  * )
2179
- * console.log(invalidated3) // false
2180
1944
  *
2181
1945
  * // Returns false for failed cached values
2182
1946
  * const cacheWithErrors = yield* Cache.make<string, number, string>({
@@ -2191,8 +1955,11 @@ export const invalidate: {
2191
1955
  * "fail",
2192
1956
  * () => true
2193
1957
  * )
2194
- * console.log(invalidated4) // false (can't invalidate failed values)
1958
+ * return [invalidated1, hasHello, invalidated2, hasHi, invalidated3, invalidated4]
2195
1959
  * })
1960
+ *
1961
+ * const actual = await Effect.runPromise(program)
1962
+ * actual // => [true, false, false, true, false, false]
2196
1963
  * ```
2197
1964
  *
2198
1965
  * @category combinators
@@ -2205,7 +1972,7 @@ export const invalidateWhen: {
2205
1972
  *
2206
1973
  * **Example** (Invalidating entries conditionally)
2207
1974
  *
2208
- * ```ts
1975
+ * ```ts import.meta.vitest
2209
1976
  * import { Cache, Effect } from "effect"
2210
1977
  *
2211
1978
  * const program = Effect.gen(function*() {
@@ -2224,8 +1991,7 @@ export const invalidateWhen: {
2224
1991
  * "hello",
2225
1992
  * (value) => value === 5
2226
1993
  * )
2227
- * console.log(invalidated1) // true
2228
- * console.log(yield* Cache.has(cache, "hello")) // false
1994
+ * const hasHello = yield* Cache.has(cache, "hello")
2229
1995
  *
2230
1996
  * // Don't invalidate when predicate doesn't match
2231
1997
  * const invalidated2 = yield* Cache.invalidateWhen(
@@ -2233,8 +1999,7 @@ export const invalidateWhen: {
2233
1999
  * "hi",
2234
2000
  * (value) => value === 5
2235
2001
  * )
2236
- * console.log(invalidated2) // false
2237
- * console.log(yield* Cache.has(cache, "hi")) // true (still present)
2002
+ * const hasHi = yield* Cache.has(cache, "hi")
2238
2003
  *
2239
2004
  * // Returns false for non-existent keys
2240
2005
  * const invalidated3 = yield* Cache.invalidateWhen(
@@ -2242,7 +2007,6 @@ export const invalidateWhen: {
2242
2007
  * "nonexistent",
2243
2008
  * () => true
2244
2009
  * )
2245
- * console.log(invalidated3) // false
2246
2010
  *
2247
2011
  * // Returns false for failed cached values
2248
2012
  * const cacheWithErrors = yield* Cache.make<string, number, string>({
@@ -2257,8 +2021,11 @@ export const invalidateWhen: {
2257
2021
  * "fail",
2258
2022
  * () => true
2259
2023
  * )
2260
- * console.log(invalidated4) // false (can't invalidate failed values)
2024
+ * return [invalidated1, hasHello, invalidated2, hasHi, invalidated3, invalidated4]
2261
2025
  * })
2026
+ *
2027
+ * const actual = await Effect.runPromise(program)
2028
+ * actual // => [true, false, false, true, false, false]
2262
2029
  * ```
2263
2030
  *
2264
2031
  * @category combinators
@@ -2271,7 +2038,7 @@ export const invalidateWhen: {
2271
2038
  *
2272
2039
  * **Example** (Invalidating entries conditionally)
2273
2040
  *
2274
- * ```ts
2041
+ * ```ts import.meta.vitest
2275
2042
  * import { Cache, Effect } from "effect"
2276
2043
  *
2277
2044
  * const program = Effect.gen(function*() {
@@ -2290,8 +2057,7 @@ export const invalidateWhen: {
2290
2057
  * "hello",
2291
2058
  * (value) => value === 5
2292
2059
  * )
2293
- * console.log(invalidated1) // true
2294
- * console.log(yield* Cache.has(cache, "hello")) // false
2060
+ * const hasHello = yield* Cache.has(cache, "hello")
2295
2061
  *
2296
2062
  * // Don't invalidate when predicate doesn't match
2297
2063
  * const invalidated2 = yield* Cache.invalidateWhen(
@@ -2299,8 +2065,7 @@ export const invalidateWhen: {
2299
2065
  * "hi",
2300
2066
  * (value) => value === 5
2301
2067
  * )
2302
- * console.log(invalidated2) // false
2303
- * console.log(yield* Cache.has(cache, "hi")) // true (still present)
2068
+ * const hasHi = yield* Cache.has(cache, "hi")
2304
2069
  *
2305
2070
  * // Returns false for non-existent keys
2306
2071
  * const invalidated3 = yield* Cache.invalidateWhen(
@@ -2308,7 +2073,6 @@ export const invalidateWhen: {
2308
2073
  * "nonexistent",
2309
2074
  * () => true
2310
2075
  * )
2311
- * console.log(invalidated3) // false
2312
2076
  *
2313
2077
  * // Returns false for failed cached values
2314
2078
  * const cacheWithErrors = yield* Cache.make<string, number, string>({
@@ -2323,8 +2087,11 @@ export const invalidateWhen: {
2323
2087
  * "fail",
2324
2088
  * () => true
2325
2089
  * )
2326
- * console.log(invalidated4) // false (can't invalidate failed values)
2090
+ * return [invalidated1, hasHello, invalidated2, hasHi, invalidated3, invalidated4]
2327
2091
  * })
2092
+ *
2093
+ * const actual = await Effect.runPromise(program)
2094
+ * actual // => [true, false, false, true, false, false]
2328
2095
  * ```
2329
2096
  *
2330
2097
  * @category combinators
@@ -2339,7 +2106,7 @@ export const invalidateWhen: {
2339
2106
  if (oentry === undefined) {
2340
2107
  return effect.succeed(false)
2341
2108
  }
2342
- return Deferred.await(oentry.deferred).pipe(
2109
+ return oentry.await().pipe(
2343
2110
  effect.map((value) => {
2344
2111
  if (f(value)) {
2345
2112
  MutableHashMap.remove(self.map, key)
@@ -2362,7 +2129,7 @@ export const invalidateWhen: {
2362
2129
  *
2363
2130
  * **Example** (Refreshing cached values)
2364
2131
  *
2365
- * ```ts
2132
+ * ```ts import.meta.vitest
2366
2133
  * import { Cache, Effect } from "effect"
2367
2134
  *
2368
2135
  * // Force refresh of existing cached values
@@ -2375,25 +2142,25 @@ export const invalidateWhen: {
2375
2142
  *
2376
2143
  * // Initial cache population
2377
2144
  * const value1 = yield* Cache.get(cache, "user")
2378
- * console.log(value1) // "user-1"
2379
2145
  *
2380
2146
  * // Get from cache (no lookup)
2381
2147
  * const value2 = yield* Cache.get(cache, "user")
2382
- * console.log(value2) // "user-1" (same value)
2383
2148
  *
2384
2149
  * // Force refresh - always calls lookup
2385
2150
  * const refreshed = yield* Cache.refresh(cache, "user")
2386
- * console.log(refreshed) // "user-2" (new value)
2387
2151
  *
2388
2152
  * // Subsequent gets return refreshed value
2389
2153
  * const value3 = yield* Cache.get(cache, "user")
2390
- * console.log(value3) // "user-2"
2154
+ * return [value1, value2, refreshed, value3, counter]
2391
2155
  * })
2156
+ *
2157
+ * const actual = await Effect.runPromise(program)
2158
+ * actual // => ["user-1", "user-1", "user-2", "user-2", 2]
2392
2159
  * ```
2393
2160
  *
2394
2161
  * **Example** (Resetting TTL on refresh)
2395
2162
  *
2396
- * ```ts
2163
+ * ```ts import.meta.vitest
2397
2164
  * import { Cache, Effect } from "effect"
2398
2165
  * import { TestClock } from "effect/testing"
2399
2166
  *
@@ -2409,20 +2176,24 @@ export const invalidateWhen: {
2409
2176
  * yield* TestClock.adjust("45 minutes")
2410
2177
  *
2411
2178
  * // Entry would normally expire in 15 minutes
2412
- * console.log(yield* Cache.has(cache, "test")) // true
2179
+ * const beforeRefresh = yield* Cache.has(cache, "test")
2413
2180
  *
2414
2181
  * // Refresh resets the TTL to full 1 hour
2415
2182
  * yield* Cache.refresh(cache, "test")
2416
2183
  * yield* TestClock.adjust("30 minutes")
2417
2184
  *
2418
2185
  * // Still valid because TTL was reset
2419
- * console.log(yield* Cache.has(cache, "test")) // true
2186
+ * const afterRefresh = yield* Cache.has(cache, "test")
2187
+ * return [beforeRefresh, afterRefresh]
2420
2188
  * })
2189
+ *
2190
+ * const actual = await Effect.runPromise(Effect.provide(program, TestClock.layer()))
2191
+ * actual // => [true, true]
2421
2192
  * ```
2422
2193
  *
2423
2194
  * **Example** (Refreshing missing keys)
2424
2195
  *
2425
- * ```ts
2196
+ * ```ts import.meta.vitest
2426
2197
  * import { Cache, Effect } from "effect"
2427
2198
  *
2428
2199
  * // Refresh non-existent keys
@@ -2434,11 +2205,14 @@ export const invalidateWhen: {
2434
2205
  *
2435
2206
  * // Refresh non-existent key creates new entry
2436
2207
  * const result = yield* Cache.refresh(cache, "newKey")
2437
- * console.log(result) // "value-for-newKey"
2438
2208
  *
2439
2209
  * // Verify it's now cached
2440
- * console.log(yield* Cache.has(cache, "newKey")) // true
2210
+ * const cached = yield* Cache.has(cache, "newKey")
2211
+ * return [result, cached]
2441
2212
  * })
2213
+ *
2214
+ * const actual = await Effect.runPromise(program)
2215
+ * actual // => ["value-for-newKey", true]
2442
2216
  * ```
2443
2217
  *
2444
2218
  * @category combinators
@@ -2455,7 +2229,7 @@ export const refresh: {
2455
2229
  *
2456
2230
  * **Example** (Refreshing cached values)
2457
2231
  *
2458
- * ```ts
2232
+ * ```ts import.meta.vitest
2459
2233
  * import { Cache, Effect } from "effect"
2460
2234
  *
2461
2235
  * // Force refresh of existing cached values
@@ -2468,25 +2242,25 @@ export const refresh: {
2468
2242
  *
2469
2243
  * // Initial cache population
2470
2244
  * const value1 = yield* Cache.get(cache, "user")
2471
- * console.log(value1) // "user-1"
2472
2245
  *
2473
2246
  * // Get from cache (no lookup)
2474
2247
  * const value2 = yield* Cache.get(cache, "user")
2475
- * console.log(value2) // "user-1" (same value)
2476
2248
  *
2477
2249
  * // Force refresh - always calls lookup
2478
2250
  * const refreshed = yield* Cache.refresh(cache, "user")
2479
- * console.log(refreshed) // "user-2" (new value)
2480
2251
  *
2481
2252
  * // Subsequent gets return refreshed value
2482
2253
  * const value3 = yield* Cache.get(cache, "user")
2483
- * console.log(value3) // "user-2"
2254
+ * return [value1, value2, refreshed, value3, counter]
2484
2255
  * })
2256
+ *
2257
+ * const actual = await Effect.runPromise(program)
2258
+ * actual // => ["user-1", "user-1", "user-2", "user-2", 2]
2485
2259
  * ```
2486
2260
  *
2487
2261
  * **Example** (Resetting TTL on refresh)
2488
2262
  *
2489
- * ```ts
2263
+ * ```ts import.meta.vitest
2490
2264
  * import { Cache, Effect } from "effect"
2491
2265
  * import { TestClock } from "effect/testing"
2492
2266
  *
@@ -2502,20 +2276,24 @@ export const refresh: {
2502
2276
  * yield* TestClock.adjust("45 minutes")
2503
2277
  *
2504
2278
  * // Entry would normally expire in 15 minutes
2505
- * console.log(yield* Cache.has(cache, "test")) // true
2279
+ * const beforeRefresh = yield* Cache.has(cache, "test")
2506
2280
  *
2507
2281
  * // Refresh resets the TTL to full 1 hour
2508
2282
  * yield* Cache.refresh(cache, "test")
2509
2283
  * yield* TestClock.adjust("30 minutes")
2510
2284
  *
2511
2285
  * // Still valid because TTL was reset
2512
- * console.log(yield* Cache.has(cache, "test")) // true
2286
+ * const afterRefresh = yield* Cache.has(cache, "test")
2287
+ * return [beforeRefresh, afterRefresh]
2513
2288
  * })
2289
+ *
2290
+ * const actual = await Effect.runPromise(Effect.provide(program, TestClock.layer()))
2291
+ * actual // => [true, true]
2514
2292
  * ```
2515
2293
  *
2516
2294
  * **Example** (Refreshing missing keys)
2517
2295
  *
2518
- * ```ts
2296
+ * ```ts import.meta.vitest
2519
2297
  * import { Cache, Effect } from "effect"
2520
2298
  *
2521
2299
  * // Refresh non-existent keys
@@ -2527,11 +2305,14 @@ export const refresh: {
2527
2305
  *
2528
2306
  * // Refresh non-existent key creates new entry
2529
2307
  * const result = yield* Cache.refresh(cache, "newKey")
2530
- * console.log(result) // "value-for-newKey"
2531
2308
  *
2532
2309
  * // Verify it's now cached
2533
- * console.log(yield* Cache.has(cache, "newKey")) // true
2310
+ * const cached = yield* Cache.has(cache, "newKey")
2311
+ * return [result, cached]
2534
2312
  * })
2313
+ *
2314
+ * const actual = await Effect.runPromise(program)
2315
+ * actual // => ["value-for-newKey", true]
2535
2316
  * ```
2536
2317
  *
2537
2318
  * @category combinators
@@ -2548,7 +2329,7 @@ export const refresh: {
2548
2329
  *
2549
2330
  * **Example** (Refreshing cached values)
2550
2331
  *
2551
- * ```ts
2332
+ * ```ts import.meta.vitest
2552
2333
  * import { Cache, Effect } from "effect"
2553
2334
  *
2554
2335
  * // Force refresh of existing cached values
@@ -2561,25 +2342,25 @@ export const refresh: {
2561
2342
  *
2562
2343
  * // Initial cache population
2563
2344
  * const value1 = yield* Cache.get(cache, "user")
2564
- * console.log(value1) // "user-1"
2565
2345
  *
2566
2346
  * // Get from cache (no lookup)
2567
2347
  * const value2 = yield* Cache.get(cache, "user")
2568
- * console.log(value2) // "user-1" (same value)
2569
2348
  *
2570
2349
  * // Force refresh - always calls lookup
2571
2350
  * const refreshed = yield* Cache.refresh(cache, "user")
2572
- * console.log(refreshed) // "user-2" (new value)
2573
2351
  *
2574
2352
  * // Subsequent gets return refreshed value
2575
2353
  * const value3 = yield* Cache.get(cache, "user")
2576
- * console.log(value3) // "user-2"
2354
+ * return [value1, value2, refreshed, value3, counter]
2577
2355
  * })
2356
+ *
2357
+ * const actual = await Effect.runPromise(program)
2358
+ * actual // => ["user-1", "user-1", "user-2", "user-2", 2]
2578
2359
  * ```
2579
2360
  *
2580
2361
  * **Example** (Resetting TTL on refresh)
2581
2362
  *
2582
- * ```ts
2363
+ * ```ts import.meta.vitest
2583
2364
  * import { Cache, Effect } from "effect"
2584
2365
  * import { TestClock } from "effect/testing"
2585
2366
  *
@@ -2595,20 +2376,24 @@ export const refresh: {
2595
2376
  * yield* TestClock.adjust("45 minutes")
2596
2377
  *
2597
2378
  * // Entry would normally expire in 15 minutes
2598
- * console.log(yield* Cache.has(cache, "test")) // true
2379
+ * const beforeRefresh = yield* Cache.has(cache, "test")
2599
2380
  *
2600
2381
  * // Refresh resets the TTL to full 1 hour
2601
2382
  * yield* Cache.refresh(cache, "test")
2602
2383
  * yield* TestClock.adjust("30 minutes")
2603
2384
  *
2604
2385
  * // Still valid because TTL was reset
2605
- * console.log(yield* Cache.has(cache, "test")) // true
2386
+ * const afterRefresh = yield* Cache.has(cache, "test")
2387
+ * return [beforeRefresh, afterRefresh]
2606
2388
  * })
2389
+ *
2390
+ * const actual = await Effect.runPromise(Effect.provide(program, TestClock.layer()))
2391
+ * actual // => [true, true]
2607
2392
  * ```
2608
2393
  *
2609
2394
  * **Example** (Refreshing missing keys)
2610
2395
  *
2611
- * ```ts
2396
+ * ```ts import.meta.vitest
2612
2397
  * import { Cache, Effect } from "effect"
2613
2398
  *
2614
2399
  * // Refresh non-existent keys
@@ -2620,11 +2405,14 @@ export const refresh: {
2620
2405
  *
2621
2406
  * // Refresh non-existent key creates new entry
2622
2407
  * const result = yield* Cache.refresh(cache, "newKey")
2623
- * console.log(result) // "value-for-newKey"
2624
2408
  *
2625
2409
  * // Verify it's now cached
2626
- * console.log(yield* Cache.has(cache, "newKey")) // true
2410
+ * const cached = yield* Cache.has(cache, "newKey")
2411
+ * return [result, cached]
2627
2412
  * })
2413
+ *
2414
+ * const actual = await Effect.runPromise(program)
2415
+ * actual // => ["value-for-newKey", true]
2628
2416
  * ```
2629
2417
  *
2630
2418
  * @category combinators
@@ -2635,202 +2423,17 @@ export const refresh: {
2635
2423
  2,
2636
2424
  <Key, A, E, R>(self: Cache<Key, A, E, R>, key: Key): Effect.Effect<A, E, R> =>
2637
2425
  core.withFiber((fiber) => {
2638
- const deferred = Deferred.makeUnsafe</**
2639
- * Forces a refresh of the value associated with the specified key in the cache.
2640
- *
2641
- * **Details**
2642
- *
2643
- * It will always invoke the lookup function to construct a new value,
2644
- * overwriting any existing value for that key.
2645
- *
2646
- * **Example** (Refreshing cached values)
2647
- *
2648
- * ```ts
2649
- * import { Cache, Effect } from "effect"
2650
- *
2651
- * // Force refresh of existing cached values
2652
- * const program = Effect.gen(function*() {
2653
- * let counter = 0
2654
- * const cache = yield* Cache.make({
2655
- * capacity: 10,
2656
- * lookup: (key: string) => Effect.sync(() => `${key}-${++counter}`)
2657
- * })
2658
- *
2659
- * // Initial cache population
2660
- * const value1 = yield* Cache.get(cache, "user")
2661
- * console.log(value1) // "user-1"
2662
- *
2663
- * // Get from cache (no lookup)
2664
- * const value2 = yield* Cache.get(cache, "user")
2665
- * console.log(value2) // "user-1" (same value)
2666
- *
2667
- * // Force refresh - always calls lookup
2668
- * const refreshed = yield* Cache.refresh(cache, "user")
2669
- * console.log(refreshed) // "user-2" (new value)
2670
- *
2671
- * // Subsequent gets return refreshed value
2672
- * const value3 = yield* Cache.get(cache, "user")
2673
- * console.log(value3) // "user-2"
2674
- * })
2675
- * ```
2676
- *
2677
- * **Example** (Resetting TTL on refresh)
2678
- *
2679
- * ```ts
2680
- * import { Cache, Effect } from "effect"
2681
- * import { TestClock } from "effect/testing"
2682
- *
2683
- * // Refresh resets TTL (Time To Live)
2684
- * const program = Effect.gen(function*() {
2685
- * const cache = yield* Cache.make({
2686
- * capacity: 10,
2687
- * lookup: (key: string) => Effect.succeed(key.length),
2688
- * timeToLive: "1 hour"
2689
- * })
2690
- *
2691
- * yield* Cache.get(cache, "test")
2692
- * yield* TestClock.adjust("45 minutes")
2693
- *
2694
- * // Entry would normally expire in 15 minutes
2695
- * console.log(yield* Cache.has(cache, "test")) // true
2696
- *
2697
- * // Refresh resets the TTL to full 1 hour
2698
- * yield* Cache.refresh(cache, "test")
2699
- * yield* TestClock.adjust("30 minutes")
2700
- *
2701
- * // Still valid because TTL was reset
2702
- * console.log(yield* Cache.has(cache, "test")) // true
2703
- * })
2704
- * ```
2705
- *
2706
- * **Example** (Refreshing missing keys)
2707
- *
2708
- * ```ts
2709
- * import { Cache, Effect } from "effect"
2710
- *
2711
- * // Refresh non-existent keys
2712
- * const program = Effect.gen(function*() {
2713
- * const cache = yield* Cache.make({
2714
- * capacity: 10,
2715
- * lookup: (key: string) => Effect.succeed(`value-for-${key}`)
2716
- * })
2717
- *
2718
- * // Refresh non-existent key creates new entry
2719
- * const result = yield* Cache.refresh(cache, "newKey")
2720
- * console.log(result) // "value-for-newKey"
2721
- *
2722
- * // Verify it's now cached
2723
- * console.log(yield* Cache.has(cache, "newKey")) // true
2724
- * })
2725
- * ```
2726
- *
2727
- * @category combinators
2728
- * @since 4.0.0
2729
- */
2730
- A, /**
2731
- * Forces a refresh of the value associated with the specified key in the cache.
2732
- *
2733
- * **Details**
2734
- *
2735
- * It will always invoke the lookup function to construct a new value,
2736
- * overwriting any existing value for that key.
2737
- *
2738
- * **Example** (Refreshing cached values)
2739
- *
2740
- * ```ts
2741
- * import { Cache, Effect } from "effect"
2742
- *
2743
- * // Force refresh of existing cached values
2744
- * const program = Effect.gen(function*() {
2745
- * let counter = 0
2746
- * const cache = yield* Cache.make({
2747
- * capacity: 10,
2748
- * lookup: (key: string) => Effect.sync(() => `${key}-${++counter}`)
2749
- * })
2750
- *
2751
- * // Initial cache population
2752
- * const value1 = yield* Cache.get(cache, "user")
2753
- * console.log(value1) // "user-1"
2754
- *
2755
- * // Get from cache (no lookup)
2756
- * const value2 = yield* Cache.get(cache, "user")
2757
- * console.log(value2) // "user-1" (same value)
2758
- *
2759
- * // Force refresh - always calls lookup
2760
- * const refreshed = yield* Cache.refresh(cache, "user")
2761
- * console.log(refreshed) // "user-2" (new value)
2762
- *
2763
- * // Subsequent gets return refreshed value
2764
- * const value3 = yield* Cache.get(cache, "user")
2765
- * console.log(value3) // "user-2"
2766
- * })
2767
- * ```
2768
- *
2769
- * **Example** (Resetting TTL on refresh)
2770
- *
2771
- * ```ts
2772
- * import { Cache, Effect } from "effect"
2773
- * import { TestClock } from "effect/testing"
2774
- *
2775
- * // Refresh resets TTL (Time To Live)
2776
- * const program = Effect.gen(function*() {
2777
- * const cache = yield* Cache.make({
2778
- * capacity: 10,
2779
- * lookup: (key: string) => Effect.succeed(key.length),
2780
- * timeToLive: "1 hour"
2781
- * })
2782
- *
2783
- * yield* Cache.get(cache, "test")
2784
- * yield* TestClock.adjust("45 minutes")
2785
- *
2786
- * // Entry would normally expire in 15 minutes
2787
- * console.log(yield* Cache.has(cache, "test")) // true
2788
- *
2789
- * // Refresh resets the TTL to full 1 hour
2790
- * yield* Cache.refresh(cache, "test")
2791
- * yield* TestClock.adjust("30 minutes")
2792
- *
2793
- * // Still valid because TTL was reset
2794
- * console.log(yield* Cache.has(cache, "test")) // true
2795
- * })
2796
- * ```
2797
- *
2798
- * **Example** (Refreshing missing keys)
2799
- *
2800
- * ```ts
2801
- * import { Cache, Effect } from "effect"
2802
- *
2803
- * // Refresh non-existent keys
2804
- * const program = Effect.gen(function*() {
2805
- * const cache = yield* Cache.make({
2806
- * capacity: 10,
2807
- * lookup: (key: string) => Effect.succeed(`value-for-${key}`)
2808
- * })
2809
- *
2810
- * // Refresh non-existent key creates new entry
2811
- * const result = yield* Cache.refresh(cache, "newKey")
2812
- * console.log(result) // "value-for-newKey"
2813
- *
2814
- * // Verify it's now cached
2815
- * console.log(yield* Cache.has(cache, "newKey")) // true
2816
- * })
2817
- * ```
2818
- *
2819
- * @category combinators
2820
- * @since 4.0.0
2821
- */
2822
- E>()
2823
- const entry: Entry<A, E> = {
2824
- expiresAt: undefined,
2825
- deferred
2826
- }
2426
+ const entry = new EntryImpl(fiber, self.lookup(key))
2827
2427
  const existing = getImpl(self, key, fiber, false) !== undefined
2828
2428
  if (!existing) {
2829
2429
  MutableHashMap.set(self.map, key, entry)
2830
2430
  checkCapacity(self)
2831
2431
  }
2832
- return effect.onExit(self.lookup(key), (exit) => {
2833
- Deferred.doneUnsafe(deferred, exit)
2432
+ entry.fiber.addObserver((exit) => {
2433
+ if (effect.exitHasInterrupts(exit)) {
2434
+ if (!existing) MutableHashMap.remove(self.map, key)
2435
+ return
2436
+ }
2834
2437
  const ttl = self.timeToLive(exit, key)
2835
2438
  if (Duration.isZero(ttl)) {
2836
2439
  MutableHashMap.remove(self.map, key)
@@ -2842,8 +2445,8 @@ export const refresh: {
2842
2445
  if (existing) {
2843
2446
  MutableHashMap.set(self.map, key, entry)
2844
2447
  }
2845
- return effect.void
2846
2448
  })
2449
+ return entry.await()
2847
2450
  })
2848
2451
  )
2849
2452
 
@@ -2852,7 +2455,7 @@ export const refresh: {
2852
2455
  *
2853
2456
  * **Example** (Invalidating all entries)
2854
2457
  *
2855
- * ```ts
2458
+ * ```ts import.meta.vitest
2856
2459
  * import { Cache, Effect } from "effect"
2857
2460
  *
2858
2461
  * // Clear all cached entries at once
@@ -2867,18 +2470,29 @@ export const refresh: {
2867
2470
  * yield* Cache.get(cache, "banana")
2868
2471
  * yield* Cache.get(cache, "cherry")
2869
2472
  *
2870
- * console.log(yield* Cache.size(cache)) // 3
2871
- * console.log(yield* Cache.has(cache, "apple")) // true
2473
+ * const sizeBeforeInvalidation = yield* Cache.size(cache)
2474
+ * const hasAppleBeforeInvalidation = yield* Cache.has(cache, "apple")
2872
2475
  *
2873
2476
  * // Clear all entries
2874
2477
  * yield* Cache.invalidateAll(cache)
2875
2478
  *
2876
2479
  * // Verify cache is empty
2877
- * console.log(yield* Cache.size(cache)) // 0
2878
- * console.log(yield* Cache.has(cache, "apple")) // false
2879
- * console.log(yield* Cache.has(cache, "banana")) // false
2880
- * console.log(yield* Cache.has(cache, "cherry")) // false
2480
+ * const sizeAfterInvalidation = yield* Cache.size(cache)
2481
+ * const hasAppleAfterInvalidation = yield* Cache.has(cache, "apple")
2482
+ * const hasBananaAfterInvalidation = yield* Cache.has(cache, "banana")
2483
+ * const hasCherryAfterInvalidation = yield* Cache.has(cache, "cherry")
2484
+ * return [
2485
+ * sizeBeforeInvalidation,
2486
+ * hasAppleBeforeInvalidation,
2487
+ * sizeAfterInvalidation,
2488
+ * hasAppleAfterInvalidation,
2489
+ * hasBananaAfterInvalidation,
2490
+ * hasCherryAfterInvalidation
2491
+ * ]
2881
2492
  * })
2493
+ *
2494
+ * const actual = await Effect.runPromise(program)
2495
+ * actual // => [3, true, 0, false, false, false]
2882
2496
  * ```
2883
2497
  *
2884
2498
  * @category combinators
@@ -2900,7 +2514,7 @@ export const invalidateAll = <Key, A, E, R>(self: Cache<Key, A, E, R>): Effect.E
2900
2514
  *
2901
2515
  * **Example** (Reading cache size)
2902
2516
  *
2903
- * ```ts
2517
+ * ```ts import.meta.vitest
2904
2518
  * import { Cache, Effect } from "effect"
2905
2519
  *
2906
2520
  * const program = Effect.gen(function*() {
@@ -2911,19 +2525,20 @@ export const invalidateAll = <Key, A, E, R>(self: Cache<Key, A, E, R>): Effect.E
2911
2525
  *
2912
2526
  * // Empty cache has size 0
2913
2527
  * const emptySize = yield* Cache.size(cache)
2914
- * console.log(emptySize) // 0
2915
2528
  *
2916
2529
  * // Add entries and check size
2917
2530
  * yield* Cache.get(cache, "hello")
2918
2531
  * yield* Cache.get(cache, "world")
2919
2532
  * const sizeAfterAdding = yield* Cache.size(cache)
2920
- * console.log(sizeAfterAdding) // 2
2921
2533
  *
2922
2534
  * // Size decreases after invalidation
2923
2535
  * yield* Cache.invalidate(cache, "hello")
2924
2536
  * const sizeAfterInvalidation = yield* Cache.size(cache)
2925
- * console.log(sizeAfterInvalidation) // 1
2537
+ * return [emptySize, sizeAfterAdding, sizeAfterInvalidation]
2926
2538
  * })
2539
+ *
2540
+ * const actual = await Effect.runPromise(program)
2541
+ * actual // => [0, 2, 1]
2927
2542
  * ```
2928
2543
  *
2929
2544
  * @category combinators
@@ -2937,7 +2552,7 @@ export const size = <Key, A, E, R>(self: Cache<Key, A, E, R>): Effect.Effect<num
2937
2552
  *
2938
2553
  * **Example** (Reading active keys)
2939
2554
  *
2940
- * ```ts
2555
+ * ```ts import.meta.vitest
2941
2556
  * import { Cache, Effect } from "effect"
2942
2557
  *
2943
2558
  * // Basic key enumeration
@@ -2954,9 +2569,11 @@ export const size = <Key, A, E, R>(self: Cache<Key, A, E, R>): Effect.Effect<num
2954
2569
  *
2955
2570
  * // Retrieve all active keys
2956
2571
  * const keys = yield* Cache.keys(cache)
2957
- *
2958
- * console.log(Array.from(keys).sort()) // ["cache", "hello", "world"]
2572
+ * return Array.from(keys).sort()
2959
2573
  * })
2574
+ *
2575
+ * const actual = await Effect.runPromise(program)
2576
+ * actual // => ["cache", "hello", "world"]
2960
2577
  * ```
2961
2578
  *
2962
2579
  * @category combinators
@@ -2980,7 +2597,7 @@ export const keys = <Key, A, E, R>(self: Cache<Key, A, E, R>): Effect.Effect<Ite
2980
2597
  *
2981
2598
  * **Example** (Reading all cached values)
2982
2599
  *
2983
- * ```ts
2600
+ * ```ts import.meta.vitest
2984
2601
  * import { Cache, Effect } from "effect"
2985
2602
  *
2986
2603
  * const program = Effect.gen(function*() {
@@ -2996,10 +2613,11 @@ export const keys = <Key, A, E, R>(self: Cache<Key, A, E, R>): Effect.Effect<Ite
2996
2613
  *
2997
2614
  * // Retrieve all cached values
2998
2615
  * const values = yield* Cache.values(cache)
2999
- * const valuesArray = Array.from(values).sort()
3000
- *
3001
- * console.log(valuesArray) // [1, 2, 3]
2616
+ * return Array.from(values).sort()
3002
2617
  * })
2618
+ *
2619
+ * const actual = await Effect.runPromise(program)
2620
+ * actual // => [1, 2, 3]
3003
2621
  * ```
3004
2622
  *
3005
2623
  * @category combinators
@@ -3028,10 +2646,10 @@ export const entries = <Key, A, E, R>(self: Cache<Key, A, E, R>): Effect.Effect<
3028
2646
  const now = fiber.getRef(effect.ClockRef).currentTimeMillisUnsafe()
3029
2647
  return effect.succeed(Iterable.filterMap(self.map, ([key, entry]) => {
3030
2648
  if (entry.expiresAt === undefined || entry.expiresAt > now) {
3031
- const exit = entry.deferred.effect
3032
- return !core.isExit(exit) || effect.exitIsFailure(exit)
3033
- ? Result.failVoid
3034
- : Result.succeed([key, exit.value as A])
2649
+ const exit = entry.fiber.pollUnsafe()
2650
+ return exit && exit._tag === "Success"
2651
+ ? Result.succeed([key, exit.value])
2652
+ : Result.failVoid
3035
2653
  }
3036
2654
  MutableHashMap.remove(self.map, key)
3037
2655
  return Result.failVoid