effect 4.0.0-beta.69 → 4.0.0-beta.70

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 (1269) hide show
  1. package/dist/Array.d.ts +454 -0
  2. package/dist/Array.d.ts.map +1 -1
  3. package/dist/Array.js +152 -0
  4. package/dist/Array.js.map +1 -1
  5. package/dist/BigDecimal.d.ts +87 -33
  6. package/dist/BigDecimal.d.ts.map +1 -1
  7. package/dist/BigDecimal.js +37 -11
  8. package/dist/BigDecimal.js.map +1 -1
  9. package/dist/BigInt.d.ts +71 -14
  10. package/dist/BigInt.d.ts.map +1 -1
  11. package/dist/BigInt.js +35 -10
  12. package/dist/BigInt.js.map +1 -1
  13. package/dist/Boolean.d.ts +4 -0
  14. package/dist/Boolean.d.ts.map +1 -1
  15. package/dist/Boolean.js +4 -0
  16. package/dist/Boolean.js.map +1 -1
  17. package/dist/Brand.d.ts +16 -11
  18. package/dist/Brand.d.ts.map +1 -1
  19. package/dist/Brand.js +16 -11
  20. package/dist/Brand.js.map +1 -1
  21. package/dist/Cache.d.ts +13 -1
  22. package/dist/Cache.d.ts.map +1 -1
  23. package/dist/Cache.js +8 -0
  24. package/dist/Cache.js.map +1 -1
  25. package/dist/Cause.d.ts +95 -3
  26. package/dist/Cause.d.ts.map +1 -1
  27. package/dist/Cause.js +56 -2
  28. package/dist/Cause.js.map +1 -1
  29. package/dist/Channel.d.ts +312 -0
  30. package/dist/Channel.d.ts.map +1 -1
  31. package/dist/Channel.js +126 -0
  32. package/dist/Channel.js.map +1 -1
  33. package/dist/ChannelSchema.d.ts +20 -0
  34. package/dist/ChannelSchema.d.ts.map +1 -1
  35. package/dist/ChannelSchema.js +12 -0
  36. package/dist/ChannelSchema.js.map +1 -1
  37. package/dist/Chunk.d.ts +59 -22
  38. package/dist/Chunk.d.ts.map +1 -1
  39. package/dist/Chunk.js +29 -10
  40. package/dist/Chunk.js.map +1 -1
  41. package/dist/Combiner.d.ts +75 -71
  42. package/dist/Combiner.d.ts.map +1 -1
  43. package/dist/Combiner.js +67 -62
  44. package/dist/Combiner.js.map +1 -1
  45. package/dist/Config.d.ts +167 -46
  46. package/dist/Config.d.ts.map +1 -1
  47. package/dist/Config.js +108 -28
  48. package/dist/Config.js.map +1 -1
  49. package/dist/ConfigProvider.d.ts +235 -158
  50. package/dist/ConfigProvider.d.ts.map +1 -1
  51. package/dist/ConfigProvider.js +144 -93
  52. package/dist/ConfigProvider.js.map +1 -1
  53. package/dist/Console.d.ts +21 -79
  54. package/dist/Console.d.ts.map +1 -1
  55. package/dist/Console.js +20 -75
  56. package/dist/Console.js.map +1 -1
  57. package/dist/Context.d.ts +4 -4
  58. package/dist/Context.js +2 -2
  59. package/dist/Cron.d.ts +42 -16
  60. package/dist/Cron.d.ts.map +1 -1
  61. package/dist/Cron.js +33 -13
  62. package/dist/Cron.js.map +1 -1
  63. package/dist/Crypto.d.ts +6 -0
  64. package/dist/Crypto.d.ts.map +1 -1
  65. package/dist/Crypto.js.map +1 -1
  66. package/dist/Data.d.ts +132 -70
  67. package/dist/Data.d.ts.map +1 -1
  68. package/dist/Data.js +44 -29
  69. package/dist/Data.js.map +1 -1
  70. package/dist/DateTime.d.ts +227 -14
  71. package/dist/DateTime.d.ts.map +1 -1
  72. package/dist/DateTime.js +115 -6
  73. package/dist/DateTime.js.map +1 -1
  74. package/dist/Deferred.d.ts +94 -27
  75. package/dist/Deferred.d.ts.map +1 -1
  76. package/dist/Deferred.js +33 -8
  77. package/dist/Deferred.js.map +1 -1
  78. package/dist/Differ.d.ts +2 -0
  79. package/dist/Differ.d.ts.map +1 -1
  80. package/dist/Duration.d.ts +64 -6
  81. package/dist/Duration.d.ts.map +1 -1
  82. package/dist/Duration.js +26 -2
  83. package/dist/Duration.js.map +1 -1
  84. package/dist/Effect.d.ts +907 -603
  85. package/dist/Effect.d.ts.map +1 -1
  86. package/dist/Effect.js +360 -233
  87. package/dist/Effect.js.map +1 -1
  88. package/dist/Effectable.d.ts +3 -1
  89. package/dist/Effectable.d.ts.map +1 -1
  90. package/dist/Effectable.js +3 -1
  91. package/dist/Effectable.js.map +1 -1
  92. package/dist/Encoding.d.ts +16 -0
  93. package/dist/Encoding.d.ts.map +1 -1
  94. package/dist/Encoding.js +16 -0
  95. package/dist/Encoding.js.map +1 -1
  96. package/dist/Equal.d.ts +52 -40
  97. package/dist/Equal.d.ts.map +1 -1
  98. package/dist/Equal.js +32 -26
  99. package/dist/Equal.js.map +1 -1
  100. package/dist/Equivalence.d.ts +190 -153
  101. package/dist/Equivalence.d.ts.map +1 -1
  102. package/dist/Equivalence.js +129 -104
  103. package/dist/Equivalence.js.map +1 -1
  104. package/dist/ErrorReporter.d.ts +35 -14
  105. package/dist/ErrorReporter.d.ts.map +1 -1
  106. package/dist/ErrorReporter.js +18 -6
  107. package/dist/ErrorReporter.js.map +1 -1
  108. package/dist/ExecutionPlan.d.ts +10 -3
  109. package/dist/ExecutionPlan.d.ts.map +1 -1
  110. package/dist/ExecutionPlan.js +4 -3
  111. package/dist/ExecutionPlan.js.map +1 -1
  112. package/dist/Exit.d.ts +212 -6
  113. package/dist/Exit.d.ts.map +1 -1
  114. package/dist/Exit.js +139 -2
  115. package/dist/Exit.js.map +1 -1
  116. package/dist/Fiber.d.ts +8 -0
  117. package/dist/Fiber.d.ts.map +1 -1
  118. package/dist/Fiber.js +4 -0
  119. package/dist/Fiber.js.map +1 -1
  120. package/dist/FiberHandle.d.ts +46 -23
  121. package/dist/FiberHandle.d.ts.map +1 -1
  122. package/dist/FiberHandle.js +27 -11
  123. package/dist/FiberHandle.js.map +1 -1
  124. package/dist/FiberMap.d.ts +43 -4
  125. package/dist/FiberMap.d.ts.map +1 -1
  126. package/dist/FiberMap.js +27 -4
  127. package/dist/FiberMap.js.map +1 -1
  128. package/dist/FiberSet.d.ts +21 -6
  129. package/dist/FiberSet.d.ts.map +1 -1
  130. package/dist/FiberSet.js +17 -6
  131. package/dist/FiberSet.js.map +1 -1
  132. package/dist/FileSystem.d.ts +64 -0
  133. package/dist/FileSystem.d.ts.map +1 -1
  134. package/dist/FileSystem.js +26 -0
  135. package/dist/FileSystem.js.map +1 -1
  136. package/dist/Filter.d.ts +53 -21
  137. package/dist/Filter.d.ts.map +1 -1
  138. package/dist/Filter.js +20 -9
  139. package/dist/Filter.js.map +1 -1
  140. package/dist/Formatter.d.ts +21 -22
  141. package/dist/Formatter.d.ts.map +1 -1
  142. package/dist/Formatter.js +12 -12
  143. package/dist/Formatter.js.map +1 -1
  144. package/dist/Function.d.ts +67 -75
  145. package/dist/Function.d.ts.map +1 -1
  146. package/dist/Function.js +29 -19
  147. package/dist/Function.js.map +1 -1
  148. package/dist/Graph.d.ts +51 -13
  149. package/dist/Graph.d.ts.map +1 -1
  150. package/dist/Graph.js +19 -3
  151. package/dist/Graph.js.map +1 -1
  152. package/dist/HKT.d.ts +22 -21
  153. package/dist/HKT.d.ts.map +1 -1
  154. package/dist/Hash.d.ts +33 -10
  155. package/dist/Hash.d.ts.map +1 -1
  156. package/dist/Hash.js +27 -10
  157. package/dist/Hash.js.map +1 -1
  158. package/dist/HashMap.d.ts +50 -9
  159. package/dist/HashMap.d.ts.map +1 -1
  160. package/dist/HashMap.js +17 -3
  161. package/dist/HashMap.js.map +1 -1
  162. package/dist/HashRing.d.ts +4 -0
  163. package/dist/HashRing.d.ts.map +1 -1
  164. package/dist/HashRing.js +2 -0
  165. package/dist/HashRing.js.map +1 -1
  166. package/dist/HashSet.d.ts +2 -0
  167. package/dist/HashSet.d.ts.map +1 -1
  168. package/dist/HashSet.js.map +1 -1
  169. package/dist/Inspectable.d.ts +15 -2
  170. package/dist/Inspectable.d.ts.map +1 -1
  171. package/dist/Inspectable.js +11 -2
  172. package/dist/Inspectable.js.map +1 -1
  173. package/dist/Iterable.d.ts +104 -22
  174. package/dist/Iterable.d.ts.map +1 -1
  175. package/dist/Iterable.js +46 -12
  176. package/dist/Iterable.js.map +1 -1
  177. package/dist/JsonPatch.d.ts +61 -80
  178. package/dist/JsonPatch.d.ts.map +1 -1
  179. package/dist/JsonPatch.js +35 -42
  180. package/dist/JsonPatch.js.map +1 -1
  181. package/dist/JsonPointer.d.ts +16 -20
  182. package/dist/JsonPointer.d.ts.map +1 -1
  183. package/dist/JsonPointer.js +16 -20
  184. package/dist/JsonPointer.js.map +1 -1
  185. package/dist/JsonSchema.d.ts +123 -73
  186. package/dist/JsonSchema.d.ts.map +1 -1
  187. package/dist/JsonSchema.js +95 -53
  188. package/dist/JsonSchema.js.map +1 -1
  189. package/dist/Latch.d.ts +28 -2
  190. package/dist/Latch.d.ts.map +1 -1
  191. package/dist/Latch.js +22 -2
  192. package/dist/Latch.js.map +1 -1
  193. package/dist/Layer.d.ts +781 -335
  194. package/dist/Layer.d.ts.map +1 -1
  195. package/dist/Layer.js +324 -129
  196. package/dist/Layer.js.map +1 -1
  197. package/dist/LogLevel.d.ts +86 -13
  198. package/dist/LogLevel.d.ts.map +1 -1
  199. package/dist/LogLevel.js +30 -4
  200. package/dist/LogLevel.js.map +1 -1
  201. package/dist/Logger.d.ts +63 -51
  202. package/dist/Logger.d.ts.map +1 -1
  203. package/dist/Logger.js +61 -51
  204. package/dist/Logger.js.map +1 -1
  205. package/dist/ManagedRuntime.d.ts +12 -0
  206. package/dist/ManagedRuntime.d.ts.map +1 -1
  207. package/dist/ManagedRuntime.js +1 -0
  208. package/dist/ManagedRuntime.js.map +1 -1
  209. package/dist/Match.d.ts +83 -1
  210. package/dist/Match.d.ts.map +1 -1
  211. package/dist/Match.js +31 -1
  212. package/dist/Match.js.map +1 -1
  213. package/dist/Metric.d.ts +89 -12
  214. package/dist/Metric.d.ts.map +1 -1
  215. package/dist/Metric.js +53 -8
  216. package/dist/Metric.js.map +1 -1
  217. package/dist/MutableHashMap.d.ts +14 -0
  218. package/dist/MutableHashMap.d.ts.map +1 -1
  219. package/dist/MutableHashMap.js +4 -0
  220. package/dist/MutableHashMap.js.map +1 -1
  221. package/dist/MutableHashSet.d.ts +2 -0
  222. package/dist/MutableHashSet.d.ts.map +1 -1
  223. package/dist/MutableHashSet.js.map +1 -1
  224. package/dist/MutableList.d.ts +24 -6
  225. package/dist/MutableList.d.ts.map +1 -1
  226. package/dist/MutableList.js +22 -6
  227. package/dist/MutableList.js.map +1 -1
  228. package/dist/MutableRef.d.ts +2 -0
  229. package/dist/MutableRef.d.ts.map +1 -1
  230. package/dist/MutableRef.js.map +1 -1
  231. package/dist/Newtype.d.ts +69 -30
  232. package/dist/Newtype.d.ts.map +1 -1
  233. package/dist/Newtype.js +52 -22
  234. package/dist/Newtype.js.map +1 -1
  235. package/dist/NonEmptyIterable.d.ts +6 -0
  236. package/dist/NonEmptyIterable.d.ts.map +1 -1
  237. package/dist/NonEmptyIterable.js +2 -0
  238. package/dist/NonEmptyIterable.js.map +1 -1
  239. package/dist/Number.d.ts +16 -30
  240. package/dist/Number.d.ts.map +1 -1
  241. package/dist/Number.js +6 -12
  242. package/dist/Number.js.map +1 -1
  243. package/dist/Optic.d.ts +90 -40
  244. package/dist/Optic.d.ts.map +1 -1
  245. package/dist/Optic.js +48 -24
  246. package/dist/Optic.js.map +1 -1
  247. package/dist/Option.d.ts +121 -111
  248. package/dist/Option.d.ts.map +1 -1
  249. package/dist/Option.js +56 -54
  250. package/dist/Option.js.map +1 -1
  251. package/dist/Order.d.ts +169 -167
  252. package/dist/Order.d.ts.map +1 -1
  253. package/dist/Order.js +135 -135
  254. package/dist/Order.js.map +1 -1
  255. package/dist/Ordering.d.ts +4 -0
  256. package/dist/Ordering.d.ts.map +1 -1
  257. package/dist/Ordering.js +2 -0
  258. package/dist/Ordering.js.map +1 -1
  259. package/dist/PartitionedSemaphore.d.ts +7 -5
  260. package/dist/PartitionedSemaphore.d.ts.map +1 -1
  261. package/dist/PartitionedSemaphore.js +5 -5
  262. package/dist/PartitionedSemaphore.js.map +1 -1
  263. package/dist/Path.d.ts +8 -0
  264. package/dist/Path.d.ts.map +1 -1
  265. package/dist/Path.js +4 -0
  266. package/dist/Path.js.map +1 -1
  267. package/dist/Pipeable.d.ts +10 -0
  268. package/dist/Pipeable.d.ts.map +1 -1
  269. package/dist/Pipeable.js +8 -0
  270. package/dist/Pipeable.js.map +1 -1
  271. package/dist/PlatformError.d.ts +12 -0
  272. package/dist/PlatformError.d.ts.map +1 -1
  273. package/dist/PlatformError.js +10 -0
  274. package/dist/PlatformError.js.map +1 -1
  275. package/dist/Pool.d.ts +30 -16
  276. package/dist/Pool.d.ts.map +1 -1
  277. package/dist/Pool.js +30 -16
  278. package/dist/Pool.js.map +1 -1
  279. package/dist/Predicate.d.ts +520 -352
  280. package/dist/Predicate.d.ts.map +1 -1
  281. package/dist/Predicate.js +271 -184
  282. package/dist/Predicate.js.map +1 -1
  283. package/dist/PrimaryKey.d.ts +4 -0
  284. package/dist/PrimaryKey.d.ts.map +1 -1
  285. package/dist/PrimaryKey.js +2 -0
  286. package/dist/PrimaryKey.js.map +1 -1
  287. package/dist/PubSub.d.ts +22 -4
  288. package/dist/PubSub.d.ts.map +1 -1
  289. package/dist/PubSub.js +17 -3
  290. package/dist/PubSub.js.map +1 -1
  291. package/dist/Pull.d.ts +16 -0
  292. package/dist/Pull.d.ts.map +1 -1
  293. package/dist/Pull.js +10 -0
  294. package/dist/Pull.js.map +1 -1
  295. package/dist/Queue.d.ts +44 -0
  296. package/dist/Queue.d.ts.map +1 -1
  297. package/dist/Queue.js +28 -0
  298. package/dist/Queue.js.map +1 -1
  299. package/dist/Random.d.ts +25 -6
  300. package/dist/Random.d.ts.map +1 -1
  301. package/dist/Random.js +11 -2
  302. package/dist/Random.js.map +1 -1
  303. package/dist/RcMap.d.ts +10 -6
  304. package/dist/RcMap.d.ts.map +1 -1
  305. package/dist/RcMap.js +2 -2
  306. package/dist/RcMap.js.map +1 -1
  307. package/dist/RcRef.d.ts +3 -1
  308. package/dist/RcRef.d.ts.map +1 -1
  309. package/dist/RcRef.js.map +1 -1
  310. package/dist/Record.d.ts +24 -3
  311. package/dist/Record.d.ts.map +1 -1
  312. package/dist/Record.js +12 -3
  313. package/dist/Record.js.map +1 -1
  314. package/dist/Redactable.d.ts +54 -41
  315. package/dist/Redactable.d.ts.map +1 -1
  316. package/dist/Redactable.js +42 -32
  317. package/dist/Redactable.js.map +1 -1
  318. package/dist/Redacted.d.ts +10 -0
  319. package/dist/Redacted.d.ts.map +1 -1
  320. package/dist/Redacted.js +6 -0
  321. package/dist/Redacted.js.map +1 -1
  322. package/dist/Reducer.d.ts +20 -11
  323. package/dist/Reducer.d.ts.map +1 -1
  324. package/dist/Reducer.js +10 -6
  325. package/dist/Reducer.js.map +1 -1
  326. package/dist/Ref.d.ts +45 -24
  327. package/dist/Ref.d.ts.map +1 -1
  328. package/dist/Ref.js +41 -21
  329. package/dist/Ref.js.map +1 -1
  330. package/dist/References.d.ts +18 -1
  331. package/dist/References.d.ts.map +1 -1
  332. package/dist/References.js +17 -1
  333. package/dist/References.js.map +1 -1
  334. package/dist/Request.d.ts +3 -3
  335. package/dist/Request.js +2 -2
  336. package/dist/RequestResolver.d.ts +7 -17
  337. package/dist/RequestResolver.d.ts.map +1 -1
  338. package/dist/RequestResolver.js +3 -5
  339. package/dist/RequestResolver.js.map +1 -1
  340. package/dist/Resource.d.ts +2 -0
  341. package/dist/Resource.d.ts.map +1 -1
  342. package/dist/Resource.js +2 -0
  343. package/dist/Resource.js.map +1 -1
  344. package/dist/Result.d.ts +188 -6
  345. package/dist/Result.d.ts.map +1 -1
  346. package/dist/Result.js +84 -2
  347. package/dist/Result.js.map +1 -1
  348. package/dist/Runtime.d.ts +14 -11
  349. package/dist/Runtime.d.ts.map +1 -1
  350. package/dist/Runtime.js +11 -9
  351. package/dist/Runtime.js.map +1 -1
  352. package/dist/Schedule.d.ts +27 -3
  353. package/dist/Schedule.d.ts.map +1 -1
  354. package/dist/Schedule.js +21 -2
  355. package/dist/Schedule.js.map +1 -1
  356. package/dist/Scheduler.d.ts +22 -19
  357. package/dist/Scheduler.d.ts.map +1 -1
  358. package/dist/Scheduler.js +14 -12
  359. package/dist/Scheduler.js.map +1 -1
  360. package/dist/Schema.d.ts +547 -130
  361. package/dist/Schema.d.ts.map +1 -1
  362. package/dist/Schema.js +409 -121
  363. package/dist/Schema.js.map +1 -1
  364. package/dist/SchemaAST.d.ts +123 -65
  365. package/dist/SchemaAST.d.ts.map +1 -1
  366. package/dist/SchemaAST.js +90 -39
  367. package/dist/SchemaAST.js.map +1 -1
  368. package/dist/SchemaGetter.d.ts +269 -234
  369. package/dist/SchemaGetter.d.ts.map +1 -1
  370. package/dist/SchemaGetter.js +245 -215
  371. package/dist/SchemaGetter.js.map +1 -1
  372. package/dist/SchemaIssue.d.ts +48 -46
  373. package/dist/SchemaIssue.d.ts.map +1 -1
  374. package/dist/SchemaIssue.js +34 -34
  375. package/dist/SchemaIssue.js.map +1 -1
  376. package/dist/SchemaParser.d.ts +58 -0
  377. package/dist/SchemaParser.d.ts.map +1 -1
  378. package/dist/SchemaParser.js +58 -0
  379. package/dist/SchemaParser.js.map +1 -1
  380. package/dist/SchemaRepresentation.d.ts +198 -96
  381. package/dist/SchemaRepresentation.d.ts.map +1 -1
  382. package/dist/SchemaRepresentation.js +107 -45
  383. package/dist/SchemaRepresentation.js.map +1 -1
  384. package/dist/SchemaTransformation.d.ts +272 -203
  385. package/dist/SchemaTransformation.d.ts.map +1 -1
  386. package/dist/SchemaTransformation.js +249 -187
  387. package/dist/SchemaTransformation.js.map +1 -1
  388. package/dist/SchemaUtils.d.ts +2 -0
  389. package/dist/SchemaUtils.d.ts.map +1 -1
  390. package/dist/SchemaUtils.js +2 -0
  391. package/dist/SchemaUtils.js.map +1 -1
  392. package/dist/Scope.d.ts +18 -0
  393. package/dist/Scope.d.ts.map +1 -1
  394. package/dist/Scope.js +12 -0
  395. package/dist/Scope.js.map +1 -1
  396. package/dist/ScopedCache.d.ts +44 -0
  397. package/dist/ScopedCache.d.ts.map +1 -1
  398. package/dist/ScopedCache.js +18 -0
  399. package/dist/ScopedCache.js.map +1 -1
  400. package/dist/ScopedRef.d.ts +9 -3
  401. package/dist/ScopedRef.d.ts.map +1 -1
  402. package/dist/ScopedRef.js +3 -1
  403. package/dist/ScopedRef.js.map +1 -1
  404. package/dist/Semaphore.d.ts +6 -0
  405. package/dist/Semaphore.d.ts.map +1 -1
  406. package/dist/Semaphore.js +4 -0
  407. package/dist/Semaphore.js.map +1 -1
  408. package/dist/Sink.d.ts +108 -0
  409. package/dist/Sink.d.ts.map +1 -1
  410. package/dist/Sink.js +54 -0
  411. package/dist/Sink.js.map +1 -1
  412. package/dist/Stdio.d.ts +7 -3
  413. package/dist/Stdio.d.ts.map +1 -1
  414. package/dist/Stdio.js +2 -0
  415. package/dist/Stdio.js.map +1 -1
  416. package/dist/Stream.d.ts +416 -16
  417. package/dist/Stream.d.ts.map +1 -1
  418. package/dist/Stream.js +164 -8
  419. package/dist/Stream.js.map +1 -1
  420. package/dist/String.d.ts +14 -0
  421. package/dist/String.d.ts.map +1 -1
  422. package/dist/String.js +6 -0
  423. package/dist/String.js.map +1 -1
  424. package/dist/Struct.d.ts +371 -191
  425. package/dist/Struct.d.ts.map +1 -1
  426. package/dist/Struct.js +144 -77
  427. package/dist/Struct.js.map +1 -1
  428. package/dist/SubscriptionRef.d.ts +7 -1
  429. package/dist/SubscriptionRef.d.ts.map +1 -1
  430. package/dist/SubscriptionRef.js +5 -1
  431. package/dist/SubscriptionRef.js.map +1 -1
  432. package/dist/SynchronizedRef.d.ts +2 -0
  433. package/dist/SynchronizedRef.d.ts.map +1 -1
  434. package/dist/SynchronizedRef.js +2 -0
  435. package/dist/SynchronizedRef.js.map +1 -1
  436. package/dist/Tracer.d.ts +17 -27
  437. package/dist/Tracer.d.ts.map +1 -1
  438. package/dist/Tracer.js +8 -12
  439. package/dist/Tracer.js.map +1 -1
  440. package/dist/Trie.d.ts +23 -9
  441. package/dist/Trie.d.ts.map +1 -1
  442. package/dist/Trie.js +13 -3
  443. package/dist/Trie.js.map +1 -1
  444. package/dist/Tuple.d.ts +287 -144
  445. package/dist/Tuple.d.ts.map +1 -1
  446. package/dist/Tuple.js +135 -66
  447. package/dist/Tuple.js.map +1 -1
  448. package/dist/TxChunk.d.ts +182 -93
  449. package/dist/TxChunk.d.ts.map +1 -1
  450. package/dist/TxChunk.js +68 -35
  451. package/dist/TxChunk.js.map +1 -1
  452. package/dist/TxDeferred.d.ts +3 -4
  453. package/dist/TxDeferred.d.ts.map +1 -1
  454. package/dist/TxDeferred.js.map +1 -1
  455. package/dist/TxHashMap.d.ts +163 -86
  456. package/dist/TxHashMap.d.ts.map +1 -1
  457. package/dist/TxHashMap.js +57 -30
  458. package/dist/TxHashMap.js.map +1 -1
  459. package/dist/TxHashSet.d.ts +24 -27
  460. package/dist/TxHashSet.d.ts.map +1 -1
  461. package/dist/TxHashSet.js +9 -6
  462. package/dist/TxHashSet.js.map +1 -1
  463. package/dist/TxPriorityQueue.d.ts +2 -0
  464. package/dist/TxPriorityQueue.d.ts.map +1 -1
  465. package/dist/TxPriorityQueue.js.map +1 -1
  466. package/dist/TxPubSub.d.ts +36 -35
  467. package/dist/TxPubSub.d.ts.map +1 -1
  468. package/dist/TxPubSub.js +22 -21
  469. package/dist/TxPubSub.js.map +1 -1
  470. package/dist/TxQueue.d.ts +77 -114
  471. package/dist/TxQueue.d.ts.map +1 -1
  472. package/dist/TxQueue.js +45 -62
  473. package/dist/TxQueue.js.map +1 -1
  474. package/dist/TxRef.d.ts +4 -0
  475. package/dist/TxRef.d.ts.map +1 -1
  476. package/dist/TxRef.js +2 -0
  477. package/dist/TxRef.js.map +1 -1
  478. package/dist/TxSemaphore.d.ts +66 -27
  479. package/dist/TxSemaphore.d.ts.map +1 -1
  480. package/dist/TxSemaphore.js +38 -15
  481. package/dist/TxSemaphore.js.map +1 -1
  482. package/dist/Types.d.ts +202 -75
  483. package/dist/Types.d.ts.map +1 -1
  484. package/dist/UndefinedOr.d.ts +31 -29
  485. package/dist/UndefinedOr.d.ts.map +1 -1
  486. package/dist/UndefinedOr.js +27 -21
  487. package/dist/UndefinedOr.js.map +1 -1
  488. package/dist/Unify.d.ts +28 -0
  489. package/dist/Unify.d.ts.map +1 -1
  490. package/dist/Unify.js +2 -0
  491. package/dist/Unify.js.map +1 -1
  492. package/dist/Utils.d.ts +29 -35
  493. package/dist/Utils.d.ts.map +1 -1
  494. package/dist/Utils.js +11 -13
  495. package/dist/Utils.js.map +1 -1
  496. package/dist/index.d.ts +18 -7
  497. package/dist/index.d.ts.map +1 -1
  498. package/dist/index.js +18 -7
  499. package/dist/index.js.map +1 -1
  500. package/dist/testing/TestClock.d.ts +17 -17
  501. package/dist/testing/TestClock.js +1 -1
  502. package/dist/testing/TestClock.js.map +1 -1
  503. package/dist/testing/TestConsole.d.ts +2 -0
  504. package/dist/testing/TestConsole.d.ts.map +1 -1
  505. package/dist/testing/TestConsole.js.map +1 -1
  506. package/dist/testing/TestSchema.d.ts +43 -55
  507. package/dist/testing/TestSchema.d.ts.map +1 -1
  508. package/dist/testing/TestSchema.js +43 -55
  509. package/dist/testing/TestSchema.js.map +1 -1
  510. package/dist/unstable/ai/AiError.d.ts +62 -11
  511. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  512. package/dist/unstable/ai/AiError.js +58 -11
  513. package/dist/unstable/ai/AiError.js.map +1 -1
  514. package/dist/unstable/ai/AnthropicStructuredOutput.d.ts +4 -4
  515. package/dist/unstable/ai/AnthropicStructuredOutput.js +4 -4
  516. package/dist/unstable/ai/Chat.d.ts +29 -1
  517. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  518. package/dist/unstable/ai/Chat.js +15 -1
  519. package/dist/unstable/ai/Chat.js.map +1 -1
  520. package/dist/unstable/ai/IdGenerator.d.ts +10 -0
  521. package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
  522. package/dist/unstable/ai/IdGenerator.js +8 -0
  523. package/dist/unstable/ai/IdGenerator.js.map +1 -1
  524. package/dist/unstable/ai/LanguageModel.d.ts +32 -46
  525. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  526. package/dist/unstable/ai/LanguageModel.js +5 -14
  527. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  528. package/dist/unstable/ai/McpSchema.d.ts +84 -32
  529. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  530. package/dist/unstable/ai/McpSchema.js +73 -28
  531. package/dist/unstable/ai/McpSchema.js.map +1 -1
  532. package/dist/unstable/ai/McpServer.d.ts +8 -0
  533. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  534. package/dist/unstable/ai/McpServer.js +6 -0
  535. package/dist/unstable/ai/McpServer.js.map +1 -1
  536. package/dist/unstable/ai/Model.d.ts +9 -5
  537. package/dist/unstable/ai/Model.d.ts.map +1 -1
  538. package/dist/unstable/ai/Model.js +4 -0
  539. package/dist/unstable/ai/Model.js.map +1 -1
  540. package/dist/unstable/ai/OpenAiStructuredOutput.d.ts +3 -2
  541. package/dist/unstable/ai/OpenAiStructuredOutput.d.ts.map +1 -1
  542. package/dist/unstable/ai/OpenAiStructuredOutput.js +3 -2
  543. package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
  544. package/dist/unstable/ai/Prompt.d.ts +62 -35
  545. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  546. package/dist/unstable/ai/Prompt.js +16 -15
  547. package/dist/unstable/ai/Prompt.js.map +1 -1
  548. package/dist/unstable/ai/Response.d.ts +40 -21
  549. package/dist/unstable/ai/Response.d.ts.map +1 -1
  550. package/dist/unstable/ai/Response.js +10 -0
  551. package/dist/unstable/ai/Response.js.map +1 -1
  552. package/dist/unstable/ai/ResponseIdTracker.d.ts +8 -0
  553. package/dist/unstable/ai/ResponseIdTracker.d.ts.map +1 -1
  554. package/dist/unstable/ai/ResponseIdTracker.js +4 -0
  555. package/dist/unstable/ai/ResponseIdTracker.js.map +1 -1
  556. package/dist/unstable/ai/Telemetry.d.ts +30 -5
  557. package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
  558. package/dist/unstable/ai/Telemetry.js +7 -1
  559. package/dist/unstable/ai/Telemetry.js.map +1 -1
  560. package/dist/unstable/ai/Tokenizer.d.ts +6 -0
  561. package/dist/unstable/ai/Tokenizer.d.ts.map +1 -1
  562. package/dist/unstable/ai/Tokenizer.js +4 -0
  563. package/dist/unstable/ai/Tokenizer.js.map +1 -1
  564. package/dist/unstable/ai/Tool.d.ts +68 -0
  565. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  566. package/dist/unstable/ai/Tool.js +36 -0
  567. package/dist/unstable/ai/Tool.js.map +1 -1
  568. package/dist/unstable/ai/Toolkit.d.ts +12 -0
  569. package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
  570. package/dist/unstable/ai/Toolkit.js +6 -0
  571. package/dist/unstable/ai/Toolkit.js.map +1 -1
  572. package/dist/unstable/cli/Argument.d.ts +14 -4
  573. package/dist/unstable/cli/Argument.d.ts.map +1 -1
  574. package/dist/unstable/cli/Argument.js +4 -0
  575. package/dist/unstable/cli/Argument.js.map +1 -1
  576. package/dist/unstable/cli/CliError.d.ts +6 -0
  577. package/dist/unstable/cli/CliError.d.ts.map +1 -1
  578. package/dist/unstable/cli/CliError.js +4 -0
  579. package/dist/unstable/cli/CliError.js.map +1 -1
  580. package/dist/unstable/cli/Command.d.ts +123 -12
  581. package/dist/unstable/cli/Command.d.ts.map +1 -1
  582. package/dist/unstable/cli/Command.js +57 -4
  583. package/dist/unstable/cli/Command.js.map +1 -1
  584. package/dist/unstable/cli/Flag.d.ts +31 -14
  585. package/dist/unstable/cli/Flag.d.ts.map +1 -1
  586. package/dist/unstable/cli/Flag.js +23 -10
  587. package/dist/unstable/cli/Flag.js.map +1 -1
  588. package/dist/unstable/cli/Param.d.ts +10 -0
  589. package/dist/unstable/cli/Param.d.ts.map +1 -1
  590. package/dist/unstable/cli/Param.js +46 -5
  591. package/dist/unstable/cli/Param.js.map +1 -1
  592. package/dist/unstable/cli/Primitive.d.ts +10 -0
  593. package/dist/unstable/cli/Primitive.d.ts.map +1 -1
  594. package/dist/unstable/cli/Primitive.js +10 -0
  595. package/dist/unstable/cli/Primitive.js.map +1 -1
  596. package/dist/unstable/cli/Prompt.d.ts +47 -40
  597. package/dist/unstable/cli/Prompt.d.ts.map +1 -1
  598. package/dist/unstable/cli/Prompt.js +25 -20
  599. package/dist/unstable/cli/Prompt.js.map +1 -1
  600. package/dist/unstable/cli/internal/command.d.ts +1 -0
  601. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  602. package/dist/unstable/cli/internal/command.js +10 -2
  603. package/dist/unstable/cli/internal/command.js.map +1 -1
  604. package/dist/unstable/cli/internal/completions/descriptor.js +3 -0
  605. package/dist/unstable/cli/internal/completions/descriptor.js.map +1 -1
  606. package/dist/unstable/cli/internal/parser.js +8 -1
  607. package/dist/unstable/cli/internal/parser.js.map +1 -1
  608. package/dist/unstable/cluster/ClusterCron.d.ts +10 -1
  609. package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
  610. package/dist/unstable/cluster/ClusterCron.js +2 -0
  611. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  612. package/dist/unstable/cluster/ClusterSchema.d.ts +8 -0
  613. package/dist/unstable/cluster/ClusterSchema.d.ts.map +1 -1
  614. package/dist/unstable/cluster/ClusterSchema.js +8 -0
  615. package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
  616. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts +4 -0
  617. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  618. package/dist/unstable/cluster/ClusterWorkflowEngine.js +4 -0
  619. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  620. package/dist/unstable/cluster/DeliverAt.d.ts +3 -4
  621. package/dist/unstable/cluster/DeliverAt.d.ts.map +1 -1
  622. package/dist/unstable/cluster/DeliverAt.js.map +1 -1
  623. package/dist/unstable/cluster/Entity.d.ts +24 -0
  624. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  625. package/dist/unstable/cluster/Entity.js +12 -0
  626. package/dist/unstable/cluster/Entity.js.map +1 -1
  627. package/dist/unstable/cluster/EntityProxy.d.ts +10 -4
  628. package/dist/unstable/cluster/EntityProxy.d.ts.map +1 -1
  629. package/dist/unstable/cluster/EntityProxy.js.map +1 -1
  630. package/dist/unstable/cluster/EntityProxyServer.d.ts +6 -0
  631. package/dist/unstable/cluster/EntityProxyServer.d.ts.map +1 -1
  632. package/dist/unstable/cluster/EntityProxyServer.js +4 -0
  633. package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
  634. package/dist/unstable/cluster/EntityResource.d.ts +10 -0
  635. package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
  636. package/dist/unstable/cluster/EntityResource.js +8 -0
  637. package/dist/unstable/cluster/EntityResource.js.map +1 -1
  638. package/dist/unstable/cluster/Envelope.d.ts +16 -0
  639. package/dist/unstable/cluster/Envelope.d.ts.map +1 -1
  640. package/dist/unstable/cluster/Envelope.js +10 -0
  641. package/dist/unstable/cluster/Envelope.js.map +1 -1
  642. package/dist/unstable/cluster/HttpRunner.d.ts +16 -0
  643. package/dist/unstable/cluster/HttpRunner.d.ts.map +1 -1
  644. package/dist/unstable/cluster/HttpRunner.js +16 -0
  645. package/dist/unstable/cluster/HttpRunner.js.map +1 -1
  646. package/dist/unstable/cluster/K8sHttpClient.d.ts +8 -0
  647. package/dist/unstable/cluster/K8sHttpClient.d.ts.map +1 -1
  648. package/dist/unstable/cluster/K8sHttpClient.js +8 -0
  649. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  650. package/dist/unstable/cluster/Message.d.ts +24 -0
  651. package/dist/unstable/cluster/Message.d.ts.map +1 -1
  652. package/dist/unstable/cluster/Message.js +18 -0
  653. package/dist/unstable/cluster/Message.js.map +1 -1
  654. package/dist/unstable/cluster/MessageStorage.d.ts +64 -20
  655. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  656. package/dist/unstable/cluster/MessageStorage.js +8 -0
  657. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  658. package/dist/unstable/cluster/Reply.d.ts +6 -6
  659. package/dist/unstable/cluster/Reply.d.ts.map +1 -1
  660. package/dist/unstable/cluster/Reply.js +4 -3
  661. package/dist/unstable/cluster/Reply.js.map +1 -1
  662. package/dist/unstable/cluster/Runner.d.ts +2 -0
  663. package/dist/unstable/cluster/Runner.d.ts.map +1 -1
  664. package/dist/unstable/cluster/Runner.js +2 -0
  665. package/dist/unstable/cluster/Runner.js.map +1 -1
  666. package/dist/unstable/cluster/RunnerHealth.d.ts +13 -2
  667. package/dist/unstable/cluster/RunnerHealth.d.ts.map +1 -1
  668. package/dist/unstable/cluster/RunnerHealth.js +13 -2
  669. package/dist/unstable/cluster/RunnerHealth.js.map +1 -1
  670. package/dist/unstable/cluster/RunnerServer.d.ts +8 -8
  671. package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
  672. package/dist/unstable/cluster/RunnerServer.js +8 -8
  673. package/dist/unstable/cluster/RunnerServer.js.map +1 -1
  674. package/dist/unstable/cluster/RunnerStorage.d.ts +2 -0
  675. package/dist/unstable/cluster/RunnerStorage.d.ts.map +1 -1
  676. package/dist/unstable/cluster/RunnerStorage.js +2 -0
  677. package/dist/unstable/cluster/RunnerStorage.js.map +1 -1
  678. package/dist/unstable/cluster/ShardId.d.ts +4 -0
  679. package/dist/unstable/cluster/ShardId.d.ts.map +1 -1
  680. package/dist/unstable/cluster/ShardId.js +4 -0
  681. package/dist/unstable/cluster/ShardId.js.map +1 -1
  682. package/dist/unstable/cluster/Snowflake.d.ts +2 -0
  683. package/dist/unstable/cluster/Snowflake.d.ts.map +1 -1
  684. package/dist/unstable/cluster/Snowflake.js +2 -0
  685. package/dist/unstable/cluster/Snowflake.js.map +1 -1
  686. package/dist/unstable/cluster/TestRunner.d.ts +3 -2
  687. package/dist/unstable/cluster/TestRunner.d.ts.map +1 -1
  688. package/dist/unstable/cluster/TestRunner.js +3 -2
  689. package/dist/unstable/cluster/TestRunner.js.map +1 -1
  690. package/dist/unstable/devtools/DevToolsSchema.d.ts +34 -2
  691. package/dist/unstable/devtools/DevToolsSchema.d.ts.map +1 -1
  692. package/dist/unstable/devtools/DevToolsSchema.js +14 -0
  693. package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
  694. package/dist/unstable/devtools/DevToolsServer.d.ts +4 -0
  695. package/dist/unstable/devtools/DevToolsServer.d.ts.map +1 -1
  696. package/dist/unstable/devtools/DevToolsServer.js +2 -0
  697. package/dist/unstable/devtools/DevToolsServer.js.map +1 -1
  698. package/dist/unstable/encoding/Msgpack.d.ts +24 -0
  699. package/dist/unstable/encoding/Msgpack.d.ts.map +1 -1
  700. package/dist/unstable/encoding/Msgpack.js +18 -0
  701. package/dist/unstable/encoding/Msgpack.js.map +1 -1
  702. package/dist/unstable/encoding/Ndjson.d.ts +46 -2
  703. package/dist/unstable/encoding/Ndjson.d.ts.map +1 -1
  704. package/dist/unstable/encoding/Ndjson.js +30 -2
  705. package/dist/unstable/encoding/Ndjson.js.map +1 -1
  706. package/dist/unstable/encoding/Sse.d.ts +24 -17
  707. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  708. package/dist/unstable/encoding/Sse.js +20 -11
  709. package/dist/unstable/encoding/Sse.js.map +1 -1
  710. package/dist/unstable/eventlog/Event.d.ts +16 -0
  711. package/dist/unstable/eventlog/Event.d.ts.map +1 -1
  712. package/dist/unstable/eventlog/Event.js.map +1 -1
  713. package/dist/unstable/eventlog/EventGroup.d.ts +4 -0
  714. package/dist/unstable/eventlog/EventGroup.d.ts.map +1 -1
  715. package/dist/unstable/eventlog/EventGroup.js +2 -0
  716. package/dist/unstable/eventlog/EventGroup.js.map +1 -1
  717. package/dist/unstable/eventlog/EventJournal.d.ts +20 -0
  718. package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
  719. package/dist/unstable/eventlog/EventJournal.js +18 -0
  720. package/dist/unstable/eventlog/EventJournal.js.map +1 -1
  721. package/dist/unstable/eventlog/EventLog.d.ts +22 -0
  722. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  723. package/dist/unstable/eventlog/EventLog.js +18 -0
  724. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  725. package/dist/unstable/eventlog/EventLogMessage.d.ts +10 -0
  726. package/dist/unstable/eventlog/EventLogMessage.d.ts.map +1 -1
  727. package/dist/unstable/eventlog/EventLogMessage.js +10 -0
  728. package/dist/unstable/eventlog/EventLogMessage.js.map +1 -1
  729. package/dist/unstable/eventlog/EventLogRemote.d.ts +4 -0
  730. package/dist/unstable/eventlog/EventLogRemote.d.ts.map +1 -1
  731. package/dist/unstable/eventlog/EventLogRemote.js +4 -0
  732. package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
  733. package/dist/unstable/eventlog/EventLogServer.d.ts +4 -0
  734. package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
  735. package/dist/unstable/eventlog/EventLogServer.js +4 -0
  736. package/dist/unstable/eventlog/EventLogServer.js.map +1 -1
  737. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +6 -0
  738. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  739. package/dist/unstable/eventlog/EventLogServerEncrypted.js +6 -0
  740. package/dist/unstable/eventlog/EventLogServerEncrypted.js.map +1 -1
  741. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +8 -0
  742. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
  743. package/dist/unstable/eventlog/EventLogServerUnencrypted.js +8 -0
  744. package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -1
  745. package/dist/unstable/eventlog/EventLogSessionAuth.d.ts +11 -1
  746. package/dist/unstable/eventlog/EventLogSessionAuth.d.ts.map +1 -1
  747. package/dist/unstable/eventlog/EventLogSessionAuth.js +11 -1
  748. package/dist/unstable/eventlog/EventLogSessionAuth.js.map +1 -1
  749. package/dist/unstable/eventlog/SqlEventJournal.d.ts +2 -0
  750. package/dist/unstable/eventlog/SqlEventJournal.d.ts.map +1 -1
  751. package/dist/unstable/eventlog/SqlEventJournal.js +2 -0
  752. package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -1
  753. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.d.ts +2 -0
  754. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
  755. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js +2 -0
  756. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
  757. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.d.ts +2 -0
  758. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -1
  759. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js +2 -0
  760. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  761. package/dist/unstable/http/Cookies.d.ts +34 -0
  762. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  763. package/dist/unstable/http/Cookies.js +18 -0
  764. package/dist/unstable/http/Cookies.js.map +1 -1
  765. package/dist/unstable/http/Etag.d.ts +4 -0
  766. package/dist/unstable/http/Etag.d.ts.map +1 -1
  767. package/dist/unstable/http/Etag.js.map +1 -1
  768. package/dist/unstable/http/FetchHttpClient.d.ts +4 -0
  769. package/dist/unstable/http/FetchHttpClient.d.ts.map +1 -1
  770. package/dist/unstable/http/FetchHttpClient.js +4 -0
  771. package/dist/unstable/http/FetchHttpClient.js.map +1 -1
  772. package/dist/unstable/http/Headers.d.ts +60 -0
  773. package/dist/unstable/http/Headers.d.ts.map +1 -1
  774. package/dist/unstable/http/Headers.js +24 -0
  775. package/dist/unstable/http/Headers.js.map +1 -1
  776. package/dist/unstable/http/HttpBody.d.ts +32 -0
  777. package/dist/unstable/http/HttpBody.d.ts.map +1 -1
  778. package/dist/unstable/http/HttpBody.js +22 -0
  779. package/dist/unstable/http/HttpBody.js.map +1 -1
  780. package/dist/unstable/http/HttpClient.d.ts +44 -0
  781. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  782. package/dist/unstable/http/HttpClient.js +14 -0
  783. package/dist/unstable/http/HttpClient.js.map +1 -1
  784. package/dist/unstable/http/HttpClientRequest.d.ts +2 -0
  785. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  786. package/dist/unstable/http/HttpClientRequest.js +2 -0
  787. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  788. package/dist/unstable/http/HttpClientResponse.d.ts +6 -0
  789. package/dist/unstable/http/HttpClientResponse.d.ts.map +1 -1
  790. package/dist/unstable/http/HttpClientResponse.js +6 -0
  791. package/dist/unstable/http/HttpClientResponse.js.map +1 -1
  792. package/dist/unstable/http/HttpEffect.d.ts +4 -0
  793. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  794. package/dist/unstable/http/HttpEffect.js +4 -0
  795. package/dist/unstable/http/HttpEffect.js.map +1 -1
  796. package/dist/unstable/http/HttpPlatform.d.ts +2 -0
  797. package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
  798. package/dist/unstable/http/HttpPlatform.js +2 -0
  799. package/dist/unstable/http/HttpPlatform.js.map +1 -1
  800. package/dist/unstable/http/HttpRouter.d.ts +54 -16
  801. package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
  802. package/dist/unstable/http/HttpRouter.js +26 -1
  803. package/dist/unstable/http/HttpRouter.js.map +1 -1
  804. package/dist/unstable/http/HttpServer.d.ts +35 -1
  805. package/dist/unstable/http/HttpServer.d.ts.map +1 -1
  806. package/dist/unstable/http/HttpServer.js +17 -1
  807. package/dist/unstable/http/HttpServer.js.map +1 -1
  808. package/dist/unstable/http/HttpServerError.d.ts +17 -3
  809. package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
  810. package/dist/unstable/http/HttpServerError.js +16 -0
  811. package/dist/unstable/http/HttpServerError.js.map +1 -1
  812. package/dist/unstable/http/HttpServerRequest.d.ts +30 -0
  813. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  814. package/dist/unstable/http/HttpServerRequest.js +28 -0
  815. package/dist/unstable/http/HttpServerRequest.js.map +1 -1
  816. package/dist/unstable/http/HttpServerRespondable.d.ts +8 -0
  817. package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
  818. package/dist/unstable/http/HttpServerRespondable.js +6 -0
  819. package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
  820. package/dist/unstable/http/HttpServerResponse.d.ts +96 -0
  821. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  822. package/dist/unstable/http/HttpServerResponse.js +50 -0
  823. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  824. package/dist/unstable/http/HttpTraceContext.d.ts +12 -0
  825. package/dist/unstable/http/HttpTraceContext.d.ts.map +1 -1
  826. package/dist/unstable/http/HttpTraceContext.js +10 -0
  827. package/dist/unstable/http/HttpTraceContext.js.map +1 -1
  828. package/dist/unstable/http/Multipart.d.ts +49 -2
  829. package/dist/unstable/http/Multipart.d.ts.map +1 -1
  830. package/dist/unstable/http/Multipart.js +35 -2
  831. package/dist/unstable/http/Multipart.js.map +1 -1
  832. package/dist/unstable/http/Template.d.ts +14 -0
  833. package/dist/unstable/http/Template.d.ts.map +1 -1
  834. package/dist/unstable/http/Template.js +4 -0
  835. package/dist/unstable/http/Template.js.map +1 -1
  836. package/dist/unstable/http/UrlParams.d.ts +64 -0
  837. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  838. package/dist/unstable/http/UrlParams.js +28 -0
  839. package/dist/unstable/http/UrlParams.js.map +1 -1
  840. package/dist/unstable/httpapi/HttpApi.d.ts +10 -4
  841. package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
  842. package/dist/unstable/httpapi/HttpApi.js +4 -0
  843. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  844. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +9 -4
  845. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  846. package/dist/unstable/httpapi/HttpApiBuilder.js +5 -4
  847. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  848. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +2 -0
  849. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  850. package/dist/unstable/httpapi/HttpApiEndpoint.js +2 -0
  851. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  852. package/dist/unstable/httpapi/HttpApiGroup.d.ts +23 -14
  853. package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
  854. package/dist/unstable/httpapi/HttpApiGroup.js +6 -3
  855. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  856. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +14 -0
  857. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  858. package/dist/unstable/httpapi/HttpApiMiddleware.js +6 -0
  859. package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
  860. package/dist/unstable/httpapi/HttpApiScalar.d.ts +38 -15
  861. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  862. package/dist/unstable/httpapi/HttpApiScalar.js +4 -0
  863. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  864. package/dist/unstable/httpapi/HttpApiSchema.d.ts +14 -3
  865. package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
  866. package/dist/unstable/httpapi/HttpApiSchema.js +10 -0
  867. package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
  868. package/dist/unstable/httpapi/HttpApiSecurity.d.ts +17 -11
  869. package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
  870. package/dist/unstable/httpapi/HttpApiSecurity.js +17 -11
  871. package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
  872. package/dist/unstable/httpapi/HttpApiSwagger.d.ts +2 -4
  873. package/dist/unstable/httpapi/HttpApiSwagger.d.ts.map +1 -1
  874. package/dist/unstable/httpapi/HttpApiSwagger.js +2 -4
  875. package/dist/unstable/httpapi/HttpApiSwagger.js.map +1 -1
  876. package/dist/unstable/httpapi/HttpApiTest.d.ts +2 -0
  877. package/dist/unstable/httpapi/HttpApiTest.d.ts.map +1 -1
  878. package/dist/unstable/httpapi/HttpApiTest.js +2 -0
  879. package/dist/unstable/httpapi/HttpApiTest.js.map +1 -1
  880. package/dist/unstable/httpapi/OpenApi.d.ts +2 -0
  881. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  882. package/dist/unstable/httpapi/OpenApi.js +2 -0
  883. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  884. package/dist/unstable/observability/Otlp.d.ts +2 -0
  885. package/dist/unstable/observability/Otlp.d.ts.map +1 -1
  886. package/dist/unstable/observability/Otlp.js +2 -0
  887. package/dist/unstable/observability/Otlp.js.map +1 -1
  888. package/dist/unstable/observability/OtlpExporter.d.ts +2 -0
  889. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  890. package/dist/unstable/observability/OtlpExporter.js +2 -0
  891. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  892. package/dist/unstable/observability/OtlpLogger.d.ts +4 -0
  893. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  894. package/dist/unstable/observability/OtlpLogger.js +4 -0
  895. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  896. package/dist/unstable/observability/OtlpMetrics.d.ts +8 -9
  897. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  898. package/dist/unstable/observability/OtlpMetrics.js +3 -3
  899. package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
  900. package/dist/unstable/observability/OtlpResource.d.ts +8 -0
  901. package/dist/unstable/observability/OtlpResource.d.ts.map +1 -1
  902. package/dist/unstable/observability/OtlpResource.js +8 -0
  903. package/dist/unstable/observability/OtlpResource.js.map +1 -1
  904. package/dist/unstable/observability/OtlpTracer.d.ts +3 -2
  905. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  906. package/dist/unstable/observability/OtlpTracer.js +3 -2
  907. package/dist/unstable/observability/OtlpTracer.js.map +1 -1
  908. package/dist/unstable/observability/PrometheusMetrics.d.ts +6 -2
  909. package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
  910. package/dist/unstable/observability/PrometheusMetrics.js +6 -2
  911. package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
  912. package/dist/unstable/persistence/KeyValueStore.d.ts +10 -0
  913. package/dist/unstable/persistence/KeyValueStore.d.ts.map +1 -1
  914. package/dist/unstable/persistence/KeyValueStore.js +8 -0
  915. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  916. package/dist/unstable/persistence/Persistable.d.ts +2 -0
  917. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  918. package/dist/unstable/persistence/Persistable.js +2 -0
  919. package/dist/unstable/persistence/Persistable.js.map +1 -1
  920. package/dist/unstable/persistence/PersistedCache.d.ts +2 -0
  921. package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
  922. package/dist/unstable/persistence/PersistedCache.js +2 -0
  923. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  924. package/dist/unstable/persistence/PersistedQueue.d.ts +21 -6
  925. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  926. package/dist/unstable/persistence/PersistedQueue.js +10 -0
  927. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  928. package/dist/unstable/persistence/Persistence.d.ts +14 -0
  929. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  930. package/dist/unstable/persistence/Persistence.js +14 -0
  931. package/dist/unstable/persistence/Persistence.js.map +1 -1
  932. package/dist/unstable/persistence/RateLimiter.d.ts +6 -3
  933. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  934. package/dist/unstable/persistence/RateLimiter.js +4 -0
  935. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  936. package/dist/unstable/persistence/Redis.d.ts +6 -0
  937. package/dist/unstable/persistence/Redis.d.ts.map +1 -1
  938. package/dist/unstable/persistence/Redis.js +4 -0
  939. package/dist/unstable/persistence/Redis.js.map +1 -1
  940. package/dist/unstable/process/ChildProcess.d.ts +70 -19
  941. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  942. package/dist/unstable/process/ChildProcess.js +10 -0
  943. package/dist/unstable/process/ChildProcess.js.map +1 -1
  944. package/dist/unstable/process/ChildProcessSpawner.d.ts +20 -4
  945. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  946. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  947. package/dist/unstable/reactivity/Atom.d.ts +105 -14
  948. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  949. package/dist/unstable/reactivity/Atom.js +53 -8
  950. package/dist/unstable/reactivity/Atom.js.map +1 -1
  951. package/dist/unstable/reactivity/AtomHttpApi.d.ts +4 -0
  952. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  953. package/dist/unstable/reactivity/AtomHttpApi.js +2 -0
  954. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  955. package/dist/unstable/reactivity/AtomRef.d.ts +8 -0
  956. package/dist/unstable/reactivity/AtomRef.d.ts.map +1 -1
  957. package/dist/unstable/reactivity/AtomRef.js +2 -0
  958. package/dist/unstable/reactivity/AtomRef.js.map +1 -1
  959. package/dist/unstable/reactivity/AtomRegistry.d.ts +32 -0
  960. package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
  961. package/dist/unstable/reactivity/AtomRegistry.js +12 -0
  962. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  963. package/dist/unstable/reactivity/AtomRpc.d.ts +8 -6
  964. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  965. package/dist/unstable/reactivity/AtomRpc.js +4 -3
  966. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  967. package/dist/unstable/reactivity/Hydration.d.ts +6 -0
  968. package/dist/unstable/reactivity/Hydration.d.ts.map +1 -1
  969. package/dist/unstable/reactivity/Hydration.js +4 -0
  970. package/dist/unstable/reactivity/Hydration.js.map +1 -1
  971. package/dist/unstable/reactivity/Reactivity.d.ts +27 -3
  972. package/dist/unstable/reactivity/Reactivity.d.ts.map +1 -1
  973. package/dist/unstable/reactivity/Reactivity.js +15 -3
  974. package/dist/unstable/reactivity/Reactivity.js.map +1 -1
  975. package/dist/unstable/rpc/Rpc.d.ts +38 -2
  976. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  977. package/dist/unstable/rpc/Rpc.js +12 -2
  978. package/dist/unstable/rpc/Rpc.js.map +1 -1
  979. package/dist/unstable/rpc/RpcSerialization.d.ts +6 -0
  980. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  981. package/dist/unstable/rpc/RpcSerialization.js +6 -0
  982. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  983. package/dist/unstable/rpc/RpcServer.d.ts +5 -3
  984. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  985. package/dist/unstable/rpc/RpcServer.js +5 -3
  986. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  987. package/dist/unstable/schema/Model.d.ts +43 -12
  988. package/dist/unstable/schema/Model.d.ts.map +1 -1
  989. package/dist/unstable/schema/Model.js +41 -12
  990. package/dist/unstable/schema/Model.js.map +1 -1
  991. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  992. package/dist/unstable/sql/SqlResolver.d.ts +6 -4
  993. package/dist/unstable/sql/SqlResolver.d.ts.map +1 -1
  994. package/dist/unstable/sql/SqlResolver.js +6 -4
  995. package/dist/unstable/sql/SqlResolver.js.map +1 -1
  996. package/dist/unstable/sql/Statement.d.ts +8 -4
  997. package/dist/unstable/sql/Statement.d.ts.map +1 -1
  998. package/dist/unstable/sql/Statement.js.map +1 -1
  999. package/dist/unstable/workflow/DurableClock.d.ts +1 -1
  1000. package/dist/unstable/workflow/DurableDeferred.d.ts +3 -0
  1001. package/dist/unstable/workflow/DurableDeferred.d.ts.map +1 -1
  1002. package/dist/unstable/workflow/DurableDeferred.js +3 -0
  1003. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  1004. package/dist/unstable/workflow/Workflow.d.ts +42 -34
  1005. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  1006. package/dist/unstable/workflow/Workflow.js +18 -19
  1007. package/dist/unstable/workflow/Workflow.js.map +1 -1
  1008. package/package.json +1 -1
  1009. package/src/Array.ts +454 -0
  1010. package/src/BigDecimal.ts +87 -33
  1011. package/src/BigInt.ts +71 -14
  1012. package/src/Boolean.ts +4 -0
  1013. package/src/Brand.ts +16 -11
  1014. package/src/Cache.ts +17 -1
  1015. package/src/Cause.ts +95 -3
  1016. package/src/Channel.ts +326 -0
  1017. package/src/ChannelSchema.ts +24 -0
  1018. package/src/Chunk.ts +59 -22
  1019. package/src/Combiner.ts +75 -71
  1020. package/src/Config.ts +167 -46
  1021. package/src/ConfigProvider.ts +235 -158
  1022. package/src/Console.ts +25 -99
  1023. package/src/Context.ts +4 -4
  1024. package/src/Cron.ts +42 -16
  1025. package/src/Crypto.ts +6 -0
  1026. package/src/Data.ts +132 -70
  1027. package/src/DateTime.ts +227 -14
  1028. package/src/Deferred.ts +94 -27
  1029. package/src/Differ.ts +2 -0
  1030. package/src/Duration.ts +64 -6
  1031. package/src/Effect.ts +909 -605
  1032. package/src/Effectable.ts +3 -1
  1033. package/src/Encoding.ts +16 -0
  1034. package/src/Equal.ts +52 -40
  1035. package/src/Equivalence.ts +190 -153
  1036. package/src/ErrorReporter.ts +35 -14
  1037. package/src/ExecutionPlan.ts +10 -3
  1038. package/src/Exit.ts +212 -6
  1039. package/src/Fiber.ts +8 -0
  1040. package/src/FiberHandle.ts +46 -23
  1041. package/src/FiberMap.ts +43 -4
  1042. package/src/FiberSet.ts +21 -6
  1043. package/src/FileSystem.ts +64 -0
  1044. package/src/Filter.ts +53 -21
  1045. package/src/Formatter.ts +21 -22
  1046. package/src/Function.ts +67 -75
  1047. package/src/Graph.ts +51 -13
  1048. package/src/HKT.ts +22 -21
  1049. package/src/Hash.ts +33 -10
  1050. package/src/HashMap.ts +50 -9
  1051. package/src/HashRing.ts +4 -0
  1052. package/src/HashSet.ts +2 -0
  1053. package/src/Inspectable.ts +15 -2
  1054. package/src/Iterable.ts +104 -22
  1055. package/src/JsonPatch.ts +61 -80
  1056. package/src/JsonPointer.ts +16 -20
  1057. package/src/JsonSchema.ts +123 -73
  1058. package/src/Latch.ts +28 -2
  1059. package/src/Layer.ts +781 -335
  1060. package/src/LogLevel.ts +86 -13
  1061. package/src/Logger.ts +71 -51
  1062. package/src/ManagedRuntime.ts +12 -0
  1063. package/src/Match.ts +83 -1
  1064. package/src/Metric.ts +105 -12
  1065. package/src/MutableHashMap.ts +18 -0
  1066. package/src/MutableHashSet.ts +2 -0
  1067. package/src/MutableList.ts +24 -6
  1068. package/src/MutableRef.ts +2 -0
  1069. package/src/Newtype.ts +69 -30
  1070. package/src/NonEmptyIterable.ts +6 -0
  1071. package/src/Number.ts +16 -30
  1072. package/src/Optic.ts +90 -40
  1073. package/src/Option.ts +121 -111
  1074. package/src/Order.ts +169 -167
  1075. package/src/Ordering.ts +4 -0
  1076. package/src/PartitionedSemaphore.ts +7 -5
  1077. package/src/Path.ts +8 -0
  1078. package/src/Pipeable.ts +10 -0
  1079. package/src/PlatformError.ts +12 -0
  1080. package/src/Pool.ts +30 -16
  1081. package/src/Predicate.ts +520 -352
  1082. package/src/PrimaryKey.ts +4 -0
  1083. package/src/PubSub.ts +23 -5
  1084. package/src/Pull.ts +16 -0
  1085. package/src/Queue.ts +44 -0
  1086. package/src/Random.ts +25 -6
  1087. package/src/RcMap.ts +10 -6
  1088. package/src/RcRef.ts +3 -1
  1089. package/src/Record.ts +24 -3
  1090. package/src/Redactable.ts +54 -41
  1091. package/src/Redacted.ts +10 -0
  1092. package/src/Reducer.ts +20 -11
  1093. package/src/Ref.ts +95 -58
  1094. package/src/References.ts +18 -1
  1095. package/src/Request.ts +3 -3
  1096. package/src/RequestResolver.ts +8 -22
  1097. package/src/Resource.ts +2 -0
  1098. package/src/Result.ts +192 -6
  1099. package/src/Runtime.ts +14 -11
  1100. package/src/Schedule.ts +35 -3
  1101. package/src/Scheduler.ts +22 -19
  1102. package/src/Schema.ts +547 -130
  1103. package/src/SchemaAST.ts +123 -65
  1104. package/src/SchemaGetter.ts +269 -234
  1105. package/src/SchemaIssue.ts +48 -46
  1106. package/src/SchemaParser.ts +58 -0
  1107. package/src/SchemaRepresentation.ts +198 -96
  1108. package/src/SchemaTransformation.ts +272 -203
  1109. package/src/SchemaUtils.ts +2 -0
  1110. package/src/Scope.ts +19 -1
  1111. package/src/ScopedCache.ts +56 -0
  1112. package/src/ScopedRef.ts +9 -3
  1113. package/src/Semaphore.ts +6 -0
  1114. package/src/Sink.ts +108 -0
  1115. package/src/Stdio.ts +7 -3
  1116. package/src/Stream.ts +464 -16
  1117. package/src/String.ts +14 -0
  1118. package/src/Struct.ts +371 -191
  1119. package/src/SubscriptionRef.ts +7 -1
  1120. package/src/SynchronizedRef.ts +2 -0
  1121. package/src/Tracer.ts +17 -27
  1122. package/src/Trie.ts +23 -9
  1123. package/src/Tuple.ts +287 -144
  1124. package/src/TxChunk.ts +182 -93
  1125. package/src/TxDeferred.ts +3 -4
  1126. package/src/TxHashMap.ts +171 -90
  1127. package/src/TxHashSet.ts +36 -35
  1128. package/src/TxPriorityQueue.ts +2 -0
  1129. package/src/TxPubSub.ts +36 -35
  1130. package/src/TxQueue.ts +77 -114
  1131. package/src/TxRef.ts +4 -0
  1132. package/src/TxSemaphore.ts +66 -27
  1133. package/src/Types.ts +202 -75
  1134. package/src/UndefinedOr.ts +31 -29
  1135. package/src/Unify.ts +28 -0
  1136. package/src/Utils.ts +29 -35
  1137. package/src/index.ts +18 -7
  1138. package/src/testing/TestClock.ts +16 -16
  1139. package/src/testing/TestConsole.ts +2 -0
  1140. package/src/testing/TestSchema.ts +43 -55
  1141. package/src/unstable/ai/AiError.ts +62 -11
  1142. package/src/unstable/ai/AnthropicStructuredOutput.ts +4 -4
  1143. package/src/unstable/ai/Chat.ts +29 -1
  1144. package/src/unstable/ai/IdGenerator.ts +10 -0
  1145. package/src/unstable/ai/LanguageModel.ts +32 -46
  1146. package/src/unstable/ai/McpSchema.ts +84 -32
  1147. package/src/unstable/ai/McpServer.ts +8 -0
  1148. package/src/unstable/ai/Model.ts +9 -5
  1149. package/src/unstable/ai/OpenAiStructuredOutput.ts +3 -2
  1150. package/src/unstable/ai/Prompt.ts +62 -35
  1151. package/src/unstable/ai/Response.ts +40 -21
  1152. package/src/unstable/ai/ResponseIdTracker.ts +8 -0
  1153. package/src/unstable/ai/Telemetry.ts +30 -5
  1154. package/src/unstable/ai/Tokenizer.ts +6 -0
  1155. package/src/unstable/ai/Tool.ts +68 -0
  1156. package/src/unstable/ai/Toolkit.ts +12 -0
  1157. package/src/unstable/cli/Argument.ts +14 -4
  1158. package/src/unstable/cli/CliError.ts +6 -0
  1159. package/src/unstable/cli/Command.ts +128 -12
  1160. package/src/unstable/cli/Flag.ts +31 -14
  1161. package/src/unstable/cli/Param.ts +96 -9
  1162. package/src/unstable/cli/Primitive.ts +10 -0
  1163. package/src/unstable/cli/Prompt.ts +47 -40
  1164. package/src/unstable/cli/internal/command.ts +11 -2
  1165. package/src/unstable/cli/internal/completions/descriptor.ts +3 -0
  1166. package/src/unstable/cli/internal/parser.ts +8 -1
  1167. package/src/unstable/cluster/ClusterCron.ts +10 -1
  1168. package/src/unstable/cluster/ClusterSchema.ts +8 -0
  1169. package/src/unstable/cluster/ClusterWorkflowEngine.ts +4 -0
  1170. package/src/unstable/cluster/DeliverAt.ts +3 -4
  1171. package/src/unstable/cluster/Entity.ts +24 -0
  1172. package/src/unstable/cluster/EntityProxy.ts +10 -4
  1173. package/src/unstable/cluster/EntityProxyServer.ts +6 -0
  1174. package/src/unstable/cluster/EntityResource.ts +10 -0
  1175. package/src/unstable/cluster/Envelope.ts +16 -0
  1176. package/src/unstable/cluster/HttpRunner.ts +16 -0
  1177. package/src/unstable/cluster/K8sHttpClient.ts +8 -0
  1178. package/src/unstable/cluster/Message.ts +24 -0
  1179. package/src/unstable/cluster/MessageStorage.ts +44 -10
  1180. package/src/unstable/cluster/Reply.ts +6 -6
  1181. package/src/unstable/cluster/Runner.ts +2 -0
  1182. package/src/unstable/cluster/RunnerHealth.ts +13 -2
  1183. package/src/unstable/cluster/RunnerServer.ts +8 -8
  1184. package/src/unstable/cluster/RunnerStorage.ts +2 -0
  1185. package/src/unstable/cluster/ShardId.ts +4 -0
  1186. package/src/unstable/cluster/Snowflake.ts +2 -0
  1187. package/src/unstable/cluster/TestRunner.ts +3 -2
  1188. package/src/unstable/devtools/DevToolsSchema.ts +34 -2
  1189. package/src/unstable/devtools/DevToolsServer.ts +4 -0
  1190. package/src/unstable/encoding/Msgpack.ts +24 -0
  1191. package/src/unstable/encoding/Ndjson.ts +46 -2
  1192. package/src/unstable/encoding/Sse.ts +24 -17
  1193. package/src/unstable/eventlog/Event.ts +16 -0
  1194. package/src/unstable/eventlog/EventGroup.ts +4 -0
  1195. package/src/unstable/eventlog/EventJournal.ts +20 -0
  1196. package/src/unstable/eventlog/EventLog.ts +22 -0
  1197. package/src/unstable/eventlog/EventLogMessage.ts +10 -0
  1198. package/src/unstable/eventlog/EventLogRemote.ts +4 -0
  1199. package/src/unstable/eventlog/EventLogServer.ts +4 -0
  1200. package/src/unstable/eventlog/EventLogServerEncrypted.ts +6 -0
  1201. package/src/unstable/eventlog/EventLogServerUnencrypted.ts +8 -0
  1202. package/src/unstable/eventlog/EventLogSessionAuth.ts +11 -1
  1203. package/src/unstable/eventlog/SqlEventJournal.ts +2 -0
  1204. package/src/unstable/eventlog/SqlEventLogServerEncrypted.ts +2 -0
  1205. package/src/unstable/eventlog/SqlEventLogServerUnencrypted.ts +2 -0
  1206. package/src/unstable/http/Cookies.ts +34 -0
  1207. package/src/unstable/http/Etag.ts +4 -0
  1208. package/src/unstable/http/FetchHttpClient.ts +4 -0
  1209. package/src/unstable/http/Headers.ts +88 -0
  1210. package/src/unstable/http/HttpBody.ts +32 -0
  1211. package/src/unstable/http/HttpClient.ts +44 -0
  1212. package/src/unstable/http/HttpClientRequest.ts +2 -0
  1213. package/src/unstable/http/HttpClientResponse.ts +6 -0
  1214. package/src/unstable/http/HttpEffect.ts +4 -0
  1215. package/src/unstable/http/HttpPlatform.ts +2 -0
  1216. package/src/unstable/http/HttpRouter.ts +54 -16
  1217. package/src/unstable/http/HttpServer.ts +35 -1
  1218. package/src/unstable/http/HttpServerError.ts +17 -3
  1219. package/src/unstable/http/HttpServerRequest.ts +30 -0
  1220. package/src/unstable/http/HttpServerRespondable.ts +8 -0
  1221. package/src/unstable/http/HttpServerResponse.ts +96 -0
  1222. package/src/unstable/http/HttpTraceContext.ts +12 -0
  1223. package/src/unstable/http/Multipart.ts +49 -2
  1224. package/src/unstable/http/Template.ts +14 -0
  1225. package/src/unstable/http/UrlParams.ts +64 -0
  1226. package/src/unstable/httpapi/HttpApi.ts +10 -4
  1227. package/src/unstable/httpapi/HttpApiBuilder.ts +9 -4
  1228. package/src/unstable/httpapi/HttpApiEndpoint.ts +2 -0
  1229. package/src/unstable/httpapi/HttpApiGroup.ts +23 -14
  1230. package/src/unstable/httpapi/HttpApiMiddleware.ts +14 -0
  1231. package/src/unstable/httpapi/HttpApiScalar.ts +38 -15
  1232. package/src/unstable/httpapi/HttpApiSchema.ts +14 -3
  1233. package/src/unstable/httpapi/HttpApiSecurity.ts +17 -11
  1234. package/src/unstable/httpapi/HttpApiSwagger.ts +2 -4
  1235. package/src/unstable/httpapi/HttpApiTest.ts +2 -0
  1236. package/src/unstable/httpapi/OpenApi.ts +2 -0
  1237. package/src/unstable/observability/Otlp.ts +2 -0
  1238. package/src/unstable/observability/OtlpExporter.ts +2 -0
  1239. package/src/unstable/observability/OtlpLogger.ts +4 -0
  1240. package/src/unstable/observability/OtlpMetrics.ts +8 -9
  1241. package/src/unstable/observability/OtlpResource.ts +8 -0
  1242. package/src/unstable/observability/OtlpTracer.ts +3 -2
  1243. package/src/unstable/observability/PrometheusMetrics.ts +6 -2
  1244. package/src/unstable/persistence/KeyValueStore.ts +10 -0
  1245. package/src/unstable/persistence/Persistable.ts +2 -0
  1246. package/src/unstable/persistence/PersistedCache.ts +2 -0
  1247. package/src/unstable/persistence/PersistedQueue.ts +21 -6
  1248. package/src/unstable/persistence/Persistence.ts +14 -0
  1249. package/src/unstable/persistence/RateLimiter.ts +6 -3
  1250. package/src/unstable/persistence/Redis.ts +6 -0
  1251. package/src/unstable/process/ChildProcess.ts +70 -19
  1252. package/src/unstable/process/ChildProcessSpawner.ts +20 -4
  1253. package/src/unstable/reactivity/Atom.ts +119 -14
  1254. package/src/unstable/reactivity/AtomHttpApi.ts +4 -0
  1255. package/src/unstable/reactivity/AtomRef.ts +8 -0
  1256. package/src/unstable/reactivity/AtomRegistry.ts +34 -0
  1257. package/src/unstable/reactivity/AtomRpc.ts +8 -6
  1258. package/src/unstable/reactivity/Hydration.ts +6 -0
  1259. package/src/unstable/reactivity/Reactivity.ts +27 -3
  1260. package/src/unstable/rpc/Rpc.ts +38 -2
  1261. package/src/unstable/rpc/RpcSerialization.ts +6 -0
  1262. package/src/unstable/rpc/RpcServer.ts +5 -3
  1263. package/src/unstable/schema/Model.ts +43 -12
  1264. package/src/unstable/sql/SqlClient.ts +1 -1
  1265. package/src/unstable/sql/SqlResolver.ts +6 -4
  1266. package/src/unstable/sql/Statement.ts +8 -4
  1267. package/src/unstable/workflow/DurableClock.ts +1 -1
  1268. package/src/unstable/workflow/DurableDeferred.ts +3 -0
  1269. package/src/unstable/workflow/Workflow.ts +42 -34
