effect 4.0.0-beta.102 → 4.0.0-beta.103

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 (1451) hide show
  1. package/dist/Array.d.ts +971 -1037
  2. package/dist/Array.d.ts.map +1 -1
  3. package/dist/Array.js +381 -407
  4. package/dist/Array.js.map +1 -1
  5. package/dist/BigDecimal.d.ts +433 -756
  6. package/dist/BigDecimal.d.ts.map +1 -1
  7. package/dist/BigDecimal.js +200 -325
  8. package/dist/BigDecimal.js.map +1 -1
  9. package/dist/BigInt.d.ts +207 -267
  10. package/dist/BigInt.d.ts.map +1 -1
  11. package/dist/BigInt.js +107 -135
  12. package/dist/BigInt.js.map +1 -1
  13. package/dist/Boolean.d.ts +146 -188
  14. package/dist/Boolean.d.ts.map +1 -1
  15. package/dist/Boolean.js +64 -84
  16. package/dist/Boolean.js.map +1 -1
  17. package/dist/Brand.js.map +1 -1
  18. package/dist/Cache.d.ts +405 -254
  19. package/dist/Cache.d.ts.map +1 -1
  20. package/dist/Cache.js +166 -101
  21. package/dist/Cache.js.map +1 -1
  22. package/dist/Cause.d.ts +167 -277
  23. package/dist/Cause.d.ts.map +1 -1
  24. package/dist/Cause.js +122 -176
  25. package/dist/Cause.js.map +1 -1
  26. package/dist/Channel.d.ts +729 -768
  27. package/dist/Channel.d.ts.map +1 -1
  28. package/dist/Channel.js +514 -440
  29. package/dist/Channel.js.map +1 -1
  30. package/dist/ChannelSchema.d.ts +1 -1
  31. package/dist/ChannelSchema.d.ts.map +1 -1
  32. package/dist/ChannelSchema.js.map +1 -1
  33. package/dist/Chunk.d.ts +834 -1173
  34. package/dist/Chunk.d.ts.map +1 -1
  35. package/dist/Chunk.js +326 -439
  36. package/dist/Chunk.js.map +1 -1
  37. package/dist/Clock.d.ts +180 -49
  38. package/dist/Clock.d.ts.map +1 -1
  39. package/dist/Clock.js +96 -31
  40. package/dist/Clock.js.map +1 -1
  41. package/dist/Combiner.d.ts +20 -33
  42. package/dist/Combiner.d.ts.map +1 -1
  43. package/dist/Combiner.js +18 -30
  44. package/dist/Combiner.js.map +1 -1
  45. package/dist/Config.d.ts +225 -173
  46. package/dist/Config.d.ts.map +1 -1
  47. package/dist/Config.js +336 -265
  48. package/dist/Config.js.map +1 -1
  49. package/dist/ConfigProvider.d.ts +194 -68
  50. package/dist/ConfigProvider.d.ts.map +1 -1
  51. package/dist/ConfigProvider.js +115 -80
  52. package/dist/ConfigProvider.js.map +1 -1
  53. package/dist/Console.d.ts +233 -33
  54. package/dist/Console.d.ts.map +1 -1
  55. package/dist/Console.js +232 -32
  56. package/dist/Console.js.map +1 -1
  57. package/dist/Context.d.ts +151 -274
  58. package/dist/Context.d.ts.map +1 -1
  59. package/dist/Context.js +171 -214
  60. package/dist/Context.js.map +1 -1
  61. package/dist/Cron.d.ts +68 -77
  62. package/dist/Cron.d.ts.map +1 -1
  63. package/dist/Cron.js +57 -66
  64. package/dist/Cron.js.map +1 -1
  65. package/dist/Crypto.d.ts +13 -15
  66. package/dist/Crypto.d.ts.map +1 -1
  67. package/dist/Crypto.js +9 -10
  68. package/dist/Crypto.js.map +1 -1
  69. package/dist/Data.d.ts +60 -80
  70. package/dist/Data.d.ts.map +1 -1
  71. package/dist/Data.js +16 -23
  72. package/dist/Data.js.map +1 -1
  73. package/dist/DateTime.d.ts +562 -660
  74. package/dist/DateTime.d.ts.map +1 -1
  75. package/dist/DateTime.js +307 -362
  76. package/dist/DateTime.js.map +1 -1
  77. package/dist/Deferred.d.ts +253 -256
  78. package/dist/Deferred.d.ts.map +1 -1
  79. package/dist/Deferred.js +104 -96
  80. package/dist/Deferred.js.map +1 -1
  81. package/dist/Duration.d.ts +216 -308
  82. package/dist/Duration.d.ts.map +1 -1
  83. package/dist/Duration.js +132 -186
  84. package/dist/Duration.js.map +1 -1
  85. package/dist/Effect.d.ts +2841 -3247
  86. package/dist/Effect.d.ts.map +1 -1
  87. package/dist/Effect.js +1322 -1546
  88. package/dist/Effect.js.map +1 -1
  89. package/dist/Effectable.js.map +1 -1
  90. package/dist/Encoding.d.ts +22 -40
  91. package/dist/Encoding.d.ts.map +1 -1
  92. package/dist/Encoding.js +22 -40
  93. package/dist/Encoding.js.map +1 -1
  94. package/dist/Equal.d.ts +33 -37
  95. package/dist/Equal.d.ts.map +1 -1
  96. package/dist/Equal.js +29 -21
  97. package/dist/Equal.js.map +1 -1
  98. package/dist/Equivalence.d.ts +103 -105
  99. package/dist/Equivalence.d.ts.map +1 -1
  100. package/dist/Equivalence.js +77 -79
  101. package/dist/Equivalence.js.map +1 -1
  102. package/dist/ErrorReporter.d.ts +51 -27
  103. package/dist/ErrorReporter.d.ts.map +1 -1
  104. package/dist/ErrorReporter.js +50 -26
  105. package/dist/ErrorReporter.js.map +1 -1
  106. package/dist/ExecutionPlan.d.ts +13 -55
  107. package/dist/ExecutionPlan.d.ts.map +1 -1
  108. package/dist/ExecutionPlan.js +7 -28
  109. package/dist/ExecutionPlan.js.map +1 -1
  110. package/dist/Exit.d.ts +116 -192
  111. package/dist/Exit.d.ts.map +1 -1
  112. package/dist/Exit.js +82 -130
  113. package/dist/Exit.js.map +1 -1
  114. package/dist/Fiber.d.ts +82 -146
  115. package/dist/Fiber.d.ts.map +1 -1
  116. package/dist/Fiber.js +48 -87
  117. package/dist/Fiber.js.map +1 -1
  118. package/dist/FiberHandle.d.ts +152 -105
  119. package/dist/FiberHandle.d.ts.map +1 -1
  120. package/dist/FiberHandle.js +106 -73
  121. package/dist/FiberHandle.js.map +1 -1
  122. package/dist/FiberMap.d.ts +213 -168
  123. package/dist/FiberMap.d.ts.map +1 -1
  124. package/dist/FiberMap.js +114 -89
  125. package/dist/FiberMap.js.map +1 -1
  126. package/dist/FiberSet.d.ts +123 -81
  127. package/dist/FiberSet.d.ts.map +1 -1
  128. package/dist/FiberSet.js +85 -59
  129. package/dist/FiberSet.js.map +1 -1
  130. package/dist/FileSystem.d.ts +153 -264
  131. package/dist/FileSystem.d.ts.map +1 -1
  132. package/dist/FileSystem.js +42 -147
  133. package/dist/FileSystem.js.map +1 -1
  134. package/dist/Filter.d.ts +61 -33
  135. package/dist/Filter.d.ts.map +1 -1
  136. package/dist/Filter.js +26 -15
  137. package/dist/Filter.js.map +1 -1
  138. package/dist/Formatter.d.ts +25 -33
  139. package/dist/Formatter.d.ts.map +1 -1
  140. package/dist/Formatter.js +48 -49
  141. package/dist/Formatter.js.map +1 -1
  142. package/dist/Function.d.ts +76 -145
  143. package/dist/Function.d.ts.map +1 -1
  144. package/dist/Function.js +40 -57
  145. package/dist/Function.js.map +1 -1
  146. package/dist/Graph.d.ts +360 -714
  147. package/dist/Graph.d.ts.map +1 -1
  148. package/dist/Graph.js +168 -297
  149. package/dist/Graph.js.map +1 -1
  150. package/dist/HKT.d.ts +12 -6
  151. package/dist/HKT.d.ts.map +1 -1
  152. package/dist/Hash.d.ts +47 -83
  153. package/dist/Hash.d.ts.map +1 -1
  154. package/dist/Hash.js +46 -68
  155. package/dist/Hash.js.map +1 -1
  156. package/dist/HashMap.d.ts +319 -411
  157. package/dist/HashMap.d.ts.map +1 -1
  158. package/dist/HashMap.js +122 -166
  159. package/dist/HashMap.js.map +1 -1
  160. package/dist/HashRing.d.ts.map +1 -1
  161. package/dist/HashRing.js +1 -0
  162. package/dist/HashRing.js.map +1 -1
  163. package/dist/HashSet.d.ts +177 -284
  164. package/dist/HashSet.d.ts.map +1 -1
  165. package/dist/HashSet.js +68 -109
  166. package/dist/HashSet.js.map +1 -1
  167. package/dist/Inspectable.d.ts +12 -12
  168. package/dist/Inspectable.js +8 -8
  169. package/dist/Inspectable.js.map +1 -1
  170. package/dist/Iterable.d.ts +620 -786
  171. package/dist/Iterable.d.ts.map +1 -1
  172. package/dist/Iterable.js +228 -306
  173. package/dist/Iterable.js.map +1 -1
  174. package/dist/JsonPatch.d.ts +11 -13
  175. package/dist/JsonPatch.d.ts.map +1 -1
  176. package/dist/JsonPatch.js +44 -102
  177. package/dist/JsonPatch.js.map +1 -1
  178. package/dist/JsonPointer.d.ts +8 -8
  179. package/dist/JsonPointer.js +8 -8
  180. package/dist/JsonPointer.js.map +1 -1
  181. package/dist/JsonSchema.d.ts +98 -44
  182. package/dist/JsonSchema.d.ts.map +1 -1
  183. package/dist/JsonSchema.js +297 -234
  184. package/dist/JsonSchema.js.map +1 -1
  185. package/dist/Latch.d.ts +23 -35
  186. package/dist/Latch.d.ts.map +1 -1
  187. package/dist/Latch.js +16 -28
  188. package/dist/Latch.js.map +1 -1
  189. package/dist/Layer.d.ts +359 -260
  190. package/dist/Layer.d.ts.map +1 -1
  191. package/dist/Layer.js +195 -175
  192. package/dist/Layer.js.map +1 -1
  193. package/dist/LayerMap.d.ts +42 -29
  194. package/dist/LayerMap.d.ts.map +1 -1
  195. package/dist/LayerMap.js +31 -21
  196. package/dist/LayerMap.js.map +1 -1
  197. package/dist/LayerRef.d.ts +6 -2
  198. package/dist/LayerRef.d.ts.map +1 -1
  199. package/dist/LayerRef.js +6 -2
  200. package/dist/LayerRef.js.map +1 -1
  201. package/dist/LogLevel.d.ts +114 -214
  202. package/dist/LogLevel.d.ts.map +1 -1
  203. package/dist/LogLevel.js +41 -76
  204. package/dist/LogLevel.js.map +1 -1
  205. package/dist/Logger.d.ts +218 -467
  206. package/dist/Logger.d.ts.map +1 -1
  207. package/dist/Logger.js +204 -450
  208. package/dist/Logger.js.map +1 -1
  209. package/dist/ManagedRuntime.d.ts +7 -5
  210. package/dist/ManagedRuntime.d.ts.map +1 -1
  211. package/dist/ManagedRuntime.js +7 -5
  212. package/dist/ManagedRuntime.js.map +1 -1
  213. package/dist/Match.d.ts +217 -252
  214. package/dist/Match.d.ts.map +1 -1
  215. package/dist/Match.js +150 -183
  216. package/dist/Match.js.map +1 -1
  217. package/dist/Metric.d.ts +442 -993
  218. package/dist/Metric.d.ts.map +1 -1
  219. package/dist/Metric.js +198 -642
  220. package/dist/Metric.js.map +1 -1
  221. package/dist/MutableHashMap.d.ts +144 -173
  222. package/dist/MutableHashMap.d.ts.map +1 -1
  223. package/dist/MutableHashMap.js +68 -79
  224. package/dist/MutableHashMap.js.map +1 -1
  225. package/dist/MutableHashSet.d.ts +84 -89
  226. package/dist/MutableHashSet.d.ts.map +1 -1
  227. package/dist/MutableHashSet.js +44 -47
  228. package/dist/MutableHashSet.js.map +1 -1
  229. package/dist/MutableList.d.ts +71 -370
  230. package/dist/MutableList.d.ts.map +1 -1
  231. package/dist/MutableList.js +59 -284
  232. package/dist/MutableList.js.map +1 -1
  233. package/dist/MutableRef.d.ts +420 -243
  234. package/dist/MutableRef.d.ts.map +1 -1
  235. package/dist/MutableRef.js +209 -120
  236. package/dist/MutableRef.js.map +1 -1
  237. package/dist/Newtype.d.ts +21 -14
  238. package/dist/Newtype.d.ts.map +1 -1
  239. package/dist/Newtype.js +15 -13
  240. package/dist/Newtype.js.map +1 -1
  241. package/dist/NonEmptyIterable.d.ts +7 -137
  242. package/dist/NonEmptyIterable.d.ts.map +1 -1
  243. package/dist/NonEmptyIterable.js +5 -93
  244. package/dist/NonEmptyIterable.js.map +1 -1
  245. package/dist/Number.d.ts +196 -233
  246. package/dist/Number.d.ts.map +1 -1
  247. package/dist/Number.js +90 -109
  248. package/dist/Number.js.map +1 -1
  249. package/dist/Optic.d.ts +97 -189
  250. package/dist/Optic.d.ts.map +1 -1
  251. package/dist/Optic.js +187 -290
  252. package/dist/Optic.js.map +1 -1
  253. package/dist/Option.d.ts +447 -812
  254. package/dist/Option.d.ts.map +1 -1
  255. package/dist/Option.js +211 -392
  256. package/dist/Option.js.map +1 -1
  257. package/dist/Order.d.ts +109 -109
  258. package/dist/Order.js +91 -91
  259. package/dist/Order.js.map +1 -1
  260. package/dist/Ordering.d.ts +20 -23
  261. package/dist/Ordering.d.ts.map +1 -1
  262. package/dist/Ordering.js +8 -9
  263. package/dist/Ordering.js.map +1 -1
  264. package/dist/PartitionedSemaphore.js.map +1 -1
  265. package/dist/Path.d.ts +38 -41
  266. package/dist/Path.d.ts.map +1 -1
  267. package/dist/Path.js +3 -4
  268. package/dist/Path.js.map +1 -1
  269. package/dist/Pipeable.d.ts +6 -5
  270. package/dist/Pipeable.d.ts.map +1 -1
  271. package/dist/Pipeable.js +2 -2
  272. package/dist/Pipeable.js.map +1 -1
  273. package/dist/PlatformError.d.ts +4 -4
  274. package/dist/PlatformError.js +3 -3
  275. package/dist/PlatformError.js.map +1 -1
  276. package/dist/Pool.d.ts +4 -2
  277. package/dist/Pool.d.ts.map +1 -1
  278. package/dist/Pool.js +4 -2
  279. package/dist/Pool.js.map +1 -1
  280. package/dist/Predicate.d.ts +200 -181
  281. package/dist/Predicate.d.ts.map +1 -1
  282. package/dist/Predicate.js +100 -108
  283. package/dist/Predicate.js.map +1 -1
  284. package/dist/PrimaryKey.d.ts +7 -7
  285. package/dist/PrimaryKey.js +5 -5
  286. package/dist/PrimaryKey.js.map +1 -1
  287. package/dist/PubSub.d.ts +425 -494
  288. package/dist/PubSub.d.ts.map +1 -1
  289. package/dist/PubSub.js +373 -362
  290. package/dist/PubSub.js.map +1 -1
  291. package/dist/Pull.d.ts +24 -18
  292. package/dist/Pull.d.ts.map +1 -1
  293. package/dist/Pull.js +11 -9
  294. package/dist/Pull.js.map +1 -1
  295. package/dist/Queue.d.ts +200 -159
  296. package/dist/Queue.d.ts.map +1 -1
  297. package/dist/Queue.js +162 -132
  298. package/dist/Queue.js.map +1 -1
  299. package/dist/Random.d.ts +49 -74
  300. package/dist/Random.d.ts.map +1 -1
  301. package/dist/Random.js +35 -54
  302. package/dist/Random.js.map +1 -1
  303. package/dist/RcMap.d.ts +121 -63
  304. package/dist/RcMap.d.ts.map +1 -1
  305. package/dist/RcMap.js +42 -21
  306. package/dist/RcMap.js.map +1 -1
  307. package/dist/RcRef.d.ts +24 -13
  308. package/dist/RcRef.d.ts.map +1 -1
  309. package/dist/RcRef.js +15 -9
  310. package/dist/RcRef.js.map +1 -1
  311. package/dist/Record.d.ts +291 -488
  312. package/dist/Record.d.ts.map +1 -1
  313. package/dist/Record.js +111 -202
  314. package/dist/Record.js.map +1 -1
  315. package/dist/Redactable.d.ts +6 -2
  316. package/dist/Redactable.d.ts.map +1 -1
  317. package/dist/Redactable.js +7 -2
  318. package/dist/Redactable.js.map +1 -1
  319. package/dist/Redacted.d.ts +25 -25
  320. package/dist/Redacted.d.ts.map +1 -1
  321. package/dist/Redacted.js +19 -20
  322. package/dist/Redacted.js.map +1 -1
  323. package/dist/Reducer.d.ts +8 -15
  324. package/dist/Reducer.d.ts.map +1 -1
  325. package/dist/Reducer.js +6 -12
  326. package/dist/Reducer.js.map +1 -1
  327. package/dist/Ref.d.ts +95 -165
  328. package/dist/Ref.d.ts.map +1 -1
  329. package/dist/Ref.js +75 -122
  330. package/dist/Ref.js.map +1 -1
  331. package/dist/References.d.ts +102 -168
  332. package/dist/References.d.ts.map +1 -1
  333. package/dist/References.js +102 -168
  334. package/dist/References.js.map +1 -1
  335. package/dist/RegExp.d.ts +10 -14
  336. package/dist/RegExp.d.ts.map +1 -1
  337. package/dist/RegExp.js +10 -14
  338. package/dist/RegExp.js.map +1 -1
  339. package/dist/Request.d.ts +31 -21
  340. package/dist/Request.d.ts.map +1 -1
  341. package/dist/Request.js +16 -13
  342. package/dist/Request.js.map +1 -1
  343. package/dist/RequestResolver.d.ts +201 -90
  344. package/dist/RequestResolver.d.ts.map +1 -1
  345. package/dist/RequestResolver.js +87 -41
  346. package/dist/RequestResolver.js.map +1 -1
  347. package/dist/Resource.js.map +1 -1
  348. package/dist/Result.d.ts +302 -470
  349. package/dist/Result.d.ts.map +1 -1
  350. package/dist/Result.js +133 -217
  351. package/dist/Result.js.map +1 -1
  352. package/dist/Runtime.d.ts +50 -75
  353. package/dist/Runtime.d.ts.map +1 -1
  354. package/dist/Runtime.js +39 -60
  355. package/dist/Runtime.js.map +1 -1
  356. package/dist/Schedule.d.ts +290 -1636
  357. package/dist/Schedule.d.ts.map +1 -1
  358. package/dist/Schedule.js +162 -803
  359. package/dist/Schedule.js.map +1 -1
  360. package/dist/Scheduler.d.ts +5 -5
  361. package/dist/Scheduler.d.ts.map +1 -1
  362. package/dist/Scheduler.js +18 -6
  363. package/dist/Scheduler.js.map +1 -1
  364. package/dist/Schema.d.ts +644 -642
  365. package/dist/Schema.d.ts.map +1 -1
  366. package/dist/Schema.js +491 -527
  367. package/dist/Schema.js.map +1 -1
  368. package/dist/SchemaAST.d.ts +27 -50
  369. package/dist/SchemaAST.d.ts.map +1 -1
  370. package/dist/SchemaAST.js +366 -279
  371. package/dist/SchemaAST.js.map +1 -1
  372. package/dist/SchemaError.d.ts +7 -6
  373. package/dist/SchemaError.d.ts.map +1 -1
  374. package/dist/SchemaError.js +7 -6
  375. package/dist/SchemaError.js.map +1 -1
  376. package/dist/SchemaGetter.d.ts +217 -174
  377. package/dist/SchemaGetter.d.ts.map +1 -1
  378. package/dist/SchemaGetter.js +218 -185
  379. package/dist/SchemaGetter.js.map +1 -1
  380. package/dist/SchemaIssue.d.ts +62 -190
  381. package/dist/SchemaIssue.d.ts.map +1 -1
  382. package/dist/SchemaIssue.js +73 -265
  383. package/dist/SchemaIssue.js.map +1 -1
  384. package/dist/SchemaParser.d.ts +2 -2
  385. package/dist/SchemaParser.d.ts.map +1 -1
  386. package/dist/SchemaParser.js +123 -75
  387. package/dist/SchemaParser.js.map +1 -1
  388. package/dist/SchemaRepresentation.d.ts +22 -36
  389. package/dist/SchemaRepresentation.d.ts.map +1 -1
  390. package/dist/SchemaRepresentation.js +20 -26
  391. package/dist/SchemaRepresentation.js.map +1 -1
  392. package/dist/SchemaTransformation.d.ts +114 -74
  393. package/dist/SchemaTransformation.d.ts.map +1 -1
  394. package/dist/SchemaTransformation.js +120 -85
  395. package/dist/SchemaTransformation.js.map +1 -1
  396. package/dist/Scope.d.ts +123 -151
  397. package/dist/Scope.d.ts.map +1 -1
  398. package/dist/Scope.js +72 -92
  399. package/dist/Scope.js.map +1 -1
  400. package/dist/ScopedCache.js.map +1 -1
  401. package/dist/ScopedRef.d.ts +3 -3
  402. package/dist/ScopedRef.js +2 -2
  403. package/dist/ScopedRef.js.map +1 -1
  404. package/dist/Semaphore.d.ts +96 -10
  405. package/dist/Semaphore.d.ts.map +1 -1
  406. package/dist/Semaphore.js +78 -39
  407. package/dist/Semaphore.js.map +1 -1
  408. package/dist/Sink.d.ts +117 -107
  409. package/dist/Sink.d.ts.map +1 -1
  410. package/dist/Sink.js +107 -100
  411. package/dist/Sink.js.map +1 -1
  412. package/dist/Stdio.d.ts +1 -1
  413. package/dist/Stdio.js.map +1 -1
  414. package/dist/Stream.d.ts +2415 -2949
  415. package/dist/Stream.d.ts.map +1 -1
  416. package/dist/Stream.js +1078 -1381
  417. package/dist/Stream.js.map +1 -1
  418. package/dist/String.d.ts +262 -308
  419. package/dist/String.d.ts.map +1 -1
  420. package/dist/String.js +184 -215
  421. package/dist/String.js.map +1 -1
  422. package/dist/Struct.d.ts +109 -114
  423. package/dist/Struct.d.ts.map +1 -1
  424. package/dist/Struct.js +41 -50
  425. package/dist/Struct.js.map +1 -1
  426. package/dist/SubscriptionRef.d.ts +282 -250
  427. package/dist/SubscriptionRef.d.ts.map +1 -1
  428. package/dist/SubscriptionRef.js +104 -92
  429. package/dist/SubscriptionRef.js.map +1 -1
  430. package/dist/Symbol.d.ts +3 -3
  431. package/dist/Symbol.js +3 -3
  432. package/dist/Symbol.js.map +1 -1
  433. package/dist/SynchronizedRef.js.map +1 -1
  434. package/dist/Take.js.map +1 -1
  435. package/dist/Terminal.d.ts +2 -2
  436. package/dist/Terminal.js +1 -1
  437. package/dist/Terminal.js.map +1 -1
  438. package/dist/Tracer.d.ts +100 -54
  439. package/dist/Tracer.d.ts.map +1 -1
  440. package/dist/Tracer.js +41 -24
  441. package/dist/Tracer.js.map +1 -1
  442. package/dist/Trie.d.ts +287 -679
  443. package/dist/Trie.d.ts.map +1 -1
  444. package/dist/Trie.js +109 -251
  445. package/dist/Trie.js.map +1 -1
  446. package/dist/Tuple.d.ts +92 -127
  447. package/dist/Tuple.d.ts.map +1 -1
  448. package/dist/Tuple.js +42 -57
  449. package/dist/Tuple.js.map +1 -1
  450. package/dist/TxChunk.d.ts +201 -121
  451. package/dist/TxChunk.d.ts.map +1 -1
  452. package/dist/TxChunk.js +85 -56
  453. package/dist/TxChunk.js.map +1 -1
  454. package/dist/TxDeferred.d.ts +62 -46
  455. package/dist/TxDeferred.d.ts.map +1 -1
  456. package/dist/TxDeferred.js +30 -22
  457. package/dist/TxDeferred.js.map +1 -1
  458. package/dist/TxHashMap.d.ts +631 -779
  459. package/dist/TxHashMap.d.ts.map +1 -1
  460. package/dist/TxHashMap.js +268 -330
  461. package/dist/TxHashMap.js.map +1 -1
  462. package/dist/TxHashSet.d.ts +297 -236
  463. package/dist/TxHashSet.d.ts.map +1 -1
  464. package/dist/TxHashSet.js +130 -100
  465. package/dist/TxHashSet.js.map +1 -1
  466. package/dist/TxPriorityQueue.d.ts +126 -95
  467. package/dist/TxPriorityQueue.d.ts.map +1 -1
  468. package/dist/TxPriorityQueue.js +74 -56
  469. package/dist/TxPriorityQueue.js.map +1 -1
  470. package/dist/TxPubSub.d.ts +101 -88
  471. package/dist/TxPubSub.d.ts.map +1 -1
  472. package/dist/TxPubSub.js +87 -66
  473. package/dist/TxPubSub.js.map +1 -1
  474. package/dist/TxQueue.d.ts +200 -180
  475. package/dist/TxQueue.d.ts.map +1 -1
  476. package/dist/TxQueue.js +160 -136
  477. package/dist/TxQueue.js.map +1 -1
  478. package/dist/TxReentrantLock.d.ts +97 -66
  479. package/dist/TxReentrantLock.d.ts.map +1 -1
  480. package/dist/TxReentrantLock.js +67 -45
  481. package/dist/TxReentrantLock.js.map +1 -1
  482. package/dist/TxRef.d.ts +51 -32
  483. package/dist/TxRef.d.ts.map +1 -1
  484. package/dist/TxRef.js +23 -15
  485. package/dist/TxRef.js.map +1 -1
  486. package/dist/TxSemaphore.d.ts +129 -95
  487. package/dist/TxSemaphore.d.ts.map +1 -1
  488. package/dist/TxSemaphore.js +85 -70
  489. package/dist/TxSemaphore.js.map +1 -1
  490. package/dist/TxSubscriptionRef.d.ts +97 -70
  491. package/dist/TxSubscriptionRef.d.ts.map +1 -1
  492. package/dist/TxSubscriptionRef.js +44 -34
  493. package/dist/TxSubscriptionRef.js.map +1 -1
  494. package/dist/Types.d.ts +126 -67
  495. package/dist/Types.d.ts.map +1 -1
  496. package/dist/UndefinedOr.js.map +1 -1
  497. package/dist/Unify.d.ts +45 -65
  498. package/dist/Unify.d.ts.map +1 -1
  499. package/dist/Unify.js +6 -9
  500. package/dist/Unify.js.map +1 -1
  501. package/dist/Utils.d.ts +23 -16
  502. package/dist/Utils.d.ts.map +1 -1
  503. package/dist/Utils.js +3 -7
  504. package/dist/Utils.js.map +1 -1
  505. package/dist/index.js.map +1 -1
  506. package/dist/internal/array.js.map +1 -1
  507. package/dist/internal/core.js +1 -1
  508. package/dist/internal/core.js.map +1 -1
  509. package/dist/internal/dateTime.js +4 -0
  510. package/dist/internal/dateTime.js.map +1 -1
  511. package/dist/internal/doNotation.js.map +1 -1
  512. package/dist/internal/effect.js +77 -40
  513. package/dist/internal/effect.js.map +1 -1
  514. package/dist/internal/equal.js.map +1 -1
  515. package/dist/internal/errors.js.map +1 -1
  516. package/dist/internal/executionPlan.js.map +1 -1
  517. package/dist/internal/hashMap.js.map +1 -1
  518. package/dist/internal/hashSet.js.map +1 -1
  519. package/dist/internal/layer.js.map +1 -1
  520. package/dist/internal/matcher.js.map +1 -1
  521. package/dist/internal/metric.js.map +1 -1
  522. package/dist/internal/option.js.map +1 -1
  523. package/dist/internal/persistence.d.ts +2 -0
  524. package/dist/internal/persistence.d.ts.map +1 -0
  525. package/dist/internal/persistence.js +3 -0
  526. package/dist/internal/persistence.js.map +1 -0
  527. package/dist/internal/random.js.map +1 -1
  528. package/dist/internal/rcRef.js.map +1 -1
  529. package/dist/internal/record.js.map +1 -1
  530. package/dist/internal/redacted.js.map +1 -1
  531. package/dist/internal/references.js +3 -0
  532. package/dist/internal/references.js.map +1 -1
  533. package/dist/internal/request.js.map +1 -1
  534. package/dist/internal/result.js.map +1 -1
  535. package/dist/internal/schedule.js.map +1 -1
  536. package/dist/internal/schema/annotations.js.map +1 -1
  537. package/dist/internal/schema/cause.js.map +1 -1
  538. package/dist/internal/schema/fromJsonSchemaDocument.js +13 -11
  539. package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
  540. package/dist/internal/schema/fromRepresentation.js +8 -15
  541. package/dist/internal/schema/fromRepresentation.js.map +1 -1
  542. package/dist/internal/schema/parser.d.ts +14 -0
  543. package/dist/internal/schema/parser.d.ts.map +1 -0
  544. package/dist/internal/schema/parser.js +13 -0
  545. package/dist/internal/schema/parser.js.map +1 -0
  546. package/dist/internal/schema/schema.js.map +1 -1
  547. package/dist/internal/schema/toArbitrary.js.map +1 -1
  548. package/dist/internal/schema/toCodeDocument.js.map +1 -1
  549. package/dist/internal/schema/toEquivalence.js.map +1 -1
  550. package/dist/internal/schema/toJsonSchemaDocument.js +48 -6
  551. package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
  552. package/dist/internal/schema/toRepresentation.js +87 -107
  553. package/dist/internal/schema/toRepresentation.js.map +1 -1
  554. package/dist/internal/stackTraceLimit.js.map +1 -1
  555. package/dist/internal/stream.js.map +1 -1
  556. package/dist/internal/tracer.js.map +1 -1
  557. package/dist/internal/trie.js +13 -9
  558. package/dist/internal/trie.js.map +1 -1
  559. package/dist/testing/FastCheck.d.ts +8 -7
  560. package/dist/testing/FastCheck.d.ts.map +1 -1
  561. package/dist/testing/FastCheck.js +8 -7
  562. package/dist/testing/FastCheck.js.map +1 -1
  563. package/dist/testing/TestClock.d.ts +57 -28
  564. package/dist/testing/TestClock.d.ts.map +1 -1
  565. package/dist/testing/TestClock.js +50 -18
  566. package/dist/testing/TestClock.js.map +1 -1
  567. package/dist/testing/TestConsole.d.ts +32 -31
  568. package/dist/testing/TestConsole.d.ts.map +1 -1
  569. package/dist/testing/TestConsole.js +24 -22
  570. package/dist/testing/TestConsole.js.map +1 -1
  571. package/dist/testing/TestSchema.d.ts +29 -29
  572. package/dist/testing/TestSchema.js +25 -25
  573. package/dist/testing/TestSchema.js.map +1 -1
  574. package/dist/testing/index.js.map +1 -1
  575. package/dist/unstable/ai/AiError.d.ts +95 -118
  576. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  577. package/dist/unstable/ai/AiError.js +94 -117
  578. package/dist/unstable/ai/AiError.js.map +1 -1
  579. package/dist/unstable/ai/AnthropicStructuredOutput.d.ts +1 -1
  580. package/dist/unstable/ai/AnthropicStructuredOutput.js +1 -1
  581. package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
  582. package/dist/unstable/ai/Chat.d.ts +132 -97
  583. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  584. package/dist/unstable/ai/Chat.js +55 -51
  585. package/dist/unstable/ai/Chat.js.map +1 -1
  586. package/dist/unstable/ai/EmbeddingModel.js.map +1 -1
  587. package/dist/unstable/ai/IdGenerator.d.ts +32 -28
  588. package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
  589. package/dist/unstable/ai/IdGenerator.js +26 -21
  590. package/dist/unstable/ai/IdGenerator.js.map +1 -1
  591. package/dist/unstable/ai/LanguageModel.d.ts +107 -67
  592. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  593. package/dist/unstable/ai/LanguageModel.js +104 -64
  594. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  595. package/dist/unstable/ai/McpProtocol.d.ts +30 -0
  596. package/dist/unstable/ai/McpProtocol.d.ts.map +1 -0
  597. package/dist/unstable/ai/McpProtocol.js +20 -0
  598. package/dist/unstable/ai/McpProtocol.js.map +1 -0
  599. package/dist/unstable/ai/McpSchema.d.ts +141 -75
  600. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  601. package/dist/unstable/ai/McpSchema.js +58 -50
  602. package/dist/unstable/ai/McpSchema.js.map +1 -1
  603. package/dist/unstable/ai/McpServer.d.ts +68 -59
  604. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  605. package/dist/unstable/ai/McpServer.js +694 -241
  606. package/dist/unstable/ai/McpServer.js.map +1 -1
  607. package/dist/unstable/ai/Model.d.ts +8 -19
  608. package/dist/unstable/ai/Model.d.ts.map +1 -1
  609. package/dist/unstable/ai/Model.js +9 -20
  610. package/dist/unstable/ai/Model.js.map +1 -1
  611. package/dist/unstable/ai/OpenAiStructuredOutput.d.ts +1 -1
  612. package/dist/unstable/ai/OpenAiStructuredOutput.js +1 -1
  613. package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
  614. package/dist/unstable/ai/Prompt.d.ts +112 -38
  615. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  616. package/dist/unstable/ai/Prompt.js +53 -17
  617. package/dist/unstable/ai/Prompt.js.map +1 -1
  618. package/dist/unstable/ai/Response.d.ts +28 -14
  619. package/dist/unstable/ai/Response.d.ts.map +1 -1
  620. package/dist/unstable/ai/Response.js +9 -4
  621. package/dist/unstable/ai/Response.js.map +1 -1
  622. package/dist/unstable/ai/ResponseIdTracker.js.map +1 -1
  623. package/dist/unstable/ai/Telemetry.d.ts +46 -13
  624. package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
  625. package/dist/unstable/ai/Telemetry.js +18 -7
  626. package/dist/unstable/ai/Telemetry.js.map +1 -1
  627. package/dist/unstable/ai/Tokenizer.d.ts +14 -3
  628. package/dist/unstable/ai/Tokenizer.d.ts.map +1 -1
  629. package/dist/unstable/ai/Tokenizer.js +10 -2
  630. package/dist/unstable/ai/Tokenizer.js.map +1 -1
  631. package/dist/unstable/ai/Tool.d.ts +59 -44
  632. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  633. package/dist/unstable/ai/Tool.js +48 -39
  634. package/dist/unstable/ai/Tool.js.map +1 -1
  635. package/dist/unstable/ai/Toolkit.d.ts +26 -8
  636. package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
  637. package/dist/unstable/ai/Toolkit.js +18 -4
  638. package/dist/unstable/ai/Toolkit.js.map +1 -1
  639. package/dist/unstable/ai/index.d.ts +4 -0
  640. package/dist/unstable/ai/index.d.ts.map +1 -1
  641. package/dist/unstable/ai/index.js +4 -0
  642. package/dist/unstable/ai/index.js.map +1 -1
  643. package/dist/unstable/ai/internal/codec-transformer.js.map +1 -1
  644. package/dist/unstable/ai/internal/mcpProtocol.d.ts +21 -0
  645. package/dist/unstable/ai/internal/mcpProtocol.d.ts.map +1 -0
  646. package/dist/unstable/ai/internal/mcpProtocol.js +22 -0
  647. package/dist/unstable/ai/internal/mcpProtocol.js.map +1 -0
  648. package/dist/unstable/ai/internal/mcpProtocolRegistry.d.ts +2 -0
  649. package/dist/unstable/ai/internal/mcpProtocolRegistry.d.ts.map +1 -0
  650. package/dist/unstable/ai/internal/mcpProtocolRegistry.js +32 -0
  651. package/dist/unstable/ai/internal/mcpProtocolRegistry.js.map +1 -0
  652. package/dist/unstable/ai/internal/structured-output.js +14 -15
  653. package/dist/unstable/ai/internal/structured-output.js.map +1 -1
  654. package/dist/unstable/cli/Argument.d.ts +273 -69
  655. package/dist/unstable/cli/Argument.d.ts.map +1 -1
  656. package/dist/unstable/cli/Argument.js +111 -33
  657. package/dist/unstable/cli/Argument.js.map +1 -1
  658. package/dist/unstable/cli/CliConfig.js.map +1 -1
  659. package/dist/unstable/cli/CliError.d.ts +69 -76
  660. package/dist/unstable/cli/CliError.d.ts.map +1 -1
  661. package/dist/unstable/cli/CliError.js +57 -61
  662. package/dist/unstable/cli/CliError.js.map +1 -1
  663. package/dist/unstable/cli/CliOutput.d.ts +35 -54
  664. package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
  665. package/dist/unstable/cli/CliOutput.js +26 -42
  666. package/dist/unstable/cli/CliOutput.js.map +1 -1
  667. package/dist/unstable/cli/Command.d.ts +705 -107
  668. package/dist/unstable/cli/Command.d.ts.map +1 -1
  669. package/dist/unstable/cli/Command.js +238 -42
  670. package/dist/unstable/cli/Command.js.map +1 -1
  671. package/dist/unstable/cli/Completions.js.map +1 -1
  672. package/dist/unstable/cli/Flag.d.ts +418 -138
  673. package/dist/unstable/cli/Flag.d.ts.map +1 -1
  674. package/dist/unstable/cli/Flag.js +197 -71
  675. package/dist/unstable/cli/Flag.js.map +1 -1
  676. package/dist/unstable/cli/GlobalFlag.d.ts +1 -1
  677. package/dist/unstable/cli/GlobalFlag.js.map +1 -1
  678. package/dist/unstable/cli/HelpDoc.d.ts +12 -4
  679. package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
  680. package/dist/unstable/cli/Param.d.ts +292 -78
  681. package/dist/unstable/cli/Param.d.ts.map +1 -1
  682. package/dist/unstable/cli/Param.js +128 -46
  683. package/dist/unstable/cli/Param.js.map +1 -1
  684. package/dist/unstable/cli/Primitive.d.ts +370 -149
  685. package/dist/unstable/cli/Primitive.d.ts.map +1 -1
  686. package/dist/unstable/cli/Primitive.js +344 -136
  687. package/dist/unstable/cli/Primitive.js.map +1 -1
  688. package/dist/unstable/cli/Prompt.d.ts +23 -14
  689. package/dist/unstable/cli/Prompt.d.ts.map +1 -1
  690. package/dist/unstable/cli/Prompt.js +23 -14
  691. package/dist/unstable/cli/Prompt.js.map +1 -1
  692. package/dist/unstable/cli/index.js.map +1 -1
  693. package/dist/unstable/cli/internal/ansi.js.map +1 -1
  694. package/dist/unstable/cli/internal/auto-suggest.js.map +1 -1
  695. package/dist/unstable/cli/internal/command.js.map +1 -1
  696. package/dist/unstable/cli/internal/completions/bash.js.map +1 -1
  697. package/dist/unstable/cli/internal/completions/descriptor.js.map +1 -1
  698. package/dist/unstable/cli/internal/completions/fish.js.map +1 -1
  699. package/dist/unstable/cli/internal/completions/zsh.js.map +1 -1
  700. package/dist/unstable/cli/internal/config.js.map +1 -1
  701. package/dist/unstable/cli/internal/help.js.map +1 -1
  702. package/dist/unstable/cli/internal/lexer.js +17 -7
  703. package/dist/unstable/cli/internal/lexer.js.map +1 -1
  704. package/dist/unstable/cli/internal/parser.js +2 -2
  705. package/dist/unstable/cli/internal/parser.js.map +1 -1
  706. package/dist/unstable/cli/internal/wizard.js.map +1 -1
  707. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  708. package/dist/unstable/cluster/ClusterError.js.map +1 -1
  709. package/dist/unstable/cluster/ClusterMetrics.js.map +1 -1
  710. package/dist/unstable/cluster/ClusterSchema.d.ts +8 -8
  711. package/dist/unstable/cluster/ClusterSchema.js +8 -8
  712. package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
  713. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  714. package/dist/unstable/cluster/ClusterWorkflowEngine.js +5 -1
  715. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  716. package/dist/unstable/cluster/DeliverAt.js.map +1 -1
  717. package/dist/unstable/cluster/Entity.d.ts +10 -10
  718. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  719. package/dist/unstable/cluster/Entity.js +8 -8
  720. package/dist/unstable/cluster/Entity.js.map +1 -1
  721. package/dist/unstable/cluster/EntityAddress.js.map +1 -1
  722. package/dist/unstable/cluster/EntityId.js.map +1 -1
  723. package/dist/unstable/cluster/EntityProxy.d.ts +4 -2
  724. package/dist/unstable/cluster/EntityProxy.d.ts.map +1 -1
  725. package/dist/unstable/cluster/EntityProxy.js +4 -2
  726. package/dist/unstable/cluster/EntityProxy.js.map +1 -1
  727. package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
  728. package/dist/unstable/cluster/EntityResource.d.ts +2 -2
  729. package/dist/unstable/cluster/EntityResource.js +2 -2
  730. package/dist/unstable/cluster/EntityResource.js.map +1 -1
  731. package/dist/unstable/cluster/EntityType.js.map +1 -1
  732. package/dist/unstable/cluster/Envelope.d.ts +3 -3
  733. package/dist/unstable/cluster/Envelope.js +3 -3
  734. package/dist/unstable/cluster/Envelope.js.map +1 -1
  735. package/dist/unstable/cluster/HttpRunner.d.ts +2 -2
  736. package/dist/unstable/cluster/HttpRunner.d.ts.map +1 -1
  737. package/dist/unstable/cluster/HttpRunner.js +6 -4
  738. package/dist/unstable/cluster/HttpRunner.js.map +1 -1
  739. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  740. package/dist/unstable/cluster/MachineId.js.map +1 -1
  741. package/dist/unstable/cluster/Message.d.ts +9 -9
  742. package/dist/unstable/cluster/Message.js +6 -6
  743. package/dist/unstable/cluster/Message.js.map +1 -1
  744. package/dist/unstable/cluster/MessageStorage.d.ts +15 -15
  745. package/dist/unstable/cluster/MessageStorage.js +5 -5
  746. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  747. package/dist/unstable/cluster/Reply.d.ts.map +1 -1
  748. package/dist/unstable/cluster/Reply.js +4 -4
  749. package/dist/unstable/cluster/Reply.js.map +1 -1
  750. package/dist/unstable/cluster/Runner.js.map +1 -1
  751. package/dist/unstable/cluster/RunnerAddress.js.map +1 -1
  752. package/dist/unstable/cluster/RunnerHealth.d.ts +1 -1
  753. package/dist/unstable/cluster/RunnerHealth.js +1 -1
  754. package/dist/unstable/cluster/RunnerHealth.js.map +1 -1
  755. package/dist/unstable/cluster/RunnerServer.d.ts +2 -1
  756. package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
  757. package/dist/unstable/cluster/RunnerServer.js +16 -16
  758. package/dist/unstable/cluster/RunnerServer.js.map +1 -1
  759. package/dist/unstable/cluster/RunnerStorage.d.ts +2 -2
  760. package/dist/unstable/cluster/RunnerStorage.js +1 -1
  761. package/dist/unstable/cluster/RunnerStorage.js.map +1 -1
  762. package/dist/unstable/cluster/Runners.d.ts +6 -6
  763. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  764. package/dist/unstable/cluster/Runners.js +19 -10
  765. package/dist/unstable/cluster/Runners.js.map +1 -1
  766. package/dist/unstable/cluster/ShardId.js.map +1 -1
  767. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  768. package/dist/unstable/cluster/Sharding.js +3 -2
  769. package/dist/unstable/cluster/Sharding.js.map +1 -1
  770. package/dist/unstable/cluster/ShardingConfig.d.ts +3 -3
  771. package/dist/unstable/cluster/ShardingConfig.js +3 -3
  772. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  773. package/dist/unstable/cluster/ShardingRegistrationEvent.js.map +1 -1
  774. package/dist/unstable/cluster/SingleRunner.js.map +1 -1
  775. package/dist/unstable/cluster/Singleton.js.map +1 -1
  776. package/dist/unstable/cluster/SingletonAddress.d.ts +1 -1
  777. package/dist/unstable/cluster/SingletonAddress.js +1 -1
  778. package/dist/unstable/cluster/SingletonAddress.js.map +1 -1
  779. package/dist/unstable/cluster/Snowflake.d.ts +8 -8
  780. package/dist/unstable/cluster/Snowflake.js +8 -8
  781. package/dist/unstable/cluster/Snowflake.js.map +1 -1
  782. package/dist/unstable/cluster/SocketRunner.js.map +1 -1
  783. package/dist/unstable/cluster/SqlMessageStorage.js +1 -1
  784. package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
  785. package/dist/unstable/cluster/SqlRunnerStorage.d.ts.map +1 -1
  786. package/dist/unstable/cluster/SqlRunnerStorage.js +20 -5
  787. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  788. package/dist/unstable/cluster/TestRunner.js.map +1 -1
  789. package/dist/unstable/cluster/index.js.map +1 -1
  790. package/dist/unstable/cluster/internal/entityManager.js +5 -5
  791. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  792. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  793. package/dist/unstable/cluster/internal/hash.js.map +1 -1
  794. package/dist/unstable/cluster/internal/interruptors.js.map +1 -1
  795. package/dist/unstable/cluster/internal/resourceMap.js.map +1 -1
  796. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  797. package/dist/unstable/cluster/internal/shardLock.js.map +1 -1
  798. package/dist/unstable/devtools/DevTools.js.map +1 -1
  799. package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
  800. package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
  801. package/dist/unstable/devtools/DevToolsServer.js.map +1 -1
  802. package/dist/unstable/devtools/index.js.map +1 -1
  803. package/dist/unstable/encoding/Msgpack.d.ts.map +1 -1
  804. package/dist/unstable/encoding/Msgpack.js +6 -8
  805. package/dist/unstable/encoding/Msgpack.js.map +1 -1
  806. package/dist/unstable/encoding/Ndjson.js.map +1 -1
  807. package/dist/unstable/encoding/Sse.d.ts +72 -8
  808. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  809. package/dist/unstable/encoding/Sse.js +58 -8
  810. package/dist/unstable/encoding/Sse.js.map +1 -1
  811. package/dist/unstable/encoding/index.js.map +1 -1
  812. package/dist/unstable/eventlog/Event.d.ts +20 -20
  813. package/dist/unstable/eventlog/Event.js.map +1 -1
  814. package/dist/unstable/eventlog/EventGroup.d.ts +4 -4
  815. package/dist/unstable/eventlog/EventGroup.js.map +1 -1
  816. package/dist/unstable/eventlog/EventJournal.d.ts +15 -15
  817. package/dist/unstable/eventlog/EventJournal.js +13 -13
  818. package/dist/unstable/eventlog/EventJournal.js.map +1 -1
  819. package/dist/unstable/eventlog/EventLog.d.ts +3 -3
  820. package/dist/unstable/eventlog/EventLog.js +3 -3
  821. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  822. package/dist/unstable/eventlog/EventLogEncryption.d.ts +1 -1
  823. package/dist/unstable/eventlog/EventLogEncryption.js +1 -1
  824. package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
  825. package/dist/unstable/eventlog/EventLogMessage.d.ts +2 -2
  826. package/dist/unstable/eventlog/EventLogMessage.js +1 -1
  827. package/dist/unstable/eventlog/EventLogMessage.js.map +1 -1
  828. package/dist/unstable/eventlog/EventLogRemote.d.ts +15 -15
  829. package/dist/unstable/eventlog/EventLogRemote.js +1 -1
  830. package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
  831. package/dist/unstable/eventlog/EventLogServer.d.ts +11 -2
  832. package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
  833. package/dist/unstable/eventlog/EventLogServer.js +45 -21
  834. package/dist/unstable/eventlog/EventLogServer.js.map +1 -1
  835. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +4 -4
  836. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  837. package/dist/unstable/eventlog/EventLogServerEncrypted.js +13 -5
  838. package/dist/unstable/eventlog/EventLogServerEncrypted.js.map +1 -1
  839. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +5 -5
  840. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
  841. package/dist/unstable/eventlog/EventLogServerUnencrypted.js +14 -6
  842. package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -1
  843. package/dist/unstable/eventlog/EventLogSessionAuth.d.ts +1 -1
  844. package/dist/unstable/eventlog/EventLogSessionAuth.js +1 -1
  845. package/dist/unstable/eventlog/EventLogSessionAuth.js.map +1 -1
  846. package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -1
  847. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
  848. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  849. package/dist/unstable/eventlog/index.js.map +1 -1
  850. package/dist/unstable/eventlog/internal/identityRootSecretDerivation.js.map +1 -1
  851. package/dist/unstable/http/Cookies.d.ts +2 -2
  852. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  853. package/dist/unstable/http/Cookies.js +30 -18
  854. package/dist/unstable/http/Cookies.js.map +1 -1
  855. package/dist/unstable/http/Etag.d.ts +1 -1
  856. package/dist/unstable/http/Etag.js +1 -1
  857. package/dist/unstable/http/Etag.js.map +1 -1
  858. package/dist/unstable/http/FetchHttpClient.d.ts.map +1 -1
  859. package/dist/unstable/http/FetchHttpClient.js.map +1 -1
  860. package/dist/unstable/http/Headers.d.ts +2 -2
  861. package/dist/unstable/http/Headers.js +2 -2
  862. package/dist/unstable/http/Headers.js.map +1 -1
  863. package/dist/unstable/http/HttpBody.d.ts +5 -3
  864. package/dist/unstable/http/HttpBody.d.ts.map +1 -1
  865. package/dist/unstable/http/HttpBody.js +11 -5
  866. package/dist/unstable/http/HttpBody.js.map +1 -1
  867. package/dist/unstable/http/HttpClient.d.ts +51 -44
  868. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  869. package/dist/unstable/http/HttpClient.js +46 -17
  870. package/dist/unstable/http/HttpClient.js.map +1 -1
  871. package/dist/unstable/http/HttpClientError.js.map +1 -1
  872. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  873. package/dist/unstable/http/HttpClientRequest.js +2 -0
  874. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  875. package/dist/unstable/http/HttpClientResponse.d.ts +4 -4
  876. package/dist/unstable/http/HttpClientResponse.js +2 -2
  877. package/dist/unstable/http/HttpClientResponse.js.map +1 -1
  878. package/dist/unstable/http/HttpEffect.d.ts +6 -6
  879. package/dist/unstable/http/HttpEffect.js +3 -3
  880. package/dist/unstable/http/HttpEffect.js.map +1 -1
  881. package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
  882. package/dist/unstable/http/HttpMethod.d.ts +6 -9
  883. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  884. package/dist/unstable/http/HttpMethod.js +6 -9
  885. package/dist/unstable/http/HttpMethod.js.map +1 -1
  886. package/dist/unstable/http/HttpMiddleware.d.ts +75 -9
  887. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  888. package/dist/unstable/http/HttpMiddleware.js +164 -39
  889. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  890. package/dist/unstable/http/HttpPlatform.d.ts +76 -0
  891. package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
  892. package/dist/unstable/http/HttpPlatform.js +32 -0
  893. package/dist/unstable/http/HttpPlatform.js.map +1 -1
  894. package/dist/unstable/http/HttpRouter.d.ts +88 -89
  895. package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
  896. package/dist/unstable/http/HttpRouter.js +78 -79
  897. package/dist/unstable/http/HttpRouter.js.map +1 -1
  898. package/dist/unstable/http/HttpServer.d.ts +13 -13
  899. package/dist/unstable/http/HttpServer.js +6 -6
  900. package/dist/unstable/http/HttpServer.js.map +1 -1
  901. package/dist/unstable/http/HttpServerError.d.ts +2 -2
  902. package/dist/unstable/http/HttpServerError.js +2 -2
  903. package/dist/unstable/http/HttpServerError.js.map +1 -1
  904. package/dist/unstable/http/HttpServerRequest.d.ts +4 -4
  905. package/dist/unstable/http/HttpServerRequest.js +4 -4
  906. package/dist/unstable/http/HttpServerRequest.js.map +1 -1
  907. package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
  908. package/dist/unstable/http/HttpServerResponse.d.ts +22 -0
  909. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  910. package/dist/unstable/http/HttpServerResponse.js +10 -0
  911. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  912. package/dist/unstable/http/HttpStaticServer.d.ts +35 -7
  913. package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -1
  914. package/dist/unstable/http/HttpStaticServer.js +35 -7
  915. package/dist/unstable/http/HttpStaticServer.js.map +1 -1
  916. package/dist/unstable/http/HttpTraceContext.js.map +1 -1
  917. package/dist/unstable/http/Multipart.d.ts +6 -6
  918. package/dist/unstable/http/Multipart.js +5 -5
  919. package/dist/unstable/http/Multipart.js.map +1 -1
  920. package/dist/unstable/http/Template.js.map +1 -1
  921. package/dist/unstable/http/Url.d.ts +33 -63
  922. package/dist/unstable/http/Url.d.ts.map +1 -1
  923. package/dist/unstable/http/Url.js +14 -28
  924. package/dist/unstable/http/Url.js.map +1 -1
  925. package/dist/unstable/http/UrlParams.d.ts +10 -18
  926. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  927. package/dist/unstable/http/UrlParams.js +9 -17
  928. package/dist/unstable/http/UrlParams.js.map +1 -1
  929. package/dist/unstable/http/index.js.map +1 -1
  930. package/dist/unstable/http/internal/compression.d.ts +2 -0
  931. package/dist/unstable/http/internal/compression.d.ts.map +1 -0
  932. package/dist/unstable/http/internal/compression.js +155 -0
  933. package/dist/unstable/http/internal/compression.js.map +1 -0
  934. package/dist/unstable/http/internal/preResponseHandler.js.map +1 -1
  935. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  936. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +1 -1
  937. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  938. package/dist/unstable/httpapi/HttpApiBuilder.js +10 -11
  939. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  940. package/dist/unstable/httpapi/HttpApiClient.d.ts +4 -5
  941. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  942. package/dist/unstable/httpapi/HttpApiClient.js +11 -13
  943. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  944. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +42 -42
  945. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  946. package/dist/unstable/httpapi/HttpApiError.d.ts +13 -13
  947. package/dist/unstable/httpapi/HttpApiError.js +13 -13
  948. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  949. package/dist/unstable/httpapi/HttpApiGroup.d.ts +15 -15
  950. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  951. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +71 -24
  952. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  953. package/dist/unstable/httpapi/HttpApiMiddleware.js +57 -10
  954. package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
  955. package/dist/unstable/httpapi/HttpApiScalar.d.ts +0 -12
  956. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  957. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  958. package/dist/unstable/httpapi/HttpApiSchema.d.ts +6 -6
  959. package/dist/unstable/httpapi/HttpApiSchema.js +4 -4
  960. package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
  961. package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
  962. package/dist/unstable/httpapi/HttpApiSwagger.js.map +1 -1
  963. package/dist/unstable/httpapi/HttpApiTest.js.map +1 -1
  964. package/dist/unstable/httpapi/OpenApi.d.ts +13 -13
  965. package/dist/unstable/httpapi/OpenApi.js +13 -13
  966. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  967. package/dist/unstable/httpapi/index.js.map +1 -1
  968. package/dist/unstable/httpapi/internal/html.js.map +1 -1
  969. package/dist/unstable/httpapi/internal/httpApiScalar.js.map +1 -1
  970. package/dist/unstable/httpapi/internal/httpApiSwagger.js.map +1 -1
  971. package/dist/unstable/httpapi/internal/mediaType.js.map +1 -1
  972. package/dist/unstable/observability/Otlp.js.map +1 -1
  973. package/dist/unstable/observability/OtlpExporter.d.ts +12 -14
  974. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  975. package/dist/unstable/observability/OtlpExporter.js +17 -4
  976. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  977. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  978. package/dist/unstable/observability/OtlpMetrics.d.ts +4 -1
  979. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  980. package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
  981. package/dist/unstable/observability/OtlpResource.d.ts +16 -7
  982. package/dist/unstable/observability/OtlpResource.d.ts.map +1 -1
  983. package/dist/unstable/observability/OtlpResource.js +21 -12
  984. package/dist/unstable/observability/OtlpResource.js.map +1 -1
  985. package/dist/unstable/observability/OtlpSerialization.js.map +1 -1
  986. package/dist/unstable/observability/OtlpTracer.js.map +1 -1
  987. package/dist/unstable/observability/PrometheusMetrics.d.ts +13 -4
  988. package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
  989. package/dist/unstable/observability/PrometheusMetrics.js +10 -3
  990. package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
  991. package/dist/unstable/observability/index.js.map +1 -1
  992. package/dist/unstable/observability/internal/otlpEnv.js +1 -1
  993. package/dist/unstable/observability/internal/otlpEnv.js.map +1 -1
  994. package/dist/unstable/observability/internal/otlpProtobuf.js.map +1 -1
  995. package/dist/unstable/observability/internal/protobuf.js +3 -0
  996. package/dist/unstable/observability/internal/protobuf.js.map +1 -1
  997. package/dist/unstable/persistence/KeyValueStore.d.ts +8 -3
  998. package/dist/unstable/persistence/KeyValueStore.d.ts.map +1 -1
  999. package/dist/unstable/persistence/KeyValueStore.js +22 -13
  1000. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  1001. package/dist/unstable/persistence/Persistable.d.ts +8 -8
  1002. package/dist/unstable/persistence/Persistable.js.map +1 -1
  1003. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  1004. package/dist/unstable/persistence/PersistedQueue.d.ts +6 -6
  1005. package/dist/unstable/persistence/PersistedQueue.js +6 -6
  1006. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  1007. package/dist/unstable/persistence/Persistence.d.ts +3 -3
  1008. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  1009. package/dist/unstable/persistence/Persistence.js +91 -15
  1010. package/dist/unstable/persistence/Persistence.js.map +1 -1
  1011. package/dist/unstable/persistence/RateLimiter.d.ts +26 -15
  1012. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  1013. package/dist/unstable/persistence/RateLimiter.js +24 -13
  1014. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  1015. package/dist/unstable/persistence/Redis.d.ts +2 -2
  1016. package/dist/unstable/persistence/Redis.js +1 -1
  1017. package/dist/unstable/persistence/Redis.js.map +1 -1
  1018. package/dist/unstable/persistence/index.js.map +1 -1
  1019. package/dist/unstable/process/ChildProcess.d.ts +64 -21
  1020. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  1021. package/dist/unstable/process/ChildProcess.js +14 -5
  1022. package/dist/unstable/process/ChildProcess.js.map +1 -1
  1023. package/dist/unstable/process/ChildProcessSpawner.d.ts +21 -10
  1024. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  1025. package/dist/unstable/process/ChildProcessSpawner.js +1 -1
  1026. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  1027. package/dist/unstable/process/index.js.map +1 -1
  1028. package/dist/unstable/reactivity/AsyncResult.d.ts +8 -8
  1029. package/dist/unstable/reactivity/AsyncResult.d.ts.map +1 -1
  1030. package/dist/unstable/reactivity/AsyncResult.js +10 -10
  1031. package/dist/unstable/reactivity/AsyncResult.js.map +1 -1
  1032. package/dist/unstable/reactivity/Atom.d.ts +25 -22
  1033. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  1034. package/dist/unstable/reactivity/Atom.js +14 -13
  1035. package/dist/unstable/reactivity/Atom.js.map +1 -1
  1036. package/dist/unstable/reactivity/AtomHttpApi.d.ts +1 -1
  1037. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  1038. package/dist/unstable/reactivity/AtomHttpApi.js +4 -1
  1039. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  1040. package/dist/unstable/reactivity/AtomRef.js.map +1 -1
  1041. package/dist/unstable/reactivity/AtomRegistry.js +24 -3
  1042. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  1043. package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
  1044. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  1045. package/dist/unstable/reactivity/AtomRpc.js +4 -1
  1046. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  1047. package/dist/unstable/reactivity/Hydration.d.ts +1 -1
  1048. package/dist/unstable/reactivity/Hydration.js +1 -1
  1049. package/dist/unstable/reactivity/Hydration.js.map +1 -1
  1050. package/dist/unstable/reactivity/Reactivity.js.map +1 -1
  1051. package/dist/unstable/reactivity/index.js.map +1 -1
  1052. package/dist/unstable/rpc/Rpc.d.ts +35 -33
  1053. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  1054. package/dist/unstable/rpc/Rpc.js +4 -2
  1055. package/dist/unstable/rpc/Rpc.js.map +1 -1
  1056. package/dist/unstable/rpc/RpcClient.d.ts +12 -12
  1057. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  1058. package/dist/unstable/rpc/RpcClient.js +12 -11
  1059. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  1060. package/dist/unstable/rpc/RpcClientError.js.map +1 -1
  1061. package/dist/unstable/rpc/RpcGroup.d.ts +8 -8
  1062. package/dist/unstable/rpc/RpcGroup.js +1 -1
  1063. package/dist/unstable/rpc/RpcGroup.js.map +1 -1
  1064. package/dist/unstable/rpc/RpcMessage.d.ts +31 -30
  1065. package/dist/unstable/rpc/RpcMessage.d.ts.map +1 -1
  1066. package/dist/unstable/rpc/RpcMessage.js +6 -6
  1067. package/dist/unstable/rpc/RpcMessage.js.map +1 -1
  1068. package/dist/unstable/rpc/RpcMiddleware.d.ts +10 -10
  1069. package/dist/unstable/rpc/RpcMiddleware.js +1 -1
  1070. package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
  1071. package/dist/unstable/rpc/RpcSchema.d.ts +4 -4
  1072. package/dist/unstable/rpc/RpcSchema.js +3 -3
  1073. package/dist/unstable/rpc/RpcSchema.js.map +1 -1
  1074. package/dist/unstable/rpc/RpcSerialization.d.ts +58 -7
  1075. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  1076. package/dist/unstable/rpc/RpcSerialization.js +175 -96
  1077. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  1078. package/dist/unstable/rpc/RpcServer.d.ts +13 -13
  1079. package/dist/unstable/rpc/RpcServer.js +17 -13
  1080. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  1081. package/dist/unstable/rpc/RpcTest.js.map +1 -1
  1082. package/dist/unstable/rpc/RpcWorker.d.ts +5 -5
  1083. package/dist/unstable/rpc/RpcWorker.js +4 -4
  1084. package/dist/unstable/rpc/RpcWorker.js.map +1 -1
  1085. package/dist/unstable/rpc/Utils.js.map +1 -1
  1086. package/dist/unstable/rpc/index.js.map +1 -1
  1087. package/dist/unstable/schema/Model.d.ts +52 -50
  1088. package/dist/unstable/schema/Model.d.ts.map +1 -1
  1089. package/dist/unstable/schema/Model.js +35 -33
  1090. package/dist/unstable/schema/Model.js.map +1 -1
  1091. package/dist/unstable/schema/VariantSchema.d.ts +5 -5
  1092. package/dist/unstable/schema/VariantSchema.js +2 -2
  1093. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  1094. package/dist/unstable/schema/index.js.map +1 -1
  1095. package/dist/unstable/socket/Socket.d.ts +11 -3
  1096. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  1097. package/dist/unstable/socket/Socket.js +9 -4
  1098. package/dist/unstable/socket/Socket.js.map +1 -1
  1099. package/dist/unstable/socket/SocketServer.js.map +1 -1
  1100. package/dist/unstable/socket/index.js.map +1 -1
  1101. package/dist/unstable/sql/Migrator.js.map +1 -1
  1102. package/dist/unstable/sql/SqlClient.d.ts +1 -1
  1103. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  1104. package/dist/unstable/sql/SqlClient.js +2 -2
  1105. package/dist/unstable/sql/SqlClient.js.map +1 -1
  1106. package/dist/unstable/sql/SqlConnection.js.map +1 -1
  1107. package/dist/unstable/sql/SqlError.js.map +1 -1
  1108. package/dist/unstable/sql/SqlModel.d.ts +2 -2
  1109. package/dist/unstable/sql/SqlModel.js +2 -2
  1110. package/dist/unstable/sql/SqlModel.js.map +1 -1
  1111. package/dist/unstable/sql/SqlResolver.d.ts +5 -5
  1112. package/dist/unstable/sql/SqlResolver.js +2 -2
  1113. package/dist/unstable/sql/SqlResolver.js.map +1 -1
  1114. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  1115. package/dist/unstable/sql/SqlStream.js.map +1 -1
  1116. package/dist/unstable/sql/Statement.d.ts +6 -6
  1117. package/dist/unstable/sql/Statement.js +15 -15
  1118. package/dist/unstable/sql/Statement.js.map +1 -1
  1119. package/dist/unstable/sql/index.js.map +1 -1
  1120. package/dist/unstable/workers/Transferable.d.ts +1 -1
  1121. package/dist/unstable/workers/Transferable.js +1 -1
  1122. package/dist/unstable/workers/Transferable.js.map +1 -1
  1123. package/dist/unstable/workers/Worker.d.ts +2 -2
  1124. package/dist/unstable/workers/Worker.js +2 -2
  1125. package/dist/unstable/workers/Worker.js.map +1 -1
  1126. package/dist/unstable/workers/WorkerError.d.ts +7 -7
  1127. package/dist/unstable/workers/WorkerError.js +6 -6
  1128. package/dist/unstable/workers/WorkerError.js.map +1 -1
  1129. package/dist/unstable/workers/WorkerRunner.d.ts +1 -1
  1130. package/dist/unstable/workers/WorkerRunner.js +1 -1
  1131. package/dist/unstable/workers/WorkerRunner.js.map +1 -1
  1132. package/dist/unstable/workers/index.js.map +1 -1
  1133. package/dist/unstable/workflow/Activity.d.ts +2 -2
  1134. package/dist/unstable/workflow/Activity.js +2 -2
  1135. package/dist/unstable/workflow/Activity.js.map +1 -1
  1136. package/dist/unstable/workflow/DurableClock.d.ts +1 -1
  1137. package/dist/unstable/workflow/DurableClock.js +1 -1
  1138. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  1139. package/dist/unstable/workflow/DurableDeferred.d.ts +10 -10
  1140. package/dist/unstable/workflow/DurableDeferred.js +5 -5
  1141. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  1142. package/dist/unstable/workflow/DurableQueue.d.ts +22 -20
  1143. package/dist/unstable/workflow/DurableQueue.d.ts.map +1 -1
  1144. package/dist/unstable/workflow/DurableQueue.js +22 -20
  1145. package/dist/unstable/workflow/DurableQueue.js.map +1 -1
  1146. package/dist/unstable/workflow/Workflow.d.ts +21 -21
  1147. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  1148. package/dist/unstable/workflow/Workflow.js +13 -14
  1149. package/dist/unstable/workflow/Workflow.js.map +1 -1
  1150. package/dist/unstable/workflow/WorkflowEngine.d.ts +1 -1
  1151. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  1152. package/dist/unstable/workflow/WorkflowProxy.d.ts +4 -2
  1153. package/dist/unstable/workflow/WorkflowProxy.d.ts.map +1 -1
  1154. package/dist/unstable/workflow/WorkflowProxy.js +4 -2
  1155. package/dist/unstable/workflow/WorkflowProxy.js.map +1 -1
  1156. package/dist/unstable/workflow/WorkflowProxyServer.js.map +1 -1
  1157. package/dist/unstable/workflow/index.js.map +1 -1
  1158. package/dist/unstable/workflow/internal/crypto.js.map +1 -1
  1159. package/package.json +5 -6
  1160. package/src/Array.ts +982 -1045
  1161. package/src/BigDecimal.ts +433 -756
  1162. package/src/BigInt.ts +213 -269
  1163. package/src/Boolean.ts +146 -188
  1164. package/src/Cache.ts +409 -255
  1165. package/src/Cause.ts +167 -277
  1166. package/src/Channel.ts +891 -816
  1167. package/src/ChannelSchema.ts +1 -1
  1168. package/src/Chunk.ts +841 -1181
  1169. package/src/Clock.ts +181 -49
  1170. package/src/Combiner.ts +20 -33
  1171. package/src/Config.ts +615 -332
  1172. package/src/ConfigProvider.ts +214 -120
  1173. package/src/Console.ts +289 -39
  1174. package/src/Context.ts +319 -378
  1175. package/src/Cron.ts +68 -77
  1176. package/src/Crypto.ts +13 -15
  1177. package/src/Data.ts +60 -80
  1178. package/src/DateTime.ts +564 -660
  1179. package/src/Deferred.ts +253 -256
  1180. package/src/Duration.ts +216 -308
  1181. package/src/Effect.ts +2893 -3279
  1182. package/src/Encoding.ts +22 -40
  1183. package/src/Equal.ts +49 -39
  1184. package/src/Equivalence.ts +103 -105
  1185. package/src/ErrorReporter.ts +51 -27
  1186. package/src/ExecutionPlan.ts +13 -55
  1187. package/src/Exit.ts +116 -192
  1188. package/src/Fiber.ts +81 -148
  1189. package/src/FiberHandle.ts +152 -105
  1190. package/src/FiberMap.ts +225 -174
  1191. package/src/FiberSet.ts +124 -82
  1192. package/src/FileSystem.ts +155 -263
  1193. package/src/Filter.ts +61 -33
  1194. package/src/Formatter.ts +54 -56
  1195. package/src/Function.ts +76 -145
  1196. package/src/Graph.ts +416 -770
  1197. package/src/HKT.ts +12 -6
  1198. package/src/Hash.ts +52 -83
  1199. package/src/HashMap.ts +319 -411
  1200. package/src/HashRing.ts +1 -0
  1201. package/src/HashSet.ts +177 -284
  1202. package/src/Inspectable.ts +12 -12
  1203. package/src/Iterable.ts +620 -786
  1204. package/src/JsonPatch.ts +58 -112
  1205. package/src/JsonPointer.ts +8 -8
  1206. package/src/JsonSchema.ts +402 -244
  1207. package/src/Latch.ts +23 -35
  1208. package/src/Layer.ts +359 -260
  1209. package/src/LayerMap.ts +49 -29
  1210. package/src/LayerRef.ts +6 -2
  1211. package/src/LogLevel.ts +114 -214
  1212. package/src/Logger.ts +344 -697
  1213. package/src/ManagedRuntime.ts +7 -5
  1214. package/src/Match.ts +217 -252
  1215. package/src/Metric.ts +516 -1089
  1216. package/src/MutableHashMap.ts +218 -255
  1217. package/src/MutableHashSet.ts +84 -89
  1218. package/src/MutableList.ts +73 -370
  1219. package/src/MutableRef.ts +420 -243
  1220. package/src/Newtype.ts +21 -14
  1221. package/src/NonEmptyIterable.ts +7 -137
  1222. package/src/Number.ts +196 -233
  1223. package/src/Optic.ts +243 -383
  1224. package/src/Option.ts +447 -812
  1225. package/src/Order.ts +109 -109
  1226. package/src/Ordering.ts +20 -23
  1227. package/src/Path.ts +38 -41
  1228. package/src/Pipeable.ts +6 -5
  1229. package/src/PlatformError.ts +4 -4
  1230. package/src/Pool.ts +4 -2
  1231. package/src/Predicate.ts +200 -181
  1232. package/src/PrimaryKey.ts +7 -7
  1233. package/src/PubSub.ts +526 -552
  1234. package/src/Pull.ts +24 -18
  1235. package/src/Queue.ts +200 -159
  1236. package/src/Random.ts +49 -74
  1237. package/src/RcMap.ts +121 -63
  1238. package/src/RcRef.ts +24 -13
  1239. package/src/Record.ts +291 -488
  1240. package/src/Redactable.ts +10 -3
  1241. package/src/Redacted.ts +25 -25
  1242. package/src/Reducer.ts +8 -15
  1243. package/src/Ref.ts +221 -361
  1244. package/src/References.ts +102 -168
  1245. package/src/RegExp.ts +10 -14
  1246. package/src/Request.ts +31 -21
  1247. package/src/RequestResolver.ts +202 -91
  1248. package/src/Result.ts +312 -484
  1249. package/src/Runtime.ts +50 -75
  1250. package/src/Schedule.ts +308 -1734
  1251. package/src/Scheduler.ts +20 -7
  1252. package/src/Schema.ts +716 -745
  1253. package/src/SchemaAST.ts +466 -358
  1254. package/src/SchemaError.ts +7 -6
  1255. package/src/SchemaGetter.ts +242 -190
  1256. package/src/SchemaIssue.ts +89 -275
  1257. package/src/SchemaParser.ts +180 -93
  1258. package/src/SchemaRepresentation.ts +22 -40
  1259. package/src/SchemaTransformation.ts +129 -88
  1260. package/src/Scope.ts +123 -151
  1261. package/src/ScopedRef.ts +4 -4
  1262. package/src/Semaphore.ts +152 -51
  1263. package/src/Sink.ts +128 -113
  1264. package/src/Stdio.ts +1 -1
  1265. package/src/Stream.ts +2602 -3123
  1266. package/src/String.ts +275 -312
  1267. package/src/Struct.ts +109 -114
  1268. package/src/SubscriptionRef.ts +284 -252
  1269. package/src/Symbol.ts +3 -3
  1270. package/src/Terminal.ts +2 -2
  1271. package/src/Tracer.ts +102 -55
  1272. package/src/Trie.ts +287 -679
  1273. package/src/Tuple.ts +92 -127
  1274. package/src/TxChunk.ts +201 -121
  1275. package/src/TxDeferred.ts +62 -46
  1276. package/src/TxHashMap.ts +645 -799
  1277. package/src/TxHashSet.ts +443 -356
  1278. package/src/TxPriorityQueue.ts +130 -98
  1279. package/src/TxPubSub.ts +107 -80
  1280. package/src/TxQueue.ts +214 -183
  1281. package/src/TxReentrantLock.ts +97 -66
  1282. package/src/TxRef.ts +51 -32
  1283. package/src/TxSemaphore.ts +129 -95
  1284. package/src/TxSubscriptionRef.ts +97 -70
  1285. package/src/Types.ts +126 -67
  1286. package/src/Unify.ts +45 -65
  1287. package/src/Utils.ts +23 -16
  1288. package/src/internal/core.ts +2 -2
  1289. package/src/internal/dateTime.ts +6 -0
  1290. package/src/internal/effect.ts +93 -48
  1291. package/src/internal/persistence.ts +2 -0
  1292. package/src/internal/references.ts +3 -2
  1293. package/src/internal/schema/fromJsonSchemaDocument.ts +15 -13
  1294. package/src/internal/schema/fromRepresentation.ts +10 -16
  1295. package/src/internal/schema/parser.ts +22 -0
  1296. package/src/internal/schema/toJsonSchemaDocument.ts +60 -6
  1297. package/src/internal/schema/toRepresentation.ts +104 -119
  1298. package/src/internal/trie.ts +10 -11
  1299. package/src/testing/FastCheck.ts +8 -7
  1300. package/src/testing/TestClock.ts +72 -30
  1301. package/src/testing/TestConsole.ts +32 -31
  1302. package/src/testing/TestSchema.ts +29 -29
  1303. package/src/unstable/ai/AiError.ts +95 -118
  1304. package/src/unstable/ai/AnthropicStructuredOutput.ts +1 -1
  1305. package/src/unstable/ai/Chat.ts +132 -97
  1306. package/src/unstable/ai/IdGenerator.ts +32 -28
  1307. package/src/unstable/ai/LanguageModel.ts +107 -67
  1308. package/src/unstable/ai/McpProtocol.ts +48 -0
  1309. package/src/unstable/ai/McpSchema.ts +60 -50
  1310. package/src/unstable/ai/McpServer.ts +930 -304
  1311. package/src/unstable/ai/Model.ts +9 -20
  1312. package/src/unstable/ai/OpenAiStructuredOutput.ts +1 -1
  1313. package/src/unstable/ai/Prompt.ts +145 -43
  1314. package/src/unstable/ai/Response.ts +28 -14
  1315. package/src/unstable/ai/Telemetry.ts +46 -13
  1316. package/src/unstable/ai/Tokenizer.ts +14 -3
  1317. package/src/unstable/ai/Tool.ts +59 -44
  1318. package/src/unstable/ai/Toolkit.ts +26 -8
  1319. package/src/unstable/ai/index.ts +5 -0
  1320. package/src/unstable/ai/internal/mcpProtocol.ts +85 -0
  1321. package/src/unstable/ai/internal/mcpProtocolRegistry.ts +70 -0
  1322. package/src/unstable/ai/internal/structured-output.ts +13 -18
  1323. package/src/unstable/cli/Argument.ts +273 -69
  1324. package/src/unstable/cli/CliError.ts +69 -76
  1325. package/src/unstable/cli/CliOutput.ts +44 -58
  1326. package/src/unstable/cli/Command.ts +705 -107
  1327. package/src/unstable/cli/Flag.ts +418 -138
  1328. package/src/unstable/cli/GlobalFlag.ts +1 -1
  1329. package/src/unstable/cli/HelpDoc.ts +12 -4
  1330. package/src/unstable/cli/Param.ts +292 -78
  1331. package/src/unstable/cli/Primitive.ts +370 -149
  1332. package/src/unstable/cli/Prompt.ts +28 -14
  1333. package/src/unstable/cli/internal/lexer.ts +8 -2
  1334. package/src/unstable/cli/internal/parser.ts +2 -2
  1335. package/src/unstable/cluster/ClusterSchema.ts +8 -8
  1336. package/src/unstable/cluster/ClusterWorkflowEngine.ts +5 -1
  1337. package/src/unstable/cluster/Entity.ts +15 -16
  1338. package/src/unstable/cluster/EntityProxy.ts +4 -2
  1339. package/src/unstable/cluster/EntityResource.ts +2 -2
  1340. package/src/unstable/cluster/Envelope.ts +3 -3
  1341. package/src/unstable/cluster/HttpRunner.ts +6 -4
  1342. package/src/unstable/cluster/Message.ts +9 -9
  1343. package/src/unstable/cluster/MessageStorage.ts +15 -15
  1344. package/src/unstable/cluster/Reply.ts +4 -6
  1345. package/src/unstable/cluster/RunnerHealth.ts +1 -1
  1346. package/src/unstable/cluster/RunnerServer.ts +41 -8
  1347. package/src/unstable/cluster/RunnerStorage.ts +2 -2
  1348. package/src/unstable/cluster/Runners.ts +23 -12
  1349. package/src/unstable/cluster/Sharding.ts +7 -8
  1350. package/src/unstable/cluster/ShardingConfig.ts +3 -3
  1351. package/src/unstable/cluster/SingletonAddress.ts +1 -1
  1352. package/src/unstable/cluster/Snowflake.ts +8 -8
  1353. package/src/unstable/cluster/SqlMessageStorage.ts +1 -1
  1354. package/src/unstable/cluster/SqlRunnerStorage.ts +21 -5
  1355. package/src/unstable/cluster/internal/entityManager.ts +11 -15
  1356. package/src/unstable/encoding/Msgpack.ts +6 -8
  1357. package/src/unstable/encoding/Sse.ts +98 -16
  1358. package/src/unstable/eventlog/Event.ts +20 -20
  1359. package/src/unstable/eventlog/EventGroup.ts +4 -4
  1360. package/src/unstable/eventlog/EventJournal.ts +15 -15
  1361. package/src/unstable/eventlog/EventLog.ts +3 -3
  1362. package/src/unstable/eventlog/EventLogEncryption.ts +1 -1
  1363. package/src/unstable/eventlog/EventLogMessage.ts +2 -2
  1364. package/src/unstable/eventlog/EventLogRemote.ts +1 -1
  1365. package/src/unstable/eventlog/EventLogServer.ts +41 -7
  1366. package/src/unstable/eventlog/EventLogServerEncrypted.ts +13 -5
  1367. package/src/unstable/eventlog/EventLogServerUnencrypted.ts +14 -6
  1368. package/src/unstable/eventlog/EventLogSessionAuth.ts +1 -1
  1369. package/src/unstable/http/Cookies.ts +35 -21
  1370. package/src/unstable/http/Etag.ts +1 -1
  1371. package/src/unstable/http/FetchHttpClient.ts +3 -1
  1372. package/src/unstable/http/Headers.ts +2 -2
  1373. package/src/unstable/http/HttpBody.ts +20 -5
  1374. package/src/unstable/http/HttpClient.ts +83 -55
  1375. package/src/unstable/http/HttpClientRequest.ts +2 -0
  1376. package/src/unstable/http/HttpClientResponse.ts +4 -4
  1377. package/src/unstable/http/HttpEffect.ts +8 -8
  1378. package/src/unstable/http/HttpMethod.ts +6 -9
  1379. package/src/unstable/http/HttpMiddleware.ts +202 -39
  1380. package/src/unstable/http/HttpPlatform.ts +95 -0
  1381. package/src/unstable/http/HttpRouter.ts +102 -98
  1382. package/src/unstable/http/HttpServer.ts +13 -13
  1383. package/src/unstable/http/HttpServerError.ts +2 -2
  1384. package/src/unstable/http/HttpServerRequest.ts +4 -4
  1385. package/src/unstable/http/HttpServerResponse.ts +30 -0
  1386. package/src/unstable/http/HttpStaticServer.ts +35 -7
  1387. package/src/unstable/http/Multipart.ts +6 -6
  1388. package/src/unstable/http/Url.ts +33 -63
  1389. package/src/unstable/http/UrlParams.ts +10 -18
  1390. package/src/unstable/http/internal/compression.ts +196 -0
  1391. package/src/unstable/httpapi/HttpApiBuilder.ts +10 -9
  1392. package/src/unstable/httpapi/HttpApiClient.ts +14 -14
  1393. package/src/unstable/httpapi/HttpApiEndpoint.ts +42 -42
  1394. package/src/unstable/httpapi/HttpApiError.ts +13 -13
  1395. package/src/unstable/httpapi/HttpApiGroup.ts +15 -15
  1396. package/src/unstable/httpapi/HttpApiMiddleware.ts +71 -24
  1397. package/src/unstable/httpapi/HttpApiScalar.ts +0 -12
  1398. package/src/unstable/httpapi/HttpApiSchema.ts +6 -6
  1399. package/src/unstable/httpapi/OpenApi.ts +13 -13
  1400. package/src/unstable/observability/OtlpExporter.ts +31 -19
  1401. package/src/unstable/observability/OtlpMetrics.ts +4 -1
  1402. package/src/unstable/observability/OtlpResource.ts +26 -17
  1403. package/src/unstable/observability/PrometheusMetrics.ts +13 -4
  1404. package/src/unstable/observability/internal/otlpEnv.ts +1 -1
  1405. package/src/unstable/observability/internal/protobuf.ts +3 -0
  1406. package/src/unstable/persistence/KeyValueStore.ts +72 -49
  1407. package/src/unstable/persistence/Persistable.ts +8 -8
  1408. package/src/unstable/persistence/PersistedQueue.ts +6 -6
  1409. package/src/unstable/persistence/Persistence.ts +126 -19
  1410. package/src/unstable/persistence/RateLimiter.ts +26 -15
  1411. package/src/unstable/persistence/Redis.ts +2 -2
  1412. package/src/unstable/process/ChildProcess.ts +64 -21
  1413. package/src/unstable/process/ChildProcessSpawner.ts +21 -10
  1414. package/src/unstable/reactivity/AsyncResult.ts +12 -13
  1415. package/src/unstable/reactivity/Atom.ts +28 -25
  1416. package/src/unstable/reactivity/AtomHttpApi.ts +5 -4
  1417. package/src/unstable/reactivity/AtomRegistry.ts +24 -3
  1418. package/src/unstable/reactivity/AtomRpc.ts +5 -4
  1419. package/src/unstable/reactivity/Hydration.ts +1 -1
  1420. package/src/unstable/rpc/Rpc.ts +35 -33
  1421. package/src/unstable/rpc/RpcClient.ts +16 -15
  1422. package/src/unstable/rpc/RpcGroup.ts +8 -8
  1423. package/src/unstable/rpc/RpcMessage.ts +31 -30
  1424. package/src/unstable/rpc/RpcMiddleware.ts +10 -10
  1425. package/src/unstable/rpc/RpcSchema.ts +4 -4
  1426. package/src/unstable/rpc/RpcSerialization.ts +167 -68
  1427. package/src/unstable/rpc/RpcServer.ts +18 -15
  1428. package/src/unstable/rpc/RpcWorker.ts +5 -5
  1429. package/src/unstable/schema/Model.ts +52 -50
  1430. package/src/unstable/schema/VariantSchema.ts +5 -5
  1431. package/src/unstable/socket/Socket.ts +17 -4
  1432. package/src/unstable/sql/SqlClient.ts +5 -6
  1433. package/src/unstable/sql/SqlModel.ts +2 -2
  1434. package/src/unstable/sql/SqlResolver.ts +5 -5
  1435. package/src/unstable/sql/Statement.ts +24 -23
  1436. package/src/unstable/workers/Transferable.ts +1 -1
  1437. package/src/unstable/workers/Worker.ts +2 -2
  1438. package/src/unstable/workers/WorkerError.ts +7 -7
  1439. package/src/unstable/workers/WorkerRunner.ts +1 -1
  1440. package/src/unstable/workflow/Activity.ts +2 -2
  1441. package/src/unstable/workflow/DurableClock.ts +1 -1
  1442. package/src/unstable/workflow/DurableDeferred.ts +10 -10
  1443. package/src/unstable/workflow/DurableQueue.ts +22 -20
  1444. package/src/unstable/workflow/Workflow.ts +23 -23
  1445. package/src/unstable/workflow/WorkflowEngine.ts +1 -1
  1446. package/src/unstable/workflow/WorkflowProxy.ts +4 -2
  1447. package/dist/internal/version.d.ts +0 -3
  1448. package/dist/internal/version.d.ts.map +0 -1
  1449. package/dist/internal/version.js +0 -2
  1450. package/dist/internal/version.js.map +0 -1
  1451. package/src/internal/version.ts +0 -2
