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/dist/Layer.d.ts CHANGED
@@ -171,7 +171,7 @@ declare const MemoMapTypeId = "~effect/Layer/MemoMap";
171
171
  *
172
172
  * **Example** (Sharing layer construction with a memo map)
173
173
  *
174
- * ```ts
174
+ * ```ts import.meta.vitest
175
175
  * import { Context, Effect, Layer } from "effect"
176
176
  *
177
177
  * class Database extends Context.Service<Database, {
@@ -190,6 +190,9 @@ declare const MemoMapTypeId = "~effect/Layer/MemoMap";
190
190
  *
191
191
  * return Context.get(context, Database)
192
192
  * })
193
+ *
194
+ * const database = Effect.runSync(Effect.scoped(program))
195
+ * Effect.runSync(database.query("SELECT 1")) // => "result"
193
196
  * ```
194
197
  *
195
198
  * @category models
@@ -205,7 +208,7 @@ export interface MemoMap {
205
208
  *
206
209
  * **Example** (Checking whether a value is a layer)
207
210
  *
208
- * ```ts
211
+ * ```ts import.meta.vitest
209
212
  * import { Context, Effect, Layer } from "effect"
210
213
  *
211
214
  * class Database extends Context.Service<Database, {
@@ -217,11 +220,11 @@ export interface MemoMap {
217
220
  * })
218
221
  * const notALayer = { someProperty: "value" }
219
222
  *
220
- * console.log(Layer.isLayer(dbLayer)) // true
221
- * console.log(Layer.isLayer(notALayer)) // false
223
+ * Layer.isLayer(dbLayer) // => true
224
+ * Layer.isLayer(notALayer) // => false
222
225
  * ```
223
226
  *
224
- * @category getters
227
+ * @category guards
225
228
  * @since 2.0.0
226
229
  */
227
230
  export declare const isLayer: (u: unknown) => u is Layer<unknown, unknown, unknown>;
@@ -236,7 +239,7 @@ export declare const isLayer: (u: unknown) => u is Layer<unknown, unknown, unkno
236
239
  *
237
240
  * **Example** (Constructing a layer from a build function)
238
241
  *
239
- * ```ts
242
+ * ```ts import.meta.vitest
240
243
  * import { Context, Effect, Layer } from "effect"
241
244
  *
242
245
  * class Database extends Context.Service<Database, {
@@ -250,6 +253,9 @@ export declare const isLayer: (u: unknown) => u is Layer<unknown, unknown, unkno
250
253
  * })
251
254
  * )
252
255
  * )
256
+ *
257
+ * const program = Database.use((database) => database.query("SELECT 1"))
258
+ * Effect.runSync(Effect.provide(program, databaseLayer)) // => "result"
253
259
  * ```
254
260
  *
255
261
  * @category constructors
@@ -267,7 +273,7 @@ export declare const fromBuild: <ROut, E, RIn>(build: (memoMap: MemoMap, scope:
267
273
  *
268
274
  * **Example** (Memoizing layer construction)
269
275
  *
270
- * ```ts
276
+ * ```ts import.meta.vitest
271
277
  * import { Context, Effect, Layer } from "effect"
272
278
  *
273
279
  * class Database extends Context.Service<Database, {
@@ -281,6 +287,9 @@ export declare const fromBuild: <ROut, E, RIn>(build: (memoMap: MemoMap, scope:
281
287
  * })
282
288
  * )
283
289
  * )
290
+ *
291
+ * const program = Database.use((database) => database.query("SELECT 1"))
292
+ * Effect.runSync(Effect.provide(program, databaseLayer)) // => "result"
284
293
  * ```
285
294
  *
286
295
  * @category constructors