package/dist/Layer.d.ts CHANGED
@@ -3,17 +3,28 @@
3
3
  * application. Services can be injected into effects via
4
4
  * `Effect.provideService`. Effects can require services via `Effect.service`.
5
5
  *
6
- * Layer can be thought of as recipes for producing bundles of services, given
7
- * their dependencies (other services).
6
+ * A layer is a recipe for producing services from their dependencies:
8
7
  *
9
- * Construction of services can be effectful and utilize resources that must be
10
- * acquired and safely released when the services are done being utilized.
8
+ * - `ROut` is what the layer provides.
9
+ * - `E` is what can fail while building the layer.
10
+ * - `RIn` is what the layer needs in order to build.
11
11
  *
12
- * By default layers are shared, meaning that if the same layer is used twice
13
- * the layer will only be allocated a single time.
12
+ * Normal application code should ask for services. Layer code should create
13
+ * services. The application entry point should provide the final layer once.
14
+ * Keeping this boundary clear makes programs easier to reuse with production,
15
+ * test, or mock implementations.
16
+ *
17
+ * Construction of services can be effectful and can acquire resources that must
18
+ * be safely released when the services are no longer used. For example, a layer
19
+ * can open a database pool during acquisition and close it in a finalizer.
20
+ *
21
+ * Layers are lazy: they do not build anything until they are provided to a
22
+ * program or explicitly built. By default layers are shared, meaning that if the
23
+ * same layer value is used twice, it is allocated only once and both users share
24
+ * the same service instance.
14
25
  *