package/src/Layer.ts CHANGED
@@ -192,7 +192,7 @@ const MemoMapTypeId = "~effect/Layer/MemoMap"
192
192
  *
193
193
  * **Example** (Sharing layer construction with a memo map)
194
194
  *
195
- * ```ts
195
+ * ```ts import.meta.vitest
196
196
  * import { Context, Effect, Layer } from "effect"
197
197
  *
198
198
  * class Database extends Context.Service<Database, {
@@ -211,6 +211,9 @@ const MemoMapTypeId = "~effect/Layer/MemoMap"
211
211
  *
212
212
  * return Context.get(context, Database)
213
213
  * })
214
+ *
215
+ * const database = Effect.runSync(Effect.scoped(program))
216
+ * Effect.runSync(database.query("SELECT 1")) // => "result"
214
217
  * ```
215
218
  *
216
219
  * @category models
@@ -251,7 +254,7 @@ const memoMapReuse = <RIn, E, ROut>(
251
254
  *
252
255
  * **Example** (Checking whether a value is a layer)
253
256
  *
254
- * ```ts
257
+ * ```ts import.meta.vitest
255
258
  * import { Context, Effect, Layer } from "effect"
256
259
  *
257
260
  * class Database extends Context.Service<Database, {
@@ -263,11 +266,11 @@ const memoMapReuse = <RIn, E, ROut>(
263
266
  * })
264
267
  * const notALayer = { someProperty: "value" }
265
268
  *
266
- * console.log(Layer.isLayer(dbLayer)) // true
267
- * console.log(Layer.isLayer(notALayer)) // false
269
+ * Layer.isLayer(dbLayer) // => true
270
+ * Layer.isLayer(notALayer) // => false
268
271
  * ```
