effect 4.0.0-beta.66 → 4.0.0-beta.68

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 (1767) hide show
  1. package/dist/Array.d.ts +151 -106
  2. package/dist/Array.d.ts.map +1 -1
  3. package/dist/Array.js +50 -40
  4. package/dist/Array.js.map +1 -1
  5. package/dist/BigDecimal.d.ts +620 -553
  6. package/dist/BigDecimal.d.ts.map +1 -1
  7. package/dist/BigDecimal.js +298 -254
  8. package/dist/BigDecimal.js.map +1 -1
  9. package/dist/BigInt.d.ts +342 -274
  10. package/dist/BigInt.d.ts.map +1 -1
  11. package/dist/BigInt.js +168 -126
  12. package/dist/BigInt.js.map +1 -1
  13. package/dist/Boolean.d.ts +189 -156
  14. package/dist/Boolean.d.ts.map +1 -1
  15. package/dist/Boolean.js +85 -68
  16. package/dist/Boolean.js.map +1 -1
  17. package/dist/Brand.d.ts +30 -5
  18. package/dist/Brand.d.ts.map +1 -1
  19. package/dist/Brand.js +19 -2
  20. package/dist/Brand.js.map +1 -1
  21. package/dist/Cache.d.ts +239 -135
  22. package/dist/Cache.d.ts.map +1 -1
  23. package/dist/Cache.js +135 -59
  24. package/dist/Cache.js.map +1 -1
  25. package/dist/Cause.d.ts +84 -73
  26. package/dist/Cause.d.ts.map +1 -1
  27. package/dist/Cause.js +51 -44
  28. package/dist/Cause.js.map +1 -1
  29. package/dist/Channel.d.ts +1568 -632
  30. package/dist/Channel.d.ts.map +1 -1
  31. package/dist/Channel.js +685 -315
  32. package/dist/Channel.js.map +1 -1
  33. package/dist/ChannelSchema.d.ts +119 -10
  34. package/dist/ChannelSchema.d.ts.map +1 -1
  35. package/dist/ChannelSchema.js +45 -6
  36. package/dist/ChannelSchema.js.map +1 -1
  37. package/dist/Chunk.d.ts +574 -428
  38. package/dist/Chunk.d.ts.map +1 -1
  39. package/dist/Chunk.js +250 -191
  40. package/dist/Chunk.js.map +1 -1
  41. package/dist/Clock.d.ts +16 -9
  42. package/dist/Clock.d.ts.map +1 -1
  43. package/dist/Clock.js +9 -5
  44. package/dist/Clock.js.map +1 -1
  45. package/dist/Combiner.d.ts +11 -5
  46. package/dist/Combiner.d.ts.map +1 -1
  47. package/dist/Combiner.js +10 -4
  48. package/dist/Combiner.js.map +1 -1
  49. package/dist/Config.d.ts +80 -68
  50. package/dist/Config.d.ts.map +1 -1
  51. package/dist/Config.js +53 -49
  52. package/dist/Config.js.map +1 -1
  53. package/dist/ConfigProvider.d.ts +33 -32
  54. package/dist/ConfigProvider.d.ts.map +1 -1
  55. package/dist/ConfigProvider.js +19 -18
  56. package/dist/ConfigProvider.js.map +1 -1
  57. package/dist/Console.d.ts +76 -50
  58. package/dist/Console.d.ts.map +1 -1
  59. package/dist/Console.js +69 -46
  60. package/dist/Console.js.map +1 -1
  61. package/dist/Context.d.ts +400 -189
  62. package/dist/Context.d.ts.map +1 -1
  63. package/dist/Context.js +143 -77
  64. package/dist/Context.js.map +1 -1
  65. package/dist/Cron.d.ts +67 -48
  66. package/dist/Cron.d.ts.map +1 -1
  67. package/dist/Cron.js +94 -36
  68. package/dist/Cron.js.map +1 -1
  69. package/dist/Crypto.d.ts +208 -0
  70. package/dist/Crypto.d.ts.map +1 -0
  71. package/dist/Crypto.js +157 -0
  72. package/dist/Crypto.js.map +1 -0
  73. package/dist/Data.d.ts +9 -3
  74. package/dist/Data.d.ts.map +1 -1
  75. package/dist/Data.js.map +1 -1
  76. package/dist/DateTime.d.ts +893 -464
  77. package/dist/DateTime.d.ts.map +1 -1
  78. package/dist/DateTime.js +387 -228
  79. package/dist/DateTime.js.map +1 -1
  80. package/dist/Deferred.d.ts +367 -175
  81. package/dist/Deferred.d.ts.map +1 -1
  82. package/dist/Deferred.js +146 -72
  83. package/dist/Deferred.js.map +1 -1
  84. package/dist/Differ.d.ts +44 -2
  85. package/dist/Differ.d.ts.map +1 -1
  86. package/dist/Differ.js +36 -0
  87. package/dist/Duration.d.ts +333 -186
  88. package/dist/Duration.d.ts.map +1 -1
  89. package/dist/Duration.js +178 -107
  90. package/dist/Duration.js.map +1 -1
  91. package/dist/Effect.d.ts +2181 -2275
  92. package/dist/Effect.d.ts.map +1 -1
  93. package/dist/Effect.js +935 -850
  94. package/dist/Effect.js.map +1 -1
  95. package/dist/Effectable.d.ts +38 -3
  96. package/dist/Effectable.d.ts.map +1 -1
  97. package/dist/Effectable.js +3 -3
  98. package/dist/Effectable.js.map +1 -1
  99. package/dist/Encoding.d.ts +78 -28
  100. package/dist/Encoding.d.ts.map +1 -1
  101. package/dist/Encoding.js +75 -27
  102. package/dist/Encoding.js.map +1 -1
  103. package/dist/Equal.d.ts +4 -3
  104. package/dist/Equal.d.ts.map +1 -1
  105. package/dist/Equal.js +4 -3
  106. package/dist/Equal.js.map +1 -1
  107. package/dist/Equivalence.d.ts +18 -24
  108. package/dist/Equivalence.d.ts.map +1 -1
  109. package/dist/Equivalence.js +16 -21
  110. package/dist/Equivalence.js.map +1 -1
  111. package/dist/ErrorReporter.d.ts +66 -82
  112. package/dist/ErrorReporter.d.ts.map +1 -1
  113. package/dist/ErrorReporter.js +38 -29
  114. package/dist/ErrorReporter.js.map +1 -1
  115. package/dist/ExecutionPlan.d.ts +106 -12
  116. package/dist/ExecutionPlan.d.ts.map +1 -1
  117. package/dist/ExecutionPlan.js +23 -6
  118. package/dist/ExecutionPlan.js.map +1 -1
  119. package/dist/Exit.d.ts +6 -5
  120. package/dist/Exit.d.ts.map +1 -1
  121. package/dist/Exit.js.map +1 -1
  122. package/dist/Fiber.d.ts +71 -40
  123. package/dist/Fiber.d.ts.map +1 -1
  124. package/dist/Fiber.js +39 -21
  125. package/dist/Fiber.js.map +1 -1
  126. package/dist/FiberHandle.d.ts +118 -57
  127. package/dist/FiberHandle.d.ts.map +1 -1
  128. package/dist/FiberHandle.js +121 -39
  129. package/dist/FiberHandle.js.map +1 -1
  130. package/dist/FiberMap.d.ts +287 -159
  131. package/dist/FiberMap.d.ts.map +1 -1
  132. package/dist/FiberMap.js +175 -73
  133. package/dist/FiberMap.js.map +1 -1
  134. package/dist/FiberSet.d.ts +93 -52
  135. package/dist/FiberSet.d.ts.map +1 -1
  136. package/dist/FiberSet.js +97 -34
  137. package/dist/FiberSet.js.map +1 -1
  138. package/dist/FileSystem.d.ts +102 -73
  139. package/dist/FileSystem.d.ts.map +1 -1
  140. package/dist/FileSystem.js +53 -39
  141. package/dist/FileSystem.js.map +1 -1
  142. package/dist/Filter.d.ts +166 -88
  143. package/dist/Filter.d.ts.map +1 -1
  144. package/dist/Filter.js +68 -42
  145. package/dist/Filter.js.map +1 -1
  146. package/dist/Formatter.d.ts +4 -2
  147. package/dist/Formatter.d.ts.map +1 -1
  148. package/dist/Formatter.js +3 -69
  149. package/dist/Formatter.js.map +1 -1
  150. package/dist/Function.d.ts +218 -151
  151. package/dist/Function.d.ts.map +1 -1
  152. package/dist/Function.js +94 -78
  153. package/dist/Function.js.map +1 -1
  154. package/dist/Graph.d.ts +714 -415
  155. package/dist/Graph.d.ts.map +1 -1
  156. package/dist/Graph.js +325 -182
  157. package/dist/Graph.js.map +1 -1
  158. package/dist/HKT.d.ts +29 -13
  159. package/dist/HKT.d.ts.map +1 -1
  160. package/dist/Hash.d.ts +35 -24
  161. package/dist/Hash.d.ts.map +1 -1
  162. package/dist/Hash.js +27 -17
  163. package/dist/Hash.js.map +1 -1
  164. package/dist/HashMap.d.ts +540 -388
  165. package/dist/HashMap.d.ts.map +1 -1
  166. package/dist/HashMap.js +262 -156
  167. package/dist/HashMap.js.map +1 -1
  168. package/dist/HashRing.d.ts +53 -34
  169. package/dist/HashRing.d.ts.map +1 -1
  170. package/dist/HashRing.js +83 -16
  171. package/dist/HashRing.js.map +1 -1
  172. package/dist/HashSet.d.ts +239 -153
  173. package/dist/HashSet.d.ts.map +1 -1
  174. package/dist/HashSet.js +110 -56
  175. package/dist/HashSet.js.map +1 -1
  176. package/dist/Inspectable.d.ts +26 -13
  177. package/dist/Inspectable.d.ts.map +1 -1
  178. package/dist/Inspectable.js +22 -10
  179. package/dist/Inspectable.js.map +1 -1
  180. package/dist/Iterable.d.ts +336 -222
  181. package/dist/Iterable.d.ts.map +1 -1
  182. package/dist/Iterable.js +146 -100
  183. package/dist/Iterable.js.map +1 -1
  184. package/dist/JsonPatch.d.ts +12 -9
  185. package/dist/JsonPatch.d.ts.map +1 -1
  186. package/dist/JsonPatch.js +9 -6
  187. package/dist/JsonPatch.js.map +1 -1
  188. package/dist/JsonPointer.d.ts +13 -11
  189. package/dist/JsonPointer.d.ts.map +1 -1
  190. package/dist/JsonPointer.js +13 -11
  191. package/dist/JsonPointer.js.map +1 -1
  192. package/dist/JsonSchema.d.ts +16 -0
  193. package/dist/JsonSchema.d.ts.map +1 -1
  194. package/dist/JsonSchema.js +10 -0
  195. package/dist/JsonSchema.js.map +1 -1
  196. package/dist/Latch.d.ts +97 -26
  197. package/dist/Latch.d.ts.map +1 -1
  198. package/dist/Latch.js +39 -20
  199. package/dist/Latch.js.map +1 -1
  200. package/dist/Layer.d.ts +472 -410
  201. package/dist/Layer.d.ts.map +1 -1
  202. package/dist/Layer.js +290 -226
  203. package/dist/Layer.js.map +1 -1
  204. package/dist/LayerMap.d.ts +99 -26
  205. package/dist/LayerMap.d.ts.map +1 -1
  206. package/dist/LayerMap.js +58 -14
  207. package/dist/LayerMap.js.map +1 -1
  208. package/dist/LogLevel.d.ts +92 -131
  209. package/dist/LogLevel.d.ts.map +1 -1
  210. package/dist/LogLevel.js +25 -15
  211. package/dist/LogLevel.js.map +1 -1
  212. package/dist/Logger.d.ts +159 -104
  213. package/dist/Logger.d.ts.map +1 -1
  214. package/dist/Logger.js +215 -189
  215. package/dist/Logger.js.map +1 -1
  216. package/dist/ManagedRuntime.d.ts +78 -19
  217. package/dist/ManagedRuntime.d.ts.map +1 -1
  218. package/dist/ManagedRuntime.js +24 -17
  219. package/dist/ManagedRuntime.js.map +1 -1
  220. package/dist/Match.d.ts +135 -161
  221. package/dist/Match.d.ts.map +1 -1
  222. package/dist/Match.js +86 -78
  223. package/dist/Match.js.map +1 -1
  224. package/dist/Metric.d.ts +330 -291
  225. package/dist/Metric.d.ts.map +1 -1
  226. package/dist/Metric.js +219 -214
  227. package/dist/Metric.js.map +1 -1
  228. package/dist/MutableHashMap.d.ts +146 -87
  229. package/dist/MutableHashMap.d.ts.map +1 -1
  230. package/dist/MutableHashMap.js +67 -43
  231. package/dist/MutableHashMap.js.map +1 -1
  232. package/dist/MutableHashSet.d.ts +52 -30
  233. package/dist/MutableHashSet.d.ts.map +1 -1
  234. package/dist/MutableHashSet.js +92 -38
  235. package/dist/MutableHashSet.js.map +1 -1
  236. package/dist/MutableList.d.ts +110 -68
  237. package/dist/MutableList.d.ts.map +1 -1
  238. package/dist/MutableList.js +135 -85
  239. package/dist/MutableList.js.map +1 -1
  240. package/dist/MutableRef.d.ts +99 -62
  241. package/dist/MutableRef.d.ts.map +1 -1
  242. package/dist/MutableRef.js +78 -60
  243. package/dist/MutableRef.js.map +1 -1
  244. package/dist/Newtype.d.ts +15 -2
  245. package/dist/Newtype.d.ts.map +1 -1
  246. package/dist/Newtype.js +8 -2
  247. package/dist/Newtype.js.map +1 -1
  248. package/dist/NonEmptyIterable.d.ts +38 -48
  249. package/dist/NonEmptyIterable.d.ts.map +1 -1
  250. package/dist/NonEmptyIterable.js +34 -25
  251. package/dist/NonEmptyIterable.js.map +1 -1
  252. package/dist/Number.d.ts +261 -205
  253. package/dist/Number.d.ts.map +1 -1
  254. package/dist/Number.js +119 -91
  255. package/dist/Number.js.map +1 -1
  256. package/dist/Optic.d.ts +6 -7
  257. package/dist/Optic.d.ts.map +1 -1
  258. package/dist/Optic.js +5 -6
  259. package/dist/Optic.js.map +1 -1
  260. package/dist/Option.d.ts +133 -156
  261. package/dist/Option.d.ts.map +1 -1
  262. package/dist/Option.js +64 -64
  263. package/dist/Option.js.map +1 -1
  264. package/dist/Order.d.ts +6 -6
  265. package/dist/Order.js +6 -6
  266. package/dist/Ordering.d.ts +56 -45
  267. package/dist/Ordering.d.ts.map +1 -1
  268. package/dist/Ordering.js +10 -8
  269. package/dist/Ordering.js.map +1 -1
  270. package/dist/PartitionedSemaphore.d.ts +225 -40
  271. package/dist/PartitionedSemaphore.d.ts.map +1 -1
  272. package/dist/PartitionedSemaphore.js +113 -17
  273. package/dist/PartitionedSemaphore.js.map +1 -1
  274. package/dist/Path.d.ts +77 -13
  275. package/dist/Path.d.ts.map +1 -1
  276. package/dist/Path.js +49 -4
  277. package/dist/Path.js.map +1 -1
  278. package/dist/Pipeable.d.ts +77 -18
  279. package/dist/Pipeable.d.ts.map +1 -1
  280. package/dist/Pipeable.js +63 -14
  281. package/dist/Pipeable.js.map +1 -1
  282. package/dist/PlatformError.d.ts +74 -6
  283. package/dist/PlatformError.d.ts.map +1 -1
  284. package/dist/PlatformError.js +68 -5
  285. package/dist/PlatformError.js.map +1 -1
  286. package/dist/Pool.d.ts +66 -31
  287. package/dist/Pool.d.ts.map +1 -1
  288. package/dist/Pool.js +26 -24
  289. package/dist/Pool.js.map +1 -1
  290. package/dist/Predicate.d.ts +16 -23
  291. package/dist/Predicate.d.ts.map +1 -1
  292. package/dist/Predicate.js +12 -17
  293. package/dist/Predicate.js.map +1 -1
  294. package/dist/PrimaryKey.d.ts +11 -3
  295. package/dist/PrimaryKey.d.ts.map +1 -1
  296. package/dist/PrimaryKey.js +9 -2
  297. package/dist/PrimaryKey.js.map +1 -1
  298. package/dist/PubSub.d.ts +385 -309
  299. package/dist/PubSub.d.ts.map +1 -1
  300. package/dist/PubSub.js +260 -207
  301. package/dist/PubSub.js.map +1 -1
  302. package/dist/Pull.d.ts +94 -25
  303. package/dist/Pull.d.ts.map +1 -1
  304. package/dist/Pull.js +61 -13
  305. package/dist/Pull.js.map +1 -1
  306. package/dist/Queue.d.ts +303 -184
  307. package/dist/Queue.d.ts.map +1 -1
  308. package/dist/Queue.js +231 -134
  309. package/dist/Queue.js.map +1 -1
  310. package/dist/Random.d.ts +65 -57
  311. package/dist/Random.d.ts.map +1 -1
  312. package/dist/Random.js +41 -66
  313. package/dist/Random.js.map +1 -1
  314. package/dist/RcMap.d.ts +151 -141
  315. package/dist/RcMap.d.ts.map +1 -1
  316. package/dist/RcMap.js +66 -20
  317. package/dist/RcMap.js.map +1 -1
  318. package/dist/RcRef.d.ts +68 -32
  319. package/dist/RcRef.d.ts.map +1 -1
  320. package/dist/RcRef.js +33 -16
  321. package/dist/RcRef.js.map +1 -1
  322. package/dist/Record.d.ts +282 -137
  323. package/dist/Record.d.ts.map +1 -1
  324. package/dist/Record.js +124 -62
  325. package/dist/Record.js.map +1 -1
  326. package/dist/Redactable.d.ts +7 -5
  327. package/dist/Redactable.d.ts.map +1 -1
  328. package/dist/Redactable.js +5 -3
  329. package/dist/Redactable.js.map +1 -1
  330. package/dist/Redacted.d.ts +63 -34
  331. package/dist/Redacted.d.ts.map +1 -1
  332. package/dist/Redacted.js +31 -15
  333. package/dist/Redacted.js.map +1 -1
  334. package/dist/Reducer.d.ts +3 -1
  335. package/dist/Reducer.d.ts.map +1 -1
  336. package/dist/Reducer.js +2 -0
  337. package/dist/Reducer.js.map +1 -1
  338. package/dist/Ref.d.ts +85 -66
  339. package/dist/Ref.d.ts.map +1 -1
  340. package/dist/Ref.js +57 -45
  341. package/dist/Ref.js.map +1 -1
  342. package/dist/References.d.ts +73 -31
  343. package/dist/References.d.ts.map +1 -1
  344. package/dist/References.js +66 -30
  345. package/dist/References.js.map +1 -1
  346. package/dist/RegExp.d.ts +12 -6
  347. package/dist/RegExp.d.ts.map +1 -1
  348. package/dist/RegExp.js +12 -6
  349. package/dist/RegExp.js.map +1 -1
  350. package/dist/Request.d.ts +159 -34
  351. package/dist/Request.d.ts.map +1 -1
  352. package/dist/Request.js +68 -12
  353. package/dist/Request.js.map +1 -1
  354. package/dist/RequestResolver.d.ts +262 -118
  355. package/dist/RequestResolver.d.ts.map +1 -1
  356. package/dist/RequestResolver.js +78 -42
  357. package/dist/RequestResolver.js.map +1 -1
  358. package/dist/Resource.d.ts +13 -7
  359. package/dist/Resource.d.ts.map +1 -1
  360. package/dist/Resource.js +44 -6
  361. package/dist/Resource.js.map +1 -1
  362. package/dist/Result.d.ts +135 -151
  363. package/dist/Result.d.ts.map +1 -1
  364. package/dist/Result.js +56 -68
  365. package/dist/Result.js.map +1 -1
  366. package/dist/Runtime.d.ts +40 -20
  367. package/dist/Runtime.d.ts.map +1 -1
  368. package/dist/Runtime.js +34 -17
  369. package/dist/Runtime.js.map +1 -1
  370. package/dist/Schedule.d.ts +556 -590
  371. package/dist/Schedule.d.ts.map +1 -1
  372. package/dist/Schedule.js +265 -253
  373. package/dist/Schedule.js.map +1 -1
  374. package/dist/Scheduler.d.ts +44 -7
  375. package/dist/Scheduler.d.ts.map +1 -1
  376. package/dist/Scheduler.js +34 -5
  377. package/dist/Scheduler.js.map +1 -1
  378. package/dist/Schema.d.ts +1293 -602
  379. package/dist/Schema.d.ts.map +1 -1
  380. package/dist/Schema.js +501 -361
  381. package/dist/Schema.js.map +1 -1
  382. package/dist/SchemaAST.d.ts +122 -92
  383. package/dist/SchemaAST.d.ts.map +1 -1
  384. package/dist/SchemaAST.js +102 -77
  385. package/dist/SchemaAST.js.map +1 -1
  386. package/dist/SchemaGetter.d.ts +49 -36
  387. package/dist/SchemaGetter.d.ts.map +1 -1
  388. package/dist/SchemaGetter.js +42 -29
  389. package/dist/SchemaGetter.js.map +1 -1
  390. package/dist/SchemaIssue.d.ts +19 -24
  391. package/dist/SchemaIssue.d.ts.map +1 -1
  392. package/dist/SchemaIssue.js +16 -14
  393. package/dist/SchemaIssue.js.map +1 -1
  394. package/dist/SchemaParser.d.ts +231 -63
  395. package/dist/SchemaParser.d.ts.map +1 -1
  396. package/dist/SchemaParser.js +266 -75
  397. package/dist/SchemaParser.js.map +1 -1
  398. package/dist/SchemaRepresentation.d.ts +89 -77
  399. package/dist/SchemaRepresentation.d.ts.map +1 -1
  400. package/dist/SchemaRepresentation.js +47 -37
  401. package/dist/SchemaRepresentation.js.map +1 -1
  402. package/dist/SchemaTransformation.d.ts +97 -46
  403. package/dist/SchemaTransformation.d.ts.map +1 -1
  404. package/dist/SchemaTransformation.js +89 -38
  405. package/dist/SchemaTransformation.js.map +1 -1
  406. package/dist/SchemaUtils.d.ts +8 -1
  407. package/dist/SchemaUtils.d.ts.map +1 -1
  408. package/dist/SchemaUtils.js +24 -1
  409. package/dist/SchemaUtils.js.map +1 -1
  410. package/dist/Scope.d.ts +107 -65
  411. package/dist/Scope.d.ts.map +1 -1
  412. package/dist/Scope.js +61 -32
  413. package/dist/Scope.js.map +1 -1
  414. package/dist/ScopedCache.d.ts +141 -49
  415. package/dist/ScopedCache.d.ts.map +1 -1
  416. package/dist/ScopedCache.js +82 -21
  417. package/dist/ScopedCache.js.map +1 -1
  418. package/dist/ScopedRef.d.ts +28 -8
  419. package/dist/ScopedRef.d.ts.map +1 -1
  420. package/dist/ScopedRef.js +25 -5
  421. package/dist/ScopedRef.js.map +1 -1
  422. package/dist/Semaphore.d.ts +61 -37
  423. package/dist/Semaphore.d.ts.map +1 -1
  424. package/dist/Semaphore.js +18 -21
  425. package/dist/Semaphore.js.map +1 -1
  426. package/dist/Sink.d.ts +461 -206
  427. package/dist/Sink.d.ts.map +1 -1
  428. package/dist/Sink.js +241 -90
  429. package/dist/Sink.js.map +1 -1
  430. package/dist/Stdio.d.ts +43 -6
  431. package/dist/Stdio.d.ts.map +1 -1
  432. package/dist/Stdio.js +33 -4
  433. package/dist/Stdio.js.map +1 -1
  434. package/dist/Stream.d.ts +2117 -1541
  435. package/dist/Stream.d.ts.map +1 -1
  436. package/dist/Stream.js +951 -682
  437. package/dist/Stream.js.map +1 -1
  438. package/dist/String.d.ts +174 -97
  439. package/dist/String.d.ts.map +1 -1
  440. package/dist/String.js +128 -69
  441. package/dist/String.js.map +1 -1
  442. package/dist/Struct.d.ts +20 -18
  443. package/dist/Struct.d.ts.map +1 -1
  444. package/dist/Struct.js +10 -8
  445. package/dist/Struct.js.map +1 -1
  446. package/dist/SubscriptionRef.d.ts +309 -204
  447. package/dist/SubscriptionRef.d.ts.map +1 -1
  448. package/dist/SubscriptionRef.js +126 -77
  449. package/dist/SubscriptionRef.js.map +1 -1
  450. package/dist/Symbol.d.ts +13 -5
  451. package/dist/Symbol.d.ts.map +1 -1
  452. package/dist/Symbol.js +13 -5
  453. package/dist/Symbol.js.map +1 -1
  454. package/dist/SynchronizedRef.d.ts +278 -62
  455. package/dist/SynchronizedRef.d.ts.map +1 -1
  456. package/dist/SynchronizedRef.js +116 -23
  457. package/dist/SynchronizedRef.js.map +1 -1
  458. package/dist/Take.d.ts +26 -2
  459. package/dist/Take.d.ts.map +1 -1
  460. package/dist/Take.js +4 -1
  461. package/dist/Take.js.map +1 -1
  462. package/dist/Terminal.d.ts +39 -7
  463. package/dist/Terminal.d.ts.map +1 -1
  464. package/dist/Terminal.js +10 -4
  465. package/dist/Terminal.js.map +1 -1
  466. package/dist/Tracer.d.ts +233 -59
  467. package/dist/Tracer.d.ts.map +1 -1
  468. package/dist/Tracer.js +94 -18
  469. package/dist/Tracer.js.map +1 -1
  470. package/dist/Trie.d.ts +280 -245
  471. package/dist/Trie.d.ts.map +1 -1
  472. package/dist/Trie.js +116 -102
  473. package/dist/Trie.js.map +1 -1
  474. package/dist/Tuple.d.ts +34 -32
  475. package/dist/Tuple.d.ts.map +1 -1
  476. package/dist/Tuple.js +16 -14
  477. package/dist/Tuple.js.map +1 -1
  478. package/dist/TxChunk.d.ts +200 -155
  479. package/dist/TxChunk.d.ts.map +1 -1
  480. package/dist/TxChunk.js +83 -61
  481. package/dist/TxChunk.js.map +1 -1
  482. package/dist/TxDeferred.d.ts +43 -29
  483. package/dist/TxDeferred.d.ts.map +1 -1
  484. package/dist/TxDeferred.js +22 -15
  485. package/dist/TxDeferred.js.map +1 -1
  486. package/dist/TxHashMap.d.ts +362 -223
  487. package/dist/TxHashMap.d.ts.map +1 -1
  488. package/dist/TxHashMap.js +171 -98
  489. package/dist/TxHashMap.js.map +1 -1
  490. package/dist/TxHashSet.d.ts +181 -111
  491. package/dist/TxHashSet.d.ts.map +1 -1
  492. package/dist/TxHashSet.js +87 -49
  493. package/dist/TxHashSet.js.map +1 -1
  494. package/dist/TxPriorityQueue.d.ts +94 -63
  495. package/dist/TxPriorityQueue.d.ts.map +1 -1
  496. package/dist/TxPriorityQueue.js +55 -37
  497. package/dist/TxPriorityQueue.js.map +1 -1
  498. package/dist/TxPubSub.d.ts +77 -49
  499. package/dist/TxPubSub.d.ts.map +1 -1
  500. package/dist/TxPubSub.js +60 -37
  501. package/dist/TxPubSub.js.map +1 -1
  502. package/dist/TxQueue.d.ts +277 -242
  503. package/dist/TxQueue.d.ts.map +1 -1
  504. package/dist/TxQueue.js +147 -101
  505. package/dist/TxQueue.js.map +1 -1
  506. package/dist/TxReentrantLock.d.ts +69 -46
  507. package/dist/TxReentrantLock.d.ts.map +1 -1
  508. package/dist/TxReentrantLock.js +48 -32
  509. package/dist/TxReentrantLock.js.map +1 -1
  510. package/dist/TxRef.d.ts +69 -40
  511. package/dist/TxRef.d.ts.map +1 -1
  512. package/dist/TxRef.js +34 -19
  513. package/dist/TxRef.js.map +1 -1
  514. package/dist/TxSemaphore.d.ts +101 -115
  515. package/dist/TxSemaphore.d.ts.map +1 -1
  516. package/dist/TxSemaphore.js +76 -77
  517. package/dist/TxSemaphore.js.map +1 -1
  518. package/dist/TxSubscriptionRef.d.ts +74 -50
  519. package/dist/TxSubscriptionRef.d.ts.map +1 -1
  520. package/dist/TxSubscriptionRef.js +34 -23
  521. package/dist/TxSubscriptionRef.js.map +1 -1
  522. package/dist/Types.d.ts +31 -34
  523. package/dist/Types.d.ts.map +1 -1
  524. package/dist/UndefinedOr.d.ts +62 -25
  525. package/dist/UndefinedOr.d.ts.map +1 -1
  526. package/dist/UndefinedOr.js +36 -25
  527. package/dist/UndefinedOr.js.map +1 -1
  528. package/dist/Unify.d.ts +72 -117
  529. package/dist/Unify.d.ts.map +1 -1
  530. package/dist/Unify.js +20 -6
  531. package/dist/Unify.js.map +1 -1
  532. package/dist/Utils.d.ts +5 -2
  533. package/dist/Utils.d.ts.map +1 -1
  534. package/dist/Utils.js +4 -0
  535. package/dist/Utils.js.map +1 -1
  536. package/dist/index.d.ts +1973 -418
  537. package/dist/index.d.ts.map +1 -1
  538. package/dist/index.js +1973 -418
  539. package/dist/index.js.map +1 -1
  540. package/dist/internal/schema/schema.js +1 -1
  541. package/dist/internal/schema/schema.js.map +1 -1
  542. package/dist/testing/FastCheck.d.ts +9 -6
  543. package/dist/testing/FastCheck.d.ts.map +1 -1
  544. package/dist/testing/FastCheck.js +9 -6
  545. package/dist/testing/FastCheck.js.map +1 -1
  546. package/dist/testing/TestClock.d.ts +39 -35
  547. package/dist/testing/TestClock.d.ts.map +1 -1
  548. package/dist/testing/TestClock.js +42 -12
  549. package/dist/testing/TestClock.js.map +1 -1
  550. package/dist/testing/TestConsole.d.ts +44 -36
  551. package/dist/testing/TestConsole.d.ts.map +1 -1
  552. package/dist/testing/TestConsole.js +30 -15
  553. package/dist/testing/TestConsole.js.map +1 -1
  554. package/dist/testing/TestSchema.d.ts +2 -0
  555. package/dist/testing/TestSchema.d.ts.map +1 -1
  556. package/dist/testing/TestSchema.js +9 -7
  557. package/dist/testing/TestSchema.js.map +1 -1
  558. package/dist/testing/index.d.ts +34 -0
  559. package/dist/testing/index.d.ts.map +1 -1
  560. package/dist/testing/index.js +34 -0
  561. package/dist/testing/index.js.map +1 -1
  562. package/dist/unstable/ai/AiError.d.ts +205 -147
  563. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  564. package/dist/unstable/ai/AiError.js +164 -109
  565. package/dist/unstable/ai/AiError.js.map +1 -1
  566. package/dist/unstable/ai/AnthropicStructuredOutput.d.ts +1 -1
  567. package/dist/unstable/ai/AnthropicStructuredOutput.js +2 -2
  568. package/dist/unstable/ai/Chat.d.ts +64 -41
  569. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  570. package/dist/unstable/ai/Chat.js +51 -33
  571. package/dist/unstable/ai/Chat.js.map +1 -1
  572. package/dist/unstable/ai/EmbeddingModel.d.ts +12 -11
  573. package/dist/unstable/ai/EmbeddingModel.d.ts.map +1 -1
  574. package/dist/unstable/ai/EmbeddingModel.js +9 -8
  575. package/dist/unstable/ai/EmbeddingModel.js.map +1 -1
  576. package/dist/unstable/ai/IdGenerator.d.ts +28 -18
  577. package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
  578. package/dist/unstable/ai/IdGenerator.js +18 -11
  579. package/dist/unstable/ai/IdGenerator.js.map +1 -1
  580. package/dist/unstable/ai/LanguageModel.d.ts +31 -25
  581. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  582. package/dist/unstable/ai/LanguageModel.js +20 -14
  583. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  584. package/dist/unstable/ai/McpSchema.d.ts +342 -119
  585. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  586. package/dist/unstable/ai/McpSchema.js +266 -98
  587. package/dist/unstable/ai/McpSchema.js.map +1 -1
  588. package/dist/unstable/ai/McpServer.d.ts +56 -20
  589. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  590. package/dist/unstable/ai/McpServer.js +64 -16
  591. package/dist/unstable/ai/McpServer.js.map +1 -1
  592. package/dist/unstable/ai/Model.d.ts +10 -12
  593. package/dist/unstable/ai/Model.d.ts.map +1 -1
  594. package/dist/unstable/ai/Model.js +9 -7
  595. package/dist/unstable/ai/Model.js.map +1 -1
  596. package/dist/unstable/ai/OpenAiStructuredOutput.d.ts +1 -1
  597. package/dist/unstable/ai/OpenAiStructuredOutput.js +2 -2
  598. package/dist/unstable/ai/Prompt.d.ts +200 -176
  599. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  600. package/dist/unstable/ai/Prompt.js +77 -68
  601. package/dist/unstable/ai/Prompt.js.map +1 -1
  602. package/dist/unstable/ai/Response.d.ts +173 -160
  603. package/dist/unstable/ai/Response.d.ts.map +1 -1
  604. package/dist/unstable/ai/Response.js +43 -48
  605. package/dist/unstable/ai/Response.js.map +1 -1
  606. package/dist/unstable/ai/ResponseIdTracker.d.ts +43 -4
  607. package/dist/unstable/ai/ResponseIdTracker.d.ts.map +1 -1
  608. package/dist/unstable/ai/ResponseIdTracker.js +27 -2
  609. package/dist/unstable/ai/ResponseIdTracker.js.map +1 -1
  610. package/dist/unstable/ai/Telemetry.d.ts +43 -33
  611. package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
  612. package/dist/unstable/ai/Telemetry.js +15 -11
  613. package/dist/unstable/ai/Telemetry.js.map +1 -1
  614. package/dist/unstable/ai/Tokenizer.d.ts +14 -9
  615. package/dist/unstable/ai/Tokenizer.d.ts.map +1 -1
  616. package/dist/unstable/ai/Tokenizer.js +10 -6
  617. package/dist/unstable/ai/Tokenizer.js.map +1 -1
  618. package/dist/unstable/ai/Tool.d.ts +167 -96
  619. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  620. package/dist/unstable/ai/Tool.js +107 -53
  621. package/dist/unstable/ai/Tool.js.map +1 -1
  622. package/dist/unstable/ai/Toolkit.d.ts +32 -39
  623. package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
  624. package/dist/unstable/ai/Toolkit.js +7 -5
  625. package/dist/unstable/ai/Toolkit.js.map +1 -1
  626. package/dist/unstable/ai/index.d.ts +121 -29
  627. package/dist/unstable/ai/index.d.ts.map +1 -1
  628. package/dist/unstable/ai/index.js +121 -29
  629. package/dist/unstable/ai/index.js.map +1 -1
  630. package/dist/unstable/cli/Argument.d.ts +226 -134
  631. package/dist/unstable/cli/Argument.d.ts.map +1 -1
  632. package/dist/unstable/cli/Argument.js +101 -65
  633. package/dist/unstable/cli/Argument.js.map +1 -1
  634. package/dist/unstable/cli/CliError.d.ts +72 -26
  635. package/dist/unstable/cli/CliError.d.ts.map +1 -1
  636. package/dist/unstable/cli/CliError.js +86 -23
  637. package/dist/unstable/cli/CliError.js.map +1 -1
  638. package/dist/unstable/cli/CliOutput.d.ts +48 -19
  639. package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
  640. package/dist/unstable/cli/CliOutput.js +32 -9
  641. package/dist/unstable/cli/CliOutput.js.map +1 -1
  642. package/dist/unstable/cli/Command.d.ts +196 -115
  643. package/dist/unstable/cli/Command.d.ts.map +1 -1
  644. package/dist/unstable/cli/Command.js +45 -31
  645. package/dist/unstable/cli/Command.js.map +1 -1
  646. package/dist/unstable/cli/Completions.d.ts +7 -7
  647. package/dist/unstable/cli/Completions.js +1 -1
  648. package/dist/unstable/cli/Flag.d.ts +235 -142
  649. package/dist/unstable/cli/Flag.d.ts.map +1 -1
  650. package/dist/unstable/cli/Flag.js +111 -71
  651. package/dist/unstable/cli/Flag.js.map +1 -1
  652. package/dist/unstable/cli/GlobalFlag.d.ts +41 -13
  653. package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -1
  654. package/dist/unstable/cli/GlobalFlag.js +30 -7
  655. package/dist/unstable/cli/GlobalFlag.js.map +1 -1
  656. package/dist/unstable/cli/HelpDoc.d.ts +39 -14
  657. package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
  658. package/dist/unstable/cli/HelpDoc.js +21 -0
  659. package/dist/unstable/cli/Param.d.ts +110 -32
  660. package/dist/unstable/cli/Param.d.ts.map +1 -1
  661. package/dist/unstable/cli/Param.js +196 -135
  662. package/dist/unstable/cli/Param.js.map +1 -1
  663. package/dist/unstable/cli/Primitive.d.ts +79 -42
  664. package/dist/unstable/cli/Primitive.d.ts.map +1 -1
  665. package/dist/unstable/cli/Primitive.js +66 -35
  666. package/dist/unstable/cli/Primitive.js.map +1 -1
  667. package/dist/unstable/cli/Prompt.d.ts +183 -59
  668. package/dist/unstable/cli/Prompt.d.ts.map +1 -1
  669. package/dist/unstable/cli/Prompt.js +105 -23
  670. package/dist/unstable/cli/Prompt.js.map +1 -1
  671. package/dist/unstable/cli/index.d.ts +182 -0
  672. package/dist/unstable/cli/index.d.ts.map +1 -1
  673. package/dist/unstable/cli/index.js +205 -6
  674. package/dist/unstable/cli/index.js.map +1 -1
  675. package/dist/unstable/cli/internal/ansi.d.ts.map +1 -1
  676. package/dist/unstable/cli/internal/ansi.js +13 -0
  677. package/dist/unstable/cli/internal/ansi.js.map +1 -1
  678. package/dist/unstable/cli/internal/command.d.ts +5 -1
  679. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  680. package/dist/unstable/cli/internal/command.js +5 -1
  681. package/dist/unstable/cli/internal/command.js.map +1 -1
  682. package/dist/unstable/cli/internal/config.d.ts +3 -0
  683. package/dist/unstable/cli/internal/config.d.ts.map +1 -1
  684. package/dist/unstable/cli/internal/config.js.map +1 -1
  685. package/dist/unstable/cli/internal/lexer.js.map +1 -1
  686. package/dist/unstable/cli/internal/parser.js +0 -1
  687. package/dist/unstable/cli/internal/parser.js.map +1 -1
  688. package/dist/unstable/cluster/ClusterCron.d.ts +35 -1
  689. package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
  690. package/dist/unstable/cluster/ClusterCron.js +35 -1
  691. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  692. package/dist/unstable/cluster/ClusterError.d.ts +56 -7
  693. package/dist/unstable/cluster/ClusterError.d.ts.map +1 -1
  694. package/dist/unstable/cluster/ClusterError.js +56 -7
  695. package/dist/unstable/cluster/ClusterError.js.map +1 -1
  696. package/dist/unstable/cluster/ClusterMetrics.d.ts +39 -5
  697. package/dist/unstable/cluster/ClusterMetrics.d.ts.map +1 -1
  698. package/dist/unstable/cluster/ClusterMetrics.js +39 -5
  699. package/dist/unstable/cluster/ClusterMetrics.js.map +1 -1
  700. package/dist/unstable/cluster/ClusterSchema.d.ts +61 -8
  701. package/dist/unstable/cluster/ClusterSchema.d.ts.map +1 -1
  702. package/dist/unstable/cluster/ClusterSchema.js +61 -8
  703. package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
  704. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts +14 -2
  705. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  706. package/dist/unstable/cluster/ClusterWorkflowEngine.js +35 -2
  707. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  708. package/dist/unstable/cluster/DeliverAt.d.ts +39 -4
  709. package/dist/unstable/cluster/DeliverAt.d.ts.map +1 -1
  710. package/dist/unstable/cluster/DeliverAt.js +11 -3
  711. package/dist/unstable/cluster/DeliverAt.js.map +1 -1
  712. package/dist/unstable/cluster/Entity.d.ts +74 -16
  713. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  714. package/dist/unstable/cluster/Entity.js +75 -10
  715. package/dist/unstable/cluster/Entity.js.map +1 -1
  716. package/dist/unstable/cluster/EntityAddress.d.ts +30 -2
  717. package/dist/unstable/cluster/EntityAddress.d.ts.map +1 -1
  718. package/dist/unstable/cluster/EntityAddress.js +30 -2
  719. package/dist/unstable/cluster/EntityAddress.js.map +1 -1
  720. package/dist/unstable/cluster/EntityId.d.ts +18 -3
  721. package/dist/unstable/cluster/EntityId.d.ts.map +1 -1
  722. package/dist/unstable/cluster/EntityId.js +15 -2
  723. package/dist/unstable/cluster/EntityId.js.map +1 -1
  724. package/dist/unstable/cluster/EntityProxy.d.ts +42 -14
  725. package/dist/unstable/cluster/EntityProxy.d.ts.map +1 -1
  726. package/dist/unstable/cluster/EntityProxy.js +30 -14
  727. package/dist/unstable/cluster/EntityProxy.js.map +1 -1
  728. package/dist/unstable/cluster/EntityProxyServer.d.ts +18 -2
  729. package/dist/unstable/cluster/EntityProxyServer.d.ts.map +1 -1
  730. package/dist/unstable/cluster/EntityProxyServer.js +40 -8
  731. package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
  732. package/dist/unstable/cluster/EntityResource.d.ts +43 -6
  733. package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
  734. package/dist/unstable/cluster/EntityResource.js +11 -4
  735. package/dist/unstable/cluster/EntityResource.js.map +1 -1
  736. package/dist/unstable/cluster/EntityType.d.ts +27 -3
  737. package/dist/unstable/cluster/EntityType.d.ts.map +1 -1
  738. package/dist/unstable/cluster/EntityType.js +24 -2
  739. package/dist/unstable/cluster/EntityType.js.map +1 -1
  740. package/dist/unstable/cluster/Envelope.d.ts +105 -23
  741. package/dist/unstable/cluster/Envelope.d.ts.map +1 -1
  742. package/dist/unstable/cluster/Envelope.js +88 -14
  743. package/dist/unstable/cluster/Envelope.js.map +1 -1
  744. package/dist/unstable/cluster/HttpRunner.d.ts +88 -13
  745. package/dist/unstable/cluster/HttpRunner.d.ts.map +1 -1
  746. package/dist/unstable/cluster/HttpRunner.js +88 -13
  747. package/dist/unstable/cluster/HttpRunner.js.map +1 -1
  748. package/dist/unstable/cluster/K8sHttpClient.d.ts +49 -6
  749. package/dist/unstable/cluster/K8sHttpClient.d.ts.map +1 -1
  750. package/dist/unstable/cluster/K8sHttpClient.js +31 -6
  751. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  752. package/dist/unstable/cluster/MachineId.d.ts +24 -3
  753. package/dist/unstable/cluster/MachineId.d.ts.map +1 -1
  754. package/dist/unstable/cluster/MachineId.js +21 -2
  755. package/dist/unstable/cluster/MachineId.js.map +1 -1
  756. package/dist/unstable/cluster/Message.d.ts +102 -13
  757. package/dist/unstable/cluster/Message.d.ts.map +1 -1
  758. package/dist/unstable/cluster/Message.js +86 -10
  759. package/dist/unstable/cluster/Message.js.map +1 -1
  760. package/dist/unstable/cluster/MessageStorage.d.ts +126 -21
  761. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  762. package/dist/unstable/cluster/MessageStorage.js +70 -10
  763. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  764. package/dist/unstable/cluster/Reply.d.ts +101 -12
  765. package/dist/unstable/cluster/Reply.d.ts.map +1 -1
  766. package/dist/unstable/cluster/Reply.js +64 -8
  767. package/dist/unstable/cluster/Reply.js.map +1 -1
  768. package/dist/unstable/cluster/Runner.d.ts +47 -17
  769. package/dist/unstable/cluster/Runner.d.ts.map +1 -1
  770. package/dist/unstable/cluster/Runner.js +47 -17
  771. package/dist/unstable/cluster/Runner.js.map +1 -1
  772. package/dist/unstable/cluster/RunnerAddress.d.ts +34 -2
  773. package/dist/unstable/cluster/RunnerAddress.d.ts.map +1 -1
  774. package/dist/unstable/cluster/RunnerAddress.js +34 -2
  775. package/dist/unstable/cluster/RunnerAddress.js.map +1 -1
  776. package/dist/unstable/cluster/RunnerHealth.d.ts +40 -12
  777. package/dist/unstable/cluster/RunnerHealth.d.ts.map +1 -1
  778. package/dist/unstable/cluster/RunnerHealth.js +40 -12
  779. package/dist/unstable/cluster/RunnerHealth.js.map +1 -1
  780. package/dist/unstable/cluster/RunnerServer.d.ts +7 -4
  781. package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
  782. package/dist/unstable/cluster/RunnerServer.js +31 -4
  783. package/dist/unstable/cluster/RunnerServer.js.map +1 -1
  784. package/dist/unstable/cluster/RunnerStorage.d.ts +42 -5
  785. package/dist/unstable/cluster/RunnerStorage.d.ts.map +1 -1
  786. package/dist/unstable/cluster/RunnerStorage.js +38 -4
  787. package/dist/unstable/cluster/RunnerStorage.js.map +1 -1
  788. package/dist/unstable/cluster/Runners.d.ts +76 -13
  789. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  790. package/dist/unstable/cluster/Runners.js +73 -12
  791. package/dist/unstable/cluster/Runners.js.map +1 -1
  792. package/dist/unstable/cluster/ShardId.d.ts +53 -5
  793. package/dist/unstable/cluster/ShardId.d.ts.map +1 -1
  794. package/dist/unstable/cluster/ShardId.js +49 -4
  795. package/dist/unstable/cluster/ShardId.js.map +1 -1
  796. package/dist/unstable/cluster/Sharding.d.ts +10 -2
  797. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  798. package/dist/unstable/cluster/Sharding.js +35 -4
  799. package/dist/unstable/cluster/Sharding.js.map +1 -1
  800. package/dist/unstable/cluster/ShardingConfig.d.ts +65 -9
  801. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  802. package/dist/unstable/cluster/ShardingConfig.js +66 -9
  803. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  804. package/dist/unstable/cluster/ShardingRegistrationEvent.d.ts +27 -6
  805. package/dist/unstable/cluster/ShardingRegistrationEvent.d.ts.map +1 -1
  806. package/dist/unstable/cluster/ShardingRegistrationEvent.js +28 -4
  807. package/dist/unstable/cluster/ShardingRegistrationEvent.js.map +1 -1
  808. package/dist/unstable/cluster/SingleRunner.d.ts +23 -1
  809. package/dist/unstable/cluster/SingleRunner.d.ts.map +1 -1
  810. package/dist/unstable/cluster/SingleRunner.js +23 -1
  811. package/dist/unstable/cluster/SingleRunner.js.map +1 -1
  812. package/dist/unstable/cluster/Singleton.d.ts +15 -1
  813. package/dist/unstable/cluster/Singleton.d.ts.map +1 -1
  814. package/dist/unstable/cluster/Singleton.js +15 -1
  815. package/dist/unstable/cluster/Singleton.js.map +1 -1
  816. package/dist/unstable/cluster/SingletonAddress.d.ts +21 -1
  817. package/dist/unstable/cluster/SingletonAddress.d.ts.map +1 -1
  818. package/dist/unstable/cluster/SingletonAddress.js +21 -1
  819. package/dist/unstable/cluster/SingletonAddress.js.map +1 -1
  820. package/dist/unstable/cluster/Snowflake.d.ts +90 -19
  821. package/dist/unstable/cluster/Snowflake.d.ts.map +1 -1
  822. package/dist/unstable/cluster/Snowflake.js +49 -13
  823. package/dist/unstable/cluster/Snowflake.js.map +1 -1
  824. package/dist/unstable/cluster/SocketRunner.d.ts +8 -2
  825. package/dist/unstable/cluster/SocketRunner.d.ts.map +1 -1
  826. package/dist/unstable/cluster/SocketRunner.js +29 -2
  827. package/dist/unstable/cluster/SocketRunner.js.map +1 -1
  828. package/dist/unstable/cluster/SqlMessageStorage.d.ts +11 -3
  829. package/dist/unstable/cluster/SqlMessageStorage.d.ts.map +1 -1
  830. package/dist/unstable/cluster/SqlMessageStorage.js +27 -3
  831. package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
  832. package/dist/unstable/cluster/SqlRunnerStorage.d.ts +11 -3
  833. package/dist/unstable/cluster/SqlRunnerStorage.d.ts.map +1 -1
  834. package/dist/unstable/cluster/SqlRunnerStorage.js +46 -7
  835. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  836. package/dist/unstable/cluster/TestRunner.d.ts +18 -1
  837. package/dist/unstable/cluster/TestRunner.d.ts.map +1 -1
  838. package/dist/unstable/cluster/TestRunner.js +18 -1
  839. package/dist/unstable/cluster/TestRunner.js.map +1 -1
  840. package/dist/unstable/cluster/index.d.ts +790 -0
  841. package/dist/unstable/cluster/index.d.ts.map +1 -1
  842. package/dist/unstable/cluster/index.js +790 -0
  843. package/dist/unstable/cluster/index.js.map +1 -1
  844. package/dist/unstable/cluster/internal/hash.js +12 -0
  845. package/dist/unstable/cluster/internal/hash.js.map +1 -1
  846. package/dist/unstable/devtools/DevTools.d.ts +26 -3
  847. package/dist/unstable/devtools/DevTools.d.ts.map +1 -1
  848. package/dist/unstable/devtools/DevTools.js +26 -3
  849. package/dist/unstable/devtools/DevTools.js.map +1 -1
  850. package/dist/unstable/devtools/DevToolsClient.d.ts +20 -5
  851. package/dist/unstable/devtools/DevToolsClient.d.ts.map +1 -1
  852. package/dist/unstable/devtools/DevToolsClient.js +32 -5
  853. package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
  854. package/dist/unstable/devtools/DevToolsSchema.d.ts +184 -44
  855. package/dist/unstable/devtools/DevToolsSchema.d.ts.map +1 -1
  856. package/dist/unstable/devtools/DevToolsSchema.js +102 -20
  857. package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
  858. package/dist/unstable/devtools/DevToolsServer.d.ts +27 -2
  859. package/dist/unstable/devtools/DevToolsServer.d.ts.map +1 -1
  860. package/dist/unstable/devtools/DevToolsServer.js +21 -1
  861. package/dist/unstable/devtools/DevToolsServer.js.map +1 -1
  862. package/dist/unstable/devtools/index.d.ts +58 -0
  863. package/dist/unstable/devtools/index.d.ts.map +1 -1
  864. package/dist/unstable/devtools/index.js +58 -0
  865. package/dist/unstable/devtools/index.js.map +1 -1
  866. package/dist/unstable/encoding/Msgpack.d.ts +81 -12
  867. package/dist/unstable/encoding/Msgpack.d.ts.map +1 -1
  868. package/dist/unstable/encoding/Msgpack.js +75 -9
  869. package/dist/unstable/encoding/Msgpack.js.map +1 -1
  870. package/dist/unstable/encoding/Ndjson.d.ts +149 -21
  871. package/dist/unstable/encoding/Ndjson.d.ts.map +1 -1
  872. package/dist/unstable/encoding/Ndjson.js +97 -13
  873. package/dist/unstable/encoding/Ndjson.js.map +1 -1
  874. package/dist/unstable/encoding/Sse.d.ts +109 -18
  875. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  876. package/dist/unstable/encoding/Sse.js +69 -13
  877. package/dist/unstable/encoding/Sse.js.map +1 -1
  878. package/dist/unstable/encoding/index.d.ts +49 -0
  879. package/dist/unstable/encoding/index.d.ts.map +1 -1
  880. package/dist/unstable/encoding/index.js +49 -0
  881. package/dist/unstable/encoding/index.js.map +1 -1
  882. package/dist/unstable/eventlog/Event.d.ts +115 -30
  883. package/dist/unstable/eventlog/Event.d.ts.map +1 -1
  884. package/dist/unstable/eventlog/Event.js +22 -2
  885. package/dist/unstable/eventlog/Event.js.map +1 -1
  886. package/dist/unstable/eventlog/EventGroup.d.ts +50 -17
  887. package/dist/unstable/eventlog/EventGroup.d.ts.map +1 -1
  888. package/dist/unstable/eventlog/EventGroup.js +24 -6
  889. package/dist/unstable/eventlog/EventGroup.js.map +1 -1
  890. package/dist/unstable/eventlog/EventJournal.d.ts +104 -20
  891. package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
  892. package/dist/unstable/eventlog/EventJournal.js +108 -16
  893. package/dist/unstable/eventlog/EventJournal.js.map +1 -1
  894. package/dist/unstable/eventlog/EventLog.d.ts +150 -31
  895. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  896. package/dist/unstable/eventlog/EventLog.js +111 -20
  897. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  898. package/dist/unstable/eventlog/EventLogEncryption.d.ts +42 -6
  899. package/dist/unstable/eventlog/EventLogEncryption.d.ts.map +1 -1
  900. package/dist/unstable/eventlog/EventLogEncryption.js +38 -5
  901. package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
  902. package/dist/unstable/eventlog/EventLogMessage.d.ts +92 -18
  903. package/dist/unstable/eventlog/EventLogMessage.d.ts.map +1 -1
  904. package/dist/unstable/eventlog/EventLogMessage.js +72 -16
  905. package/dist/unstable/eventlog/EventLogMessage.js.map +1 -1
  906. package/dist/unstable/eventlog/EventLogRemote.d.ts +35 -8
  907. package/dist/unstable/eventlog/EventLogRemote.d.ts.map +1 -1
  908. package/dist/unstable/eventlog/EventLogRemote.js +54 -8
  909. package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
  910. package/dist/unstable/eventlog/EventLogServer.d.ts +17 -3
  911. package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
  912. package/dist/unstable/eventlog/EventLogServer.js +17 -3
  913. package/dist/unstable/eventlog/EventLogServer.js.map +1 -1
  914. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +32 -6
  915. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  916. package/dist/unstable/eventlog/EventLogServerEncrypted.js +52 -6
  917. package/dist/unstable/eventlog/EventLogServerEncrypted.js.map +1 -1
  918. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +74 -16
  919. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
  920. package/dist/unstable/eventlog/EventLogServerUnencrypted.js +90 -16
  921. package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -1
  922. package/dist/unstable/eventlog/EventLogSessionAuth.d.ts +59 -15
  923. package/dist/unstable/eventlog/EventLogSessionAuth.d.ts.map +1 -1
  924. package/dist/unstable/eventlog/EventLogSessionAuth.js +73 -14
  925. package/dist/unstable/eventlog/EventLogSessionAuth.js.map +1 -1
  926. package/dist/unstable/eventlog/SqlEventJournal.d.ts +10 -2
  927. package/dist/unstable/eventlog/SqlEventJournal.d.ts.map +1 -1
  928. package/dist/unstable/eventlog/SqlEventJournal.js +28 -2
  929. package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -1
  930. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.d.ts +32 -3
  931. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
  932. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js +32 -3
  933. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
  934. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.d.ts +10 -2
  935. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -1
  936. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js +28 -2
  937. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  938. package/dist/unstable/eventlog/index.d.ts +240 -0
  939. package/dist/unstable/eventlog/index.d.ts.map +1 -1
  940. package/dist/unstable/eventlog/index.js +240 -0
  941. package/dist/unstable/eventlog/index.js.map +1 -1
  942. package/dist/unstable/http/Cookies.d.ts +156 -77
  943. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  944. package/dist/unstable/http/Cookies.js +93 -39
  945. package/dist/unstable/http/Cookies.js.map +1 -1
  946. package/dist/unstable/http/Etag.d.ts +40 -7
  947. package/dist/unstable/http/Etag.d.ts.map +1 -1
  948. package/dist/unstable/http/Etag.js +27 -4
  949. package/dist/unstable/http/Etag.js.map +1 -1
  950. package/dist/unstable/http/FetchHttpClient.d.ts +29 -3
  951. package/dist/unstable/http/FetchHttpClient.d.ts.map +1 -1
  952. package/dist/unstable/http/FetchHttpClient.js +33 -4
  953. package/dist/unstable/http/FetchHttpClient.js.map +1 -1
  954. package/dist/unstable/http/FindMyWay.d.ts +1 -1
  955. package/dist/unstable/http/FindMyWay.js +1 -1
  956. package/dist/unstable/http/Headers.d.ts +182 -36
  957. package/dist/unstable/http/Headers.d.ts.map +1 -1
  958. package/dist/unstable/http/Headers.js +86 -16
  959. package/dist/unstable/http/Headers.js.map +1 -1
  960. package/dist/unstable/http/HttpBody.d.ts +114 -26
  961. package/dist/unstable/http/HttpBody.d.ts.map +1 -1
  962. package/dist/unstable/http/HttpBody.js +98 -20
  963. package/dist/unstable/http/HttpBody.js.map +1 -1
  964. package/dist/unstable/http/HttpClient.d.ts +204 -96
  965. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  966. package/dist/unstable/http/HttpClient.js +85 -38
  967. package/dist/unstable/http/HttpClient.js.map +1 -1
  968. package/dist/unstable/http/HttpClientError.d.ts +68 -12
  969. package/dist/unstable/http/HttpClientError.d.ts.map +1 -1
  970. package/dist/unstable/http/HttpClientError.js +71 -9
  971. package/dist/unstable/http/HttpClientError.js.map +1 -1
  972. package/dist/unstable/http/HttpClientRequest.d.ts +318 -100
  973. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  974. package/dist/unstable/http/HttpClientRequest.js +151 -45
  975. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  976. package/dist/unstable/http/HttpClientResponse.d.ts +59 -16
  977. package/dist/unstable/http/HttpClientResponse.d.ts.map +1 -1
  978. package/dist/unstable/http/HttpClientResponse.js +44 -11
  979. package/dist/unstable/http/HttpClientResponse.js.map +1 -1
  980. package/dist/unstable/http/HttpEffect.d.ts +42 -16
  981. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  982. package/dist/unstable/http/HttpEffect.js +33 -13
  983. package/dist/unstable/http/HttpEffect.js.map +1 -1
  984. package/dist/unstable/http/HttpIncomingMessage.d.ts +48 -7
  985. package/dist/unstable/http/HttpIncomingMessage.d.ts.map +1 -1
  986. package/dist/unstable/http/HttpIncomingMessage.js +45 -6
  987. package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
  988. package/dist/unstable/http/HttpMethod.d.ts +38 -6
  989. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  990. package/dist/unstable/http/HttpMethod.js +27 -2
  991. package/dist/unstable/http/HttpMethod.js.map +1 -1
  992. package/dist/unstable/http/HttpMiddleware.d.ts +38 -11
  993. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  994. package/dist/unstable/http/HttpMiddleware.js +52 -10
  995. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  996. package/dist/unstable/http/HttpPlatform.d.ts +34 -3
  997. package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
  998. package/dist/unstable/http/HttpPlatform.js +34 -3
  999. package/dist/unstable/http/HttpPlatform.js.map +1 -1
  1000. package/dist/unstable/http/HttpRouter.d.ts +209 -62
  1001. package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
  1002. package/dist/unstable/http/HttpRouter.js +136 -41
  1003. package/dist/unstable/http/HttpRouter.js.map +1 -1
  1004. package/dist/unstable/http/HttpServer.d.ts +151 -22
  1005. package/dist/unstable/http/HttpServer.d.ts.map +1 -1
  1006. package/dist/unstable/http/HttpServer.js +76 -11
  1007. package/dist/unstable/http/HttpServer.js.map +1 -1
  1008. package/dist/unstable/http/HttpServerError.d.ts +93 -10
  1009. package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
  1010. package/dist/unstable/http/HttpServerError.js +85 -8
  1011. package/dist/unstable/http/HttpServerError.js.map +1 -1
  1012. package/dist/unstable/http/HttpServerRequest.d.ts +125 -21
  1013. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  1014. package/dist/unstable/http/HttpServerRequest.js +101 -20
  1015. package/dist/unstable/http/HttpServerRequest.js.map +1 -1
  1016. package/dist/unstable/http/HttpServerRespondable.d.ts +32 -6
  1017. package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
  1018. package/dist/unstable/http/HttpServerRespondable.js +43 -5
  1019. package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
  1020. package/dist/unstable/http/HttpServerResponse.d.ts +391 -67
  1021. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  1022. package/dist/unstable/http/HttpServerResponse.js +205 -33
  1023. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  1024. package/dist/unstable/http/HttpStaticServer.d.ts +24 -8
  1025. package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -1
  1026. package/dist/unstable/http/HttpStaticServer.js +24 -8
  1027. package/dist/unstable/http/HttpStaticServer.js.map +1 -1
  1028. package/dist/unstable/http/HttpTraceContext.d.ts +53 -6
  1029. package/dist/unstable/http/HttpTraceContext.d.ts.map +1 -1
  1030. package/dist/unstable/http/HttpTraceContext.js +47 -5
  1031. package/dist/unstable/http/HttpTraceContext.js.map +1 -1
  1032. package/dist/unstable/http/Multipart.d.ts +179 -28
  1033. package/dist/unstable/http/Multipart.d.ts.map +1 -1
  1034. package/dist/unstable/http/Multipart.js +131 -19
  1035. package/dist/unstable/http/Multipart.js.map +1 -1
  1036. package/dist/unstable/http/Multipasta/HeadersParser.d.ts +1 -1
  1037. package/dist/unstable/http/Multipasta/HeadersParser.js +1 -1
  1038. package/dist/unstable/http/Multipasta/Node.d.ts +1 -1
  1039. package/dist/unstable/http/Multipasta/Node.js +1 -1
  1040. package/dist/unstable/http/Multipasta/Search.d.ts +1 -1
  1041. package/dist/unstable/http/Multipasta/Search.js +1 -1
  1042. package/dist/unstable/http/Multipasta/Web.d.ts +1 -1
  1043. package/dist/unstable/http/Multipasta/Web.js +1 -1
  1044. package/dist/unstable/http/Multipasta.d.ts +1 -1
  1045. package/dist/unstable/http/Multipasta.js +1 -1
  1046. package/dist/unstable/http/Template.d.ts +53 -1
  1047. package/dist/unstable/http/Template.d.ts.map +1 -1
  1048. package/dist/unstable/http/Template.js +26 -0
  1049. package/dist/unstable/http/Template.js.map +1 -1
  1050. package/dist/unstable/http/Url.d.ts +70 -56
  1051. package/dist/unstable/http/Url.d.ts.map +1 -1
  1052. package/dist/unstable/http/Url.js +35 -21
  1053. package/dist/unstable/http/Url.js.map +1 -1
  1054. package/dist/unstable/http/UrlParams.d.ts +237 -51
  1055. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  1056. package/dist/unstable/http/UrlParams.js +120 -25
  1057. package/dist/unstable/http/UrlParams.js.map +1 -1
  1058. package/dist/unstable/http/index.d.ts +452 -0
  1059. package/dist/unstable/http/index.d.ts.map +1 -1
  1060. package/dist/unstable/http/index.js +452 -0
  1061. package/dist/unstable/http/index.js.map +1 -1
  1062. package/dist/unstable/httpapi/HttpApi.d.ts +49 -14
  1063. package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
  1064. package/dist/unstable/httpapi/HttpApi.js +14 -8
  1065. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  1066. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +54 -16
  1067. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  1068. package/dist/unstable/httpapi/HttpApiBuilder.js +44 -6
  1069. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  1070. package/dist/unstable/httpapi/HttpApiClient.d.ts +57 -15
  1071. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  1072. package/dist/unstable/httpapi/HttpApiClient.js +42 -6
  1073. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  1074. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +214 -59
  1075. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  1076. package/dist/unstable/httpapi/HttpApiEndpoint.js +53 -9
  1077. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  1078. package/dist/unstable/httpapi/HttpApiError.d.ts +81 -1
  1079. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  1080. package/dist/unstable/httpapi/HttpApiError.js +98 -1
  1081. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  1082. package/dist/unstable/httpapi/HttpApiGroup.d.ts +87 -20
  1083. package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
  1084. package/dist/unstable/httpapi/HttpApiGroup.js +5 -2
  1085. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  1086. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +113 -22
  1087. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  1088. package/dist/unstable/httpapi/HttpApiMiddleware.js +49 -5
  1089. package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
  1090. package/dist/unstable/httpapi/HttpApiScalar.d.ts +19 -4
  1091. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  1092. package/dist/unstable/httpapi/HttpApiScalar.js +32 -2
  1093. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  1094. package/dist/unstable/httpapi/HttpApiSchema.d.ts +86 -38
  1095. package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
  1096. package/dist/unstable/httpapi/HttpApiSchema.js +59 -35
  1097. package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
  1098. package/dist/unstable/httpapi/HttpApiSecurity.d.ts +73 -17
  1099. package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
  1100. package/dist/unstable/httpapi/HttpApiSecurity.js +38 -5
  1101. package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
  1102. package/dist/unstable/httpapi/HttpApiSwagger.d.ts +4 -3
  1103. package/dist/unstable/httpapi/HttpApiSwagger.d.ts.map +1 -1
  1104. package/dist/unstable/httpapi/HttpApiSwagger.js +23 -3
  1105. package/dist/unstable/httpapi/HttpApiSwagger.js.map +1 -1
  1106. package/dist/unstable/httpapi/HttpApiTest.d.ts +6 -1
  1107. package/dist/unstable/httpapi/HttpApiTest.d.ts.map +1 -1
  1108. package/dist/unstable/httpapi/HttpApiTest.js +26 -1
  1109. package/dist/unstable/httpapi/HttpApiTest.js.map +1 -1
  1110. package/dist/unstable/httpapi/OpenApi.d.ts +86 -15
  1111. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  1112. package/dist/unstable/httpapi/OpenApi.js +73 -15
  1113. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  1114. package/dist/unstable/httpapi/index.d.ts +310 -25
  1115. package/dist/unstable/httpapi/index.d.ts.map +1 -1
  1116. package/dist/unstable/httpapi/index.js +310 -25
  1117. package/dist/unstable/httpapi/index.js.map +1 -1
  1118. package/dist/unstable/observability/Otlp.d.ts +33 -3
  1119. package/dist/unstable/observability/Otlp.d.ts.map +1 -1
  1120. package/dist/unstable/observability/Otlp.js +14 -3
  1121. package/dist/unstable/observability/Otlp.js.map +1 -1
  1122. package/dist/unstable/observability/OtlpExporter.d.ts +8 -1
  1123. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  1124. package/dist/unstable/observability/OtlpExporter.js +32 -1
  1125. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  1126. package/dist/unstable/observability/OtlpLogger.d.ts +15 -2
  1127. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  1128. package/dist/unstable/observability/OtlpLogger.js +29 -2
  1129. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  1130. package/dist/unstable/observability/OtlpMetrics.d.ts +17 -5
  1131. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  1132. package/dist/unstable/observability/OtlpMetrics.js +32 -2
  1133. package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
  1134. package/dist/unstable/observability/OtlpResource.d.ts +49 -12
  1135. package/dist/unstable/observability/OtlpResource.d.ts.map +1 -1
  1136. package/dist/unstable/observability/OtlpResource.js +47 -5
  1137. package/dist/unstable/observability/OtlpResource.js.map +1 -1
  1138. package/dist/unstable/observability/OtlpSerialization.d.ts +28 -3
  1139. package/dist/unstable/observability/OtlpSerialization.d.ts.map +1 -1
  1140. package/dist/unstable/observability/OtlpSerialization.js +28 -3
  1141. package/dist/unstable/observability/OtlpSerialization.js.map +1 -1
  1142. package/dist/unstable/observability/OtlpTracer.d.ts +19 -2
  1143. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  1144. package/dist/unstable/observability/OtlpTracer.js +32 -2
  1145. package/dist/unstable/observability/OtlpTracer.js.map +1 -1
  1146. package/dist/unstable/observability/PrometheusMetrics.d.ts +36 -16
  1147. package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
  1148. package/dist/unstable/observability/PrometheusMetrics.js +9 -7
  1149. package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
  1150. package/dist/unstable/observability/index.d.ts +160 -3
  1151. package/dist/unstable/observability/index.d.ts.map +1 -1
  1152. package/dist/unstable/observability/index.js +160 -3
  1153. package/dist/unstable/observability/index.js.map +1 -1
  1154. package/dist/unstable/persistence/KeyValueStore.d.ts +93 -18
  1155. package/dist/unstable/persistence/KeyValueStore.d.ts.map +1 -1
  1156. package/dist/unstable/persistence/KeyValueStore.js +81 -21
  1157. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  1158. package/dist/unstable/persistence/Persistable.d.ts +76 -15
  1159. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  1160. package/dist/unstable/persistence/Persistable.js +22 -5
  1161. package/dist/unstable/persistence/Persistable.js.map +1 -1
  1162. package/dist/unstable/persistence/PersistedCache.d.ts +27 -2
  1163. package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
  1164. package/dist/unstable/persistence/PersistedCache.js +24 -1
  1165. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  1166. package/dist/unstable/persistence/PersistedQueue.d.ts +73 -16
  1167. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  1168. package/dist/unstable/persistence/PersistedQueue.js +60 -13
  1169. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  1170. package/dist/unstable/persistence/Persistence.d.ts +98 -16
  1171. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  1172. package/dist/unstable/persistence/Persistence.js +91 -14
  1173. package/dist/unstable/persistence/Persistence.js.map +1 -1
  1174. package/dist/unstable/persistence/RateLimiter.d.ts +101 -21
  1175. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  1176. package/dist/unstable/persistence/RateLimiter.js +85 -16
  1177. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  1178. package/dist/unstable/persistence/Redis.d.ts +26 -5
  1179. package/dist/unstable/persistence/Redis.d.ts.map +1 -1
  1180. package/dist/unstable/persistence/Redis.js +36 -4
  1181. package/dist/unstable/persistence/Redis.js.map +1 -1
  1182. package/dist/unstable/persistence/index.d.ts +147 -0
  1183. package/dist/unstable/persistence/index.d.ts.map +1 -1
  1184. package/dist/unstable/persistence/index.js +147 -0
  1185. package/dist/unstable/persistence/index.js.map +1 -1
  1186. package/dist/unstable/process/ChildProcess.d.ts +87 -64
  1187. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  1188. package/dist/unstable/process/ChildProcess.js +25 -18
  1189. package/dist/unstable/process/ChildProcess.js.map +1 -1
  1190. package/dist/unstable/process/ChildProcessSpawner.d.ts +23 -12
  1191. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  1192. package/dist/unstable/process/ChildProcessSpawner.js +11 -6
  1193. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  1194. package/dist/unstable/process/index.d.ts +2 -1
  1195. package/dist/unstable/process/index.d.ts.map +1 -1
  1196. package/dist/unstable/process/index.js +2 -1
  1197. package/dist/unstable/process/index.js.map +1 -1
  1198. package/dist/unstable/reactivity/AsyncResult.d.ts +198 -59
  1199. package/dist/unstable/reactivity/AsyncResult.d.ts.map +1 -1
  1200. package/dist/unstable/reactivity/AsyncResult.js +121 -36
  1201. package/dist/unstable/reactivity/AsyncResult.js.map +1 -1
  1202. package/dist/unstable/reactivity/Atom.d.ts +544 -130
  1203. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  1204. package/dist/unstable/reactivity/Atom.js +252 -58
  1205. package/dist/unstable/reactivity/Atom.js.map +1 -1
  1206. package/dist/unstable/reactivity/AtomHttpApi.d.ts +41 -2
  1207. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  1208. package/dist/unstable/reactivity/AtomHttpApi.js +35 -1
  1209. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  1210. package/dist/unstable/reactivity/AtomRef.d.ts +51 -7
  1211. package/dist/unstable/reactivity/AtomRef.d.ts.map +1 -1
  1212. package/dist/unstable/reactivity/AtomRef.js +29 -3
  1213. package/dist/unstable/reactivity/AtomRef.js.map +1 -1
  1214. package/dist/unstable/reactivity/AtomRegistry.d.ts +135 -21
  1215. package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
  1216. package/dist/unstable/reactivity/AtomRegistry.js +69 -10
  1217. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  1218. package/dist/unstable/reactivity/AtomRpc.d.ts +36 -2
  1219. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  1220. package/dist/unstable/reactivity/AtomRpc.js +29 -1
  1221. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  1222. package/dist/unstable/reactivity/Hydration.d.ts +28 -5
  1223. package/dist/unstable/reactivity/Hydration.d.ts.map +1 -1
  1224. package/dist/unstable/reactivity/Hydration.js +35 -3
  1225. package/dist/unstable/reactivity/Hydration.js.map +1 -1
  1226. package/dist/unstable/reactivity/Reactivity.d.ts +94 -13
  1227. package/dist/unstable/reactivity/Reactivity.d.ts.map +1 -1
  1228. package/dist/unstable/reactivity/Reactivity.js +60 -7
  1229. package/dist/unstable/reactivity/Reactivity.js.map +1 -1
  1230. package/dist/unstable/reactivity/index.d.ts +167 -0
  1231. package/dist/unstable/reactivity/index.d.ts.map +1 -1
  1232. package/dist/unstable/reactivity/index.js +167 -0
  1233. package/dist/unstable/reactivity/index.js.map +1 -1
  1234. package/dist/unstable/rpc/Rpc.d.ts +254 -56
  1235. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  1236. package/dist/unstable/rpc/Rpc.js +44 -11
  1237. package/dist/unstable/rpc/Rpc.js.map +1 -1
  1238. package/dist/unstable/rpc/RpcClient.d.ts +80 -19
  1239. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  1240. package/dist/unstable/rpc/RpcClient.js +52 -12
  1241. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  1242. package/dist/unstable/rpc/RpcClientError.d.ts +26 -2
  1243. package/dist/unstable/rpc/RpcClientError.d.ts.map +1 -1
  1244. package/dist/unstable/rpc/RpcClientError.js +26 -2
  1245. package/dist/unstable/rpc/RpcClientError.js.map +1 -1
  1246. package/dist/unstable/rpc/RpcGroup.d.ts +51 -8
  1247. package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
  1248. package/dist/unstable/rpc/RpcGroup.js +3 -1
  1249. package/dist/unstable/rpc/RpcGroup.js.map +1 -1
  1250. package/dist/unstable/rpc/RpcMessage.d.ts +128 -32
  1251. package/dist/unstable/rpc/RpcMessage.d.ts.map +1 -1
  1252. package/dist/unstable/rpc/RpcMessage.js +23 -7
  1253. package/dist/unstable/rpc/RpcMessage.js.map +1 -1
  1254. package/dist/unstable/rpc/RpcMiddleware.d.ts +100 -20
  1255. package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
  1256. package/dist/unstable/rpc/RpcMiddleware.js +39 -3
  1257. package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
  1258. package/dist/unstable/rpc/RpcSchema.d.ts +38 -4
  1259. package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
  1260. package/dist/unstable/rpc/RpcSchema.js +34 -3
  1261. package/dist/unstable/rpc/RpcSchema.js.map +1 -1
  1262. package/dist/unstable/rpc/RpcSerialization.d.ts +60 -13
  1263. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  1264. package/dist/unstable/rpc/RpcSerialization.js +56 -12
  1265. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  1266. package/dist/unstable/rpc/RpcServer.d.ts +73 -23
  1267. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  1268. package/dist/unstable/rpc/RpcServer.js +69 -22
  1269. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  1270. package/dist/unstable/rpc/RpcTest.d.ts +20 -1
  1271. package/dist/unstable/rpc/RpcTest.d.ts.map +1 -1
  1272. package/dist/unstable/rpc/RpcTest.js +20 -1
  1273. package/dist/unstable/rpc/RpcTest.js.map +1 -1
  1274. package/dist/unstable/rpc/RpcWorker.d.ts +39 -6
  1275. package/dist/unstable/rpc/RpcWorker.d.ts.map +1 -1
  1276. package/dist/unstable/rpc/RpcWorker.js +16 -4
  1277. package/dist/unstable/rpc/RpcWorker.js.map +1 -1
  1278. package/dist/unstable/rpc/Utils.d.ts +10 -0
  1279. package/dist/unstable/rpc/Utils.d.ts.map +1 -1
  1280. package/dist/unstable/rpc/Utils.js +10 -0
  1281. package/dist/unstable/rpc/Utils.js.map +1 -1
  1282. package/dist/unstable/rpc/index.d.ts +272 -0
  1283. package/dist/unstable/rpc/index.d.ts.map +1 -1
  1284. package/dist/unstable/rpc/index.js +272 -0
  1285. package/dist/unstable/rpc/index.js.map +1 -1
  1286. package/dist/unstable/schema/Model.d.ts +192 -59
  1287. package/dist/unstable/schema/Model.d.ts.map +1 -1
  1288. package/dist/unstable/schema/Model.js +122 -38
  1289. package/dist/unstable/schema/Model.js.map +1 -1
  1290. package/dist/unstable/schema/VariantSchema.d.ts +101 -24
  1291. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  1292. package/dist/unstable/schema/VariantSchema.js +22 -6
  1293. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  1294. package/dist/unstable/schema/index.d.ts +37 -0
  1295. package/dist/unstable/schema/index.d.ts.map +1 -1
  1296. package/dist/unstable/schema/index.js +37 -0
  1297. package/dist/unstable/schema/index.js.map +1 -1
  1298. package/dist/unstable/socket/Socket.d.ts +168 -34
  1299. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  1300. package/dist/unstable/socket/Socket.js +124 -28
  1301. package/dist/unstable/socket/Socket.js.map +1 -1
  1302. package/dist/unstable/socket/SocketServer.d.ts +58 -10
  1303. package/dist/unstable/socket/SocketServer.d.ts.map +1 -1
  1304. package/dist/unstable/socket/SocketServer.js +43 -5
  1305. package/dist/unstable/socket/SocketServer.js.map +1 -1
  1306. package/dist/unstable/socket/index.d.ts +44 -0
  1307. package/dist/unstable/socket/index.d.ts.map +1 -1
  1308. package/dist/unstable/socket/index.js +44 -0
  1309. package/dist/unstable/socket/index.js.map +1 -1
  1310. package/dist/unstable/sql/Migrator.d.ts +40 -9
  1311. package/dist/unstable/sql/Migrator.d.ts.map +1 -1
  1312. package/dist/unstable/sql/Migrator.js +45 -5
  1313. package/dist/unstable/sql/Migrator.js.map +1 -1
  1314. package/dist/unstable/sql/SqlClient.d.ts +38 -2
  1315. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  1316. package/dist/unstable/sql/SqlClient.js +40 -1
  1317. package/dist/unstable/sql/SqlClient.js.map +1 -1
  1318. package/dist/unstable/sql/SqlConnection.d.ts +34 -3
  1319. package/dist/unstable/sql/SqlConnection.d.ts.map +1 -1
  1320. package/dist/unstable/sql/SqlConnection.js +22 -0
  1321. package/dist/unstable/sql/SqlConnection.js.map +1 -1
  1322. package/dist/unstable/sql/SqlError.d.ts +117 -0
  1323. package/dist/unstable/sql/SqlError.d.ts.map +1 -1
  1324. package/dist/unstable/sql/SqlError.js +131 -0
  1325. package/dist/unstable/sql/SqlError.js.map +1 -1
  1326. package/dist/unstable/sql/SqlModel.d.ts +25 -5
  1327. package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
  1328. package/dist/unstable/sql/SqlModel.js +8 -4
  1329. package/dist/unstable/sql/SqlModel.js.map +1 -1
  1330. package/dist/unstable/sql/SqlResolver.d.ts +56 -13
  1331. package/dist/unstable/sql/SqlResolver.d.ts.map +1 -1
  1332. package/dist/unstable/sql/SqlResolver.js +44 -10
  1333. package/dist/unstable/sql/SqlResolver.js.map +1 -1
  1334. package/dist/unstable/sql/SqlSchema.d.ts +29 -8
  1335. package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
  1336. package/dist/unstable/sql/SqlSchema.js +29 -8
  1337. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  1338. package/dist/unstable/sql/SqlStream.d.ts +4 -0
  1339. package/dist/unstable/sql/SqlStream.d.ts.map +1 -1
  1340. package/dist/unstable/sql/SqlStream.js +24 -0
  1341. package/dist/unstable/sql/SqlStream.js.map +1 -1
  1342. package/dist/unstable/sql/Statement.d.ts +151 -24
  1343. package/dist/unstable/sql/Statement.d.ts.map +1 -1
  1344. package/dist/unstable/sql/Statement.js +91 -6
  1345. package/dist/unstable/sql/Statement.js.map +1 -1
  1346. package/dist/unstable/sql/index.d.ts +179 -1
  1347. package/dist/unstable/sql/index.d.ts.map +1 -1
  1348. package/dist/unstable/sql/index.js +179 -1
  1349. package/dist/unstable/sql/index.js.map +1 -1
  1350. package/dist/unstable/workers/Transferable.d.ts +72 -20
  1351. package/dist/unstable/workers/Transferable.d.ts.map +1 -1
  1352. package/dist/unstable/workers/Transferable.js +57 -14
  1353. package/dist/unstable/workers/Transferable.js.map +1 -1
  1354. package/dist/unstable/workers/Worker.d.ts +61 -8
  1355. package/dist/unstable/workers/Worker.d.ts.map +1 -1
  1356. package/dist/unstable/workers/Worker.js +44 -4
  1357. package/dist/unstable/workers/Worker.js.map +1 -1
  1358. package/dist/unstable/workers/WorkerError.d.ts +31 -9
  1359. package/dist/unstable/workers/WorkerError.d.ts.map +1 -1
  1360. package/dist/unstable/workers/WorkerError.js +44 -7
  1361. package/dist/unstable/workers/WorkerError.js.map +1 -1
  1362. package/dist/unstable/workers/WorkerRunner.d.ts +32 -3
  1363. package/dist/unstable/workers/WorkerRunner.d.ts.map +1 -1
  1364. package/dist/unstable/workers/WorkerRunner.js +24 -1
  1365. package/dist/unstable/workers/WorkerRunner.js.map +1 -1
  1366. package/dist/unstable/workers/index.d.ts +81 -1
  1367. package/dist/unstable/workers/index.d.ts.map +1 -1
  1368. package/dist/unstable/workers/index.js +81 -1
  1369. package/dist/unstable/workers/index.js.map +1 -1
  1370. package/dist/unstable/workflow/Activity.d.ts +61 -10
  1371. package/dist/unstable/workflow/Activity.d.ts.map +1 -1
  1372. package/dist/unstable/workflow/Activity.js +20 -5
  1373. package/dist/unstable/workflow/Activity.js.map +1 -1
  1374. package/dist/unstable/workflow/DurableClock.d.ts +12 -3
  1375. package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
  1376. package/dist/unstable/workflow/DurableClock.js +22 -2
  1377. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  1378. package/dist/unstable/workflow/DurableDeferred.d.ts +128 -31
  1379. package/dist/unstable/workflow/DurableDeferred.d.ts.map +1 -1
  1380. package/dist/unstable/workflow/DurableDeferred.js +77 -13
  1381. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  1382. package/dist/unstable/workflow/DurableQueue.d.ts +33 -8
  1383. package/dist/unstable/workflow/DurableQueue.d.ts.map +1 -1
  1384. package/dist/unstable/workflow/DurableQueue.js +26 -6
  1385. package/dist/unstable/workflow/DurableQueue.js.map +1 -1
  1386. package/dist/unstable/workflow/Workflow.d.ts +102 -31
  1387. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  1388. package/dist/unstable/workflow/Workflow.js +75 -19
  1389. package/dist/unstable/workflow/Workflow.js.map +1 -1
  1390. package/dist/unstable/workflow/WorkflowEngine.d.ts +40 -5
  1391. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  1392. package/dist/unstable/workflow/WorkflowEngine.js +16 -4
  1393. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  1394. package/dist/unstable/workflow/WorkflowProxy.d.ts +40 -12
  1395. package/dist/unstable/workflow/WorkflowProxy.d.ts.map +1 -1
  1396. package/dist/unstable/workflow/WorkflowProxy.js +8 -12
  1397. package/dist/unstable/workflow/WorkflowProxy.js.map +1 -1
  1398. package/dist/unstable/workflow/WorkflowProxyServer.d.ts +37 -2
  1399. package/dist/unstable/workflow/WorkflowProxyServer.d.ts.map +1 -1
  1400. package/dist/unstable/workflow/WorkflowProxyServer.js +12 -6
  1401. package/dist/unstable/workflow/WorkflowProxyServer.js.map +1 -1
  1402. package/dist/unstable/workflow/index.d.ts +160 -0
  1403. package/dist/unstable/workflow/index.d.ts.map +1 -1
  1404. package/dist/unstable/workflow/index.js +160 -0
  1405. package/dist/unstable/workflow/index.js.map +1 -1
  1406. package/package.json +11 -11
  1407. package/src/Array.ts +151 -106
  1408. package/src/BigDecimal.ts +620 -553
  1409. package/src/BigInt.ts +342 -274
  1410. package/src/Boolean.ts +189 -156
  1411. package/src/Brand.ts +30 -5
  1412. package/src/Cache.ts +334 -167
  1413. package/src/Cause.ts +84 -73
  1414. package/src/Channel.ts +1639 -667
  1415. package/src/ChannelSchema.ts +137 -12
  1416. package/src/Chunk.ts +575 -429
  1417. package/src/Clock.ts +16 -9
  1418. package/src/Combiner.ts +11 -5
  1419. package/src/Config.ts +80 -68
  1420. package/src/ConfigProvider.ts +33 -32
  1421. package/src/Console.ts +88 -58
  1422. package/src/Context.ts +401 -190
  1423. package/src/Cron.ts +109 -48
  1424. package/src/Crypto.ts +327 -0
  1425. package/src/Data.ts +9 -3
  1426. package/src/DateTime.ts +893 -464
  1427. package/src/Deferred.ts +367 -175
  1428. package/src/Differ.ts +44 -2
  1429. package/src/Duration.ts +333 -186
  1430. package/src/Effect.ts +2201 -2289
  1431. package/src/Effectable.ts +38 -3
  1432. package/src/Encoding.ts +78 -28
  1433. package/src/Equal.ts +4 -3
  1434. package/src/Equivalence.ts +18 -24
  1435. package/src/ErrorReporter.ts +66 -82
  1436. package/src/ExecutionPlan.ts +106 -12
  1437. package/src/Exit.ts +6 -5
  1438. package/src/Fiber.ts +71 -40
  1439. package/src/FiberHandle.ts +157 -57
  1440. package/src/FiberMap.ts +328 -163
  1441. package/src/FiberSet.ts +130 -52
  1442. package/src/FileSystem.ts +104 -74
  1443. package/src/Filter.ts +166 -88
  1444. package/src/Formatter.ts +4 -70
  1445. package/src/Function.ts +218 -151
  1446. package/src/Graph.ts +714 -415
  1447. package/src/HKT.ts +29 -13
  1448. package/src/Hash.ts +35 -24
  1449. package/src/HashMap.ts +540 -388
  1450. package/src/HashRing.ts +111 -34
  1451. package/src/HashSet.ts +239 -153
  1452. package/src/Inspectable.ts +30 -17
  1453. package/src/Iterable.ts +336 -222
  1454. package/src/JsonPatch.ts +13 -10
  1455. package/src/JsonPointer.ts +13 -11
  1456. package/src/JsonSchema.ts +16 -0
  1457. package/src/Latch.ts +97 -26
  1458. package/src/Layer.ts +547 -445
  1459. package/src/LayerMap.ts +99 -26
  1460. package/src/LogLevel.ts +92 -131
  1461. package/src/Logger.ts +365 -297
  1462. package/src/ManagedRuntime.ts +78 -19
  1463. package/src/Match.ts +135 -161
  1464. package/src/Metric.ts +362 -313
  1465. package/src/MutableHashMap.ts +202 -127
  1466. package/src/MutableHashSet.ts +120 -52
  1467. package/src/MutableList.ts +157 -100
  1468. package/src/MutableRef.ts +129 -90
  1469. package/src/Newtype.ts +15 -2
  1470. package/src/NonEmptyIterable.ts +38 -48
  1471. package/src/Number.ts +261 -205
  1472. package/src/Optic.ts +6 -7
  1473. package/src/Option.ts +133 -156
  1474. package/src/Order.ts +6 -6
  1475. package/src/Ordering.ts +56 -45
  1476. package/src/PartitionedSemaphore.ts +225 -40
  1477. package/src/Path.ts +77 -13
  1478. package/src/Pipeable.ts +82 -24
  1479. package/src/PlatformError.ts +74 -6
  1480. package/src/Pool.ts +94 -31
  1481. package/src/Predicate.ts +17 -24
  1482. package/src/PrimaryKey.ts +11 -3
  1483. package/src/PubSub.ts +385 -309
  1484. package/src/Pull.ts +94 -25
  1485. package/src/Queue.ts +303 -184
  1486. package/src/Random.ts +69 -93
  1487. package/src/RcMap.ts +151 -141
  1488. package/src/RcRef.ts +68 -32
  1489. package/src/Record.ts +282 -137
  1490. package/src/Redactable.ts +7 -5
  1491. package/src/Redacted.ts +63 -34
  1492. package/src/Reducer.ts +3 -1
  1493. package/src/Ref.ts +173 -134
  1494. package/src/References.ts +73 -31
  1495. package/src/RegExp.ts +12 -6
  1496. package/src/Request.ts +159 -34
  1497. package/src/RequestResolver.ts +278 -121
  1498. package/src/Resource.ts +45 -7
  1499. package/src/Result.ts +137 -153
  1500. package/src/Runtime.ts +42 -21
  1501. package/src/Schedule.ts +585 -613
  1502. package/src/Scheduler.ts +44 -7
  1503. package/src/Schema.ts +1309 -615
  1504. package/src/SchemaAST.ts +123 -93
  1505. package/src/SchemaGetter.ts +52 -37
  1506. package/src/SchemaIssue.ts +19 -24
  1507. package/src/SchemaParser.ts +306 -85
  1508. package/src/SchemaRepresentation.ts +89 -77
  1509. package/src/SchemaTransformation.ts +97 -46
  1510. package/src/SchemaUtils.ts +24 -1
  1511. package/src/Scope.ts +107 -65
  1512. package/src/ScopedCache.ts +195 -59
  1513. package/src/ScopedRef.ts +28 -8
  1514. package/src/Semaphore.ts +61 -37
  1515. package/src/Sink.ts +461 -206
  1516. package/src/Stdio.ts +43 -6
  1517. package/src/Stream.ts +2361 -1613
  1518. package/src/String.ts +174 -97
  1519. package/src/Struct.ts +20 -18
  1520. package/src/SubscriptionRef.ts +309 -204
  1521. package/src/Symbol.ts +13 -5
  1522. package/src/SynchronizedRef.ts +278 -62
  1523. package/src/Take.ts +26 -2
  1524. package/src/Terminal.ts +40 -7
  1525. package/src/Tracer.ts +233 -59
  1526. package/src/Trie.ts +280 -245
  1527. package/src/Tuple.ts +34 -32
  1528. package/src/TxChunk.ts +200 -155
  1529. package/src/TxDeferred.ts +43 -29
  1530. package/src/TxHashMap.ts +370 -231
  1531. package/src/TxHashSet.ts +253 -159
  1532. package/src/TxPriorityQueue.ts +97 -65
  1533. package/src/TxPubSub.ts +77 -49
  1534. package/src/TxQueue.ts +277 -242
  1535. package/src/TxReentrantLock.ts +70 -47
  1536. package/src/TxRef.ts +69 -40
  1537. package/src/TxSemaphore.ts +101 -115
  1538. package/src/TxSubscriptionRef.ts +74 -50
  1539. package/src/Types.ts +31 -34
  1540. package/src/UndefinedOr.ts +62 -25
  1541. package/src/Unify.ts +72 -117
  1542. package/src/Utils.ts +5 -2
  1543. package/src/index.ts +1976 -420
  1544. package/src/internal/schema/schema.ts +1 -1
  1545. package/src/testing/FastCheck.ts +9 -6
  1546. package/src/testing/TestClock.ts +63 -35
  1547. package/src/testing/TestConsole.ts +54 -36
  1548. package/src/testing/TestSchema.ts +10 -8
  1549. package/src/testing/index.ts +34 -0
  1550. package/src/unstable/ai/AiError.ts +195 -137
  1551. package/src/unstable/ai/AnthropicStructuredOutput.ts +2 -2
  1552. package/src/unstable/ai/Chat.ts +68 -43
  1553. package/src/unstable/ai/EmbeddingModel.ts +12 -11
  1554. package/src/unstable/ai/IdGenerator.ts +28 -18
  1555. package/src/unstable/ai/LanguageModel.ts +35 -27
  1556. package/src/unstable/ai/McpSchema.ts +342 -119
  1557. package/src/unstable/ai/McpServer.ts +79 -20
  1558. package/src/unstable/ai/Model.ts +10 -12
  1559. package/src/unstable/ai/OpenAiStructuredOutput.ts +2 -2
  1560. package/src/unstable/ai/Prompt.ts +216 -192
  1561. package/src/unstable/ai/Response.ts +179 -167
  1562. package/src/unstable/ai/ResponseIdTracker.ts +43 -4
  1563. package/src/unstable/ai/Telemetry.ts +43 -33
  1564. package/src/unstable/ai/Tokenizer.ts +14 -9
  1565. package/src/unstable/ai/Tool.ts +168 -97
  1566. package/src/unstable/ai/Toolkit.ts +51 -46
  1567. package/src/unstable/ai/index.ts +121 -29
  1568. package/src/unstable/cli/Argument.ts +226 -134
  1569. package/src/unstable/cli/CliError.ts +96 -26
  1570. package/src/unstable/cli/CliOutput.ts +48 -19
  1571. package/src/unstable/cli/Command.ts +196 -115
  1572. package/src/unstable/cli/Completions.ts +7 -7
  1573. package/src/unstable/cli/Flag.ts +235 -142
  1574. package/src/unstable/cli/GlobalFlag.ts +41 -13
  1575. package/src/unstable/cli/HelpDoc.ts +39 -14
  1576. package/src/unstable/cli/Param.ts +395 -260
  1577. package/src/unstable/cli/Primitive.ts +79 -42
  1578. package/src/unstable/cli/Prompt.ts +207 -59
  1579. package/src/unstable/cli/index.ts +205 -6
  1580. package/src/unstable/cli/internal/ansi.ts +13 -0
  1581. package/src/unstable/cli/internal/command.ts +5 -1
  1582. package/src/unstable/cli/internal/config.ts +3 -0
  1583. package/src/unstable/cli/internal/lexer.ts +11 -0
  1584. package/src/unstable/cli/internal/parser.ts +0 -1
  1585. package/src/unstable/cluster/ClusterCron.ts +35 -1
  1586. package/src/unstable/cluster/ClusterError.ts +56 -7
  1587. package/src/unstable/cluster/ClusterMetrics.ts +39 -5
  1588. package/src/unstable/cluster/ClusterSchema.ts +61 -8
  1589. package/src/unstable/cluster/ClusterWorkflowEngine.ts +35 -2
  1590. package/src/unstable/cluster/DeliverAt.ts +39 -4
  1591. package/src/unstable/cluster/Entity.ts +106 -16
  1592. package/src/unstable/cluster/EntityAddress.ts +30 -2
  1593. package/src/unstable/cluster/EntityId.ts +18 -3
  1594. package/src/unstable/cluster/EntityProxy.ts +42 -14
  1595. package/src/unstable/cluster/EntityProxyServer.ts +45 -8
  1596. package/src/unstable/cluster/EntityResource.ts +43 -6
  1597. package/src/unstable/cluster/EntityType.ts +27 -3
  1598. package/src/unstable/cluster/Envelope.ts +128 -23
  1599. package/src/unstable/cluster/HttpRunner.ts +88 -13
  1600. package/src/unstable/cluster/K8sHttpClient.ts +49 -6
  1601. package/src/unstable/cluster/MachineId.ts +24 -3
  1602. package/src/unstable/cluster/Message.ts +102 -13
  1603. package/src/unstable/cluster/MessageStorage.ts +126 -21
  1604. package/src/unstable/cluster/Reply.ts +101 -12
  1605. package/src/unstable/cluster/Runner.ts +47 -17
  1606. package/src/unstable/cluster/RunnerAddress.ts +34 -2
  1607. package/src/unstable/cluster/RunnerHealth.ts +40 -12
  1608. package/src/unstable/cluster/RunnerServer.ts +31 -4
  1609. package/src/unstable/cluster/RunnerStorage.ts +42 -5
  1610. package/src/unstable/cluster/Runners.ts +76 -13
  1611. package/src/unstable/cluster/ShardId.ts +53 -5
  1612. package/src/unstable/cluster/Sharding.ts +35 -4
  1613. package/src/unstable/cluster/ShardingConfig.ts +75 -10
  1614. package/src/unstable/cluster/ShardingRegistrationEvent.ts +31 -7
  1615. package/src/unstable/cluster/SingleRunner.ts +23 -1
  1616. package/src/unstable/cluster/Singleton.ts +15 -1
  1617. package/src/unstable/cluster/SingletonAddress.ts +21 -1
  1618. package/src/unstable/cluster/Snowflake.ts +90 -19
  1619. package/src/unstable/cluster/SocketRunner.ts +29 -2
  1620. package/src/unstable/cluster/SqlMessageStorage.ts +27 -3
  1621. package/src/unstable/cluster/SqlRunnerStorage.ts +46 -7
  1622. package/src/unstable/cluster/TestRunner.ts +18 -1
  1623. package/src/unstable/cluster/index.ts +790 -0
  1624. package/src/unstable/cluster/internal/hash.ts +12 -0
  1625. package/src/unstable/devtools/DevTools.ts +26 -3
  1626. package/src/unstable/devtools/DevToolsClient.ts +32 -5
  1627. package/src/unstable/devtools/DevToolsSchema.ts +201 -44
  1628. package/src/unstable/devtools/DevToolsServer.ts +27 -2
  1629. package/src/unstable/devtools/index.ts +58 -0
  1630. package/src/unstable/encoding/Msgpack.ts +97 -12
  1631. package/src/unstable/encoding/Ndjson.ts +149 -21
  1632. package/src/unstable/encoding/Sse.ts +109 -18
  1633. package/src/unstable/encoding/index.ts +49 -0
  1634. package/src/unstable/eventlog/Event.ts +131 -30
  1635. package/src/unstable/eventlog/EventGroup.ts +50 -17
  1636. package/src/unstable/eventlog/EventJournal.ts +120 -20
  1637. package/src/unstable/eventlog/EventLog.ts +150 -31
  1638. package/src/unstable/eventlog/EventLogEncryption.ts +42 -6
  1639. package/src/unstable/eventlog/EventLogMessage.ts +92 -18
  1640. package/src/unstable/eventlog/EventLogRemote.ts +54 -8
  1641. package/src/unstable/eventlog/EventLogServer.ts +33 -3
  1642. package/src/unstable/eventlog/EventLogServerEncrypted.ts +52 -6
  1643. package/src/unstable/eventlog/EventLogServerUnencrypted.ts +90 -16
  1644. package/src/unstable/eventlog/EventLogSessionAuth.ts +77 -15
  1645. package/src/unstable/eventlog/SqlEventJournal.ts +28 -2
  1646. package/src/unstable/eventlog/SqlEventLogServerEncrypted.ts +32 -3
  1647. package/src/unstable/eventlog/SqlEventLogServerUnencrypted.ts +28 -2
  1648. package/src/unstable/eventlog/index.ts +240 -0
  1649. package/src/unstable/http/Cookies.ts +156 -77
  1650. package/src/unstable/http/Etag.ts +40 -7
  1651. package/src/unstable/http/FetchHttpClient.ts +33 -4
  1652. package/src/unstable/http/FindMyWay.ts +1 -1
  1653. package/src/unstable/http/Headers.ts +252 -50
  1654. package/src/unstable/http/HttpBody.ts +128 -26
  1655. package/src/unstable/http/HttpClient.ts +204 -96
  1656. package/src/unstable/http/HttpClientError.ts +80 -12
  1657. package/src/unstable/http/HttpClientRequest.ts +318 -100
  1658. package/src/unstable/http/HttpClientResponse.ts +59 -16
  1659. package/src/unstable/http/HttpEffect.ts +66 -18
  1660. package/src/unstable/http/HttpIncomingMessage.ts +48 -7
  1661. package/src/unstable/http/HttpMethod.ts +38 -6
  1662. package/src/unstable/http/HttpMiddleware.ts +60 -11
  1663. package/src/unstable/http/HttpPlatform.ts +34 -3
  1664. package/src/unstable/http/HttpRouter.ts +232 -69
  1665. package/src/unstable/http/HttpServer.ts +151 -22
  1666. package/src/unstable/http/HttpServerError.ts +93 -10
  1667. package/src/unstable/http/HttpServerRequest.ts +125 -21
  1668. package/src/unstable/http/HttpServerRespondable.ts +49 -6
  1669. package/src/unstable/http/HttpServerResponse.ts +391 -67
  1670. package/src/unstable/http/HttpStaticServer.ts +24 -8
  1671. package/src/unstable/http/HttpTraceContext.ts +53 -6
  1672. package/src/unstable/http/Multipart.ts +179 -28
  1673. package/src/unstable/http/Multipasta/HeadersParser.ts +1 -1
  1674. package/src/unstable/http/Multipasta/Node.ts +1 -1
  1675. package/src/unstable/http/Multipasta/Search.ts +1 -1
  1676. package/src/unstable/http/Multipasta/Web.ts +1 -1
  1677. package/src/unstable/http/Multipasta.ts +1 -1
  1678. package/src/unstable/http/Template.ts +53 -1
  1679. package/src/unstable/http/Url.ts +70 -56
  1680. package/src/unstable/http/UrlParams.ts +237 -51
  1681. package/src/unstable/http/index.ts +452 -0
  1682. package/src/unstable/httpapi/HttpApi.ts +49 -14
  1683. package/src/unstable/httpapi/HttpApiBuilder.ts +81 -16
  1684. package/src/unstable/httpapi/HttpApiClient.ts +78 -15
  1685. package/src/unstable/httpapi/HttpApiEndpoint.ts +238 -59
  1686. package/src/unstable/httpapi/HttpApiError.ts +100 -1
  1687. package/src/unstable/httpapi/HttpApiGroup.ts +87 -20
  1688. package/src/unstable/httpapi/HttpApiMiddleware.ts +113 -22
  1689. package/src/unstable/httpapi/HttpApiScalar.ts +38 -4
  1690. package/src/unstable/httpapi/HttpApiSchema.ts +86 -38
  1691. package/src/unstable/httpapi/HttpApiSecurity.ts +73 -17
  1692. package/src/unstable/httpapi/HttpApiSwagger.ts +23 -3
  1693. package/src/unstable/httpapi/HttpApiTest.ts +26 -1
  1694. package/src/unstable/httpapi/OpenApi.ts +115 -15
  1695. package/src/unstable/httpapi/index.ts +310 -25
  1696. package/src/unstable/observability/Otlp.ts +33 -3
  1697. package/src/unstable/observability/OtlpExporter.ts +32 -1
  1698. package/src/unstable/observability/OtlpLogger.ts +32 -2
  1699. package/src/unstable/observability/OtlpMetrics.ts +39 -5
  1700. package/src/unstable/observability/OtlpResource.ts +68 -12
  1701. package/src/unstable/observability/OtlpSerialization.ts +28 -3
  1702. package/src/unstable/observability/OtlpTracer.ts +41 -2
  1703. package/src/unstable/observability/PrometheusMetrics.ts +36 -16
  1704. package/src/unstable/observability/index.ts +160 -3
  1705. package/src/unstable/persistence/KeyValueStore.ts +108 -28
  1706. package/src/unstable/persistence/Persistable.ts +76 -15
  1707. package/src/unstable/persistence/PersistedCache.ts +27 -2
  1708. package/src/unstable/persistence/PersistedQueue.ts +98 -16
  1709. package/src/unstable/persistence/Persistence.ts +98 -16
  1710. package/src/unstable/persistence/RateLimiter.ts +101 -21
  1711. package/src/unstable/persistence/Redis.ts +42 -5
  1712. package/src/unstable/persistence/index.ts +147 -0
  1713. package/src/unstable/process/ChildProcess.ts +90 -66
  1714. package/src/unstable/process/ChildProcessSpawner.ts +23 -12
  1715. package/src/unstable/process/index.ts +2 -1
  1716. package/src/unstable/reactivity/AsyncResult.ts +204 -61
  1717. package/src/unstable/reactivity/Atom.ts +598 -139
  1718. package/src/unstable/reactivity/AtomHttpApi.ts +41 -2
  1719. package/src/unstable/reactivity/AtomRef.ts +51 -7
  1720. package/src/unstable/reactivity/AtomRegistry.ts +141 -22
  1721. package/src/unstable/reactivity/AtomRpc.ts +36 -2
  1722. package/src/unstable/reactivity/Hydration.ts +45 -5
  1723. package/src/unstable/reactivity/Reactivity.ts +94 -13
  1724. package/src/unstable/reactivity/index.ts +167 -0
  1725. package/src/unstable/rpc/Rpc.ts +254 -56
  1726. package/src/unstable/rpc/RpcClient.ts +106 -19
  1727. package/src/unstable/rpc/RpcClientError.ts +26 -2
  1728. package/src/unstable/rpc/RpcGroup.ts +51 -8
  1729. package/src/unstable/rpc/RpcMessage.ts +128 -32
  1730. package/src/unstable/rpc/RpcMiddleware.ts +100 -20
  1731. package/src/unstable/rpc/RpcSchema.ts +38 -4
  1732. package/src/unstable/rpc/RpcSerialization.ts +60 -13
  1733. package/src/unstable/rpc/RpcServer.ts +107 -23
  1734. package/src/unstable/rpc/RpcTest.ts +20 -1
  1735. package/src/unstable/rpc/RpcWorker.ts +39 -6
  1736. package/src/unstable/rpc/Utils.ts +33 -0
  1737. package/src/unstable/rpc/index.ts +272 -0
  1738. package/src/unstable/schema/Model.ts +245 -61
  1739. package/src/unstable/schema/VariantSchema.ts +101 -24
  1740. package/src/unstable/schema/index.ts +37 -0
  1741. package/src/unstable/socket/Socket.ts +168 -34
  1742. package/src/unstable/socket/SocketServer.ts +58 -10
  1743. package/src/unstable/socket/index.ts +44 -0
  1744. package/src/unstable/sql/Migrator.ts +61 -9
  1745. package/src/unstable/sql/SqlClient.ts +59 -2
  1746. package/src/unstable/sql/SqlConnection.ts +34 -3
  1747. package/src/unstable/sql/SqlError.ts +135 -0
  1748. package/src/unstable/sql/SqlModel.ts +25 -5
  1749. package/src/unstable/sql/SqlResolver.ts +56 -13
  1750. package/src/unstable/sql/SqlSchema.ts +29 -8
  1751. package/src/unstable/sql/SqlStream.ts +24 -0
  1752. package/src/unstable/sql/Statement.ts +168 -24
  1753. package/src/unstable/sql/index.ts +179 -1
  1754. package/src/unstable/workers/Transferable.ts +72 -20
  1755. package/src/unstable/workers/Worker.ts +61 -8
  1756. package/src/unstable/workers/WorkerError.ts +50 -9
  1757. package/src/unstable/workers/WorkerRunner.ts +32 -3
  1758. package/src/unstable/workers/index.ts +81 -1
  1759. package/src/unstable/workflow/Activity.ts +61 -10
  1760. package/src/unstable/workflow/DurableClock.ts +26 -3
  1761. package/src/unstable/workflow/DurableDeferred.ts +148 -31
  1762. package/src/unstable/workflow/DurableQueue.ts +33 -8
  1763. package/src/unstable/workflow/Workflow.ts +123 -31
  1764. package/src/unstable/workflow/WorkflowEngine.ts +40 -5
  1765. package/src/unstable/workflow/WorkflowProxy.ts +40 -12
  1766. package/src/unstable/workflow/WorkflowProxyServer.ts +41 -6
  1767. package/src/unstable/workflow/index.ts +160 -0