15
26
  * Because of their excellent composition properties, layers are the idiomatic
16
- * way in Effect-TS to create services that depend on other services.
27
+ * way in Effect to create services that depend on other services.
17
28
  *
18
29
  * @since 2.0.0
19
30
  */
@@ -32,12 +43,13 @@ import type * as Types from "./Types.ts";
32
43
  import type * as Unify from "./Unify.ts";
33
44
  declare const TypeId = "~effect/Layer";
34
45
  /**
35
- * A Layer describes how to build one or more services for dependency injection.
46
+ * A `Layer` describes how to build one or more services for dependency injection.
47
+ *
48
+ * **Details**
36
49
  *
37
- * A Layer<ROut, E, RIn> represents:
38
- * - ROut: The services this layer provides
39
- * - E: The possible errors during layer construction
40
- * - RIn: The services this layer requires as dependencies
50
+ * A `Layer<ROut, E, RIn>` represents `ROut` as the services this layer
51
+ * provides, `E` as the possible errors during layer construction, and `RIn` as
52
+ * the services this layer requires as dependencies.
41
53
  *
42
54
  * @category models
43
55
  * @since 2.0.0
@@ -51,6 +63,8 @@ export interface Layer<in ROut, out E = never, out RIn = never> extends Variance
51
63
  * Type-level hook that allows `Layer` values to participate in `Unify`
52
64
  * inference.
53
65
  *
66
+ * **Details**
67
+ *
54
68
  * This is used by Effect's pipe and unification machinery to preserve the
55
69
  * provided services, error, and requirements of a `Layer`.
56
70
  *
@@ -85,12 +99,14 @@ export interface Variance<in ROut, out E, out RIn> {
85
99
  };
86
100
  }
87
101
  /**
88
- * A constraint interface for working with any Layer type.
102
+ * A type-level constraint for working with any `Layer` type.
89
103
  *
90
- * This interface is used to constrain generic types to Layer types
91
- * without specifying exact type parameters.
104
+ * **Details**
105
+ *
106
+ * This interface is used to constrain generic types to `Layer` values without
107
+ * specifying exact type parameters.
92
108
  *
93
- * @category type-level
109
+ * @category utility types
94
110
  * @since 3.9.0
95
111
  */