269
272
  *
270
- * @category getters
273
+ * @category guards
271
274
  * @since 2.0.0
272
275
  */
273
276
  export const isLayer = (u: unknown): u is Layer<unknown, unknown, unknown> => hasProperty(u, TypeId)
@@ -305,7 +308,7 @@ const fromBuildUnsafe = <ROut, E, RIn>(
305
308
  *
306
309
  * **Example** (Constructing a layer from a build function)
307
310
  *
308
- * ```ts
311
+ * ```ts import.meta.vitest
309
312
  * import { Context, Effect, Layer } from "effect"
310
313
  *
311
314
  * class Database extends Context.Service<Database, {
@@ -319,6 +322,9 @@ const fromBuildUnsafe = <ROut, E, RIn>(
319
322
  * })
320
323
  * )
321
324
  * )
325
+ *
326
+ * const program = Database.use((database) => database.query("SELECT 1"))
327
+ * Effect.runSync(Effect.provide(program, databaseLayer)) // => "result"
322
328
  * ```
323
329
  *
324
330
  * @category constructors
@@ -349,7 +355,7 @@ export const fromBuild = <ROut, E, RIn>(
349
355
  *
350
356
  * **Example** (Memoizing layer construction)
351
357
  *
352
- * ```ts
358
+ * ```ts import.meta.vitest
353
359
  * import { Context, Effect, Layer } from "effect"
354
360
  *
355
361
  * class Database extends Context.Service<Database, {
@@ -363,6 +369,9 @@ export const fromBuild = <ROut, E, RIn>(
363
369
  * })
364
370
  * )
365
371
  * )
372
+ *
373
+ * const program = Database.use((database) => database.query("SELECT 1"))
374
+ * Effect.runSync(Effect.provide(program, databaseLayer)) // => "result"
366
375
  * ```