package/src/Layer.ts CHANGED
@@ -49,8 +49,8 @@ const TypeId = "~effect/Layer"
49
49
  * - E: The possible errors during layer construction
50
50
  * - RIn: The services this layer requires as dependencies
51
51
  *
52
- * @since 2.0.0
53
52
  * @category models
53
+ * @since 2.0.0
54
54
  */
55
55
  export interface Layer<in ROut, out E = never, out RIn = never> extends Variance<ROut, E, RIn>, Pipeable {
56
56
  /** @internal */
@@ -61,8 +61,14 @@ export interface Layer<in ROut, out E = never, out RIn = never> extends Variance
61
61
  }
62
62
 
63
63
  /**
64
- * @since 4.0.0
64
+ * Type-level hook that allows `Layer` values to participate in `Unify`
65
+ * inference.
66
+ *
67
+ * This is used by Effect's pipe and unification machinery to preserve the
68
+ * provided services, error, and requirements of a `Layer`.
69
+ *
65
70
  * @category models
71
+ * @since 4.0.0
66
72
  */
67
73
  export interface LayerUnify<A extends { [Unify.typeSymbol]?: any }> {
68
74
  Layer?: () => A[Unify.typeSymbol] extends Layer<any, any, any> | infer _ ? Layer<
@@ -74,16 +80,19 @@ export interface LayerUnify<A extends { [Unify.typeSymbol]?: any }> {
74
80
  }
75
81
 
76
82
  /**
77
- * @since 4.0.0
83
+ * Type-level marker used by `Unify` for `Layer` types that should be ignored
84
+ * during unification.
85
+ *
78
86
  * @category models
87
+ * @since 4.0.0
79
88
  */
80
89
  export interface LayerUnifyIgnore {}
81
90
 
82
91
  /**
83
92
  * The variance interface for Layer type parameters.
84
93
  *
85
- * @since 2.0.0
86
94
  * @category models
95
+ * @since 2.0.0
87
96
  */
88
97
  export interface Variance<in ROut, out E, out RIn> {
89
98
  readonly [TypeId]: {
@@ -98,8 +107,8 @@ export interface Variance<in ROut, out E, out RIn> {
98
107
  * This interface is used to constrain generic types to Layer types
99
108
  * without specifying exact type parameters.
100
109
  *
101
- * @since 3.9.0
102
110
  * @category type-level
111
+ * @since 3.9.0
103
112
  */
104
113
  export interface Any {
105
114
  readonly [TypeId]: {
@@ -111,8 +120,8 @@ export interface Any {
111
120
  /**
112
121
  * Extracts the service dependencies (RIn) from a Layer type.
113
122
  *
114
- * @since 2.0.0
115
123
  * @category type-level
124
+ * @since 4.0.0
116
125
  */
117
126
  export type Services<T extends Any> = T extends infer L
118
127
  ? L extends Layer<infer _ROut, infer _E, infer _RIn> ? _RIn : never
@@ -120,15 +129,15 @@ export type Services<T extends Any> = T extends infer L
120
129
  /**
121
130
  * Extracts the error type (E) from a Layer type.
122
131
  *
123
- * @since 2.0.0
124
132
  * @category type-level
133
+ * @since 2.0.0
125
134
  */
126
135
  export type Error<T extends Any> = T extends Layer<infer _ROut, infer _E, infer _RIn> ? _E : never
127
136
  /**
128
137
  * Extracts the service output type (ROut) from a Layer type.
129
138
  *
130
- * @since 2.0.0
131
139
  * @category type-level
140
+ * @since 2.0.0
132
141
  */
133
142
  export type Success<T extends Any> = T extends Layer<infer _ROut, infer _E, infer _RIn> ? _ROut : never
134
143
 
@@ -140,9 +149,10 @@ const MemoMapTypeId = "~effect/Layer/MemoMap"
140
149
  * The MemoMap prevents duplicate construction of the same layer instance,
141
150
  * enabling efficient resource sharing across layer dependencies.
142
151
  *
143
- * @example
152
+ * **Example** (Sharing layer construction with a memo map)
153
+ *
144
154
  * ```ts
145
- * import { Effect, Layer, Context } from "effect"
155
+ * import { Context, Effect, Layer } from "effect"
146
156
  *
147
157
  * class Database extends Context.Service<Database, {
148
158
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -162,11 +172,15 @@ const MemoMapTypeId = "~effect/Layer/MemoMap"
162
172
  * })
163
173
  * ```
164
174
  *
165
- * @since 2.0.0
166
175
  * @category models
176
+ * @since 2.0.0
167
177
  */
168
178
  export interface MemoMap {
169
179
  readonly [MemoMapTypeId]: typeof MemoMapTypeId
180
+ readonly get: <RIn, E, ROut>(
181
+ layer: Layer<ROut, E, RIn>,
182
+ scope: Scope.Scope
183
+ ) => Effect<Context.Context<ROut>, E, RIn> | undefined
170
184
  readonly getOrElseMemoize: <RIn, E, ROut>(
171
185
  layer: Layer<ROut, E, RIn>,
172
186
  scope: Scope.Scope,
@@ -174,12 +188,30 @@ export interface MemoMap {
174
188
  ) => Effect<Context.Context<ROut>, E, RIn>
175
189
  }
176
190
 
191
+ type MemoMapEntry = {
192
+ observers: number
193
+ effect: Effect<Context.Context<any>, any>
194
+ readonly finalizer: (exit: Exit.Exit<unknown, unknown>) => Effect<void>
195
+ }
196
+
197
+ const memoMapReuse = <RIn, E, ROut>(
198
+ entry: MemoMapEntry,
199
+ scope: Scope.Scope
200
+ ): Effect<Context.Context<ROut>, E, RIn> => {
201
+ entry.observers++
202
+ return internalEffect.andThen(
203
+ internalEffect.scopeAddFinalizerExit(scope, (exit) => entry.finalizer(exit)),
204
+ entry.effect
205
+ )
206
+ }
207
+
177
208
  /**
178
209
  * Returns `true` if the specified value is a `Layer`, `false` otherwise.
179
210
  *
180
- * @example
211
+ * **Example** (Checking whether a value is a layer)
212
+ *
181
213
  * ```ts
182
- * import { Effect, Layer, Context } from "effect"
214
+ * import { Context, Effect, Layer } from "effect"
183
215
  *
184
216
  * class Database extends Context.Service<Database, {
185
217
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -194,8 +226,8 @@ export interface MemoMap {
194
226
  * console.log(Layer.isLayer(notALayer)) // false
195
227
  * ```
196
228
  *
197
- * @since 2.0.0
198
229
  * @category getters
230
+ * @since 2.0.0
199
231
  */
200
232
  export const isLayer = (u: unknown): u is Layer<unknown, unknown, unknown> => hasProperty(u, TypeId)
201
233
 
@@ -227,9 +259,10 @@ const fromBuildUnsafe = <ROut, E, RIn>(
227
259
  * The function receives a `MemoMap` for memoization and a `Scope` for resource management.
228
260
  * A child scope is created, and if the build fails, the child scope is closed.
229
261
  *
230
- * @example
262
+ * **Example** (Constructing a layer from a build function)
263
+ *
231
264
  * ```ts
232
- * import { Effect, Layer, Context } from "effect"
265
+ * import { Context, Effect, Layer } from "effect"
233
266
  *
234
267
  * class Database extends Context.Service<Database, {
235
268
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -244,8 +277,8 @@ const fromBuildUnsafe = <ROut, E, RIn>(
244
277
  * )
245
278
  * ```
246
279
  *
247
- * @since 4.0.0
248
280
  * @category constructors
281
+ * @since 4.0.0
249
282
  */
250
283
  export const fromBuild = <ROut, E, RIn>(
251
284
  build: (
@@ -268,9 +301,10 @@ export const fromBuild = <ROut, E, RIn>(
268
301
  * This is similar to `fromBuild` but provides automatic memoization of the layer construction.
269
302
  * The layer will be memoized based on the provided `MemoMap`.
270
303
  *
271
- * @example
304
+ * **Example** (Memoizing layer construction)
305
+ *
272
306
  * ```ts
273
- * import { Effect, Layer, Context } from "effect"
307
+ * import { Context, Effect, Layer } from "effect"
274
308
  *
275
309
  * class Database extends Context.Service<Database, {
276
310
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -285,8 +319,8 @@ export const fromBuild = <ROut, E, RIn>(
285
319
  * )
286
320
  * ```
287
321
  *
288
- * @since 4.0.0
289
322
  * @category constructors
323
+ * @since 4.0.0
290
324
  */
291
325
  export const fromBuildMemo = <ROut, E, RIn>(
292
326
  build: (
@@ -298,62 +332,81 @@ export const fromBuildMemo = <ROut, E, RIn>(
298
332
  return self
299
333
  }
300
334
 
335
+ const memoMapBuild = <RIn, E, ROut>(
336
+ memoMap: MemoMapImpl,
337
+ layer: Layer<ROut, E, RIn>,
338
+ scope: Scope.Scope,
339
+ build: (memoMap: MemoMap, scope: Scope.Scope) => Effect<Context.Context<ROut>, E, RIn>
340
+ ): Effect<Context.Context<ROut>, E, RIn> => {
341
+ const layerScope = Scope.makeUnsafe()
342
+ const deferred = Deferred.makeUnsafe<Context.Context<ROut>, E>()
343
+ const entry: MemoMapEntry = {
344
+ observers: 1,
345
+ effect: Deferred.await(deferred),
346
+ finalizer: (exit: Exit.Exit<unknown, unknown>) =>
347
+ internalEffect.suspend(() => {
348
+ entry.observers--
349
+ if (entry.observers === 0) {
350
+ memoMap.map.delete(layer)
351
+ return Scope.close(layerScope, exit)
352
+ }
353
+ return internalEffect.void
354
+ })
355
+ }
356
+ memoMap.map.set(layer, entry)
357
+ return internalEffect.scopeAddFinalizerExit(scope, entry.finalizer).pipe(
358
+ internalEffect.flatMap(() => build(memoMap, layerScope)),
359
+ internalEffect.onExit((exit) => {
360
+ entry.effect = exit
361
+ return Deferred.done(deferred, exit)
362
+ })
363
+ )
364
+ }
365
+
301
366
  class MemoMapImpl implements MemoMap {
302
367
  get [MemoMapTypeId](): typeof MemoMapTypeId {
303
368
  return MemoMapTypeId
304
369
  }
305
370
 
306
- readonly map = new Map<Layer<any, any, any>, {
307
- observers: number
308
- effect: Effect<Context.Context<any>, any>
309
- readonly finalizer: (exit: Exit.Exit<unknown, unknown>) => Effect<void>
310
- }>()
371
+ readonly parent: MemoMap | undefined
372
+
373
+ constructor(parent?: MemoMap) {
374
+ this.parent = parent
375
+ }
376
+
377
+ readonly map = new Map<Layer<any, any, any>, MemoMapEntry>()
378
+
379
+ get<RIn, E, ROut>(
380
+ layer: Layer<ROut, E, RIn>,
381
+ scope: Scope.Scope
382
+ ): Effect<Context.Context<ROut>, E, RIn> | undefined {
383
+ const local = this.map.get(layer)
384
+ if (local) {
385
+ return memoMapReuse(local, scope)
386
+ }
387
+ return this.parent?.get(layer, scope)
388
+ }
311
389
 
312
390
  getOrElseMemoize<RIn, E, ROut>(
313
391
  layer: Layer<ROut, E, RIn>,
314
392
  scope: Scope.Scope,
315
393
  build: (memoMap: MemoMap, scope: Scope.Scope) => Effect<Context.Context<ROut>, E, RIn>
316
394
  ): Effect<Context.Context<ROut>, E, RIn> {
317
- if (this.map.has(layer)) {
318
- const entry = this.map.get(layer)!
319
- entry.observers++
320
- return internalEffect.andThen(
321
- internalEffect.scopeAddFinalizerExit(scope, (exit) => entry.finalizer(exit)),
322
- entry.effect
323
- )
324
- }
325
- const layerScope = Scope.makeUnsafe()
326
- const deferred = Deferred.makeUnsafe<Context.Context<ROut>, E>()
327
- const entry = {
328
- observers: 1,
329
- effect: Deferred.await(deferred),
330
- finalizer: (exit: Exit.Exit<unknown, unknown>) =>
331
- internalEffect.suspend(() => {
332
- entry.observers--
333
- if (entry.observers === 0) {
334
- this.map.delete(layer)
335
- return Scope.close(layerScope, exit)
336
- }
337
- return internalEffect.void
338
- })
395
+ const existing = this.get(layer, scope)
396
+ if (existing) {
397
+ return existing
339
398
  }
340
- this.map.set(layer, entry)
341
- return internalEffect.scopeAddFinalizerExit(scope, entry.finalizer).pipe(
342
- internalEffect.flatMap(() => build(this, layerScope)),
343
- internalEffect.onExit((exit) => {
344
- entry.effect = exit
345
- return Deferred.done(deferred, exit)
346
- })
347
- )
399
+ return memoMapBuild(this, layer, scope, build)
348
400
  }
349
401
  }
350
402
 
351
403
  /**
352
404
  * Constructs a `MemoMap` that can be used to build additional layers.
353
405
  *
354
- * @example
406
+ * **Example** (Creating a memo map unsafely)
407
+ *
355
408
  * ```ts
356
- * import { Effect, Layer, Context } from "effect"
409
+ * import { Context, Effect, Layer } from "effect"
357
410
  *
358
411
  * class Database extends Context.Service<Database, {
359
412
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -373,17 +426,27 @@ class MemoMapImpl implements MemoMap {
373
426
  * })
374
427
  * ```
375
428
  *
376
- * @since 4.0.0
377
429
  * @category memo map
430
+ * @since 4.0.0
378
431
  */
379
432
  export const makeMemoMapUnsafe = (): MemoMap => new MemoMapImpl()
380
433
 
434
+ /**
435
+ * Constructs a child `MemoMap` that can reuse layers already memoized in the
436
+ * parent while isolating any new layer allocations to the child map.
437
+ *
438
+ * @category memo map
439
+ * @since 4.0.0
440
+ */
441
+ export const forkMemoMapUnsafe = (parent: MemoMap): MemoMap => new MemoMapImpl(parent)
442
+
381
443
  /**
382
444
  * Constructs a `MemoMap` that can be used to build additional layers.
383
445
  *
384
- * @example
446
+ * **Example** (Creating a memo map in an effect)
447
+ *
385
448
  * ```ts
386
- * import { Effect, Layer, Context } from "effect"
449
+ * import { Context, Effect, Layer } from "effect"
387
450
  *
388
451
  * class Database extends Context.Service<Database, {
389
452
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -403,19 +466,28 @@ export const makeMemoMapUnsafe = (): MemoMap => new MemoMapImpl()
403
466
  * })
404
467
  * ```
405
468
  *
406
- * @since 2.0.0
407
469
  * @category memo map
470
+ * @since 2.0.0
408
471
  */
409
472
  export const makeMemoMap: Effect<MemoMap> = internalEffect.sync(makeMemoMapUnsafe)
410
473
 
474
+ /**
475
+ * Constructs a child `MemoMap` that can reuse layers already memoized in the
476
+ * parent while isolating any new layer allocations to the child map.
477
+ *
478
+ * @category memo map
479
+ * @since 4.0.0
480
+ */
481
+ export const forkMemoMap = (parent: MemoMap): Effect<MemoMap> => internalEffect.sync(() => forkMemoMapUnsafe(parent))
482
+
411
483
  /**
412
484
  * A service reference for the current `MemoMap` used in layer construction.
413
485
  *
414
486
  * This service provides access to the current memoization map during layer building,
415
487
  * allowing layers to share memoized results.
416
488
  *
417
- * @since 3.13.0
418
489
  * @category models
490
+ * @since 3.13.0
419
491
  */
420
492
  export class CurrentMemoMap extends Context.Service<CurrentMemoMap, MemoMap>()("effect/Layer/CurrentMemoMap") {
421
493
  static getOrCreate: <Services>(self: Context.Context<Services>) => MemoMap = Context.getOrElse(
@@ -428,9 +500,10 @@ export class CurrentMemoMap extends Context.Service<CurrentMemoMap, MemoMap>()("
428
500
  * Builds a layer into an `Effect` value, using the specified `MemoMap` to memoize
429
501
  * the layer construction.
430
502
  *
431
- * @example
503
+ * **Example** (Building layers with an explicit memo map)
504
+ *
432
505
  * ```ts
433
- * import { Effect, Layer, Context } from "effect"
506
+ * import { Context, Effect, Layer } from "effect"
434
507
  *
435
508
  * class Database extends Context.Service<Database, {
436
509
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -468,17 +541,18 @@ export class CurrentMemoMap extends Context.Service<CurrentMemoMap, MemoMap>()("
468
541
  * })
469
542
  * ```
470
543
  *
471
- * @since 2.0.0
472
544
  * @category memo map
545
+ * @since 2.0.0
473
546
  */
474
547
  export const buildWithMemoMap: {
475
548
  /**
476
549
  * Builds a layer into an `Effect` value, using the specified `MemoMap` to memoize
477
550
  * the layer construction.
478
551
  *
479
- * @example
552
+ * **Example** (Building layers with an explicit memo map)
553
+ *
480
554
  * ```ts
481
- * import { Effect, Layer, Context } from "effect"
555
+ * import { Context, Effect, Layer } from "effect"
482
556
  *
483
557
  * class Database extends Context.Service<Database, {
484
558
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -516,17 +590,18 @@ export const buildWithMemoMap: {
516
590
  * })
517
591
  * ```
518
592
  *
519
- * @since 2.0.0
520
593
  * @category memo map
594
+ * @since 2.0.0
521
595
  */
522
596
  (memoMap: MemoMap, scope: Scope.Scope): <RIn, E, ROut>(self: Layer<ROut, E, RIn>) => Effect<Context.Context<ROut>, E, RIn>
523
597
  /**
524
598
  * Builds a layer into an `Effect` value, using the specified `MemoMap` to memoize
525
599
  * the layer construction.
526
600
  *
527
- * @example
601
+ * **Example** (Building layers with an explicit memo map)
602
+ *
528
603
  * ```ts
529
- * import { Effect, Layer, Context } from "effect"
604
+ * import { Context, Effect, Layer } from "effect"
530
605
  *
531
606
  * class Database extends Context.Service<Database, {
532
607
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -564,8 +639,8 @@ export const buildWithMemoMap: {
564
639
  * })
565
640
  * ```
566
641
  *
567
- * @since 2.0.0
568
642
  * @category memo map
643
+ * @since 2.0.0
569
644
  */
570
645
  <RIn, E, ROut>(self: Layer<ROut, E, RIn>, memoMap: MemoMap, scope: Scope.Scope): Effect<Context.Context<ROut>, E, RIn>
571
646
  } = dual(3, <RIn, E, ROut>(
@@ -582,9 +657,10 @@ export const buildWithMemoMap: {
582
657
  /**
583
658
  * Builds a layer into a scoped value.
584
659
  *
585
- * @example
660
+ * **Example** (Building a layer into a context)
661
+ *
586
662
  * ```ts
587
- * import { Effect, Layer, Context } from "effect"
663
+ * import { Context, Effect, Layer } from "effect"
588
664
  *
589
665
  * class Database extends Context.Service<Database, {
590
666
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -606,8 +682,8 @@ export const buildWithMemoMap: {
606
682
  * })
607
683
  * ```
608
684
  *
609
- * @since 2.0.0
610
685
  * @category destructors
686
+ * @since 2.0.0
611
687
  */
612
688
  export const build = <RIn, E, ROut>(
613
689
  self: Layer<ROut, E, RIn>
@@ -627,9 +703,10 @@ export const build = <RIn, E, ROut>(
627
703
  * the services output by the layer exceed the lifetime of the effect the
628
704
  * layer is provided to.
629
705
  *
630
- * @example
706
+ * **Example** (Building a layer with an explicit scope)
707
+ *
631
708
  * ```ts
632
- * import { Effect, Layer, Scope, Context } from "effect"
709
+ * import { Context, Effect, Layer, Scope } from "effect"
633
710
  *
634
711
  * class Database extends Context.Service<Database, {
635
712
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -657,8 +734,8 @@ export const build = <RIn, E, ROut>(
657
734
  * })
658
735
  * ```
659
736
  *
660
- * @since 2.0.0
661
737
  * @category destructors
738
+ * @since 2.0.0
662
739
  */
663
740
  export const buildWithScope: {
664
741
  /**
@@ -668,9 +745,10 @@ export const buildWithScope: {
668
745
  * the services output by the layer exceed the lifetime of the effect the
669
746
  * layer is provided to.
670
747
  *
671
- * @example
748
+ * **Example** (Building a layer with an explicit scope)
749
+ *
672
750
  * ```ts
673
- * import { Effect, Layer, Scope, Context } from "effect"
751
+ * import { Context, Effect, Layer, Scope } from "effect"
674
752
  *
675
753
  * class Database extends Context.Service<Database, {
676
754
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -698,8 +776,8 @@ export const buildWithScope: {
698
776
  * })
699
777
  * ```
700
778
  *
701
- * @since 2.0.0
702
779
  * @category destructors
780
+ * @since 2.0.0
703
781
  */
704
782
  (scope: Scope.Scope): <RIn, E, ROut>(self: Layer<ROut, E, RIn>) => Effect<Context.Context<ROut>, E, RIn>
705
783
  /**
@@ -709,9 +787,10 @@ export const buildWithScope: {
709
787
  * the services output by the layer exceed the lifetime of the effect the
710
788
  * layer is provided to.
711
789
  *
712
- * @example
790
+ * **Example** (Building a layer with an explicit scope)
791
+ *
713
792
  * ```ts
714
- * import { Effect, Layer, Scope, Context } from "effect"
793
+ * import { Context, Effect, Layer, Scope } from "effect"
715
794
  *
716
795
  * class Database extends Context.Service<Database, {
717
796
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -739,8 +818,8 @@ export const buildWithScope: {
739
818
  * })
740
819
  * ```
741
820
  *
742
- * @since 2.0.0
743
821
  * @category destructors
822
+ * @since 2.0.0
744
823
  */
745
824
  <RIn, E, ROut>(self: Layer<ROut, E, RIn>, scope: Scope.Scope): Effect<Context.Context<ROut>, E, RIn>
746
825
  } = dual(2, <RIn, E, ROut>(
@@ -758,9 +837,10 @@ export const buildWithScope: {
758
837
  /**
759
838
  * Constructs a layer from the specified value.
760
839
  *
761
- * @example
840
+ * **Example** (Providing services from values)
841
+ *
762
842
  * ```ts
763
- * import { Effect, Layer, Context } from "effect"
843
+ * import { Context, Effect, Layer } from "effect"
764
844
  *
765
845
  * class Database extends Context.Service<Database, {
766
846
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -794,16 +874,17 @@ export const buildWithScope: {
794
874
  * )
795
875
  * ```
796
876
  *
797
- * @since 2.0.0
798
877
  * @category constructors
878
+ * @since 2.0.0
799
879
  */
800
880
  export const succeed: {
801
881
  /**
802
882
  * Constructs a layer from the specified value.
803
883
  *
804
- * @example
884
+ * **Example** (Providing services from values)
885
+ *
805
886
  * ```ts
806
- * import { Effect, Layer, Context } from "effect"
887
+ * import { Context, Effect, Layer } from "effect"
807
888
  *
808
889
  * class Database extends Context.Service<Database, {
809
890
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -837,16 +918,17 @@ export const succeed: {
837
918
  * )
838
919
  * ```
839
920
  *
840
- * @since 2.0.0
841
921
  * @category constructors
922
+ * @since 2.0.0
842
923
  */
843
924
  <I, S>(service: Context.Key<I, S>): (resource: S) => Layer<I>
844
925
  /**
845
926
  * Constructs a layer from the specified value.
846
927
  *
847
- * @example
928
+ * **Example** (Providing services from values)
929
+ *
848
930
  * ```ts
849
- * import { Effect, Layer, Context } from "effect"
931
+ * import { Context, Effect, Layer } from "effect"
850
932
  *
851
933
  * class Database extends Context.Service<Database, {
852
934
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -880,8 +962,8 @@ export const succeed: {
880
962
  * )
881
963
  * ```
882
964
  *
883
- * @since 2.0.0
884
965
  * @category constructors
966
+ * @since 2.0.0
885
967
  */
886
968
  <I, S>(service: Context.Key<I, S>, resource: Types.NoInfer<S>): Layer<I>
887
969
  } = function() {
@@ -898,9 +980,10 @@ export const succeed: {
898
980
  * This is a more general version of `succeed` that allows you to provide multiple
899
981
  * services at once through a `Context`.
900
982
  *
901
- * @example
983
+ * **Example** (Providing multiple services from a context)
984
+ *
902
985
  * ```ts
903
- * import { Effect, Layer, Context } from "effect"
986
+ * import { Context, Effect, Layer } from "effect"
904
987
  *
905
988
  * class Database extends Context.Service<Database, {
906
989
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -921,8 +1004,8 @@ export const succeed: {
921
1004
  * const layer = Layer.succeedContext(context)
922
1005
  * ```
923
1006
  *
924
- * @since 2.0.0
925
1007
  * @category constructors
1008
+ * @since 2.0.0
926
1009
  */
927
1010
  export const succeedContext = <A>(context: Context.Context<A>): Layer<A> =>
928
1011
  fromBuildUnsafe(constant(internalEffect.succeed(context)))
@@ -933,15 +1016,16 @@ export const succeedContext = <A>(context: Context.Context<A>): Layer<A> =>
933
1016
  * This layer provides no services and can be used as a neutral element
934
1017
  * in layer composition or as a starting point for building layers.
935
1018
  *
936
- * @example
1019
+ * **Example** (Creating an empty layer)
1020
+ *
937
1021
  * ```ts
938
1022
  * import { Layer } from "effect"
939
1023
  *
940
1024
  * const emptyLayer = Layer.empty
941
1025
  * ```
942
1026
  *
943
- * @since 2.0.0
944
1027
  * @category constructors
1028
+ * @since 2.0.0
945
1029
  */
946
1030
  export const empty: Layer<never> = succeedContext(Context.empty())
947
1031
 
@@ -951,9 +1035,10 @@ export const empty: Layer<never> = succeedContext(Context.empty())
951
1035
  * This is a lazy version of `succeed` where the service value is computed
952
1036
  * synchronously only when the layer is built.
953
1037
  *
954
- * @example
1038
+ * **Example** (Lazily providing a service)
1039
+ *
955
1040
  * ```ts
956
- * import { Effect, Layer, Context } from "effect"
1041
+ * import { Context, Effect, Layer } from "effect"
957
1042
  *
958
1043
  * class Database extends Context.Service<Database, {
959
1044
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -964,8 +1049,8 @@ export const empty: Layer<never> = succeedContext(Context.empty())
964
1049
  * }))
965
1050
  * ```
966
1051
  *
967
- * @since 2.0.0
968
1052
  * @category constructors
1053
+ * @since 2.0.0
969
1054
  */
970
1055
  export const sync: {
971
1056
  /**
@@ -974,9 +1059,10 @@ export const sync: {
974
1059
  * This is a lazy version of `succeed` where the service value is computed
975
1060
  * synchronously only when the layer is built.
976
1061
  *
977
- * @example
1062
+ * **Example** (Lazily providing a service)
1063
+ *
978
1064
  * ```ts
979
- * import { Effect, Layer, Context } from "effect"
1065
+ * import { Context, Effect, Layer } from "effect"
980
1066
  *
981
1067
  * class Database extends Context.Service<Database, {
982
1068
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -987,8 +1073,8 @@ export const sync: {
987
1073
  * }))
988
1074
  * ```
989
1075
  *
990
- * @since 2.0.0
991
1076
  * @category constructors
1077
+ * @since 2.0.0
992
1078
  */
993
1079
  <I, S>(service: Context.Key<I, S>): (evaluate: LazyArg<S>) => Layer<I>
994
1080
  /**
@@ -997,9 +1083,10 @@ export const sync: {
997
1083
  * This is a lazy version of `succeed` where the service value is computed
998
1084
  * synchronously only when the layer is built.
999
1085
  *
1000
- * @example
1086
+ * **Example** (Lazily providing a service)
1087
+ *
1001
1088
  * ```ts
1002
- * import { Effect, Layer, Context } from "effect"
1089
+ * import { Context, Effect, Layer } from "effect"
1003
1090
  *
1004
1091
  * class Database extends Context.Service<Database, {
1005
1092
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -1010,8 +1097,8 @@ export const sync: {
1010
1097
  * }))
1011
1098
  * ```
1012
1099
  *
1013
- * @since 2.0.0
1014
1100
  * @category constructors
1101
+ * @since 2.0.0
1015
1102
  */
1016
1103
  <I, S>(service: Context.Key<I, S>, evaluate: LazyArg<Types.NoInfer<S>>): Layer<I>
1017
1104
  } = function() {
@@ -1028,9 +1115,10 @@ export const sync: {
1028
1115
  * This is a lazy version of `succeedContext` where the Context is computed
1029
1116
  * synchronously only when the layer is built.
1030
1117
  *
1031
- * @example
1118
+ * **Example** (Lazily providing a context)
1119
+ *
1032
1120
  * ```ts
1033
- * import { Effect, Layer, Context } from "effect"
1121
+ * import { Context, Effect, Layer } from "effect"
1034
1122
  *
1035
1123
  * class Database extends Context.Service<Database, {
1036
1124
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -1043,8 +1131,8 @@ export const sync: {
1043
1131
  * )
1044
1132
  * ```
1045
1133
  *
1046
- * @since 2.0.0
1047
1134
  * @category constructors
1135
+ * @since 2.0.0
1048
1136
  */
1049
1137
  export const syncContext = <A>(evaluate: LazyArg<Context.Context<A>>): Layer<A> =>
1050
1138
  fromBuildMemo(constant(internalEffect.sync(evaluate)))
@@ -1056,15 +1144,10 @@ export const syncContext = <A>(evaluate: LazyArg<Context.Context<A>>): Layer<A>
1056
1144
  * The Effect is executed in the scope of the layer, allowing for proper
1057
1145
  * resource management.
1058
1146
  *
1059
- * **Previously Known As**
1060
- *
1061
- * This API replaces the following from Effect 3.x:
1147
+ * **Example** (Creating a layer from an effect)
1062
1148
  *
1063
- * - `Layer.scoped`
1064
- *
1065
- * @example
1066
1149
  * ```ts
1067
- * import { Effect, Layer, Context } from "effect"
1150
+ * import { Context, Effect, Layer } from "effect"
1068
1151
  *
1069
1152
  * class Database extends Context.Service<Database, {
1070
1153
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -1077,8 +1160,8 @@ export const syncContext = <A>(evaluate: LazyArg<Context.Context<A>>): Layer<A>
1077
1160
  * )
1078
1161
  * ```
1079
1162
  *
1080
- * @since 2.0.0
1081
1163
  * @category constructors
1164
+ * @since 2.0.0
1082
1165
  */
1083
1166
  export const effect: {
1084
1167
  /**
@@ -1088,15 +1171,10 @@ export const effect: {
1088
1171
  * The Effect is executed in the scope of the layer, allowing for proper
1089
1172
  * resource management.
1090
1173
  *
1091
- * **Previously Known As**
1092
- *
1093
- * This API replaces the following from Effect 3.x:
1094
- *
1095
- * - `Layer.scoped`
1174
+ * **Example** (Creating a layer from an effect)
1096
1175
  *
1097
- * @example
1098
1176
  * ```ts
1099
- * import { Effect, Layer, Context } from "effect"
1177
+ * import { Context, Effect, Layer } from "effect"
1100
1178
  *
1101
1179
  * class Database extends Context.Service<Database, {
1102
1180
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -1109,8 +1187,8 @@ export const effect: {
1109
1187
  * )
1110
1188
  * ```
1111
1189
  *
1112
- * @since 2.0.0
1113
1190
  * @category constructors
1191
+ * @since 2.0.0
1114
1192
  */
1115
1193
  <I, S>(service: Context.Key<I, S>): <E, R>(
1116
1194
  effect: Effect<S, E, R>
@@ -1122,15 +1200,10 @@ export const effect: {
1122
1200
  * The Effect is executed in the scope of the layer, allowing for proper
1123
1201
  * resource management.
1124
1202
  *
1125
- * **Previously Known As**
1126
- *
1127
- * This API replaces the following from Effect 3.x:
1203
+ * **Example** (Creating a layer from an effect)
1128
1204
  *
1129
- * - `Layer.scoped`
1130
- *
1131
- * @example
1132
1205
  * ```ts
1133
- * import { Effect, Layer, Context } from "effect"
1206
+ * import { Context, Effect, Layer } from "effect"
1134
1207
  *
1135
1208
  * class Database extends Context.Service<Database, {
1136
1209
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -1143,8 +1216,8 @@ export const effect: {
1143
1216
  * )
1144
1217
  * ```
1145
1218
  *
1146
- * @since 2.0.0
1147
1219
  * @category constructors
1220
+ * @since 2.0.0
1148
1221
  */
1149
1222
  <I, S, E, R>(service: Context.Key<I, S>, effect: Effect<Types.NoInfer<S>, E, R>): Layer<I, E, Exclude<R, Scope.Scope>>
1150
1223
  } = function() {
@@ -1167,9 +1240,10 @@ const effectImpl = <I, S, E, R>(
1167
1240
  * This allows you to create a Layer from an effectful computation that returns
1168
1241
  * multiple services. The Effect is executed in the scope of the layer.
1169
1242
  *
1170
- * @example
1243
+ * **Example** (Creating a layer from an effectful context)
1244
+ *
1171
1245
  * ```ts
1172
- * import { Effect, Layer, Context } from "effect"
1246
+ * import { Context, Effect, Layer } from "effect"
1173
1247
  *
1174
1248
  * class Database extends Context.Service<
1175
1249
  * Database,
@@ -1183,8 +1257,8 @@ const effectImpl = <I, S, E, R>(
1183
1257
  * )
1184
1258
  * ```
1185
1259
  *
1186
- * @since 2.0.0
1187
1260
  * @category constructors
1261
+ * @since 2.0.0
1188
1262
  */
1189
1263
  export const effectContext = <A, E, R>(
1190
1264
  effect: Effect<Context.Context<A>, E, R>
@@ -1196,13 +1270,8 @@ export const effectContext = <A, E, R>(
1196
1270
  * This is useful when you want to run an Effect for its side effects during
1197
1271
  * layer construction, but don't need to provide any services.
1198
1272
  *
1199
- * **Previously Known As**
1273
+ * **Example** (Running an effect during layer construction)
1200
1274
  *
1201
- * This API replaces the following from Effect 3.x:
1202
- *
1203
- * - `Layer.scopedDiscard`
1204
- *
1205
- * @example
1206
1275
  * ```ts
1207
1276
  * import { Effect, Layer } from "effect"
1208
1277
  *
@@ -1213,8 +1282,8 @@ export const effectContext = <A, E, R>(
1213
1282
  * )
1214
1283
  * ```
1215
1284
  *
1216
- * @since 2.0.0
1217
1285
  * @category constructors
1286
+ * @since 2.0.0
1218
1287
  */
1219
1288
  export const effectDiscard = <X, E, R>(effect: Effect<X, E, R>): Layer<never, E, Exclude<R, Scope.Scope>> =>
1220
1289
  effectContext(internalEffect.as(effect, Context.empty()))
@@ -1225,9 +1294,10 @@ export const effectDiscard = <X, E, R>(effect: Effect<X, E, R>): Layer<never, E,
1225
1294
  * The factory is evaluated only when the suspended layer is first built, and
1226
1295
  * the result is memoized with normal layer sharing semantics.
1227
1296
  *
1228
- * @example
1297
+ * **Example** (Choosing a layer lazily)
1298
+ *
1229
1299
  * ```ts
1230
- * import { Layer, Context } from "effect"
1300
+ * import { Context, Layer } from "effect"
1231
1301
  *
1232
1302
  * class Config extends Context.Service<Config, string>()("Config") {}
1233
1303
  *
@@ -1240,8 +1310,8 @@ export const effectDiscard = <X, E, R>(effect: Effect<X, E, R>): Layer<never, E,
1240
1310
  * )
1241
1311
  * ```
1242
1312
  *
1243
- * @since 4.0.0
1244
1313
  * @category constructors
1314
+ * @since 2.0.0
1245
1315
  */
1246
1316
  export const suspend = <A, E, R>(evaluate: LazyArg<Layer<A, E, R>>): Layer<A, E, R> =>
1247
1317
  fromBuildMemo((memoMap, scope) => internalEffect.suspend(() => evaluate().build(memoMap, scope)))
@@ -1253,9 +1323,10 @@ export const suspend = <A, E, R>(evaluate: LazyArg<Layer<A, E, R>>): Layer<A, E,
1253
1323
  * use that Layer directly. The resulting Layer will have the combined error and
1254
1324
  * dependency types from both the outer Effect and the inner Layer.
1255
1325
  *
1256
- * @example
1326
+ * **Example** (Unwrapping an effectful layer)
1327
+ *
1257
1328
  * ```ts
1258
- * import { Effect, Layer, Context } from "effect"
1329
+ * import { Context, Effect, Layer } from "effect"
1259
1330
  *
1260
1331
  * class Database extends Context.Service<Database, {
1261
1332
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -1268,8 +1339,8 @@ export const suspend = <A, E, R>(evaluate: LazyArg<Layer<A, E, R>>): Layer<A, E,
1268
1339
  * const unwrappedLayer = Layer.unwrap(layerEffect)
1269
1340
  * ```
1270
1341
  *
1271
- * @since 4.0.0
1272
1342
  * @category utils
1343
+ * @since 4.0.0
1273
1344
  */
1274
1345
  export const unwrap = <A, E1, R1, E, R>(
1275
1346
  self: Effect<Layer<A, E1, R1>, E, R>
@@ -1301,9 +1372,10 @@ const mergeAllEffect = <Layers extends [Layer<never, any, any>, ...Array<Layer<n
1301
1372
  * All layers are built concurrently, and their outputs are merged into a single layer.
1302
1373
  * This is useful when you need to combine multiple independent layers.
1303
1374
  *
1304
- * @example
1375
+ * **Example** (Merging independent layers)
1376
+ *
1305
1377
  * ```ts
1306
- * import { Effect, Layer, Context } from "effect"
1378
+ * import { Context, Effect, Layer } from "effect"
1307
1379
  *
1308
1380
  * class Database extends Context.Service<Database, {
1309
1381
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -1323,8 +1395,8 @@ const mergeAllEffect = <Layers extends [Layer<never, any, any>, ...Array<Layer<n
1323
1395
  * const mergedLayer = Layer.mergeAll(dbLayer, loggerLayer)
1324
1396
  * ```
1325
1397
  *
1326
- * @since 2.0.0
1327
1398
  * @category zipping
1399
+ * @since 2.0.0
1328
1400
  */
1329
1401
  export const mergeAll = <Layers extends [Layer<never, any, any>, ...Array<Layer<never, any, any>>]>(
1330
1402
  ...layers: Layers
@@ -1340,9 +1412,10 @@ export const mergeAll = <Layers extends [Layer<never, any, any>, ...Array<Layer<
1340
1412
  * This is a binary version of `mergeAll` that merges exactly two layers or one layer with an array of layers.
1341
1413
  * The layers are built concurrently and their outputs are combined.
1342
1414
  *
1343
- * @example
1415
+ * **Example** (Merging two layers)
1416
+ *
1344
1417
  * ```ts
1345
- * import { Effect, Layer, Context } from "effect"
1418
+ * import { Context, Effect, Layer } from "effect"
1346
1419
  *
1347
1420
  * class Database extends Context.Service<Database, {
1348
1421
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -1362,8 +1435,8 @@ export const mergeAll = <Layers extends [Layer<never, any, any>, ...Array<Layer<
1362
1435
  * const mergedLayer = Layer.merge(dbLayer, loggerLayer)
1363
1436
  * ```
1364
1437
  *
1365
- * @since 2.0.0
1366
1438
  * @category zipping
1439
+ * @since 2.0.0
1367
1440
  */
1368
1441
  export const merge: {
1369
1442
  /**
@@ -1372,9 +1445,10 @@ export const merge: {
1372
1445
  * This is a binary version of `mergeAll` that merges exactly two layers or one layer with an array of layers.
1373
1446
  * The layers are built concurrently and their outputs are combined.
1374
1447
  *
1375
- * @example
1448
+ * **Example** (Merging two layers)
1449
+ *
1376
1450
  * ```ts
1377
- * import { Effect, Layer, Context } from "effect"
1451
+ * import { Context, Effect, Layer } from "effect"
1378
1452
  *
1379
1453
  * class Database extends Context.Service<Database, {
1380
1454
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -1394,8 +1468,8 @@ export const merge: {
1394
1468
  * const mergedLayer = Layer.merge(dbLayer, loggerLayer)
1395
1469
  * ```
1396
1470
  *
1397
- * @since 2.0.0
1398
1471
  * @category zipping
1472
+ * @since 2.0.0
1399
1473
  */
1400
1474
  <RIn, E, ROut>(that: Layer<ROut, E, RIn>): <RIn2, E2, ROut2>(self: Layer<ROut2, E2, RIn2>) => Layer<ROut | ROut2, E | E2, RIn | RIn2>
1401
1475
  /**
@@ -1404,9 +1478,10 @@ export const merge: {
1404
1478
  * This is a binary version of `mergeAll` that merges exactly two layers or one layer with an array of layers.
1405
1479
  * The layers are built concurrently and their outputs are combined.
1406
1480
  *
1407
- * @example
1481
+ * **Example** (Merging two layers)
1482
+ *
1408
1483
  * ```ts
1409
- * import { Effect, Layer, Context } from "effect"
1484
+ * import { Context, Effect, Layer } from "effect"
1410
1485
  *
1411
1486
  * class Database extends Context.Service<Database, {
1412
1487
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -1426,8 +1501,8 @@ export const merge: {
1426
1501
  * const mergedLayer = Layer.merge(dbLayer, loggerLayer)
1427
1502
  * ```
1428
1503
  *
1429
- * @since 2.0.0
1430
1504
  * @category zipping
1505
+ * @since 2.0.0
1431
1506
  */
1432
1507
  <const Layers extends [Any, ...Array<Any>]>(that: Layers): <A, E, R>(
1433
1508
  self: Layer<A, E, R>
@@ -1443,9 +1518,10 @@ export const merge: {
1443
1518
  * This is a binary version of `mergeAll` that merges exactly two layers or one layer with an array of layers.
1444
1519
  * The layers are built concurrently and their outputs are combined.
1445
1520
  *
1446
- * @example
1521
+ * **Example** (Merging two layers)
1522
+ *
1447
1523
  * ```ts
1448
- * import { Effect, Layer, Context } from "effect"
1524
+ * import { Context, Effect, Layer } from "effect"
1449
1525
  *
1450
1526
  * class Database extends Context.Service<Database, {
1451
1527
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -1465,8 +1541,8 @@ export const merge: {
1465
1541
  * const mergedLayer = Layer.merge(dbLayer, loggerLayer)
1466
1542
  * ```
1467
1543
  *
1468
- * @since 2.0.0
1469
1544
  * @category zipping
1545
+ * @since 2.0.0
1470
1546
  */
1471
1547
  <RIn2, E2, ROut2, RIn, E, ROut>(self: Layer<ROut2, E2, RIn2>, that: Layer<ROut, E, RIn>): Layer<ROut | ROut2, E | E2, RIn | RIn2>
1472
1548
  /**
@@ -1475,9 +1551,10 @@ export const merge: {
1475
1551
  * This is a binary version of `mergeAll` that merges exactly two layers or one layer with an array of layers.
1476
1552
  * The layers are built concurrently and their outputs are combined.
1477
1553
  *
1478
- * @example
1554
+ * **Example** (Merging two layers)
1555
+ *
1479
1556
  * ```ts
1480
- * import { Effect, Layer, Context } from "effect"
1557
+ * import { Context, Effect, Layer } from "effect"
1481
1558
  *
1482
1559
  * class Database extends Context.Service<Database, {
1483
1560
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -1497,8 +1574,8 @@ export const merge: {
1497
1574
  * const mergedLayer = Layer.merge(dbLayer, loggerLayer)
1498
1575
  * ```
1499
1576
  *
1500
- * @since 2.0.0
1501
1577
  * @category zipping
1578
+ * @since 2.0.0
1502
1579
  */
1503
1580
  <A, E, R, const Layers extends [Any, ...Array<Any>]>(self: Layer<A, E, R>, that: Layers): Layer<
1504
1581
  A | Success<Layers[number]>,
@@ -1537,9 +1614,10 @@ const provideWith = (
1537
1614
  * builder, resulting in a new builder with the inputs of this builder as
1538
1615
  * well as any leftover inputs, and the outputs of the specified builder.
1539
1616
  *
1540
- * @example
1617
+ * **Example** (Providing layer dependencies)
1618
+ *
1541
1619
  * ```ts
1542
- * import { Effect, Layer, Context } from "effect"
1620
+ * import { Context, Effect, Layer } from "effect"
1543
1621
  *
1544
1622
  * class Database extends Context.Service<Database, {
1545
1623
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -1595,8 +1673,8 @@ const provideWith = (
1595
1673
  * )
1596
1674
  * ```
1597
1675
  *
1598
- * @since 2.0.0
1599
1676
  * @category utils
1677
+ * @since 2.0.0
1600
1678
  */
1601
1679
  export const provide: {
1602
1680
  /**
@@ -1604,9 +1682,10 @@ export const provide: {
1604
1682
  * builder, resulting in a new builder with the inputs of this builder as
1605
1683
  * well as any leftover inputs, and the outputs of the specified builder.
1606
1684
  *
1607
- * @example
1685
+ * **Example** (Providing layer dependencies)
1686
+ *
1608
1687
  * ```ts
1609
- * import { Effect, Layer, Context } from "effect"
1688
+ * import { Context, Effect, Layer } from "effect"
1610
1689
  *
1611
1690
  * class Database extends Context.Service<Database, {
1612
1691
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -1662,8 +1741,8 @@ export const provide: {
1662
1741
  * )
1663
1742
  * ```
1664
1743
  *
1665
- * @since 2.0.0
1666
1744
  * @category utils
1745
+ * @since 2.0.0
1667
1746
  */
1668
1747
  <RIn, E, ROut>(that: Layer<ROut, E, RIn>): <RIn2, E2, ROut2>(self: Layer<ROut2, E2, RIn2>) => Layer<ROut2, E | E2, RIn | Exclude<RIn2, ROut>>
1669
1748
  /**
@@ -1671,9 +1750,10 @@ export const provide: {
1671
1750
  * builder, resulting in a new builder with the inputs of this builder as
1672
1751
  * well as any leftover inputs, and the outputs of the specified builder.
1673
1752
  *
1674
- * @example
1753
+ * **Example** (Providing layer dependencies)
1754
+ *
1675
1755
  * ```ts
1676
- * import { Effect, Layer, Context } from "effect"
1756
+ * import { Context, Effect, Layer } from "effect"
1677
1757
  *
1678
1758
  * class Database extends Context.Service<Database, {
1679
1759
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -1729,8 +1809,8 @@ export const provide: {
1729
1809
  * )
1730
1810
  * ```
1731
1811
  *
1732
- * @since 2.0.0
1733
1812
  * @category utils
1813
+ * @since 2.0.0
1734
1814
  */
1735
1815
  <const Layers extends [Any, ...Array<Any>]>(that: Layers): <A, E, R>(
1736
1816
  self: Layer<A, E, R>
@@ -1745,9 +1825,10 @@ export const provide: {
1745
1825
  * builder, resulting in a new builder with the inputs of this builder as
1746
1826
  * well as any leftover inputs, and the outputs of the specified builder.
1747
1827
  *
1748
- * @example
1828
+ * **Example** (Providing layer dependencies)
1829
+ *
1749
1830
  * ```ts
1750
- * import { Effect, Layer, Context } from "effect"
1831
+ * import { Context, Effect, Layer } from "effect"
1751
1832
  *
1752
1833
  * class Database extends Context.Service<Database, {
1753
1834
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -1803,8 +1884,8 @@ export const provide: {
1803
1884
  * )
1804
1885
  * ```
1805
1886
  *
1806
- * @since 2.0.0
1807
1887
  * @category utils
1888
+ * @since 2.0.0
1808
1889
  */
1809
1890
  <RIn2, E2, ROut2, RIn, E, ROut>(self: Layer<ROut2, E2, RIn2>, that: Layer<ROut, E, RIn>): Layer<ROut2, E | E2, RIn | Exclude<RIn2, ROut>>
1810
1891
  /**
@@ -1812,9 +1893,10 @@ export const provide: {
1812
1893
  * builder, resulting in a new builder with the inputs of this builder as
1813
1894
  * well as any leftover inputs, and the outputs of the specified builder.
1814
1895
  *
1815
- * @example
1896
+ * **Example** (Providing layer dependencies)
1897
+ *
1816
1898
  * ```ts
1817
- * import { Effect, Layer, Context } from "effect"
1899
+ * import { Context, Effect, Layer } from "effect"
1818
1900
  *
1819
1901
  * class Database extends Context.Service<Database, {
1820
1902
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -1870,8 +1952,8 @@ export const provide: {
1870
1952
  * )
1871
1953
  * ```
1872
1954
  *
1873
- * @since 2.0.0
1874
1955
  * @category utils
1956
+ * @since 2.0.0
1875
1957
  */
1876
1958
  <A, E, R, const Layers extends [Any, ...Array<Any>]>(self: Layer<A, E, R>, that: Layers): Layer<
1877
1959
  A,
@@ -1889,9 +1971,10 @@ export const provide: {
1889
1971
  * layer, resulting in a new layer with the inputs of this layer, and the
1890
1972
  * outputs of both layers.
1891
1973
  *
1892
- * @example
1974
+ * **Example** (Providing dependencies while retaining services)
1975
+ *
1893
1976
  * ```ts
1894
- * import { Effect, Layer, Context } from "effect"
1977
+ * import { Context, Effect, Layer } from "effect"
1895
1978
  *
1896
1979
  * class Database extends Context.Service<Database, {
1897
1980
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -1953,8 +2036,8 @@ export const provide: {
1953
2036
  * )
1954
2037
  * ```
1955
2038
  *
1956
- * @since 2.0.0
1957
2039
  * @category utils
2040
+ * @since 2.0.0
1958
2041
  */
1959
2042
  export const provideMerge: {
1960
2043
  /**
@@ -1962,9 +2045,10 @@ export const provideMerge: {
1962
2045
  * layer, resulting in a new layer with the inputs of this layer, and the
1963
2046
  * outputs of both layers.
1964
2047
  *
1965
- * @example
2048
+ * **Example** (Providing dependencies while retaining services)
2049
+ *
1966
2050
  * ```ts
1967
- * import { Effect, Layer, Context } from "effect"
2051
+ * import { Context, Effect, Layer } from "effect"
1968
2052
  *
1969
2053
  * class Database extends Context.Service<Database, {
1970
2054
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -2026,8 +2110,8 @@ export const provideMerge: {
2026
2110
  * )
2027
2111
  * ```
2028
2112
  *
2029
- * @since 2.0.0
2030
2113
  * @category utils
2114
+ * @since 2.0.0
2031
2115
  */
2032
2116
  <RIn, E, ROut>(that: Layer<ROut, E, RIn>): <RIn2, E2, ROut2>(self: Layer<ROut2, E2, RIn2>) => Layer<ROut | ROut2, E | E2, RIn | Exclude<RIn2, ROut>>
2033
2117
  /**
@@ -2035,9 +2119,10 @@ export const provideMerge: {
2035
2119
  * layer, resulting in a new layer with the inputs of this layer, and the
2036
2120
  * outputs of both layers.
2037
2121
  *
2038
- * @example
2122
+ * **Example** (Providing dependencies while retaining services)
2123
+ *
2039
2124
  * ```ts
2040
- * import { Effect, Layer, Context } from "effect"
2125
+ * import { Context, Effect, Layer } from "effect"
2041
2126
  *
2042
2127
  * class Database extends Context.Service<Database, {
2043
2128
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -2099,8 +2184,8 @@ export const provideMerge: {
2099
2184
  * )
2100
2185
  * ```
2101
2186
  *
2102
- * @since 2.0.0
2103
2187
  * @category utils
2188
+ * @since 2.0.0
2104
2189
  */
2105
2190
  <const Layers extends [Any, ...Array<Any>]>(that: Layers): <A, E, R>(
2106
2191
  self: Layer<A, E, R>
@@ -2115,9 +2200,10 @@ export const provideMerge: {
2115
2200
  * layer, resulting in a new layer with the inputs of this layer, and the
2116
2201
  * outputs of both layers.
2117
2202
  *
2118
- * @example
2203
+ * **Example** (Providing dependencies while retaining services)
2204
+ *
2119
2205
  * ```ts
2120
- * import { Effect, Layer, Context } from "effect"
2206
+ * import { Context, Effect, Layer } from "effect"
2121
2207
  *
2122
2208
  * class Database extends Context.Service<Database, {
2123
2209
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -2179,8 +2265,8 @@ export const provideMerge: {
2179
2265
  * )
2180
2266
  * ```
2181
2267
  *
2182
- * @since 2.0.0
2183
2268
  * @category utils
2269
+ * @since 2.0.0
2184
2270
  */
2185
2271
  <RIn2, E2, ROut2, RIn, E, ROut>(self: Layer<ROut2, E2, RIn2>, that: Layer<ROut, E, RIn>): Layer<ROut | ROut2, E | E2, RIn | Exclude<RIn2, ROut>>
2186
2272
  /**
@@ -2188,9 +2274,10 @@ export const provideMerge: {
2188
2274
  * layer, resulting in a new layer with the inputs of this layer, and the
2189
2275
  * outputs of both layers.
2190
2276
  *
2191
- * @example
2277
+ * **Example** (Providing dependencies while retaining services)
2278
+ *
2192
2279
  * ```ts
2193
- * import { Effect, Layer, Context } from "effect"
2280
+ * import { Context, Effect, Layer } from "effect"
2194
2281
  *
2195
2282
  * class Database extends Context.Service<Database, {
2196
2283
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -2252,8 +2339,8 @@ export const provideMerge: {
2252
2339
  * )
2253
2340
  * ```
2254
2341
  *
2255
- * @since 2.0.0
2256
2342
  * @category utils
2343
+ * @since 2.0.0
2257
2344
  */
2258
2345
  <A, E, R, const Layers extends [Any, ...Array<Any>]>(self: Layer<A, E, R>, that: Layers): Layer<
2259
2346
  A | Success<Layers[number]>,
@@ -2274,9 +2361,10 @@ export const provideMerge: {
2274
2361
  /**
2275
2362
  * Constructs a layer dynamically based on the output of this layer.
2276
2363
  *
2277
- * @example
2364
+ * **Example** (Creating services from layer output)
2365
+ *
2278
2366
  * ```ts
2279
- * import { Effect, Layer, Context } from "effect"
2367
+ * import { Context, Effect, Layer } from "effect"
2280
2368
  *
2281
2369
  * class Config extends Context.Service<Config, {
2282
2370
  * readonly dbUrl: string
@@ -2338,16 +2426,17 @@ export const provideMerge: {
2338
2426
  * )
2339
2427
  * ```
2340
2428
  *
2341
- * @since 2.0.0
2342
2429
  * @category sequencing
2430
+ * @since 2.0.0
2343
2431
  */
2344
2432
  export const flatMap: {
2345
2433
  /**
2346
2434
  * Constructs a layer dynamically based on the output of this layer.
2347
2435
  *
2348
- * @example
2436
+ * **Example** (Creating services from layer output)
2437
+ *
2349
2438
  * ```ts
2350
- * import { Effect, Layer, Context } from "effect"
2439
+ * import { Context, Effect, Layer } from "effect"
2351
2440
  *
2352
2441
  * class Config extends Context.Service<Config, {
2353
2442
  * readonly dbUrl: string
@@ -2409,16 +2498,17 @@ export const flatMap: {
2409
2498
  * )
2410
2499
  * ```
2411
2500
  *
2412
- * @since 2.0.0
2413
2501
  * @category sequencing
2502
+ * @since 2.0.0
2414
2503
  */
2415
2504
  <A, A2, E2, R2>(f: (context: Context.Context<A>) => Layer<A2, E2, R2>): <E, R>(self: Layer<A, E, R>) => Layer<A2, E2 | E, R2 | R>
2416
2505
  /**
2417
2506
  * Constructs a layer dynamically based on the output of this layer.
2418
2507
  *
2419
- * @example
2508
+ * **Example** (Creating services from layer output)
2509
+ *
2420
2510
  * ```ts
2421
- * import { Effect, Layer, Context } from "effect"
2511
+ * import { Context, Effect, Layer } from "effect"
2422
2512
  *
2423
2513
  * class Config extends Context.Service<Config, {
2424
2514
  * readonly dbUrl: string
@@ -2480,8 +2570,8 @@ export const flatMap: {
2480
2570
  * )
2481
2571
  * ```
2482
2572
  *
2483
- * @since 2.0.0
2484
2573
  * @category sequencing
2574
+ * @since 2.0.0
2485
2575
  */
2486
2576
  <A, E, R, A2, E2, R2>(
2487
2577
  self: Layer<A, E, R>,
@@ -2501,22 +2591,22 @@ export const flatMap: {
2501
2591
  /**
2502
2592
  * Performs the specified effect if this layer succeeds.
2503
2593
  *
2504
- * @since 4.0.0
2505
2594
  * @category sequencing
2595
+ * @since 2.0.0
2506
2596
  */
2507
2597
  export const tap: {
2508
2598
  /**
2509
2599
  * Performs the specified effect if this layer succeeds.
2510
2600
  *
2511
- * @since 4.0.0
2512
2601
  * @category sequencing
2602
+ * @since 2.0.0
2513
2603
  */
2514
2604
  <ROut, XR extends ROut, RIn2, E2, X>(f: (context: Context.Context<XR>) => Effect<X, E2, RIn2>): <RIn, E>(self: Layer<ROut, E, RIn>) => Layer<ROut, E | E2, RIn | Exclude<RIn2, Scope.Scope>>
2515
2605
  /**
2516
2606
  * Performs the specified effect if this layer succeeds.
2517
2607
  *
2518
- * @since 4.0.0
2519
2608
  * @category sequencing
2609
+ * @since 2.0.0
2520
2610
  */
2521
2611
  <RIn, E, ROut, XR extends ROut, RIn2, E2, X>(
2522
2612
  self: Layer<ROut, E, RIn>,
@@ -2536,22 +2626,22 @@ export const tap: {
2536
2626
  /**
2537
2627
  * Performs the specified effect if this layer fails.
2538
2628
  *
2539
- * @since 4.0.0
2540
2629
  * @category sequencing
2630
+ * @since 2.0.0
2541
2631
  */
2542
2632
  export const tapError: {
2543
2633
  /**
2544
2634
  * Performs the specified effect if this layer fails.
2545
2635
  *
2546
- * @since 4.0.0
2547
2636
  * @category sequencing
2637
+ * @since 2.0.0
2548
2638
  */
2549
2639
  <E, XE extends E, RIn2, E2, X>(f: (e: XE) => Effect<X, E2, RIn2>): <RIn, ROut>(self: Layer<ROut, E, RIn>) => Layer<ROut, E | E2, RIn | Exclude<RIn2, Scope.Scope>>
2550
2640
  /**
2551
2641
  * Performs the specified effect if this layer fails.
2552
2642
  *
2553
- * @since 4.0.0
2554
2643
  * @category sequencing
2644
+ * @since 2.0.0
2555
2645
  */
2556
2646
  <RIn, E, XE extends E, ROut, RIn2, E2, X>(self: Layer<ROut, E, RIn>, f: (e: XE) => Effect<X, E2, RIn2>): Layer<ROut, E | E2, RIn | Exclude<RIn2, Scope.Scope>>
2557
2647
  } = dual(2, <RIn, E, XE extends E, ROut, RIn2, E2, X>(
@@ -2566,42 +2656,42 @@ export const tapError: {
2566
2656
  ))
2567
2657
 
2568
2658
  /**
2569
- * Performs the specified effect if this layer fails.
2570
- *
2571
- * **Previously Known As**
2659
+ * Performs the specified effect when this layer fails with any cause.
2572
2660
  *
2573
- * This API replaces the following from Effect 3.x:
2574
- *
2575
- * - `Layer.tapErrorCause`
2661
+ * **Details**
2662
+ * The callback receives the layer's `Cause`, so it can inspect typed errors,
2663
+ * defects, and interruption information. If the callback succeeds, the layer
2664
+ * fails again with the original cause; if the callback fails, that failure is
2665
+ * added to the layer's error type.
2576
2666
  *
2577
- * @since 4.0.0
2578
2667
  * @category sequencing
2668
+ * @since 4.0.0
2579
2669
  */
2580
2670
  export const tapCause: {
2581
2671
  /**
2582
- * Performs the specified effect if this layer fails.
2583
- *
2584
- * **Previously Known As**
2585
- *
2586
- * This API replaces the following from Effect 3.x:
2672
+ * Performs the specified effect when this layer fails with any cause.
2587
2673
  *
2588
- * - `Layer.tapErrorCause`
2674
+ * **Details**
2675
+ * The callback receives the layer's `Cause`, so it can inspect typed errors,
2676
+ * defects, and interruption information. If the callback succeeds, the layer
2677
+ * fails again with the original cause; if the callback fails, that failure is
2678
+ * added to the layer's error type.
2589
2679
  *
2590
- * @since 4.0.0
2591
2680
  * @category sequencing
2681
+ * @since 4.0.0
2592
2682
  */
2593
2683
  <E, XE extends E, RIn2, E2, X>(f: (cause: Cause.Cause<XE>) => Effect<X, E2, RIn2>): <RIn, ROut>(self: Layer<ROut, E, RIn>) => Layer<ROut, E | E2, RIn | Exclude<RIn2, Scope.Scope>>
2594
2684
  /**
2595
- * Performs the specified effect if this layer fails.
2596
- *
2597
- * **Previously Known As**
2598
- *
2599
- * This API replaces the following from Effect 3.x:
2685
+ * Performs the specified effect when this layer fails with any cause.
2600
2686
  *
2601
- * - `Layer.tapErrorCause`
2687
+ * **Details**
2688
+ * The callback receives the layer's `Cause`, so it can inspect typed errors,
2689
+ * defects, and interruption information. If the callback succeeds, the layer
2690
+ * fails again with the original cause; if the callback fails, that failure is
2691
+ * added to the layer's error type.
2602
2692
  *
2603
- * @since 4.0.0
2604
2693
  * @category sequencing
2694
+ * @since 4.0.0
2605
2695
  */
2606
2696
  <RIn, E, XE extends E, ROut, RIn2, E2, X>(
2607
2697
  self: Layer<ROut, E, RIn>,
@@ -2623,9 +2713,10 @@ export const tapCause: {
2623
2713
  * Translates effect failure into death of the fiber, making all failures
2624
2714
  * unchecked and not a part of the type of the layer.
2625
2715
  *
2626
- * @example
2716
+ * **Example** (Converting layer failures to defects)
2717
+ *
2627
2718
  * ```ts
2628
- * import { Data, Effect, Layer, Context } from "effect"
2719
+ * import { Context, Data, Effect, Layer } from "effect"
2629
2720
  *
2630
2721
  * class DatabaseError extends Data.TaggedError("DatabaseError")<{
2631
2722
  * message: string
@@ -2637,13 +2728,8 @@ export const tapCause: {
2637
2728
  *
2638
2729
  * // Layer that can fail during construction
2639
2730
  * const flakyDatabaseLayer = Layer.effect(Database)(Effect.gen(function*() {
2640
- * // Simulate a database connection that might fail
2641
- * const shouldFail = Math.random() > 0.5
2642
- * if (shouldFail) {
2643
- * return yield* new DatabaseError({ message: "Connection failed" })
2644
- * }
2645
- *
2646
- * return { query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Result: ${sql}`)) }
2731
+ * console.log("connecting")
2732
+ * return yield* new DatabaseError({ message: "Connection failed" })
2647
2733
  * }))
2648
2734
  *
2649
2735
  * // Convert failures to fiber death - removes error from type
@@ -2657,12 +2743,12 @@ export const tapCause: {
2657
2743
  * Effect.provide(reliableDatabaseLayer)
2658
2744
  * )
2659
2745
  *
2660
- * // If the database layer fails, the entire fiber will die
2661
- * // instead of the effect failing with DatabaseError
2746
+ * // Running the program prints "connecting", then the DatabaseError is
2747
+ * // converted into a fiber defect instead of remaining a typed error.
2662
2748
  * ```
2663
2749
  *
2664
- * @since 2.0.0
2665
2750
  * @category error handling
2751
+ * @since 2.0.0
2666
2752
  */
2667
2753
  export const orDie = <A, E, R>(self: Layer<A, E, R>): Layer<A, never, R> =>
2668
2754
  fromBuildUnsafe((memoMap, scope) => internalEffect.orDie(self.build(memoMap, scope)))
@@ -2690,8 +2776,8 @@ export {
2690
2776
  /**
2691
2777
  * Recovers from all errors.
2692
2778
  *
2693
- * @since 4.0.0
2694
2779
  * @category error handling
2780
+ * @since 4.0.0
2695
2781
  */
2696
2782
  catch_ as catch
2697
2783
  }
@@ -2699,9 +2785,10 @@ export {
2699
2785
  /**
2700
2786
  * Recovers from specific tagged errors.
2701
2787
  *
2702
- * @example
2788
+ * **Example** (Recovering from tagged layer errors)
2789
+ *
2703
2790
  * ```ts
2704
- * import { Data, Effect, Layer, Context } from "effect"
2791
+ * import { Context, Data, Effect, Layer } from "effect"
2705
2792
  *
2706
2793
  * class ConfigError extends Data.TaggedError("ConfigError") {}
2707
2794
  *
@@ -2718,16 +2805,17 @@ export {
2718
2805
  * )
2719
2806
  * ```
2720
2807
  *
2721
- * @since 4.0.0
2722
2808
  * @category error handling
2809
+ * @since 4.0.0
2723
2810
  */
2724
2811
  export const catchTag: {
2725
2812
  /**
2726
2813
  * Recovers from specific tagged errors.
2727
2814
  *
2728
- * @example
2815
+ * **Example** (Recovering from tagged layer errors)
2816
+ *
2729
2817
  * ```ts
2730
- * import { Data, Effect, Layer, Context } from "effect"
2818
+ * import { Context, Data, Effect, Layer } from "effect"
2731
2819
  *
2732
2820
  * class ConfigError extends Data.TaggedError("ConfigError") {}
2733
2821
  *
@@ -2744,8 +2832,8 @@ export const catchTag: {
2744
2832
  * )
2745
2833
  * ```
2746
2834
  *
2747
- * @since 4.0.0
2748
2835
  * @category error handling
2836
+ * @since 4.0.0
2749
2837
  */
2750
2838
  <const K extends Types.Tags<E> | NonEmptyReadonlyArray<Types.Tags<E>>, E, RIn2, E2, ROut2>(
2751
2839
  k: K,
@@ -2762,9 +2850,10 @@ export const catchTag: {
2762
2850
  /**
2763
2851
  * Recovers from specific tagged errors.
2764
2852
  *
2765
- * @example
2853
+ * **Example** (Recovering from tagged layer errors)
2854
+ *
2766
2855
  * ```ts
2767
- * import { Data, Effect, Layer, Context } from "effect"
2856
+ * import { Context, Data, Effect, Layer } from "effect"
2768
2857
  *
2769
2858
  * class ConfigError extends Data.TaggedError("ConfigError") {}
2770
2859
  *
@@ -2781,8 +2870,8 @@ export const catchTag: {
2781
2870
  * )
2782
2871
  * ```
2783
2872
  *
2784
- * @since 4.0.0
2785
2873
  * @category error handling
2874
+ * @since 4.0.0
2786
2875
  */
2787
2876
  <
2788
2877
  RIn,
@@ -2823,177 +2912,150 @@ export const catchTag: {
2823
2912
  ))
2824
2913
 
2825
2914
  /**
2826
- * Recovers from all errors.
2915
+ * Recovers from any failure cause by switching to another layer.
2916
+ *
2917
+ * **Details**
2918
+ * The handler receives the full `Cause` of the failed layer, including typed
2919
+ * errors, defects, and interruption information, and returns the fallback layer
2920
+ * to build instead.
2921
+ *
2922
+ * **Example** (Recovering from layer failures by cause)
2827
2923
  *
2828
- * @example
2829
2924
  * ```ts
2830
- * import { Data, Effect, Layer, Context } from "effect"
2925
+ * import { Context, Data, Effect, Layer } from "effect"
2831
2926
  *
2832
2927
  * class DatabaseError extends Data.TaggedError("DatabaseError")<{
2833
2928
  * message: string
2834
2929
  * }> {}
2835
2930
  *
2836
- * class NetworkError extends Data.TaggedError("NetworkError")<{
2837
- * reason: string
2838
- * }> {}
2839
- *
2840
2931
  * class Database extends Context.Service<Database, {
2841
2932
  * readonly query: (sql: string) => Effect.Effect<string>
2842
2933
  * }>()("Database") {}
2843
2934
  *
2844
- * class Logger extends Context.Service<Logger, {
2845
- * readonly log: (msg: string) => Effect.Effect<void>
2846
- * }>()("Logger") {}
2847
- *
2848
- * // Primary database layer that might fail
2849
- * const primaryDatabaseLayer = Layer.effect(Database)(Effect.gen(function*() {
2850
- * return yield* new DatabaseError({ message: "Primary DB unreachable" })
2851
- * return { query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Primary: ${sql}`)) }
2852
- * }))
2935
+ * const primaryDatabaseLayer = Layer.effect(Database)(
2936
+ * Effect.fail(new DatabaseError({ message: "Primary DB unreachable" }))
2937
+ * )
2853
2938
  *
2854
- * // Fallback layers for different error causes
2855
2939
  * const databaseWithFallback = primaryDatabaseLayer.pipe(
2856
2940
  * Layer.catchCause(() => {
2857
- * // For any cause/error, fallback to in-memory database
2858
- * return Layer.mergeAll(
2859
- * Layer.succeed(Database)({
2860
- * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Memory: ${sql}`))
2861
- * }),
2862
- * Layer.succeed(Logger)({
2863
- * log: Effect.fn("Logger.log")((msg: string) =>
2864
- * Effect.sync(() => console.log(`[FALLBACK] ${msg}`))
2865
- * )
2866
- * })
2867
- * )
2941
+ * return Layer.succeed(Database)({
2942
+ * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Memory: ${sql}`))
2943
+ * })
2868
2944
  * })
2869
2945
  * )
2870
2946
  *
2871
2947
  * const program = Effect.gen(function*() {
2872
2948
  * const database = yield* Database
2873
- * return yield* database.query("SELECT * FROM users")
2949
+ * const result = yield* database.query("SELECT * FROM users")
2950
+ * console.log(result)
2874
2951
  * }).pipe(
2875
2952
  * Effect.provide(databaseWithFallback)
2876
2953
  * )
2954
+ *
2955
+ * Effect.runPromise(program)
2956
+ * // Memory: SELECT * FROM users
2877
2957
  * ```
2878
2958
  *
2879
- * @since 2.0.0
2880
2959
  * @category error handling
2960
+ * @since 4.0.0
2881
2961
  */
2882
2962
  export const catchCause: {
2883
2963
  /**
2884
- * Recovers from all errors.
2964
+ * Recovers from any failure cause by switching to another layer.
2965
+ *
2966
+ * **Details**
2967
+ * The handler receives the full `Cause` of the failed layer, including typed
2968
+ * errors, defects, and interruption information, and returns the fallback layer
2969
+ * to build instead.
2970
+ *
2971
+ * **Example** (Recovering from layer failures by cause)
2885
2972
  *
2886
- * @example
2887
2973
  * ```ts
2888
- * import { Data, Effect, Layer, Context } from "effect"
2974
+ * import { Context, Data, Effect, Layer } from "effect"
2889
2975
  *
2890
2976
  * class DatabaseError extends Data.TaggedError("DatabaseError")<{
2891
2977
  * message: string
2892
2978
  * }> {}
2893
2979
  *
2894
- * class NetworkError extends Data.TaggedError("NetworkError")<{
2895
- * reason: string
2896
- * }> {}
2897
- *
2898
2980
  * class Database extends Context.Service<Database, {
2899
2981
  * readonly query: (sql: string) => Effect.Effect<string>
2900
2982
  * }>()("Database") {}
2901
2983
  *
2902
- * class Logger extends Context.Service<Logger, {
2903
- * readonly log: (msg: string) => Effect.Effect<void>
2904
- * }>()("Logger") {}
2905
- *
2906
- * // Primary database layer that might fail
2907
- * const primaryDatabaseLayer = Layer.effect(Database)(Effect.gen(function*() {
2908
- * return yield* new DatabaseError({ message: "Primary DB unreachable" })
2909
- * return { query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Primary: ${sql}`)) }
2910
- * }))
2984
+ * const primaryDatabaseLayer = Layer.effect(Database)(
2985
+ * Effect.fail(new DatabaseError({ message: "Primary DB unreachable" }))
2986
+ * )
2911
2987
  *
2912
- * // Fallback layers for different error causes
2913
2988
  * const databaseWithFallback = primaryDatabaseLayer.pipe(
2914
2989
  * Layer.catchCause(() => {
2915
- * // For any cause/error, fallback to in-memory database
2916
- * return Layer.mergeAll(
2917
- * Layer.succeed(Database)({
2918
- * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Memory: ${sql}`))
2919
- * }),
2920
- * Layer.succeed(Logger)({
2921
- * log: Effect.fn("Logger.log")((msg: string) =>
2922
- * Effect.sync(() => console.log(`[FALLBACK] ${msg}`))
2923
- * )
2924
- * })
2925
- * )
2990
+ * return Layer.succeed(Database)({
2991
+ * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Memory: ${sql}`))
2992
+ * })
2926
2993
  * })
2927
2994
  * )
2928
2995
  *
2929
2996
  * const program = Effect.gen(function*() {
2930
2997
  * const database = yield* Database
2931
- * return yield* database.query("SELECT * FROM users")
2998
+ * const result = yield* database.query("SELECT * FROM users")
2999
+ * console.log(result)
2932
3000
  * }).pipe(
2933
3001
  * Effect.provide(databaseWithFallback)
2934
3002
  * )
3003
+ *
3004
+ * Effect.runPromise(program)
3005
+ * // Memory: SELECT * FROM users
2935
3006
  * ```
2936
3007
  *
2937
- * @since 2.0.0
2938
3008
  * @category error handling
3009
+ * @since 4.0.0
2939
3010
  */
2940
3011
  <E, RIn2, E2, ROut2>(onError: (cause: Cause.Cause<E>) => Layer<ROut2, E2, RIn2>): <RIn, ROut>(self: Layer<ROut, E, RIn>) => Layer<ROut & ROut2, E2, RIn2 | RIn>
2941
3012
  /**
2942
- * Recovers from all errors.
3013
+ * Recovers from any failure cause by switching to another layer.
3014
+ *
3015
+ * **Details**
3016
+ * The handler receives the full `Cause` of the failed layer, including typed
3017
+ * errors, defects, and interruption information, and returns the fallback layer
3018
+ * to build instead.
3019
+ *
3020
+ * **Example** (Recovering from layer failures by cause)
2943
3021
  *
2944
- * @example
2945
3022
  * ```ts
2946
- * import { Data, Effect, Layer, Context } from "effect"
3023
+ * import { Context, Data, Effect, Layer } from "effect"
2947
3024
  *
2948
3025
  * class DatabaseError extends Data.TaggedError("DatabaseError")<{
2949
3026
  * message: string
2950
3027
  * }> {}
2951
3028
  *
2952
- * class NetworkError extends Data.TaggedError("NetworkError")<{
2953
- * reason: string
2954
- * }> {}
2955
- *
2956
3029
  * class Database extends Context.Service<Database, {
2957
3030
  * readonly query: (sql: string) => Effect.Effect<string>
2958
3031
  * }>()("Database") {}
2959
3032
  *
2960
- * class Logger extends Context.Service<Logger, {
2961
- * readonly log: (msg: string) => Effect.Effect<void>
2962
- * }>()("Logger") {}
2963
- *
2964
- * // Primary database layer that might fail
2965
- * const primaryDatabaseLayer = Layer.effect(Database)(Effect.gen(function*() {
2966
- * return yield* new DatabaseError({ message: "Primary DB unreachable" })
2967
- * return { query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Primary: ${sql}`)) }
2968
- * }))
3033
+ * const primaryDatabaseLayer = Layer.effect(Database)(
3034
+ * Effect.fail(new DatabaseError({ message: "Primary DB unreachable" }))
3035
+ * )
2969
3036
  *
2970
- * // Fallback layers for different error causes
2971
3037
  * const databaseWithFallback = primaryDatabaseLayer.pipe(
2972
3038
  * Layer.catchCause(() => {
2973
- * // For any cause/error, fallback to in-memory database
2974
- * return Layer.mergeAll(
2975
- * Layer.succeed(Database)({
2976
- * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Memory: ${sql}`))
2977
- * }),
2978
- * Layer.succeed(Logger)({
2979
- * log: Effect.fn("Logger.log")((msg: string) =>
2980
- * Effect.sync(() => console.log(`[FALLBACK] ${msg}`))
2981
- * )
2982
- * })
2983
- * )
3039
+ * return Layer.succeed(Database)({
3040
+ * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Memory: ${sql}`))
3041
+ * })
2984
3042
  * })
2985
3043
  * )
2986
3044
  *
2987
3045
  * const program = Effect.gen(function*() {
2988
3046
  * const database = yield* Database
2989
- * return yield* database.query("SELECT * FROM users")
3047
+ * const result = yield* database.query("SELECT * FROM users")
3048
+ * console.log(result)
2990
3049
  * }).pipe(
2991
3050
  * Effect.provide(databaseWithFallback)
2992
3051
  * )
3052
+ *
3053
+ * Effect.runPromise(program)
3054
+ * // Memory: SELECT * FROM users
2993
3055
  * ```
2994
3056
  *
2995
- * @since 2.0.0
2996
3057
  * @category error handling
3058
+ * @since 4.0.0
2997
3059
  */
2998
3060
  <RIn, E, ROut, RIn2, E2, ROut22>(
2999
3061
  self: Layer<ROut, E, RIn>,
@@ -3025,8 +3087,8 @@ export const catchCause: {
3025
3087
  * This is useful for adapting or extending a service's behavior during the
3026
3088
  * creation of a layer.
3027
3089
  *
3028
- * @since 3.13.0
3029
3090
  * @category utils
3091
+ * @since 3.13.0
3030
3092
  */
3031
3093
  export const updateService: {
3032
3094
  /**
@@ -3044,8 +3106,8 @@ export const updateService: {
3044
3106
  * This is useful for adapting or extending a service's behavior during the
3045
3107
  * creation of a layer.
3046
3108
  *
3047
- * @since 3.13.0
3048
3109
  * @category utils
3110
+ * @since 3.13.0
3049
3111
  */
3050
3112
  <I, A>(service: Context.Key<I, A>, f: (a: Types.NoInfer<A>) => A): <A1, E1, R1>(layer: Layer<A1, E1, R1>) => Layer<A1, E1, I | R1>
3051
3113
  /**
@@ -3063,8 +3125,8 @@ export const updateService: {
3063
3125
  * This is useful for adapting or extending a service's behavior during the
3064
3126
  * creation of a layer.
3065
3127
  *
3066
- * @since 3.13.0
3067
3128
  * @category utils
3129
+ * @since 3.13.0
3068
3130
  */
3069
3131
  <A1, E1, R1, I, A>(
3070
3132
  layer: Layer<A1, E1, R1>,
@@ -3083,53 +3145,74 @@ export const updateService: {
3083
3145
  /**
3084
3146
  * Creates a fresh version of this layer that will not be shared.
3085
3147
  *
3086
- * @example
3148
+ * **Example** (Creating non-shared layer instances)
3149
+ *
3087
3150
  * ```ts
3088
- * import { Effect, Layer, Ref, Context } from "effect"
3151
+ * import { Context, Effect, Layer, Ref } from "effect"
3089
3152
  *
3090
3153
  * class Counter extends Context.Service<Counter, {
3091
- * readonly count: number
3092
- * readonly increment: () => Effect.Effect<number>
3154
+ * readonly id: number
3093
3155
  * }>()("Counter") {}
3094
3156
  *
3095
- * // Layer that creates a counter with shared state
3096
- * const counterLayer = Layer.effect(Counter)(Effect.gen(function*() {
3097
- * const ref = yield* Ref.make(0)
3098
- * return {
3099
- * count: 0,
3100
- * increment: Effect.fn("Counter.increment")(() =>
3101
- * Ref.update(ref, (n) => n + 1).pipe(
3102
- * Effect.flatMap(() => Ref.get(ref))
3103
- * )
3104
- * )
3105
- * }
3157
+ * class Left extends Context.Service<Left, {
3158
+ * readonly counterId: number
3159
+ * }>()("Left") {}
3160
+ *
3161
+ * class Right extends Context.Service<Right, {
3162
+ * readonly counterId: number
3163
+ * }>()("Right") {}
3164
+ *
3165
+ * const leftLayer = Layer.effect(Left)(Effect.gen(function*() {
3166
+ * const counter = yield* Counter
3167
+ * return { counterId: counter.id }
3106
3168
  * }))
3107
3169
  *
3108
- * // By default, layers are shared - same instance used everywhere
3109
- * const sharedProgram = Effect.gen(function*() {
3110
- * const counter1 = yield* Counter
3111
- * const counter2 = yield* Counter
3170
+ * const rightLayer = Layer.effect(Right)(Effect.gen(function*() {
3171
+ * const counter = yield* Counter
3172
+ * return { counterId: counter.id }
3173
+ * }))
3112
3174
  *
3113
- * // Both counter1 and counter2 refer to the same instance
3114
- * console.log("Shared layer - same instance")
3115
- * }).pipe(
3116
- * Effect.provide(counterLayer)
3117
- * )
3175
+ * const showIds = Effect.gen(function*() {
3176
+ * const left = yield* Left
3177
+ * const right = yield* Right
3178
+ * console.log(`same Counter: ${left.counterId === right.counterId}`)
3179
+ * })
3118
3180
  *
3119
- * // Fresh layer creates a new instance each time
3120
- * const freshProgram = Effect.gen(function*() {
3121
- * const counter1 = yield* Counter
3122
- * const counter2 = yield* Counter
3181
+ * const program = Effect.gen(function*() {
3182
+ * const nextId = yield* Ref.make(0)
3123
3183
  *
3124
- * // counter1 and counter2 are different instances
3125
- * console.log("Fresh layer - different instances")
3126
- * }).pipe(
3127
- * Effect.provide(Layer.fresh(counterLayer))
3128
- * )
3184
+ * const counterLayer = Layer.effect(Counter)(Effect.gen(function*() {
3185
+ * const id = yield* Ref.updateAndGet(nextId, (n) => n + 1)
3186
+ * console.log("constructed Counter")
3187
+ * return { id }
3188
+ * }))
3189
+ *
3190
+ * const shared = Layer.merge(
3191
+ * Layer.provide(leftLayer, counterLayer),
3192
+ * Layer.provide(rightLayer, counterLayer)
3193
+ * )
3194
+ *
3195
+ * yield* Effect.provide(showIds, shared)
3196
+ *
3197
+ * const freshCounterLayer = Layer.fresh(counterLayer)
3198
+ * const fresh = Layer.merge(
3199
+ * Layer.provide(leftLayer, freshCounterLayer),
3200
+ * Layer.provide(rightLayer, freshCounterLayer)
3201
+ * )
3202
+ *
3203
+ * yield* Effect.provide(showIds, fresh)
3204
+ * })
3205
+ *
3206
+ * Effect.runPromise(program)
3207
+ * // constructed Counter
3208
+ * // same Counter: true
3209
+ * // constructed Counter
3210
+ * // constructed Counter
3211
+ * // same Counter: false
3129
3212
  * ```
3130
3213
  *
3131
- * @since 2.0.0
3132
3214
  * @category utils
3215
+ * @since 2.0.0
3133
3216
  */
3134
3217
  export const fresh = <A, E, R>(self: Layer<A, E, R>): Layer<A, E, R> =>
3135
3218
  fromBuildUnsafe((_, scope) => self.build(makeMemoMapUnsafe(), scope))
@@ -3138,9 +3221,10 @@ export const fresh = <A, E, R>(self: Layer<A, E, R>): Layer<A, E, R> =>
3138
3221
  * Builds this layer and uses it until it is interrupted. This is useful when
3139
3222
  * your entire application is a layer, such as an HTTP server.
3140
3223
  *
3141
- * @example
3224
+ * **Example** (Launching an application layer)
3225
+ *
3142
3226
  * ```ts
3143
- * import { Console, Effect, Layer, Context } from "effect"
3227
+ * import { Console, Context, Effect, Layer } from "effect"
3144
3228
  *
3145
3229
  * class HttpServer extends Context.Service<HttpServer, {
3146
3230
  * readonly start: () => Effect.Effect<string>
@@ -3185,8 +3269,8 @@ export const fresh = <A, E, R>(self: Layer<A, E, R>): Layer<A, E, R> =>
3185
3269
  * // Effect.runFork(application)
3186
3270
  * ```
3187
3271
  *
3272
+ * @category converting
3188
3273
  * @since 2.0.0
3189
- * @category conversions
3190
3274
  */
3191
3275
  export const launch = <RIn, E, ROut>(self: Layer<ROut, E, RIn>): Effect<never, E, RIn> =>
3192
3276
  internalEffect.scoped(internalEffect.andThen(build(self), internalEffect.never))
@@ -3198,8 +3282,8 @@ export const launch = <RIn, E, ROut>(self: Layer<ROut, E, RIn>): Effect<never, E
3198
3282
  * while keeping non-Effect properties required. This allows you to provide
3199
3283
  * only the methods you need to test while leaving others unimplemented.
3200
3284
  *
3201
- * @since 4.0.0
3202
3285
  * @category Testing
3286
+ * @since 3.17.0
3203
3287
  */
3204
3288
  export type PartialEffectful<A extends object> = Types.Simplify<
3205
3289
  & {
@@ -3223,9 +3307,10 @@ type AnyEffectOrStream =
3223
3307
  * implementation of the service, and any methods not provided will
3224
3308
  * throw an unimplemented defect when called.
3225
3309
  *
3226
- * @example
3310
+ * **Example** (Mocking services for tests)
3311
+ *
3227
3312
  * ```ts
3228
- * import { Effect, Layer, Context } from "effect"
3313
+ * import { Context, Effect, Layer } from "effect"
3229
3314
  *
3230
3315
  * class UserService extends Context.Service<UserService, {
3231
3316
  * readonly config: { apiUrl: string }
@@ -3261,8 +3346,8 @@ type AnyEffectOrStream =
3261
3346
  * )
3262
3347
  * ```
3263
3348
  *
3264
- * @since 4.0.0
3265
3349
  * @category Testing
3350
+ * @since 3.17.0
3266
3351
  */
3267
3352
  export const mock: {
3268
3353
  /**
@@ -3270,9 +3355,10 @@ export const mock: {
3270
3355
  * implementation of the service, and any methods not provided will
3271
3356
  * throw an unimplemented defect when called.
3272
3357
  *
3273
- * @example
3358
+ * **Example** (Mocking services for tests)
3359
+ *
3274
3360
  * ```ts
3275
- * import { Effect, Layer, Context } from "effect"
3361
+ * import { Context, Effect, Layer } from "effect"
3276
3362
  *
3277
3363
  * class UserService extends Context.Service<UserService, {
3278
3364
  * readonly config: { apiUrl: string }
@@ -3308,8 +3394,8 @@ export const mock: {
3308
3394
  * )
3309
3395
  * ```
3310
3396
  *
3311
- * @since 4.0.0
3312
3397
  * @category Testing
3398
+ * @since 3.17.0
3313
3399
  */
3314
3400
  <I, S extends object>(service: Context.Key<I, S>): (implementation: PartialEffectful<S>) => Layer<I>
3315
3401
  /**
@@ -3317,9 +3403,10 @@ export const mock: {
3317
3403
  * implementation of the service, and any methods not provided will
3318
3404
  * throw an unimplemented defect when called.
3319
3405
  *
3320
- * @example
3406
+ * **Example** (Mocking services for tests)
3407
+ *
3321
3408
  * ```ts
3322
- * import { Effect, Layer, Context } from "effect"
3409
+ * import { Context, Effect, Layer } from "effect"
3323
3410
  *
3324
3411
  * class UserService extends Context.Service<UserService, {
3325
3412
  * readonly config: { apiUrl: string }
@@ -3355,8 +3442,8 @@ export const mock: {
3355
3442
  * )
3356
3443
  * ```
3357
3444
  *
3358
- * @since 4.0.0
3359
3445
  * @category Testing
3446
+ * @since 3.17.0
3360
3447
  */
3361
3448
  <I, S extends object>(
3362
3449
  service: Context.Key<I, S>,
@@ -3422,7 +3509,8 @@ const ChannelTypeId: Channel.TypeId = "~effect/Channel"
3422
3509
  * This function provides compile-time type checking to ensure that the success
3423
3510
  * value of an layer conforms to a specific type constraint.
3424
3511
  *
3425
- * @example
3512
+ * **Example** (Constraining layer success types)
3513
+ *
3426
3514
  * ```ts
3427
3515
  * import { Layer } from "effect"
3428
3516
  *
@@ -3438,11 +3526,11 @@ const ChannelTypeId: Channel.TypeId = "~effect/Channel"
3438
3526
  * // This would cause a TypeScript compilation error:
3439
3527
  * // const invalidLayer = satisfiesNumber(StringLayer)
3440
3528
  * // ^^^^^^^^^^^
3441
- * // Type 'number' is not assignable to type 'string'
3529
+ * // Type 'string' is not assignable to type 'number'
3442
3530
  * ```
3443
3531
  *
3444
- * @since 4.0.0
3445
3532
  * @category Type constraints
3533
+ * @since 4.0.0
3446
3534
  */
3447
3535
  export const satisfiesSuccessType =
3448
3536
  <ROut>() => <ROut2 extends ROut, E, RIn>(layer: Layer<ROut2, E, RIn>): Layer<ROut2, E, RIn> => layer
@@ -3453,7 +3541,8 @@ export const satisfiesSuccessType =
3453
3541
  * This function provides compile-time type checking to ensure that the error
3454
3542
  * type of an layer conforms to a specific type constraint.
3455
3543
  *
3456
- * @example
3544
+ * **Example** (Constraining layer error types)
3545
+ *
3457
3546
  * ```ts
3458
3547
  * import { Layer } from "effect"
3459
3548
  *
@@ -3473,8 +3562,8 @@ export const satisfiesSuccessType =
3473
3562
  * // Type 'string' is not assignable to type 'Error'
3474
3563
  * ```
3475
3564
  *
3476
- * @since 4.0.0
3477
3565
  * @category Type constraints
3566
+ * @since 4.0.0
3478
3567
  */
3479
3568
  export const satisfiesErrorType =
3480
3569
  <E>() => <ROut, E2 extends E, RIn>(layer: Layer<ROut, E2, RIn>): Layer<ROut, E2, RIn> => layer
@@ -3485,14 +3574,15 @@ export const satisfiesErrorType =
3485
3574
  * This function provides compile-time type checking to ensure that the
3486
3575
  * requirements (context) type of an layer conforms to a specific type constraint.
3487
3576
  *
3488
- * @example
3577
+ * **Example** (Constraining layer service requirements)
3578
+ *
3489
3579
  * ```ts
3490
3580
  * import { Layer } from "effect"
3491
3581
  *
3492
3582
  * declare const FortyTwoLayer: Layer.Layer<never, never, 42>
3493
3583
  * declare const StringLayer: Layer.Layer<never, never, string>
3494
3584
  *
3495
- * // Define a constraint that the success type must be a number
3585
+ * // Define a constraint that the service requirements must be numbers
3496
3586
  * const satisfiesNumber = Layer.satisfiesServicesType<number>()
3497
3587
  *
3498
3588
  * // This works - Layer<never, never, 42> extends Layer<never, never, number>
@@ -3504,8 +3594,8 @@ export const satisfiesErrorType =
3504
3594
  * // Type 'string' is not assignable to type 'number'
3505
3595
  * ```
3506
3596
  *
3507
- * @since 4.0.0
3508
3597
  * @category Type constraints
3598
+ * @since 4.0.0
3509
3599
  */
3510
3600
  export const satisfiesServicesType =
3511
3601
  <RIn>() => <ROut, E, RIn2 extends RIn>(layer: Layer<ROut, E, RIn2>): Layer<ROut, E, RIn2> => layer
@@ -3518,8 +3608,8 @@ export const satisfiesServicesType =
3518
3608
  * Represents options that can be used to control the behavior of spans created
3519
3609
  * for layers.
3520
3610
  *
3611
+ * @category models
3521
3612
  * @since 4.0.0
3522
- * @category Models
3523
3613
  */
3524
3614
  export interface SpanOptions extends Tracer.SpanOptions {
3525
3615
  /**
@@ -3539,9 +3629,11 @@ export interface SpanOptions extends Tracer.SpanOptions {
3539
3629
  * operations within the layer constructor part of the same trace span. The span
3540
3630
  * is automatically closed when the layer's scope is closed.
3541
3631
  *
3542
- * @example
3632
+ * **Example** (Tracing layer construction with a span)
3633
+ *
3543
3634
  * ```ts
3544
- * import { Console, Effect, Layer, Context, type Tracer } from "effect"
3635
+ * import { Console, Context, Effect, Layer } from "effect"
3636
+ * import type { Tracer } from "effect"
3545
3637
  *
3546
3638
  * class Database extends Context.Service<Database, {
3547
3639
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -3573,8 +3665,8 @@ export interface SpanOptions extends Tracer.SpanOptions {
3573
3665
  * })
3574
3666
  * ```
3575
3667
  *
3576
- * @since 4.0.0
3577
3668
  * @category tracing
3669
+ * @since 2.0.0
3578
3670
  */
3579
3671
  export const span = (
3580
3672
  name: string,
@@ -3593,16 +3685,17 @@ export const span = (
3593
3685
  }
3594
3686
 
3595
3687
  /**
3596
- * Constructs a new `Layer` which takes an existing span and registers it as the
3597
- * current parent span.
3688
+ * Constructs a layer that provides an existing span as the current parent span.
3598
3689
  *
3599
- * This allows you to create a traced scope for layer construction, making all
3600
- * operations within the layer constructor part of the same trace span. The span
3601
- * is automatically closed when the layer's scope is closed.
3690
+ * **Details**
3691
+ * The supplied span is made available through `Tracer.ParentSpan` for layers
3692
+ * that are built with this layer. This API does not create, end, or close the
3693
+ * span; the caller remains responsible for the span's lifetime.
3694
+ *
3695
+ * **Example** (Using an existing parent span)
3602
3696
  *
3603
- * @example
3604
3697
  * ```ts
3605
- * import { Console, Effect, Layer, Context, Tracer } from "effect"
3698
+ * import { Console, Context, Effect, Layer, Tracer } from "effect"
3606
3699
  *
3607
3700
  * class Database extends Context.Service<Database, {
3608
3701
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -3627,8 +3720,8 @@ export const span = (
3627
3720
  * }))))
3628
3721
  * ```
3629
3722
  *
3630
- * @since 4.0.0
3631
3723
  * @category tracing
3724
+ * @since 2.0.0
3632
3725
  */
3633
3726
  export const parentSpan = (span: Tracer.AnySpan): Layer<Tracer.ParentSpan> =>
3634
3727
  succeedContext(Tracer.ParentSpan.context(span))
@@ -3641,9 +3734,10 @@ export const parentSpan = (span: Tracer.AnySpan): Layer<Tracer.ParentSpan> =>
3641
3734
  * is automatically ended when the layer's scope is closed. This is useful for
3642
3735
  * tracking the lifecycle and performance of layer initialization.
3643
3736
  *
3644
- * @example
3737
+ * **Example** (Wrapping a layer with a span)
3738
+ *
3645
3739
  * ```ts
3646
- * import { Effect, Layer, Context } from "effect"
3740
+ * import { Context, Effect, Layer } from "effect"
3647
3741
  *
3648
3742
  * class Database extends Context.Service<Database, {
3649
3743
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -3688,8 +3782,8 @@ export const parentSpan = (span: Tracer.AnySpan): Layer<Tracer.ParentSpan> =>
3688
3782
  * )
3689
3783
  * ```
3690
3784
  *
3691
- * @since 4.0.0
3692
3785
  * @category tracing
3786
+ * @since 2.0.0
3693
3787
  */
3694
3788
  export const withSpan: {
3695
3789
  /**
@@ -3700,9 +3794,10 @@ export const withSpan: {
3700
3794
  * is automatically ended when the layer's scope is closed. This is useful for
3701
3795
  * tracking the lifecycle and performance of layer initialization.
3702
3796
  *
3703
- * @example
3797
+ * **Example** (Wrapping a layer with a span)
3798
+ *
3704
3799
  * ```ts
3705
- * import { Effect, Layer, Context } from "effect"
3800
+ * import { Context, Effect, Layer } from "effect"
3706
3801
  *
3707
3802
  * class Database extends Context.Service<Database, {
3708
3803
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -3747,8 +3842,8 @@ export const withSpan: {
3747
3842
  * )
3748
3843
  * ```
3749
3844
  *
3750
- * @since 4.0.0
3751
3845
  * @category tracing
3846
+ * @since 2.0.0
3752
3847
  */
3753
3848
  (name: string, options?: SpanOptions): <A, E, R>(
3754
3849
  self: Layer<A, E, R>
@@ -3761,9 +3856,10 @@ export const withSpan: {
3761
3856
  * is automatically ended when the layer's scope is closed. This is useful for
3762
3857
  * tracking the lifecycle and performance of layer initialization.
3763
3858
  *
3764
- * @example
3859
+ * **Example** (Wrapping a layer with a span)
3860
+ *
3765
3861
  * ```ts
3766
- * import { Effect, Layer, Context } from "effect"
3862
+ * import { Context, Effect, Layer } from "effect"
3767
3863
  *
3768
3864
  * class Database extends Context.Service<Database, {
3769
3865
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -3808,8 +3904,8 @@ export const withSpan: {
3808
3904
  * )
3809
3905
  * ```
3810
3906
  *
3811
- * @since 4.0.0
3812
3907
  * @category tracing
3908
+ * @since 2.0.0
3813
3909
  */
3814
3910
  <A, E, R>(self: Layer<A, E, R>, name: string, options?: SpanOptions): Layer<A, E, Exclude<R, Tracer.ParentSpan>>
3815
3911
  } = function() {
@@ -3845,15 +3941,17 @@ export const withSpan: {
3845
3941
  } as any
3846
3942
 
3847
3943
  /**
3848
- * Wraps a `Layer` with a new tracing span and sets the span as the parent span.
3944
+ * Wraps a layer so spans created during its construction use the supplied span
3945
+ * as their parent.
3849
3946
  *
3850
- * This attaches a layer to an existing trace span, making all operations within
3851
- * the layer children of the provided parent span. This is useful for integrating
3852
- * layer construction into an existing trace hierarchy.
3947
+ * **Details**
3948
+ * Use this to attach layer construction to an existing trace hierarchy. This API
3949
+ * does not create or end the supplied parent span.
3950
+ *
3951
+ * **Example** (Attaching layers to an existing parent span)
3853
3952
  *
3854
- * @example
3855
3953
  * ```ts
3856
- * import { Effect, Layer, Context, Tracer } from "effect"
3954
+ * import { Context, Effect, Layer, Tracer } from "effect"
3857
3955
  *
3858
3956
  * class Database extends Context.Service<Database, {
3859
3957
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -3900,20 +3998,22 @@ export const withSpan: {
3900
3998
  * )
3901
3999
  * ```
3902
4000
  *
3903
- * @since 4.0.0
3904
4001
  * @category tracing
4002
+ * @since 2.0.0
3905
4003
  */
3906
4004
  export const withParentSpan: {
3907
4005
  /**
3908
- * Wraps a `Layer` with a new tracing span and sets the span as the parent span.
4006
+ * Wraps a layer so spans created during its construction use the supplied span
4007
+ * as their parent.
4008
+ *
4009
+ * **Details**
4010
+ * Use this to attach layer construction to an existing trace hierarchy. This API
4011
+ * does not create or end the supplied parent span.
3909
4012
  *
3910
- * This attaches a layer to an existing trace span, making all operations within
3911
- * the layer children of the provided parent span. This is useful for integrating
3912
- * layer construction into an existing trace hierarchy.
4013
+ * **Example** (Attaching layers to an existing parent span)
3913
4014
  *
3914
- * @example
3915
4015
  * ```ts
3916
- * import { Effect, Layer, Context, Tracer } from "effect"
4016
+ * import { Context, Effect, Layer, Tracer } from "effect"
3917
4017
  *
3918
4018
  * class Database extends Context.Service<Database, {
3919
4019
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -3960,22 +4060,24 @@ export const withParentSpan: {
3960
4060
  * )
3961
4061
  * ```
3962
4062
  *
3963
- * @since 4.0.0
3964
4063
  * @category tracing
4064
+ * @since 2.0.0
3965
4065
  */
3966
4066
  (span: Tracer.AnySpan, options?: Tracer.TraceOptions): <A, E, R>(
3967
4067
  self: Layer<A, E, R>
3968
4068
  ) => Layer<A, E, Exclude<R, Tracer.ParentSpan>>
3969
4069
  /**
3970
- * Wraps a `Layer` with a new tracing span and sets the span as the parent span.
4070
+ * Wraps a layer so spans created during its construction use the supplied span
4071
+ * as their parent.
4072
+ *
4073
+ * **Details**
4074
+ * Use this to attach layer construction to an existing trace hierarchy. This API
4075
+ * does not create or end the supplied parent span.
3971
4076
  *
3972
- * This attaches a layer to an existing trace span, making all operations within
3973
- * the layer children of the provided parent span. This is useful for integrating
3974
- * layer construction into an existing trace hierarchy.
4077
+ * **Example** (Attaching layers to an existing parent span)
3975
4078
  *
3976
- * @example
3977
4079
  * ```ts
3978
- * import { Effect, Layer, Context, Tracer } from "effect"
4080
+ * import { Context, Effect, Layer, Tracer } from "effect"
3979
4081
  *
3980
4082
  * class Database extends Context.Service<Database, {
3981
4083
  * readonly query: (sql: string) => Effect.Effect<string>
@@ -4022,8 +4124,8 @@ export const withParentSpan: {
4022
4124
  * )
4023
4125
  * ```
4024
4126
  *
4025
- * @since 4.0.0
4026
4127
  * @category tracing
4128
+ * @since 2.0.0
4027
4129
  */
4028
4130
  <A, E, R>(self: Layer<A, E, R>, span: Tracer.AnySpan, options?: Tracer.TraceOptions): Layer<A, E, Exclude<R, Tracer.ParentSpan>>
4029
4131
  } = function() {