96
112
  export interface Any {
@@ -101,31 +117,34 @@ export interface Any {
101
117
  };
102
118
  }
103
119
  /**
104
- * Extracts the service dependencies (RIn) from a Layer type.
120
+ * Extracts the service requirements (`RIn`) from a `Layer` type.
105
121
  *
106
- * @category type-level
122
+ * @category utility types
107
123
  * @since 4.0.0
108
124
  */
109
125
  export type Services<T extends Any> = T extends infer L ? L extends Layer<infer _ROut, infer _E, infer _RIn> ? _RIn : never : never;
110
126
  /**
111
- * Extracts the error type (E) from a Layer type.
127
+ * Extracts the error type (`E`) from a `Layer` type.
112
128
  *
113
- * @category type-level
129
+ * @category utility types
114
130
  * @since 2.0.0
115
131
  */
116
132
  export type Error<T extends Any> = T extends Layer<infer _ROut, infer _E, infer _RIn> ? _E : never;
117
133
  /**
118
- * Extracts the service output type (ROut) from a Layer type.
134
+ * Extracts the service output type (`ROut`) from a `Layer` type.
119
135
  *
120
- * @category type-level
136
+ * @category utility types
121
137
  * @since 2.0.0
122
138
  */
123
139
  export type Success<T extends Any> = T extends Layer<infer _ROut, infer _E, infer _RIn> ? _ROut : never;
124
140
  declare const MemoMapTypeId = "~effect/Layer/MemoMap";
125
141
  /**
126
- * A MemoMap is used to memoize layer construction and ensure sharing of layers.
142
+ * A `MemoMap` is used to memoize layer construction and ensure sharing of
143
+ * layers.
127
144
  *
128
- * The MemoMap prevents duplicate construction of the same layer instance,
145
+ * **Details**
146
+ *
147
+ * The `MemoMap` prevents duplicate construction of the same layer instance,
129
148
  * enabling efficient resource sharing across layer dependencies.
130
149
  *
131
150
  * **Example** (Sharing layer construction with a memo map)
@@ -142,7 +161,7 @@ declare const MemoMapTypeId = "~effect/Layer/MemoMap";
142
161
  * const memoMap = yield* Layer.makeMemoMap
143
162
  * const scope = yield* Effect.scope
144
163
  *
145
- * const dbLayer = Layer.succeed(Database)({
164
+ * const dbLayer = Layer.succeed(Database, {
146
165
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
147
166
  * })
148
167
  * const context = yield* Layer.buildWithMemoMap(dbLayer, memoMap, scope)
@@ -171,7 +190,7 @@ export interface MemoMap {
171
190
  * readonly query: (sql: string) => Effect.Effect<string>
172
191
  * }>()("Database") {}
173
192
  *
174
- * const dbLayer = Layer.succeed(Database)({
193
+ * const dbLayer = Layer.succeed(Database, {
175
194
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
176
195
  * })
177
196
  * const notALayer = { someProperty: "value" }
@@ -185,7 +204,10 @@ export interface MemoMap {
185
204
  */
186
205
  export declare const isLayer: (u: unknown) => u is Layer<unknown, unknown, unknown>;
187
206
  /**
188
- * Constructs a Layer from a function that uses a `MemoMap` and `Scope` to build the layer.
207
+ * Constructs a `Layer` from a function that uses a `MemoMap` and `Scope` to
208
+ * build the layer.
209
+ *
210
+ * **Details**
189
211
  *
190
212
  * The function receives a `MemoMap` for memoization and a `Scope` for resource management.
191
213
  * A child scope is created, and if the build fails, the child scope is closed.
@@ -213,8 +235,10 @@ export declare const isLayer: (u: unknown) => u is Layer<unknown, unknown, unkno
213
235
  */
214
236
  export declare const fromBuild: <ROut, E, RIn>(build: (memoMap: MemoMap, scope: Scope.Scope) => Effect<Context.Context<ROut>, E, RIn>) => Layer<ROut, E, RIn>;
215
237
  /**
216
- * Constructs a Layer from a function that uses a `MemoMap` and `Scope` to build the layer,
217
- * with automatic memoization.
238
+ * Constructs a `Layer` from a function that uses a `MemoMap` and `Scope` to
239
+ * build the layer, with automatic memoization.
240
+ *
241
+ * **Details**
218
242
  *
219
243
  * This is similar to `fromBuild` but provides automatic memoization of the layer construction.
220
244
  * The layer will be memoized based on the provided `MemoMap`.
@@ -258,7 +282,7 @@ export declare const fromBuildMemo: <ROut, E, RIn>(build: (memoMap: MemoMap, sco
258
282
  * const memoMap = Layer.makeMemoMapUnsafe()
259
283
  * const scope = yield* Effect.scope
260
284
  *
261
- * const dbLayer = Layer.succeed(Database)({
285
+ * const dbLayer = Layer.succeed(Database, {
262
286
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
263
287
  * })
264
288
  * const context = yield* Layer.buildWithMemoMap(dbLayer, memoMap, scope)
@@ -296,7 +320,7 @@ export declare const forkMemoMapUnsafe: (parent: MemoMap) => MemoMap;
296
320
  * const memoMap = yield* Layer.makeMemoMap
297
321
  * const scope = yield* Effect.scope
298
322
  *
299
- * const dbLayer = Layer.succeed(Database)({
323
+ * const dbLayer = Layer.succeed(Database, {
300
324
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
301
325
  * })
302
326
  * const context = yield* Layer.buildWithMemoMap(dbLayer, memoMap, scope)
@@ -321,6 +345,8 @@ declare const CurrentMemoMap_base: Context.ServiceClass<CurrentMemoMap, "effect/
321
345
  /**
322
346
  * A service reference for the current `MemoMap` used in layer construction.
323
347
  *
348
+ * **Details**
349
+ *
324
350
  * This service provides access to the current memoization map during layer building,
325
351
  * allowing layers to share memoized results.
326
352
  *
@@ -353,13 +379,13 @@ export declare class CurrentMemoMap extends CurrentMemoMap_base {
353
379
  * const scope = yield* Effect.scope
354
380
  *
355
381
  * // Build database layer with memoization
356
- * const dbLayer = Layer.succeed(Database)({
382
+ * const dbLayer = Layer.succeed(Database, {
357
383
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
358
384
  * })
359
385
  * const dbContext = yield* Layer.buildWithMemoMap(dbLayer, memoMap, scope)
360
386
  *
361
387
  * // Build logger layer with same memoization (reuses memo if same layer)
362
- * const loggerLayer = Layer.succeed(Logger)({
388
+ * const loggerLayer = Layer.succeed(Logger, {
363
389
  * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
364
390
  * })
365
391
  * const loggerContext = yield* Layer.buildWithMemoMap(
@@ -402,13 +428,13 @@ export declare const buildWithMemoMap: {
402
428
  * const scope = yield* Effect.scope
403
429
  *
404
430
  * // Build database layer with memoization
405
- * const dbLayer = Layer.succeed(Database)({
431
+ * const dbLayer = Layer.succeed(Database, {
406
432
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
407
433
  * })
408
434
  * const dbContext = yield* Layer.buildWithMemoMap(dbLayer, memoMap, scope)
409
435
  *
410
436
  * // Build logger layer with same memoization (reuses memo if same layer)
411
- * const loggerLayer = Layer.succeed(Logger)({
437
+ * const loggerLayer = Layer.succeed(Logger, {
412
438
  * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
413
439
  * })
414
440
  * const loggerContext = yield* Layer.buildWithMemoMap(
@@ -451,13 +477,13 @@ export declare const buildWithMemoMap: {
451
477
  * const scope = yield* Effect.scope
452
478
  *
453
479
  * // Build database layer with memoization
454
- * const dbLayer = Layer.succeed(Database)({
480
+ * const dbLayer = Layer.succeed(Database, {
455
481
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
456
482
  * })
457
483
  * const dbContext = yield* Layer.buildWithMemoMap(dbLayer, memoMap, scope)
458
484
  *
459
485
  * // Build logger layer with same memoization (reuses memo if same layer)
460
- * const loggerLayer = Layer.succeed(Logger)({
486
+ * const loggerLayer = Layer.succeed(Logger, {
461
487
  * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
462
488
  * })
463
489
  * const loggerContext = yield* Layer.buildWithMemoMap(
@@ -492,7 +518,7 @@ export declare const buildWithMemoMap: {
492
518
  *
493
519
  * // Build a layer to get its services
494
520
  * const program = Effect.gen(function*() {
495
- * const dbLayer = Layer.succeed(Database)({
521
+ * const dbLayer = Layer.succeed(Database, {
496
522
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
497
523
  * })
498
524
  *
@@ -530,7 +556,7 @@ export declare const build: <RIn, E, ROut>(self: Layer<ROut, E, RIn>) => Effect<
530
556
  * const program = Effect.gen(function*() {
531
557
  * const scope = yield* Effect.scope
532
558
  *
533
- * const dbLayer = Layer.effect(Database)(Effect.gen(function*() {
559
+ * const dbLayer = Layer.effect(Database, Effect.gen(function*() {
534
560
  * console.log("Initializing database...")
535
561
  * yield* Scope.addFinalizer(
536
562
  * scope,
@@ -572,7 +598,7 @@ export declare const buildWithScope: {
572
598
  * const program = Effect.gen(function*() {
573
599
  * const scope = yield* Effect.scope
574
600
  *
575
- * const dbLayer = Layer.effect(Database)(Effect.gen(function*() {
601
+ * const dbLayer = Layer.effect(Database, Effect.gen(function*() {
576
602
  * console.log("Initializing database...")
577
603
  * yield* Scope.addFinalizer(
578
604
  * scope,
@@ -614,7 +640,7 @@ export declare const buildWithScope: {
614
640
  * const program = Effect.gen(function*() {
615
641
  * const scope = yield* Effect.scope
616
642
  *
617
- * const dbLayer = Layer.effect(Database)(Effect.gen(function*() {
643
+ * const dbLayer = Layer.effect(Database, Effect.gen(function*() {
618
644
  * console.log("Initializing database...")
619
645
  * yield* Scope.addFinalizer(
620
646
  * scope,
@@ -638,9 +664,16 @@ export declare const buildWithScope: {
638
664
  <RIn, E, ROut>(self: Layer<ROut, E, RIn>, scope: Scope.Scope): Effect<Context.Context<ROut>, E, RIn>;
639
665
  };
640
666
  /**
641
- * Constructs a layer from the specified value.
667
+ * Constructs a layer that provides a single service from an already available
668
+ * value.
669
+ *
670
+ * **When to use**
642
671
  *
643
- * **Example** (Providing services from values)
672
+ * Use `succeed` when the service implementation is already constructed and does
673
+ * not need effectful acquisition. Use `sync` when the service should be created
674
+ * lazily during layer construction.
675
+ *
676
+ * **Example** (Creating a layer from a service implementation)
644
677
  *
645
678
  * ```ts
646
679
  * import { Context, Effect, Layer } from "effect"
@@ -649,42 +682,28 @@ export declare const buildWithScope: {
649
682
  * readonly query: (sql: string) => Effect.Effect<string>
650
683
  * }>()("Database") {}
651
684
  *
652
- * class Logger extends Context.Service<Logger, {
653
- * readonly log: (msg: string) => Effect.Effect<void>
654
- * }>()("Logger") {}
655
- *
656
- * // Create layers from concrete service implementations
657
- * const databaseLayer = Layer.succeed(Database)({
685
+ * const DatabaseLive = Layer.succeed(Database, {
658
686
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Query result: ${sql}`))
659
687
  * })
660
- *
661
- * const loggerLayer = Layer.succeed(Logger)({
662
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
663
- * })
664
- *
665
- * // Use the layers in a program
666
- * const program = Effect.gen(function*() {
667
- * const database = yield* Database
668
- * const logger = yield* Logger
669
- *
670
- * yield* logger.log("Starting database query")
671
- * const result = yield* database.query("SELECT * FROM users")
672
- * yield* logger.log(`Query completed: ${result}`)
673
- *
674
- * return result
675
- * }).pipe(
676
- * Effect.provide(Layer.mergeAll(databaseLayer, loggerLayer))
677
- * )
678
688
  * ```
679
689
  *
690
+ * @see {@link sync} for constructing layers from lazy values
691
+ *
680
692
  * @category constructors
681
693
  * @since 2.0.0
682
694
  */
683
695
  export declare const succeed: {
684
696
  /**
685
- * Constructs a layer from the specified value.
697
+ * Constructs a layer that provides a single service from an already available
698
+ * value.
699
+ *
700
+ * **When to use**
686
701
  *
687
- * **Example** (Providing services from values)
702
+ * Use `succeed` when the service implementation is already constructed and does
703
+ * not need effectful acquisition. Use `sync` when the service should be created
704
+ * lazily during layer construction.
705
+ *
706
+ * **Example** (Creating a layer from a service implementation)
688
707
  *
689
708
  * ```ts
690
709
  * import { Context, Effect, Layer } from "effect"
@@ -693,42 +712,28 @@ export declare const succeed: {
693
712
  * readonly query: (sql: string) => Effect.Effect<string>
694
713
  * }>()("Database") {}
695
714
  *
696
- * class Logger extends Context.Service<Logger, {
697
- * readonly log: (msg: string) => Effect.Effect<void>
698
- * }>()("Logger") {}
699
- *
700
- * // Create layers from concrete service implementations
701
- * const databaseLayer = Layer.succeed(Database)({
715
+ * const DatabaseLive = Layer.succeed(Database, {
702
716
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Query result: ${sql}`))
703
717
  * })
704
- *
705
- * const loggerLayer = Layer.succeed(Logger)({
706
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
707
- * })
708
- *
709
- * // Use the layers in a program
710
- * const program = Effect.gen(function*() {
711
- * const database = yield* Database
712
- * const logger = yield* Logger
713
- *
714
- * yield* logger.log("Starting database query")
715
- * const result = yield* database.query("SELECT * FROM users")
716
- * yield* logger.log(`Query completed: ${result}`)
717
- *
718
- * return result
719
- * }).pipe(
720
- * Effect.provide(Layer.mergeAll(databaseLayer, loggerLayer))
721
- * )
722
718
  * ```
723
719
  *
720
+ * @see {@link sync} for constructing layers from lazy values
721
+ *
724
722
  * @category constructors
725
723
  * @since 2.0.0
726
724
  */
727
725
  <I, S>(service: Context.Key<I, S>): (resource: S) => Layer<I>;
728
726
  /**
729
- * Constructs a layer from the specified value.
727
+ * Constructs a layer that provides a single service from an already available
728
+ * value.
729
+ *
730
+ * **When to use**
730
731
  *
731
- * **Example** (Providing services from values)
732
+ * Use `succeed` when the service implementation is already constructed and does
733
+ * not need effectful acquisition. Use `sync` when the service should be created
734
+ * lazily during layer construction.
735
+ *
736
+ * **Example** (Creating a layer from a service implementation)
732
737
  *
733
738
  * ```ts
734
739
  * import { Context, Effect, Layer } from "effect"
@@ -737,45 +742,32 @@ export declare const succeed: {
737
742
  * readonly query: (sql: string) => Effect.Effect<string>
738
743
  * }>()("Database") {}
739
744
  *
740
- * class Logger extends Context.Service<Logger, {
741
- * readonly log: (msg: string) => Effect.Effect<void>
742
- * }>()("Logger") {}
743
- *
744
- * // Create layers from concrete service implementations
745
- * const databaseLayer = Layer.succeed(Database)({
745
+ * const DatabaseLive = Layer.succeed(Database, {
746
746
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Query result: ${sql}`))
747
747
  * })
748
- *
749
- * const loggerLayer = Layer.succeed(Logger)({
750
- * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
751
- * })
752
- *
753
- * // Use the layers in a program
754
- * const program = Effect.gen(function*() {
755
- * const database = yield* Database
756
- * const logger = yield* Logger
757
- *
758
- * yield* logger.log("Starting database query")
759
- * const result = yield* database.query("SELECT * FROM users")
760
- * yield* logger.log(`Query completed: ${result}`)
761
- *
762
- * return result
763
- * }).pipe(
764
- * Effect.provide(Layer.mergeAll(databaseLayer, loggerLayer))
765
- * )
766
748
  * ```
767
749
  *
750
+ * @see {@link sync} for constructing layers from lazy values
751
+ *
768
752
  * @category constructors
769
753
  * @since 2.0.0
770
754
  */
771
755
  <I, S>(service: Context.Key<I, S>, resource: Types.NoInfer<S>): Layer<I>;
772
756
  };