367
376
  *
368
377
  * @category constructors
@@ -451,7 +460,7 @@ class MemoMapImpl implements MemoMap {
451
460
  *
452
461
  * **Example** (Creating a memo map unsafely)
453
462
  *
454
- * ```ts
463
+ * ```ts import.meta.vitest
455
464
  * import { Context, Effect, Layer } from "effect"
456
465
  *
457
466
  * class Database extends Context.Service<Database, {
@@ -470,9 +479,12 @@ class MemoMapImpl implements MemoMap {
470
479
  *
471
480
  * return Context.get(context, Database)
472
481
  * })
482
+ *
483
+ * const database = Effect.runSync(Effect.scoped(program))
484
+ * Effect.runSync(database.query("SELECT 1")) // => "result"
473
485
  * ```
474
486
  *
475
- * @category memo map
487
+ * @category constructors
476
488
  * @since 4.0.0
477
489
  */
478
490
  export const makeMemoMapUnsafe = (): MemoMap => new MemoMapImpl()
@@ -491,7 +503,7 @@ export const makeMemoMapUnsafe = (): MemoMap => new MemoMapImpl()
491
503
  * @see {@link forkMemoMap} for allocating the child memo map inside `Effect`
492
504
  * @see {@link makeMemoMapUnsafe} for creating a root memo map without a parent
493
505
  *
494
- * @category memo map
506
+ * @category constructors
495
507
  * @since 4.0.0
496
508
  */
497
509
  export const forkMemoMapUnsafe = (parent: MemoMap): MemoMap => new MemoMapImpl(parent)
@@ -501,7 +513,7 @@ export const forkMemoMapUnsafe = (parent: MemoMap): MemoMap => new MemoMapImpl(p
501
513
  *
502
514
  * **Example** (Creating a memo map in an effect)
503
515
  *
504
- * ```ts
516
+ * ```ts import.meta.vitest
505
517
  * import { Context, Effect, Layer } from "effect"
506
518
  *
507
519
  * class Database extends Context.Service<Database, {
@@ -520,9 +532,12 @@ export const forkMemoMapUnsafe = (parent: MemoMap): MemoMap => new MemoMapImpl(p
520
532
  *
521
533
  * return Context.get(context, Database)
522
534
  * })
535
+ *
536
+ * const database = Effect.runSync(Effect.scoped(program))
537
+ * Effect.runSync(database.query("SELECT 1")) // => "result"
523
538
  * ```
524
539
  *
525
- * @category memo map
540
+ * @category constructors
526
541
  * @since 2.0.0
527
542
  */
528
543
  export const makeMemoMap: Effect<MemoMap> = internalEffect.sync(makeMemoMapUnsafe)
@@ -541,7 +556,7 @@ export const makeMemoMap: Effect<MemoMap> = internalEffect.sync(makeMemoMapUnsaf
541
556
  * @see {@link forkMemoMapUnsafe} for the synchronous constructor variant
542
557
  * @see {@link buildWithMemoMap} for building layers with an explicit memo map
543
558
  *
544
- * @category memo map
559
+ * @category constructors
545
560
  * @since 4.0.0
546
561
  */
547
562
  export const forkMemoMap = (parent: MemoMap): Effect<MemoMap> => internalEffect.sync(() => forkMemoMapUnsafe(parent))
@@ -561,7 +576,7 @@ export const forkMemoMap = (parent: MemoMap): Effect<MemoMap> => internalEffect.
561
576
  *
562
577
  * @see {@link MemoMap} the memoization map type wrapped by this service
563
578
  *
564
- * @category models
579
+ * @category services
565
580
  * @since 3.13.0
566
581
  */
567
582
  export class CurrentMemoMap extends Context.Service<CurrentMemoMap, MemoMap>()("effect/Layer/CurrentMemoMap") {
@@ -577,7 +592,7 @@ export class CurrentMemoMap extends Context.Service<CurrentMemoMap, MemoMap>()("
577
592
  *
578
593
  * **Example** (Building layers with an explicit memo map)
579
594
  *
580
- * ```ts
595
+ * ```ts import.meta.vitest
581
596
  * import { Context, Effect, Layer } from "effect"
582
597
  *
583
598
  * class Database extends Context.Service<Database, {
@@ -588,6 +603,8 @@ export class CurrentMemoMap extends Context.Service<CurrentMemoMap, MemoMap>()("
588
603
  * readonly log: (msg: string) => Effect.Effect<void>
589
604
  * }>()("Logger") {}
590
605
  *
606
+ * const logs: Array<string> = []
607
+ *
591
608
  * // Build layers with explicit memoization control
592
609
  * const program = Effect.gen(function*() {
593
610
  * const memoMap = yield* Layer.makeMemoMap
@@ -601,7 +618,7 @@ export class CurrentMemoMap extends Context.Service<CurrentMemoMap, MemoMap>()("
601
618
  *
602
619
  * // Build logger layer with same memoization (reuses memo if same layer)
603
620
  * const loggerLayer = Layer.succeed(Logger, {
604
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
621
+ * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(msg)))
605
622
  * })
606
623
  * const loggerContext = yield* Layer.buildWithMemoMap(
607
624
  * loggerLayer,
@@ -614,9 +631,13 @@ export class CurrentMemoMap extends Context.Service<CurrentMemoMap, MemoMap>()("
614
631
  * logger: Context.get(loggerContext, Logger)
615
632
  * }
616
633
  * })
634
+ *
635
+ * const services = Effect.runSync(Effect.scoped(program))
636
+ * Effect.runSync(services.logger.log("ready"))
637
+ * logs // => ["ready"]
617
638
  * ```
618
639
  *
619
- * @category memo map
640
+ * @category destructors
620
641
  * @since 2.0.0
621
642
  */
622
643
  export const buildWithMemoMap: {
@@ -626,7 +647,7 @@ export const buildWithMemoMap: {
626
647
  *
627
648
  * **Example** (Building layers with an explicit memo map)
628
649
  *
629
- * ```ts
650
+ * ```ts import.meta.vitest
630
651
  * import { Context, Effect, Layer } from "effect"
631
652
  *
632
653
  * class Database extends Context.Service<Database, {
@@ -637,6 +658,8 @@ export const buildWithMemoMap: {
637
658
  * readonly log: (msg: string) => Effect.Effect<void>
638
659
  * }>()("Logger") {}
639
660
  *
661
+ * const logs: Array<string> = []
662
+ *
640
663
  * // Build layers with explicit memoization control
641
664
  * const program = Effect.gen(function*() {
642
665
  * const memoMap = yield* Layer.makeMemoMap
@@ -650,7 +673,7 @@ export const buildWithMemoMap: {
650
673
  *
651
674
  * // Build logger layer with same memoization (reuses memo if same layer)
652
675
  * const loggerLayer = Layer.succeed(Logger, {
653
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
676
+ * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(msg)))
654
677
  * })
655
678
  * const loggerContext = yield* Layer.buildWithMemoMap(
656
679
  * loggerLayer,
@@ -663,9 +686,13 @@ export const buildWithMemoMap: {
663
686
  * logger: Context.get(loggerContext, Logger)
664
687
  * }
665
688
  * })
689
+ *
690
+ * const services = Effect.runSync(Effect.scoped(program))
691
+ * Effect.runSync(services.logger.log("ready"))
692
+ * logs // => ["ready"]
666
693
  * ```
667
694
  *
668
- * @category memo map
695
+ * @category destructors
669
696
  * @since 2.0.0
670
697
  */
671
698
  (memoMap: MemoMap, scope: Scope.Scope): <RIn, E, ROut>(self: Layer<ROut, E, RIn>) => Effect<Context.Context<ROut>, E, RIn>
@@ -675,7 +702,7 @@ export const buildWithMemoMap: {
675
702
  *
676
703
  * **Example** (Building layers with an explicit memo map)
677
704
  *
678
- * ```ts
705
+ * ```ts import.meta.vitest
679
706
  * import { Context, Effect, Layer } from "effect"
680
707
  *
681
708
  * class Database extends Context.Service<Database, {
@@ -686,6 +713,8 @@ export const buildWithMemoMap: {
686
713
  * readonly log: (msg: string) => Effect.Effect<void>
687
714
  * }>()("Logger") {}
688
715
  *
716
+ * const logs: Array<string> = []
717
+ *
689
718
  * // Build layers with explicit memoization control
690
719
  * const program = Effect.gen(function*() {
691
720
  * const memoMap = yield* Layer.makeMemoMap
@@ -699,7 +728,7 @@ export const buildWithMemoMap: {
699
728
  *
700
729
  * // Build logger layer with same memoization (reuses memo if same layer)
701
730
  * const loggerLayer = Layer.succeed(Logger, {
702
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
731
+ * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(msg)))
703
732
  * })
704
733
  * const loggerContext = yield* Layer.buildWithMemoMap(
705
734
  * loggerLayer,
@@ -712,9 +741,13 @@ export const buildWithMemoMap: {
712
741
  * logger: Context.get(loggerContext, Logger)
713
742
  * }
714
743
  * })
744
+ *
745
+ * const services = Effect.runSync(Effect.scoped(program))
746
+ * Effect.runSync(services.logger.log("ready"))
747
+ * logs // => ["ready"]
715
748
  * ```
716
749
  *
717
- * @category memo map
750
+ * @category destructors
718
751
  * @since 2.0.0
719
752
  */
720
753
  <RIn, E, ROut>(self: Layer<ROut, E, RIn>, memoMap: MemoMap, scope: Scope.Scope): Effect<Context.Context<ROut>, E, RIn>
@@ -734,7 +767,7 @@ export const buildWithMemoMap: {
734
767
  *
735
768
  * **Example** (Building a layer into a context)
736
769
  *
737
- * ```ts
770
+ * ```ts import.meta.vitest
738
771
  * import { Context, Effect, Layer } from "effect"
739
772
  *
740
773
  * class Database extends Context.Service<Database, {
@@ -755,6 +788,8 @@ export const buildWithMemoMap: {
755
788
  *
756
789
  * return yield* database.query("SELECT * FROM users")
757
790
  * })
791
+ *
792
+ * Effect.runSync(Effect.scoped(program)) // => "result"
758
793
  * ```
759
794
  *
760
795
  * @category destructors
@@ -786,22 +821,24 @@ export const build = <RIn, E, ROut>(
786
821
  *
787
822
  * **Example** (Building a layer with an explicit scope)
788
823
  *
789
- * ```ts
824
+ * ```ts import.meta.vitest
790
825
  * import { Context, Effect, Layer, Scope } from "effect"
791
826
  *
792
827
  * class Database extends Context.Service<Database, {
793
828
  * readonly query: (sql: string) => Effect.Effect<string>
794
829
  * }>()("Database") {}
795
830
  *
831
+ * const logs: Array<string> = []
832
+ *
796
833
  * // Build a layer with explicit scope control
797
834
  * const program = Effect.gen(function*() {
798
835
  * const scope = yield* Effect.scope
799
836
  *
800
837
  * const dbLayer = Layer.effect(Database, Effect.gen(function*() {
801
- * console.log("Initializing database...")
838
+ * logs.push("Initializing database...")
802
839
  * yield* Scope.addFinalizer(
803
840
  * scope,
804
- * Effect.sync(() => console.log("Database closed"))
841
+ * Effect.sync(() => logs.push("Database closed"))
805
842
  * )
806
843
  * return { query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Result: ${sql}`)) }
807
844
  * }))
@@ -813,6 +850,9 @@ export const build = <RIn, E, ROut>(
813
850
  * return yield* database.query("SELECT * FROM users")
814
851
  * // Database will be closed when scope is closed
815
852
  * })
853
+ *
854
+ * Effect.runSync(Effect.scoped(program)) // => "Result: SELECT * FROM users"
855
+ * logs // => ["Initializing database...", "Database closed"]
816
856
  * ```
817
857
  *
818
858
  * @category destructors
@@ -834,22 +874,24 @@ export const buildWithScope: {
834
874
  *
835
875
  * **Example** (Building a layer with an explicit scope)
836
876
  *
837
- * ```ts
877
+ * ```ts import.meta.vitest
838
878
  * import { Context, Effect, Layer, Scope } from "effect"
839
879
  *
840
880
  * class Database extends Context.Service<Database, {
841
881
  * readonly query: (sql: string) => Effect.Effect<string>
842
882
  * }>()("Database") {}
843
883
  *
884
+ * const logs: Array<string> = []
885
+ *
844
886
  * // Build a layer with explicit scope control
845
887
  * const program = Effect.gen(function*() {
846
888
  * const scope = yield* Effect.scope
847
889
  *
848
890
  * const dbLayer = Layer.effect(Database, Effect.gen(function*() {
849
- * console.log("Initializing database...")
891
+ * logs.push("Initializing database...")
850
892
  * yield* Scope.addFinalizer(
851
893
  * scope,
852
- * Effect.sync(() => console.log("Database closed"))
894
+ * Effect.sync(() => logs.push("Database closed"))
853
895
  * )
854
896
  * return { query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Result: ${sql}`)) }
855
897
  * }))
@@ -861,6 +903,9 @@ export const buildWithScope: {
861
903
  * return yield* database.query("SELECT * FROM users")
862
904
  * // Database will be closed when scope is closed
863
905
  * })
906
+ *
907
+ * Effect.runSync(Effect.scoped(program)) // => "Result: SELECT * FROM users"
908
+ * logs // => ["Initializing database...", "Database closed"]
864
909
  * ```
865
910
  *
866
911
  * @category destructors
@@ -882,22 +927,24 @@ export const buildWithScope: {
882
927
  *
883
928
  * **Example** (Building a layer with an explicit scope)
884
929
  *
885
- * ```ts
930
+ * ```ts import.meta.vitest
886
931
  * import { Context, Effect, Layer, Scope } from "effect"
887
932
  *
888
933
  * class Database extends Context.Service<Database, {
889
934
  * readonly query: (sql: string) => Effect.Effect<string>
890
935
  * }>()("Database") {}
891
936
  *
937
+ * const logs: Array<string> = []
938
+ *
892
939
  * // Build a layer with explicit scope control
893
940
  * const program = Effect.gen(function*() {
894
941
  * const scope = yield* Effect.scope
895
942
  *
896
943
  * const dbLayer = Layer.effect(Database, Effect.gen(function*() {
897
- * console.log("Initializing database...")
944
+ * logs.push("Initializing database...")
898
945
  * yield* Scope.addFinalizer(
899
946
  * scope,
900
- * Effect.sync(() => console.log("Database closed"))
947
+ * Effect.sync(() => logs.push("Database closed"))
901
948
  * )
902
949
  * return { query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Result: ${sql}`)) }
903
950
  * }))
@@ -909,6 +956,9 @@ export const buildWithScope: {
909
956
  * return yield* database.query("SELECT * FROM users")
910
957
  * // Database will be closed when scope is closed
911
958
  * })
959
+ *
960
+ * Effect.runSync(Effect.scoped(program)) // => "Result: SELECT * FROM users"
961
+ * logs // => ["Initializing database...", "Database closed"]
912
962
  * ```
913
963
  *
914
964
  * @category destructors
@@ -938,7 +988,7 @@ export const buildWithScope: {
938
988
  *
939
989
  * **Example** (Creating a layer from a service implementation)
940
990
  *
941
- * ```ts
991
+ * ```ts import.meta.vitest
942
992
  * import { Context, Effect, Layer } from "effect"
943
993
  *
944
994
  * class Database extends Context.Service<Database, {
@@ -948,6 +998,8 @@ export const buildWithScope: {
948
998
  * const DatabaseLive = Layer.succeed(Database, {
949
999
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Query result: ${sql}`))
950
1000
  * })
1001
+ * const program = Database.use((database) => database.query("SELECT 1"))
1002
+ * Effect.runSync(Effect.provide(program, DatabaseLive)) // => "Query result: SELECT 1"
951
1003
  * ```
952
1004
  *
953
1005
  * @see {@link sync} for constructing layers from lazy values
@@ -967,7 +1019,7 @@ export const succeed: {
967
1019
  *
968
1020
  * **Example** (Creating a layer from a service implementation)
969
1021
  *
970
- * ```ts
1022
+ * ```ts import.meta.vitest
971
1023
  * import { Context, Effect, Layer } from "effect"
972
1024
  *
973
1025
  * class Database extends Context.Service<Database, {
@@ -977,6 +1029,8 @@ export const succeed: {
977
1029
  * const DatabaseLive = Layer.succeed(Database, {
978
1030
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Query result: ${sql}`))
979
1031
  * })
1032
+ * const program = Database.use((database) => database.query("SELECT 1"))
1033
+ * Effect.runSync(Effect.provide(program, DatabaseLive)) // => "Query result: SELECT 1"
980
1034
  * ```
981
1035
  *
982
1036
  * @see {@link sync} for constructing layers from lazy values
@@ -996,7 +1050,7 @@ export const succeed: {
996
1050
  *
997
1051
  * **Example** (Creating a layer from a service implementation)
998
1052
  *
999
- * ```ts
1053
+ * ```ts import.meta.vitest
1000
1054
  * import { Context, Effect, Layer } from "effect"
1001
1055
  *
1002
1056
  * class Database extends Context.Service<Database, {
@@ -1006,6 +1060,8 @@ export const succeed: {
1006
1060
  * const DatabaseLive = Layer.succeed(Database, {
1007
1061
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Query result: ${sql}`))
1008
1062
  * })
1063
+ * const program = Database.use((database) => database.query("SELECT 1"))
1064
+ * Effect.runSync(Effect.provide(program, DatabaseLive)) // => "Query result: SELECT 1"
1009
1065
  * ```
1010
1066
  *
1011
1067
  * @see {@link sync} for constructing layers from lazy values
@@ -1037,7 +1093,7 @@ export const succeed: {
1037
1093
  *
1038
1094
  * **Example** (Providing multiple services from a context)
1039
1095
  *
1040
- * ```ts
1096
+ * ```ts import.meta.vitest
1041
1097
  * import { Context, Effect, Layer } from "effect"
1042
1098
  *
1043
1099
  * class Database extends Context.Service<Database, {
@@ -1048,15 +1104,19 @@ export const succeed: {
1048
1104
  * readonly log: (msg: string) => Effect.Effect<void>
1049
1105
  * }>()("Logger") {}
1050
1106
  *
1107
+ * const logs: Array<string> = []
1051
1108
  * const context = Context.make(Database, {
1052
1109
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
1053
1110
  * }).pipe(
1054
1111
  * Context.add(Logger, {
1055
- * log: (msg: string) => Effect.sync(() => console.log(msg))
1112
+ * log: (msg: string) => Effect.sync(() => logs.push(msg))
1056
1113
  * })
1057
1114
  * )
1058
1115
  *
1059
1116
  * const layer = Layer.succeedContext(context)
1117
+ * const program = Logger.use((logger) => logger.log("ready"))
1118
+ * Effect.runSync(Effect.provide(program, layer))
1119
+ * logs // => ["ready"]
1060
1120
  * ```
1061
1121
  *
1062
1122
  * @see {@link succeed} for providing a single service from a value
@@ -1077,14 +1137,12 @@ export const succeedContext = <A>(context: Context.Context<A>): Layer<A> =>
1077
1137
  *
1078
1138
  * **Example** (Disabling optional lifecycle work)
1079
1139
  *
1080
- * ```ts
1081
- * import { Console, Layer } from "effect"
1082
- *
1083
- * declare const flag: boolean
1140
+ * ```ts import.meta.vitest
1141
+ * import { Context, Effect, Layer, Option } from "effect"
1084
1142
  *
1085
- * const StartupLogLive = flag
1086
- * ? Layer.effectDiscard(Console.log("application starting"))
1087
- * : Layer.empty
1143
+ * const Service = Context.Service<string>("Service")
1144
+ * const context = Effect.runSync(Effect.scoped(Layer.build(Layer.empty)))
1145
+ * Context.getOption(context, Service) // => Option.none()
1088
1146
  * ```
1089
1147
  *
1090
1148
  * @see {@link effectDiscard} for running an effect while providing no services
@@ -1109,7 +1167,7 @@ export const empty: Layer<never> = succeedContext(Context.empty())
1109
1167
  *
1110
1168
  * **Example** (Lazily providing a service)
1111
1169
  *
1112
- * ```ts
1170
+ * ```ts import.meta.vitest
1113
1171
  * import { Context, Effect, Layer } from "effect"
1114
1172
  *
1115
1173
  * class Database extends Context.Service<Database, {
@@ -1119,6 +1177,8 @@ export const empty: Layer<never> = succeedContext(Context.empty())
1119
1177
  * const layer = Layer.sync(Database, () => ({
1120
1178
  * query: (sql: string) => Effect.succeed(`Query: ${sql}`)
1121
1179
  * }))
1180
+ * const program = Database.use((database) => database.query("SELECT 1"))
1181
+ * Effect.runSync(Effect.provide(program, layer)) // => "Query: SELECT 1"
1122
1182
  * ```
1123
1183
  *
1124
1184
  * @see {@link succeed} for constructing layers from static values
@@ -1142,7 +1202,7 @@ export const sync: {
1142
1202
  *
1143
1203
  * **Example** (Lazily providing a service)
1144
1204
  *
1145
- * ```ts
1205
+ * ```ts import.meta.vitest
1146
1206
  * import { Context, Effect, Layer } from "effect"
1147
1207
  *
1148
1208
  * class Database extends Context.Service<Database, {
@@ -1152,6 +1212,8 @@ export const sync: {
1152
1212
  * const layer = Layer.sync(Database, () => ({
1153
1213
  * query: (sql: string) => Effect.succeed(`Query: ${sql}`)
1154
1214
  * }))
1215
+ * const program = Database.use((database) => database.query("SELECT 1"))
1216
+ * Effect.runSync(Effect.provide(program, layer)) // => "Query: SELECT 1"
1155
1217
  * ```
1156
1218
  *
1157
1219
  * @see {@link succeed} for constructing layers from static values
@@ -1175,7 +1237,7 @@ export const sync: {
1175
1237
  *
1176
1238
  * **Example** (Lazily providing a service)
1177
1239
  *
1178
- * ```ts
1240
+ * ```ts import.meta.vitest
1179
1241
  * import { Context, Effect, Layer } from "effect"
1180
1242
  *
1181
1243
  * class Database extends Context.Service<Database, {
@@ -1185,6 +1247,8 @@ export const sync: {
1185
1247
  * const layer = Layer.sync(Database, () => ({
1186
1248
  * query: (sql: string) => Effect.succeed(`Query: ${sql}`)
1187
1249
  * }))
1250
+ * const program = Database.use((database) => database.query("SELECT 1"))
1251
+ * Effect.runSync(Effect.provide(program, layer)) // => "Query: SELECT 1"
1188
1252
  * ```
1189
1253
  *
1190
1254
  * @see {@link succeed} for constructing layers from static values
@@ -1215,7 +1279,7 @@ export const sync: {
1215
1279
  *
1216
1280
  * **Example** (Lazily providing a context)
1217
1281
  *
1218
- * ```ts
1282
+ * ```ts import.meta.vitest
1219
1283
  * import { Context, Effect, Layer } from "effect"
1220
1284
  *
1221
1285
  * class Database extends Context.Service<Database, {
@@ -1227,6 +1291,8 @@ export const sync: {
1227
1291
  * query: (sql: string) => Effect.succeed(`Query: ${sql}`)
1228
1292
  * })
1229
1293
  * )
1294
+ * const program = Database.use((database) => database.query("SELECT 1"))
1295
+ * Effect.runSync(Effect.provide(program, layer)) // => "Query: SELECT 1"
1230
1296
  * ```
1231
1297
  *
1232
1298
  * @see {@link sync} for lazily providing a single service
@@ -1254,7 +1320,7 @@ export const syncContext = <A>(evaluate: LazyArg<Context.Context<A>>): Layer<A>
1254
1320
  *
1255
1321
  * **Example** (Creating a layer from an effect)
1256
1322
  *
1257
- * ```ts
1323
+ * ```ts import.meta.vitest
1258
1324
  * import { Context, Effect, Layer } from "effect"
1259
1325
  *
1260
1326
  * class Database extends Context.Service<Database, {
@@ -1266,6 +1332,8 @@ export const syncContext = <A>(evaluate: LazyArg<Context.Context<A>>): Layer<A>
1266
1332
  * query: (sql: string) => Effect.succeed(`Query: ${sql}`)
1267
1333
  * }))
1268
1334
  * )
1335
+ * const program = Database.use((database) => database.query("SELECT 1"))
1336
+ * Effect.runSync(Effect.provide(program, layer)) // => "Query: SELECT 1"
1269
1337
  * ```
1270
1338
  *
1271
1339
  * @see {@link effectContext} for effectfully providing multiple services
@@ -1291,7 +1359,7 @@ export const effect: {
1291
1359
  *
1292
1360
  * **Example** (Creating a layer from an effect)
1293
1361
  *
1294
- * ```ts
1362
+ * ```ts import.meta.vitest
1295
1363
  * import { Context, Effect, Layer } from "effect"
1296
1364
  *
1297
1365
  * class Database extends Context.Service<Database, {
@@ -1303,6 +1371,8 @@ export const effect: {
1303
1371
  * query: (sql: string) => Effect.succeed(`Query: ${sql}`)
1304
1372
  * }))
1305
1373
  * )
1374
+ * const program = Database.use((database) => database.query("SELECT 1"))
1375
+ * Effect.runSync(Effect.provide(program, layer)) // => "Query: SELECT 1"
1306
1376
  * ```
1307
1377
  *
1308
1378
  * @see {@link effectContext} for effectfully providing multiple services
@@ -1330,7 +1400,7 @@ export const effect: {
1330
1400
  *
1331
1401
  * **Example** (Creating a layer from an effect)
1332
1402
  *
1333
- * ```ts
1403
+ * ```ts import.meta.vitest
1334
1404
  * import { Context, Effect, Layer } from "effect"
1335
1405
  *
1336
1406
  * class Database extends Context.Service<Database, {
@@ -1342,6 +1412,8 @@ export const effect: {
1342
1412
  * query: (sql: string) => Effect.succeed(`Query: ${sql}`)
1343
1413
  * }))
1344
1414
  * )
1415
+ * const program = Database.use((database) => database.query("SELECT 1"))
1416
+ * Effect.runSync(Effect.provide(program, layer)) // => "Query: SELECT 1"
1345
1417
  * ```
1346
1418
  *
1347
1419
  * @see {@link effectContext} for effectfully providing multiple services
@@ -1380,7 +1452,7 @@ const effectImpl = <I, S, E, R>(
1380
1452
  *
1381
1453
  * **Example** (Creating a layer from an effectful context)
1382
1454
  *
1383
- * ```ts
1455
+ * ```ts import.meta.vitest
1384
1456
  * import { Context, Effect, Layer } from "effect"
1385
1457
  *
1386
1458
  * class Database extends Context.Service<
@@ -1393,6 +1465,8 @@ const effectImpl = <I, S, E, R>(
1393
1465
  * query: (sql: string) => Effect.succeed(`Query: ${sql}`)
1394
1466
  * }))
1395
1467
  * )
1468
+ * const program = Database.use((database) => database.query("SELECT 1"))
1469
+ * Effect.runSync(Effect.provide(program, layer)) // => "Query: SELECT 1"
1396
1470
  * ```
1397
1471
  *
1398
1472
  * @see {@link effect} for effectfully providing a single service
@@ -1415,14 +1489,17 @@ export const effectContext = <A, E, R>(
1415
1489
  *
1416
1490
  * **Example** (Running an effect during layer construction)
1417
1491
  *
1418
- * ```ts
1492
+ * ```ts import.meta.vitest
1419
1493
  * import { Effect, Layer } from "effect"
1420
1494
  *
1495
+ * const logs: Array<string> = []
1421
1496
  * const initLayer = Layer.effectDiscard(
1422
1497
  * Effect.sync(() => {
1423
- * console.log("Initializing application...")
1498
+ * logs.push("Initializing application...")
1424
1499
  * })
1425
1500
  * )
1501
+ * Effect.runSync(Effect.scoped(Layer.build(initLayer)))
1502
+ * logs // => ["Initializing application..."]
1426
1503
  * ```
1427
1504
  *
1428
1505
  * @see {@link empty} for a no-op layer that performs no construction work
@@ -1443,8 +1520,8 @@ export const effectDiscard = <X, E, R>(effect: Effect<X, E, R>): Layer<never, E,
1443
1520
  *
1444
1521
  * **Example** (Choosing a layer lazily)
1445
1522
  *
1446
- * ```ts
1447
- * import { Context, Layer } from "effect"
1523
+ * ```ts import.meta.vitest
1524
+ * import { Context, Effect, Layer } from "effect"
1448
1525
  *
1449
1526
  * class Config extends Context.Service<Config, string>()("Config") {}
1450
1527
  *
@@ -1455,6 +1532,7 @@ export const effectDiscard = <X, E, R>(effect: Effect<X, E, R>): Layer<never, E,
1455
1532
  * ? Layer.succeed(Config, "https://api.example.com")
1456
1533
  * : Layer.succeed(Config, "http://localhost:3000")
1457
1534
  * )
1535
+ * Effect.runSync(Effect.provide(Config, layer)) // => "https://api.example.com"
1458
1536
  * ```
1459
1537
  *
1460
1538
  * @category constructors
@@ -1478,7 +1556,7 @@ export const suspend = <A, E, R>(evaluate: LazyArg<Layer<A, E, R>>): Layer<A, E,
1478
1556
  *
1479
1557
  * **Example** (Unwrapping an effectful layer)
1480
1558
  *
1481
- * ```ts
1559
+ * ```ts import.meta.vitest
1482
1560
  * import { Context, Effect, Layer } from "effect"
1483
1561
  *
1484
1562
  * class Database extends Context.Service<Database, {
@@ -1490,6 +1568,8 @@ export const suspend = <A, E, R>(evaluate: LazyArg<Layer<A, E, R>>): Layer<A, E,
1490
1568
  * )
1491
1569
  *
1492
1570
  * const unwrappedLayer = Layer.unwrap(layerEffect)
1571
+ * const program = Database.use((database) => database.query("SELECT 1"))
1572
+ * Effect.runSync(Effect.provide(program, unwrappedLayer)) // => "result"
1493
1573
  * ```
1494
1574
  *
1495
1575
  * @category converting
@@ -1537,7 +1617,7 @@ const mergeAllEffect = <Layers extends [Layer<never, any, any>, ...Array<Layer<n
1537
1617
  *
1538
1618
  * **Example** (Merging independent layers)
1539
1619
  *
1540
- * ```ts
1620
+ * ```ts import.meta.vitest
1541
1621
  * import { Context, Effect, Layer } from "effect"
1542
1622
  *
1543
1623
  * class Database extends Context.Service<Database, {
@@ -1551,11 +1631,15 @@ const mergeAllEffect = <Layers extends [Layer<never, any, any>, ...Array<Layer<n
1551
1631
  * const dbLayer = Layer.succeed(Database, {
1552
1632
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
1553
1633
  * })
1634
+ * const logs: Array<string> = []
1554
1635
  * const loggerLayer = Layer.succeed(Logger, {
1555
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
1636
+ * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(msg)))
1556
1637
  * })
1557
1638
  *
1558
1639
  * const mergedLayer = Layer.mergeAll(dbLayer, loggerLayer)
1640
+ * const program = Logger.use((logger) => logger.log("ready"))
1641
+ * Effect.runSync(Effect.provide(program, mergedLayer))
1642
+ * logs // => ["ready"]
1559
1643
  * ```
1560
1644
  *
1561
1645
  * @see {@link merge} for merging one layer with another layer or array
@@ -1588,7 +1672,7 @@ export const mergeAll = <Layers extends [Layer<never, any, any>, ...Array<Layer<
1588
1672
  *
1589
1673
  * **Example** (Merging two layers)
1590
1674
  *
1591
- * ```ts
1675
+ * ```ts import.meta.vitest
1592
1676
  * import { Context, Effect, Layer } from "effect"
1593
1677
  *
1594
1678
  * class Database extends Context.Service<Database, {
@@ -1603,10 +1687,12 @@ export const mergeAll = <Layers extends [Layer<never, any, any>, ...Array<Layer<
1603
1687
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
1604
1688
  * })
1605
1689
  * const loggerLayer = Layer.succeed(Logger, {
1606
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
1690
+ * log: Effect.fn("Logger.log")((_msg: string) => Effect.void)
1607
1691
  * })
1608
1692
  *
1609
1693
  * const mergedLayer = Layer.merge(dbLayer, loggerLayer)
1694
+ * const program = Database.use((database) => database.query("SELECT 1"))
1695
+ * Effect.runSync(Effect.provide(program, mergedLayer)) // => "result"
1610
1696
  * ```
1611
1697
  *
1612
1698
  * @see {@link mergeAll} for merging several layers at once
@@ -1632,7 +1718,7 @@ export const merge: {
1632
1718
  *
1633
1719
  * **Example** (Merging two layers)
1634
1720
  *
1635
- * ```ts
1721
+ * ```ts import.meta.vitest
1636
1722
  * import { Context, Effect, Layer } from "effect"
1637
1723
  *
1638
1724
  * class Database extends Context.Service<Database, {
@@ -1647,10 +1733,12 @@ export const merge: {
1647
1733
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
1648
1734
  * })
1649
1735
  * const loggerLayer = Layer.succeed(Logger, {
1650
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
1736
+ * log: Effect.fn("Logger.log")((_msg: string) => Effect.void)
1651
1737
  * })
1652
1738
  *
1653
1739
  * const mergedLayer = Layer.merge(dbLayer, loggerLayer)
1740
+ * const program = Database.use((database) => database.query("SELECT 1"))
1741
+ * Effect.runSync(Effect.provide(program, mergedLayer)) // => "result"
1654
1742
  * ```
1655
1743
  *
1656
1744
  * @see {@link mergeAll} for merging several layers at once
@@ -1676,7 +1764,7 @@ export const merge: {
1676
1764
  *
1677
1765
  * **Example** (Merging two layers)
1678
1766
  *
1679
- * ```ts
1767
+ * ```ts import.meta.vitest
1680
1768
  * import { Context, Effect, Layer } from "effect"
1681
1769
  *
1682
1770
  * class Database extends Context.Service<Database, {
@@ -1691,10 +1779,12 @@ export const merge: {
1691
1779
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
1692
1780
  * })
1693
1781
  * const loggerLayer = Layer.succeed(Logger, {
1694
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
1782
+ * log: Effect.fn("Logger.log")((_msg: string) => Effect.void)
1695
1783
  * })
1696
1784
  *
1697
1785
  * const mergedLayer = Layer.merge(dbLayer, loggerLayer)
1786
+ * const program = Database.use((database) => database.query("SELECT 1"))
1787
+ * Effect.runSync(Effect.provide(program, mergedLayer)) // => "result"
1698
1788
  * ```
1699
1789
  *
1700
1790
  * @see {@link mergeAll} for merging several layers at once
@@ -1727,7 +1817,7 @@ export const merge: {
1727
1817
  *
1728
1818
  * **Example** (Merging two layers)
1729
1819
  *
1730
- * ```ts
1820
+ * ```ts import.meta.vitest
1731
1821
  * import { Context, Effect, Layer } from "effect"
1732
1822
  *
1733
1823
  * class Database extends Context.Service<Database, {
@@ -1742,10 +1832,12 @@ export const merge: {
1742
1832
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
1743
1833
  * })
1744
1834
  * const loggerLayer = Layer.succeed(Logger, {
1745
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
1835
+ * log: Effect.fn("Logger.log")((_msg: string) => Effect.void)
1746
1836
  * })
1747
1837
  *
1748
1838
  * const mergedLayer = Layer.merge(dbLayer, loggerLayer)
1839
+ * const program = Database.use((database) => database.query("SELECT 1"))
1840
+ * Effect.runSync(Effect.provide(program, mergedLayer)) // => "result"
1749
1841
  * ```
1750
1842
  *
1751
1843
  * @see {@link mergeAll} for merging several layers at once
@@ -1771,7 +1863,7 @@ export const merge: {
1771
1863
  *
1772
1864
  * **Example** (Merging two layers)
1773
1865
  *
1774
- * ```ts
1866
+ * ```ts import.meta.vitest
1775
1867
  * import { Context, Effect, Layer } from "effect"
1776
1868
  *
1777
1869
  * class Database extends Context.Service<Database, {
@@ -1786,10 +1878,12 @@ export const merge: {
1786
1878
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
1787
1879
  * })
1788
1880
  * const loggerLayer = Layer.succeed(Logger, {
1789
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
1881
+ * log: Effect.fn("Logger.log")((_msg: string) => Effect.void)
1790
1882
  * })
1791
1883
  *
1792
1884
  * const mergedLayer = Layer.merge(dbLayer, loggerLayer)
1885
+ * const program = Database.use((database) => database.query("SELECT 1"))
1886
+ * Effect.runSync(Effect.provide(program, mergedLayer)) // => "result"
1793
1887
  * ```
1794
1888
  *
1795
1889
  * @see {@link mergeAll} for merging several layers at once
@@ -1844,7 +1938,7 @@ const provideWith = (
1844
1938
  *
1845
1939
  * **Example** (Providing layer dependencies)
1846
1940
  *
1847
- * ```ts
1941
+ * ```ts import.meta.vitest
1848
1942
  * import { Context, Effect, Layer } from "effect"
1849
1943
  *
1850
1944
  * class Database extends Context.Service<Database, {
@@ -1867,8 +1961,9 @@ const provideWith = (
1867
1961
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
1868
1962
  * })
1869
1963
  *
1964
+ * const logs: Array<string> = []
1870
1965
  * const loggerLayer = Layer.succeed(Logger, {
1871
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
1966
+ * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(`[LOG] ${msg}`)))
1872
1967
  * })
1873
1968
  *
1874
1969
  * // UserService depends on Database and Logger
@@ -1899,6 +1994,8 @@ const provideWith = (
1899
1994
  * }).pipe(
1900
1995
  * Effect.provide(userServiceWithDependencies)
1901
1996
  * )
1997
+ * Effect.runSync(program) // => { id: "123", name: "DB: SELECT * FROM users WHERE id = 123" }
1998
+ * logs // => ["[LOG] Looking up user 123"]
1902
1999
  * ```
1903
2000
  *
1904
2001
  * @see {@link provideMerge} for retaining the dependency services
@@ -1922,7 +2019,7 @@ export const provide: {
1922
2019
  *
1923
2020
  * **Example** (Providing layer dependencies)
1924
2021
  *
1925
- * ```ts
2022
+ * ```ts import.meta.vitest
1926
2023
  * import { Context, Effect, Layer } from "effect"
1927
2024
  *
1928
2025
  * class Database extends Context.Service<Database, {
@@ -1945,8 +2042,9 @@ export const provide: {
1945
2042
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
1946
2043
  * })
1947
2044
  *
2045
+ * const logs: Array<string> = []
1948
2046
  * const loggerLayer = Layer.succeed(Logger, {
1949
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
2047
+ * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(`[LOG] ${msg}`)))
1950
2048
  * })
1951
2049
  *
1952
2050
  * // UserService depends on Database and Logger
@@ -1977,6 +2075,8 @@ export const provide: {
1977
2075
  * }).pipe(
1978
2076
  * Effect.provide(userServiceWithDependencies)
1979
2077
  * )
2078
+ * Effect.runSync(program) // => { id: "123", name: "DB: SELECT * FROM users WHERE id = 123" }
2079
+ * logs // => ["[LOG] Looking up user 123"]
1980
2080
  * ```
1981
2081
  *
1982
2082
  * @see {@link provideMerge} for retaining the dependency services
@@ -2000,7 +2100,7 @@ export const provide: {
2000
2100
  *
2001
2101
  * **Example** (Providing layer dependencies)
2002
2102
  *
2003
- * ```ts
2103
+ * ```ts import.meta.vitest
2004
2104
  * import { Context, Effect, Layer } from "effect"
2005
2105
  *
2006
2106
  * class Database extends Context.Service<Database, {
@@ -2023,8 +2123,9 @@ export const provide: {
2023
2123
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
2024
2124
  * })
2025
2125
  *
2126
+ * const logs: Array<string> = []
2026
2127
  * const loggerLayer = Layer.succeed(Logger, {
2027
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
2128
+ * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(`[LOG] ${msg}`)))
2028
2129
  * })
2029
2130
  *
2030
2131
  * // UserService depends on Database and Logger
@@ -2055,6 +2156,8 @@ export const provide: {
2055
2156
  * }).pipe(
2056
2157
  * Effect.provide(userServiceWithDependencies)
2057
2158
  * )
2159
+ * Effect.runSync(program) // => { id: "123", name: "DB: SELECT * FROM users WHERE id = 123" }
2160
+ * logs // => ["[LOG] Looking up user 123"]
2058
2161
  * ```
2059
2162
  *
2060
2163
  * @see {@link provideMerge} for retaining the dependency services
@@ -2085,7 +2188,7 @@ export const provide: {
2085
2188
  *
2086
2189
  * **Example** (Providing layer dependencies)
2087
2190
  *
2088
- * ```ts
2191
+ * ```ts import.meta.vitest
2089
2192
  * import { Context, Effect, Layer } from "effect"
2090
2193
  *
2091
2194
  * class Database extends Context.Service<Database, {
@@ -2108,8 +2211,9 @@ export const provide: {
2108
2211
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
2109
2212
  * })
2110
2213
  *
2214
+ * const logs: Array<string> = []
2111
2215
  * const loggerLayer = Layer.succeed(Logger, {
2112
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
2216
+ * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(`[LOG] ${msg}`)))
2113
2217
  * })
2114
2218
  *
2115
2219
  * // UserService depends on Database and Logger
@@ -2140,6 +2244,8 @@ export const provide: {
2140
2244
  * }).pipe(
2141
2245
  * Effect.provide(userServiceWithDependencies)
2142
2246
  * )
2247
+ * Effect.runSync(program) // => { id: "123", name: "DB: SELECT * FROM users WHERE id = 123" }
2248
+ * logs // => ["[LOG] Looking up user 123"]
2143
2249
  * ```
2144
2250
  *
2145
2251
  * @see {@link provideMerge} for retaining the dependency services
@@ -2163,7 +2269,7 @@ export const provide: {
2163
2269
  *
2164
2270
  * **Example** (Providing layer dependencies)
2165
2271
  *
2166
- * ```ts
2272
+ * ```ts import.meta.vitest
2167
2273
  * import { Context, Effect, Layer } from "effect"
2168
2274
  *
2169
2275
  * class Database extends Context.Service<Database, {
@@ -2186,8 +2292,9 @@ export const provide: {
2186
2292
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
2187
2293
  * })
2188
2294
  *
2295
+ * const logs: Array<string> = []
2189
2296
  * const loggerLayer = Layer.succeed(Logger, {
2190
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
2297
+ * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(`[LOG] ${msg}`)))
2191
2298
  * })
2192
2299
  *
2193
2300
  * // UserService depends on Database and Logger
@@ -2218,6 +2325,8 @@ export const provide: {
2218
2325
  * }).pipe(
2219
2326
  * Effect.provide(userServiceWithDependencies)
2220
2327
  * )
2328
+ * Effect.runSync(program) // => { id: "123", name: "DB: SELECT * FROM users WHERE id = 123" }
2329
+ * logs // => ["[LOG] Looking up user 123"]
2221
2330
  * ```
2222
2331
  *
2223
2332
  * @see {@link provideMerge} for retaining the dependency services
@@ -2251,7 +2360,7 @@ export const provide: {
2251
2360
  *
2252
2361
  * **Example** (Providing dependencies while retaining services)
2253
2362
  *
2254
- * ```ts
2363
+ * ```ts import.meta.vitest
2255
2364
  * import { Context, Effect, Layer } from "effect"
2256
2365
  *
2257
2366
  * class Database extends Context.Service<Database, {
@@ -2274,8 +2383,9 @@ export const provide: {
2274
2383
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
2275
2384
  * })
2276
2385
  *
2386
+ * const logs: Array<string> = []
2277
2387
  * const loggerLayer = Layer.succeed(Logger, {
2278
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
2388
+ * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(`[LOG] ${msg}`)))
2279
2389
  * })
2280
2390
  *
2281
2391
  * // UserService depends on Database and Logger
@@ -2312,6 +2422,8 @@ export const provide: {
2312
2422
  * }).pipe(
2313
2423
  * Effect.provide(allServicesLayer)
2314
2424
  * )
2425
+ * Effect.runSync(program) // => { id: "123", name: "DB: SELECT * FROM users WHERE id = 123" }
2426
+ * logs // => ["[LOG] Looking up user 123", "[LOG] Found user: DB: SELECT * FROM users WHERE id = 123"]
2315
2427
  * ```
2316
2428
  *
2317
2429
  * @see {@link provide} for keeping dependency services private
@@ -2335,7 +2447,7 @@ export const provideMerge: {
2335
2447
  *
2336
2448
  * **Example** (Providing dependencies while retaining services)
2337
2449
  *
2338
- * ```ts
2450
+ * ```ts import.meta.vitest
2339
2451
  * import { Context, Effect, Layer } from "effect"
2340
2452
  *
2341
2453
  * class Database extends Context.Service<Database, {
@@ -2358,8 +2470,9 @@ export const provideMerge: {
2358
2470
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
2359
2471
  * })
2360
2472
  *
2473
+ * const logs: Array<string> = []
2361
2474
  * const loggerLayer = Layer.succeed(Logger, {
2362
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
2475
+ * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(`[LOG] ${msg}`)))
2363
2476
  * })
2364
2477
  *
2365
2478
  * // UserService depends on Database and Logger
@@ -2396,6 +2509,8 @@ export const provideMerge: {
2396
2509
  * }).pipe(
2397
2510
  * Effect.provide(allServicesLayer)
2398
2511
  * )
2512
+ * Effect.runSync(program) // => { id: "123", name: "DB: SELECT * FROM users WHERE id = 123" }
2513
+ * logs // => ["[LOG] Looking up user 123", "[LOG] Found user: DB: SELECT * FROM users WHERE id = 123"]
2399
2514
  * ```
2400
2515
  *
2401
2516
  * @see {@link provide} for keeping dependency services private
@@ -2419,7 +2534,7 @@ export const provideMerge: {
2419
2534
  *
2420
2535
  * **Example** (Providing dependencies while retaining services)
2421
2536
  *
2422
- * ```ts
2537
+ * ```ts import.meta.vitest
2423
2538
  * import { Context, Effect, Layer } from "effect"
2424
2539
  *
2425
2540
  * class Database extends Context.Service<Database, {
@@ -2442,8 +2557,9 @@ export const provideMerge: {
2442
2557
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
2443
2558
  * })
2444
2559
  *
2560
+ * const logs: Array<string> = []
2445
2561
  * const loggerLayer = Layer.succeed(Logger, {
2446
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
2562
+ * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(`[LOG] ${msg}`)))
2447
2563
  * })
2448
2564
  *
2449
2565
  * // UserService depends on Database and Logger
@@ -2480,6 +2596,8 @@ export const provideMerge: {
2480
2596
  * }).pipe(
2481
2597
  * Effect.provide(allServicesLayer)
2482
2598
  * )
2599
+ * Effect.runSync(program) // => { id: "123", name: "DB: SELECT * FROM users WHERE id = 123" }
2600
+ * logs // => ["[LOG] Looking up user 123", "[LOG] Found user: DB: SELECT * FROM users WHERE id = 123"]
2483
2601
  * ```
2484
2602
  *
2485
2603
  * @see {@link provide} for keeping dependency services private
@@ -2510,7 +2628,7 @@ export const provideMerge: {
2510
2628
  *
2511
2629
  * **Example** (Providing dependencies while retaining services)
2512
2630
  *
2513
- * ```ts
2631
+ * ```ts import.meta.vitest
2514
2632
  * import { Context, Effect, Layer } from "effect"
2515
2633
  *
2516
2634
  * class Database extends Context.Service<Database, {
@@ -2533,8 +2651,9 @@ export const provideMerge: {
2533
2651
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
2534
2652
  * })
2535
2653
  *
2654
+ * const logs: Array<string> = []
2536
2655
  * const loggerLayer = Layer.succeed(Logger, {
2537
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
2656
+ * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(`[LOG] ${msg}`)))
2538
2657
  * })
2539
2658
  *
2540
2659
  * // UserService depends on Database and Logger
@@ -2571,6 +2690,8 @@ export const provideMerge: {
2571
2690
  * }).pipe(
2572
2691
  * Effect.provide(allServicesLayer)
2573
2692
  * )
2693
+ * Effect.runSync(program) // => { id: "123", name: "DB: SELECT * FROM users WHERE id = 123" }
2694
+ * logs // => ["[LOG] Looking up user 123", "[LOG] Found user: DB: SELECT * FROM users WHERE id = 123"]
2574
2695
  * ```
2575
2696
  *
2576
2697
  * @see {@link provide} for keeping dependency services private
@@ -2594,7 +2715,7 @@ export const provideMerge: {
2594
2715
  *
2595
2716
  * **Example** (Providing dependencies while retaining services)
2596
2717
  *
2597
- * ```ts
2718
+ * ```ts import.meta.vitest
2598
2719
  * import { Context, Effect, Layer } from "effect"
2599
2720
  *
2600
2721
  * class Database extends Context.Service<Database, {
@@ -2617,8 +2738,9 @@ export const provideMerge: {
2617
2738
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
2618
2739
  * })
2619
2740
  *
2741
+ * const logs: Array<string> = []
2620
2742
  * const loggerLayer = Layer.succeed(Logger, {
2621
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
2743
+ * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(`[LOG] ${msg}`)))
2622
2744
  * })
2623
2745
  *
2624
2746
  * // UserService depends on Database and Logger
@@ -2655,6 +2777,8 @@ export const provideMerge: {
2655
2777
  * }).pipe(
2656
2778
  * Effect.provide(allServicesLayer)
2657
2779
  * )
2780
+ * Effect.runSync(program) // => { id: "123", name: "DB: SELECT * FROM users WHERE id = 123" }
2781
+ * logs // => ["[LOG] Looking up user 123", "[LOG] Found user: DB: SELECT * FROM users WHERE id = 123"]
2658
2782
  * ```
2659
2783
  *
2660
2784
  * @see {@link provide} for keeping dependency services private
@@ -2683,7 +2807,7 @@ export const provideMerge: {
2683
2807
  *
2684
2808
  * **Example** (Creating services from layer output)
2685
2809
  *
2686
- * ```ts
2810
+ * ```ts import.meta.vitest
2687
2811
  * import { Context, Effect, Layer } from "effect"
2688
2812
  *
2689
2813
  * class Config extends Context.Service<Config, {
@@ -2699,6 +2823,8 @@ export const provideMerge: {
2699
2823
  * readonly log: (msg: string) => Effect.Effect<void>
2700
2824
  * }>()("Logger") {}
2701
2825
  *
2826
+ * const logs: Array<string> = []
2827
+ *
2702
2828
  * // Base config layer
2703
2829
  * const configLayer = Layer.succeed(Config, {
2704
2830
  * dbUrl: "postgres://localhost:5432/mydb",
@@ -2722,8 +2848,8 @@ export const provideMerge: {
2722
2848
  * const loggerLayer = Layer.succeed(Logger, {
2723
2849
  * log: Effect.fn("Logger.log")((msg: string) =>
2724
2850
  * config.logLevel === "debug"
2725
- * ? Effect.sync(() => console.log(`[DEBUG] ${msg}`))
2726
- * : Effect.sync(() => console.log(msg))
2851
+ * ? Effect.sync(() => logs.push(`[DEBUG] ${msg}`))
2852
+ * : Effect.sync(() => logs.push(msg))
2727
2853
  * )
2728
2854
  * })
2729
2855
  *
@@ -2744,6 +2870,8 @@ export const provideMerge: {
2744
2870
  * }).pipe(
2745
2871
  * Effect.provide(dynamicServiceLayer)
2746
2872
  * )
2873
+ * Effect.runSync(program) // => "Querying postgres://localhost:5432/mydb: SELECT * FROM users"
2874
+ * logs // => ["[DEBUG] Starting database query"]
2747
2875
  * ```
2748
2876
  *
2749
2877
  * @category sequencing
@@ -2755,7 +2883,7 @@ export const flatMap: {
2755
2883
  *
2756
2884
  * **Example** (Creating services from layer output)
2757
2885
  *
2758
- * ```ts
2886
+ * ```ts import.meta.vitest
2759
2887
  * import { Context, Effect, Layer } from "effect"
2760
2888
  *
2761
2889
  * class Config extends Context.Service<Config, {
@@ -2771,6 +2899,8 @@ export const flatMap: {
2771
2899
  * readonly log: (msg: string) => Effect.Effect<void>
2772
2900
  * }>()("Logger") {}
2773
2901
  *
2902
+ * const logs: Array<string> = []
2903
+ *
2774
2904
  * // Base config layer
2775
2905
  * const configLayer = Layer.succeed(Config, {
2776
2906
  * dbUrl: "postgres://localhost:5432/mydb",
@@ -2794,8 +2924,8 @@ export const flatMap: {
2794
2924
  * const loggerLayer = Layer.succeed(Logger, {
2795
2925
  * log: Effect.fn("Logger.log")((msg: string) =>
2796
2926
  * config.logLevel === "debug"
2797
- * ? Effect.sync(() => console.log(`[DEBUG] ${msg}`))
2798
- * : Effect.sync(() => console.log(msg))
2927
+ * ? Effect.sync(() => logs.push(`[DEBUG] ${msg}`))
2928
+ * : Effect.sync(() => logs.push(msg))
2799
2929
  * )
2800
2930
  * })
2801
2931
  *
@@ -2816,6 +2946,8 @@ export const flatMap: {
2816
2946
  * }).pipe(
2817
2947
  * Effect.provide(dynamicServiceLayer)
2818
2948
  * )
2949
+ * Effect.runSync(program) // => "Querying postgres://localhost:5432/mydb: SELECT * FROM users"
2950
+ * logs // => ["[DEBUG] Starting database query"]
2819
2951
  * ```
2820
2952
  *
2821
2953
  * @category sequencing
@@ -2827,7 +2959,7 @@ export const flatMap: {
2827
2959
  *
2828
2960
  * **Example** (Creating services from layer output)
2829
2961
  *
2830
- * ```ts
2962
+ * ```ts import.meta.vitest
2831
2963
  * import { Context, Effect, Layer } from "effect"
2832
2964
  *
2833
2965
  * class Config extends Context.Service<Config, {
@@ -2843,6 +2975,8 @@ export const flatMap: {
2843
2975
  * readonly log: (msg: string) => Effect.Effect<void>
2844
2976
  * }>()("Logger") {}
2845
2977
  *
2978
+ * const logs: Array<string> = []
2979
+ *
2846
2980
  * // Base config layer
2847
2981
  * const configLayer = Layer.succeed(Config, {
2848
2982
  * dbUrl: "postgres://localhost:5432/mydb",
@@ -2866,8 +3000,8 @@ export const flatMap: {
2866
3000
  * const loggerLayer = Layer.succeed(Logger, {
2867
3001
  * log: Effect.fn("Logger.log")((msg: string) =>
2868
3002
  * config.logLevel === "debug"
2869
- * ? Effect.sync(() => console.log(`[DEBUG] ${msg}`))
2870
- * : Effect.sync(() => console.log(msg))
3003
+ * ? Effect.sync(() => logs.push(`[DEBUG] ${msg}`))
3004
+ * : Effect.sync(() => logs.push(msg))
2871
3005
  * )
2872
3006
  * })
2873
3007
  *
@@ -2888,6 +3022,8 @@ export const flatMap: {
2888
3022
  * }).pipe(
2889
3023
  * Effect.provide(dynamicServiceLayer)
2890
3024
  * )
3025
+ * Effect.runSync(program) // => "Querying postgres://localhost:5432/mydb: SELECT * FROM users"
3026
+ * logs // => ["[DEBUG] Starting database query"]
2891
3027
  * ```
2892
3028
  *
2893
3029
  * @category sequencing
@@ -3151,8 +3287,8 @@ export const tapCause: {
3151
3287
  *
3152
3288
  * **Example** (Converting layer failures to defects)
3153
3289
  *
3154
- * ```ts
3155
- * import { Context, Data, Effect, Layer } from "effect"
3290
+ * ```ts import.meta.vitest
3291
+ * import { Context, Data, Effect, Exit, Layer } from "effect"
3156
3292
  *
3157
3293
  * class DatabaseError extends Data.TaggedError("DatabaseError")<{
3158
3294
  * message: string
@@ -3163,10 +3299,11 @@ export const tapCause: {
3163
3299
  * }>()("Database") {}
3164
3300
  *
3165
3301
  * // Layer that can fail during construction
3166
- * const flakyDatabaseLayer = Layer.effect(Database, Effect.gen(function*() {
3167
- * console.log("connecting")
3168
- * return yield* new DatabaseError({ message: "Connection failed" })
3169
- * }))
3302
+ * const error = new DatabaseError({ message: "Connection failed" })
3303
+ * const flakyDatabaseLayer = Layer.effect(
3304
+ * Database,
3305
+ * Effect.fail(error)
3306
+ * )
3170
3307
  *
3171
3308
  * // Convert failures to fiber death - removes error from type
3172
3309
  * const reliableDatabaseLayer = flakyDatabaseLayer.pipe(Layer.orDie)
@@ -3179,8 +3316,7 @@ export const tapCause: {
3179
3316
  * Effect.provide(reliableDatabaseLayer)
3180
3317
  * )
3181
3318
  *
3182
- * // Running the program prints "connecting", then the DatabaseError is
3183
- * // converted into a fiber defect instead of remaining a typed error.
3319
+ * Effect.runSync(Effect.exit(program)) // => Exit.die(error)
3184
3320
  * ```
3185
3321
  *
3186
3322
  * @category error handling
@@ -3235,7 +3371,7 @@ export {
3235
3371
  *
3236
3372
  * **Example** (Recovering from tagged layer errors)
3237
3373
  *
3238
- * ```ts
3374
+ * ```ts import.meta.vitest
3239
3375
  * import { Context, Data, Effect, Layer } from "effect"
3240
3376
  *
3241
3377
  * class ConfigError extends Data.TaggedError("ConfigError") {}
@@ -3251,6 +3387,8 @@ export {
3251
3387
  * const recovered = configLayer.pipe(
3252
3388
  * Layer.catchTag("ConfigError", () => fallbackLayer)
3253
3389
  * )
3390
+ * const program = Config.useSync((config) => config.apiUrl)
3391
+ * Effect.runSync(Effect.provide(program, recovered)) // => "http://localhost"
3254
3392
  * ```
3255
3393
  *
3256
3394
  * @see {@link catchCause} for recovering with access to the full cause
@@ -3268,7 +3406,7 @@ export const catchTag: {
3268
3406
  *
3269
3407
  * **Example** (Recovering from tagged layer errors)
3270
3408
  *
3271
- * ```ts
3409
+ * ```ts import.meta.vitest
3272
3410
  * import { Context, Data, Effect, Layer } from "effect"
3273
3411
  *
3274
3412
  * class ConfigError extends Data.TaggedError("ConfigError") {}
@@ -3284,6 +3422,8 @@ export const catchTag: {
3284
3422
  * const recovered = configLayer.pipe(
3285
3423
  * Layer.catchTag("ConfigError", () => fallbackLayer)
3286
3424
  * )
3425
+ * const program = Config.useSync((config) => config.apiUrl)
3426
+ * Effect.runSync(Effect.provide(program, recovered)) // => "http://localhost"
3287
3427
  * ```
3288
3428
  *
3289
3429
  * @see {@link catchCause} for recovering with access to the full cause
@@ -3312,7 +3452,7 @@ export const catchTag: {
3312
3452
  *
3313
3453
  * **Example** (Recovering from tagged layer errors)
3314
3454
  *
3315
- * ```ts
3455
+ * ```ts import.meta.vitest
3316
3456
  * import { Context, Data, Effect, Layer } from "effect"
3317
3457
  *
3318
3458
  * class ConfigError extends Data.TaggedError("ConfigError") {}
@@ -3328,6 +3468,8 @@ export const catchTag: {
3328
3468
  * const recovered = configLayer.pipe(
3329
3469
  * Layer.catchTag("ConfigError", () => fallbackLayer)
3330
3470
  * )
3471
+ * const program = Config.useSync((config) => config.apiUrl)
3472
+ * Effect.runSync(Effect.provide(program, recovered)) // => "http://localhost"
3331
3473
  * ```
3332
3474
  *
3333
3475
  * @see {@link catchCause} for recovering with access to the full cause
@@ -3390,7 +3532,7 @@ export const catchTag: {
3390
3532
  *
3391
3533
  * **Example** (Recovering from layer failures by cause)
3392
3534
  *
3393
- * ```ts
3535
+ * ```ts import.meta.vitest
3394
3536
  * import { Context, Data, Effect, Layer } from "effect"
3395
3537
  *
3396
3538
  * class DatabaseError extends Data.TaggedError("DatabaseError")<{
@@ -3415,14 +3557,12 @@ export const catchTag: {
3415
3557
  *
3416
3558
  * const program = Effect.gen(function*() {
3417
3559
  * const database = yield* Database
3418
- * const result = yield* database.query("SELECT * FROM users")
3419
- * console.log(result)
3560
+ * return yield* database.query("SELECT * FROM users")
3420
3561
  * }).pipe(
3421
3562
  * Effect.provide(databaseWithFallback)
3422
3563
  * )
3423
3564
  *
3424
- * Effect.runPromise(program)
3425
- * // Memory: SELECT * FROM users
3565
+ * await Effect.runPromise(program) // => "Memory: SELECT * FROM users"
3426
3566
  * ```
3427
3567
  *
3428
3568
  * @see {@link catchTag} for recovering from specific tagged errors
@@ -3448,7 +3588,7 @@ export const catchCause: {
3448
3588
  *
3449
3589
  * **Example** (Recovering from layer failures by cause)
3450
3590
  *
3451
- * ```ts
3591
+ * ```ts import.meta.vitest
3452
3592
  * import { Context, Data, Effect, Layer } from "effect"
3453
3593
  *
3454
3594
  * class DatabaseError extends Data.TaggedError("DatabaseError")<{
@@ -3473,14 +3613,12 @@ export const catchCause: {
3473
3613
  *
3474
3614
  * const program = Effect.gen(function*() {
3475
3615
  * const database = yield* Database
3476
- * const result = yield* database.query("SELECT * FROM users")
3477
- * console.log(result)
3616
+ * return yield* database.query("SELECT * FROM users")
3478
3617
  * }).pipe(
3479
3618
  * Effect.provide(databaseWithFallback)
3480
3619
  * )
3481
3620
  *
3482
- * Effect.runPromise(program)
3483
- * // Memory: SELECT * FROM users
3621
+ * await Effect.runPromise(program) // => "Memory: SELECT * FROM users"
3484
3622
  * ```
3485
3623
  *
3486
3624
  * @see {@link catchTag} for recovering from specific tagged errors
@@ -3506,7 +3644,7 @@ export const catchCause: {
3506
3644
  *
3507
3645
  * **Example** (Recovering from layer failures by cause)
3508
3646
  *
3509
- * ```ts
3647
+ * ```ts import.meta.vitest
3510
3648
  * import { Context, Data, Effect, Layer } from "effect"
3511
3649
  *
3512
3650
  * class DatabaseError extends Data.TaggedError("DatabaseError")<{
@@ -3531,14 +3669,12 @@ export const catchCause: {
3531
3669
  *
3532
3670
  * const program = Effect.gen(function*() {
3533
3671
  * const database = yield* Database
3534
- * const result = yield* database.query("SELECT * FROM users")
3535
- * console.log(result)
3672
+ * return yield* database.query("SELECT * FROM users")
3536
3673
  * }).pipe(
3537
3674
  * Effect.provide(databaseWithFallback)
3538
3675
  * )
3539
3676
  *
3540
- * Effect.runPromise(program)
3541
- * // Memory: SELECT * FROM users
3677
+ * await Effect.runPromise(program) // => "Memory: SELECT * FROM users"
3542
3678
  * ```
3543
3679
  *
3544
3680
  * @see {@link catchTag} for recovering from specific tagged errors
@@ -3646,7 +3782,7 @@ export const updateService: {
3646
3782
  *
3647
3783
  * **Example** (Creating non-shared layer instances)
3648
3784
  *
3649
- * ```ts
3785
+ * ```ts import.meta.vitest
3650
3786
  * import { Context, Effect, Layer, Ref } from "effect"
3651
3787
  *
3652
3788
  * class Counter extends Context.Service<Counter, {
@@ -3671,10 +3807,10 @@ export const updateService: {
3671
3807
  * return { counterId: counter.id }
3672
3808
  * }))
3673
3809
  *
3674
- * const showIds = Effect.gen(function*() {
3810
+ * const compareIds = Effect.gen(function*() {
3675
3811
  * const left = yield* Left
3676
3812
  * const right = yield* Right
3677
- * console.log(`same Counter: ${left.counterId === right.counterId}`)
3813
+ * return left.counterId === right.counterId
3678
3814
  * })
3679
3815
  *
3680
3816
  * const program = Effect.gen(function*() {
@@ -3682,7 +3818,6 @@ export const updateService: {
3682
3818
  *
3683
3819
  * const counterLayer = Layer.effect(Counter, Effect.gen(function*() {
3684
3820
  * const id = yield* Ref.updateAndGet(nextId, (n) => n + 1)
3685
- * console.log("constructed Counter")
3686
3821
  * return { id }
3687
3822
  * }))
3688
3823
  *
@@ -3691,7 +3826,7 @@ export const updateService: {
3691
3826
  * Layer.provide(rightLayer, counterLayer)
3692
3827
  * )
3693
3828
  *
3694
- * yield* Effect.provide(showIds, shared)
3829
+ * const sharedResult = yield* Effect.provide(compareIds, shared)
3695
3830
  *
3696
3831
  * const freshCounterLayer = Layer.fresh(counterLayer)
3697
3832
  * const fresh = Layer.merge(
@@ -3699,15 +3834,12 @@ export const updateService: {
3699
3834
  * Layer.provide(rightLayer, freshCounterLayer)
3700
3835
  * )
3701
3836
  *
3702
- * yield* Effect.provide(showIds, fresh)
3837
+ * const freshResult = yield* Effect.provide(compareIds, fresh)
3838
+ *
3839
+ * return { shared: sharedResult, fresh: freshResult }
3703
3840
  * })
3704
3841
  *
3705
- * Effect.runPromise(program)
3706
- * // constructed Counter
3707
- * // same Counter: true
3708
- * // constructed Counter
3709
- * // constructed Counter
3710
- * // same Counter: false
3842
+ * await Effect.runPromise(program) // => { shared: true, fresh: false }
3711
3843
  * ```
3712
3844
  *
3713
3845
  * @category layers
@@ -3731,50 +3863,30 @@ export const fresh = <A, E, R>(self: Layer<A, E, R>): Layer<A, E, R> =>
3731
3863
  *
3732
3864
  * **Example** (Launching an application layer)
3733
3865
  *
3734
- * ```ts
3735
- * import { Console, Context, Effect, Layer } from "effect"
3866
+ * ```ts import.meta.vitest
3867
+ * import { Context, Deferred, Effect, Fiber, Layer, Ref } from "effect"
3736
3868
  *
3737
3869
  * class HttpServer extends Context.Service<HttpServer, {
3738
- * readonly start: () => Effect.Effect<string>
3739
- * readonly stop: () => Effect.Effect<string>
3870
+ * readonly port: number
3740
3871
  * }>()("HttpServer") {}
3741
3872
  *
3742
- * class Logger extends Context.Service<Logger, {
3743
- * readonly log: (msg: string) => Effect.Effect<void>
3744
- * }>()("Logger") {}
3745
- *
3746
- * // Server layer that starts an HTTP server
3747
- * const serverLayer = Layer.effect(HttpServer, Effect.gen(function*() {
3748
- * yield* Console.log("Starting HTTP server...")
3873
+ * const program = Effect.gen(function*() {
3874
+ * const events = yield* Ref.make<Array<string>>([])
3875
+ * const started = yield* Deferred.make<void>()
3749
3876
  *
3750
- * return {
3751
- * start: Effect.fn("HttpServer.start")(function*() {
3752
- * yield* Console.log("Server listening on port 3000")
3753
- * return "Server started"
3754
- * }),
3755
- * stop: Effect.fn("HttpServer.stop")(function*() {
3756
- * yield* Console.log("Server stopped gracefully")
3757
- * return "Server stopped"
3758
- * })
3759
- * }
3760
- * }))
3877
+ * const serverLayer = Layer.effect(HttpServer, Effect.gen(function*() {
3878
+ * yield* Ref.update(events, (events) => [...events, "Starting HTTP server..."])
3879
+ * yield* Deferred.succeed(started, undefined)
3880
+ * return { port: 3000 }
3881
+ * }))
3761
3882
  *
3762
- * const loggerLayer = Layer.succeed(Logger, {
3763
- * log: Effect.fn("Logger.log")((msg: string) => Console.log(`[LOG] ${msg}`))
3883
+ * const fiber = yield* Effect.forkChild(Layer.launch(serverLayer))
3884
+ * yield* Deferred.await(started)
3885
+ * yield* Fiber.interrupt(fiber)
3886
+ * return yield* Ref.get(events)
3764
3887
  * })
3765
3888
  *
3766
- * // Application layer combining all services
3767
- * const appLayer = Layer.mergeAll(serverLayer, loggerLayer)
3768
- *
3769
- * // Launch the application - runs until interrupted
3770
- * const application = appLayer.pipe(
3771
- * Layer.launch,
3772
- * Effect.tapError((error) => Console.log(`Application failed: ${error}`)),
3773
- * Effect.tap(() => Console.log("Application completed"))
3774
- * )
3775
- *
3776
- * // This will run forever until externally interrupted
3777
- * // Effect.runFork(application)
3889
+ * await Effect.runPromise(program) // => ["Starting HTTP server..."]
3778
3890
  * ```
3779
3891
  *
3780
3892
  * @category converting
@@ -3835,7 +3947,7 @@ type AnyEffectOrStream =
3835
3947
  *
3836
3948
  * **Example** (Mocking services for tests)
3837
3949
  *
3838
- * ```ts
3950
+ * ```ts import.meta.vitest
3839
3951
  * import { Context, Effect, Layer } from "effect"
3840
3952
  *
3841
3953
  * class UserService extends Context.Service<UserService, {
@@ -3863,13 +3975,15 @@ type AnyEffectOrStream =
3863
3975
  *
3864
3976
  * // This works - we provided an implementation
3865
3977
  * const user = yield* userService.getUser("123")
3866
- * console.log(user.name) // "Test User"
3867
3978
  *
3868
3979
  * // This would throw - we didn't implement deleteUser
3869
3980
  * // yield* userService.deleteUser("123") // UnimplementedError
3981
+ *
3982
+ * return user.name
3870
3983
  * }).pipe(
3871
3984
  * Effect.provide(testUserLayer)
3872
3985
  * )
3986
+ * Effect.runSync(testProgram) // => "Test User"
3873
3987
  * ```
3874
3988
  *
3875
3989
  * @category testing
@@ -3891,7 +4005,7 @@ export const mock: {
3891
4005
  *
3892
4006
  * **Example** (Mocking services for tests)
3893
4007
  *
3894
- * ```ts
4008
+ * ```ts import.meta.vitest
3895
4009
  * import { Context, Effect, Layer } from "effect"
3896
4010
  *
3897
4011
  * class UserService extends Context.Service<UserService, {
@@ -3919,13 +4033,15 @@ export const mock: {
3919
4033
  *
3920
4034
  * // This works - we provided an implementation
3921
4035
  * const user = yield* userService.getUser("123")
3922
- * console.log(user.name) // "Test User"
3923
4036
  *
3924
4037
  * // This would throw - we didn't implement deleteUser
3925
4038
  * // yield* userService.deleteUser("123") // UnimplementedError
4039
+ *
4040
+ * return user.name
3926
4041
  * }).pipe(
3927
4042
  * Effect.provide(testUserLayer)
3928
4043
  * )
4044
+ * Effect.runSync(testProgram) // => "Test User"
3929
4045
  * ```
3930
4046
  *
3931
4047
  * @category testing
@@ -3947,7 +4063,7 @@ export const mock: {
3947
4063
  *
3948
4064
  * **Example** (Mocking services for tests)
3949
4065
  *
3950
- * ```ts
4066
+ * ```ts import.meta.vitest
3951
4067
  * import { Context, Effect, Layer } from "effect"
3952
4068
  *
3953
4069
  * class UserService extends Context.Service<UserService, {
@@ -3975,13 +4091,15 @@ export const mock: {
3975
4091
  *
3976
4092
  * // This works - we provided an implementation
3977
4093
  * const user = yield* userService.getUser("123")
3978
- * console.log(user.name) // "Test User"
3979
4094
  *
3980
4095
  * // This would throw - we didn't implement deleteUser
3981
4096
  * // yield* userService.deleteUser("123") // UnimplementedError
4097
+ *
4098
+ * return user.name
3982
4099
  * }).pipe(
3983
4100
  * Effect.provide(testUserLayer)
3984
4101
  * )
4102
+ * Effect.runSync(testProgram) // => "Test User"
3985
4103
  * ```
3986
4104
  *
3987
4105
  * @category testing
@@ -4055,22 +4173,17 @@ const ChannelTypeId: Channel.TypeId = "~effect/Channel"
4055
4173
  *
4056
4174
  * **Example** (Constraining layer success types)
4057
4175
  *
4058
- * ```ts
4059
- * import { Layer } from "effect"
4176
+ * ```ts import.meta.vitest
4177
+ * import { Context, Layer } from "effect"
4060
4178
  *
4061
- * declare const FortyTwoLayer: Layer.Layer<42, never, never>
4062
- * declare const StringLayer: Layer.Layer<string, never, never>
4179
+ * const NumberService = Context.Service<number>("Number")
4180
+ * const numberLayer = Layer.succeed(NumberService, 42)
4063
4181
  *
4064
4182
  * // Define a constraint that the success type must be a number
4065
4183
  * const satisfiesNumber = Layer.satisfiesSuccessType<number>()
4066
4184
  *
4067
4185
  * // This works - Layer<42, never, never> extends Layer<number, never, never>
4068
- * const validLayer = satisfiesNumber(FortyTwoLayer)
4069
- *
4070
- * // This would cause a TypeScript compilation error:
4071
- * // const invalidLayer = satisfiesNumber(StringLayer)
4072
- * // ^^^^^^^^^^^
4073
- * // Type 'string' is not assignable to type 'number'
4186
+ * const validLayer = satisfiesNumber(numberLayer)
4074
4187
  * ```
4075
4188
  *
4076
4189
  * @category utility types
@@ -4089,23 +4202,16 @@ export const satisfiesSuccessType =
4089
4202
  *
4090
4203
  * **Example** (Constraining layer error types)
4091
4204
  *
4092
- * ```ts
4093
- * import { Layer } from "effect"
4205
+ * ```ts import.meta.vitest
4206
+ * import { Effect, Layer } from "effect"
4094
4207
  *
4095
- * declare const ErrorLayer: Layer.Layer<never, Error, never>
4096
- * declare const TypeErrorLayer: Layer.Layer<never, TypeError, never>
4097
- * declare const StringLayer: Layer.Layer<never, string, never>
4208
+ * const typeErrorLayer = Layer.effectDiscard(Effect.fail(new TypeError("boom")))
4098
4209
  *
4099
4210
  * // Define a constraint that the error type must be an Error
4100
4211
  * const satisfiesError = Layer.satisfiesErrorType<Error>()
4101
4212
  *
4102
4213
  * // This works - Layer<never, TypeError, never> extends Layer<never, Error, never>
4103
- * const validLayer = satisfiesError(TypeErrorLayer)
4104
- *
4105
- * // This would cause a TypeScript compilation error:
4106
- * // const invalidLayer = satisfiesError(StringLayer)
4107
- * // ^^^^^^^^^^^
4108
- * // Type 'string' is not assignable to type 'Error'
4214
+ * const validLayer = satisfiesError(typeErrorLayer)
4109
4215
  * ```
4110
4216
  *
4111
4217
  * @category utility types
@@ -4124,22 +4230,17 @@ export const satisfiesErrorType =
4124
4230
  *
4125
4231
  * **Example** (Constraining layer service requirements)
4126
4232
  *
4127
- * ```ts
4128
- * import { Layer } from "effect"
4233
+ * ```ts import.meta.vitest
4234
+ * import { Context, Effect, Layer } from "effect"
4129
4235
  *
4130
- * declare const FortyTwoLayer: Layer.Layer<never, never, 42>
4131
- * declare const StringLayer: Layer.Layer<never, never, string>
4236
+ * const NumberService = Context.Service<number>("Number")
4237
+ * const numberLayer = Layer.effectDiscard(Effect.asVoid(NumberService))
4132
4238
  *
4133
4239
  * // Define a constraint that the service requirements must be numbers
4134
4240
  * const satisfiesNumber = Layer.satisfiesServicesType<number>()
4135
4241
  *
4136
4242
  * // This works - Layer<never, never, 42> extends Layer<never, never, number>
4137
- * const validLayer = satisfiesNumber(FortyTwoLayer)
4138
- *
4139
- * // This would cause a TypeScript compilation error:
4140
- * // const invalidLayer = satisfiesNumber(StringLayer)
4141
- * // ^^^^^^^^^^^
4142
- * // Type 'string' is not assignable to type 'number'
4243
+ * const validLayer = satisfiesNumber(numberLayer)
4143
4244
  * ```
4144
4245
  *
4145
4246
  * @category utility types
@@ -4197,38 +4298,37 @@ export interface SpanOptions extends Tracer.SpanOptions {
4197
4298
  *
4198
4299
  * **Example** (Tracing layer construction with a span)
4199
4300
  *
4200
- * ```ts
4201
- * import { Console, Context, Effect, Layer } from "effect"
4301
+ * ```ts import.meta.vitest
4302
+ * import { Context, Effect, Layer } from "effect"
4202
4303
  * import type { Tracer } from "effect"
4203
4304
  *
4204
4305
  * class Database extends Context.Service<Database, {
4205
4306
  * readonly query: (sql: string) => Effect.Effect<string>
4206
4307
  * }>()("Database") {}
4207
4308
  *
4309
+ * const logs: Array<string> = []
4310
+ *
4208
4311
  * // Create a traced layer - all operations performed during construction of
4209
4312
  * // the `Database` service are part of the "database-init" span
4210
4313
  * const databaseLayer = Layer.effect(Database, Effect.gen(function*() {
4211
4314
  * // These operations are traced under "database-init" span
4212
- * yield* Effect.log("Connecting to database")
4213
- * yield* Effect.sleep("100 millis")
4214
- * yield* Effect.log("Database connected")
4315
+ * logs.push("Connecting to database")
4316
+ * logs.push("Database connected")
4215
4317
  *
4216
4318
  * const parentSpan = yield* Effect.currentParentSpan
4217
- * yield* Console.log((parentSpan as Tracer.Span).name) // "database-init"
4319
+ * logs.push((parentSpan as Tracer.Span).name)
4218
4320
  *
4219
4321
  * return {
4220
4322
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Result: ${sql}`))
4221
4323
  * }
4222
- * })).pipe(Layer.provide(Layer.span("database-init")))
4223
- *
4224
- * // Can also use the `onEnd` callback to execute logic when the span ends
4225
- * const tracedLayer = Layer.span("service-initialization", {
4226
- * attributes: { version: "1.0.0" },
4324
+ * })).pipe(Layer.provide(Layer.span("database-init", {
4227
4325
  * onEnd: (span, exit) =>
4228
- * Effect.sync(() => {
4229
- * console.log(`Span ${span.name} ended with:`, exit._tag)
4230
- * })
4231
- * })
4326
+ * Effect.sync(() => logs.push(`Span ${span.name} ended with: ${exit._tag}`))
4327
+ * })))
4328
+ *
4329
+ * const program = Database.use((database) => database.query("SELECT 1"))
4330
+ * Effect.runSync(Effect.provide(program, databaseLayer)) // => "Result: SELECT 1"
4331
+ * logs // => ["Connecting to database", "Database connected", "database-init", "Span database-init ended with: Success"]
4232
4332
  * ```
4233
4333
  *
4234
4334
  * @category tracing
@@ -4261,10 +4361,11 @@ export const span = (
4261
4361
  *
4262
4362
  * **Example** (Referencing an existing parent span)
4263
4363
  *
4264
- * ```ts
4265
- * import { Console, Context, Effect, Layer, Tracer } from "effect"
4364
+ * ```ts import.meta.vitest
4365
+ * import { Context, Effect, Layer, Tracer } from "effect"
4266
4366
  *
4267
4367
  * class Database extends Context.Service<Database, {
4368
+ * readonly spanId: string
4268
4369
  * readonly query: (sql: string) => Effect.Effect<string>
4269
4370
  * }>()("Database") {}
4270
4371
  *
@@ -4272,12 +4373,10 @@ export const span = (
4272
4373
  * const databaseLayer = Layer.effect(
4273
4374
  * Database,
4274
4375
  * Effect.gen(function*() {
4275
- * yield* Effect.log("Initializing database")
4276
- *
4277
4376
  * const parentSpan = yield* Effect.currentParentSpan
4278
- * yield* Console.log(parentSpan.spanId) // "42"
4279
4377
  *
4280
4378
  * return {
4379
+ * spanId: parentSpan.spanId,
4281
4380
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Result: ${sql}`))
4282
4381
  * }
4283
4382
  * })
@@ -4285,6 +4384,9 @@ export const span = (
4285
4384
  * spanId: "42",
4286
4385
  * traceId: "000"
4287
4386
  * }))))
4387
+ * const program = Database.use((database) =>
4388
+ * Effect.map(database.query("SELECT 1"), (result) => ({ spanId: database.spanId, result })))
4389
+ * Effect.runSync(Effect.provide(program, databaseLayer)) // => { spanId: "42", result: "Result: SELECT 1" }
4288
4390
  * ```
4289
4391
  *
4290
4392
  * @category tracing
@@ -4305,7 +4407,7 @@ export const parentSpan = (span: Tracer.AnySpan): Layer<Tracer.ParentSpan> =>
4305
4407
  *
4306
4408
  * **Example** (Wrapping a layer with a span)
4307
4409
  *
4308
- * ```ts
4410
+ * ```ts import.meta.vitest
4309
4411
  * import { Context, Effect, Layer } from "effect"
4310
4412
  *
4311
4413
  * class Database extends Context.Service<Database, {
@@ -4316,10 +4418,10 @@ export const parentSpan = (span: Tracer.AnySpan): Layer<Tracer.ParentSpan> =>
4316
4418
  * readonly log: (msg: string) => Effect.Effect<void>
4317
4419
  * }>()("Logger") {}
4318
4420
  *
4421
+ * const logs: Array<string> = []
4422
+ *
4319
4423
  * // Create layers with tracing
4320
4424
  * const databaseLayer = Layer.effect(Database, Effect.gen(function*() {
4321
- * yield* Effect.log("Connecting to database")
4322
- * yield* Effect.sleep("100 millis")
4323
4425
  * return {
4324
4426
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Result: ${sql}`))
4325
4427
  * }
@@ -4328,16 +4430,14 @@ export const parentSpan = (span: Tracer.AnySpan): Layer<Tracer.ParentSpan> =>
4328
4430
  * }))
4329
4431
  *
4330
4432
  * const loggerLayer = Layer.succeed(Logger, {
4331
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
4433
+ * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(msg)))
4332
4434
  * }).pipe(Layer.withSpan("logger-initialization"))
4333
4435
  *
4334
4436
  * // Combine traced layers
4335
4437
  * const appLayer = Layer.mergeAll(databaseLayer, loggerLayer).pipe(
4336
4438
  * Layer.withSpan("app-initialization", {
4337
4439
  * onEnd: (span, exit) =>
4338
- * Effect.sync(() => {
4339
- * console.log(`Application initialization completed: ${exit._tag}`)
4340
- * })
4440
+ * Effect.sync(() => logs.push(`Application initialization completed: ${exit._tag}`))
4341
4441
  * })
4342
4442
  * )
4343
4443
  *
@@ -4348,6 +4448,8 @@ export const parentSpan = (span: Tracer.AnySpan): Layer<Tracer.ParentSpan> =>
4348
4448
  * yield* logger.log("Application ready")
4349
4449
  * return yield* database.query("SELECT * FROM users")
4350
4450
  * }).pipe(Effect.provide(appLayer))
4451
+ * Effect.runSync(program) // => "Result: SELECT * FROM users"
4452
+ * logs // => ["Application ready", "Application initialization completed: Success"]
4351
4453
  * ```
4352
4454
  *
4353
4455
  * @category tracing
@@ -4366,7 +4468,7 @@ export const withSpan: {
4366
4468
  *
4367
4469
  * **Example** (Wrapping a layer with a span)
4368
4470
  *
4369
- * ```ts
4471
+ * ```ts import.meta.vitest
4370
4472
  * import { Context, Effect, Layer } from "effect"
4371
4473
  *
4372
4474
  * class Database extends Context.Service<Database, {
@@ -4377,10 +4479,10 @@ export const withSpan: {
4377
4479
  * readonly log: (msg: string) => Effect.Effect<void>
4378
4480
  * }>()("Logger") {}
4379
4481
  *
4482
+ * const logs: Array<string> = []
4483
+ *
4380
4484
  * // Create layers with tracing
4381
4485
  * const databaseLayer = Layer.effect(Database, Effect.gen(function*() {
4382
- * yield* Effect.log("Connecting to database")
4383
- * yield* Effect.sleep("100 millis")
4384
4486
  * return {
4385
4487
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Result: ${sql}`))
4386
4488
  * }
@@ -4389,16 +4491,14 @@ export const withSpan: {
4389
4491
  * }))
4390
4492
  *
4391
4493
  * const loggerLayer = Layer.succeed(Logger, {
4392
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
4494
+ * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(msg)))
4393
4495
  * }).pipe(Layer.withSpan("logger-initialization"))
4394
4496
  *
4395
4497
  * // Combine traced layers
4396
4498
  * const appLayer = Layer.mergeAll(databaseLayer, loggerLayer).pipe(
4397
4499
  * Layer.withSpan("app-initialization", {
4398
4500
  * onEnd: (span, exit) =>
4399
- * Effect.sync(() => {
4400
- * console.log(`Application initialization completed: ${exit._tag}`)
4401
- * })
4501
+ * Effect.sync(() => logs.push(`Application initialization completed: ${exit._tag}`))
4402
4502
  * })
4403
4503
  * )
4404
4504
  *
@@ -4409,6 +4509,8 @@ export const withSpan: {
4409
4509
  * yield* logger.log("Application ready")
4410
4510
  * return yield* database.query("SELECT * FROM users")
4411
4511
  * }).pipe(Effect.provide(appLayer))
4512
+ * Effect.runSync(program) // => "Result: SELECT * FROM users"
4513
+ * logs // => ["Application ready", "Application initialization completed: Success"]
4412
4514
  * ```
4413
4515
  *
4414
4516
  * @category tracing
@@ -4429,7 +4531,7 @@ export const withSpan: {
4429
4531
  *
4430
4532
  * **Example** (Wrapping a layer with a span)
4431
4533
  *
4432
- * ```ts
4534
+ * ```ts import.meta.vitest
4433
4535
  * import { Context, Effect, Layer } from "effect"
4434
4536
  *
4435
4537
  * class Database extends Context.Service<Database, {
@@ -4440,10 +4542,10 @@ export const withSpan: {
4440
4542
  * readonly log: (msg: string) => Effect.Effect<void>
4441
4543
  * }>()("Logger") {}
4442
4544
  *
4545
+ * const logs: Array<string> = []
4546
+ *
4443
4547
  * // Create layers with tracing
4444
4548
  * const databaseLayer = Layer.effect(Database, Effect.gen(function*() {
4445
- * yield* Effect.log("Connecting to database")
4446
- * yield* Effect.sleep("100 millis")
4447
4549
  * return {
4448
4550
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Result: ${sql}`))
4449
4551
  * }
@@ -4452,16 +4554,14 @@ export const withSpan: {
4452
4554
  * }))
4453
4555
  *
4454
4556
  * const loggerLayer = Layer.succeed(Logger, {
4455
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
4557
+ * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(msg)))
4456
4558
  * }).pipe(Layer.withSpan("logger-initialization"))
4457
4559
  *
4458
4560
  * // Combine traced layers
4459
4561
  * const appLayer = Layer.mergeAll(databaseLayer, loggerLayer).pipe(
4460
4562
  * Layer.withSpan("app-initialization", {
4461
4563
  * onEnd: (span, exit) =>
4462
- * Effect.sync(() => {
4463
- * console.log(`Application initialization completed: ${exit._tag}`)
4464
- * })
4564
+ * Effect.sync(() => logs.push(`Application initialization completed: ${exit._tag}`))
4465
4565
  * })
4466
4566
  * )
4467
4567
  *
@@ -4472,6 +4572,8 @@ export const withSpan: {
4472
4572
  * yield* logger.log("Application ready")
4473
4573
  * return yield* database.query("SELECT * FROM users")
4474
4574
  * }).pipe(Effect.provide(appLayer))
4575
+ * Effect.runSync(program) // => "Result: SELECT * FROM users"
4576
+ * logs // => ["Application ready", "Application initialization completed: Success"]
4475
4577
  * ```
4476
4578
  *
4477
4579
  * @category tracing
@@ -4526,7 +4628,7 @@ export const withSpan: {
4526
4628
  *
4527
4629
  * **Example** (Attaching layers to an existing parent span)
4528
4630
  *
4529
- * ```ts
4631
+ * ```ts import.meta.vitest
4530
4632
  * import { Context, Effect, Layer, Tracer } from "effect"
4531
4633
  *
4532
4634
  * class Database extends Context.Service<Database, {
@@ -4539,14 +4641,12 @@ export const withSpan: {
4539
4641
  *
4540
4642
  * // Create layers
4541
4643
  * const DatabaseLayer = Layer.effect(Database, Effect.gen(function*() {
4542
- * yield* Effect.log("Connecting to database")
4543
4644
  * return {
4544
4645
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
4545
4646
  * }
4546
4647
  * }))
4547
4648
  *
4548
4649
  * const CacheLayer = Layer.effect(Cache, Effect.gen(function*() {
4549
- * yield* Effect.log("Connecting to cache")
4550
4650
  * return {
4551
4651
  * get: Effect.fn("Cache.get")((key: string) => Effect.succeed(`Cache: ${key}`))
4552
4652
  * }
@@ -4572,6 +4672,7 @@ export const withSpan: {
4572
4672
  * return { dbResult, cacheResult }
4573
4673
  * })
4574
4674
  * )
4675
+ * Effect.runSync(Effect.scoped(program)) // => { dbResult: "DB: SELECT * FROM users", cacheResult: "Cache: user:123" }
4575
4676
  * ```
4576
4677
  *
4577
4678
  * @category tracing
@@ -4594,7 +4695,7 @@ export const withParentSpan: {
4594
4695
  *
4595
4696
  * **Example** (Attaching layers to an existing parent span)
4596
4697
  *
4597
- * ```ts
4698
+ * ```ts import.meta.vitest
4598
4699
  * import { Context, Effect, Layer, Tracer } from "effect"
4599
4700
  *
4600
4701
  * class Database extends Context.Service<Database, {
@@ -4607,14 +4708,12 @@ export const withParentSpan: {
4607
4708
  *
4608
4709
  * // Create layers
4609
4710
  * const DatabaseLayer = Layer.effect(Database, Effect.gen(function*() {
4610
- * yield* Effect.log("Connecting to database")
4611
4711
  * return {
4612
4712
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
4613
4713
  * }
4614
4714
  * }))
4615
4715
  *
4616
4716
  * const CacheLayer = Layer.effect(Cache, Effect.gen(function*() {
4617
- * yield* Effect.log("Connecting to cache")
4618
4717
  * return {
4619
4718
  * get: Effect.fn("Cache.get")((key: string) => Effect.succeed(`Cache: ${key}`))
4620
4719
  * }
@@ -4640,6 +4739,7 @@ export const withParentSpan: {
4640
4739
  * return { dbResult, cacheResult }
4641
4740
  * })
4642
4741
  * )
4742
+ * Effect.runSync(Effect.scoped(program)) // => { dbResult: "DB: SELECT * FROM users", cacheResult: "Cache: user:123" }
4643
4743
  * ```
4644
4744
  *
4645
4745
  * @category tracing
@@ -4664,7 +4764,7 @@ export const withParentSpan: {
4664
4764
  *
4665
4765
  * **Example** (Attaching layers to an existing parent span)
4666
4766
  *
4667
- * ```ts
4767
+ * ```ts import.meta.vitest
4668
4768
  * import { Context, Effect, Layer, Tracer } from "effect"
4669
4769
  *
4670
4770
  * class Database extends Context.Service<Database, {
@@ -4677,14 +4777,12 @@ export const withParentSpan: {
4677
4777
  *
4678
4778
  * // Create layers
4679
4779
  * const DatabaseLayer = Layer.effect(Database, Effect.gen(function*() {
4680
- * yield* Effect.log("Connecting to database")
4681
4780
  * return {
4682
4781
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
4683
4782
  * }
4684
4783
  * }))
4685
4784
  *
4686
4785
  * const CacheLayer = Layer.effect(Cache, Effect.gen(function*() {
4687
- * yield* Effect.log("Connecting to cache")
4688
4786
  * return {
4689
4787
  * get: Effect.fn("Cache.get")((key: string) => Effect.succeed(`Cache: ${key}`))
4690
4788
  * }
@@ -4710,6 +4808,7 @@ export const withParentSpan: {
4710
4808
  * return { dbResult, cacheResult }
4711
4809
  * })
4712
4810
  * )
4811
+ * Effect.runSync(Effect.scoped(program)) // => { dbResult: "DB: SELECT * FROM users", cacheResult: "Cache: user:123" }
4713
4812
  * ```
4714
4813
  *
4715
4814
  * @category tracing