@@ -292,7 +301,7 @@ export declare const fromBuildMemo: <ROut, E, RIn>(build: (memoMap: MemoMap, sco
292
301
  *
293
302
  * **Example** (Creating a memo map unsafely)
294
303
  *
295
- * ```ts
304
+ * ```ts import.meta.vitest
296
305
  * import { Context, Effect, Layer } from "effect"
297
306
  *
298
307
  * class Database extends Context.Service<Database, {
@@ -311,9 +320,12 @@ export declare const fromBuildMemo: <ROut, E, RIn>(build: (memoMap: MemoMap, sco
311
320
  *
312
321
  * return Context.get(context, Database)
313
322
  * })
323
+ *
324
+ * const database = Effect.runSync(Effect.scoped(program))
325
+ * Effect.runSync(database.query("SELECT 1")) // => "result"
314
326
  * ```
315
327
  *
316
- * @category memo map
328
+ * @category constructors
317
329
  * @since 4.0.0
318
330
  */
319
331
  export declare const makeMemoMapUnsafe: () => MemoMap;
@@ -331,7 +343,7 @@ export declare const makeMemoMapUnsafe: () => MemoMap;
331
343
  * @see {@link forkMemoMap} for allocating the child memo map inside `Effect`
332
344
  * @see {@link makeMemoMapUnsafe} for creating a root memo map without a parent
333
345
  *
334
- * @category memo map
346
+ * @category constructors
335
347
  * @since 4.0.0
336
348
  */
337
349
  export declare const forkMemoMapUnsafe: (parent: MemoMap) => MemoMap;
@@ -340,7 +352,7 @@ export declare const forkMemoMapUnsafe: (parent: MemoMap) => MemoMap;
340
352
  *
341
353
  * **Example** (Creating a memo map in an effect)
342
354
  *
343
- * ```ts
355
+ * ```ts import.meta.vitest
344
356
  * import { Context, Effect, Layer } from "effect"
345
357
  *
346
358
  * class Database extends Context.Service<Database, {
@@ -359,9 +371,12 @@ export declare const forkMemoMapUnsafe: (parent: MemoMap) => MemoMap;
359
371
  *
360
372
  * return Context.get(context, Database)
361
373
  * })
374
+ *
375
+ * const database = Effect.runSync(Effect.scoped(program))
376
+ * Effect.runSync(database.query("SELECT 1")) // => "result"
362
377
  * ```
363
378
  *
364
- * @category memo map
379
+ * @category constructors
365
380
  * @since 2.0.0
366
381
  */
367
382
  export declare const makeMemoMap: Effect<MemoMap>;
@@ -379,7 +394,7 @@ export declare const makeMemoMap: Effect<MemoMap>;
379
394
  * @see {@link forkMemoMapUnsafe} for the synchronous constructor variant
380
395
  * @see {@link buildWithMemoMap} for building layers with an explicit memo map
381
396
  *
382
- * @category memo map
397
+ * @category constructors
383
398
  * @since 4.0.0
384
399
  */
385
400
  export declare const forkMemoMap: (parent: MemoMap) => Effect<MemoMap>;
@@ -399,7 +414,7 @@ declare const CurrentMemoMap_base: Context.ServiceClass<CurrentMemoMap, "effect/
399
414
  *
400
415
  * @see {@link MemoMap} the memoization map type wrapped by this service
401
416
  *
402
- * @category models
417
+ * @category services
403
418
  * @since 3.13.0
404
419
  */
405
420
  export declare class CurrentMemoMap extends CurrentMemoMap_base {
@@ -411,7 +426,7 @@ export declare class CurrentMemoMap extends CurrentMemoMap_base {
411
426
  *
412
427
  * **Example** (Building layers with an explicit memo map)
413
428
  *
414
- * ```ts
429
+ * ```ts import.meta.vitest
415
430
  * import { Context, Effect, Layer } from "effect"
416
431
  *
417
432
  * class Database extends Context.Service<Database, {
@@ -422,6 +437,8 @@ export declare class CurrentMemoMap extends CurrentMemoMap_base {
422
437
  * readonly log: (msg: string) => Effect.Effect<void>
423
438
  * }>()("Logger") {}
424
439
  *
440
+ * const logs: Array<string> = []
441
+ *
425
442
  * // Build layers with explicit memoization control
426
443
  * const program = Effect.gen(function*() {
427
444
  * const memoMap = yield* Layer.makeMemoMap
@@ -435,7 +452,7 @@ export declare class CurrentMemoMap extends CurrentMemoMap_base {
435
452
  *
436
453
  * // Build logger layer with same memoization (reuses memo if same layer)
437
454
  * const loggerLayer = Layer.succeed(Logger, {
438
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
455
+ * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(msg)))
439
456
  * })
440
457
  * const loggerContext = yield* Layer.buildWithMemoMap(
441
458
  * loggerLayer,
@@ -448,9 +465,13 @@ export declare class CurrentMemoMap extends CurrentMemoMap_base {
448
465
  * logger: Context.get(loggerContext, Logger)
449
466
  * }
450
467
  * })
468
+ *
469
+ * const services = Effect.runSync(Effect.scoped(program))
470
+ * Effect.runSync(services.logger.log("ready"))
471
+ * logs // => ["ready"]
451
472
  * ```
452
473
  *
453
- * @category memo map
474
+ * @category destructors
454
475
  * @since 2.0.0
455
476
  */
456
477
  export declare const buildWithMemoMap: {
@@ -460,7 +481,7 @@ export declare const buildWithMemoMap: {
460
481
  *
461
482
  * **Example** (Building layers with an explicit memo map)
462
483
  *
463
- * ```ts
484
+ * ```ts import.meta.vitest
464
485
  * import { Context, Effect, Layer } from "effect"
465
486
  *
466
487
  * class Database extends Context.Service<Database, {
@@ -471,6 +492,8 @@ export declare const buildWithMemoMap: {
471
492
  * readonly log: (msg: string) => Effect.Effect<void>
472
493
  * }>()("Logger") {}
473
494
  *
495
+ * const logs: Array<string> = []
496
+ *
474
497
  * // Build layers with explicit memoization control
475
498
  * const program = Effect.gen(function*() {
476
499
  * const memoMap = yield* Layer.makeMemoMap
@@ -484,7 +507,7 @@ export declare const buildWithMemoMap: {
484
507
  *
485
508
  * // Build logger layer with same memoization (reuses memo if same layer)
486
509
  * const loggerLayer = Layer.succeed(Logger, {
487
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
510
+ * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(msg)))
488
511
  * })
489
512
  * const loggerContext = yield* Layer.buildWithMemoMap(
490
513
  * loggerLayer,
@@ -497,9 +520,13 @@ export declare const buildWithMemoMap: {
497
520
  * logger: Context.get(loggerContext, Logger)
498
521
  * }
499
522
  * })
523
+ *
524
+ * const services = Effect.runSync(Effect.scoped(program))
525
+ * Effect.runSync(services.logger.log("ready"))
526
+ * logs // => ["ready"]
500
527
  * ```
501
528
  *
502
- * @category memo map
529
+ * @category destructors
503
530
  * @since 2.0.0
504
531
  */
505
532
  (memoMap: MemoMap, scope: Scope.Scope): <RIn, E, ROut>(self: Layer<ROut, E, RIn>) => Effect<Context.Context<ROut>, E, RIn>;
@@ -509,7 +536,7 @@ export declare const buildWithMemoMap: {
509
536
  *
510
537
  * **Example** (Building layers with an explicit memo map)
511
538
  *
512
- * ```ts
539
+ * ```ts import.meta.vitest
513
540
  * import { Context, Effect, Layer } from "effect"
514
541
  *
515
542
  * class Database extends Context.Service<Database, {
@@ -520,6 +547,8 @@ export declare const buildWithMemoMap: {
520
547
  * readonly log: (msg: string) => Effect.Effect<void>
521
548
  * }>()("Logger") {}
522
549
  *
550
+ * const logs: Array<string> = []
551
+ *
523
552
  * // Build layers with explicit memoization control
524
553
  * const program = Effect.gen(function*() {
525
554
  * const memoMap = yield* Layer.makeMemoMap
@@ -533,7 +562,7 @@ export declare const buildWithMemoMap: {
533
562
  *
534
563
  * // Build logger layer with same memoization (reuses memo if same layer)
535
564
  * const loggerLayer = Layer.succeed(Logger, {
536
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
565
+ * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(msg)))
537
566
  * })
538
567
  * const loggerContext = yield* Layer.buildWithMemoMap(
539
568
  * loggerLayer,
@@ -546,9 +575,13 @@ export declare const buildWithMemoMap: {
546
575
  * logger: Context.get(loggerContext, Logger)
547
576
  * }
548
577
  * })
578
+ *
579
+ * const services = Effect.runSync(Effect.scoped(program))
580
+ * Effect.runSync(services.logger.log("ready"))
581
+ * logs // => ["ready"]
549
582
  * ```
550
583
  *
551
- * @category memo map
584
+ * @category destructors
552
585
  * @since 2.0.0
553
586
  */
554
587
  <RIn, E, ROut>(self: Layer<ROut, E, RIn>, memoMap: MemoMap, scope: Scope.Scope): Effect<Context.Context<ROut>, E, RIn>;
@@ -558,7 +591,7 @@ export declare const buildWithMemoMap: {
558
591
  *
559
592
  * **Example** (Building a layer into a context)
560
593
  *
561
- * ```ts
594
+ * ```ts import.meta.vitest
562
595
  * import { Context, Effect, Layer } from "effect"
563
596
  *
564
597
  * class Database extends Context.Service<Database, {
@@ -579,6 +612,8 @@ export declare const buildWithMemoMap: {
579
612
  *
580
613
  * return yield* database.query("SELECT * FROM users")
581
614
  * })
615
+ *
616
+ * Effect.runSync(Effect.scoped(program)) // => "result"
582
617
  * ```
583
618
  *
584
619
  * @category destructors
@@ -600,22 +635,24 @@ export declare const build: <RIn, E, ROut>(self: Layer<ROut, E, RIn>) => Effect<
600
635
  *
601
636
  * **Example** (Building a layer with an explicit scope)
602
637
  *
603
- * ```ts
638
+ * ```ts import.meta.vitest
604
639
  * import { Context, Effect, Layer, Scope } from "effect"
605
640
  *
606
641
  * class Database extends Context.Service<Database, {
607
642
  * readonly query: (sql: string) => Effect.Effect<string>
608
643
  * }>()("Database") {}
609
644
  *
645
+ * const logs: Array<string> = []
646
+ *
610
647
  * // Build a layer with explicit scope control
611
648
  * const program = Effect.gen(function*() {
612
649
  * const scope = yield* Effect.scope
613
650
  *
614
651
  * const dbLayer = Layer.effect(Database, Effect.gen(function*() {
615
- * console.log("Initializing database...")
652
+ * logs.push("Initializing database...")
616
653
  * yield* Scope.addFinalizer(
617
654
  * scope,
618
- * Effect.sync(() => console.log("Database closed"))
655
+ * Effect.sync(() => logs.push("Database closed"))
619
656
  * )
620
657
  * return { query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Result: ${sql}`)) }
621
658
  * }))
@@ -627,6 +664,9 @@ export declare const build: <RIn, E, ROut>(self: Layer<ROut, E, RIn>) => Effect<
627
664
  * return yield* database.query("SELECT * FROM users")
628
665
  * // Database will be closed when scope is closed
629
666
  * })
667
+ *
668
+ * Effect.runSync(Effect.scoped(program)) // => "Result: SELECT * FROM users"
669
+ * logs // => ["Initializing database...", "Database closed"]
630
670
  * ```
631
671
  *
632
672
  * @category destructors
@@ -648,22 +688,24 @@ export declare const buildWithScope: {
648
688
  *
649
689
  * **Example** (Building a layer with an explicit scope)
650
690
  *
651
- * ```ts
691
+ * ```ts import.meta.vitest
652
692
  * import { Context, Effect, Layer, Scope } from "effect"
653
693
  *
654
694
  * class Database extends Context.Service<Database, {
655
695
  * readonly query: (sql: string) => Effect.Effect<string>
656
696
  * }>()("Database") {}
657
697
  *
698
+ * const logs: Array<string> = []
699
+ *
658
700
  * // Build a layer with explicit scope control
659
701
  * const program = Effect.gen(function*() {
660
702
  * const scope = yield* Effect.scope
661
703
  *
662
704
  * const dbLayer = Layer.effect(Database, Effect.gen(function*() {
663
- * console.log("Initializing database...")
705
+ * logs.push("Initializing database...")
664
706
  * yield* Scope.addFinalizer(
665
707
  * scope,
666
- * Effect.sync(() => console.log("Database closed"))
708
+ * Effect.sync(() => logs.push("Database closed"))
667
709
  * )
668
710
  * return { query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Result: ${sql}`)) }
669
711
  * }))
@@ -675,6 +717,9 @@ export declare const buildWithScope: {
675
717
  * return yield* database.query("SELECT * FROM users")
676
718
  * // Database will be closed when scope is closed
677
719
  * })
720
+ *
721
+ * Effect.runSync(Effect.scoped(program)) // => "Result: SELECT * FROM users"
722
+ * logs // => ["Initializing database...", "Database closed"]
678
723
  * ```
679
724
  *
680
725
  * @category destructors
@@ -696,22 +741,24 @@ export declare const buildWithScope: {
696
741
  *
697
742
  * **Example** (Building a layer with an explicit scope)
698
743
  *
699
- * ```ts
744
+ * ```ts import.meta.vitest
700
745
  * import { Context, Effect, Layer, Scope } from "effect"
701
746
  *
702
747
  * class Database extends Context.Service<Database, {
703
748
  * readonly query: (sql: string) => Effect.Effect<string>
704
749
  * }>()("Database") {}
705
750
  *
751
+ * const logs: Array<string> = []
752
+ *
706
753
  * // Build a layer with explicit scope control
707
754
  * const program = Effect.gen(function*() {
708
755
  * const scope = yield* Effect.scope
709
756
  *
710
757
  * const dbLayer = Layer.effect(Database, Effect.gen(function*() {
711
- * console.log("Initializing database...")
758
+ * logs.push("Initializing database...")
712
759
  * yield* Scope.addFinalizer(
713
760
  * scope,
714
- * Effect.sync(() => console.log("Database closed"))
761
+ * Effect.sync(() => logs.push("Database closed"))
715
762
  * )
716
763
  * return { query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Result: ${sql}`)) }
717
764
  * }))
@@ -723,6 +770,9 @@ export declare const buildWithScope: {
723
770
  * return yield* database.query("SELECT * FROM users")
724
771
  * // Database will be closed when scope is closed
725
772
  * })
773
+ *
774
+ * Effect.runSync(Effect.scoped(program)) // => "Result: SELECT * FROM users"
775
+ * logs // => ["Initializing database...", "Database closed"]
726
776
  * ```
727
777
  *
728
778
  * @category destructors
@@ -741,7 +791,7 @@ export declare const buildWithScope: {
741
791
  *
742
792
  * **Example** (Creating a layer from a service implementation)
743
793
  *
744
- * ```ts
794
+ * ```ts import.meta.vitest
745
795
  * import { Context, Effect, Layer } from "effect"
746
796
  *
747
797
  * class Database extends Context.Service<Database, {
@@ -751,6 +801,8 @@ export declare const buildWithScope: {
751
801
  * const DatabaseLive = Layer.succeed(Database, {
752
802
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Query result: ${sql}`))
753
803
  * })
804
+ * const program = Database.use((database) => database.query("SELECT 1"))
805
+ * Effect.runSync(Effect.provide(program, DatabaseLive)) // => "Query result: SELECT 1"
754
806
  * ```
755
807
  *
756
808
  * @see {@link sync} for constructing layers from lazy values
@@ -770,7 +822,7 @@ export declare const succeed: {
770
822
  *
771
823
  * **Example** (Creating a layer from a service implementation)
772
824
  *
773
- * ```ts
825
+ * ```ts import.meta.vitest
774
826
  * import { Context, Effect, Layer } from "effect"
775
827
  *
776
828
  * class Database extends Context.Service<Database, {
@@ -780,6 +832,8 @@ export declare const succeed: {
780
832
  * const DatabaseLive = Layer.succeed(Database, {
781
833
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Query result: ${sql}`))
782
834
  * })
835
+ * const program = Database.use((database) => database.query("SELECT 1"))
836
+ * Effect.runSync(Effect.provide(program, DatabaseLive)) // => "Query result: SELECT 1"
783
837
  * ```
784
838
  *
785
839
  * @see {@link sync} for constructing layers from lazy values
@@ -799,7 +853,7 @@ export declare const succeed: {
799
853
  *
800
854
  * **Example** (Creating a layer from a service implementation)
801
855
  *
802
- * ```ts
856
+ * ```ts import.meta.vitest
803
857
  * import { Context, Effect, Layer } from "effect"
804
858
  *
805
859
  * class Database extends Context.Service<Database, {
@@ -809,6 +863,8 @@ export declare const succeed: {
809
863
  * const DatabaseLive = Layer.succeed(Database, {
810
864
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Query result: ${sql}`))
811
865
  * })
866
+ * const program = Database.use((database) => database.query("SELECT 1"))
867
+ * Effect.runSync(Effect.provide(program, DatabaseLive)) // => "Query result: SELECT 1"
812
868
  * ```
813
869
  *
814
870
  * @see {@link sync} for constructing layers from lazy values
@@ -834,7 +890,7 @@ export declare const succeed: {
834
890
  *
835
891
  * **Example** (Providing multiple services from a context)
836
892
  *
837
- * ```ts
893
+ * ```ts import.meta.vitest
838
894
  * import { Context, Effect, Layer } from "effect"
839
895
  *
840
896
  * class Database extends Context.Service<Database, {
@@ -845,15 +901,19 @@ export declare const succeed: {
845
901
  * readonly log: (msg: string) => Effect.Effect<void>
846
902
  * }>()("Logger") {}
847
903
  *
904
+ * const logs: Array<string> = []
848
905
  * const context = Context.make(Database, {
849
906
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
850
907
  * }).pipe(
851
908
  * Context.add(Logger, {
852
- * log: (msg: string) => Effect.sync(() => console.log(msg))
909
+ * log: (msg: string) => Effect.sync(() => logs.push(msg))
853
910
  * })
854
911
  * )
855
912
  *
856
913
  * const layer = Layer.succeedContext(context)
914
+ * const program = Logger.use((logger) => logger.log("ready"))
915
+ * Effect.runSync(Effect.provide(program, layer))
916
+ * logs // => ["ready"]
857
917
  * ```
858
918
  *
859
919
  * @see {@link succeed} for providing a single service from a value
@@ -872,14 +932,12 @@ export declare const succeedContext: <A>(context: Context.Context<A>) => Layer<A
872
932
  *
873
933
  * **Example** (Disabling optional lifecycle work)
874
934
  *
875
- * ```ts
876
- * import { Console, Layer } from "effect"
877
- *
878
- * declare const flag: boolean
935
+ * ```ts import.meta.vitest
936
+ * import { Context, Effect, Layer, Option } from "effect"
879
937
  *
880
- * const StartupLogLive = flag
881
- * ? Layer.effectDiscard(Console.log("application starting"))
882
- * : Layer.empty
938
+ * const Service = Context.Service<string>("Service")
939
+ * const context = Effect.runSync(Effect.scoped(Layer.build(Layer.empty)))
940
+ * Context.getOption(context, Service) // => Option.none()
883
941
  * ```
884
942
  *
885
943
  * @see {@link effectDiscard} for running an effect while providing no services
@@ -903,7 +961,7 @@ export declare const empty: Layer<never>;
903
961
  *
904
962
  * **Example** (Lazily providing a service)
905
963
  *
906
- * ```ts
964
+ * ```ts import.meta.vitest
907
965
  * import { Context, Effect, Layer } from "effect"
908
966
  *
909
967
  * class Database extends Context.Service<Database, {
@@ -913,6 +971,8 @@ export declare const empty: Layer<never>;
913
971
  * const layer = Layer.sync(Database, () => ({
914
972
  * query: (sql: string) => Effect.succeed(`Query: ${sql}`)
915
973
  * }))
974
+ * const program = Database.use((database) => database.query("SELECT 1"))
975
+ * Effect.runSync(Effect.provide(program, layer)) // => "Query: SELECT 1"
916
976
  * ```
917
977
  *
918
978
  * @see {@link succeed} for constructing layers from static values
@@ -936,7 +996,7 @@ export declare const sync: {
936
996
  *
937
997
  * **Example** (Lazily providing a service)
938
998
  *
939
- * ```ts
999
+ * ```ts import.meta.vitest
940
1000
  * import { Context, Effect, Layer } from "effect"
941
1001
  *
942
1002
  * class Database extends Context.Service<Database, {
@@ -946,6 +1006,8 @@ export declare const sync: {
946
1006
  * const layer = Layer.sync(Database, () => ({
947
1007
  * query: (sql: string) => Effect.succeed(`Query: ${sql}`)
948
1008
  * }))
1009
+ * const program = Database.use((database) => database.query("SELECT 1"))
1010
+ * Effect.runSync(Effect.provide(program, layer)) // => "Query: SELECT 1"
949
1011
  * ```
950
1012
  *
951
1013
  * @see {@link succeed} for constructing layers from static values
@@ -969,7 +1031,7 @@ export declare const sync: {
969
1031
  *
970
1032
  * **Example** (Lazily providing a service)
971
1033
  *
972
- * ```ts
1034
+ * ```ts import.meta.vitest
973
1035
  * import { Context, Effect, Layer } from "effect"
974
1036
  *
975
1037
  * class Database extends Context.Service<Database, {
@@ -979,6 +1041,8 @@ export declare const sync: {
979
1041
  * const layer = Layer.sync(Database, () => ({
980
1042
  * query: (sql: string) => Effect.succeed(`Query: ${sql}`)
981
1043
  * }))
1044
+ * const program = Database.use((database) => database.query("SELECT 1"))
1045
+ * Effect.runSync(Effect.provide(program, layer)) // => "Query: SELECT 1"
982
1046
  * ```
983
1047
  *
984
1048
  * @see {@link succeed} for constructing layers from static values
@@ -1003,7 +1067,7 @@ export declare const sync: {
1003
1067
  *
1004
1068
  * **Example** (Lazily providing a context)
1005
1069
  *
1006
- * ```ts
1070
+ * ```ts import.meta.vitest
1007
1071
  * import { Context, Effect, Layer } from "effect"
1008
1072
  *
1009
1073
  * class Database extends Context.Service<Database, {
@@ -1015,6 +1079,8 @@ export declare const sync: {
1015
1079
  * query: (sql: string) => Effect.succeed(`Query: ${sql}`)
1016
1080
  * })
1017
1081
  * )
1082
+ * const program = Database.use((database) => database.query("SELECT 1"))
1083
+ * Effect.runSync(Effect.provide(program, layer)) // => "Query: SELECT 1"
1018
1084
  * ```
1019
1085
  *
1020
1086
  * @see {@link sync} for lazily providing a single service
@@ -1040,7 +1106,7 @@ export declare const syncContext: <A>(evaluate: LazyArg<Context.Context<A>>) =>
1040
1106
  *
1041
1107
  * **Example** (Creating a layer from an effect)
1042
1108
  *
1043
- * ```ts
1109
+ * ```ts import.meta.vitest
1044
1110
  * import { Context, Effect, Layer } from "effect"
1045
1111
  *
1046
1112
  * class Database extends Context.Service<Database, {
@@ -1052,6 +1118,8 @@ export declare const syncContext: <A>(evaluate: LazyArg<Context.Context<A>>) =>
1052
1118
  * query: (sql: string) => Effect.succeed(`Query: ${sql}`)
1053
1119
  * }))
1054
1120
  * )
1121
+ * const program = Database.use((database) => database.query("SELECT 1"))
1122
+ * Effect.runSync(Effect.provide(program, layer)) // => "Query: SELECT 1"
1055
1123
  * ```
1056
1124
  *
1057
1125
  * @see {@link effectContext} for effectfully providing multiple services
@@ -1077,7 +1145,7 @@ export declare const effect: {
1077
1145
  *
1078
1146
  * **Example** (Creating a layer from an effect)
1079
1147
  *
1080
- * ```ts
1148
+ * ```ts import.meta.vitest
1081
1149
  * import { Context, Effect, Layer } from "effect"
1082
1150
  *
1083
1151
  * class Database extends Context.Service<Database, {
@@ -1089,6 +1157,8 @@ export declare const effect: {
1089
1157
  * query: (sql: string) => Effect.succeed(`Query: ${sql}`)
1090
1158
  * }))
1091
1159
  * )
1160
+ * const program = Database.use((database) => database.query("SELECT 1"))
1161
+ * Effect.runSync(Effect.provide(program, layer)) // => "Query: SELECT 1"
1092
1162
  * ```
1093
1163
  *
1094
1164
  * @see {@link effectContext} for effectfully providing multiple services
@@ -1114,7 +1184,7 @@ export declare const effect: {
1114
1184
  *
1115
1185
  * **Example** (Creating a layer from an effect)
1116
1186
  *
1117
- * ```ts
1187
+ * ```ts import.meta.vitest
1118
1188
  * import { Context, Effect, Layer } from "effect"
1119
1189
  *
1120
1190
  * class Database extends Context.Service<Database, {
@@ -1126,6 +1196,8 @@ export declare const effect: {
1126
1196
  * query: (sql: string) => Effect.succeed(`Query: ${sql}`)
1127
1197
  * }))
1128
1198
  * )
1199
+ * const program = Database.use((database) => database.query("SELECT 1"))
1200
+ * Effect.runSync(Effect.provide(program, layer)) // => "Query: SELECT 1"
1129
1201
  * ```
1130
1202
  *
1131
1203
  * @see {@link effectContext} for effectfully providing multiple services
@@ -1152,7 +1224,7 @@ export declare const effect: {
1152
1224
  *
1153
1225
  * **Example** (Creating a layer from an effectful context)
1154
1226
  *
1155
- * ```ts
1227
+ * ```ts import.meta.vitest
1156
1228
  * import { Context, Effect, Layer } from "effect"
1157
1229
  *
1158
1230
  * class Database extends Context.Service<
@@ -1165,6 +1237,8 @@ export declare const effect: {
1165
1237
  * query: (sql: string) => Effect.succeed(`Query: ${sql}`)
1166
1238
  * }))
1167
1239
  * )
1240
+ * const program = Database.use((database) => database.query("SELECT 1"))
1241
+ * Effect.runSync(Effect.provide(program, layer)) // => "Query: SELECT 1"
1168
1242
  * ```
1169
1243
  *
1170
1244
  * @see {@link effect} for effectfully providing a single service
@@ -1184,14 +1258,17 @@ export declare const effectContext: <A, E, R>(effect: Effect<Context.Context<A>,
1184
1258
  *
1185
1259
  * **Example** (Running an effect during layer construction)
1186
1260
  *
1187
- * ```ts
1261
+ * ```ts import.meta.vitest
1188
1262
  * import { Effect, Layer } from "effect"
1189
1263
  *
1264
+ * const logs: Array<string> = []
1190
1265
  * const initLayer = Layer.effectDiscard(
1191
1266
  * Effect.sync(() => {
1192
- * console.log("Initializing application...")
1267
+ * logs.push("Initializing application...")
1193
1268
  * })
1194
1269
  * )
1270
+ * Effect.runSync(Effect.scoped(Layer.build(initLayer)))
1271
+ * logs // => ["Initializing application..."]
1195
1272
  * ```
1196
1273
  *
1197
1274
  * @see {@link empty} for a no-op layer that performs no construction work
@@ -1210,8 +1287,8 @@ export declare const effectDiscard: <X, E, R>(effect: Effect<X, E, R>) => Layer<
1210
1287
  *
1211
1288
  * **Example** (Choosing a layer lazily)
1212
1289
  *
1213
- * ```ts
1214
- * import { Context, Layer } from "effect"
1290
+ * ```ts import.meta.vitest
1291
+ * import { Context, Effect, Layer } from "effect"
1215
1292
  *
1216
1293
  * class Config extends Context.Service<Config, string>()("Config") {}
1217
1294
  *
@@ -1222,6 +1299,7 @@ export declare const effectDiscard: <X, E, R>(effect: Effect<X, E, R>) => Layer<
1222
1299
  * ? Layer.succeed(Config, "https://api.example.com")
1223
1300
  * : Layer.succeed(Config, "http://localhost:3000")
1224
1301
  * )
1302
+ * Effect.runSync(Effect.provide(Config, layer)) // => "https://api.example.com"
1225
1303
  * ```
1226
1304
  *
1227
1305
  * @category constructors
@@ -1243,7 +1321,7 @@ export declare const suspend: <A, E, R>(evaluate: LazyArg<Layer<A, E, R>>) => La
1243
1321
  *
1244
1322
  * **Example** (Unwrapping an effectful layer)
1245
1323
  *
1246
- * ```ts
1324
+ * ```ts import.meta.vitest
1247
1325
  * import { Context, Effect, Layer } from "effect"
1248
1326
  *
1249
1327
  * class Database extends Context.Service<Database, {
@@ -1255,6 +1333,8 @@ export declare const suspend: <A, E, R>(evaluate: LazyArg<Layer<A, E, R>>) => La
1255
1333
  * )
1256
1334
  *
1257
1335
  * const unwrappedLayer = Layer.unwrap(layerEffect)
1336
+ * const program = Database.use((database) => database.query("SELECT 1"))
1337
+ * Effect.runSync(Effect.provide(program, unwrappedLayer)) // => "result"
1258
1338
  * ```
1259
1339
  *
1260
1340
  * @category converting
@@ -1279,7 +1359,7 @@ export declare const unwrap: <A, E1, R1, E, R>(self: Effect<Layer<A, E1, R1>, E,
1279
1359
  *
1280
1360
  * **Example** (Merging independent layers)
1281
1361
  *
1282
- * ```ts
1362
+ * ```ts import.meta.vitest
1283
1363
  * import { Context, Effect, Layer } from "effect"
1284
1364
  *
1285
1365
  * class Database extends Context.Service<Database, {
@@ -1293,11 +1373,15 @@ export declare const unwrap: <A, E1, R1, E, R>(self: Effect<Layer<A, E1, R1>, E,
1293
1373
  * const dbLayer = Layer.succeed(Database, {
1294
1374
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
1295
1375
  * })
1376
+ * const logs: Array<string> = []
1296
1377
  * const loggerLayer = Layer.succeed(Logger, {
1297
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
1378
+ * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(msg)))
1298
1379
  * })
1299
1380
  *
1300
1381
  * const mergedLayer = Layer.mergeAll(dbLayer, loggerLayer)
1382
+ * const program = Logger.use((logger) => logger.log("ready"))
1383
+ * Effect.runSync(Effect.provide(program, mergedLayer))
1384
+ * logs // => ["ready"]
1301
1385
  * ```
1302
1386
  *
1303
1387
  * @see {@link merge} for merging one layer with another layer or array
@@ -1323,7 +1407,7 @@ export declare const mergeAll: <Layers extends [Layer<never, any, any>, ...Array
1323
1407
  *
1324
1408
  * **Example** (Merging two layers)
1325
1409
  *
1326
- * ```ts
1410
+ * ```ts import.meta.vitest
1327
1411
  * import { Context, Effect, Layer } from "effect"
1328
1412
  *
1329
1413
  * class Database extends Context.Service<Database, {
@@ -1338,10 +1422,12 @@ export declare const mergeAll: <Layers extends [Layer<never, any, any>, ...Array
1338
1422
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
1339
1423
  * })
1340
1424
  * const loggerLayer = Layer.succeed(Logger, {
1341
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
1425
+ * log: Effect.fn("Logger.log")((_msg: string) => Effect.void)
1342
1426
  * })
1343
1427
  *
1344
1428
  * const mergedLayer = Layer.merge(dbLayer, loggerLayer)
1429
+ * const program = Database.use((database) => database.query("SELECT 1"))
1430
+ * Effect.runSync(Effect.provide(program, mergedLayer)) // => "result"
1345
1431
  * ```
1346
1432
  *
1347
1433
  * @see {@link mergeAll} for merging several layers at once
@@ -1367,7 +1453,7 @@ export declare const merge: {
1367
1453
  *
1368
1454
  * **Example** (Merging two layers)
1369
1455
  *
1370
- * ```ts
1456
+ * ```ts import.meta.vitest
1371
1457
  * import { Context, Effect, Layer } from "effect"
1372
1458
  *
1373
1459
  * class Database extends Context.Service<Database, {
@@ -1382,10 +1468,12 @@ export declare const merge: {
1382
1468
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
1383
1469
  * })
1384
1470
  * const loggerLayer = Layer.succeed(Logger, {
1385
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
1471
+ * log: Effect.fn("Logger.log")((_msg: string) => Effect.void)
1386
1472
  * })
1387
1473
  *
1388
1474
  * const mergedLayer = Layer.merge(dbLayer, loggerLayer)
1475
+ * const program = Database.use((database) => database.query("SELECT 1"))
1476
+ * Effect.runSync(Effect.provide(program, mergedLayer)) // => "result"
1389
1477
  * ```
1390
1478
  *
1391
1479
  * @see {@link mergeAll} for merging several layers at once
@@ -1411,7 +1499,7 @@ export declare const merge: {
1411
1499
  *
1412
1500
  * **Example** (Merging two layers)
1413
1501
  *
1414
- * ```ts
1502
+ * ```ts import.meta.vitest
1415
1503
  * import { Context, Effect, Layer } from "effect"
1416
1504
  *
1417
1505
  * class Database extends Context.Service<Database, {
@@ -1426,10 +1514,12 @@ export declare const merge: {
1426
1514
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
1427
1515
  * })
1428
1516
  * const loggerLayer = Layer.succeed(Logger, {
1429
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
1517
+ * log: Effect.fn("Logger.log")((_msg: string) => Effect.void)
1430
1518
  * })
1431
1519
  *
1432
1520
  * const mergedLayer = Layer.merge(dbLayer, loggerLayer)
1521
+ * const program = Database.use((database) => database.query("SELECT 1"))
1522
+ * Effect.runSync(Effect.provide(program, mergedLayer)) // => "result"
1433
1523
  * ```
1434
1524
  *
1435
1525
  * @see {@link mergeAll} for merging several layers at once
@@ -1455,7 +1545,7 @@ export declare const merge: {
1455
1545
  *
1456
1546
  * **Example** (Merging two layers)
1457
1547
  *
1458
- * ```ts
1548
+ * ```ts import.meta.vitest
1459
1549
  * import { Context, Effect, Layer } from "effect"
1460
1550
  *
1461
1551
  * class Database extends Context.Service<Database, {
@@ -1470,10 +1560,12 @@ export declare const merge: {
1470
1560
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
1471
1561
  * })
1472
1562
  * const loggerLayer = Layer.succeed(Logger, {
1473
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
1563
+ * log: Effect.fn("Logger.log")((_msg: string) => Effect.void)
1474
1564
  * })
1475
1565
  *
1476
1566
  * const mergedLayer = Layer.merge(dbLayer, loggerLayer)
1567
+ * const program = Database.use((database) => database.query("SELECT 1"))
1568
+ * Effect.runSync(Effect.provide(program, mergedLayer)) // => "result"
1477
1569
  * ```
1478
1570
  *
1479
1571
  * @see {@link mergeAll} for merging several layers at once
@@ -1499,7 +1591,7 @@ export declare const merge: {
1499
1591
  *
1500
1592
  * **Example** (Merging two layers)
1501
1593
  *
1502
- * ```ts
1594
+ * ```ts import.meta.vitest
1503
1595
  * import { Context, Effect, Layer } from "effect"
1504
1596
  *
1505
1597
  * class Database extends Context.Service<Database, {
@@ -1514,10 +1606,12 @@ export declare const merge: {
1514
1606
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
1515
1607
  * })
1516
1608
  * const loggerLayer = Layer.succeed(Logger, {
1517
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
1609
+ * log: Effect.fn("Logger.log")((_msg: string) => Effect.void)
1518
1610
  * })
1519
1611
  *
1520
1612
  * const mergedLayer = Layer.merge(dbLayer, loggerLayer)
1613
+ * const program = Database.use((database) => database.query("SELECT 1"))
1614
+ * Effect.runSync(Effect.provide(program, mergedLayer)) // => "result"
1521
1615
  * ```
1522
1616
  *
1523
1617
  * @see {@link mergeAll} for merging several layers at once
@@ -1542,7 +1636,7 @@ export declare const merge: {
1542
1636
  *
1543
1637
  * **Example** (Providing layer dependencies)
1544
1638
  *
1545
- * ```ts
1639
+ * ```ts import.meta.vitest
1546
1640
  * import { Context, Effect, Layer } from "effect"
1547
1641
  *
1548
1642
  * class Database extends Context.Service<Database, {
@@ -1565,8 +1659,9 @@ export declare const merge: {
1565
1659
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
1566
1660
  * })
1567
1661
  *
1662
+ * const logs: Array<string> = []
1568
1663
  * const loggerLayer = Layer.succeed(Logger, {
1569
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
1664
+ * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(`[LOG] ${msg}`)))
1570
1665
  * })
1571
1666
  *
1572
1667
  * // UserService depends on Database and Logger
@@ -1597,6 +1692,8 @@ export declare const merge: {
1597
1692
  * }).pipe(
1598
1693
  * Effect.provide(userServiceWithDependencies)
1599
1694
  * )
1695
+ * Effect.runSync(program) // => { id: "123", name: "DB: SELECT * FROM users WHERE id = 123" }
1696
+ * logs // => ["[LOG] Looking up user 123"]
1600
1697
  * ```
1601
1698
  *
1602
1699
  * @see {@link provideMerge} for retaining the dependency services
@@ -1620,7 +1717,7 @@ export declare const provide: {
1620
1717
  *
1621
1718
  * **Example** (Providing layer dependencies)
1622
1719
  *
1623
- * ```ts
1720
+ * ```ts import.meta.vitest
1624
1721
  * import { Context, Effect, Layer } from "effect"
1625
1722
  *
1626
1723
  * class Database extends Context.Service<Database, {
@@ -1643,8 +1740,9 @@ export declare const provide: {
1643
1740
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
1644
1741
  * })
1645
1742
  *
1743
+ * const logs: Array<string> = []
1646
1744
  * const loggerLayer = Layer.succeed(Logger, {
1647
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
1745
+ * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(`[LOG] ${msg}`)))
1648
1746
  * })
1649
1747
  *
1650
1748
  * // UserService depends on Database and Logger
@@ -1675,6 +1773,8 @@ export declare const provide: {
1675
1773
  * }).pipe(
1676
1774
  * Effect.provide(userServiceWithDependencies)
1677
1775
  * )
1776
+ * Effect.runSync(program) // => { id: "123", name: "DB: SELECT * FROM users WHERE id = 123" }
1777
+ * logs // => ["[LOG] Looking up user 123"]
1678
1778
  * ```
1679
1779
  *
1680
1780
  * @see {@link provideMerge} for retaining the dependency services
@@ -1698,7 +1798,7 @@ export declare const provide: {
1698
1798
  *
1699
1799
  * **Example** (Providing layer dependencies)
1700
1800
  *
1701
- * ```ts
1801
+ * ```ts import.meta.vitest
1702
1802
  * import { Context, Effect, Layer } from "effect"
1703
1803
  *
1704
1804
  * class Database extends Context.Service<Database, {
@@ -1721,8 +1821,9 @@ export declare const provide: {
1721
1821
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
1722
1822
  * })
1723
1823
  *
1824
+ * const logs: Array<string> = []
1724
1825
  * const loggerLayer = Layer.succeed(Logger, {
1725
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
1826
+ * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(`[LOG] ${msg}`)))
1726
1827
  * })
1727
1828
  *
1728
1829
  * // UserService depends on Database and Logger
@@ -1753,6 +1854,8 @@ export declare const provide: {
1753
1854
  * }).pipe(
1754
1855
  * Effect.provide(userServiceWithDependencies)
1755
1856
  * )
1857
+ * Effect.runSync(program) // => { id: "123", name: "DB: SELECT * FROM users WHERE id = 123" }
1858
+ * logs // => ["[LOG] Looking up user 123"]
1756
1859
  * ```
1757
1860
  *
1758
1861
  * @see {@link provideMerge} for retaining the dependency services
@@ -1776,7 +1879,7 @@ export declare const provide: {
1776
1879
  *
1777
1880
  * **Example** (Providing layer dependencies)
1778
1881
  *
1779
- * ```ts
1882
+ * ```ts import.meta.vitest
1780
1883
  * import { Context, Effect, Layer } from "effect"
1781
1884
  *
1782
1885
  * class Database extends Context.Service<Database, {
@@ -1799,8 +1902,9 @@ export declare const provide: {
1799
1902
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
1800
1903
  * })
1801
1904
  *
1905
+ * const logs: Array<string> = []
1802
1906
  * const loggerLayer = Layer.succeed(Logger, {
1803
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
1907
+ * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(`[LOG] ${msg}`)))
1804
1908
  * })
1805
1909
  *
1806
1910
  * // UserService depends on Database and Logger
@@ -1831,6 +1935,8 @@ export declare const provide: {
1831
1935
  * }).pipe(
1832
1936
  * Effect.provide(userServiceWithDependencies)
1833
1937
  * )
1938
+ * Effect.runSync(program) // => { id: "123", name: "DB: SELECT * FROM users WHERE id = 123" }
1939
+ * logs // => ["[LOG] Looking up user 123"]
1834
1940
  * ```
1835
1941
  *
1836
1942
  * @see {@link provideMerge} for retaining the dependency services
@@ -1854,7 +1960,7 @@ export declare const provide: {
1854
1960
  *
1855
1961
  * **Example** (Providing layer dependencies)
1856
1962
  *
1857
- * ```ts
1963
+ * ```ts import.meta.vitest
1858
1964
  * import { Context, Effect, Layer } from "effect"
1859
1965
  *
1860
1966
  * class Database extends Context.Service<Database, {
@@ -1877,8 +1983,9 @@ export declare const provide: {
1877
1983
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
1878
1984
  * })
1879
1985
  *
1986
+ * const logs: Array<string> = []
1880
1987
  * const loggerLayer = Layer.succeed(Logger, {
1881
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
1988
+ * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(`[LOG] ${msg}`)))
1882
1989
  * })
1883
1990
  *
1884
1991
  * // UserService depends on Database and Logger
@@ -1909,6 +2016,8 @@ export declare const provide: {
1909
2016
  * }).pipe(
1910
2017
  * Effect.provide(userServiceWithDependencies)
1911
2018
  * )
2019
+ * Effect.runSync(program) // => { id: "123", name: "DB: SELECT * FROM users WHERE id = 123" }
2020
+ * logs // => ["[LOG] Looking up user 123"]
1912
2021
  * ```
1913
2022
  *
1914
2023
  * @see {@link provideMerge} for retaining the dependency services
@@ -1933,7 +2042,7 @@ export declare const provide: {
1933
2042
  *
1934
2043
  * **Example** (Providing dependencies while retaining services)
1935
2044
  *
1936
- * ```ts
2045
+ * ```ts import.meta.vitest
1937
2046
  * import { Context, Effect, Layer } from "effect"
1938
2047
  *
1939
2048
  * class Database extends Context.Service<Database, {
@@ -1956,8 +2065,9 @@ export declare const provide: {
1956
2065
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
1957
2066
  * })
1958
2067
  *
2068
+ * const logs: Array<string> = []
1959
2069
  * const loggerLayer = Layer.succeed(Logger, {
1960
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
2070
+ * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(`[LOG] ${msg}`)))
1961
2071
  * })
1962
2072
  *
1963
2073
  * // UserService depends on Database and Logger
@@ -1994,6 +2104,8 @@ export declare const provide: {
1994
2104
  * }).pipe(
1995
2105
  * Effect.provide(allServicesLayer)
1996
2106
  * )
2107
+ * Effect.runSync(program) // => { id: "123", name: "DB: SELECT * FROM users WHERE id = 123" }
2108
+ * logs // => ["[LOG] Looking up user 123", "[LOG] Found user: DB: SELECT * FROM users WHERE id = 123"]
1997
2109
  * ```
1998
2110
  *
1999
2111
  * @see {@link provide} for keeping dependency services private
@@ -2017,7 +2129,7 @@ export declare const provideMerge: {
2017
2129
  *
2018
2130
  * **Example** (Providing dependencies while retaining services)
2019
2131
  *
2020
- * ```ts
2132
+ * ```ts import.meta.vitest
2021
2133
  * import { Context, Effect, Layer } from "effect"
2022
2134
  *
2023
2135
  * class Database extends Context.Service<Database, {
@@ -2040,8 +2152,9 @@ export declare const provideMerge: {
2040
2152
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
2041
2153
  * })
2042
2154
  *
2155
+ * const logs: Array<string> = []
2043
2156
  * const loggerLayer = Layer.succeed(Logger, {
2044
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
2157
+ * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(`[LOG] ${msg}`)))
2045
2158
  * })
2046
2159
  *
2047
2160
  * // UserService depends on Database and Logger
@@ -2078,6 +2191,8 @@ export declare const provideMerge: {
2078
2191
  * }).pipe(
2079
2192
  * Effect.provide(allServicesLayer)
2080
2193
  * )
2194
+ * Effect.runSync(program) // => { id: "123", name: "DB: SELECT * FROM users WHERE id = 123" }
2195
+ * logs // => ["[LOG] Looking up user 123", "[LOG] Found user: DB: SELECT * FROM users WHERE id = 123"]
2081
2196
  * ```
2082
2197
  *
2083
2198
  * @see {@link provide} for keeping dependency services private
@@ -2101,7 +2216,7 @@ export declare const provideMerge: {
2101
2216
  *
2102
2217
  * **Example** (Providing dependencies while retaining services)
2103
2218
  *
2104
- * ```ts
2219
+ * ```ts import.meta.vitest
2105
2220
  * import { Context, Effect, Layer } from "effect"
2106
2221
  *
2107
2222
  * class Database extends Context.Service<Database, {
@@ -2124,8 +2239,9 @@ export declare const provideMerge: {
2124
2239
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
2125
2240
  * })
2126
2241
  *
2242
+ * const logs: Array<string> = []
2127
2243
  * const loggerLayer = Layer.succeed(Logger, {
2128
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
2244
+ * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(`[LOG] ${msg}`)))
2129
2245
  * })
2130
2246
  *
2131
2247
  * // UserService depends on Database and Logger
@@ -2162,6 +2278,8 @@ export declare const provideMerge: {
2162
2278
  * }).pipe(
2163
2279
  * Effect.provide(allServicesLayer)
2164
2280
  * )
2281
+ * Effect.runSync(program) // => { id: "123", name: "DB: SELECT * FROM users WHERE id = 123" }
2282
+ * logs // => ["[LOG] Looking up user 123", "[LOG] Found user: DB: SELECT * FROM users WHERE id = 123"]
2165
2283
  * ```
2166
2284
  *
2167
2285
  * @see {@link provide} for keeping dependency services private
@@ -2185,7 +2303,7 @@ export declare const provideMerge: {
2185
2303
  *
2186
2304
  * **Example** (Providing dependencies while retaining services)
2187
2305
  *
2188
- * ```ts
2306
+ * ```ts import.meta.vitest
2189
2307
  * import { Context, Effect, Layer } from "effect"
2190
2308
  *
2191
2309
  * class Database extends Context.Service<Database, {
@@ -2208,8 +2326,9 @@ export declare const provideMerge: {
2208
2326
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
2209
2327
  * })
2210
2328
  *
2329
+ * const logs: Array<string> = []
2211
2330
  * const loggerLayer = Layer.succeed(Logger, {
2212
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
2331
+ * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(`[LOG] ${msg}`)))
2213
2332
  * })
2214
2333
  *
2215
2334
  * // UserService depends on Database and Logger
@@ -2246,6 +2365,8 @@ export declare const provideMerge: {
2246
2365
  * }).pipe(
2247
2366
  * Effect.provide(allServicesLayer)
2248
2367
  * )
2368
+ * Effect.runSync(program) // => { id: "123", name: "DB: SELECT * FROM users WHERE id = 123" }
2369
+ * logs // => ["[LOG] Looking up user 123", "[LOG] Found user: DB: SELECT * FROM users WHERE id = 123"]
2249
2370
  * ```
2250
2371
  *
2251
2372
  * @see {@link provide} for keeping dependency services private
@@ -2269,7 +2390,7 @@ export declare const provideMerge: {
2269
2390
  *
2270
2391
  * **Example** (Providing dependencies while retaining services)
2271
2392
  *
2272
- * ```ts
2393
+ * ```ts import.meta.vitest
2273
2394
  * import { Context, Effect, Layer } from "effect"
2274
2395
  *
2275
2396
  * class Database extends Context.Service<Database, {
@@ -2292,8 +2413,9 @@ export declare const provideMerge: {
2292
2413
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
2293
2414
  * })
2294
2415
  *
2416
+ * const logs: Array<string> = []
2295
2417
  * const loggerLayer = Layer.succeed(Logger, {
2296
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
2418
+ * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(`[LOG] ${msg}`)))
2297
2419
  * })
2298
2420
  *
2299
2421
  * // UserService depends on Database and Logger
@@ -2330,6 +2452,8 @@ export declare const provideMerge: {
2330
2452
  * }).pipe(
2331
2453
  * Effect.provide(allServicesLayer)
2332
2454
  * )
2455
+ * Effect.runSync(program) // => { id: "123", name: "DB: SELECT * FROM users WHERE id = 123" }
2456
+ * logs // => ["[LOG] Looking up user 123", "[LOG] Found user: DB: SELECT * FROM users WHERE id = 123"]
2333
2457
  * ```
2334
2458
  *
2335
2459
  * @see {@link provide} for keeping dependency services private
@@ -2344,7 +2468,7 @@ export declare const provideMerge: {
2344
2468
  *
2345
2469
  * **Example** (Creating services from layer output)
2346
2470
  *
2347
- * ```ts
2471
+ * ```ts import.meta.vitest
2348
2472
  * import { Context, Effect, Layer } from "effect"
2349
2473
  *
2350
2474
  * class Config extends Context.Service<Config, {
@@ -2360,6 +2484,8 @@ export declare const provideMerge: {
2360
2484
  * readonly log: (msg: string) => Effect.Effect<void>
2361
2485
  * }>()("Logger") {}
2362
2486
  *
2487
+ * const logs: Array<string> = []
2488
+ *
2363
2489
  * // Base config layer
2364
2490
  * const configLayer = Layer.succeed(Config, {
2365
2491
  * dbUrl: "postgres://localhost:5432/mydb",
@@ -2383,8 +2509,8 @@ export declare const provideMerge: {
2383
2509
  * const loggerLayer = Layer.succeed(Logger, {
2384
2510
  * log: Effect.fn("Logger.log")((msg: string) =>
2385
2511
  * config.logLevel === "debug"
2386
- * ? Effect.sync(() => console.log(`[DEBUG] ${msg}`))
2387
- * : Effect.sync(() => console.log(msg))
2512
+ * ? Effect.sync(() => logs.push(`[DEBUG] ${msg}`))
2513
+ * : Effect.sync(() => logs.push(msg))
2388
2514
  * )
2389
2515
  * })
2390
2516
  *
@@ -2405,6 +2531,8 @@ export declare const provideMerge: {
2405
2531
  * }).pipe(
2406
2532
  * Effect.provide(dynamicServiceLayer)
2407
2533
  * )
2534
+ * Effect.runSync(program) // => "Querying postgres://localhost:5432/mydb: SELECT * FROM users"
2535
+ * logs // => ["[DEBUG] Starting database query"]
2408
2536
  * ```
2409
2537
  *
2410
2538
  * @category sequencing
@@ -2416,7 +2544,7 @@ export declare const flatMap: {
2416
2544
  *
2417
2545
  * **Example** (Creating services from layer output)
2418
2546
  *
2419
- * ```ts
2547
+ * ```ts import.meta.vitest
2420
2548
  * import { Context, Effect, Layer } from "effect"
2421
2549
  *
2422
2550
  * class Config extends Context.Service<Config, {
@@ -2432,6 +2560,8 @@ export declare const flatMap: {
2432
2560
  * readonly log: (msg: string) => Effect.Effect<void>
2433
2561
  * }>()("Logger") {}
2434
2562
  *
2563
+ * const logs: Array<string> = []
2564
+ *
2435
2565
  * // Base config layer
2436
2566
  * const configLayer = Layer.succeed(Config, {
2437
2567
  * dbUrl: "postgres://localhost:5432/mydb",
@@ -2455,8 +2585,8 @@ export declare const flatMap: {
2455
2585
  * const loggerLayer = Layer.succeed(Logger, {
2456
2586
  * log: Effect.fn("Logger.log")((msg: string) =>
2457
2587
  * config.logLevel === "debug"
2458
- * ? Effect.sync(() => console.log(`[DEBUG] ${msg}`))
2459
- * : Effect.sync(() => console.log(msg))
2588
+ * ? Effect.sync(() => logs.push(`[DEBUG] ${msg}`))
2589
+ * : Effect.sync(() => logs.push(msg))
2460
2590
  * )
2461
2591
  * })
2462
2592
  *
@@ -2477,6 +2607,8 @@ export declare const flatMap: {
2477
2607
  * }).pipe(
2478
2608
  * Effect.provide(dynamicServiceLayer)
2479
2609
  * )
2610
+ * Effect.runSync(program) // => "Querying postgres://localhost:5432/mydb: SELECT * FROM users"
2611
+ * logs // => ["[DEBUG] Starting database query"]
2480
2612
  * ```
2481
2613
  *
2482
2614
  * @category sequencing
@@ -2488,7 +2620,7 @@ export declare const flatMap: {
2488
2620
  *
2489
2621
  * **Example** (Creating services from layer output)
2490
2622
  *
2491
- * ```ts
2623
+ * ```ts import.meta.vitest
2492
2624
  * import { Context, Effect, Layer } from "effect"
2493
2625
  *
2494
2626
  * class Config extends Context.Service<Config, {
@@ -2504,6 +2636,8 @@ export declare const flatMap: {
2504
2636
  * readonly log: (msg: string) => Effect.Effect<void>
2505
2637
  * }>()("Logger") {}
2506
2638
  *
2639
+ * const logs: Array<string> = []
2640
+ *
2507
2641
  * // Base config layer
2508
2642
  * const configLayer = Layer.succeed(Config, {
2509
2643
  * dbUrl: "postgres://localhost:5432/mydb",
@@ -2527,8 +2661,8 @@ export declare const flatMap: {
2527
2661
  * const loggerLayer = Layer.succeed(Logger, {
2528
2662
  * log: Effect.fn("Logger.log")((msg: string) =>
2529
2663
  * config.logLevel === "debug"
2530
- * ? Effect.sync(() => console.log(`[DEBUG] ${msg}`))
2531
- * : Effect.sync(() => console.log(msg))
2664
+ * ? Effect.sync(() => logs.push(`[DEBUG] ${msg}`))
2665
+ * : Effect.sync(() => logs.push(msg))
2532
2666
  * )
2533
2667
  * })
2534
2668
  *
@@ -2549,6 +2683,8 @@ export declare const flatMap: {
2549
2683
  * }).pipe(
2550
2684
  * Effect.provide(dynamicServiceLayer)
2551
2685
  * )
2686
+ * Effect.runSync(program) // => "Querying postgres://localhost:5432/mydb: SELECT * FROM users"
2687
+ * logs // => ["[DEBUG] Starting database query"]
2552
2688
  * ```
2553
2689
  *
2554
2690
  * @category sequencing
@@ -2762,8 +2898,8 @@ export declare const tapCause: {
2762
2898
  *
2763
2899
  * **Example** (Converting layer failures to defects)
2764
2900
  *
2765
- * ```ts
2766
- * import { Context, Data, Effect, Layer } from "effect"
2901
+ * ```ts import.meta.vitest
2902
+ * import { Context, Data, Effect, Exit, Layer } from "effect"
2767
2903
  *
2768
2904
  * class DatabaseError extends Data.TaggedError("DatabaseError")<{
2769
2905
  * message: string
@@ -2774,10 +2910,11 @@ export declare const tapCause: {
2774
2910
  * }>()("Database") {}
2775
2911
  *
2776
2912
  * // Layer that can fail during construction
2777
- * const flakyDatabaseLayer = Layer.effect(Database, Effect.gen(function*() {
2778
- * console.log("connecting")
2779
- * return yield* new DatabaseError({ message: "Connection failed" })
2780
- * }))
2913
+ * const error = new DatabaseError({ message: "Connection failed" })
2914
+ * const flakyDatabaseLayer = Layer.effect(
2915
+ * Database,
2916
+ * Effect.fail(error)
2917
+ * )
2781
2918
  *
2782
2919
  * // Convert failures to fiber death - removes error from type
2783
2920
  * const reliableDatabaseLayer = flakyDatabaseLayer.pipe(Layer.orDie)
@@ -2790,8 +2927,7 @@ export declare const tapCause: {
2790
2927
  * Effect.provide(reliableDatabaseLayer)
2791
2928
  * )
2792
2929
  *
2793
- * // Running the program prints "connecting", then the DatabaseError is
2794
- * // converted into a fiber defect instead of remaining a typed error.
2930
+ * Effect.runSync(Effect.exit(program)) // => Exit.die(error)
2795
2931
  * ```
2796
2932
  *
2797
2933
  * @category error handling
@@ -2827,7 +2963,7 @@ catch_ as catch };
2827
2963
  *
2828
2964
  * **Example** (Recovering from tagged layer errors)
2829
2965
  *
2830
- * ```ts
2966
+ * ```ts import.meta.vitest
2831
2967
  * import { Context, Data, Effect, Layer } from "effect"
2832
2968
  *
2833
2969
  * class ConfigError extends Data.TaggedError("ConfigError") {}
@@ -2843,6 +2979,8 @@ catch_ as catch };
2843
2979
  * const recovered = configLayer.pipe(
2844
2980
  * Layer.catchTag("ConfigError", () => fallbackLayer)
2845
2981
  * )
2982
+ * const program = Config.useSync((config) => config.apiUrl)
2983
+ * Effect.runSync(Effect.provide(program, recovered)) // => "http://localhost"
2846
2984
  * ```
2847
2985
  *
2848
2986
  * @see {@link catchCause} for recovering with access to the full cause
@@ -2860,7 +2998,7 @@ export declare const catchTag: {
2860
2998
  *
2861
2999
  * **Example** (Recovering from tagged layer errors)
2862
3000
  *
2863
- * ```ts
3001
+ * ```ts import.meta.vitest
2864
3002
  * import { Context, Data, Effect, Layer } from "effect"
2865
3003
  *
2866
3004
  * class ConfigError extends Data.TaggedError("ConfigError") {}
@@ -2876,6 +3014,8 @@ export declare const catchTag: {
2876
3014
  * const recovered = configLayer.pipe(
2877
3015
  * Layer.catchTag("ConfigError", () => fallbackLayer)
2878
3016
  * )
3017
+ * const program = Config.useSync((config) => config.apiUrl)
3018
+ * Effect.runSync(Effect.provide(program, recovered)) // => "http://localhost"
2879
3019
  * ```
2880
3020
  *
2881
3021
  * @see {@link catchCause} for recovering with access to the full cause
@@ -2893,7 +3033,7 @@ export declare const catchTag: {
2893
3033
  *
2894
3034
  * **Example** (Recovering from tagged layer errors)
2895
3035
  *
2896
- * ```ts
3036
+ * ```ts import.meta.vitest
2897
3037
  * import { Context, Data, Effect, Layer } from "effect"
2898
3038
  *
2899
3039
  * class ConfigError extends Data.TaggedError("ConfigError") {}
@@ -2909,6 +3049,8 @@ export declare const catchTag: {
2909
3049
  * const recovered = configLayer.pipe(
2910
3050
  * Layer.catchTag("ConfigError", () => fallbackLayer)
2911
3051
  * )
3052
+ * const program = Config.useSync((config) => config.apiUrl)
3053
+ * Effect.runSync(Effect.provide(program, recovered)) // => "http://localhost"
2912
3054
  * ```
2913
3055
  *
2914
3056
  * @see {@link catchCause} for recovering with access to the full cause
@@ -2935,7 +3077,7 @@ export declare const catchTag: {
2935
3077
  *
2936
3078
  * **Example** (Recovering from layer failures by cause)
2937
3079
  *
2938
- * ```ts
3080
+ * ```ts import.meta.vitest
2939
3081
  * import { Context, Data, Effect, Layer } from "effect"
2940
3082
  *
2941
3083
  * class DatabaseError extends Data.TaggedError("DatabaseError")<{
@@ -2960,14 +3102,12 @@ export declare const catchTag: {
2960
3102
  *
2961
3103
  * const program = Effect.gen(function*() {
2962
3104
  * const database = yield* Database
2963
- * const result = yield* database.query("SELECT * FROM users")
2964
- * console.log(result)
3105
+ * return yield* database.query("SELECT * FROM users")
2965
3106
  * }).pipe(
2966
3107
  * Effect.provide(databaseWithFallback)
2967
3108
  * )
2968
3109
  *
2969
- * Effect.runPromise(program)
2970
- * // Memory: SELECT * FROM users
3110
+ * await Effect.runPromise(program) // => "Memory: SELECT * FROM users"
2971
3111
  * ```
2972
3112
  *
2973
3113
  * @see {@link catchTag} for recovering from specific tagged errors
@@ -2993,7 +3133,7 @@ export declare const catchCause: {
2993
3133
  *
2994
3134
  * **Example** (Recovering from layer failures by cause)
2995
3135
  *
2996
- * ```ts
3136
+ * ```ts import.meta.vitest
2997
3137
  * import { Context, Data, Effect, Layer } from "effect"
2998
3138
  *
2999
3139
  * class DatabaseError extends Data.TaggedError("DatabaseError")<{
@@ -3018,14 +3158,12 @@ export declare const catchCause: {
3018
3158
  *
3019
3159
  * const program = Effect.gen(function*() {
3020
3160
  * const database = yield* Database
3021
- * const result = yield* database.query("SELECT * FROM users")
3022
- * console.log(result)
3161
+ * return yield* database.query("SELECT * FROM users")
3023
3162
  * }).pipe(
3024
3163
  * Effect.provide(databaseWithFallback)
3025
3164
  * )
3026
3165
  *
3027
- * Effect.runPromise(program)
3028
- * // Memory: SELECT * FROM users
3166
+ * await Effect.runPromise(program) // => "Memory: SELECT * FROM users"
3029
3167
  * ```
3030
3168
  *
3031
3169
  * @see {@link catchTag} for recovering from specific tagged errors
@@ -3051,7 +3189,7 @@ export declare const catchCause: {
3051
3189
  *
3052
3190
  * **Example** (Recovering from layer failures by cause)
3053
3191
  *
3054
- * ```ts
3192
+ * ```ts import.meta.vitest
3055
3193
  * import { Context, Data, Effect, Layer } from "effect"
3056
3194
  *
3057
3195
  * class DatabaseError extends Data.TaggedError("DatabaseError")<{
@@ -3076,14 +3214,12 @@ export declare const catchCause: {
3076
3214
  *
3077
3215
  * const program = Effect.gen(function*() {
3078
3216
  * const database = yield* Database
3079
- * const result = yield* database.query("SELECT * FROM users")
3080
- * console.log(result)
3217
+ * return yield* database.query("SELECT * FROM users")
3081
3218
  * }).pipe(
3082
3219
  * Effect.provide(databaseWithFallback)
3083
3220
  * )
3084
3221
  *
3085
- * Effect.runPromise(program)
3086
- * // Memory: SELECT * FROM users
3222
+ * await Effect.runPromise(program) // => "Memory: SELECT * FROM users"
3087
3223
  * ```
3088
3224
  *
3089
3225
  * @see {@link catchTag} for recovering from specific tagged errors
@@ -3166,7 +3302,7 @@ export declare const updateService: {
3166
3302
  *
3167
3303
  * **Example** (Creating non-shared layer instances)
3168
3304
  *
3169
- * ```ts
3305
+ * ```ts import.meta.vitest
3170
3306
  * import { Context, Effect, Layer, Ref } from "effect"
3171
3307
  *
3172
3308
  * class Counter extends Context.Service<Counter, {
@@ -3191,10 +3327,10 @@ export declare const updateService: {
3191
3327
  * return { counterId: counter.id }
3192
3328
  * }))
3193
3329
  *
3194
- * const showIds = Effect.gen(function*() {
3330
+ * const compareIds = Effect.gen(function*() {
3195
3331
  * const left = yield* Left
3196
3332
  * const right = yield* Right
3197
- * console.log(`same Counter: ${left.counterId === right.counterId}`)
3333
+ * return left.counterId === right.counterId
3198
3334
  * })
3199
3335
  *
3200
3336
  * const program = Effect.gen(function*() {
@@ -3202,7 +3338,6 @@ export declare const updateService: {
3202
3338
  *
3203
3339
  * const counterLayer = Layer.effect(Counter, Effect.gen(function*() {
3204
3340
  * const id = yield* Ref.updateAndGet(nextId, (n) => n + 1)
3205
- * console.log("constructed Counter")
3206
3341
  * return { id }
3207
3342
  * }))
3208
3343
  *
@@ -3211,7 +3346,7 @@ export declare const updateService: {
3211
3346
  * Layer.provide(rightLayer, counterLayer)
3212
3347
  * )
3213
3348
  *
3214
- * yield* Effect.provide(showIds, shared)
3349
+ * const sharedResult = yield* Effect.provide(compareIds, shared)
3215
3350
  *
3216
3351
  * const freshCounterLayer = Layer.fresh(counterLayer)
3217
3352
  * const fresh = Layer.merge(
@@ -3219,15 +3354,12 @@ export declare const updateService: {
3219
3354
  * Layer.provide(rightLayer, freshCounterLayer)
3220
3355
  * )
3221
3356
  *
3222
- * yield* Effect.provide(showIds, fresh)
3357
+ * const freshResult = yield* Effect.provide(compareIds, fresh)
3358
+ *
3359
+ * return { shared: sharedResult, fresh: freshResult }
3223
3360
  * })
3224
3361
  *
3225
- * Effect.runPromise(program)
3226
- * // constructed Counter
3227
- * // same Counter: true
3228
- * // constructed Counter
3229
- * // constructed Counter
3230
- * // same Counter: false
3362
+ * await Effect.runPromise(program) // => { shared: true, fresh: false }
3231
3363
  * ```
3232
3364
  *
3233
3365
  * @category layers
@@ -3249,50 +3381,30 @@ export declare const fresh: <A, E, R>(self: Layer<A, E, R>) => Layer<A, E, R>;
3249
3381
  *
3250
3382
  * **Example** (Launching an application layer)
3251
3383
  *
3252
- * ```ts
3253
- * import { Console, Context, Effect, Layer } from "effect"
3384
+ * ```ts import.meta.vitest
3385
+ * import { Context, Deferred, Effect, Fiber, Layer, Ref } from "effect"
3254
3386
  *
3255
3387
  * class HttpServer extends Context.Service<HttpServer, {
3256
- * readonly start: () => Effect.Effect<string>
3257
- * readonly stop: () => Effect.Effect<string>
3388
+ * readonly port: number
3258
3389
  * }>()("HttpServer") {}
3259
3390
  *
3260
- * class Logger extends Context.Service<Logger, {
3261
- * readonly log: (msg: string) => Effect.Effect<void>
3262
- * }>()("Logger") {}
3263
- *
3264
- * // Server layer that starts an HTTP server
3265
- * const serverLayer = Layer.effect(HttpServer, Effect.gen(function*() {
3266
- * yield* Console.log("Starting HTTP server...")
3391
+ * const program = Effect.gen(function*() {
3392
+ * const events = yield* Ref.make<Array<string>>([])
3393
+ * const started = yield* Deferred.make<void>()
3267
3394
  *
3268
- * return {
3269
- * start: Effect.fn("HttpServer.start")(function*() {
3270
- * yield* Console.log("Server listening on port 3000")
3271
- * return "Server started"
3272
- * }),
3273
- * stop: Effect.fn("HttpServer.stop")(function*() {
3274
- * yield* Console.log("Server stopped gracefully")
3275
- * return "Server stopped"
3276
- * })
3277
- * }
3278
- * }))
3395
+ * const serverLayer = Layer.effect(HttpServer, Effect.gen(function*() {
3396
+ * yield* Ref.update(events, (events) => [...events, "Starting HTTP server..."])
3397
+ * yield* Deferred.succeed(started, undefined)
3398
+ * return { port: 3000 }
3399
+ * }))
3279
3400
  *
3280
- * const loggerLayer = Layer.succeed(Logger, {
3281
- * log: Effect.fn("Logger.log")((msg: string) => Console.log(`[LOG] ${msg}`))
3401
+ * const fiber = yield* Effect.forkChild(Layer.launch(serverLayer))
3402
+ * yield* Deferred.await(started)
3403
+ * yield* Fiber.interrupt(fiber)
3404
+ * return yield* Ref.get(events)
3282
3405
  * })
3283
3406
  *
3284
- * // Application layer combining all services
3285
- * const appLayer = Layer.mergeAll(serverLayer, loggerLayer)
3286
- *
3287
- * // Launch the application - runs until interrupted
3288
- * const application = appLayer.pipe(
3289
- * Layer.launch,
3290
- * Effect.tapError((error) => Console.log(`Application failed: ${error}`)),
3291
- * Effect.tap(() => Console.log("Application completed"))
3292
- * )
3293
- *
3294
- * // This will run forever until externally interrupted
3295
- * // Effect.runFork(application)
3407
+ * await Effect.runPromise(program) // => ["Starting HTTP server..."]
3296
3408
  * ```
3297
3409
  *
3298
3410
  * @category converting
@@ -3340,7 +3452,7 @@ type AnyEffectOrStream = Effect<any, any, any> | Stream.Stream<any, any, any> |
3340
3452
  *
3341
3453
  * **Example** (Mocking services for tests)
3342
3454
  *
3343
- * ```ts
3455
+ * ```ts import.meta.vitest
3344
3456
  * import { Context, Effect, Layer } from "effect"
3345
3457
  *
3346
3458
  * class UserService extends Context.Service<UserService, {
@@ -3368,13 +3480,15 @@ type AnyEffectOrStream = Effect<any, any, any> | Stream.Stream<any, any, any> |
3368
3480
  *
3369
3481
  * // This works - we provided an implementation
3370
3482
  * const user = yield* userService.getUser("123")
3371
- * console.log(user.name) // "Test User"
3372
3483
  *
3373
3484
  * // This would throw - we didn't implement deleteUser
3374
3485
  * // yield* userService.deleteUser("123") // UnimplementedError
3486
+ *
3487
+ * return user.name
3375
3488
  * }).pipe(
3376
3489
  * Effect.provide(testUserLayer)
3377
3490
  * )
3491
+ * Effect.runSync(testProgram) // => "Test User"
3378
3492
  * ```
3379
3493
  *
3380
3494
  * @category testing
@@ -3396,7 +3510,7 @@ export declare const mock: {
3396
3510
  *
3397
3511
  * **Example** (Mocking services for tests)
3398
3512
  *
3399
- * ```ts
3513
+ * ```ts import.meta.vitest
3400
3514
  * import { Context, Effect, Layer } from "effect"
3401
3515
  *
3402
3516
  * class UserService extends Context.Service<UserService, {
@@ -3424,13 +3538,15 @@ export declare const mock: {
3424
3538
  *
3425
3539
  * // This works - we provided an implementation
3426
3540
  * const user = yield* userService.getUser("123")
3427
- * console.log(user.name) // "Test User"
3428
3541
  *
3429
3542
  * // This would throw - we didn't implement deleteUser
3430
3543
  * // yield* userService.deleteUser("123") // UnimplementedError
3544
+ *
3545
+ * return user.name
3431
3546
  * }).pipe(
3432
3547
  * Effect.provide(testUserLayer)
3433
3548
  * )
3549
+ * Effect.runSync(testProgram) // => "Test User"
3434
3550
  * ```
3435
3551
  *
3436
3552
  * @category testing
@@ -3452,7 +3568,7 @@ export declare const mock: {
3452
3568
  *
3453
3569
  * **Example** (Mocking services for tests)
3454
3570
  *
3455
- * ```ts
3571
+ * ```ts import.meta.vitest
3456
3572
  * import { Context, Effect, Layer } from "effect"
3457
3573
  *
3458
3574
  * class UserService extends Context.Service<UserService, {
@@ -3480,13 +3596,15 @@ export declare const mock: {
3480
3596
  *
3481
3597
  * // This works - we provided an implementation
3482
3598
  * const user = yield* userService.getUser("123")
3483
- * console.log(user.name) // "Test User"
3484
3599
  *
3485
3600
  * // This would throw - we didn't implement deleteUser
3486
3601
  * // yield* userService.deleteUser("123") // UnimplementedError
3602
+ *
3603
+ * return user.name
3487
3604
  * }).pipe(
3488
3605
  * Effect.provide(testUserLayer)
3489
3606
  * )
3607
+ * Effect.runSync(testProgram) // => "Test User"
3490
3608
  * ```
3491
3609
  *
3492
3610
  * @category testing
@@ -3504,22 +3622,17 @@ export declare const mock: {
3504
3622
  *
3505
3623
  * **Example** (Constraining layer success types)
3506
3624
  *
3507
- * ```ts
3508
- * import { Layer } from "effect"
3625
+ * ```ts import.meta.vitest
3626
+ * import { Context, Layer } from "effect"
3509
3627
  *
3510
- * declare const FortyTwoLayer: Layer.Layer<42, never, never>
3511
- * declare const StringLayer: Layer.Layer<string, never, never>
3628
+ * const NumberService = Context.Service<number>("Number")
3629
+ * const numberLayer = Layer.succeed(NumberService, 42)
3512
3630
  *
3513
3631
  * // Define a constraint that the success type must be a number
3514
3632
  * const satisfiesNumber = Layer.satisfiesSuccessType<number>()
3515
3633
  *
3516
3634
  * // This works - Layer<42, never, never> extends Layer<number, never, never>
3517
- * const validLayer = satisfiesNumber(FortyTwoLayer)
3518
- *
3519
- * // This would cause a TypeScript compilation error:
3520
- * // const invalidLayer = satisfiesNumber(StringLayer)
3521
- * // ^^^^^^^^^^^
3522
- * // Type 'string' is not assignable to type 'number'
3635
+ * const validLayer = satisfiesNumber(numberLayer)
3523
3636
  * ```
3524
3637
  *
3525
3638
  * @category utility types
@@ -3536,23 +3649,16 @@ export declare const satisfiesSuccessType: <ROut>() => <ROut2 extends ROut, E, R
3536
3649
  *
3537
3650
  * **Example** (Constraining layer error types)
3538
3651
  *
3539
- * ```ts
3540
- * import { Layer } from "effect"
3652
+ * ```ts import.meta.vitest
3653
+ * import { Effect, Layer } from "effect"
3541
3654
  *
3542
- * declare const ErrorLayer: Layer.Layer<never, Error, never>
3543
- * declare const TypeErrorLayer: Layer.Layer<never, TypeError, never>
3544
- * declare const StringLayer: Layer.Layer<never, string, never>
3655
+ * const typeErrorLayer = Layer.effectDiscard(Effect.fail(new TypeError("boom")))
3545
3656
  *
3546
3657
  * // Define a constraint that the error type must be an Error
3547
3658
  * const satisfiesError = Layer.satisfiesErrorType<Error>()
3548
3659
  *
3549
3660
  * // This works - Layer<never, TypeError, never> extends Layer<never, Error, never>
3550
- * const validLayer = satisfiesError(TypeErrorLayer)
3551
- *
3552
- * // This would cause a TypeScript compilation error:
3553
- * // const invalidLayer = satisfiesError(StringLayer)
3554
- * // ^^^^^^^^^^^
3555
- * // Type 'string' is not assignable to type 'Error'
3661
+ * const validLayer = satisfiesError(typeErrorLayer)
3556
3662
  * ```
3557
3663
  *
3558
3664
  * @category utility types
@@ -3569,22 +3675,17 @@ export declare const satisfiesErrorType: <E>() => <ROut, E2 extends E, RIn>(laye
3569
3675
  *
3570
3676
  * **Example** (Constraining layer service requirements)
3571
3677
  *
3572
- * ```ts
3573
- * import { Layer } from "effect"
3678
+ * ```ts import.meta.vitest
3679
+ * import { Context, Effect, Layer } from "effect"
3574
3680
  *
3575
- * declare const FortyTwoLayer: Layer.Layer<never, never, 42>
3576
- * declare const StringLayer: Layer.Layer<never, never, string>
3681
+ * const NumberService = Context.Service<number>("Number")
3682
+ * const numberLayer = Layer.effectDiscard(Effect.asVoid(NumberService))
3577
3683
  *
3578
3684
  * // Define a constraint that the service requirements must be numbers
3579
3685
  * const satisfiesNumber = Layer.satisfiesServicesType<number>()
3580
3686
  *
3581
3687
  * // This works - Layer<never, never, 42> extends Layer<never, never, number>
3582
- * const validLayer = satisfiesNumber(FortyTwoLayer)
3583
- *
3584
- * // This would cause a TypeScript compilation error:
3585
- * // const invalidLayer = satisfiesNumber(StringLayer)
3586
- * // ^^^^^^^^^^^
3587
- * // Type 'string' is not assignable to type 'number'
3688
+ * const validLayer = satisfiesNumber(numberLayer)
3588
3689
  * ```
3589
3690
  *
3590
3691
  * @category utility types
@@ -3633,38 +3734,37 @@ export interface SpanOptions extends Tracer.SpanOptions {
3633
3734
  *
3634
3735
  * **Example** (Tracing layer construction with a span)
3635
3736
  *
3636
- * ```ts
3637
- * import { Console, Context, Effect, Layer } from "effect"
3737
+ * ```ts import.meta.vitest
3738
+ * import { Context, Effect, Layer } from "effect"
3638
3739
  * import type { Tracer } from "effect"
3639
3740
  *
3640
3741
  * class Database extends Context.Service<Database, {
3641
3742
  * readonly query: (sql: string) => Effect.Effect<string>
3642
3743
  * }>()("Database") {}
3643
3744
  *
3745
+ * const logs: Array<string> = []
3746
+ *
3644
3747
  * // Create a traced layer - all operations performed during construction of
3645
3748
  * // the `Database` service are part of the "database-init" span
3646
3749
  * const databaseLayer = Layer.effect(Database, Effect.gen(function*() {
3647
3750
  * // These operations are traced under "database-init" span
3648
- * yield* Effect.log("Connecting to database")
3649
- * yield* Effect.sleep("100 millis")
3650
- * yield* Effect.log("Database connected")
3751
+ * logs.push("Connecting to database")
3752
+ * logs.push("Database connected")
3651
3753
  *
3652
3754
  * const parentSpan = yield* Effect.currentParentSpan
3653
- * yield* Console.log((parentSpan as Tracer.Span).name) // "database-init"
3755
+ * logs.push((parentSpan as Tracer.Span).name)
3654
3756
  *
3655
3757
  * return {
3656
3758
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Result: ${sql}`))
3657
3759
  * }
3658
- * })).pipe(Layer.provide(Layer.span("database-init")))
3659
- *
3660
- * // Can also use the `onEnd` callback to execute logic when the span ends
3661
- * const tracedLayer = Layer.span("service-initialization", {
3662
- * attributes: { version: "1.0.0" },
3760
+ * })).pipe(Layer.provide(Layer.span("database-init", {
3663
3761
  * onEnd: (span, exit) =>
3664
- * Effect.sync(() => {
3665
- * console.log(`Span ${span.name} ended with:`, exit._tag)
3666
- * })
3667
- * })
3762
+ * Effect.sync(() => logs.push(`Span ${span.name} ended with: ${exit._tag}`))
3763
+ * })))
3764
+ *
3765
+ * const program = Database.use((database) => database.query("SELECT 1"))
3766
+ * Effect.runSync(Effect.provide(program, databaseLayer)) // => "Result: SELECT 1"
3767
+ * logs // => ["Connecting to database", "Database connected", "database-init", "Span database-init ended with: Success"]
3668
3768
  * ```
3669
3769
  *
3670
3770
  * @category tracing
@@ -3682,10 +3782,11 @@ export declare const span: (name: string, options?: SpanOptions) => Layer<Tracer
3682
3782
  *
3683
3783
  * **Example** (Referencing an existing parent span)
3684
3784
  *
3685
- * ```ts
3686
- * import { Console, Context, Effect, Layer, Tracer } from "effect"
3785
+ * ```ts import.meta.vitest
3786
+ * import { Context, Effect, Layer, Tracer } from "effect"
3687
3787
  *
3688
3788
  * class Database extends Context.Service<Database, {
3789
+ * readonly spanId: string
3689
3790
  * readonly query: (sql: string) => Effect.Effect<string>
3690
3791
  * }>()("Database") {}
3691
3792
  *
@@ -3693,12 +3794,10 @@ export declare const span: (name: string, options?: SpanOptions) => Layer<Tracer
3693
3794
  * const databaseLayer = Layer.effect(
3694
3795
  * Database,
3695
3796
  * Effect.gen(function*() {
3696
- * yield* Effect.log("Initializing database")
3697
- *
3698
3797
  * const parentSpan = yield* Effect.currentParentSpan
3699
- * yield* Console.log(parentSpan.spanId) // "42"
3700
3798
  *
3701
3799
  * return {
3800
+ * spanId: parentSpan.spanId,
3702
3801
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Result: ${sql}`))
3703
3802
  * }
3704
3803
  * })
@@ -3706,6 +3805,9 @@ export declare const span: (name: string, options?: SpanOptions) => Layer<Tracer
3706
3805
  * spanId: "42",
3707
3806
  * traceId: "000"
3708
3807
  * }))))
3808
+ * const program = Database.use((database) =>
3809
+ * Effect.map(database.query("SELECT 1"), (result) => ({ spanId: database.spanId, result })))
3810
+ * Effect.runSync(Effect.provide(program, databaseLayer)) // => { spanId: "42", result: "Result: SELECT 1" }
3709
3811
  * ```
3710
3812
  *
3711
3813
  * @category tracing
@@ -3724,7 +3826,7 @@ export declare const parentSpan: (span: Tracer.AnySpan) => Layer<Tracer.ParentSp
3724
3826
  *
3725
3827
  * **Example** (Wrapping a layer with a span)
3726
3828
  *
3727
- * ```ts
3829
+ * ```ts import.meta.vitest
3728
3830
  * import { Context, Effect, Layer } from "effect"
3729
3831
  *
3730
3832
  * class Database extends Context.Service<Database, {
@@ -3735,10 +3837,10 @@ export declare const parentSpan: (span: Tracer.AnySpan) => Layer<Tracer.ParentSp
3735
3837
  * readonly log: (msg: string) => Effect.Effect<void>
3736
3838
  * }>()("Logger") {}
3737
3839
  *
3840
+ * const logs: Array<string> = []
3841
+ *
3738
3842
  * // Create layers with tracing
3739
3843
  * const databaseLayer = Layer.effect(Database, Effect.gen(function*() {
3740
- * yield* Effect.log("Connecting to database")
3741
- * yield* Effect.sleep("100 millis")
3742
3844
  * return {
3743
3845
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Result: ${sql}`))
3744
3846
  * }
@@ -3747,16 +3849,14 @@ export declare const parentSpan: (span: Tracer.AnySpan) => Layer<Tracer.ParentSp
3747
3849
  * }))
3748
3850
  *
3749
3851
  * const loggerLayer = Layer.succeed(Logger, {
3750
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
3852
+ * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(msg)))
3751
3853
  * }).pipe(Layer.withSpan("logger-initialization"))
3752
3854
  *
3753
3855
  * // Combine traced layers
3754
3856
  * const appLayer = Layer.mergeAll(databaseLayer, loggerLayer).pipe(
3755
3857
  * Layer.withSpan("app-initialization", {
3756
3858
  * onEnd: (span, exit) =>
3757
- * Effect.sync(() => {
3758
- * console.log(`Application initialization completed: ${exit._tag}`)
3759
- * })
3859
+ * Effect.sync(() => logs.push(`Application initialization completed: ${exit._tag}`))
3760
3860
  * })
3761
3861
  * )
3762
3862
  *
@@ -3767,6 +3867,8 @@ export declare const parentSpan: (span: Tracer.AnySpan) => Layer<Tracer.ParentSp
3767
3867
  * yield* logger.log("Application ready")
3768
3868
  * return yield* database.query("SELECT * FROM users")
3769
3869
  * }).pipe(Effect.provide(appLayer))
3870
+ * Effect.runSync(program) // => "Result: SELECT * FROM users"
3871
+ * logs // => ["Application ready", "Application initialization completed: Success"]
3770
3872
  * ```
3771
3873
  *
3772
3874
  * @category tracing
@@ -3785,7 +3887,7 @@ export declare const withSpan: {
3785
3887
  *
3786
3888
  * **Example** (Wrapping a layer with a span)
3787
3889
  *
3788
- * ```ts
3890
+ * ```ts import.meta.vitest
3789
3891
  * import { Context, Effect, Layer } from "effect"
3790
3892
  *
3791
3893
  * class Database extends Context.Service<Database, {
@@ -3796,10 +3898,10 @@ export declare const withSpan: {
3796
3898
  * readonly log: (msg: string) => Effect.Effect<void>
3797
3899
  * }>()("Logger") {}
3798
3900
  *
3901
+ * const logs: Array<string> = []
3902
+ *
3799
3903
  * // Create layers with tracing
3800
3904
  * const databaseLayer = Layer.effect(Database, Effect.gen(function*() {
3801
- * yield* Effect.log("Connecting to database")
3802
- * yield* Effect.sleep("100 millis")
3803
3905
  * return {
3804
3906
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Result: ${sql}`))
3805
3907
  * }
@@ -3808,16 +3910,14 @@ export declare const withSpan: {
3808
3910
  * }))
3809
3911
  *
3810
3912
  * const loggerLayer = Layer.succeed(Logger, {
3811
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
3913
+ * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(msg)))
3812
3914
  * }).pipe(Layer.withSpan("logger-initialization"))
3813
3915
  *
3814
3916
  * // Combine traced layers
3815
3917
  * const appLayer = Layer.mergeAll(databaseLayer, loggerLayer).pipe(
3816
3918
  * Layer.withSpan("app-initialization", {
3817
3919
  * onEnd: (span, exit) =>
3818
- * Effect.sync(() => {
3819
- * console.log(`Application initialization completed: ${exit._tag}`)
3820
- * })
3920
+ * Effect.sync(() => logs.push(`Application initialization completed: ${exit._tag}`))
3821
3921
  * })
3822
3922
  * )
3823
3923
  *
@@ -3828,6 +3928,8 @@ export declare const withSpan: {
3828
3928
  * yield* logger.log("Application ready")
3829
3929
  * return yield* database.query("SELECT * FROM users")
3830
3930
  * }).pipe(Effect.provide(appLayer))
3931
+ * Effect.runSync(program) // => "Result: SELECT * FROM users"
3932
+ * logs // => ["Application ready", "Application initialization completed: Success"]
3831
3933
  * ```
3832
3934
  *
3833
3935
  * @category tracing
@@ -3846,7 +3948,7 @@ export declare const withSpan: {
3846
3948
  *
3847
3949
  * **Example** (Wrapping a layer with a span)
3848
3950
  *
3849
- * ```ts
3951
+ * ```ts import.meta.vitest
3850
3952
  * import { Context, Effect, Layer } from "effect"
3851
3953
  *
3852
3954
  * class Database extends Context.Service<Database, {
@@ -3857,10 +3959,10 @@ export declare const withSpan: {
3857
3959
  * readonly log: (msg: string) => Effect.Effect<void>
3858
3960
  * }>()("Logger") {}
3859
3961
  *
3962
+ * const logs: Array<string> = []
3963
+ *
3860
3964
  * // Create layers with tracing
3861
3965
  * const databaseLayer = Layer.effect(Database, Effect.gen(function*() {
3862
- * yield* Effect.log("Connecting to database")
3863
- * yield* Effect.sleep("100 millis")
3864
3966
  * return {
3865
3967
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Result: ${sql}`))
3866
3968
  * }
@@ -3869,16 +3971,14 @@ export declare const withSpan: {
3869
3971
  * }))
3870
3972
  *
3871
3973
  * const loggerLayer = Layer.succeed(Logger, {
3872
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
3974
+ * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(msg)))
3873
3975
  * }).pipe(Layer.withSpan("logger-initialization"))
3874
3976
  *
3875
3977
  * // Combine traced layers
3876
3978
  * const appLayer = Layer.mergeAll(databaseLayer, loggerLayer).pipe(
3877
3979
  * Layer.withSpan("app-initialization", {
3878
3980
  * onEnd: (span, exit) =>
3879
- * Effect.sync(() => {
3880
- * console.log(`Application initialization completed: ${exit._tag}`)
3881
- * })
3981
+ * Effect.sync(() => logs.push(`Application initialization completed: ${exit._tag}`))
3882
3982
  * })
3883
3983
  * )
3884
3984
  *
@@ -3889,6 +3989,8 @@ export declare const withSpan: {
3889
3989
  * yield* logger.log("Application ready")
3890
3990
  * return yield* database.query("SELECT * FROM users")
3891
3991
  * }).pipe(Effect.provide(appLayer))
3992
+ * Effect.runSync(program) // => "Result: SELECT * FROM users"
3993
+ * logs // => ["Application ready", "Application initialization completed: Success"]
3892
3994
  * ```
3893
3995
  *
3894
3996
  * @category tracing
@@ -3912,7 +4014,7 @@ export declare const withSpan: {
3912
4014
  *
3913
4015
  * **Example** (Attaching layers to an existing parent span)
3914
4016
  *
3915
- * ```ts
4017
+ * ```ts import.meta.vitest
3916
4018
  * import { Context, Effect, Layer, Tracer } from "effect"
3917
4019
  *
3918
4020
  * class Database extends Context.Service<Database, {
@@ -3925,14 +4027,12 @@ export declare const withSpan: {
3925
4027
  *
3926
4028
  * // Create layers
3927
4029
  * const DatabaseLayer = Layer.effect(Database, Effect.gen(function*() {
3928
- * yield* Effect.log("Connecting to database")
3929
4030
  * return {
3930
4031
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
3931
4032
  * }
3932
4033
  * }))
3933
4034
  *
3934
4035
  * const CacheLayer = Layer.effect(Cache, Effect.gen(function*() {
3935
- * yield* Effect.log("Connecting to cache")
3936
4036
  * return {
3937
4037
  * get: Effect.fn("Cache.get")((key: string) => Effect.succeed(`Cache: ${key}`))
3938
4038
  * }
@@ -3958,6 +4058,7 @@ export declare const withSpan: {
3958
4058
  * return { dbResult, cacheResult }
3959
4059
  * })
3960
4060
  * )
4061
+ * Effect.runSync(Effect.scoped(program)) // => { dbResult: "DB: SELECT * FROM users", cacheResult: "Cache: user:123" }
3961
4062
  * ```
3962
4063
  *
3963
4064
  * @category tracing
@@ -3980,7 +4081,7 @@ export declare const withParentSpan: {
3980
4081
  *
3981
4082
  * **Example** (Attaching layers to an existing parent span)
3982
4083
  *
3983
- * ```ts
4084
+ * ```ts import.meta.vitest
3984
4085
  * import { Context, Effect, Layer, Tracer } from "effect"
3985
4086
  *
3986
4087
  * class Database extends Context.Service<Database, {
@@ -3993,14 +4094,12 @@ export declare const withParentSpan: {
3993
4094
  *
3994
4095
  * // Create layers
3995
4096
  * const DatabaseLayer = Layer.effect(Database, Effect.gen(function*() {
3996
- * yield* Effect.log("Connecting to database")
3997
4097
  * return {
3998
4098
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
3999
4099
  * }
4000
4100
  * }))
4001
4101
  *
4002
4102
  * const CacheLayer = Layer.effect(Cache, Effect.gen(function*() {
4003
- * yield* Effect.log("Connecting to cache")
4004
4103
  * return {
4005
4104
  * get: Effect.fn("Cache.get")((key: string) => Effect.succeed(`Cache: ${key}`))
4006
4105
  * }
@@ -4026,6 +4125,7 @@ export declare const withParentSpan: {
4026
4125
  * return { dbResult, cacheResult }
4027
4126
  * })
4028
4127
  * )
4128
+ * Effect.runSync(Effect.scoped(program)) // => { dbResult: "DB: SELECT * FROM users", cacheResult: "Cache: user:123" }
4029
4129
  * ```
4030
4130
  *
4031
4131
  * @category tracing
@@ -4048,7 +4148,7 @@ export declare const withParentSpan: {
4048
4148
  *
4049
4149
  * **Example** (Attaching layers to an existing parent span)
4050
4150
  *
4051
- * ```ts
4151
+ * ```ts import.meta.vitest
4052
4152
  * import { Context, Effect, Layer, Tracer } from "effect"
4053
4153
  *
4054
4154
  * class Database extends Context.Service<Database, {
@@ -4061,14 +4161,12 @@ export declare const withParentSpan: {
4061
4161
  *
4062
4162
  * // Create layers
4063
4163
  * const DatabaseLayer = Layer.effect(Database, Effect.gen(function*() {
4064
- * yield* Effect.log("Connecting to database")
4065
4164
  * return {
4066
4165
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
4067
4166
  * }
4068
4167
  * }))
4069
4168
  *
4070
4169
  * const CacheLayer = Layer.effect(Cache, Effect.gen(function*() {
4071
- * yield* Effect.log("Connecting to cache")
4072
4170
  * return {
4073
4171
  * get: Effect.fn("Cache.get")((key: string) => Effect.succeed(`Cache: ${key}`))
4074
4172
  * }
@@ -4094,6 +4192,7 @@ export declare const withParentSpan: {
4094
4192
  * return { dbResult, cacheResult }
4095
4193
  * })
4096
4194
  * )
4195
+ * Effect.runSync(Effect.scoped(program)) // => { dbResult: "DB: SELECT * FROM users", cacheResult: "Cache: user:123" }
4097
4196
  * ```
4098
4197
  *
4099
4198
  * @category tracing