773
757
  /**
774
- * Constructs a layer from the specified value, which must return one or more
775
- * services.
758
+ * Constructs a layer that provides all services in an already available
759
+ * `Context`.
776
760
  *
777
- * This is a more general version of `succeed` that allows you to provide multiple
778
- * services at once through a `Context`.
761
+ * **When to use**
762
+ *
763
+ * Use `succeedContext` when you already have a `Context` or need to provide
764
+ * multiple services at once. Use `succeed` when you only need to provide one
765
+ * service value.
766
+ *
767
+ * **Details**
768
+ *
769
+ * This is a more general version of `succeed` that allows you to provide
770
+ * multiple services at once through a `Context`.
779
771
  *
780
772
  * **Example** (Providing multiple services from a context)
781
773
  *
@@ -801,30 +793,50 @@ export declare const succeed: {
801
793
  * const layer = Layer.succeedContext(context)
802
794
  * ```
803
795
  *
796
+ * @see {@link succeed} for providing a single service from a value
797
+ *
804
798
  * @category constructors
805
799
  * @since 2.0.0
806
800
  */
807
801
  export declare const succeedContext: <A>(context: Context.Context<A>) => Layer<A>;
808
802
  /**
809
- * A Layer that constructs an empty Context.
803
+ * An empty layer that provides no services, cannot fail, has no requirements,
804
+ * and performs no construction or finalization work.
810
805
  *
811
- * This layer provides no services and can be used as a neutral element
812
- * in layer composition or as a starting point for building layers.
806
+ * **When to use**
813
807
  *
814
- * **Example** (Creating an empty layer)
808
+ * Use `Layer.empty` as the no-op branch when conditionally composing layers.
809
+ * If you need to run an effect during layer construction while still providing
810
+ * no services, use `effectDiscard`.
811
+ *
812
+ * **Example** (Disabling optional lifecycle work)
815
813
  *
816
814
  * ```ts
817
- * import { Layer } from "effect"
815
+ * import { Console, Layer } from "effect"
816
+ *
817
+ * declare const flag: boolean
818
818
  *
819
- * const emptyLayer = Layer.empty
819
+ * const StartupLogLive = flag
820
+ * ? Layer.effectDiscard(Console.log("application starting"))
821
+ * : Layer.empty
820
822
  * ```
821
823
  *
824
+ * @see {@link effectDiscard} for running an effect while providing no services
825
+ *
822
826
  * @category constructors
823
827
  * @since 2.0.0
824
828
  */
825
829
  export declare const empty: Layer<never>;
826
830
  /**
827
- * Lazily constructs a layer from the specified value.
831
+ * Lazily constructs a layer that provides a single service.
832
+ *
833
+ * **When to use**
834
+ *
835
+ * Use `sync` when the service can be created synchronously but should be
836
+ * deferred until the layer is built. Use `succeed` when the service value is
837
+ * already available.
838
+ *
839
+ * **Details**
828
840
  *
829
841
  * This is a lazy version of `succeed` where the service value is computed
830
842
  * synchronously only when the layer is built.
@@ -838,17 +850,27 @@ export declare const empty: Layer<never>;
838
850
  * readonly query: (sql: string) => Effect.Effect<string>
839
851
  * }>()("Database") {}
840
852
  *
841
- * const layer = Layer.sync(Database)(() => ({
853
+ * const layer = Layer.sync(Database, () => ({
842
854
  * query: (sql: string) => Effect.succeed(`Query: ${sql}`)
843
855
  * }))
844
856
  * ```
845
857
  *
858
+ * @see {@link succeed} for constructing layers from static values
859
+ *
846
860
  * @category constructors
847
861
  * @since 2.0.0
848
862
  */
849
863
  export declare const sync: {
850
864
  /**
851
- * Lazily constructs a layer from the specified value.
865
+ * Lazily constructs a layer that provides a single service.
866
+ *
867
+ * **When to use**
868
+ *
869
+ * Use `sync` when the service can be created synchronously but should be
870
+ * deferred until the layer is built. Use `succeed` when the service value is
871
+ * already available.
872
+ *
873
+ * **Details**
852
874
  *
853
875
  * This is a lazy version of `succeed` where the service value is computed
854
876
  * synchronously only when the layer is built.
@@ -862,17 +884,27 @@ export declare const sync: {
862
884
  * readonly query: (sql: string) => Effect.Effect<string>
863
885
  * }>()("Database") {}
864
886
  *
865
- * const layer = Layer.sync(Database)(() => ({
887
+ * const layer = Layer.sync(Database, () => ({
866
888
  * query: (sql: string) => Effect.succeed(`Query: ${sql}`)
867
889
  * }))
868
890
  * ```
869
891
  *
892
+ * @see {@link succeed} for constructing layers from static values
893
+ *
870
894
  * @category constructors
871
895
  * @since 2.0.0
872
896
  */
873
897
  <I, S>(service: Context.Key<I, S>): (evaluate: LazyArg<S>) => Layer<I>;
874
898
  /**
875
- * Lazily constructs a layer from the specified value.
899
+ * Lazily constructs a layer that provides a single service.
900
+ *
901
+ * **When to use**
902
+ *
903
+ * Use `sync` when the service can be created synchronously but should be
904
+ * deferred until the layer is built. Use `succeed` when the service value is
905
+ * already available.
906
+ *
907
+ * **Details**
876
908
  *
877
909
  * This is a lazy version of `succeed` where the service value is computed
878
910
  * synchronously only when the layer is built.
@@ -886,21 +918,30 @@ export declare const sync: {
886
918
  * readonly query: (sql: string) => Effect.Effect<string>
887
919
  * }>()("Database") {}
888
920
  *
889
- * const layer = Layer.sync(Database)(() => ({
921
+ * const layer = Layer.sync(Database, () => ({
890
922
  * query: (sql: string) => Effect.succeed(`Query: ${sql}`)
891
923
  * }))
892
924
  * ```
893
925
  *
926
+ * @see {@link succeed} for constructing layers from static values
927
+ *
894
928
  * @category constructors
895
929
  * @since 2.0.0
896
930
  */
897
931
  <I, S>(service: Context.Key<I, S>, evaluate: LazyArg<Types.NoInfer<S>>): Layer<I>;
898
932
  };
899
933
  /**
900
- * Lazily constructs a layer from the specified value, which must return one or more
901
- * services.
934
+ * Lazily constructs a layer that provides all services in a `Context`.
935
+ *
936
+ * **When to use**
902
937
  *
903
- * This is a lazy version of `succeedContext` where the Context is computed
938
+ * Use `syncContext` when multiple services can be created synchronously and
939
+ * should be deferred until the layer is built. Use `sync` when you only need to
940
+ * provide one service.
941
+ *
942
+ * **Details**
943
+ *
944
+ * This is a lazy version of `succeedContext` where the `Context` is computed
904
945
  * synchronously only when the layer is built.
905
946
  *
906
947
  * **Example** (Lazily providing a context)
@@ -919,15 +960,27 @@ export declare const sync: {
919
960
  * )
920
961
  * ```
921
962
  *
963
+ * @see {@link sync} for lazily providing a single service
964
+ * @see {@link succeedContext} for providing an already available context
965
+ *
922
966
  * @category constructors
923
967
  * @since 2.0.0
924
968
  */
925
969
  export declare const syncContext: <A>(evaluate: LazyArg<Context.Context<A>>) => Layer<A>;
926
970
  /**
927
- * Constructs a layer from the specified scoped effect.
971
+ * Constructs a layer from an effect that produces a single service.
972
+ *
973
+ * **When to use**
974
+ *
975
+ * Use `effect` when constructing the service requires effects, dependencies, or
976
+ * scoped resource acquisition. Use `effectContext` when the effect produces
977
+ * multiple services in a `Context`, and `effectDiscard` when construction work
978
+ * should provide no services.
928
979
  *
929
- * This allows you to create a Layer from an Effect that produces a service.
930
- * The Effect is executed in the scope of the layer, allowing for proper
980
+ * **Details**
981
+ *
982
+ * This allows you to create a `Layer` from an `Effect` that produces a service.
983
+ * The `Effect` is executed in the scope of the layer, allowing for proper
931
984
  * resource management.
932
985
  *
933
986
  * **Example** (Creating a layer from an effect)
@@ -939,22 +992,34 @@ export declare const syncContext: <A>(evaluate: LazyArg<Context.Context<A>>) =>
939
992
  * readonly query: (sql: string) => Effect.Effect<string>
940
993
  * }>()("Database") {}
941
994
  *
942
- * const layer = Layer.effect(Database)(
995
+ * const layer = Layer.effect(Database,
943
996
  * Effect.sync(() => ({
944
997
  * query: (sql: string) => Effect.succeed(`Query: ${sql}`)
945
998
  * }))
946
999
  * )
947
1000
  * ```
948
1001
  *
1002
+ * @see {@link effectContext} for effectfully providing multiple services
1003
+ * @see {@link effectDiscard} for running construction work without providing services
1004
+ *
949
1005
  * @category constructors
950
1006
  * @since 2.0.0
951
1007
  */
952
1008
  export declare const effect: {
953
1009
  /**
954
- * Constructs a layer from the specified scoped effect.
1010
+ * Constructs a layer from an effect that produces a single service.
1011
+ *
1012
+ * **When to use**
1013
+ *
1014
+ * Use `effect` when constructing the service requires effects, dependencies, or
1015
+ * scoped resource acquisition. Use `effectContext` when the effect produces
1016
+ * multiple services in a `Context`, and `effectDiscard` when construction work
1017
+ * should provide no services.
955
1018
  *
956
- * This allows you to create a Layer from an Effect that produces a service.
957
- * The Effect is executed in the scope of the layer, allowing for proper
1019
+ * **Details**
1020
+ *
1021
+ * This allows you to create a `Layer` from an `Effect` that produces a service.
1022
+ * The `Effect` is executed in the scope of the layer, allowing for proper
958
1023
  * resource management.
959
1024
  *
960
1025
  * **Example** (Creating a layer from an effect)
@@ -966,22 +1031,34 @@ export declare const effect: {
966
1031
  * readonly query: (sql: string) => Effect.Effect<string>
967
1032
  * }>()("Database") {}
968
1033
  *
969
- * const layer = Layer.effect(Database)(
1034
+ * const layer = Layer.effect(Database,
970
1035
  * Effect.sync(() => ({
971
1036
  * query: (sql: string) => Effect.succeed(`Query: ${sql}`)
972
1037
  * }))
973
1038
  * )
974
1039
  * ```
975
1040
  *
1041
+ * @see {@link effectContext} for effectfully providing multiple services
1042
+ * @see {@link effectDiscard} for running construction work without providing services
1043
+ *
976
1044
  * @category constructors
977
1045
  * @since 2.0.0
978
1046
  */
979
1047
  <I, S>(service: Context.Key<I, S>): <E, R>(effect: Effect<S, E, R>) => Layer<I, E, Exclude<R, Scope.Scope>>;
980
1048
  /**
981
- * Constructs a layer from the specified scoped effect.
1049
+ * Constructs a layer from an effect that produces a single service.
1050
+ *
1051
+ * **When to use**
1052
+ *
1053
+ * Use `effect` when constructing the service requires effects, dependencies, or
1054
+ * scoped resource acquisition. Use `effectContext` when the effect produces
1055
+ * multiple services in a `Context`, and `effectDiscard` when construction work
1056
+ * should provide no services.
982
1057
  *
983
- * This allows you to create a Layer from an Effect that produces a service.
984
- * The Effect is executed in the scope of the layer, allowing for proper
1058
+ * **Details**
1059
+ *
1060
+ * This allows you to create a `Layer` from an `Effect` that produces a service.
1061
+ * The `Effect` is executed in the scope of the layer, allowing for proper
985
1062
  * resource management.
986
1063
  *
987
1064
  * **Example** (Creating a layer from an effect)
@@ -993,24 +1070,34 @@ export declare const effect: {
993
1070
  * readonly query: (sql: string) => Effect.Effect<string>
994
1071
  * }>()("Database") {}
995
1072
  *
996
- * const layer = Layer.effect(Database)(
1073
+ * const layer = Layer.effect(Database,
997
1074
  * Effect.sync(() => ({
998
1075
  * query: (sql: string) => Effect.succeed(`Query: ${sql}`)
999
1076
  * }))
1000
1077
  * )
1001
1078
  * ```
1002
1079
  *
1080
+ * @see {@link effectContext} for effectfully providing multiple services
1081
+ * @see {@link effectDiscard} for running construction work without providing services
1082
+ *
1003
1083
  * @category constructors
1004
1084
  * @since 2.0.0
1005
1085
  */
1006
1086
  <I, S, E, R>(service: Context.Key<I, S>, effect: Effect<Types.NoInfer<S>, E, R>): Layer<I, E, Exclude<R, Scope.Scope>>;
1007
1087
  };
1008
1088
  /**
1009
- * Constructs a layer from the specified scoped effect, which must return one
1010
- * or more services.
1089
+ * Constructs a layer from an effect that produces all services in a `Context`.
1090
+ *
1091
+ * **When to use**
1092
+ *
1093
+ * Use `effectContext` when effectful construction needs to provide multiple
1094
+ * services at once. Use `effect` when the effect produces one service value.
1011
1095
  *
1012
- * This allows you to create a Layer from an effectful computation that returns
1013
- * multiple services. The Effect is executed in the scope of the layer.
1096
+ * **Details**
1097
+ *
1098
+ * This allows you to create a `Layer` from an effectful computation that
1099
+ * returns multiple services. The `Effect` is executed in the scope of the
1100
+ * layer.
1014
1101
  *
1015
1102
  * **Example** (Creating a layer from an effectful context)
1016
1103
  *
@@ -1029,12 +1116,17 @@ export declare const effect: {
1029
1116
  * )
1030
1117
  * ```
1031
1118
  *
1119
+ * @see {@link effect} for effectfully providing a single service
1120
+ *
1032
1121
  * @category constructors
1033
1122
  * @since 2.0.0
1034
1123
  */
1035
1124
  export declare const effectContext: <A, E, R>(effect: Effect<Context.Context<A>, E, R>) => Layer<A, E, Exclude<R, Scope.Scope>>;
1036
1125
  /**
1037
- * Constructs a layer from the specified scoped effect.
1126
+ * Constructs a layer from an effect, discarding its value and providing no
1127
+ * services.
1128
+ *
1129
+ * **When to use**
1038
1130
  *
1039
1131
  * This is useful when you want to run an Effect for its side effects during
1040
1132
  * layer construction, but don't need to provide any services.
@@ -1051,6 +1143,8 @@ export declare const effectContext: <A, E, R>(effect: Effect<Context.Context<A>,
1051
1143
  * )
1052
1144
  * ```
1053
1145
  *
1146
+ * @see {@link empty} for a no-op layer that performs no construction work
1147
+ *
1054
1148
  * @category constructors
1055
1149
  * @since 2.0.0
1056
1150
  */
@@ -1058,6 +1152,8 @@ export declare const effectDiscard: <X, E, R>(effect: Effect<X, E, R>) => Layer<
1058
1152
  /**
1059
1153
  * Lazily constructs a layer using the specified factory.
1060
1154
  *
1155
+ * **Details**
1156
+ *
1061
1157
  * The factory is evaluated only when the suspended layer is first built, and
1062
1158
  * the result is memoized with normal layer sharing semantics.
1063
1159
  *
@@ -1072,8 +1168,8 @@ export declare const effectDiscard: <X, E, R>(effect: Effect<X, E, R>) => Layer<
1072
1168
  *
1073
1169
  * const layer = Layer.suspend(() =>
1074
1170
  * useProd
1075
- * ? Layer.succeed(Config)("https://api.example.com")
1076
- * : Layer.succeed(Config)("http://localhost:3000")
1171
+ * ? Layer.succeed(Config, "https://api.example.com")
1172
+ * : Layer.succeed(Config, "http://localhost:3000")
1077
1173
  * )
1078
1174
  * ```
1079
1175
  *
@@ -1082,11 +1178,17 @@ export declare const effectDiscard: <X, E, R>(effect: Effect<X, E, R>) => Layer<
1082
1178
  */
1083
1179
  export declare const suspend: <A, E, R>(evaluate: LazyArg<Layer<A, E, R>>) => Layer<A, E, R>;
1084
1180
  /**
1085
- * Unwraps a Layer from an Effect, flattening the nested structure.
1181
+ * Unwraps a `Layer` from an `Effect`, flattening the nested structure.
1182
+ *
1183
+ * **When to use**
1086
1184
  *
1087
- * This is useful when you have an Effect that produces a Layer, and you want to
1088
- * use that Layer directly. The resulting Layer will have the combined error and
1089
- * dependency types from both the outer Effect and the inner Layer.
1185
+ * Use this when you have an `Effect` that produces a `Layer` and you want to
1186
+ * use that layer directly.
1187
+ *
1188
+ * **Details**
1189
+ *
1190
+ * The resulting Layer will have the combined error and dependency types from
1191
+ * both the outer Effect and the inner Layer.
1090
1192
  *
1091
1193
  * **Example** (Unwrapping an effectful layer)
1092
1194
  *
@@ -1098,7 +1200,7 @@ export declare const suspend: <A, E, R>(evaluate: LazyArg<Layer<A, E, R>>) => La
1098
1200
  * }>()("Database") {}
1099
1201
  *
1100
1202
  * const layerEffect = Effect.succeed(
1101
- * Layer.succeed(Database)({ query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result")) })
1203
+ * Layer.succeed(Database, { query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result")) })
1102
1204
  * )
1103
1205
  *
1104
1206
  * const unwrappedLayer = Layer.unwrap(layerEffect)
@@ -1109,10 +1211,20 @@ export declare const suspend: <A, E, R>(evaluate: LazyArg<Layer<A, E, R>>) => La
1109
1211
  */
1110
1212
  export declare const unwrap: <A, E1, R1, E, R>(self: Effect<Layer<A, E1, R1>, E, R>) => Layer<A, E | E1, R1 | Exclude<R, Scope.Scope>>;
1111
1213
  /**
1112
- * Combines all the provided layers concurrently, creating a new layer with merged input, error, and output types.
1214
+ * Combines all the provided layers concurrently, creating a new layer with
1215
+ * merged input, error, and output types.
1216
+ *
1217
+ * **When to use**
1218
+ *
1219
+ * Use this when you need to combine multiple independent layers.
1220
+ *
1221
+ * **Details**
1113
1222
  *
1114
1223
  * All layers are built concurrently, and their outputs are merged into a single layer.
1115
- * This is useful when you need to combine multiple independent layers.
1224
+ *
1225
+ * If multiple merged layers depend on the same layer value, that dependency is
1226
+ * shared by default. Reuse a named layer value when you want services to share
1227
+ * the same resource, such as one database pool.
1116
1228
  *
1117
1229
  * **Example** (Merging independent layers)
1118
1230
  *
@@ -1127,25 +1239,36 @@ export declare const unwrap: <A, E1, R1, E, R>(self: Effect<Layer<A, E1, R1>, E,
1127
1239
  * readonly log: (msg: string) => Effect.Effect<void>
1128
1240
  * }>()("Logger") {}
1129
1241
  *
1130
- * const dbLayer = Layer.succeed(Database)({
1242
+ * const dbLayer = Layer.succeed(Database, {
1131
1243
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
1132
1244
  * })
1133
- * const loggerLayer = Layer.succeed(Logger)({
1245
+ * const loggerLayer = Layer.succeed(Logger, {
1134
1246
  * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
1135
1247
  * })
1136
1248
  *
1137
1249
  * const mergedLayer = Layer.mergeAll(dbLayer, loggerLayer)
1138
1250
  * ```
1139
1251
  *
1252
+ * @see {@link merge} for merging one layer with another layer or array
1253
+ *
1140
1254
  * @category zipping
1141
1255
  * @since 2.0.0
1142
1256
  */
1143
1257
  export declare const mergeAll: <Layers extends [Layer<never, any, any>, ...Array<Layer<never, any, any>>]>(...layers: Layers) => Layer<Success<Layers[number]>, Error<Layers[number]>, Services<Layers[number]>>;
1144
1258
  /**
1145
- * Merges this layer with the specified layer concurrently, producing a new layer with combined input and output types.
1259
+ * Merges this layer with another layer concurrently, producing a new layer with
1260
+ * combined input, error, and output types.
1261
+ *
1262
+ * **When to use**
1263
+ *
1264
+ * Use `merge` when composing from an existing layer in a pipeline. Use
1265
+ * `mergeAll` when you already have all layers as separate arguments.
1146
1266
  *
1147
- * This is a binary version of `mergeAll` that merges exactly two layers or one layer with an array of layers.
1148
- * The layers are built concurrently and their outputs are combined.
1267
+ * **Details**
1268
+ *
1269
+ * This is a binary version of `mergeAll` that merges exactly two layers or one
1270
+ * layer with an array of layers. The layers are built concurrently and their
1271
+ * outputs are combined.
1149
1272
  *
1150
1273
  * **Example** (Merging two layers)
1151
1274
  *
@@ -1160,25 +1283,36 @@ export declare const mergeAll: <Layers extends [Layer<never, any, any>, ...Array
1160
1283
  * readonly log: (msg: string) => Effect.Effect<void>
1161
1284
  * }>()("Logger") {}
1162
1285
  *
1163
- * const dbLayer = Layer.succeed(Database)({
1286
+ * const dbLayer = Layer.succeed(Database, {
1164
1287
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
1165
1288
  * })
1166
- * const loggerLayer = Layer.succeed(Logger)({
1289
+ * const loggerLayer = Layer.succeed(Logger, {
1167
1290
  * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
1168
1291
  * })
1169
1292
  *
1170
1293
  * const mergedLayer = Layer.merge(dbLayer, loggerLayer)
1171
1294
  * ```
1172
1295
  *
1296
+ * @see {@link mergeAll} for merging several layers at once
1297
+ *
1173
1298
  * @category zipping
1174
1299
  * @since 2.0.0
1175
1300
  */
1176
1301
  export declare const merge: {
1177
1302
  /**
1178
- * Merges this layer with the specified layer concurrently, producing a new layer with combined input and output types.
1303
+ * Merges this layer with another layer concurrently, producing a new layer with
1304
+ * combined input, error, and output types.
1305
+ *
1306
+ * **When to use**
1179
1307
  *
1180
- * This is a binary version of `mergeAll` that merges exactly two layers or one layer with an array of layers.
1181
- * The layers are built concurrently and their outputs are combined.
1308
+ * Use `merge` when composing from an existing layer in a pipeline. Use
1309
+ * `mergeAll` when you already have all layers as separate arguments.
1310
+ *
1311
+ * **Details**
1312
+ *
1313
+ * This is a binary version of `mergeAll` that merges exactly two layers or one
1314
+ * layer with an array of layers. The layers are built concurrently and their
1315
+ * outputs are combined.
1182
1316
  *
1183
1317
  * **Example** (Merging two layers)
1184
1318
  *
@@ -1193,25 +1327,36 @@ export declare const merge: {
1193
1327
  * readonly log: (msg: string) => Effect.Effect<void>
1194
1328
  * }>()("Logger") {}
1195
1329
  *
1196
- * const dbLayer = Layer.succeed(Database)({
1330
+ * const dbLayer = Layer.succeed(Database, {
1197
1331
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
1198
1332
  * })
1199
- * const loggerLayer = Layer.succeed(Logger)({
1333
+ * const loggerLayer = Layer.succeed(Logger, {
1200
1334
  * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
1201
1335
  * })
1202
1336
  *
1203
1337
  * const mergedLayer = Layer.merge(dbLayer, loggerLayer)
1204
1338
  * ```
1205
1339
  *
1340
+ * @see {@link mergeAll} for merging several layers at once
1341
+ *
1206
1342
  * @category zipping
1207
1343
  * @since 2.0.0
1208
1344
  */
1209
1345
  <RIn, E, ROut>(that: Layer<ROut, E, RIn>): <RIn2, E2, ROut2>(self: Layer<ROut2, E2, RIn2>) => Layer<ROut | ROut2, E | E2, RIn | RIn2>;
1210
1346
  /**
1211
- * Merges this layer with the specified layer concurrently, producing a new layer with combined input and output types.
1347
+ * Merges this layer with another layer concurrently, producing a new layer with
1348
+ * combined input, error, and output types.
1349
+ *
1350
+ * **When to use**
1212
1351
  *
1213
- * This is a binary version of `mergeAll` that merges exactly two layers or one layer with an array of layers.
1214
- * The layers are built concurrently and their outputs are combined.
1352
+ * Use `merge` when composing from an existing layer in a pipeline. Use
1353
+ * `mergeAll` when you already have all layers as separate arguments.
1354
+ *
1355
+ * **Details**
1356
+ *
1357
+ * This is a binary version of `mergeAll` that merges exactly two layers or one
1358
+ * layer with an array of layers. The layers are built concurrently and their
1359
+ * outputs are combined.
1215
1360
  *
1216
1361
  * **Example** (Merging two layers)
1217
1362
  *
@@ -1226,25 +1371,36 @@ export declare const merge: {
1226
1371
  * readonly log: (msg: string) => Effect.Effect<void>
1227
1372
  * }>()("Logger") {}
1228
1373
  *
1229
- * const dbLayer = Layer.succeed(Database)({
1374
+ * const dbLayer = Layer.succeed(Database, {
1230
1375
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
1231
1376
  * })
1232
- * const loggerLayer = Layer.succeed(Logger)({
1377
+ * const loggerLayer = Layer.succeed(Logger, {
1233
1378
  * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
1234
1379
  * })
1235
1380
  *
1236
1381
  * const mergedLayer = Layer.merge(dbLayer, loggerLayer)
1237
1382
  * ```
1238
1383
  *
1384
+ * @see {@link mergeAll} for merging several layers at once
1385
+ *
1239
1386
  * @category zipping
1240
1387
  * @since 2.0.0
1241
1388
  */
1242
1389
  <const Layers extends [Any, ...Array<Any>]>(that: Layers): <A, E, R>(self: Layer<A, E, R>) => Layer<A | Success<Layers[number]>, E | Error<Layers[number]>, Services<Layers[number]> | R>;
1243
1390
  /**
1244
- * Merges this layer with the specified layer concurrently, producing a new layer with combined input and output types.
1391
+ * Merges this layer with another layer concurrently, producing a new layer with
1392
+ * combined input, error, and output types.
1245
1393
  *
1246
- * This is a binary version of `mergeAll` that merges exactly two layers or one layer with an array of layers.
1247
- * The layers are built concurrently and their outputs are combined.
1394
+ * **When to use**
1395
+ *
1396
+ * Use `merge` when composing from an existing layer in a pipeline. Use
1397
+ * `mergeAll` when you already have all layers as separate arguments.
1398
+ *
1399
+ * **Details**
1400
+ *
1401
+ * This is a binary version of `mergeAll` that merges exactly two layers or one
1402
+ * layer with an array of layers. The layers are built concurrently and their
1403
+ * outputs are combined.
1248
1404
  *
1249
1405
  * **Example** (Merging two layers)
1250
1406
  *
@@ -1259,25 +1415,36 @@ export declare const merge: {
1259
1415
  * readonly log: (msg: string) => Effect.Effect<void>
1260
1416
  * }>()("Logger") {}
1261
1417
  *
1262
- * const dbLayer = Layer.succeed(Database)({
1418
+ * const dbLayer = Layer.succeed(Database, {
1263
1419
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
1264
1420
  * })
1265
- * const loggerLayer = Layer.succeed(Logger)({
1421
+ * const loggerLayer = Layer.succeed(Logger, {
1266
1422
  * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
1267
1423
  * })
1268
1424
  *
1269
1425
  * const mergedLayer = Layer.merge(dbLayer, loggerLayer)
1270
1426
  * ```
1271
1427
  *
1428
+ * @see {@link mergeAll} for merging several layers at once
1429
+ *
1272
1430
  * @category zipping
1273
1431
  * @since 2.0.0
1274
1432
  */
1275
1433
  <RIn2, E2, ROut2, RIn, E, ROut>(self: Layer<ROut2, E2, RIn2>, that: Layer<ROut, E, RIn>): Layer<ROut | ROut2, E | E2, RIn | RIn2>;
1276
1434
  /**
1277
- * Merges this layer with the specified layer concurrently, producing a new layer with combined input and output types.
1435
+ * Merges this layer with another layer concurrently, producing a new layer with
1436
+ * combined input, error, and output types.
1437
+ *
1438
+ * **When to use**
1439
+ *
1440
+ * Use `merge` when composing from an existing layer in a pipeline. Use
1441
+ * `mergeAll` when you already have all layers as separate arguments.
1278
1442
  *
1279
- * This is a binary version of `mergeAll` that merges exactly two layers or one layer with an array of layers.
1280
- * The layers are built concurrently and their outputs are combined.
1443
+ * **Details**
1444
+ *
1445
+ * This is a binary version of `mergeAll` that merges exactly two layers or one
1446
+ * layer with an array of layers. The layers are built concurrently and their
1447
+ * outputs are combined.
1281
1448
  *
1282
1449
  * **Example** (Merging two layers)
1283
1450
  *
@@ -1292,25 +1459,37 @@ export declare const merge: {
1292
1459
  * readonly log: (msg: string) => Effect.Effect<void>
1293
1460
  * }>()("Logger") {}
1294
1461
  *
1295
- * const dbLayer = Layer.succeed(Database)({
1462
+ * const dbLayer = Layer.succeed(Database, {
1296
1463
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
1297
1464
  * })
1298
- * const loggerLayer = Layer.succeed(Logger)({
1465
+ * const loggerLayer = Layer.succeed(Logger, {
1299
1466
  * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
1300
1467
  * })
1301
1468
  *
1302
1469
  * const mergedLayer = Layer.merge(dbLayer, loggerLayer)
1303
1470
  * ```
1304
1471
  *
1472
+ * @see {@link mergeAll} for merging several layers at once
1473
+ *
1305
1474
  * @category zipping
1306
1475
  * @since 2.0.0
1307
1476
  */
1308
1477
  <A, E, R, const Layers extends [Any, ...Array<Any>]>(self: Layer<A, E, R>, that: Layers): Layer<A | Success<Layers[number]>, E | Error<Layers[number]>, Services<Layers[number]> | R>;
1309
1478
  };
1310
1479
  /**
1311
- * Feeds the output services of this builder into the input of the specified
1312
- * builder, resulting in a new builder with the inputs of this builder as
1313
- * well as any leftover inputs, and the outputs of the specified builder.
1480
+ * Feeds the output services of the dependency layer into the requirements of
1481
+ * this layer, returning a layer that only provides the services from this layer.
1482
+ *
1483
+ * **When to use**
1484
+ *
1485
+ * Use `provide` when the dependency layer is an implementation detail of the
1486
+ * layer being built and should not be exposed to callers. Use `provideMerge`
1487
+ * when callers should also receive the dependency services.
1488
+ *
1489
+ * **Details**
1490
+ *
1491
+ * In `serviceLayer.pipe(Layer.provide(dependencyLayer))`, the dependency layer is
1492
+ * built first and is used to satisfy the requirements of `serviceLayer`.
1314
1493
  *
1315
1494
  * **Example** (Providing layer dependencies)
1316
1495
  *
@@ -1333,16 +1512,16 @@ export declare const merge: {
1333
1512
  * }>()("Logger") {}
1334
1513
  *
1335
1514
  * // Create dependency layers
1336
- * const databaseLayer = Layer.succeed(Database)({
1515
+ * const databaseLayer = Layer.succeed(Database, {
1337
1516
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
1338
1517
  * })
1339
1518
  *
1340
- * const loggerLayer = Layer.succeed(Logger)({
1519
+ * const loggerLayer = Layer.succeed(Logger, {
1341
1520
  * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
1342
1521
  * })
1343
1522
  *
1344
1523
  * // UserService depends on Database and Logger
1345
- * const userServiceLayer = Layer.effect(UserService)(Effect.gen(function*() {
1524
+ * const userServiceLayer = Layer.effect(UserService, Effect.gen(function*() {
1346
1525
  * const database = yield* Database
1347
1526
  * const logger = yield* Logger
1348
1527
  *
@@ -1371,14 +1550,26 @@ export declare const merge: {
1371
1550
  * )
1372
1551
  * ```
1373
1552
  *
1553
+ * @see {@link provideMerge} for retaining the dependency services
1554
+ *
1374
1555
  * @category utils
1375
1556
  * @since 2.0.0
1376
1557
  */
1377
1558
  export declare const provide: {
1378
1559
  /**
1379
- * Feeds the output services of this builder into the input of the specified
1380
- * builder, resulting in a new builder with the inputs of this builder as
1381
- * well as any leftover inputs, and the outputs of the specified builder.
1560
+ * Feeds the output services of the dependency layer into the requirements of
1561
+ * this layer, returning a layer that only provides the services from this layer.
1562
+ *
1563
+ * **When to use**
1564
+ *
1565
+ * Use `provide` when the dependency layer is an implementation detail of the
1566
+ * layer being built and should not be exposed to callers. Use `provideMerge`
1567
+ * when callers should also receive the dependency services.
1568
+ *
1569
+ * **Details**
1570
+ *
1571
+ * In `serviceLayer.pipe(Layer.provide(dependencyLayer))`, the dependency layer is
1572
+ * built first and is used to satisfy the requirements of `serviceLayer`.
1382
1573
  *
1383
1574
  * **Example** (Providing layer dependencies)
1384
1575
  *
@@ -1401,16 +1592,16 @@ export declare const provide: {
1401
1592
  * }>()("Logger") {}
1402
1593
  *
1403
1594
  * // Create dependency layers
1404
- * const databaseLayer = Layer.succeed(Database)({
1595
+ * const databaseLayer = Layer.succeed(Database, {
1405
1596
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
1406
1597
  * })
1407
1598
  *
1408
- * const loggerLayer = Layer.succeed(Logger)({
1599
+ * const loggerLayer = Layer.succeed(Logger, {
1409
1600
  * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
1410
1601
  * })
1411
1602
  *
1412
1603
  * // UserService depends on Database and Logger
1413
- * const userServiceLayer = Layer.effect(UserService)(Effect.gen(function*() {
1604
+ * const userServiceLayer = Layer.effect(UserService, Effect.gen(function*() {
1414
1605
  * const database = yield* Database
1415
1606
  * const logger = yield* Logger
1416
1607
  *
@@ -1439,14 +1630,26 @@ export declare const provide: {
1439
1630
  * )
1440
1631
  * ```
1441
1632
  *
1633
+ * @see {@link provideMerge} for retaining the dependency services
1634
+ *
1442
1635
  * @category utils
1443
1636
  * @since 2.0.0
1444
1637
  */
1445
1638
  <RIn, E, ROut>(that: Layer<ROut, E, RIn>): <RIn2, E2, ROut2>(self: Layer<ROut2, E2, RIn2>) => Layer<ROut2, E | E2, RIn | Exclude<RIn2, ROut>>;
1446
1639
  /**
1447
- * Feeds the output services of this builder into the input of the specified
1448
- * builder, resulting in a new builder with the inputs of this builder as
1449
- * well as any leftover inputs, and the outputs of the specified builder.
1640
+ * Feeds the output services of the dependency layer into the requirements of
1641
+ * this layer, returning a layer that only provides the services from this layer.
1642
+ *
1643
+ * **When to use**
1644
+ *
1645
+ * Use `provide` when the dependency layer is an implementation detail of the
1646
+ * layer being built and should not be exposed to callers. Use `provideMerge`
1647
+ * when callers should also receive the dependency services.
1648
+ *
1649
+ * **Details**
1650
+ *
1651
+ * In `serviceLayer.pipe(Layer.provide(dependencyLayer))`, the dependency layer is
1652
+ * built first and is used to satisfy the requirements of `serviceLayer`.
1450
1653
  *
1451
1654
  * **Example** (Providing layer dependencies)
1452
1655
  *
@@ -1469,16 +1672,16 @@ export declare const provide: {
1469
1672
  * }>()("Logger") {}
1470
1673
  *
1471
1674
  * // Create dependency layers
1472
- * const databaseLayer = Layer.succeed(Database)({
1675
+ * const databaseLayer = Layer.succeed(Database, {
1473
1676
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
1474
1677
  * })
1475
1678
  *
1476
- * const loggerLayer = Layer.succeed(Logger)({
1679
+ * const loggerLayer = Layer.succeed(Logger, {
1477
1680
  * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
1478
1681
  * })
1479
1682
  *
1480
1683
  * // UserService depends on Database and Logger
1481
- * const userServiceLayer = Layer.effect(UserService)(Effect.gen(function*() {
1684
+ * const userServiceLayer = Layer.effect(UserService, Effect.gen(function*() {
1482
1685
  * const database = yield* Database
1483
1686
  * const logger = yield* Logger
1484
1687
  *
@@ -1507,14 +1710,26 @@ export declare const provide: {
1507
1710
  * )
1508
1711
  * ```
1509
1712
  *
1713
+ * @see {@link provideMerge} for retaining the dependency services
1714
+ *
1510
1715
  * @category utils
1511
1716
  * @since 2.0.0
1512
1717
  */
1513
1718
  <const Layers extends [Any, ...Array<Any>]>(that: Layers): <A, E, R>(self: Layer<A, E, R>) => Layer<A, E | Error<Layers[number]>, Services<Layers[number]> | Exclude<R, Success<Layers[number]>>>;
1514
1719
  /**
1515
- * Feeds the output services of this builder into the input of the specified
1516
- * builder, resulting in a new builder with the inputs of this builder as
1517
- * well as any leftover inputs, and the outputs of the specified builder.
1720
+ * Feeds the output services of the dependency layer into the requirements of
1721
+ * this layer, returning a layer that only provides the services from this layer.
1722
+ *
1723
+ * **When to use**
1724
+ *
1725
+ * Use `provide` when the dependency layer is an implementation detail of the
1726
+ * layer being built and should not be exposed to callers. Use `provideMerge`
1727
+ * when callers should also receive the dependency services.
1728
+ *
1729
+ * **Details**
1730
+ *
1731
+ * In `serviceLayer.pipe(Layer.provide(dependencyLayer))`, the dependency layer is
1732
+ * built first and is used to satisfy the requirements of `serviceLayer`.
1518
1733
  *
1519
1734
  * **Example** (Providing layer dependencies)
1520
1735
  *
@@ -1537,16 +1752,16 @@ export declare const provide: {
1537
1752
  * }>()("Logger") {}
1538
1753
  *
1539
1754
  * // Create dependency layers
1540
- * const databaseLayer = Layer.succeed(Database)({
1755
+ * const databaseLayer = Layer.succeed(Database, {
1541
1756
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
1542
1757
  * })
1543
1758
  *
1544
- * const loggerLayer = Layer.succeed(Logger)({
1759
+ * const loggerLayer = Layer.succeed(Logger, {
1545
1760
  * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
1546
1761
  * })
1547
1762
  *
1548
1763
  * // UserService depends on Database and Logger
1549
- * const userServiceLayer = Layer.effect(UserService)(Effect.gen(function*() {
1764
+ * const userServiceLayer = Layer.effect(UserService, Effect.gen(function*() {
1550
1765
  * const database = yield* Database
1551
1766
  * const logger = yield* Logger
1552
1767
  *
@@ -1575,14 +1790,26 @@ export declare const provide: {
1575
1790
  * )
1576
1791
  * ```
1577
1792
  *
1793
+ * @see {@link provideMerge} for retaining the dependency services
1794
+ *
1578
1795
  * @category utils
1579
1796
  * @since 2.0.0
1580
1797
  */
1581
1798
  <RIn2, E2, ROut2, RIn, E, ROut>(self: Layer<ROut2, E2, RIn2>, that: Layer<ROut, E, RIn>): Layer<ROut2, E | E2, RIn | Exclude<RIn2, ROut>>;
1582
1799
  /**
1583
- * Feeds the output services of this builder into the input of the specified
1584
- * builder, resulting in a new builder with the inputs of this builder as
1585
- * well as any leftover inputs, and the outputs of the specified builder.
1800
+ * Feeds the output services of the dependency layer into the requirements of
1801
+ * this layer, returning a layer that only provides the services from this layer.
1802
+ *
1803
+ * **When to use**
1804
+ *
1805
+ * Use `provide` when the dependency layer is an implementation detail of the
1806
+ * layer being built and should not be exposed to callers. Use `provideMerge`
1807
+ * when callers should also receive the dependency services.
1808
+ *
1809
+ * **Details**
1810
+ *
1811
+ * In `serviceLayer.pipe(Layer.provide(dependencyLayer))`, the dependency layer is
1812
+ * built first and is used to satisfy the requirements of `serviceLayer`.
1586
1813
  *
1587
1814
  * **Example** (Providing layer dependencies)
1588
1815
  *
@@ -1605,16 +1832,16 @@ export declare const provide: {
1605
1832
  * }>()("Logger") {}
1606
1833
  *
1607
1834
  * // Create dependency layers
1608
- * const databaseLayer = Layer.succeed(Database)({
1835
+ * const databaseLayer = Layer.succeed(Database, {
1609
1836
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
1610
1837
  * })
1611
1838
  *
1612
- * const loggerLayer = Layer.succeed(Logger)({
1839
+ * const loggerLayer = Layer.succeed(Logger, {
1613
1840
  * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
1614
1841
  * })
1615
1842
  *
1616
1843
  * // UserService depends on Database and Logger
1617
- * const userServiceLayer = Layer.effect(UserService)(Effect.gen(function*() {
1844
+ * const userServiceLayer = Layer.effect(UserService, Effect.gen(function*() {
1618
1845
  * const database = yield* Database
1619
1846
  * const logger = yield* Logger
1620
1847
  *
@@ -1643,15 +1870,23 @@ export declare const provide: {
1643
1870
  * )
1644
1871
  * ```
1645
1872
  *
1873
+ * @see {@link provideMerge} for retaining the dependency services
1874
+ *
1646
1875
  * @category utils
1647
1876
  * @since 2.0.0
1648
1877
  */
1649
1878
  <A, E, R, const Layers extends [Any, ...Array<Any>]>(self: Layer<A, E, R>, that: Layers): Layer<A, E | Error<Layers[number]>, Services<Layers[number]> | Exclude<R, Success<Layers[number]>>>;
1650
1879
  };
1651
1880
  /**
1652
- * Feeds the output services of this layer into the input of the specified
1653
- * layer, resulting in a new layer with the inputs of this layer, and the
1654
- * outputs of both layers.
1881
+ * Feeds the output services of the dependency layer into the requirements of
1882
+ * this layer, returning a layer that provides both sets of services.
1883
+ *
1884
+ * **When to use**
1885
+ *
1886
+ * Use this when callers need access to both the service being built and the
1887
+ * dependency used to build it, such as a health check that needs both a
1888
+ * repository and its database. Prefer `provide` when the dependency should stay
1889
+ * private.
1655
1890
  *
1656
1891
  * **Example** (Providing dependencies while retaining services)
1657
1892
  *
@@ -1674,16 +1909,16 @@ export declare const provide: {
1674
1909
  * }>()("UserService") {}
1675
1910
  *
1676
1911
  * // Create dependency layers
1677
- * const databaseLayer = Layer.succeed(Database)({
1912
+ * const databaseLayer = Layer.succeed(Database, {
1678
1913
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
1679
1914
  * })
1680
1915
  *
1681
- * const loggerLayer = Layer.succeed(Logger)({
1916
+ * const loggerLayer = Layer.succeed(Logger, {
1682
1917
  * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
1683
1918
  * })
1684
1919
  *
1685
1920
  * // UserService depends on Database and Logger
1686
- * const userServiceLayer = Layer.effect(UserService)(Effect.gen(function*() {
1921
+ * const userServiceLayer = Layer.effect(UserService, Effect.gen(function*() {
1687
1922
  * const database = yield* Database
1688
1923
  * const logger = yield* Logger
1689
1924
  *
@@ -1718,14 +1953,22 @@ export declare const provide: {
1718
1953
  * )
1719
1954
  * ```
1720
1955
  *
1956
+ * @see {@link provide} for keeping dependency services private
1957
+ *
1721
1958
  * @category utils
1722
1959
  * @since 2.0.0
1723
1960
  */
1724
1961
  export declare const provideMerge: {
1725
1962
  /**
1726
- * Feeds the output services of this layer into the input of the specified
1727
- * layer, resulting in a new layer with the inputs of this layer, and the
1728
- * outputs of both layers.
1963
+ * Feeds the output services of the dependency layer into the requirements of
1964
+ * this layer, returning a layer that provides both sets of services.
1965
+ *
1966
+ * **When to use**
1967
+ *
1968
+ * Use this when callers need access to both the service being built and the
1969
+ * dependency used to build it, such as a health check that needs both a
1970
+ * repository and its database. Prefer `provide` when the dependency should stay
1971
+ * private.
1729
1972
  *
1730
1973
  * **Example** (Providing dependencies while retaining services)
1731
1974
  *
@@ -1748,16 +1991,16 @@ export declare const provideMerge: {
1748
1991
  * }>()("UserService") {}
1749
1992
  *
1750
1993
  * // Create dependency layers
1751
- * const databaseLayer = Layer.succeed(Database)({
1994
+ * const databaseLayer = Layer.succeed(Database, {
1752
1995
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
1753
1996
  * })
1754
1997
  *
1755
- * const loggerLayer = Layer.succeed(Logger)({
1998
+ * const loggerLayer = Layer.succeed(Logger, {
1756
1999
  * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
1757
2000
  * })
1758
2001
  *
1759
2002
  * // UserService depends on Database and Logger
1760
- * const userServiceLayer = Layer.effect(UserService)(Effect.gen(function*() {
2003
+ * const userServiceLayer = Layer.effect(UserService, Effect.gen(function*() {
1761
2004
  * const database = yield* Database
1762
2005
  * const logger = yield* Logger
1763
2006
  *
@@ -1792,14 +2035,22 @@ export declare const provideMerge: {
1792
2035
  * )
1793
2036
  * ```
1794
2037
  *
2038
+ * @see {@link provide} for keeping dependency services private
2039
+ *
1795
2040
  * @category utils
1796
2041
  * @since 2.0.0
1797
2042
  */
1798
2043
  <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>>;
1799
2044
  /**
1800
- * Feeds the output services of this layer into the input of the specified
1801
- * layer, resulting in a new layer with the inputs of this layer, and the
1802
- * outputs of both layers.
2045
+ * Feeds the output services of the dependency layer into the requirements of
2046
+ * this layer, returning a layer that provides both sets of services.
2047
+ *
2048
+ * **When to use**
2049
+ *
2050
+ * Use this when callers need access to both the service being built and the
2051
+ * dependency used to build it, such as a health check that needs both a
2052
+ * repository and its database. Prefer `provide` when the dependency should stay
2053
+ * private.
1803
2054
  *
1804
2055
  * **Example** (Providing dependencies while retaining services)
1805
2056
  *
@@ -1822,16 +2073,16 @@ export declare const provideMerge: {
1822
2073
  * }>()("UserService") {}
1823
2074
  *
1824
2075
  * // Create dependency layers
1825
- * const databaseLayer = Layer.succeed(Database)({
2076
+ * const databaseLayer = Layer.succeed(Database, {
1826
2077
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
1827
2078
  * })
1828
2079
  *
1829
- * const loggerLayer = Layer.succeed(Logger)({
2080
+ * const loggerLayer = Layer.succeed(Logger, {
1830
2081
  * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
1831
2082
  * })
1832
2083
  *
1833
2084
  * // UserService depends on Database and Logger
1834
- * const userServiceLayer = Layer.effect(UserService)(Effect.gen(function*() {
2085
+ * const userServiceLayer = Layer.effect(UserService, Effect.gen(function*() {
1835
2086
  * const database = yield* Database
1836
2087
  * const logger = yield* Logger
1837
2088
  *
@@ -1866,14 +2117,22 @@ export declare const provideMerge: {
1866
2117
  * )
1867
2118
  * ```
1868
2119
  *
2120
+ * @see {@link provide} for keeping dependency services private
2121
+ *
1869
2122
  * @category utils
1870
2123
  * @since 2.0.0
1871
2124
  */
1872
2125
  <const Layers extends [Any, ...Array<Any>]>(that: Layers): <A, E, R>(self: Layer<A, E, R>) => Layer<A | Success<Layers[number]>, E | Error<Layers[number]>, Services<Layers[number]> | Exclude<R, Success<Layers[number]>>>;
1873
2126
  /**
1874
- * Feeds the output services of this layer into the input of the specified
1875
- * layer, resulting in a new layer with the inputs of this layer, and the
1876
- * outputs of both layers.
2127
+ * Feeds the output services of the dependency layer into the requirements of
2128
+ * this layer, returning a layer that provides both sets of services.
2129
+ *
2130
+ * **When to use**
2131
+ *
2132
+ * Use this when callers need access to both the service being built and the
2133
+ * dependency used to build it, such as a health check that needs both a
2134
+ * repository and its database. Prefer `provide` when the dependency should stay
2135
+ * private.
1877
2136
  *
1878
2137
  * **Example** (Providing dependencies while retaining services)
1879
2138
  *
@@ -1896,16 +2155,16 @@ export declare const provideMerge: {
1896
2155
  * }>()("UserService") {}
1897
2156
  *
1898
2157
  * // Create dependency layers
1899
- * const databaseLayer = Layer.succeed(Database)({
2158
+ * const databaseLayer = Layer.succeed(Database, {
1900
2159
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
1901
2160
  * })
1902
2161
  *
1903
- * const loggerLayer = Layer.succeed(Logger)({
2162
+ * const loggerLayer = Layer.succeed(Logger, {
1904
2163
  * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
1905
2164
  * })
1906
2165
  *
1907
2166
  * // UserService depends on Database and Logger
1908
- * const userServiceLayer = Layer.effect(UserService)(Effect.gen(function*() {
2167
+ * const userServiceLayer = Layer.effect(UserService, Effect.gen(function*() {
1909
2168
  * const database = yield* Database
1910
2169
  * const logger = yield* Logger
1911
2170
  *
@@ -1940,14 +2199,22 @@ export declare const provideMerge: {
1940
2199
  * )
1941
2200
  * ```
1942
2201
  *
2202
+ * @see {@link provide} for keeping dependency services private
2203
+ *
1943
2204
  * @category utils
1944
2205
  * @since 2.0.0
1945
2206
  */
1946
2207
  <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>>;
1947
2208
  /**
1948
- * Feeds the output services of this layer into the input of the specified
1949
- * layer, resulting in a new layer with the inputs of this layer, and the
1950
- * outputs of both layers.
2209
+ * Feeds the output services of the dependency layer into the requirements of
2210
+ * this layer, returning a layer that provides both sets of services.
2211
+ *
2212
+ * **When to use**
2213
+ *
2214
+ * Use this when callers need access to both the service being built and the
2215
+ * dependency used to build it, such as a health check that needs both a
2216
+ * repository and its database. Prefer `provide` when the dependency should stay
2217
+ * private.
1951
2218
  *
1952
2219
  * **Example** (Providing dependencies while retaining services)
1953
2220
  *
@@ -1970,16 +2237,16 @@ export declare const provideMerge: {
1970
2237
  * }>()("UserService") {}
1971
2238
  *
1972
2239
  * // Create dependency layers
1973
- * const databaseLayer = Layer.succeed(Database)({
2240
+ * const databaseLayer = Layer.succeed(Database, {
1974
2241
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
1975
2242
  * })
1976
2243
  *
1977
- * const loggerLayer = Layer.succeed(Logger)({
2244
+ * const loggerLayer = Layer.succeed(Logger, {
1978
2245
  * log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
1979
2246
  * })
1980
2247
  *
1981
2248
  * // UserService depends on Database and Logger
1982
- * const userServiceLayer = Layer.effect(UserService)(Effect.gen(function*() {
2249
+ * const userServiceLayer = Layer.effect(UserService, Effect.gen(function*() {
1983
2250
  * const database = yield* Database
1984
2251
  * const logger = yield* Logger
1985
2252
  *
@@ -2014,6 +2281,8 @@ export declare const provideMerge: {
2014
2281
  * )
2015
2282
  * ```
2016
2283
  *
2284
+ * @see {@link provide} for keeping dependency services private
2285
+ *
2017
2286
  * @category utils
2018
2287
  * @since 2.0.0
2019
2288
  */
@@ -2041,7 +2310,7 @@ export declare const provideMerge: {
2041
2310
  * }>()("Logger") {}
2042
2311
  *
2043
2312
  * // Base config layer
2044
- * const configLayer = Layer.succeed(Config)({
2313
+ * const configLayer = Layer.succeed(Config, {
2045
2314
  * dbUrl: "postgres://localhost:5432/mydb",
2046
2315
  * logLevel: "debug"
2047
2316
  * })
@@ -2052,7 +2321,7 @@ export declare const provideMerge: {
2052
2321
  * const config = Context.get(context, Config)
2053
2322
  *
2054
2323
  * // Create database layer based on config
2055
- * const dbLayer = Layer.succeed(Database)({
2324
+ * const dbLayer = Layer.succeed(Database, {
2056
2325
  * query: Effect.fn("Database.query")((sql: string) =>
2057
2326
  * Effect.succeed(
2058
2327
  * `Querying ${config.dbUrl}: ${sql}`
@@ -2060,7 +2329,7 @@ export declare const provideMerge: {
2060
2329
  * })
2061
2330
  *
2062
2331
  * // Create logger layer based on config
2063
- * const loggerLayer = Layer.succeed(Logger)({
2332
+ * const loggerLayer = Layer.succeed(Logger, {
2064
2333
  * log: Effect.fn("Logger.log")((msg: string) =>
2065
2334
  * config.logLevel === "debug"
2066
2335
  * ? Effect.sync(() => console.log(`[DEBUG] ${msg}`))
@@ -2113,7 +2382,7 @@ export declare const flatMap: {
2113
2382
  * }>()("Logger") {}
2114
2383
  *
2115
2384
  * // Base config layer
2116
- * const configLayer = Layer.succeed(Config)({
2385
+ * const configLayer = Layer.succeed(Config, {
2117
2386
  * dbUrl: "postgres://localhost:5432/mydb",
2118
2387
  * logLevel: "debug"
2119
2388
  * })
@@ -2124,7 +2393,7 @@ export declare const flatMap: {
2124
2393
  * const config = Context.get(context, Config)
2125
2394
  *
2126
2395
  * // Create database layer based on config
2127
- * const dbLayer = Layer.succeed(Database)({
2396
+ * const dbLayer = Layer.succeed(Database, {
2128
2397
  * query: Effect.fn("Database.query")((sql: string) =>
2129
2398
  * Effect.succeed(
2130
2399
  * `Querying ${config.dbUrl}: ${sql}`
@@ -2132,7 +2401,7 @@ export declare const flatMap: {
2132
2401
  * })
2133
2402
  *
2134
2403
  * // Create logger layer based on config
2135
- * const loggerLayer = Layer.succeed(Logger)({
2404
+ * const loggerLayer = Layer.succeed(Logger, {
2136
2405
  * log: Effect.fn("Logger.log")((msg: string) =>
2137
2406
  * config.logLevel === "debug"
2138
2407
  * ? Effect.sync(() => console.log(`[DEBUG] ${msg}`))
@@ -2185,7 +2454,7 @@ export declare const flatMap: {
2185
2454
  * }>()("Logger") {}
2186
2455
  *
2187
2456
  * // Base config layer
2188
- * const configLayer = Layer.succeed(Config)({
2457
+ * const configLayer = Layer.succeed(Config, {
2189
2458
  * dbUrl: "postgres://localhost:5432/mydb",
2190
2459
  * logLevel: "debug"
2191
2460
  * })
@@ -2196,7 +2465,7 @@ export declare const flatMap: {
2196
2465
  * const config = Context.get(context, Config)
2197
2466
  *
2198
2467
  * // Create database layer based on config
2199
- * const dbLayer = Layer.succeed(Database)({
2468
+ * const dbLayer = Layer.succeed(Database, {
2200
2469
  * query: Effect.fn("Database.query")((sql: string) =>
2201
2470
  * Effect.succeed(
2202
2471
  * `Querying ${config.dbUrl}: ${sql}`
@@ -2204,7 +2473,7 @@ export declare const flatMap: {
2204
2473
  * })
2205
2474
  *
2206
2475
  * // Create logger layer based on config
2207
- * const loggerLayer = Layer.succeed(Logger)({
2476
+ * const loggerLayer = Layer.succeed(Logger, {
2208
2477
  * log: Effect.fn("Logger.log")((msg: string) =>
2209
2478
  * config.logLevel === "debug"
2210
2479
  * ? Effect.sync(() => console.log(`[DEBUG] ${msg}`))
@@ -2239,6 +2508,11 @@ export declare const flatMap: {
2239
2508
  /**
2240
2509
  * Performs the specified effect if this layer succeeds.
2241
2510
  *
2511
+ * **Details**
2512
+ *
2513
+ * The callback receives the services produced by this layer. Its result is
2514
+ * discarded, and the original layer output is preserved.
2515
+ *
2242
2516
  * @category sequencing
2243
2517
  * @since 2.0.0
2244
2518
  */
@@ -2246,6 +2520,11 @@ export declare const tap: {
2246
2520
  /**
2247
2521
  * Performs the specified effect if this layer succeeds.
2248
2522
  *
2523
+ * **Details**
2524
+ *
2525
+ * The callback receives the services produced by this layer. Its result is
2526
+ * discarded, and the original layer output is preserved.
2527
+ *
2249
2528
  * @category sequencing
2250
2529
  * @since 2.0.0
2251
2530
  */
@@ -2253,6 +2532,11 @@ export declare const tap: {
2253
2532
  /**
2254
2533
  * Performs the specified effect if this layer succeeds.
2255
2534
  *
2535
+ * **Details**
2536
+ *
2537
+ * The callback receives the services produced by this layer. Its result is
2538
+ * discarded, and the original layer output is preserved.
2539
+ *
2256
2540
  * @category sequencing
2257
2541
  * @since 2.0.0
2258
2542
  */
@@ -2261,6 +2545,12 @@ export declare const tap: {
2261
2545
  /**
2262
2546
  * Performs the specified effect if this layer fails.
2263
2547
  *
2548
+ * **Details**
2549
+ *
2550
+ * The callback receives the typed error. If the callback succeeds, the layer
2551
+ * still fails with the original error; if the callback fails, that failure is
2552
+ * added to the layer's error type.
2553
+ *
2264
2554
  * @category sequencing
2265
2555
  * @since 2.0.0
2266
2556
  */
@@ -2268,6 +2558,12 @@ export declare const tapError: {
2268
2558
  /**
2269
2559
  * Performs the specified effect if this layer fails.
2270
2560
  *
2561
+ * **Details**
2562
+ *
2563
+ * The callback receives the typed error. If the callback succeeds, the layer
2564
+ * still fails with the original error; if the callback fails, that failure is
2565
+ * added to the layer's error type.
2566
+ *
2271
2567
  * @category sequencing
2272
2568
  * @since 2.0.0
2273
2569
  */
@@ -2275,6 +2571,12 @@ export declare const tapError: {
2275
2571
  /**
2276
2572
  * Performs the specified effect if this layer fails.
2277
2573
  *
2574
+ * **Details**
2575
+ *
2576
+ * The callback receives the typed error. If the callback succeeds, the layer
2577
+ * still fails with the original error; if the callback fails, that failure is
2578
+ * added to the layer's error type.
2579
+ *
2278
2580
  * @category sequencing
2279
2581
  * @since 2.0.0
2280
2582
  */
@@ -2284,6 +2586,7 @@ export declare const tapError: {
2284
2586
  * Performs the specified effect when this layer fails with any cause.
2285
2587
  *
2286
2588
  * **Details**
2589
+ *
2287
2590
  * The callback receives the layer's `Cause`, so it can inspect typed errors,
2288
2591
  * defects, and interruption information. If the callback succeeds, the layer
2289
2592
  * fails again with the original cause; if the callback fails, that failure is
@@ -2297,6 +2600,7 @@ export declare const tapCause: {
2297
2600
  * Performs the specified effect when this layer fails with any cause.
2298
2601
  *
2299
2602
  * **Details**
2603
+ *
2300
2604
  * The callback receives the layer's `Cause`, so it can inspect typed errors,
2301
2605
  * defects, and interruption information. If the callback succeeds, the layer
2302
2606
  * fails again with the original cause; if the callback fails, that failure is
@@ -2310,6 +2614,7 @@ export declare const tapCause: {
2310
2614
  * Performs the specified effect when this layer fails with any cause.
2311
2615
  *
2312
2616
  * **Details**
2617
+ *
2313
2618
  * The callback receives the layer's `Cause`, so it can inspect typed errors,
2314
2619
  * defects, and interruption information. If the callback succeeds, the layer
2315
2620
  * fails again with the original cause; if the callback fails, that failure is
@@ -2321,8 +2626,13 @@ export declare const tapCause: {
2321
2626
  <RIn, E, XE extends E, ROut, RIn2, E2, X>(self: Layer<ROut, E, RIn>, f: (cause: Cause.Cause<XE>) => Effect<X, E2, RIn2>): Layer<ROut, E | E2, RIn | Exclude<RIn2, Scope.Scope>>;
2322
2627
  };
2323
2628
  /**
2324
- * Translates effect failure into death of the fiber, making all failures
2325
- * unchecked and not a part of the type of the layer.
2629
+ * Converts layer construction failures into defects, removing them from the
2630
+ * layer's error type.
2631
+ *
2632
+ * **Details**
2633
+ *
2634
+ * Use this only when failures should be treated as unrecoverable defects rather
2635
+ * than typed errors that callers can handle.
2326
2636
  *
2327
2637
  * **Example** (Converting layer failures to defects)
2328
2638
  *
@@ -2338,7 +2648,7 @@ export declare const tapCause: {
2338
2648
  * }>()("Database") {}
2339
2649
  *
2340
2650
  * // Layer that can fail during construction
2341
- * const flakyDatabaseLayer = Layer.effect(Database)(Effect.gen(function*() {
2651
+ * const flakyDatabaseLayer = Layer.effect(Database, Effect.gen(function*() {
2342
2652
  * console.log("connecting")
2343
2653
  * return yield* new DatabaseError({ message: "Connection failed" })
2344
2654
  * }))
@@ -2368,7 +2678,16 @@ declare const catch_: {
2368
2678
  };
2369
2679
  export {
2370
2680
  /**
2371
- * Recovers from all errors.
2681
+ * Recovers from all typed errors by switching to another layer.
2682
+ *
2683
+ * **When to use**
2684
+ *
2685
+ * Use `catch` when every typed construction error should use the same recovery
2686
+ * path. Use `catchTag` to recover from specific tagged errors, and `catchCause`
2687
+ * when recovery needs the full failure cause.
2688
+ *
2689
+ * @see {@link catchTag} for recovering from specific tagged errors
2690
+ * @see {@link catchCause} for recovering with access to the full cause
2372
2691
  *
2373
2692
  * @category error handling
2374
2693
  * @since 4.0.0
@@ -2377,6 +2696,12 @@ catch_ as catch };
2377
2696
  /**
2378
2697
  * Recovers from specific tagged errors.
2379
2698
  *
2699
+ * **When to use**
2700
+ *
2701
+ * Use `catchTag` when only some tagged construction errors should be recovered.
2702
+ * Use `catchCause` when recovery depends on defects, interruption, or other
2703
+ * cause information.
2704
+ *
2380
2705
  * **Example** (Recovering from tagged layer errors)
2381
2706
  *
2382
2707
  * ```ts
@@ -2388,15 +2713,17 @@ catch_ as catch };
2388
2713
  * readonly apiUrl: string
2389
2714
  * }>()("Config") {}
2390
2715
  *
2391
- * const configLayer = Layer.effect(Config)(Effect.fail(new ConfigError()))
2716
+ * const configLayer = Layer.effect(Config, Effect.fail(new ConfigError()))
2392
2717
  *
2393
- * const fallbackLayer = Layer.succeed(Config)({ apiUrl: "http://localhost" })
2718
+ * const fallbackLayer = Layer.succeed(Config, { apiUrl: "http://localhost" })
2394
2719
  *
2395
2720
  * const recovered = configLayer.pipe(
2396
2721
  * Layer.catchTag("ConfigError", () => fallbackLayer)
2397
2722
  * )
2398
2723
  * ```
2399
2724
  *
2725
+ * @see {@link catchCause} for recovering with access to the full cause
2726
+ *
2400
2727
  * @category error handling
2401
2728
  * @since 4.0.0
2402
2729
  */
@@ -2404,6 +2731,12 @@ export declare const catchTag: {
2404
2731
  /**
2405
2732
  * Recovers from specific tagged errors.
2406
2733
  *
2734
+ * **When to use**
2735
+ *
2736
+ * Use `catchTag` when only some tagged construction errors should be recovered.
2737
+ * Use `catchCause` when recovery depends on defects, interruption, or other
2738
+ * cause information.
2739
+ *
2407
2740
  * **Example** (Recovering from tagged layer errors)
2408
2741
  *
2409
2742
  * ```ts
@@ -2415,15 +2748,17 @@ export declare const catchTag: {
2415
2748
  * readonly apiUrl: string
2416
2749
  * }>()("Config") {}
2417
2750
  *
2418
- * const configLayer = Layer.effect(Config)(Effect.fail(new ConfigError()))
2751
+ * const configLayer = Layer.effect(Config, Effect.fail(new ConfigError()))
2419
2752
  *
2420
- * const fallbackLayer = Layer.succeed(Config)({ apiUrl: "http://localhost" })
2753
+ * const fallbackLayer = Layer.succeed(Config, { apiUrl: "http://localhost" })
2421
2754
  *
2422
2755
  * const recovered = configLayer.pipe(
2423
2756
  * Layer.catchTag("ConfigError", () => fallbackLayer)
2424
2757
  * )
2425
2758
  * ```
2426
2759
  *
2760
+ * @see {@link catchCause} for recovering with access to the full cause
2761
+ *
2427
2762
  * @category error handling
2428
2763
  * @since 4.0.0
2429
2764
  */
@@ -2431,6 +2766,12 @@ export declare const catchTag: {
2431
2766
  /**
2432
2767
  * Recovers from specific tagged errors.
2433
2768
  *
2769
+ * **When to use**
2770
+ *
2771
+ * Use `catchTag` when only some tagged construction errors should be recovered.
2772
+ * Use `catchCause` when recovery depends on defects, interruption, or other
2773
+ * cause information.
2774
+ *
2434
2775
  * **Example** (Recovering from tagged layer errors)
2435
2776
  *
2436
2777
  * ```ts
@@ -2442,15 +2783,17 @@ export declare const catchTag: {
2442
2783
  * readonly apiUrl: string
2443
2784
  * }>()("Config") {}
2444
2785
  *
2445
- * const configLayer = Layer.effect(Config)(Effect.fail(new ConfigError()))
2786
+ * const configLayer = Layer.effect(Config, Effect.fail(new ConfigError()))
2446
2787
  *
2447
- * const fallbackLayer = Layer.succeed(Config)({ apiUrl: "http://localhost" })
2788
+ * const fallbackLayer = Layer.succeed(Config, { apiUrl: "http://localhost" })
2448
2789
  *
2449
2790
  * const recovered = configLayer.pipe(
2450
2791
  * Layer.catchTag("ConfigError", () => fallbackLayer)
2451
2792
  * )
2452
2793
  * ```
2453
2794
  *
2795
+ * @see {@link catchCause} for recovering with access to the full cause
2796
+ *
2454
2797
  * @category error handling
2455
2798
  * @since 4.0.0
2456
2799
  */
@@ -2459,10 +2802,18 @@ export declare const catchTag: {
2459
2802
  /**
2460
2803
  * Recovers from any failure cause by switching to another layer.
2461
2804
  *
2805
+ * **When to use**
2806
+ *
2807
+ * Use `catchCause` when recovery needs more than the typed error, such as
2808
+ * defects or interruption information. Use `catchTag` when recovery only needs
2809
+ * to match specific tagged errors.
2810
+ *
2462
2811
  * **Details**
2812
+ *
2463
2813
  * The handler receives the full `Cause` of the failed layer, including typed
2464
- * errors, defects, and interruption information, and returns the fallback layer
2465
- * to build instead.
2814
+ * errors, unexpected defects, and interruption information, and returns the
2815
+ * fallback layer to build instead. Finalizers for resources acquired by the
2816
+ * failed layer are still run before the fallback layer is acquired.
2466
2817
  *
2467
2818
  * **Example** (Recovering from layer failures by cause)
2468
2819
  *
@@ -2477,13 +2828,13 @@ export declare const catchTag: {
2477
2828
  * readonly query: (sql: string) => Effect.Effect<string>
2478
2829
  * }>()("Database") {}
2479
2830
  *
2480
- * const primaryDatabaseLayer = Layer.effect(Database)(
2831
+ * const primaryDatabaseLayer = Layer.effect(Database,
2481
2832
  * Effect.fail(new DatabaseError({ message: "Primary DB unreachable" }))
2482
2833
  * )
2483
2834
  *
2484
2835
  * const databaseWithFallback = primaryDatabaseLayer.pipe(
2485
2836
  * Layer.catchCause(() => {
2486
- * return Layer.succeed(Database)({
2837
+ * return Layer.succeed(Database, {
2487
2838
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Memory: ${sql}`))
2488
2839
  * })
2489
2840
  * })
@@ -2501,6 +2852,8 @@ export declare const catchTag: {
2501
2852
  * // Memory: SELECT * FROM users
2502
2853
  * ```
2503
2854
  *
2855
+ * @see {@link catchTag} for recovering from specific tagged errors
2856
+ *
2504
2857
  * @category error handling
2505
2858
  * @since 4.0.0
2506
2859
  */
@@ -2508,10 +2861,18 @@ export declare const catchCause: {
2508
2861
  /**
2509
2862
  * Recovers from any failure cause by switching to another layer.
2510
2863
  *
2864
+ * **When to use**
2865
+ *
2866
+ * Use `catchCause` when recovery needs more than the typed error, such as
2867
+ * defects or interruption information. Use `catchTag` when recovery only needs
2868
+ * to match specific tagged errors.
2869
+ *
2511
2870
  * **Details**
2871
+ *
2512
2872
  * The handler receives the full `Cause` of the failed layer, including typed
2513
- * errors, defects, and interruption information, and returns the fallback layer
2514
- * to build instead.
2873
+ * errors, unexpected defects, and interruption information, and returns the
2874
+ * fallback layer to build instead. Finalizers for resources acquired by the
2875
+ * failed layer are still run before the fallback layer is acquired.
2515
2876
  *
2516
2877
  * **Example** (Recovering from layer failures by cause)
2517
2878
  *
@@ -2526,13 +2887,13 @@ export declare const catchCause: {
2526
2887
  * readonly query: (sql: string) => Effect.Effect<string>
2527
2888
  * }>()("Database") {}
2528
2889
  *
2529
- * const primaryDatabaseLayer = Layer.effect(Database)(
2890
+ * const primaryDatabaseLayer = Layer.effect(Database,
2530
2891
  * Effect.fail(new DatabaseError({ message: "Primary DB unreachable" }))
2531
2892
  * )
2532
2893
  *
2533
2894
  * const databaseWithFallback = primaryDatabaseLayer.pipe(
2534
2895
  * Layer.catchCause(() => {
2535
- * return Layer.succeed(Database)({
2896
+ * return Layer.succeed(Database, {
2536
2897
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Memory: ${sql}`))
2537
2898
  * })
2538
2899
  * })
@@ -2550,6 +2911,8 @@ export declare const catchCause: {
2550
2911
  * // Memory: SELECT * FROM users
2551
2912
  * ```
2552
2913
  *
2914
+ * @see {@link catchTag} for recovering from specific tagged errors
2915
+ *
2553
2916
  * @category error handling
2554
2917
  * @since 4.0.0
2555
2918
  */
@@ -2557,10 +2920,18 @@ export declare const catchCause: {
2557
2920
  /**
2558
2921
  * Recovers from any failure cause by switching to another layer.
2559
2922
  *
2923
+ * **When to use**
2924
+ *
2925
+ * Use `catchCause` when recovery needs more than the typed error, such as
2926
+ * defects or interruption information. Use `catchTag` when recovery only needs
2927
+ * to match specific tagged errors.
2928
+ *
2560
2929
  * **Details**
2930
+ *
2561
2931
  * The handler receives the full `Cause` of the failed layer, including typed
2562
- * errors, defects, and interruption information, and returns the fallback layer
2563
- * to build instead.
2932
+ * errors, unexpected defects, and interruption information, and returns the
2933
+ * fallback layer to build instead. Finalizers for resources acquired by the
2934
+ * failed layer are still run before the fallback layer is acquired.
2564
2935
  *
2565
2936
  * **Example** (Recovering from layer failures by cause)
2566
2937
  *
@@ -2575,13 +2946,13 @@ export declare const catchCause: {
2575
2946
  * readonly query: (sql: string) => Effect.Effect<string>
2576
2947
  * }>()("Database") {}
2577
2948
  *
2578
- * const primaryDatabaseLayer = Layer.effect(Database)(
2949
+ * const primaryDatabaseLayer = Layer.effect(Database,
2579
2950
  * Effect.fail(new DatabaseError({ message: "Primary DB unreachable" }))
2580
2951
  * )
2581
2952
  *
2582
2953
  * const databaseWithFallback = primaryDatabaseLayer.pipe(
2583
2954
  * Layer.catchCause(() => {
2584
- * return Layer.succeed(Database)({
2955
+ * return Layer.succeed(Database, {
2585
2956
  * query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Memory: ${sql}`))
2586
2957
  * })
2587
2958
  * })
@@ -2599,6 +2970,8 @@ export declare const catchCause: {
2599
2970
  * // Memory: SELECT * FROM users
2600
2971
  * ```
2601
2972
  *
2973
+ * @see {@link catchTag} for recovering from specific tagged errors
2974
+ *
2602
2975
  * @category error handling
2603
2976
  * @since 4.0.0
2604
2977
  */
@@ -2607,6 +2980,11 @@ export declare const catchCause: {
2607
2980
  /**
2608
2981
  * Updates a service in the context with a new implementation.
2609
2982
  *
2983
+ * **When to use**
2984
+ *
2985
+ * Use this to adapt or extend a service's behavior during the creation of a
2986
+ * layer.
2987
+ *
2610
2988
  * **Details**
2611
2989
  *
2612
2990
  * This function modifies the existing implementation of a service in the
@@ -2614,11 +2992,6 @@ export declare const catchCause: {
2614
2992
  * transformation function `f`, and replaces the old service with the
2615
2993
  * transformed one.
2616
2994
  *
2617
- * **When to Use**
2618
- *
2619
- * This is useful for adapting or extending a service's behavior during the
2620
- * creation of a layer.
2621
- *
2622
2995
  * @category utils
2623
2996
  * @since 3.13.0
2624
2997
  */
@@ -2626,6 +2999,11 @@ export declare const updateService: {
2626
2999
  /**
2627
3000
  * Updates a service in the context with a new implementation.
2628
3001
  *
3002
+ * **When to use**
3003
+ *
3004
+ * Use this to adapt or extend a service's behavior during the creation of a
3005
+ * layer.
3006
+ *
2629
3007
  * **Details**
2630
3008
  *
2631
3009
  * This function modifies the existing implementation of a service in the
@@ -2633,11 +3011,6 @@ export declare const updateService: {
2633
3011
  * transformation function `f`, and replaces the old service with the
2634
3012
  * transformed one.
2635
3013
  *
2636
- * **When to Use**
2637
- *
2638
- * This is useful for adapting or extending a service's behavior during the
2639
- * creation of a layer.
2640
- *
2641
3014
  * @category utils
2642
3015
  * @since 3.13.0
2643
3016
  */
@@ -2645,6 +3018,11 @@ export declare const updateService: {
2645
3018
  /**
2646
3019
  * Updates a service in the context with a new implementation.
2647
3020
  *
3021
+ * **When to use**
3022
+ *
3023
+ * Use this to adapt or extend a service's behavior during the creation of a
3024
+ * layer.
3025
+ *
2648
3026
  * **Details**
2649
3027
  *
2650
3028
  * This function modifies the existing implementation of a service in the
@@ -2652,11 +3030,6 @@ export declare const updateService: {
2652
3030
  * transformation function `f`, and replaces the old service with the
2653
3031
  * transformed one.
2654
3032
  *
2655
- * **When to Use**
2656
- *
2657
- * This is useful for adapting or extending a service's behavior during the
2658
- * creation of a layer.
2659
- *
2660
3033
  * @category utils
2661
3034
  * @since 3.13.0
2662
3035
  */
@@ -2665,6 +3038,13 @@ export declare const updateService: {
2665
3038
  /**
2666
3039
  * Creates a fresh version of this layer that will not be shared.
2667
3040
  *
3041
+ * **When to use**
3042
+ *
3043
+ * Use `fresh` when two parts of an application must receive separate instances
3044
+ * of a resource, such as two independent client sessions. Do not use it just to
3045
+ * work around confusing composition: by default, sharing the same layer value is
3046
+ * usually the desired behavior.
3047
+ *
2668
3048
  * **Example** (Creating non-shared layer instances)
2669
3049
  *
2670
3050
  * ```ts
@@ -2682,12 +3062,12 @@ export declare const updateService: {
2682
3062
  * readonly counterId: number
2683
3063
  * }>()("Right") {}
2684
3064
  *
2685
- * const leftLayer = Layer.effect(Left)(Effect.gen(function*() {
3065
+ * const leftLayer = Layer.effect(Left, Effect.gen(function*() {
2686
3066
  * const counter = yield* Counter
2687
3067
  * return { counterId: counter.id }
2688
3068
  * }))
2689
3069
  *
2690
- * const rightLayer = Layer.effect(Right)(Effect.gen(function*() {
3070
+ * const rightLayer = Layer.effect(Right, Effect.gen(function*() {
2691
3071
  * const counter = yield* Counter
2692
3072
  * return { counterId: counter.id }
2693
3073
  * }))
@@ -2701,7 +3081,7 @@ export declare const updateService: {
2701
3081
  * const program = Effect.gen(function*() {
2702
3082
  * const nextId = yield* Ref.make(0)
2703
3083
  *
2704
- * const counterLayer = Layer.effect(Counter)(Effect.gen(function*() {
3084
+ * const counterLayer = Layer.effect(Counter, Effect.gen(function*() {
2705
3085
  * const id = yield* Ref.updateAndGet(nextId, (n) => n + 1)
2706
3086
  * console.log("constructed Counter")
2707
3087
  * return { id }
@@ -2736,8 +3116,16 @@ export declare const updateService: {
2736
3116
  */
2737
3117
  export declare const fresh: <A, E, R>(self: Layer<A, E, R>) => Layer<A, E, R>;
2738
3118
  /**
2739
- * Builds this layer and uses it until it is interrupted. This is useful when
2740
- * your entire application is a layer, such as an HTTP server.
3119
+ * Builds this layer and keeps it alive until the returned effect is interrupted.
3120
+ *
3121
+ * **When to use**
3122
+ *
3123
+ * Use this when your entire application is a layer, such as an HTTP server.
3124
+ *
3125
+ * **Details**
3126
+ *
3127
+ * When the returned effect is interrupted, the layer scope is closed and all
3128
+ * finalizers registered during layer acquisition are run.
2741
3129
  *
2742
3130
  * **Example** (Launching an application layer)
2743
3131
  *
@@ -2754,7 +3142,7 @@ export declare const fresh: <A, E, R>(self: Layer<A, E, R>) => Layer<A, E, R>;
2754
3142
  * }>()("Logger") {}
2755
3143
  *
2756
3144
  * // Server layer that starts an HTTP server
2757
- * const serverLayer = Layer.effect(HttpServer)(Effect.gen(function*() {
3145
+ * const serverLayer = Layer.effect(HttpServer, Effect.gen(function*() {
2758
3146
  * yield* Console.log("Starting HTTP server...")
2759
3147
  *
2760
3148
  * return {
@@ -2769,7 +3157,7 @@ export declare const fresh: <A, E, R>(self: Layer<A, E, R>) => Layer<A, E, R>;
2769
3157
  * }
2770
3158
  * }))
2771
3159
  *
2772
- * const loggerLayer = Layer.succeed(Logger)({
3160
+ * const loggerLayer = Layer.succeed(Logger, {
2773
3161
  * log: Effect.fn("Logger.log")((msg: string) => Console.log(`[LOG] ${msg}`))
2774
3162
  * })
2775
3163
  *
@@ -2794,11 +3182,13 @@ export declare const launch: <RIn, E, ROut>(self: Layer<ROut, E, RIn>) => Effect
2794
3182
  /**
2795
3183
  * A utility type for creating partial mocks of services in testing.
2796
3184
  *
3185
+ * **Details**
3186
+ *
2797
3187
  * This type makes Effect methods and Effect-returning functions optional,
2798
3188
  * while keeping non-Effect properties required. This allows you to provide
2799
3189
  * only the methods you need to test while leaving others unimplemented.
2800
3190
  *
2801
- * @category Testing
3191
+ * @category testing
2802
3192
  * @since 3.17.0
2803
3193
  */
2804
3194
  export type PartialEffectful<A extends object> = Types.Simplify<{
@@ -2809,8 +3199,16 @@ export type PartialEffectful<A extends object> = Types.Simplify<{
2809
3199
  type AnyEffectOrStream = Effect<any, any, any> | Stream.Stream<any, any, any> | Channel.Channel<any, any, any, any, any, any, any> | ((...args: any) => Effect<any, any, any>) | ((...args: any) => Stream.Stream<any, any, any>) | ((...args: any) => Channel.Channel<any, any, any, any, any, any, any>);
2810
3200
  /**
2811
3201
  * Creates a mock layer for testing purposes. You can provide a partial
2812
- * implementation of the service, and any methods not provided will
2813
- * throw an unimplemented defect when called.
3202
+ * implementation of the service. Any missing members that are `Effect`s,
3203
+ * `Stream`s, `Channel`s, or functions returning them will fail with an
3204
+ * unimplemented defect when used.
3205
+ *
3206
+ * **Details**
3207
+ *
3208
+ * Missing members are represented by a value that can be used as an `Effect`,
3209
+ * `Stream`, `Channel`, or as a function returning an `Effect`. This lets the
3210
+ * mock preserve the shape of common service methods while still failing loudly
3211
+ * when an unimplemented member is exercised.
2814
3212
  *
2815
3213
  * **Example** (Mocking services for tests)
2816
3214
  *
@@ -2851,14 +3249,22 @@ type AnyEffectOrStream = Effect<any, any, any> | Stream.Stream<any, any, any> |
2851
3249
  * )
2852
3250
  * ```
2853
3251
  *
2854
- * @category Testing
3252
+ * @category testing
2855
3253
  * @since 3.17.0
2856
3254
  */
2857
3255
  export declare const mock: {
2858
3256
  /**
2859
3257
  * Creates a mock layer for testing purposes. You can provide a partial
2860
- * implementation of the service, and any methods not provided will
2861
- * throw an unimplemented defect when called.
3258
+ * implementation of the service. Any missing members that are `Effect`s,
3259
+ * `Stream`s, `Channel`s, or functions returning them will fail with an
3260
+ * unimplemented defect when used.
3261
+ *
3262
+ * **Details**
3263
+ *
3264
+ * Missing members are represented by a value that can be used as an `Effect`,
3265
+ * `Stream`, `Channel`, or as a function returning an `Effect`. This lets the
3266
+ * mock preserve the shape of common service methods while still failing loudly
3267
+ * when an unimplemented member is exercised.
2862
3268
  *
2863
3269
  * **Example** (Mocking services for tests)
2864
3270
  *
@@ -2899,14 +3305,22 @@ export declare const mock: {
2899
3305
  * )
2900
3306
  * ```
2901
3307
  *
2902
- * @category Testing
3308
+ * @category testing
2903
3309
  * @since 3.17.0
2904
3310
  */
2905
3311
  <I, S extends object>(service: Context.Key<I, S>): (implementation: PartialEffectful<S>) => Layer<I>;
2906
3312
  /**
2907
3313
  * Creates a mock layer for testing purposes. You can provide a partial
2908
- * implementation of the service, and any methods not provided will
2909
- * throw an unimplemented defect when called.
3314
+ * implementation of the service. Any missing members that are `Effect`s,
3315
+ * `Stream`s, `Channel`s, or functions returning them will fail with an
3316
+ * unimplemented defect when used.
3317
+ *
3318
+ * **Details**
3319
+ *
3320
+ * Missing members are represented by a value that can be used as an `Effect`,
3321
+ * `Stream`, `Channel`, or as a function returning an `Effect`. This lets the
3322
+ * mock preserve the shape of common service methods while still failing loudly
3323
+ * when an unimplemented member is exercised.
2910
3324
  *
2911
3325
  * **Example** (Mocking services for tests)
2912
3326
  *
@@ -2947,16 +3361,18 @@ export declare const mock: {
2947
3361
  * )
2948
3362
  * ```
2949
3363
  *
2950
- * @category Testing
3364
+ * @category testing
2951
3365
  * @since 3.17.0
2952
3366
  */
2953
3367
  <I, S extends object>(service: Context.Key<I, S>, implementation: Types.NoInfer<PartialEffectful<S>>): Layer<I>;
2954
3368
  };
2955
3369
  /**
2956
- * Ensures that an layer's success type extends a given type `ROut`.
3370
+ * Ensures that a layer's success type extends a given type `ROut`.
3371
+ *
3372
+ * **Details**
2957
3373
  *
2958
3374
  * This function provides compile-time type checking to ensure that the success
2959
- * value of an layer conforms to a specific type constraint.
3375
+ * value of a layer conforms to a specific type constraint.
2960
3376
  *
2961
3377
  * **Example** (Constraining layer success types)
2962
3378
  *
@@ -2978,15 +3394,17 @@ export declare const mock: {
2978
3394
  * // Type 'string' is not assignable to type 'number'
2979
3395
  * ```
2980
3396
  *
2981
- * @category Type constraints
3397
+ * @category utility types
2982
3398
  * @since 4.0.0
2983
3399
  */
2984
3400
  export declare const satisfiesSuccessType: <ROut>() => <ROut2 extends ROut, E, RIn>(layer: Layer<ROut2, E, RIn>) => Layer<ROut2, E, RIn>;
2985
3401
  /**
2986
- * Ensures that an layer's error type extends a given type `E`.
3402
+ * Ensures that a layer's error type extends a given type `E`.
3403
+ *
3404
+ * **Details**
2987
3405
  *
2988
3406
  * This function provides compile-time type checking to ensure that the error
2989
- * type of an layer conforms to a specific type constraint.
3407
+ * type of a layer conforms to a specific type constraint.
2990
3408
  *
2991
3409
  * **Example** (Constraining layer error types)
2992
3410
  *
@@ -3009,15 +3427,17 @@ export declare const satisfiesSuccessType: <ROut>() => <ROut2 extends ROut, E, R
3009
3427
  * // Type 'string' is not assignable to type 'Error'
3010
3428
  * ```
3011
3429
  *
3012
- * @category Type constraints
3430
+ * @category utility types
3013
3431
  * @since 4.0.0
3014
3432
  */
3015
3433
  export declare const satisfiesErrorType: <E>() => <ROut, E2 extends E, RIn>(layer: Layer<ROut, E2, RIn>) => Layer<ROut, E2, RIn>;
3016
3434
  /**
3017
- * Ensures that an layer's requirements type extends a given type `R`.
3435
+ * Ensures that a layer's requirements type extends a given type `R`.
3436
+ *
3437
+ * **Details**
3018
3438
  *
3019
3439
  * This function provides compile-time type checking to ensure that the
3020
- * requirements (context) type of an layer conforms to a specific type constraint.
3440
+ * requirements type of a layer conforms to a specific type constraint.
3021
3441
  *
3022
3442
  * **Example** (Constraining layer service requirements)
3023
3443
  *
@@ -3039,7 +3459,7 @@ export declare const satisfiesErrorType: <E>() => <ROut, E2 extends E, RIn>(laye
3039
3459
  * // Type 'string' is not assignable to type 'number'
3040
3460
  * ```
3041
3461
  *
3042
- * @category Type constraints
3462
+ * @category utility types
3043
3463
  * @since 4.0.0
3044
3464
  */
3045
3465
  export declare const satisfiesServicesType: <RIn>() => <ROut, E, RIn2 extends RIn>(layer: Layer<ROut, E, RIn2>) => Layer<ROut, E, RIn2>;
@@ -3052,8 +3472,8 @@ export declare const satisfiesServicesType: <RIn>() => <ROut, E, RIn2 extends RI
3052
3472
  */
3053
3473
  export interface SpanOptions extends Tracer.SpanOptions {
3054
3474
  /**
3055
- * A function that will be called when the span associated with the layer is
3056
- * ending (i.e. when the `Scope` that the span is associated with is closed).
3475
+ * Runs when the span associated with the layer ends, which happens when the
3476
+ * layer scope is closed.
3057
3477
  */
3058
3478
  readonly onEnd?: ((span: Tracer.Span, exit: Exit.Exit<unknown, unknown>) => Effect<void>) | undefined;
3059
3479
  }
@@ -3061,9 +3481,13 @@ export interface SpanOptions extends Tracer.SpanOptions {
3061
3481
  * Constructs a new `Layer` which creates a span and registers it as the current
3062
3482
  * parent span.
3063
3483
  *
3484
+ * **Details**
3485
+ *
3064
3486
  * This allows you to create a traced scope for layer construction, making all
3065
3487
  * operations within the layer constructor part of the same trace span. The span
3066
- * is automatically closed when the layer's scope is closed.
3488
+ * is automatically ended when the layer's scope is closed. If `onEnd` is
3489
+ * provided, it receives the span and the layer scope's exit value when the span
3490
+ * ends.
3067
3491
  *
3068
3492
  * **Example** (Tracing layer construction with a span)
3069
3493
  *
@@ -3109,6 +3533,7 @@ export declare const span: (name: string, options?: SpanOptions) => Layer<Tracer
3109
3533
  * Constructs a layer that provides an existing span as the current parent span.
3110
3534
  *
3111
3535
  * **Details**
3536
+ *
3112
3537
  * The supplied span is made available through `Tracer.ParentSpan` for layers
3113
3538
  * that are built with this layer. This API does not create, end, or close the
3114
3539
  * span; the caller remains responsible for the span's lifetime.
@@ -3146,9 +3571,11 @@ export declare const span: (name: string, options?: SpanOptions) => Layer<Tracer
3146
3571
  */
3147
3572
  export declare const parentSpan: (span: Tracer.AnySpan) => Layer<Tracer.ParentSpan>;
3148
3573
  /**
3149
- * Wraps a Layer with a new tracing span, making all operations in the layer
3574
+ * Wraps a `Layer` with a new tracing span, making all operations in the layer
3150
3575
  * constructor part of the named trace span.
3151
3576
  *
3577
+ * **Details**
3578
+ *
3152
3579
  * This creates a new span for the layer's construction and execution. The span
3153
3580
  * is automatically ended when the layer's scope is closed. This is useful for
3154
3581
  * tracking the lifecycle and performance of layer initialization.
@@ -3197,8 +3624,7 @@ export declare const parentSpan: (span: Tracer.AnySpan) => Layer<Tracer.ParentSp
3197
3624
  *
3198
3625
  * yield* logger.log("Application ready")
3199
3626
  * return yield* database.query("SELECT * FROM users")
3200
- * }).pipe(Effect.provide(appLayer)
3201
- * )
3627
+ * }).pipe(Effect.provide(appLayer))
3202
3628
  * ```
3203
3629
  *
3204
3630
  * @category tracing
@@ -3206,9 +3632,11 @@ export declare const parentSpan: (span: Tracer.AnySpan) => Layer<Tracer.ParentSp
3206
3632
  */
3207
3633
  export declare const withSpan: {
3208
3634
  /**
3209
- * Wraps a Layer with a new tracing span, making all operations in the layer
3635
+ * Wraps a `Layer` with a new tracing span, making all operations in the layer
3210
3636
  * constructor part of the named trace span.
3211
3637
  *
3638
+ * **Details**
3639
+ *
3212
3640
  * This creates a new span for the layer's construction and execution. The span
3213
3641
  * is automatically ended when the layer's scope is closed. This is useful for
3214
3642
  * tracking the lifecycle and performance of layer initialization.
@@ -3257,8 +3685,7 @@ export declare const withSpan: {
3257
3685
  *
3258
3686
  * yield* logger.log("Application ready")
3259
3687
  * return yield* database.query("SELECT * FROM users")
3260
- * }).pipe(Effect.provide(appLayer)
3261
- * )
3688
+ * }).pipe(Effect.provide(appLayer))
3262
3689
  * ```
3263
3690
  *
3264
3691
  * @category tracing
@@ -3266,9 +3693,11 @@ export declare const withSpan: {
3266
3693
  */
3267
3694
  (name: string, options?: SpanOptions): <A, E, R>(self: Layer<A, E, R>) => Layer<A, E, Exclude<R, Tracer.ParentSpan>>;
3268
3695
  /**
3269
- * Wraps a Layer with a new tracing span, making all operations in the layer
3696
+ * Wraps a `Layer` with a new tracing span, making all operations in the layer
3270
3697
  * constructor part of the named trace span.
3271
3698
  *
3699
+ * **Details**
3700
+ *
3272
3701
  * This creates a new span for the layer's construction and execution. The span
3273
3702
  * is automatically ended when the layer's scope is closed. This is useful for
3274
3703
  * tracking the lifecycle and performance of layer initialization.
@@ -3317,8 +3746,7 @@ export declare const withSpan: {
3317
3746
  *
3318
3747
  * yield* logger.log("Application ready")
3319
3748
  * return yield* database.query("SELECT * FROM users")
3320
- * }).pipe(Effect.provide(appLayer)
3321
- * )
3749
+ * }).pipe(Effect.provide(appLayer))
3322
3750
  * ```
3323
3751
  *
3324
3752
  * @category tracing
@@ -3331,9 +3759,15 @@ export declare const withSpan: {
3331
3759
  * as their parent.
3332
3760
  *
3333
3761
  * **Details**
3762
+ *
3334
3763
  * Use this to attach layer construction to an existing trace hierarchy. This API
3335
3764
  * does not create or end the supplied parent span.
3336
3765
  *
3766
+ * When the supplied span is a native `Span`, layer construction also receives
3767
+ * diagnostic information that helps associate failures with the layer call site.
3768
+ * External spans are only installed as the parent span and do not add this
3769
+ * diagnostic call-site information.
3770
+ *
3337
3771
  * **Example** (Attaching layers to an existing parent span)
3338
3772
  *
3339
3773
  * ```ts
@@ -3393,9 +3827,15 @@ export declare const withParentSpan: {
3393
3827
  * as their parent.
3394
3828
  *
3395
3829
  * **Details**
3830
+ *
3396
3831
  * Use this to attach layer construction to an existing trace hierarchy. This API
3397
3832
  * does not create or end the supplied parent span.
3398
3833
  *
3834
+ * When the supplied span is a native `Span`, layer construction also receives
3835
+ * diagnostic information that helps associate failures with the layer call site.
3836
+ * External spans are only installed as the parent span and do not add this
3837
+ * diagnostic call-site information.
3838
+ *
3399
3839
  * **Example** (Attaching layers to an existing parent span)
3400
3840
  *
3401
3841
  * ```ts
@@ -3455,9 +3895,15 @@ export declare const withParentSpan: {
3455
3895
  * as their parent.
3456
3896
  *
3457
3897
  * **Details**
3898
+ *
3458
3899
  * Use this to attach layer construction to an existing trace hierarchy. This API
3459
3900
  * does not create or end the supplied parent span.
3460
3901
  *
3902
+ * When the supplied span is a native `Span`, layer construction also receives
3903
+ * diagnostic information that helps associate failures with the layer call site.
3904
+ * External spans are only installed as the parent span and do not add this
3905
+ * diagnostic call-site information.
3906
+ *
3461
3907
  * **Example** (Attaching layers to an existing parent span)
3462
3908
  *
3463
3909
  * ```ts