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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1451) hide show
  1. package/dist/Array.d.ts +971 -1037
  2. package/dist/Array.d.ts.map +1 -1
  3. package/dist/Array.js +381 -407
  4. package/dist/Array.js.map +1 -1
  5. package/dist/BigDecimal.d.ts +433 -756
  6. package/dist/BigDecimal.d.ts.map +1 -1
  7. package/dist/BigDecimal.js +200 -325
  8. package/dist/BigDecimal.js.map +1 -1
  9. package/dist/BigInt.d.ts +207 -267
  10. package/dist/BigInt.d.ts.map +1 -1
  11. package/dist/BigInt.js +107 -135
  12. package/dist/BigInt.js.map +1 -1
  13. package/dist/Boolean.d.ts +146 -188
  14. package/dist/Boolean.d.ts.map +1 -1
  15. package/dist/Boolean.js +64 -84
  16. package/dist/Boolean.js.map +1 -1
  17. package/dist/Brand.js.map +1 -1
  18. package/dist/Cache.d.ts +405 -254
  19. package/dist/Cache.d.ts.map +1 -1
  20. package/dist/Cache.js +166 -101
  21. package/dist/Cache.js.map +1 -1
  22. package/dist/Cause.d.ts +167 -277
  23. package/dist/Cause.d.ts.map +1 -1
  24. package/dist/Cause.js +122 -176
  25. package/dist/Cause.js.map +1 -1
  26. package/dist/Channel.d.ts +729 -768
  27. package/dist/Channel.d.ts.map +1 -1
  28. package/dist/Channel.js +514 -440
  29. package/dist/Channel.js.map +1 -1
  30. package/dist/ChannelSchema.d.ts +1 -1
  31. package/dist/ChannelSchema.d.ts.map +1 -1
  32. package/dist/ChannelSchema.js.map +1 -1
  33. package/dist/Chunk.d.ts +834 -1173
  34. package/dist/Chunk.d.ts.map +1 -1
  35. package/dist/Chunk.js +326 -439
  36. package/dist/Chunk.js.map +1 -1
  37. package/dist/Clock.d.ts +180 -49
  38. package/dist/Clock.d.ts.map +1 -1
  39. package/dist/Clock.js +96 -31
  40. package/dist/Clock.js.map +1 -1
  41. package/dist/Combiner.d.ts +20 -33
  42. package/dist/Combiner.d.ts.map +1 -1
  43. package/dist/Combiner.js +18 -30
  44. package/dist/Combiner.js.map +1 -1
  45. package/dist/Config.d.ts +225 -173
  46. package/dist/Config.d.ts.map +1 -1
  47. package/dist/Config.js +336 -265
  48. package/dist/Config.js.map +1 -1
  49. package/dist/ConfigProvider.d.ts +194 -68
  50. package/dist/ConfigProvider.d.ts.map +1 -1
  51. package/dist/ConfigProvider.js +115 -80
  52. package/dist/ConfigProvider.js.map +1 -1
  53. package/dist/Console.d.ts +233 -33
  54. package/dist/Console.d.ts.map +1 -1
  55. package/dist/Console.js +232 -32
  56. package/dist/Console.js.map +1 -1
  57. package/dist/Context.d.ts +151 -274
  58. package/dist/Context.d.ts.map +1 -1
  59. package/dist/Context.js +171 -214
  60. package/dist/Context.js.map +1 -1
  61. package/dist/Cron.d.ts +68 -77
  62. package/dist/Cron.d.ts.map +1 -1
  63. package/dist/Cron.js +57 -66
  64. package/dist/Cron.js.map +1 -1
  65. package/dist/Crypto.d.ts +13 -15
  66. package/dist/Crypto.d.ts.map +1 -1
  67. package/dist/Crypto.js +9 -10
  68. package/dist/Crypto.js.map +1 -1
  69. package/dist/Data.d.ts +60 -80
  70. package/dist/Data.d.ts.map +1 -1
  71. package/dist/Data.js +16 -23
  72. package/dist/Data.js.map +1 -1
  73. package/dist/DateTime.d.ts +562 -660
  74. package/dist/DateTime.d.ts.map +1 -1
  75. package/dist/DateTime.js +307 -362
  76. package/dist/DateTime.js.map +1 -1
  77. package/dist/Deferred.d.ts +253 -256
  78. package/dist/Deferred.d.ts.map +1 -1
  79. package/dist/Deferred.js +104 -96
  80. package/dist/Deferred.js.map +1 -1
  81. package/dist/Duration.d.ts +216 -308
  82. package/dist/Duration.d.ts.map +1 -1
  83. package/dist/Duration.js +132 -186
  84. package/dist/Duration.js.map +1 -1
  85. package/dist/Effect.d.ts +2841 -3247
  86. package/dist/Effect.d.ts.map +1 -1
  87. package/dist/Effect.js +1322 -1546
  88. package/dist/Effect.js.map +1 -1
  89. package/dist/Effectable.js.map +1 -1
  90. package/dist/Encoding.d.ts +22 -40
  91. package/dist/Encoding.d.ts.map +1 -1
  92. package/dist/Encoding.js +22 -40
  93. package/dist/Encoding.js.map +1 -1
  94. package/dist/Equal.d.ts +33 -37
  95. package/dist/Equal.d.ts.map +1 -1
  96. package/dist/Equal.js +29 -21
  97. package/dist/Equal.js.map +1 -1
  98. package/dist/Equivalence.d.ts +103 -105
  99. package/dist/Equivalence.d.ts.map +1 -1
  100. package/dist/Equivalence.js +77 -79
  101. package/dist/Equivalence.js.map +1 -1
  102. package/dist/ErrorReporter.d.ts +51 -27
  103. package/dist/ErrorReporter.d.ts.map +1 -1
  104. package/dist/ErrorReporter.js +50 -26
  105. package/dist/ErrorReporter.js.map +1 -1
  106. package/dist/ExecutionPlan.d.ts +13 -55
  107. package/dist/ExecutionPlan.d.ts.map +1 -1
  108. package/dist/ExecutionPlan.js +7 -28
  109. package/dist/ExecutionPlan.js.map +1 -1
  110. package/dist/Exit.d.ts +116 -192
  111. package/dist/Exit.d.ts.map +1 -1
  112. package/dist/Exit.js +82 -130
  113. package/dist/Exit.js.map +1 -1
  114. package/dist/Fiber.d.ts +82 -146
  115. package/dist/Fiber.d.ts.map +1 -1
  116. package/dist/Fiber.js +48 -87
  117. package/dist/Fiber.js.map +1 -1
  118. package/dist/FiberHandle.d.ts +152 -105
  119. package/dist/FiberHandle.d.ts.map +1 -1
  120. package/dist/FiberHandle.js +106 -73
  121. package/dist/FiberHandle.js.map +1 -1
  122. package/dist/FiberMap.d.ts +213 -168
  123. package/dist/FiberMap.d.ts.map +1 -1
  124. package/dist/FiberMap.js +114 -89
  125. package/dist/FiberMap.js.map +1 -1
  126. package/dist/FiberSet.d.ts +123 -81
  127. package/dist/FiberSet.d.ts.map +1 -1
  128. package/dist/FiberSet.js +85 -59
  129. package/dist/FiberSet.js.map +1 -1
  130. package/dist/FileSystem.d.ts +153 -264
  131. package/dist/FileSystem.d.ts.map +1 -1
  132. package/dist/FileSystem.js +42 -147
  133. package/dist/FileSystem.js.map +1 -1
  134. package/dist/Filter.d.ts +61 -33
  135. package/dist/Filter.d.ts.map +1 -1
  136. package/dist/Filter.js +26 -15
  137. package/dist/Filter.js.map +1 -1
  138. package/dist/Formatter.d.ts +25 -33
  139. package/dist/Formatter.d.ts.map +1 -1
  140. package/dist/Formatter.js +48 -49
  141. package/dist/Formatter.js.map +1 -1
  142. package/dist/Function.d.ts +76 -145
  143. package/dist/Function.d.ts.map +1 -1
  144. package/dist/Function.js +40 -57
  145. package/dist/Function.js.map +1 -1
  146. package/dist/Graph.d.ts +360 -714
  147. package/dist/Graph.d.ts.map +1 -1
  148. package/dist/Graph.js +168 -297
  149. package/dist/Graph.js.map +1 -1
  150. package/dist/HKT.d.ts +12 -6
  151. package/dist/HKT.d.ts.map +1 -1
  152. package/dist/Hash.d.ts +47 -83
  153. package/dist/Hash.d.ts.map +1 -1
  154. package/dist/Hash.js +46 -68
  155. package/dist/Hash.js.map +1 -1
  156. package/dist/HashMap.d.ts +319 -411
  157. package/dist/HashMap.d.ts.map +1 -1
  158. package/dist/HashMap.js +122 -166
  159. package/dist/HashMap.js.map +1 -1
  160. package/dist/HashRing.d.ts.map +1 -1
  161. package/dist/HashRing.js +1 -0
  162. package/dist/HashRing.js.map +1 -1
  163. package/dist/HashSet.d.ts +177 -284
  164. package/dist/HashSet.d.ts.map +1 -1
  165. package/dist/HashSet.js +68 -109
  166. package/dist/HashSet.js.map +1 -1
  167. package/dist/Inspectable.d.ts +12 -12
  168. package/dist/Inspectable.js +8 -8
  169. package/dist/Inspectable.js.map +1 -1
  170. package/dist/Iterable.d.ts +620 -786
  171. package/dist/Iterable.d.ts.map +1 -1
  172. package/dist/Iterable.js +228 -306
  173. package/dist/Iterable.js.map +1 -1
  174. package/dist/JsonPatch.d.ts +11 -13
  175. package/dist/JsonPatch.d.ts.map +1 -1
  176. package/dist/JsonPatch.js +44 -102
  177. package/dist/JsonPatch.js.map +1 -1
  178. package/dist/JsonPointer.d.ts +8 -8
  179. package/dist/JsonPointer.js +8 -8
  180. package/dist/JsonPointer.js.map +1 -1
  181. package/dist/JsonSchema.d.ts +98 -44
  182. package/dist/JsonSchema.d.ts.map +1 -1
  183. package/dist/JsonSchema.js +297 -234
  184. package/dist/JsonSchema.js.map +1 -1
  185. package/dist/Latch.d.ts +23 -35
  186. package/dist/Latch.d.ts.map +1 -1
  187. package/dist/Latch.js +16 -28
  188. package/dist/Latch.js.map +1 -1
  189. package/dist/Layer.d.ts +359 -260
  190. package/dist/Layer.d.ts.map +1 -1
  191. package/dist/Layer.js +195 -175
  192. package/dist/Layer.js.map +1 -1
  193. package/dist/LayerMap.d.ts +42 -29
  194. package/dist/LayerMap.d.ts.map +1 -1
  195. package/dist/LayerMap.js +31 -21
  196. package/dist/LayerMap.js.map +1 -1
  197. package/dist/LayerRef.d.ts +6 -2
  198. package/dist/LayerRef.d.ts.map +1 -1
  199. package/dist/LayerRef.js +6 -2
  200. package/dist/LayerRef.js.map +1 -1
  201. package/dist/LogLevel.d.ts +114 -214
  202. package/dist/LogLevel.d.ts.map +1 -1
  203. package/dist/LogLevel.js +41 -76
  204. package/dist/LogLevel.js.map +1 -1
  205. package/dist/Logger.d.ts +218 -467
  206. package/dist/Logger.d.ts.map +1 -1
  207. package/dist/Logger.js +204 -450
  208. package/dist/Logger.js.map +1 -1
  209. package/dist/ManagedRuntime.d.ts +7 -5
  210. package/dist/ManagedRuntime.d.ts.map +1 -1
  211. package/dist/ManagedRuntime.js +7 -5
  212. package/dist/ManagedRuntime.js.map +1 -1
  213. package/dist/Match.d.ts +217 -252
  214. package/dist/Match.d.ts.map +1 -1
  215. package/dist/Match.js +150 -183
  216. package/dist/Match.js.map +1 -1
  217. package/dist/Metric.d.ts +442 -993
  218. package/dist/Metric.d.ts.map +1 -1
  219. package/dist/Metric.js +198 -642
  220. package/dist/Metric.js.map +1 -1
  221. package/dist/MutableHashMap.d.ts +144 -173
  222. package/dist/MutableHashMap.d.ts.map +1 -1
  223. package/dist/MutableHashMap.js +68 -79
  224. package/dist/MutableHashMap.js.map +1 -1
  225. package/dist/MutableHashSet.d.ts +84 -89
  226. package/dist/MutableHashSet.d.ts.map +1 -1
  227. package/dist/MutableHashSet.js +44 -47
  228. package/dist/MutableHashSet.js.map +1 -1
  229. package/dist/MutableList.d.ts +71 -370
  230. package/dist/MutableList.d.ts.map +1 -1
  231. package/dist/MutableList.js +59 -284
  232. package/dist/MutableList.js.map +1 -1
  233. package/dist/MutableRef.d.ts +420 -243
  234. package/dist/MutableRef.d.ts.map +1 -1
  235. package/dist/MutableRef.js +209 -120
  236. package/dist/MutableRef.js.map +1 -1
  237. package/dist/Newtype.d.ts +21 -14
  238. package/dist/Newtype.d.ts.map +1 -1
  239. package/dist/Newtype.js +15 -13
  240. package/dist/Newtype.js.map +1 -1
  241. package/dist/NonEmptyIterable.d.ts +7 -137
  242. package/dist/NonEmptyIterable.d.ts.map +1 -1
  243. package/dist/NonEmptyIterable.js +5 -93
  244. package/dist/NonEmptyIterable.js.map +1 -1
  245. package/dist/Number.d.ts +196 -233
  246. package/dist/Number.d.ts.map +1 -1
  247. package/dist/Number.js +90 -109
  248. package/dist/Number.js.map +1 -1
  249. package/dist/Optic.d.ts +97 -189
  250. package/dist/Optic.d.ts.map +1 -1
  251. package/dist/Optic.js +187 -290
  252. package/dist/Optic.js.map +1 -1
  253. package/dist/Option.d.ts +447 -812
  254. package/dist/Option.d.ts.map +1 -1
  255. package/dist/Option.js +211 -392
  256. package/dist/Option.js.map +1 -1
  257. package/dist/Order.d.ts +109 -109
  258. package/dist/Order.js +91 -91
  259. package/dist/Order.js.map +1 -1
  260. package/dist/Ordering.d.ts +20 -23
  261. package/dist/Ordering.d.ts.map +1 -1
  262. package/dist/Ordering.js +8 -9
  263. package/dist/Ordering.js.map +1 -1
  264. package/dist/PartitionedSemaphore.js.map +1 -1
  265. package/dist/Path.d.ts +38 -41
  266. package/dist/Path.d.ts.map +1 -1
  267. package/dist/Path.js +3 -4
  268. package/dist/Path.js.map +1 -1
  269. package/dist/Pipeable.d.ts +6 -5
  270. package/dist/Pipeable.d.ts.map +1 -1
  271. package/dist/Pipeable.js +2 -2
  272. package/dist/Pipeable.js.map +1 -1
  273. package/dist/PlatformError.d.ts +4 -4
  274. package/dist/PlatformError.js +3 -3
  275. package/dist/PlatformError.js.map +1 -1
  276. package/dist/Pool.d.ts +4 -2
  277. package/dist/Pool.d.ts.map +1 -1
  278. package/dist/Pool.js +4 -2
  279. package/dist/Pool.js.map +1 -1
  280. package/dist/Predicate.d.ts +200 -181
  281. package/dist/Predicate.d.ts.map +1 -1
  282. package/dist/Predicate.js +100 -108
  283. package/dist/Predicate.js.map +1 -1
  284. package/dist/PrimaryKey.d.ts +7 -7
  285. package/dist/PrimaryKey.js +5 -5
  286. package/dist/PrimaryKey.js.map +1 -1
  287. package/dist/PubSub.d.ts +425 -494
  288. package/dist/PubSub.d.ts.map +1 -1
  289. package/dist/PubSub.js +373 -362
  290. package/dist/PubSub.js.map +1 -1
  291. package/dist/Pull.d.ts +24 -18
  292. package/dist/Pull.d.ts.map +1 -1
  293. package/dist/Pull.js +11 -9
  294. package/dist/Pull.js.map +1 -1
  295. package/dist/Queue.d.ts +200 -159
  296. package/dist/Queue.d.ts.map +1 -1
  297. package/dist/Queue.js +162 -132
  298. package/dist/Queue.js.map +1 -1
  299. package/dist/Random.d.ts +49 -74
  300. package/dist/Random.d.ts.map +1 -1
  301. package/dist/Random.js +35 -54
  302. package/dist/Random.js.map +1 -1
  303. package/dist/RcMap.d.ts +121 -63
  304. package/dist/RcMap.d.ts.map +1 -1
  305. package/dist/RcMap.js +42 -21
  306. package/dist/RcMap.js.map +1 -1
  307. package/dist/RcRef.d.ts +24 -13
  308. package/dist/RcRef.d.ts.map +1 -1
  309. package/dist/RcRef.js +15 -9
  310. package/dist/RcRef.js.map +1 -1
  311. package/dist/Record.d.ts +291 -488
  312. package/dist/Record.d.ts.map +1 -1
  313. package/dist/Record.js +111 -202
  314. package/dist/Record.js.map +1 -1
  315. package/dist/Redactable.d.ts +6 -2
  316. package/dist/Redactable.d.ts.map +1 -1
  317. package/dist/Redactable.js +7 -2
  318. package/dist/Redactable.js.map +1 -1
  319. package/dist/Redacted.d.ts +25 -25
  320. package/dist/Redacted.d.ts.map +1 -1
  321. package/dist/Redacted.js +19 -20
  322. package/dist/Redacted.js.map +1 -1
  323. package/dist/Reducer.d.ts +8 -15
  324. package/dist/Reducer.d.ts.map +1 -1
  325. package/dist/Reducer.js +6 -12
  326. package/dist/Reducer.js.map +1 -1
  327. package/dist/Ref.d.ts +95 -165
  328. package/dist/Ref.d.ts.map +1 -1
  329. package/dist/Ref.js +75 -122
  330. package/dist/Ref.js.map +1 -1
  331. package/dist/References.d.ts +102 -168
  332. package/dist/References.d.ts.map +1 -1
  333. package/dist/References.js +102 -168
  334. package/dist/References.js.map +1 -1
  335. package/dist/RegExp.d.ts +10 -14
  336. package/dist/RegExp.d.ts.map +1 -1
  337. package/dist/RegExp.js +10 -14
  338. package/dist/RegExp.js.map +1 -1
  339. package/dist/Request.d.ts +31 -21
  340. package/dist/Request.d.ts.map +1 -1
  341. package/dist/Request.js +16 -13
  342. package/dist/Request.js.map +1 -1
  343. package/dist/RequestResolver.d.ts +201 -90
  344. package/dist/RequestResolver.d.ts.map +1 -1
  345. package/dist/RequestResolver.js +87 -41
  346. package/dist/RequestResolver.js.map +1 -1
  347. package/dist/Resource.js.map +1 -1
  348. package/dist/Result.d.ts +302 -470
  349. package/dist/Result.d.ts.map +1 -1
  350. package/dist/Result.js +133 -217
  351. package/dist/Result.js.map +1 -1
  352. package/dist/Runtime.d.ts +50 -75
  353. package/dist/Runtime.d.ts.map +1 -1
  354. package/dist/Runtime.js +39 -60
  355. package/dist/Runtime.js.map +1 -1
  356. package/dist/Schedule.d.ts +290 -1636
  357. package/dist/Schedule.d.ts.map +1 -1
  358. package/dist/Schedule.js +162 -803
  359. package/dist/Schedule.js.map +1 -1
  360. package/dist/Scheduler.d.ts +5 -5
  361. package/dist/Scheduler.d.ts.map +1 -1
  362. package/dist/Scheduler.js +18 -6
  363. package/dist/Scheduler.js.map +1 -1
  364. package/dist/Schema.d.ts +644 -642
  365. package/dist/Schema.d.ts.map +1 -1
  366. package/dist/Schema.js +491 -527
  367. package/dist/Schema.js.map +1 -1
  368. package/dist/SchemaAST.d.ts +27 -50
  369. package/dist/SchemaAST.d.ts.map +1 -1
  370. package/dist/SchemaAST.js +366 -279
  371. package/dist/SchemaAST.js.map +1 -1
  372. package/dist/SchemaError.d.ts +7 -6
  373. package/dist/SchemaError.d.ts.map +1 -1
  374. package/dist/SchemaError.js +7 -6
  375. package/dist/SchemaError.js.map +1 -1
  376. package/dist/SchemaGetter.d.ts +217 -174
  377. package/dist/SchemaGetter.d.ts.map +1 -1
  378. package/dist/SchemaGetter.js +218 -185
  379. package/dist/SchemaGetter.js.map +1 -1
  380. package/dist/SchemaIssue.d.ts +62 -190
  381. package/dist/SchemaIssue.d.ts.map +1 -1
  382. package/dist/SchemaIssue.js +73 -265
  383. package/dist/SchemaIssue.js.map +1 -1
  384. package/dist/SchemaParser.d.ts +2 -2
  385. package/dist/SchemaParser.d.ts.map +1 -1
  386. package/dist/SchemaParser.js +123 -75
  387. package/dist/SchemaParser.js.map +1 -1
  388. package/dist/SchemaRepresentation.d.ts +22 -36
  389. package/dist/SchemaRepresentation.d.ts.map +1 -1
  390. package/dist/SchemaRepresentation.js +20 -26
  391. package/dist/SchemaRepresentation.js.map +1 -1
  392. package/dist/SchemaTransformation.d.ts +114 -74
  393. package/dist/SchemaTransformation.d.ts.map +1 -1
  394. package/dist/SchemaTransformation.js +120 -85
  395. package/dist/SchemaTransformation.js.map +1 -1
  396. package/dist/Scope.d.ts +123 -151
  397. package/dist/Scope.d.ts.map +1 -1
  398. package/dist/Scope.js +72 -92
  399. package/dist/Scope.js.map +1 -1
  400. package/dist/ScopedCache.js.map +1 -1
  401. package/dist/ScopedRef.d.ts +3 -3
  402. package/dist/ScopedRef.js +2 -2
  403. package/dist/ScopedRef.js.map +1 -1
  404. package/dist/Semaphore.d.ts +96 -10
  405. package/dist/Semaphore.d.ts.map +1 -1
  406. package/dist/Semaphore.js +78 -39
  407. package/dist/Semaphore.js.map +1 -1
  408. package/dist/Sink.d.ts +117 -107
  409. package/dist/Sink.d.ts.map +1 -1
  410. package/dist/Sink.js +107 -100
  411. package/dist/Sink.js.map +1 -1
  412. package/dist/Stdio.d.ts +1 -1
  413. package/dist/Stdio.js.map +1 -1
  414. package/dist/Stream.d.ts +2415 -2949
  415. package/dist/Stream.d.ts.map +1 -1
  416. package/dist/Stream.js +1078 -1381
  417. package/dist/Stream.js.map +1 -1
  418. package/dist/String.d.ts +262 -308
  419. package/dist/String.d.ts.map +1 -1
  420. package/dist/String.js +184 -215
  421. package/dist/String.js.map +1 -1
  422. package/dist/Struct.d.ts +109 -114
  423. package/dist/Struct.d.ts.map +1 -1
  424. package/dist/Struct.js +41 -50
  425. package/dist/Struct.js.map +1 -1
  426. package/dist/SubscriptionRef.d.ts +282 -250
  427. package/dist/SubscriptionRef.d.ts.map +1 -1
  428. package/dist/SubscriptionRef.js +104 -92
  429. package/dist/SubscriptionRef.js.map +1 -1
  430. package/dist/Symbol.d.ts +3 -3
  431. package/dist/Symbol.js +3 -3
  432. package/dist/Symbol.js.map +1 -1
  433. package/dist/SynchronizedRef.js.map +1 -1
  434. package/dist/Take.js.map +1 -1
  435. package/dist/Terminal.d.ts +2 -2
  436. package/dist/Terminal.js +1 -1
  437. package/dist/Terminal.js.map +1 -1
  438. package/dist/Tracer.d.ts +100 -54
  439. package/dist/Tracer.d.ts.map +1 -1
  440. package/dist/Tracer.js +41 -24
  441. package/dist/Tracer.js.map +1 -1
  442. package/dist/Trie.d.ts +287 -679
  443. package/dist/Trie.d.ts.map +1 -1
  444. package/dist/Trie.js +109 -251
  445. package/dist/Trie.js.map +1 -1
  446. package/dist/Tuple.d.ts +92 -127
  447. package/dist/Tuple.d.ts.map +1 -1
  448. package/dist/Tuple.js +42 -57
  449. package/dist/Tuple.js.map +1 -1
  450. package/dist/TxChunk.d.ts +201 -121
  451. package/dist/TxChunk.d.ts.map +1 -1
  452. package/dist/TxChunk.js +85 -56
  453. package/dist/TxChunk.js.map +1 -1
  454. package/dist/TxDeferred.d.ts +62 -46
  455. package/dist/TxDeferred.d.ts.map +1 -1
  456. package/dist/TxDeferred.js +30 -22
  457. package/dist/TxDeferred.js.map +1 -1
  458. package/dist/TxHashMap.d.ts +631 -779
  459. package/dist/TxHashMap.d.ts.map +1 -1
  460. package/dist/TxHashMap.js +268 -330
  461. package/dist/TxHashMap.js.map +1 -1
  462. package/dist/TxHashSet.d.ts +297 -236
  463. package/dist/TxHashSet.d.ts.map +1 -1
  464. package/dist/TxHashSet.js +130 -100
  465. package/dist/TxHashSet.js.map +1 -1
  466. package/dist/TxPriorityQueue.d.ts +126 -95
  467. package/dist/TxPriorityQueue.d.ts.map +1 -1
  468. package/dist/TxPriorityQueue.js +74 -56
  469. package/dist/TxPriorityQueue.js.map +1 -1
  470. package/dist/TxPubSub.d.ts +101 -88
  471. package/dist/TxPubSub.d.ts.map +1 -1
  472. package/dist/TxPubSub.js +87 -66
  473. package/dist/TxPubSub.js.map +1 -1
  474. package/dist/TxQueue.d.ts +200 -180
  475. package/dist/TxQueue.d.ts.map +1 -1
  476. package/dist/TxQueue.js +160 -136
  477. package/dist/TxQueue.js.map +1 -1
  478. package/dist/TxReentrantLock.d.ts +97 -66
  479. package/dist/TxReentrantLock.d.ts.map +1 -1
  480. package/dist/TxReentrantLock.js +67 -45
  481. package/dist/TxReentrantLock.js.map +1 -1
  482. package/dist/TxRef.d.ts +51 -32
  483. package/dist/TxRef.d.ts.map +1 -1
  484. package/dist/TxRef.js +23 -15
  485. package/dist/TxRef.js.map +1 -1
  486. package/dist/TxSemaphore.d.ts +129 -95
  487. package/dist/TxSemaphore.d.ts.map +1 -1
  488. package/dist/TxSemaphore.js +85 -70
  489. package/dist/TxSemaphore.js.map +1 -1
  490. package/dist/TxSubscriptionRef.d.ts +97 -70
  491. package/dist/TxSubscriptionRef.d.ts.map +1 -1
  492. package/dist/TxSubscriptionRef.js +44 -34
  493. package/dist/TxSubscriptionRef.js.map +1 -1
  494. package/dist/Types.d.ts +126 -67
  495. package/dist/Types.d.ts.map +1 -1
  496. package/dist/UndefinedOr.js.map +1 -1
  497. package/dist/Unify.d.ts +45 -65
  498. package/dist/Unify.d.ts.map +1 -1
  499. package/dist/Unify.js +6 -9
  500. package/dist/Unify.js.map +1 -1
  501. package/dist/Utils.d.ts +23 -16
  502. package/dist/Utils.d.ts.map +1 -1
  503. package/dist/Utils.js +3 -7
  504. package/dist/Utils.js.map +1 -1
  505. package/dist/index.js.map +1 -1
  506. package/dist/internal/array.js.map +1 -1
  507. package/dist/internal/core.js +1 -1
  508. package/dist/internal/core.js.map +1 -1
  509. package/dist/internal/dateTime.js +4 -0
  510. package/dist/internal/dateTime.js.map +1 -1
  511. package/dist/internal/doNotation.js.map +1 -1
  512. package/dist/internal/effect.js +77 -40
  513. package/dist/internal/effect.js.map +1 -1
  514. package/dist/internal/equal.js.map +1 -1
  515. package/dist/internal/errors.js.map +1 -1
  516. package/dist/internal/executionPlan.js.map +1 -1
  517. package/dist/internal/hashMap.js.map +1 -1
  518. package/dist/internal/hashSet.js.map +1 -1
  519. package/dist/internal/layer.js.map +1 -1
  520. package/dist/internal/matcher.js.map +1 -1
  521. package/dist/internal/metric.js.map +1 -1
  522. package/dist/internal/option.js.map +1 -1
  523. package/dist/internal/persistence.d.ts +2 -0
  524. package/dist/internal/persistence.d.ts.map +1 -0
  525. package/dist/internal/persistence.js +3 -0
  526. package/dist/internal/persistence.js.map +1 -0
  527. package/dist/internal/random.js.map +1 -1
  528. package/dist/internal/rcRef.js.map +1 -1
  529. package/dist/internal/record.js.map +1 -1
  530. package/dist/internal/redacted.js.map +1 -1
  531. package/dist/internal/references.js +3 -0
  532. package/dist/internal/references.js.map +1 -1
  533. package/dist/internal/request.js.map +1 -1
  534. package/dist/internal/result.js.map +1 -1
  535. package/dist/internal/schedule.js.map +1 -1
  536. package/dist/internal/schema/annotations.js.map +1 -1
  537. package/dist/internal/schema/cause.js.map +1 -1
  538. package/dist/internal/schema/fromJsonSchemaDocument.js +13 -11
  539. package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
  540. package/dist/internal/schema/fromRepresentation.js +8 -15
  541. package/dist/internal/schema/fromRepresentation.js.map +1 -1
  542. package/dist/internal/schema/parser.d.ts +14 -0
  543. package/dist/internal/schema/parser.d.ts.map +1 -0
  544. package/dist/internal/schema/parser.js +13 -0
  545. package/dist/internal/schema/parser.js.map +1 -0
  546. package/dist/internal/schema/schema.js.map +1 -1
  547. package/dist/internal/schema/toArbitrary.js.map +1 -1
  548. package/dist/internal/schema/toCodeDocument.js.map +1 -1
  549. package/dist/internal/schema/toEquivalence.js.map +1 -1
  550. package/dist/internal/schema/toJsonSchemaDocument.js +48 -6
  551. package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
  552. package/dist/internal/schema/toRepresentation.js +87 -107
  553. package/dist/internal/schema/toRepresentation.js.map +1 -1
  554. package/dist/internal/stackTraceLimit.js.map +1 -1
  555. package/dist/internal/stream.js.map +1 -1
  556. package/dist/internal/tracer.js.map +1 -1
  557. package/dist/internal/trie.js +13 -9
  558. package/dist/internal/trie.js.map +1 -1
  559. package/dist/testing/FastCheck.d.ts +8 -7
  560. package/dist/testing/FastCheck.d.ts.map +1 -1
  561. package/dist/testing/FastCheck.js +8 -7
  562. package/dist/testing/FastCheck.js.map +1 -1
  563. package/dist/testing/TestClock.d.ts +57 -28
  564. package/dist/testing/TestClock.d.ts.map +1 -1
  565. package/dist/testing/TestClock.js +50 -18
  566. package/dist/testing/TestClock.js.map +1 -1
  567. package/dist/testing/TestConsole.d.ts +32 -31
  568. package/dist/testing/TestConsole.d.ts.map +1 -1
  569. package/dist/testing/TestConsole.js +24 -22
  570. package/dist/testing/TestConsole.js.map +1 -1
  571. package/dist/testing/TestSchema.d.ts +29 -29
  572. package/dist/testing/TestSchema.js +25 -25
  573. package/dist/testing/TestSchema.js.map +1 -1
  574. package/dist/testing/index.js.map +1 -1
  575. package/dist/unstable/ai/AiError.d.ts +95 -118
  576. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  577. package/dist/unstable/ai/AiError.js +94 -117
  578. package/dist/unstable/ai/AiError.js.map +1 -1
  579. package/dist/unstable/ai/AnthropicStructuredOutput.d.ts +1 -1
  580. package/dist/unstable/ai/AnthropicStructuredOutput.js +1 -1
  581. package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
  582. package/dist/unstable/ai/Chat.d.ts +132 -97
  583. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  584. package/dist/unstable/ai/Chat.js +55 -51
  585. package/dist/unstable/ai/Chat.js.map +1 -1
  586. package/dist/unstable/ai/EmbeddingModel.js.map +1 -1
  587. package/dist/unstable/ai/IdGenerator.d.ts +32 -28
  588. package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
  589. package/dist/unstable/ai/IdGenerator.js +26 -21
  590. package/dist/unstable/ai/IdGenerator.js.map +1 -1
  591. package/dist/unstable/ai/LanguageModel.d.ts +107 -67
  592. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  593. package/dist/unstable/ai/LanguageModel.js +104 -64
  594. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  595. package/dist/unstable/ai/McpProtocol.d.ts +30 -0
  596. package/dist/unstable/ai/McpProtocol.d.ts.map +1 -0
  597. package/dist/unstable/ai/McpProtocol.js +20 -0
  598. package/dist/unstable/ai/McpProtocol.js.map +1 -0
  599. package/dist/unstable/ai/McpSchema.d.ts +141 -75
  600. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  601. package/dist/unstable/ai/McpSchema.js +58 -50
  602. package/dist/unstable/ai/McpSchema.js.map +1 -1
  603. package/dist/unstable/ai/McpServer.d.ts +68 -59
  604. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  605. package/dist/unstable/ai/McpServer.js +694 -241
  606. package/dist/unstable/ai/McpServer.js.map +1 -1
  607. package/dist/unstable/ai/Model.d.ts +8 -19
  608. package/dist/unstable/ai/Model.d.ts.map +1 -1
  609. package/dist/unstable/ai/Model.js +9 -20
  610. package/dist/unstable/ai/Model.js.map +1 -1
  611. package/dist/unstable/ai/OpenAiStructuredOutput.d.ts +1 -1
  612. package/dist/unstable/ai/OpenAiStructuredOutput.js +1 -1
  613. package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
  614. package/dist/unstable/ai/Prompt.d.ts +112 -38
  615. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  616. package/dist/unstable/ai/Prompt.js +53 -17
  617. package/dist/unstable/ai/Prompt.js.map +1 -1
  618. package/dist/unstable/ai/Response.d.ts +28 -14
  619. package/dist/unstable/ai/Response.d.ts.map +1 -1
  620. package/dist/unstable/ai/Response.js +9 -4
  621. package/dist/unstable/ai/Response.js.map +1 -1
  622. package/dist/unstable/ai/ResponseIdTracker.js.map +1 -1
  623. package/dist/unstable/ai/Telemetry.d.ts +46 -13
  624. package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
  625. package/dist/unstable/ai/Telemetry.js +18 -7
  626. package/dist/unstable/ai/Telemetry.js.map +1 -1
  627. package/dist/unstable/ai/Tokenizer.d.ts +14 -3
  628. package/dist/unstable/ai/Tokenizer.d.ts.map +1 -1
  629. package/dist/unstable/ai/Tokenizer.js +10 -2
  630. package/dist/unstable/ai/Tokenizer.js.map +1 -1
  631. package/dist/unstable/ai/Tool.d.ts +59 -44
  632. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  633. package/dist/unstable/ai/Tool.js +48 -39
  634. package/dist/unstable/ai/Tool.js.map +1 -1
  635. package/dist/unstable/ai/Toolkit.d.ts +26 -8
  636. package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
  637. package/dist/unstable/ai/Toolkit.js +18 -4
  638. package/dist/unstable/ai/Toolkit.js.map +1 -1
  639. package/dist/unstable/ai/index.d.ts +4 -0
  640. package/dist/unstable/ai/index.d.ts.map +1 -1
  641. package/dist/unstable/ai/index.js +4 -0
  642. package/dist/unstable/ai/index.js.map +1 -1
  643. package/dist/unstable/ai/internal/codec-transformer.js.map +1 -1
  644. package/dist/unstable/ai/internal/mcpProtocol.d.ts +21 -0
  645. package/dist/unstable/ai/internal/mcpProtocol.d.ts.map +1 -0
  646. package/dist/unstable/ai/internal/mcpProtocol.js +22 -0
  647. package/dist/unstable/ai/internal/mcpProtocol.js.map +1 -0
  648. package/dist/unstable/ai/internal/mcpProtocolRegistry.d.ts +2 -0
  649. package/dist/unstable/ai/internal/mcpProtocolRegistry.d.ts.map +1 -0
  650. package/dist/unstable/ai/internal/mcpProtocolRegistry.js +32 -0
  651. package/dist/unstable/ai/internal/mcpProtocolRegistry.js.map +1 -0
  652. package/dist/unstable/ai/internal/structured-output.js +14 -15
  653. package/dist/unstable/ai/internal/structured-output.js.map +1 -1
  654. package/dist/unstable/cli/Argument.d.ts +273 -69
  655. package/dist/unstable/cli/Argument.d.ts.map +1 -1
  656. package/dist/unstable/cli/Argument.js +111 -33
  657. package/dist/unstable/cli/Argument.js.map +1 -1
  658. package/dist/unstable/cli/CliConfig.js.map +1 -1
  659. package/dist/unstable/cli/CliError.d.ts +69 -76
  660. package/dist/unstable/cli/CliError.d.ts.map +1 -1
  661. package/dist/unstable/cli/CliError.js +57 -61
  662. package/dist/unstable/cli/CliError.js.map +1 -1
  663. package/dist/unstable/cli/CliOutput.d.ts +35 -54
  664. package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
  665. package/dist/unstable/cli/CliOutput.js +26 -42
  666. package/dist/unstable/cli/CliOutput.js.map +1 -1
  667. package/dist/unstable/cli/Command.d.ts +705 -107
  668. package/dist/unstable/cli/Command.d.ts.map +1 -1
  669. package/dist/unstable/cli/Command.js +238 -42
  670. package/dist/unstable/cli/Command.js.map +1 -1
  671. package/dist/unstable/cli/Completions.js.map +1 -1
  672. package/dist/unstable/cli/Flag.d.ts +418 -138
  673. package/dist/unstable/cli/Flag.d.ts.map +1 -1
  674. package/dist/unstable/cli/Flag.js +197 -71
  675. package/dist/unstable/cli/Flag.js.map +1 -1
  676. package/dist/unstable/cli/GlobalFlag.d.ts +1 -1
  677. package/dist/unstable/cli/GlobalFlag.js.map +1 -1
  678. package/dist/unstable/cli/HelpDoc.d.ts +12 -4
  679. package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
  680. package/dist/unstable/cli/Param.d.ts +292 -78
  681. package/dist/unstable/cli/Param.d.ts.map +1 -1
  682. package/dist/unstable/cli/Param.js +128 -46
  683. package/dist/unstable/cli/Param.js.map +1 -1
  684. package/dist/unstable/cli/Primitive.d.ts +370 -149
  685. package/dist/unstable/cli/Primitive.d.ts.map +1 -1
  686. package/dist/unstable/cli/Primitive.js +344 -136
  687. package/dist/unstable/cli/Primitive.js.map +1 -1
  688. package/dist/unstable/cli/Prompt.d.ts +23 -14
  689. package/dist/unstable/cli/Prompt.d.ts.map +1 -1
  690. package/dist/unstable/cli/Prompt.js +23 -14
  691. package/dist/unstable/cli/Prompt.js.map +1 -1
  692. package/dist/unstable/cli/index.js.map +1 -1
  693. package/dist/unstable/cli/internal/ansi.js.map +1 -1
  694. package/dist/unstable/cli/internal/auto-suggest.js.map +1 -1
  695. package/dist/unstable/cli/internal/command.js.map +1 -1
  696. package/dist/unstable/cli/internal/completions/bash.js.map +1 -1
  697. package/dist/unstable/cli/internal/completions/descriptor.js.map +1 -1
  698. package/dist/unstable/cli/internal/completions/fish.js.map +1 -1
  699. package/dist/unstable/cli/internal/completions/zsh.js.map +1 -1
  700. package/dist/unstable/cli/internal/config.js.map +1 -1
  701. package/dist/unstable/cli/internal/help.js.map +1 -1
  702. package/dist/unstable/cli/internal/lexer.js +17 -7
  703. package/dist/unstable/cli/internal/lexer.js.map +1 -1
  704. package/dist/unstable/cli/internal/parser.js +2 -2
  705. package/dist/unstable/cli/internal/parser.js.map +1 -1
  706. package/dist/unstable/cli/internal/wizard.js.map +1 -1
  707. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  708. package/dist/unstable/cluster/ClusterError.js.map +1 -1
  709. package/dist/unstable/cluster/ClusterMetrics.js.map +1 -1
  710. package/dist/unstable/cluster/ClusterSchema.d.ts +8 -8
  711. package/dist/unstable/cluster/ClusterSchema.js +8 -8
  712. package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
  713. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  714. package/dist/unstable/cluster/ClusterWorkflowEngine.js +5 -1
  715. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  716. package/dist/unstable/cluster/DeliverAt.js.map +1 -1
  717. package/dist/unstable/cluster/Entity.d.ts +10 -10
  718. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  719. package/dist/unstable/cluster/Entity.js +8 -8
  720. package/dist/unstable/cluster/Entity.js.map +1 -1
  721. package/dist/unstable/cluster/EntityAddress.js.map +1 -1
  722. package/dist/unstable/cluster/EntityId.js.map +1 -1
  723. package/dist/unstable/cluster/EntityProxy.d.ts +4 -2
  724. package/dist/unstable/cluster/EntityProxy.d.ts.map +1 -1
  725. package/dist/unstable/cluster/EntityProxy.js +4 -2
  726. package/dist/unstable/cluster/EntityProxy.js.map +1 -1
  727. package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
  728. package/dist/unstable/cluster/EntityResource.d.ts +2 -2
  729. package/dist/unstable/cluster/EntityResource.js +2 -2
  730. package/dist/unstable/cluster/EntityResource.js.map +1 -1
  731. package/dist/unstable/cluster/EntityType.js.map +1 -1
  732. package/dist/unstable/cluster/Envelope.d.ts +3 -3
  733. package/dist/unstable/cluster/Envelope.js +3 -3
  734. package/dist/unstable/cluster/Envelope.js.map +1 -1
  735. package/dist/unstable/cluster/HttpRunner.d.ts +2 -2
  736. package/dist/unstable/cluster/HttpRunner.d.ts.map +1 -1
  737. package/dist/unstable/cluster/HttpRunner.js +6 -4
  738. package/dist/unstable/cluster/HttpRunner.js.map +1 -1
  739. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  740. package/dist/unstable/cluster/MachineId.js.map +1 -1
  741. package/dist/unstable/cluster/Message.d.ts +9 -9
  742. package/dist/unstable/cluster/Message.js +6 -6
  743. package/dist/unstable/cluster/Message.js.map +1 -1
  744. package/dist/unstable/cluster/MessageStorage.d.ts +15 -15
  745. package/dist/unstable/cluster/MessageStorage.js +5 -5
  746. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  747. package/dist/unstable/cluster/Reply.d.ts.map +1 -1
  748. package/dist/unstable/cluster/Reply.js +4 -4
  749. package/dist/unstable/cluster/Reply.js.map +1 -1
  750. package/dist/unstable/cluster/Runner.js.map +1 -1
  751. package/dist/unstable/cluster/RunnerAddress.js.map +1 -1
  752. package/dist/unstable/cluster/RunnerHealth.d.ts +1 -1
  753. package/dist/unstable/cluster/RunnerHealth.js +1 -1
  754. package/dist/unstable/cluster/RunnerHealth.js.map +1 -1
  755. package/dist/unstable/cluster/RunnerServer.d.ts +2 -1
  756. package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
  757. package/dist/unstable/cluster/RunnerServer.js +16 -16
  758. package/dist/unstable/cluster/RunnerServer.js.map +1 -1
  759. package/dist/unstable/cluster/RunnerStorage.d.ts +2 -2
  760. package/dist/unstable/cluster/RunnerStorage.js +1 -1
  761. package/dist/unstable/cluster/RunnerStorage.js.map +1 -1
  762. package/dist/unstable/cluster/Runners.d.ts +6 -6
  763. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  764. package/dist/unstable/cluster/Runners.js +19 -10
  765. package/dist/unstable/cluster/Runners.js.map +1 -1
  766. package/dist/unstable/cluster/ShardId.js.map +1 -1
  767. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  768. package/dist/unstable/cluster/Sharding.js +3 -2
  769. package/dist/unstable/cluster/Sharding.js.map +1 -1
  770. package/dist/unstable/cluster/ShardingConfig.d.ts +3 -3
  771. package/dist/unstable/cluster/ShardingConfig.js +3 -3
  772. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  773. package/dist/unstable/cluster/ShardingRegistrationEvent.js.map +1 -1
  774. package/dist/unstable/cluster/SingleRunner.js.map +1 -1
  775. package/dist/unstable/cluster/Singleton.js.map +1 -1
  776. package/dist/unstable/cluster/SingletonAddress.d.ts +1 -1
  777. package/dist/unstable/cluster/SingletonAddress.js +1 -1
  778. package/dist/unstable/cluster/SingletonAddress.js.map +1 -1
  779. package/dist/unstable/cluster/Snowflake.d.ts +8 -8
  780. package/dist/unstable/cluster/Snowflake.js +8 -8
  781. package/dist/unstable/cluster/Snowflake.js.map +1 -1
  782. package/dist/unstable/cluster/SocketRunner.js.map +1 -1
  783. package/dist/unstable/cluster/SqlMessageStorage.js +1 -1
  784. package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
  785. package/dist/unstable/cluster/SqlRunnerStorage.d.ts.map +1 -1
  786. package/dist/unstable/cluster/SqlRunnerStorage.js +20 -5
  787. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  788. package/dist/unstable/cluster/TestRunner.js.map +1 -1
  789. package/dist/unstable/cluster/index.js.map +1 -1
  790. package/dist/unstable/cluster/internal/entityManager.js +5 -5
  791. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  792. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  793. package/dist/unstable/cluster/internal/hash.js.map +1 -1
  794. package/dist/unstable/cluster/internal/interruptors.js.map +1 -1
  795. package/dist/unstable/cluster/internal/resourceMap.js.map +1 -1
  796. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  797. package/dist/unstable/cluster/internal/shardLock.js.map +1 -1
  798. package/dist/unstable/devtools/DevTools.js.map +1 -1
  799. package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
  800. package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
  801. package/dist/unstable/devtools/DevToolsServer.js.map +1 -1
  802. package/dist/unstable/devtools/index.js.map +1 -1
  803. package/dist/unstable/encoding/Msgpack.d.ts.map +1 -1
  804. package/dist/unstable/encoding/Msgpack.js +6 -8
  805. package/dist/unstable/encoding/Msgpack.js.map +1 -1
  806. package/dist/unstable/encoding/Ndjson.js.map +1 -1
  807. package/dist/unstable/encoding/Sse.d.ts +72 -8
  808. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  809. package/dist/unstable/encoding/Sse.js +58 -8
  810. package/dist/unstable/encoding/Sse.js.map +1 -1
  811. package/dist/unstable/encoding/index.js.map +1 -1
  812. package/dist/unstable/eventlog/Event.d.ts +20 -20
  813. package/dist/unstable/eventlog/Event.js.map +1 -1
  814. package/dist/unstable/eventlog/EventGroup.d.ts +4 -4
  815. package/dist/unstable/eventlog/EventGroup.js.map +1 -1
  816. package/dist/unstable/eventlog/EventJournal.d.ts +15 -15
  817. package/dist/unstable/eventlog/EventJournal.js +13 -13
  818. package/dist/unstable/eventlog/EventJournal.js.map +1 -1
  819. package/dist/unstable/eventlog/EventLog.d.ts +3 -3
  820. package/dist/unstable/eventlog/EventLog.js +3 -3
  821. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  822. package/dist/unstable/eventlog/EventLogEncryption.d.ts +1 -1
  823. package/dist/unstable/eventlog/EventLogEncryption.js +1 -1
  824. package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
  825. package/dist/unstable/eventlog/EventLogMessage.d.ts +2 -2
  826. package/dist/unstable/eventlog/EventLogMessage.js +1 -1
  827. package/dist/unstable/eventlog/EventLogMessage.js.map +1 -1
  828. package/dist/unstable/eventlog/EventLogRemote.d.ts +15 -15
  829. package/dist/unstable/eventlog/EventLogRemote.js +1 -1
  830. package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
  831. package/dist/unstable/eventlog/EventLogServer.d.ts +11 -2
  832. package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
  833. package/dist/unstable/eventlog/EventLogServer.js +45 -21
  834. package/dist/unstable/eventlog/EventLogServer.js.map +1 -1
  835. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +4 -4
  836. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  837. package/dist/unstable/eventlog/EventLogServerEncrypted.js +13 -5
  838. package/dist/unstable/eventlog/EventLogServerEncrypted.js.map +1 -1
  839. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +5 -5
  840. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
  841. package/dist/unstable/eventlog/EventLogServerUnencrypted.js +14 -6
  842. package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -1
  843. package/dist/unstable/eventlog/EventLogSessionAuth.d.ts +1 -1
  844. package/dist/unstable/eventlog/EventLogSessionAuth.js +1 -1
  845. package/dist/unstable/eventlog/EventLogSessionAuth.js.map +1 -1
  846. package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -1
  847. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
  848. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  849. package/dist/unstable/eventlog/index.js.map +1 -1
  850. package/dist/unstable/eventlog/internal/identityRootSecretDerivation.js.map +1 -1
  851. package/dist/unstable/http/Cookies.d.ts +2 -2
  852. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  853. package/dist/unstable/http/Cookies.js +30 -18
  854. package/dist/unstable/http/Cookies.js.map +1 -1
  855. package/dist/unstable/http/Etag.d.ts +1 -1
  856. package/dist/unstable/http/Etag.js +1 -1
  857. package/dist/unstable/http/Etag.js.map +1 -1
  858. package/dist/unstable/http/FetchHttpClient.d.ts.map +1 -1
  859. package/dist/unstable/http/FetchHttpClient.js.map +1 -1
  860. package/dist/unstable/http/Headers.d.ts +2 -2
  861. package/dist/unstable/http/Headers.js +2 -2
  862. package/dist/unstable/http/Headers.js.map +1 -1
  863. package/dist/unstable/http/HttpBody.d.ts +5 -3
  864. package/dist/unstable/http/HttpBody.d.ts.map +1 -1
  865. package/dist/unstable/http/HttpBody.js +11 -5
  866. package/dist/unstable/http/HttpBody.js.map +1 -1
  867. package/dist/unstable/http/HttpClient.d.ts +51 -44
  868. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  869. package/dist/unstable/http/HttpClient.js +46 -17
  870. package/dist/unstable/http/HttpClient.js.map +1 -1
  871. package/dist/unstable/http/HttpClientError.js.map +1 -1
  872. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  873. package/dist/unstable/http/HttpClientRequest.js +2 -0
  874. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  875. package/dist/unstable/http/HttpClientResponse.d.ts +4 -4
  876. package/dist/unstable/http/HttpClientResponse.js +2 -2
  877. package/dist/unstable/http/HttpClientResponse.js.map +1 -1
  878. package/dist/unstable/http/HttpEffect.d.ts +6 -6
  879. package/dist/unstable/http/HttpEffect.js +3 -3
  880. package/dist/unstable/http/HttpEffect.js.map +1 -1
  881. package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
  882. package/dist/unstable/http/HttpMethod.d.ts +6 -9
  883. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  884. package/dist/unstable/http/HttpMethod.js +6 -9
  885. package/dist/unstable/http/HttpMethod.js.map +1 -1
  886. package/dist/unstable/http/HttpMiddleware.d.ts +75 -9
  887. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  888. package/dist/unstable/http/HttpMiddleware.js +164 -39
  889. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  890. package/dist/unstable/http/HttpPlatform.d.ts +76 -0
  891. package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
  892. package/dist/unstable/http/HttpPlatform.js +32 -0
  893. package/dist/unstable/http/HttpPlatform.js.map +1 -1
  894. package/dist/unstable/http/HttpRouter.d.ts +88 -89
  895. package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
  896. package/dist/unstable/http/HttpRouter.js +78 -79
  897. package/dist/unstable/http/HttpRouter.js.map +1 -1
  898. package/dist/unstable/http/HttpServer.d.ts +13 -13
  899. package/dist/unstable/http/HttpServer.js +6 -6
  900. package/dist/unstable/http/HttpServer.js.map +1 -1
  901. package/dist/unstable/http/HttpServerError.d.ts +2 -2
  902. package/dist/unstable/http/HttpServerError.js +2 -2
  903. package/dist/unstable/http/HttpServerError.js.map +1 -1
  904. package/dist/unstable/http/HttpServerRequest.d.ts +4 -4
  905. package/dist/unstable/http/HttpServerRequest.js +4 -4
  906. package/dist/unstable/http/HttpServerRequest.js.map +1 -1
  907. package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
  908. package/dist/unstable/http/HttpServerResponse.d.ts +22 -0
  909. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  910. package/dist/unstable/http/HttpServerResponse.js +10 -0
  911. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  912. package/dist/unstable/http/HttpStaticServer.d.ts +35 -7
  913. package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -1
  914. package/dist/unstable/http/HttpStaticServer.js +35 -7
  915. package/dist/unstable/http/HttpStaticServer.js.map +1 -1
  916. package/dist/unstable/http/HttpTraceContext.js.map +1 -1
  917. package/dist/unstable/http/Multipart.d.ts +6 -6
  918. package/dist/unstable/http/Multipart.js +5 -5
  919. package/dist/unstable/http/Multipart.js.map +1 -1
  920. package/dist/unstable/http/Template.js.map +1 -1
  921. package/dist/unstable/http/Url.d.ts +33 -63
  922. package/dist/unstable/http/Url.d.ts.map +1 -1
  923. package/dist/unstable/http/Url.js +14 -28
  924. package/dist/unstable/http/Url.js.map +1 -1
  925. package/dist/unstable/http/UrlParams.d.ts +10 -18
  926. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  927. package/dist/unstable/http/UrlParams.js +9 -17
  928. package/dist/unstable/http/UrlParams.js.map +1 -1
  929. package/dist/unstable/http/index.js.map +1 -1
  930. package/dist/unstable/http/internal/compression.d.ts +2 -0
  931. package/dist/unstable/http/internal/compression.d.ts.map +1 -0
  932. package/dist/unstable/http/internal/compression.js +155 -0
  933. package/dist/unstable/http/internal/compression.js.map +1 -0
  934. package/dist/unstable/http/internal/preResponseHandler.js.map +1 -1
  935. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  936. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +1 -1
  937. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  938. package/dist/unstable/httpapi/HttpApiBuilder.js +10 -11
  939. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  940. package/dist/unstable/httpapi/HttpApiClient.d.ts +4 -5
  941. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  942. package/dist/unstable/httpapi/HttpApiClient.js +11 -13
  943. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  944. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +42 -42
  945. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  946. package/dist/unstable/httpapi/HttpApiError.d.ts +13 -13
  947. package/dist/unstable/httpapi/HttpApiError.js +13 -13
  948. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  949. package/dist/unstable/httpapi/HttpApiGroup.d.ts +15 -15
  950. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  951. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +71 -24
  952. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  953. package/dist/unstable/httpapi/HttpApiMiddleware.js +57 -10
  954. package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
  955. package/dist/unstable/httpapi/HttpApiScalar.d.ts +0 -12
  956. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  957. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  958. package/dist/unstable/httpapi/HttpApiSchema.d.ts +6 -6
  959. package/dist/unstable/httpapi/HttpApiSchema.js +4 -4
  960. package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
  961. package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
  962. package/dist/unstable/httpapi/HttpApiSwagger.js.map +1 -1
  963. package/dist/unstable/httpapi/HttpApiTest.js.map +1 -1
  964. package/dist/unstable/httpapi/OpenApi.d.ts +13 -13
  965. package/dist/unstable/httpapi/OpenApi.js +13 -13
  966. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  967. package/dist/unstable/httpapi/index.js.map +1 -1
  968. package/dist/unstable/httpapi/internal/html.js.map +1 -1
  969. package/dist/unstable/httpapi/internal/httpApiScalar.js.map +1 -1
  970. package/dist/unstable/httpapi/internal/httpApiSwagger.js.map +1 -1
  971. package/dist/unstable/httpapi/internal/mediaType.js.map +1 -1
  972. package/dist/unstable/observability/Otlp.js.map +1 -1
  973. package/dist/unstable/observability/OtlpExporter.d.ts +12 -14
  974. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  975. package/dist/unstable/observability/OtlpExporter.js +17 -4
  976. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  977. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  978. package/dist/unstable/observability/OtlpMetrics.d.ts +4 -1
  979. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  980. package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
  981. package/dist/unstable/observability/OtlpResource.d.ts +16 -7
  982. package/dist/unstable/observability/OtlpResource.d.ts.map +1 -1
  983. package/dist/unstable/observability/OtlpResource.js +21 -12
  984. package/dist/unstable/observability/OtlpResource.js.map +1 -1
  985. package/dist/unstable/observability/OtlpSerialization.js.map +1 -1
  986. package/dist/unstable/observability/OtlpTracer.js.map +1 -1
  987. package/dist/unstable/observability/PrometheusMetrics.d.ts +13 -4
  988. package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
  989. package/dist/unstable/observability/PrometheusMetrics.js +10 -3
  990. package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
  991. package/dist/unstable/observability/index.js.map +1 -1
  992. package/dist/unstable/observability/internal/otlpEnv.js +1 -1
  993. package/dist/unstable/observability/internal/otlpEnv.js.map +1 -1
  994. package/dist/unstable/observability/internal/otlpProtobuf.js.map +1 -1
  995. package/dist/unstable/observability/internal/protobuf.js +3 -0
  996. package/dist/unstable/observability/internal/protobuf.js.map +1 -1
  997. package/dist/unstable/persistence/KeyValueStore.d.ts +8 -3
  998. package/dist/unstable/persistence/KeyValueStore.d.ts.map +1 -1
  999. package/dist/unstable/persistence/KeyValueStore.js +22 -13
  1000. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  1001. package/dist/unstable/persistence/Persistable.d.ts +8 -8
  1002. package/dist/unstable/persistence/Persistable.js.map +1 -1
  1003. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  1004. package/dist/unstable/persistence/PersistedQueue.d.ts +6 -6
  1005. package/dist/unstable/persistence/PersistedQueue.js +6 -6
  1006. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  1007. package/dist/unstable/persistence/Persistence.d.ts +3 -3
  1008. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  1009. package/dist/unstable/persistence/Persistence.js +91 -15
  1010. package/dist/unstable/persistence/Persistence.js.map +1 -1
  1011. package/dist/unstable/persistence/RateLimiter.d.ts +26 -15
  1012. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  1013. package/dist/unstable/persistence/RateLimiter.js +24 -13
  1014. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  1015. package/dist/unstable/persistence/Redis.d.ts +2 -2
  1016. package/dist/unstable/persistence/Redis.js +1 -1
  1017. package/dist/unstable/persistence/Redis.js.map +1 -1
  1018. package/dist/unstable/persistence/index.js.map +1 -1
  1019. package/dist/unstable/process/ChildProcess.d.ts +64 -21
  1020. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  1021. package/dist/unstable/process/ChildProcess.js +14 -5
  1022. package/dist/unstable/process/ChildProcess.js.map +1 -1
  1023. package/dist/unstable/process/ChildProcessSpawner.d.ts +21 -10
  1024. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  1025. package/dist/unstable/process/ChildProcessSpawner.js +1 -1
  1026. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  1027. package/dist/unstable/process/index.js.map +1 -1
  1028. package/dist/unstable/reactivity/AsyncResult.d.ts +8 -8
  1029. package/dist/unstable/reactivity/AsyncResult.d.ts.map +1 -1
  1030. package/dist/unstable/reactivity/AsyncResult.js +10 -10
  1031. package/dist/unstable/reactivity/AsyncResult.js.map +1 -1
  1032. package/dist/unstable/reactivity/Atom.d.ts +25 -22
  1033. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  1034. package/dist/unstable/reactivity/Atom.js +14 -13
  1035. package/dist/unstable/reactivity/Atom.js.map +1 -1
  1036. package/dist/unstable/reactivity/AtomHttpApi.d.ts +1 -1
  1037. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  1038. package/dist/unstable/reactivity/AtomHttpApi.js +4 -1
  1039. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  1040. package/dist/unstable/reactivity/AtomRef.js.map +1 -1
  1041. package/dist/unstable/reactivity/AtomRegistry.js +24 -3
  1042. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  1043. package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
  1044. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  1045. package/dist/unstable/reactivity/AtomRpc.js +4 -1
  1046. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  1047. package/dist/unstable/reactivity/Hydration.d.ts +1 -1
  1048. package/dist/unstable/reactivity/Hydration.js +1 -1
  1049. package/dist/unstable/reactivity/Hydration.js.map +1 -1
  1050. package/dist/unstable/reactivity/Reactivity.js.map +1 -1
  1051. package/dist/unstable/reactivity/index.js.map +1 -1
  1052. package/dist/unstable/rpc/Rpc.d.ts +35 -33
  1053. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  1054. package/dist/unstable/rpc/Rpc.js +4 -2
  1055. package/dist/unstable/rpc/Rpc.js.map +1 -1
  1056. package/dist/unstable/rpc/RpcClient.d.ts +12 -12
  1057. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  1058. package/dist/unstable/rpc/RpcClient.js +12 -11
  1059. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  1060. package/dist/unstable/rpc/RpcClientError.js.map +1 -1
  1061. package/dist/unstable/rpc/RpcGroup.d.ts +8 -8
  1062. package/dist/unstable/rpc/RpcGroup.js +1 -1
  1063. package/dist/unstable/rpc/RpcGroup.js.map +1 -1
  1064. package/dist/unstable/rpc/RpcMessage.d.ts +31 -30
  1065. package/dist/unstable/rpc/RpcMessage.d.ts.map +1 -1
  1066. package/dist/unstable/rpc/RpcMessage.js +6 -6
  1067. package/dist/unstable/rpc/RpcMessage.js.map +1 -1
  1068. package/dist/unstable/rpc/RpcMiddleware.d.ts +10 -10
  1069. package/dist/unstable/rpc/RpcMiddleware.js +1 -1
  1070. package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
  1071. package/dist/unstable/rpc/RpcSchema.d.ts +4 -4
  1072. package/dist/unstable/rpc/RpcSchema.js +3 -3
  1073. package/dist/unstable/rpc/RpcSchema.js.map +1 -1
  1074. package/dist/unstable/rpc/RpcSerialization.d.ts +58 -7
  1075. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  1076. package/dist/unstable/rpc/RpcSerialization.js +175 -96
  1077. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  1078. package/dist/unstable/rpc/RpcServer.d.ts +13 -13
  1079. package/dist/unstable/rpc/RpcServer.js +17 -13
  1080. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  1081. package/dist/unstable/rpc/RpcTest.js.map +1 -1
  1082. package/dist/unstable/rpc/RpcWorker.d.ts +5 -5
  1083. package/dist/unstable/rpc/RpcWorker.js +4 -4
  1084. package/dist/unstable/rpc/RpcWorker.js.map +1 -1
  1085. package/dist/unstable/rpc/Utils.js.map +1 -1
  1086. package/dist/unstable/rpc/index.js.map +1 -1
  1087. package/dist/unstable/schema/Model.d.ts +52 -50
  1088. package/dist/unstable/schema/Model.d.ts.map +1 -1
  1089. package/dist/unstable/schema/Model.js +35 -33
  1090. package/dist/unstable/schema/Model.js.map +1 -1
  1091. package/dist/unstable/schema/VariantSchema.d.ts +5 -5
  1092. package/dist/unstable/schema/VariantSchema.js +2 -2
  1093. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  1094. package/dist/unstable/schema/index.js.map +1 -1
  1095. package/dist/unstable/socket/Socket.d.ts +11 -3
  1096. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  1097. package/dist/unstable/socket/Socket.js +9 -4
  1098. package/dist/unstable/socket/Socket.js.map +1 -1
  1099. package/dist/unstable/socket/SocketServer.js.map +1 -1
  1100. package/dist/unstable/socket/index.js.map +1 -1
  1101. package/dist/unstable/sql/Migrator.js.map +1 -1
  1102. package/dist/unstable/sql/SqlClient.d.ts +1 -1
  1103. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  1104. package/dist/unstable/sql/SqlClient.js +2 -2
  1105. package/dist/unstable/sql/SqlClient.js.map +1 -1
  1106. package/dist/unstable/sql/SqlConnection.js.map +1 -1
  1107. package/dist/unstable/sql/SqlError.js.map +1 -1
  1108. package/dist/unstable/sql/SqlModel.d.ts +2 -2
  1109. package/dist/unstable/sql/SqlModel.js +2 -2
  1110. package/dist/unstable/sql/SqlModel.js.map +1 -1
  1111. package/dist/unstable/sql/SqlResolver.d.ts +5 -5
  1112. package/dist/unstable/sql/SqlResolver.js +2 -2
  1113. package/dist/unstable/sql/SqlResolver.js.map +1 -1
  1114. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  1115. package/dist/unstable/sql/SqlStream.js.map +1 -1
  1116. package/dist/unstable/sql/Statement.d.ts +6 -6
  1117. package/dist/unstable/sql/Statement.js +15 -15
  1118. package/dist/unstable/sql/Statement.js.map +1 -1
  1119. package/dist/unstable/sql/index.js.map +1 -1
  1120. package/dist/unstable/workers/Transferable.d.ts +1 -1
  1121. package/dist/unstable/workers/Transferable.js +1 -1
  1122. package/dist/unstable/workers/Transferable.js.map +1 -1
  1123. package/dist/unstable/workers/Worker.d.ts +2 -2
  1124. package/dist/unstable/workers/Worker.js +2 -2
  1125. package/dist/unstable/workers/Worker.js.map +1 -1
  1126. package/dist/unstable/workers/WorkerError.d.ts +7 -7
  1127. package/dist/unstable/workers/WorkerError.js +6 -6
  1128. package/dist/unstable/workers/WorkerError.js.map +1 -1
  1129. package/dist/unstable/workers/WorkerRunner.d.ts +1 -1
  1130. package/dist/unstable/workers/WorkerRunner.js +1 -1
  1131. package/dist/unstable/workers/WorkerRunner.js.map +1 -1
  1132. package/dist/unstable/workers/index.js.map +1 -1
  1133. package/dist/unstable/workflow/Activity.d.ts +2 -2
  1134. package/dist/unstable/workflow/Activity.js +2 -2
  1135. package/dist/unstable/workflow/Activity.js.map +1 -1
  1136. package/dist/unstable/workflow/DurableClock.d.ts +1 -1
  1137. package/dist/unstable/workflow/DurableClock.js +1 -1
  1138. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  1139. package/dist/unstable/workflow/DurableDeferred.d.ts +10 -10
  1140. package/dist/unstable/workflow/DurableDeferred.js +5 -5
  1141. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  1142. package/dist/unstable/workflow/DurableQueue.d.ts +22 -20
  1143. package/dist/unstable/workflow/DurableQueue.d.ts.map +1 -1
  1144. package/dist/unstable/workflow/DurableQueue.js +22 -20
  1145. package/dist/unstable/workflow/DurableQueue.js.map +1 -1
  1146. package/dist/unstable/workflow/Workflow.d.ts +21 -21
  1147. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  1148. package/dist/unstable/workflow/Workflow.js +13 -14
  1149. package/dist/unstable/workflow/Workflow.js.map +1 -1
  1150. package/dist/unstable/workflow/WorkflowEngine.d.ts +1 -1
  1151. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  1152. package/dist/unstable/workflow/WorkflowProxy.d.ts +4 -2
  1153. package/dist/unstable/workflow/WorkflowProxy.d.ts.map +1 -1
  1154. package/dist/unstable/workflow/WorkflowProxy.js +4 -2
  1155. package/dist/unstable/workflow/WorkflowProxy.js.map +1 -1
  1156. package/dist/unstable/workflow/WorkflowProxyServer.js.map +1 -1
  1157. package/dist/unstable/workflow/index.js.map +1 -1
  1158. package/dist/unstable/workflow/internal/crypto.js.map +1 -1
  1159. package/package.json +5 -6
  1160. package/src/Array.ts +982 -1045
  1161. package/src/BigDecimal.ts +433 -756
  1162. package/src/BigInt.ts +213 -269
  1163. package/src/Boolean.ts +146 -188
  1164. package/src/Cache.ts +409 -255
  1165. package/src/Cause.ts +167 -277
  1166. package/src/Channel.ts +891 -816
  1167. package/src/ChannelSchema.ts +1 -1
  1168. package/src/Chunk.ts +841 -1181
  1169. package/src/Clock.ts +181 -49
  1170. package/src/Combiner.ts +20 -33
  1171. package/src/Config.ts +615 -332
  1172. package/src/ConfigProvider.ts +214 -120
  1173. package/src/Console.ts +289 -39
  1174. package/src/Context.ts +319 -378
  1175. package/src/Cron.ts +68 -77
  1176. package/src/Crypto.ts +13 -15
  1177. package/src/Data.ts +60 -80
  1178. package/src/DateTime.ts +564 -660
  1179. package/src/Deferred.ts +253 -256
  1180. package/src/Duration.ts +216 -308
  1181. package/src/Effect.ts +2893 -3279
  1182. package/src/Encoding.ts +22 -40
  1183. package/src/Equal.ts +49 -39
  1184. package/src/Equivalence.ts +103 -105
  1185. package/src/ErrorReporter.ts +51 -27
  1186. package/src/ExecutionPlan.ts +13 -55
  1187. package/src/Exit.ts +116 -192
  1188. package/src/Fiber.ts +81 -148
  1189. package/src/FiberHandle.ts +152 -105
  1190. package/src/FiberMap.ts +225 -174
  1191. package/src/FiberSet.ts +124 -82
  1192. package/src/FileSystem.ts +155 -263
  1193. package/src/Filter.ts +61 -33
  1194. package/src/Formatter.ts +54 -56
  1195. package/src/Function.ts +76 -145
  1196. package/src/Graph.ts +416 -770
  1197. package/src/HKT.ts +12 -6
  1198. package/src/Hash.ts +52 -83
  1199. package/src/HashMap.ts +319 -411
  1200. package/src/HashRing.ts +1 -0
  1201. package/src/HashSet.ts +177 -284
  1202. package/src/Inspectable.ts +12 -12
  1203. package/src/Iterable.ts +620 -786
  1204. package/src/JsonPatch.ts +58 -112
  1205. package/src/JsonPointer.ts +8 -8
  1206. package/src/JsonSchema.ts +402 -244
  1207. package/src/Latch.ts +23 -35
  1208. package/src/Layer.ts +359 -260
  1209. package/src/LayerMap.ts +49 -29
  1210. package/src/LayerRef.ts +6 -2
  1211. package/src/LogLevel.ts +114 -214
  1212. package/src/Logger.ts +344 -697
  1213. package/src/ManagedRuntime.ts +7 -5
  1214. package/src/Match.ts +217 -252
  1215. package/src/Metric.ts +516 -1089
  1216. package/src/MutableHashMap.ts +218 -255
  1217. package/src/MutableHashSet.ts +84 -89
  1218. package/src/MutableList.ts +73 -370
  1219. package/src/MutableRef.ts +420 -243
  1220. package/src/Newtype.ts +21 -14
  1221. package/src/NonEmptyIterable.ts +7 -137
  1222. package/src/Number.ts +196 -233
  1223. package/src/Optic.ts +243 -383
  1224. package/src/Option.ts +447 -812
  1225. package/src/Order.ts +109 -109
  1226. package/src/Ordering.ts +20 -23
  1227. package/src/Path.ts +38 -41
  1228. package/src/Pipeable.ts +6 -5
  1229. package/src/PlatformError.ts +4 -4
  1230. package/src/Pool.ts +4 -2
  1231. package/src/Predicate.ts +200 -181
  1232. package/src/PrimaryKey.ts +7 -7
  1233. package/src/PubSub.ts +526 -552
  1234. package/src/Pull.ts +24 -18
  1235. package/src/Queue.ts +200 -159
  1236. package/src/Random.ts +49 -74
  1237. package/src/RcMap.ts +121 -63
  1238. package/src/RcRef.ts +24 -13
  1239. package/src/Record.ts +291 -488
  1240. package/src/Redactable.ts +10 -3
  1241. package/src/Redacted.ts +25 -25
  1242. package/src/Reducer.ts +8 -15
  1243. package/src/Ref.ts +221 -361
  1244. package/src/References.ts +102 -168
  1245. package/src/RegExp.ts +10 -14
  1246. package/src/Request.ts +31 -21
  1247. package/src/RequestResolver.ts +202 -91
  1248. package/src/Result.ts +312 -484
  1249. package/src/Runtime.ts +50 -75
  1250. package/src/Schedule.ts +308 -1734
  1251. package/src/Scheduler.ts +20 -7
  1252. package/src/Schema.ts +716 -745
  1253. package/src/SchemaAST.ts +466 -358
  1254. package/src/SchemaError.ts +7 -6
  1255. package/src/SchemaGetter.ts +242 -190
  1256. package/src/SchemaIssue.ts +89 -275
  1257. package/src/SchemaParser.ts +180 -93
  1258. package/src/SchemaRepresentation.ts +22 -40
  1259. package/src/SchemaTransformation.ts +129 -88
  1260. package/src/Scope.ts +123 -151
  1261. package/src/ScopedRef.ts +4 -4
  1262. package/src/Semaphore.ts +152 -51
  1263. package/src/Sink.ts +128 -113
  1264. package/src/Stdio.ts +1 -1
  1265. package/src/Stream.ts +2602 -3123
  1266. package/src/String.ts +275 -312
  1267. package/src/Struct.ts +109 -114
  1268. package/src/SubscriptionRef.ts +284 -252
  1269. package/src/Symbol.ts +3 -3
  1270. package/src/Terminal.ts +2 -2
  1271. package/src/Tracer.ts +102 -55
  1272. package/src/Trie.ts +287 -679
  1273. package/src/Tuple.ts +92 -127
  1274. package/src/TxChunk.ts +201 -121
  1275. package/src/TxDeferred.ts +62 -46
  1276. package/src/TxHashMap.ts +645 -799
  1277. package/src/TxHashSet.ts +443 -356
  1278. package/src/TxPriorityQueue.ts +130 -98
  1279. package/src/TxPubSub.ts +107 -80
  1280. package/src/TxQueue.ts +214 -183
  1281. package/src/TxReentrantLock.ts +97 -66
  1282. package/src/TxRef.ts +51 -32
  1283. package/src/TxSemaphore.ts +129 -95
  1284. package/src/TxSubscriptionRef.ts +97 -70
  1285. package/src/Types.ts +126 -67
  1286. package/src/Unify.ts +45 -65
  1287. package/src/Utils.ts +23 -16
  1288. package/src/internal/core.ts +2 -2
  1289. package/src/internal/dateTime.ts +6 -0
  1290. package/src/internal/effect.ts +93 -48
  1291. package/src/internal/persistence.ts +2 -0
  1292. package/src/internal/references.ts +3 -2
  1293. package/src/internal/schema/fromJsonSchemaDocument.ts +15 -13
  1294. package/src/internal/schema/fromRepresentation.ts +10 -16
  1295. package/src/internal/schema/parser.ts +22 -0
  1296. package/src/internal/schema/toJsonSchemaDocument.ts +60 -6
  1297. package/src/internal/schema/toRepresentation.ts +104 -119
  1298. package/src/internal/trie.ts +10 -11
  1299. package/src/testing/FastCheck.ts +8 -7
  1300. package/src/testing/TestClock.ts +72 -30
  1301. package/src/testing/TestConsole.ts +32 -31
  1302. package/src/testing/TestSchema.ts +29 -29
  1303. package/src/unstable/ai/AiError.ts +95 -118
  1304. package/src/unstable/ai/AnthropicStructuredOutput.ts +1 -1
  1305. package/src/unstable/ai/Chat.ts +132 -97
  1306. package/src/unstable/ai/IdGenerator.ts +32 -28
  1307. package/src/unstable/ai/LanguageModel.ts +107 -67
  1308. package/src/unstable/ai/McpProtocol.ts +48 -0
  1309. package/src/unstable/ai/McpSchema.ts +60 -50
  1310. package/src/unstable/ai/McpServer.ts +930 -304
  1311. package/src/unstable/ai/Model.ts +9 -20
  1312. package/src/unstable/ai/OpenAiStructuredOutput.ts +1 -1
  1313. package/src/unstable/ai/Prompt.ts +145 -43
  1314. package/src/unstable/ai/Response.ts +28 -14
  1315. package/src/unstable/ai/Telemetry.ts +46 -13
  1316. package/src/unstable/ai/Tokenizer.ts +14 -3
  1317. package/src/unstable/ai/Tool.ts +59 -44
  1318. package/src/unstable/ai/Toolkit.ts +26 -8
  1319. package/src/unstable/ai/index.ts +5 -0
  1320. package/src/unstable/ai/internal/mcpProtocol.ts +85 -0
  1321. package/src/unstable/ai/internal/mcpProtocolRegistry.ts +70 -0
  1322. package/src/unstable/ai/internal/structured-output.ts +13 -18
  1323. package/src/unstable/cli/Argument.ts +273 -69
  1324. package/src/unstable/cli/CliError.ts +69 -76
  1325. package/src/unstable/cli/CliOutput.ts +44 -58
  1326. package/src/unstable/cli/Command.ts +705 -107
  1327. package/src/unstable/cli/Flag.ts +418 -138
  1328. package/src/unstable/cli/GlobalFlag.ts +1 -1
  1329. package/src/unstable/cli/HelpDoc.ts +12 -4
  1330. package/src/unstable/cli/Param.ts +292 -78
  1331. package/src/unstable/cli/Primitive.ts +370 -149
  1332. package/src/unstable/cli/Prompt.ts +28 -14
  1333. package/src/unstable/cli/internal/lexer.ts +8 -2
  1334. package/src/unstable/cli/internal/parser.ts +2 -2
  1335. package/src/unstable/cluster/ClusterSchema.ts +8 -8
  1336. package/src/unstable/cluster/ClusterWorkflowEngine.ts +5 -1
  1337. package/src/unstable/cluster/Entity.ts +15 -16
  1338. package/src/unstable/cluster/EntityProxy.ts +4 -2
  1339. package/src/unstable/cluster/EntityResource.ts +2 -2
  1340. package/src/unstable/cluster/Envelope.ts +3 -3
  1341. package/src/unstable/cluster/HttpRunner.ts +6 -4
  1342. package/src/unstable/cluster/Message.ts +9 -9
  1343. package/src/unstable/cluster/MessageStorage.ts +15 -15
  1344. package/src/unstable/cluster/Reply.ts +4 -6
  1345. package/src/unstable/cluster/RunnerHealth.ts +1 -1
  1346. package/src/unstable/cluster/RunnerServer.ts +41 -8
  1347. package/src/unstable/cluster/RunnerStorage.ts +2 -2
  1348. package/src/unstable/cluster/Runners.ts +23 -12
  1349. package/src/unstable/cluster/Sharding.ts +7 -8
  1350. package/src/unstable/cluster/ShardingConfig.ts +3 -3
  1351. package/src/unstable/cluster/SingletonAddress.ts +1 -1
  1352. package/src/unstable/cluster/Snowflake.ts +8 -8
  1353. package/src/unstable/cluster/SqlMessageStorage.ts +1 -1
  1354. package/src/unstable/cluster/SqlRunnerStorage.ts +21 -5
  1355. package/src/unstable/cluster/internal/entityManager.ts +11 -15
  1356. package/src/unstable/encoding/Msgpack.ts +6 -8
  1357. package/src/unstable/encoding/Sse.ts +98 -16
  1358. package/src/unstable/eventlog/Event.ts +20 -20
  1359. package/src/unstable/eventlog/EventGroup.ts +4 -4
  1360. package/src/unstable/eventlog/EventJournal.ts +15 -15
  1361. package/src/unstable/eventlog/EventLog.ts +3 -3
  1362. package/src/unstable/eventlog/EventLogEncryption.ts +1 -1
  1363. package/src/unstable/eventlog/EventLogMessage.ts +2 -2
  1364. package/src/unstable/eventlog/EventLogRemote.ts +1 -1
  1365. package/src/unstable/eventlog/EventLogServer.ts +41 -7
  1366. package/src/unstable/eventlog/EventLogServerEncrypted.ts +13 -5
  1367. package/src/unstable/eventlog/EventLogServerUnencrypted.ts +14 -6
  1368. package/src/unstable/eventlog/EventLogSessionAuth.ts +1 -1
  1369. package/src/unstable/http/Cookies.ts +35 -21
  1370. package/src/unstable/http/Etag.ts +1 -1
  1371. package/src/unstable/http/FetchHttpClient.ts +3 -1
  1372. package/src/unstable/http/Headers.ts +2 -2
  1373. package/src/unstable/http/HttpBody.ts +20 -5
  1374. package/src/unstable/http/HttpClient.ts +83 -55
  1375. package/src/unstable/http/HttpClientRequest.ts +2 -0
  1376. package/src/unstable/http/HttpClientResponse.ts +4 -4
  1377. package/src/unstable/http/HttpEffect.ts +8 -8
  1378. package/src/unstable/http/HttpMethod.ts +6 -9
  1379. package/src/unstable/http/HttpMiddleware.ts +202 -39
  1380. package/src/unstable/http/HttpPlatform.ts +95 -0
  1381. package/src/unstable/http/HttpRouter.ts +102 -98
  1382. package/src/unstable/http/HttpServer.ts +13 -13
  1383. package/src/unstable/http/HttpServerError.ts +2 -2
  1384. package/src/unstable/http/HttpServerRequest.ts +4 -4
  1385. package/src/unstable/http/HttpServerResponse.ts +30 -0
  1386. package/src/unstable/http/HttpStaticServer.ts +35 -7
  1387. package/src/unstable/http/Multipart.ts +6 -6
  1388. package/src/unstable/http/Url.ts +33 -63
  1389. package/src/unstable/http/UrlParams.ts +10 -18
  1390. package/src/unstable/http/internal/compression.ts +196 -0
  1391. package/src/unstable/httpapi/HttpApiBuilder.ts +10 -9
  1392. package/src/unstable/httpapi/HttpApiClient.ts +14 -14
  1393. package/src/unstable/httpapi/HttpApiEndpoint.ts +42 -42
  1394. package/src/unstable/httpapi/HttpApiError.ts +13 -13
  1395. package/src/unstable/httpapi/HttpApiGroup.ts +15 -15
  1396. package/src/unstable/httpapi/HttpApiMiddleware.ts +71 -24
  1397. package/src/unstable/httpapi/HttpApiScalar.ts +0 -12
  1398. package/src/unstable/httpapi/HttpApiSchema.ts +6 -6
  1399. package/src/unstable/httpapi/OpenApi.ts +13 -13
  1400. package/src/unstable/observability/OtlpExporter.ts +31 -19
  1401. package/src/unstable/observability/OtlpMetrics.ts +4 -1
  1402. package/src/unstable/observability/OtlpResource.ts +26 -17
  1403. package/src/unstable/observability/PrometheusMetrics.ts +13 -4
  1404. package/src/unstable/observability/internal/otlpEnv.ts +1 -1
  1405. package/src/unstable/observability/internal/protobuf.ts +3 -0
  1406. package/src/unstable/persistence/KeyValueStore.ts +72 -49
  1407. package/src/unstable/persistence/Persistable.ts +8 -8
  1408. package/src/unstable/persistence/PersistedQueue.ts +6 -6
  1409. package/src/unstable/persistence/Persistence.ts +126 -19
  1410. package/src/unstable/persistence/RateLimiter.ts +26 -15
  1411. package/src/unstable/persistence/Redis.ts +2 -2
  1412. package/src/unstable/process/ChildProcess.ts +64 -21
  1413. package/src/unstable/process/ChildProcessSpawner.ts +21 -10
  1414. package/src/unstable/reactivity/AsyncResult.ts +12 -13
  1415. package/src/unstable/reactivity/Atom.ts +28 -25
  1416. package/src/unstable/reactivity/AtomHttpApi.ts +5 -4
  1417. package/src/unstable/reactivity/AtomRegistry.ts +24 -3
  1418. package/src/unstable/reactivity/AtomRpc.ts +5 -4
  1419. package/src/unstable/reactivity/Hydration.ts +1 -1
  1420. package/src/unstable/rpc/Rpc.ts +35 -33
  1421. package/src/unstable/rpc/RpcClient.ts +16 -15
  1422. package/src/unstable/rpc/RpcGroup.ts +8 -8
  1423. package/src/unstable/rpc/RpcMessage.ts +31 -30
  1424. package/src/unstable/rpc/RpcMiddleware.ts +10 -10
  1425. package/src/unstable/rpc/RpcSchema.ts +4 -4
  1426. package/src/unstable/rpc/RpcSerialization.ts +167 -68
  1427. package/src/unstable/rpc/RpcServer.ts +18 -15
  1428. package/src/unstable/rpc/RpcWorker.ts +5 -5
  1429. package/src/unstable/schema/Model.ts +52 -50
  1430. package/src/unstable/schema/VariantSchema.ts +5 -5
  1431. package/src/unstable/socket/Socket.ts +17 -4
  1432. package/src/unstable/sql/SqlClient.ts +5 -6
  1433. package/src/unstable/sql/SqlModel.ts +2 -2
  1434. package/src/unstable/sql/SqlResolver.ts +5 -5
  1435. package/src/unstable/sql/Statement.ts +24 -23
  1436. package/src/unstable/workers/Transferable.ts +1 -1
  1437. package/src/unstable/workers/Worker.ts +2 -2
  1438. package/src/unstable/workers/WorkerError.ts +7 -7
  1439. package/src/unstable/workers/WorkerRunner.ts +1 -1
  1440. package/src/unstable/workflow/Activity.ts +2 -2
  1441. package/src/unstable/workflow/DurableClock.ts +1 -1
  1442. package/src/unstable/workflow/DurableDeferred.ts +10 -10
  1443. package/src/unstable/workflow/DurableQueue.ts +22 -20
  1444. package/src/unstable/workflow/Workflow.ts +23 -23
  1445. package/src/unstable/workflow/WorkflowEngine.ts +1 -1
  1446. package/src/unstable/workflow/WorkflowProxy.ts +4 -2
  1447. package/dist/internal/version.d.ts +0 -3
  1448. package/dist/internal/version.d.ts.map +0 -1
  1449. package/dist/internal/version.js +0 -2
  1450. package/dist/internal/version.js.map +0 -1
  1451. package/src/internal/version.ts +0 -2
package/src/Logger.ts CHANGED
@@ -42,23 +42,20 @@ const TypeId = "~effect/Logger"
42
42
  *
43
43
  * **Example** (Creating custom loggers)
44
44
  *
45
- * ```ts
45
+ * ```ts import.meta.vitest
46
46
  * import { Effect, Logger } from "effect"
47
47
  *
48
- * // Create a custom logger that accepts unknown messages and returns void
48
+ * const messages: Array<string> = []
49
49
  * const stringLogger = Logger.make<unknown, void>((options) => {
50
- * console.log(`[${options.logLevel}] ${options.message}`)
50
+ * messages.push(`[${options.logLevel}] ${options.message}`)
51
51
  * })
52
52
  *
53
- * // Create a logger that accepts any message type and returns a formatted string
54
- * const formattedLogger = Logger.make<unknown, string>((options) =>
55
- * `${options.date.toISOString()} [${options.logLevel}] ${options.message}`
56
- * )
57
- *
58
- * // Use the logger in an Effect program
59
53
  * const program = Effect.log("Hello World").pipe(
60
54
  * Effect.provide(Logger.layer([stringLogger]))
61
55
  * )
56
+ *
57
+ * Effect.runSync(program)
58
+ * messages // => ["[Info] Hello World"]
62
59
  * ```
63
60
  *
64
61
  * @category models
@@ -78,24 +75,24 @@ export interface Logger<in Message, out Output> extends Pipeable {
78
75
  *
79
76
  * **Example** (Accessing logger options)
80
77
  *
81
- * ```ts
78
+ * ```ts import.meta.vitest
82
79
  * import { Effect, Logger } from "effect"
83
80
  *
84
- * // Options interface provides all logging context
81
+ * const outputs: Array<unknown> = []
85
82
  * const detailedLogger = Logger.make((options) => {
86
- * const output = {
83
+ * outputs.push({
87
84
  * message: options.message,
88
85
  * level: options.logLevel,
89
- * timestamp: options.date.toISOString(),
90
- * fiberId: options.fiber.id,
91
- * hasCause: options.cause !== undefined
92
- * }
93
- * console.log(JSON.stringify(output))
86
+ * hasCause: options.cause.reasons.length > 0
87
+ * })
94
88
  * })
95
89
  *
96
90
  * const program = Effect.log("Processing request").pipe(
97
91
  * Effect.provide(Logger.layer([detailedLogger]))
98
92
  * )
93
+ *
94
+ * Effect.runSync(program)
95
+ * outputs // => [{ message: ["Processing request"], level: "Info", hasCause: false }]
99
96
  * ```
100
97
  *
101
98
  * @category options
@@ -114,16 +111,14 @@ export interface Options<out Message> {
114
111
  *
115
112
  * **Example** (Checking logger values)
116
113
  *
117
- * ```ts
114
+ * ```ts import.meta.vitest
118
115
  * import { Logger } from "effect"
119
116
  *
120
- * const myLogger = Logger.make((options) => {
121
- * console.log(options.message)
122
- * })
117
+ * const myLogger = Logger.make(() => undefined)
123
118
  *
124
- * console.log(Logger.isLogger(myLogger)) // true
125
- * console.log(Logger.isLogger("not a logger")) // false
126
- * console.log(Logger.isLogger({ log: () => {} })) // false
119
+ * Logger.isLogger(myLogger) // => true
120
+ * Logger.isLogger("not a logger") // => false
121
+ * Logger.isLogger({ log: () => {} }) // => false
127
122
  * ```
128
123
  *
129
124
  * @category guards
@@ -142,26 +137,26 @@ export const isLogger = (u: unknown): u is Logger<unknown, unknown> => Predicate
142
137
  *
143
138
  * **Example** (Accessing current loggers)
144
139
  *
145
- * ```ts
140
+ * ```ts import.meta.vitest
146
141
  * import { Effect, Logger } from "effect"
147
142
  *
148
- * // Access current loggers from fiber context
143
+ * const messages: Array<unknown> = []
144
+ * const customLogger = Logger.make((options) => {
145
+ * messages.push(options.message)
146
+ * })
149
147
  * const program = Effect.gen(function*() {
150
148
  * const currentLoggers = yield* Effect.service(Logger.CurrentLoggers)
151
- * console.log(`Number of active loggers: ${currentLoggers.size}`)
152
- *
153
- * // Add a custom logger to the set
154
- * const customLogger = Logger.make((options) => {
155
- * console.log(`Custom: ${options.message}`)
156
- * })
157
- *
158
149
  * yield* Effect.log("Hello from custom logger").pipe(
159
150
  * Effect.provide(Logger.layer([customLogger]))
160
151
  * )
152
+ * return currentLoggers.has(Logger.defaultLogger)
161
153
  * })
154
+ *
155
+ * Effect.runSync(program) // => true
156
+ * messages // => [["Hello from custom logger"]]
162
157
  * ```
163
158
  *
164
- * @category references
159
+ * @category services
165
160
  * @since 4.0.0
166
161
  */
167
162
  export const CurrentLoggers: Context.Reference<ReadonlySet<Logger<unknown, any>>> = effect.CurrentLoggers
@@ -184,7 +179,7 @@ export const CurrentLoggers: Context.Reference<ReadonlySet<Logger<unknown, any>>
184
179
  * @see {@link consolePretty} for the TTY-mode pretty console logger affected by this reference
185
180
  * @see {@link withConsoleError} for routing a specific formatter logger to `console.error`
186
181
  *
187
- * @category references
182
+ * @category services
188
183
  * @since 4.0.0
189
184
  */
190
185
  export const LogToStderr: Context.Reference<boolean> = effect.LogToStderr
@@ -199,27 +194,24 @@ export const LogToStderr: Context.Reference<boolean> = effect.LogToStderr
199
194
  *
200
195
  * **Example** (Transforming logger output)
201
196
  *
202
- * ```ts
203
- * import { Logger } from "effect"
197
+ * ```ts import.meta.vitest
198
+ * import { Effect, Logger } from "effect"
204
199
  *
205
- * // Create a logger that outputs objects
200
+ * const outputs: Array<unknown> = []
206
201
  * const structuredLogger = Logger.make((options) => ({
207
- * level: options.logLevel,
208
- * message: options.message,
209
- * timestamp: options.date.toISOString()
202
+ * message: options.message
210
203
  * }))
211
204
  *
212
- * // Transform the output to JSON strings
213
- * const jsonStringLogger = Logger.map(
214
- * structuredLogger,
215
- * (output) => JSON.stringify(output)
216
- * )
217
- *
218
205
  * // Transform to uppercase messages
219
206
  * const uppercaseLogger = Logger.map(
220
207
  * structuredLogger,
221
208
  * (output) => ({ ...output, message: String(output.message).toUpperCase() })
222
209
  * )
210
+ *
211
+ * const collector = Logger.make((options) => outputs.push(uppercaseLogger.log(options)))
212
+ * const program = Effect.log("hello").pipe(Effect.provide(Logger.layer([collector])))
213
+ * Effect.runSync(program)
214
+ * outputs // => [{ message: "HELLO" }]
223
215
  * ```
224
216
  *
225
217
  * @category mapping
@@ -236,27 +228,24 @@ export const map = dual<
236
228
  *
237
229
  * **Example** (Transforming logger output)
238
230
  *
239
- * ```ts
240
- * import { Logger } from "effect"
231
+ * ```ts import.meta.vitest
232
+ * import { Effect, Logger } from "effect"
241
233
  *
242
- * // Create a logger that outputs objects
234
+ * const outputs: Array<unknown> = []
243
235
  * const structuredLogger = Logger.make((options) => ({
244
- * level: options.logLevel,
245
- * message: options.message,
246
- * timestamp: options.date.toISOString()
236
+ * message: options.message
247
237
  * }))
248
238
  *
249
- * // Transform the output to JSON strings
250
- * const jsonStringLogger = Logger.map(
251
- * structuredLogger,
252
- * (output) => JSON.stringify(output)
253
- * )
254
- *
255
239
  * // Transform to uppercase messages
256
240
  * const uppercaseLogger = Logger.map(
257
241
  * structuredLogger,
258
242
  * (output) => ({ ...output, message: String(output.message).toUpperCase() })
259
243
  * )
244
+ *
245
+ * const collector = Logger.make((options) => outputs.push(uppercaseLogger.log(options)))
246
+ * const program = Effect.log("hello").pipe(Effect.provide(Logger.layer([collector])))
247
+ * Effect.runSync(program)
248
+ * outputs // => [{ message: "HELLO" }]
260
249
  * ```
261
250
  *
262
251
  * @category mapping
@@ -275,27 +264,24 @@ export const map = dual<
275
264
  *
276
265
  * **Example** (Transforming logger output)
277
266
  *
278
- * ```ts
279
- * import { Logger } from "effect"
267
+ * ```ts import.meta.vitest
268
+ * import { Effect, Logger } from "effect"
280
269
  *
281
- * // Create a logger that outputs objects
270
+ * const outputs: Array<unknown> = []
282
271
  * const structuredLogger = Logger.make((options) => ({
283
- * level: options.logLevel,
284
- * message: options.message,
285
- * timestamp: options.date.toISOString()
272
+ * message: options.message
286
273
  * }))
287
274
  *
288
- * // Transform the output to JSON strings
289
- * const jsonStringLogger = Logger.map(
290
- * structuredLogger,
291
- * (output) => JSON.stringify(output)
292
- * )
293
- *
294
275
  * // Transform to uppercase messages
295
276
  * const uppercaseLogger = Logger.map(
296
277
  * structuredLogger,
297
278
  * (output) => ({ ...output, message: String(output.message).toUpperCase() })
298
279
  * )
280
+ *
281
+ * const collector = Logger.make((options) => outputs.push(uppercaseLogger.log(options)))
282
+ * const program = Effect.log("hello").pipe(Effect.provide(Logger.layer([collector])))
283
+ * Effect.runSync(program)
284
+ * outputs // => [{ message: "HELLO" }]
299
285
  * ```
300
286
  *
301
287
  * @category mapping
@@ -315,20 +301,23 @@ export const map = dual<
315
301
  *
316
302
  * **Example** (Writing logger output with console.log)
317
303
  *
318
- * ```ts
304
+ * ```ts import.meta.vitest
319
305
  * import { Effect, Logger } from "effect"
306
+ * import { TestConsole } from "effect/testing"
320
307
  *
321
308
  * // Create a custom formatter
322
309
  * const customFormatter = Logger.make((options) =>
323
- * `[${options.date.toISOString()}] ${options.logLevel}: ${options.message}`
310
+ * `${options.logLevel}: ${options.message}`
324
311
  * )
325
312
  *
326
- * // Route to console
327
313
  * const consoleLogger = Logger.withConsoleLog(customFormatter)
328
314
  *
329
- * const program = Effect.log("Hello World").pipe(
330
- * Effect.provide(Logger.layer([consoleLogger]))
331
- * )
315
+ * const program = Effect.gen(function*() {
316
+ * yield* Effect.log("Hello World").pipe(Effect.provide(Logger.layer([consoleLogger])))
317
+ * return yield* TestConsole.logLines
318
+ * }).pipe(Effect.provide(TestConsole.layer))
319
+ *
320
+ * await Effect.runPromise(program) // => ["Info: Hello World"]
332
321
  * ```
333
322
  *
334
323
  * @category logging
@@ -352,20 +341,23 @@ export const withConsoleLog = <Message, Output>(
352
341
  *
353
342
  * **Example** (Writing logger output with console.error)
354
343
  *
355
- * ```ts
344
+ * ```ts import.meta.vitest
356
345
  * import { Effect, Logger } from "effect"
346
+ * import { TestConsole } from "effect/testing"
357
347
  *
358
348
  * // Create an error-specific formatter
359
349
  * const errorFormatter = Logger.make((options) =>
360
- * `ERROR [${options.date.toISOString()}]: ${options.message}`
350
+ * `ERROR: ${options.message}`
361
351
  * )
362
352
  *
363
- * // Route to console.error
364
353
  * const errorLogger = Logger.withConsoleError(errorFormatter)
365
354
  *
366
- * const program = Effect.logError("Database connection failed").pipe(
367
- * Effect.provide(Logger.layer([errorLogger]))
368
- * )
355
+ * const program = Effect.gen(function*() {
356
+ * yield* Effect.logError("Database connection failed").pipe(Effect.provide(Logger.layer([errorLogger])))
357
+ * return yield* TestConsole.errorLines
358
+ * }).pipe(Effect.provide(TestConsole.layer))
359
+ *
360
+ * await Effect.runPromise(program) // => ["ERROR: Database connection failed"]
369
361
  * ```
370
362
  *
371
363
  * @category logging
@@ -393,9 +385,15 @@ export const withConsoleError = <Message, Output>(
393
385
  *
394
386
  * **Example** (Writing logs with level-based console methods)
395
387
  *
396
- * ```ts
397
- * import { Effect, Logger } from "effect"
388
+ * ```ts import.meta.vitest
389
+ * import { Console, Effect, Logger } from "effect"
398
390
  *
391
+ * const messages: Array<ReadonlyArray<unknown>> = []
392
+ * const testConsole: Console.Console = Object.assign(Object.create(console), {
393
+ * info: (message: unknown) => messages.push(["info", message]),
394
+ * warn: (message: unknown) => messages.push(["warn", message]),
395
+ * error: (message: unknown) => messages.push(["error", message])
396
+ * })
399
397
  * const formatter = Logger.make((options) =>
400
398
  * `[${options.logLevel}] ${options.message}`
401
399
  * )
@@ -406,10 +404,14 @@ export const withConsoleError = <Message, Output>(
406
404
  * yield* Effect.logInfo("Info message") // -> console.info
407
405
  * yield* Effect.logWarning("Warning") // -> console.warn
408
406
  * yield* Effect.logError("Error occurred") // -> console.error
409
- * yield* Effect.logDebug("Debug info") // -> console.debug
410
- * }).pipe(
411
- * Effect.provide(Logger.layer([leveledLogger]))
412
- * )
407
+ * }).pipe(Effect.provide(Logger.layer([leveledLogger])))
408
+ * Effect.runSync(Effect.provideService(program, Console.Console, testConsole))
409
+ * const expected = [
410
+ * ["info", "[Info] Info message"],
411
+ * ["warn", "[Warn] Warning"],
412
+ * ["error", "[Error] Error occurred"]
413
+ * ]
414
+ * messages // => expected
413
415
  * ```
414
416
  *
415
417
  * @category logging
@@ -508,34 +510,20 @@ const format = (
508
510
  *
509
511
  * **Example** (Creating loggers from functions)
510
512
  *
511
- * ```ts
512
- * import { Effect, Logger, References } from "effect"
513
+ * ```ts import.meta.vitest
514
+ * import { Effect, Logger } from "effect"
513
515
  *
514
- * // Simple text logger
516
+ * const outputs: Array<string> = []
515
517
  * const textLogger = Logger.make((options) =>
516
- * `${options.date.toISOString()} [${options.logLevel}] ${options.message}`
518
+ * `${options.logLevel}: ${options.message}`
517
519
  * )
518
- *
519
- * // Structured object logger
520
- * const objectLogger = Logger.make((options) => ({
521
- * timestamp: options.date.toISOString(),
522
- * level: options.logLevel,
523
- * message: options.message,
524
- * fiberId: options.fiber.id,
525
- * annotations: options.fiber.getRef(References.CurrentLogAnnotations)
526
- * }))
527
- *
528
- * // Custom filtering logger
529
- * const filteredLogger = Logger.make((options) => {
530
- * if (options.logLevel === "Debug") {
531
- * return // Skip debug messages
532
- * }
533
- * return `${options.logLevel}: ${options.message}`
534
- * })
520
+ * const collector = Logger.make((options) => outputs.push(textLogger.log(options)))
535
521
  *
536
522
  * const program = Effect.log("Hello World").pipe(
537
- * Effect.provide(Logger.layer([textLogger]))
523
+ * Effect.provide(Logger.layer([collector]))
538
524
  * )
525
+ * Effect.runSync(program)
526
+ * outputs // => ["Info: Hello World"]
539
527
  * ```
540
528
  *
541
529
  * @category constructors
@@ -550,25 +538,10 @@ export const make: <Message, Output>(
550
538
  *
551
539
  * **Example** (Referencing the default logger)
552
540
  *
553
- * ```ts
554
- * import { Effect, Logger } from "effect"
555
- *
556
- * // Use the default logger (automatically used by Effect runtime)
557
- * const program = Effect.gen(function*() {
558
- * yield* Effect.log("This uses the default logger")
559
- * yield* Effect.logInfo("Info message")
560
- * yield* Effect.logError("Error message")
561
- * })
562
- *
563
- * // Explicitly use the default logger
564
- * const withDefaultLogger = Effect.log("Explicit default").pipe(
565
- * Effect.provide(Logger.layer([Logger.defaultLogger]))
566
- * )
541
+ * ```ts import.meta.vitest
542
+ * import { Logger } from "effect"
567
543
  *
568
- * // Compare with custom logger
569
- * const customLogger = Logger.make((options) => {
570
- * console.log(`CUSTOM: ${options.message}`)
571
- * })
544
+ * Logger.isLogger(Logger.defaultLogger) // => true
572
545
  * ```
573
546
  *
574
547
  * @category constructors
@@ -586,24 +559,24 @@ export const defaultLogger: Logger<unknown, void> = effect.defaultLogger
586
559
  *
587
560
  * **Example** (Formatting logs as simple strings)
588
561
  *
589
- * ```ts
562
+ * ```ts import.meta.vitest
590
563
  * import { Effect, Logger } from "effect"
564
+ * import { TestConsole } from "effect/testing"
591
565
  *
592
566
  * // Use the simple format logger
593
- * const simpleLoggerProgram = Effect.log("Hello Simple Format").pipe(
594
- * Effect.provide(Logger.layer([Logger.formatSimple]))
567
+ * const stableSimple = Logger.map(Logger.formatSimple, (output) =>
568
+ * output
569
+ * .replace(/timestamp=\S+ /, "")
570
+ * .replace(/fiber=#\d+ /, "")
595
571
  * )
596
- *
597
- * // Combine with console output
598
- * const consoleSimpleLogger = Logger.withConsoleLog(Logger.formatSimple)
599
- *
600
572
  * const program = Effect.gen(function*() {
601
- * yield* Effect.log("Application started")
602
- * yield* Effect.logInfo("Processing data")
603
- * yield* Effect.logWarning("Memory usage high")
604
- * }).pipe(
605
- * Effect.provide(Logger.layer([consoleSimpleLogger]))
606
- * )
573
+ * yield* Effect.log("Application started").pipe(
574
+ * Effect.provide(Logger.layer([Logger.withConsoleLog(stableSimple)]))
575
+ * )
576
+ * return yield* TestConsole.logLines
577
+ * }).pipe(Effect.provide(TestConsole.layer))
578
+ *
579
+ * await Effect.runPromise(program) // => ["level=Info message=\"Application started\""]
607
580
  * ```
608
581
  *
609
582
  * @category constructors
@@ -622,27 +595,23 @@ export const formatSimple = effect.loggerMake(format(escapeDoubleQuotes))
622
595
  *
623
596
  * **Example** (Formatting logs as logfmt)
624
597
  *
625
- * ```ts
598
+ * ```ts import.meta.vitest
626
599
  * import { Effect, Logger } from "effect"
600
+ * import { TestConsole } from "effect/testing"
627
601
  *
628
- * // Use the logfmt format logger
629
- * const logfmtLoggerProgram = Effect.log("Hello LogFmt Format").pipe(
630
- * Effect.provide(Logger.layer([Logger.formatLogFmt]))
631
- * )
632
- *
633
- * // Perfect for structured logging systems
634
- * const structuredProgram = Effect.gen(function*() {
635
- * yield* Effect.log("User login", { userId: 123, method: "OAuth" })
636
- * yield* Effect.logInfo("Request processed", {
637
- * duration: 45,
638
- * status: "success"
639
- * })
640
- * }).pipe(
641
- * Effect.provide(Logger.layer([Logger.withConsoleLog(Logger.formatLogFmt)]))
602
+ * const stableLogFmt = Logger.map(Logger.formatLogFmt, (output) =>
603
+ * output
604
+ * .replace(/timestamp=\S+ /, "")
605
+ * .replace(/fiber=#\d+ /, "")
642
606
  * )
607
+ * const program = Effect.gen(function*() {
608
+ * yield* Effect.log("User login").pipe(
609
+ * Effect.provide(Logger.layer([Logger.withConsoleLog(stableLogFmt)]))
610
+ * )
611
+ * return yield* TestConsole.logLines
612
+ * }).pipe(Effect.provide(TestConsole.layer))
643
613
  *
644
- * // Good for log aggregation systems like Splunk, ELK
645
- * const productionLogger = Logger.formatLogFmt
614
+ * await Effect.runPromise(program) // => ["level=Info message=\"User login\""]
646
615
  * ```
647
616
  *
648
617
  * @category constructors
@@ -662,30 +631,22 @@ export const formatLogFmt = effect.loggerMake(format(JSON.stringify, 0))
662
631
  *
663
632
  * **Example** (Formatting logs as structured objects)
664
633
  *
665
- * ```ts
634
+ * ```ts import.meta.vitest
666
635
  * import { Effect, Logger } from "effect"
636
+ * import { TestConsole } from "effect/testing"
667
637
  *
668
- * // Use the structured format logger
669
- * const structuredLoggerProgram = Effect.log("Hello Structured Format").pipe(
670
- * Effect.provide(Logger.layer([Logger.formatStructured]))
671
- * )
672
- *
673
- * // Perfect for JSON processing and analytics
674
- * const analyticsProgram = Effect.gen(function*() {
675
- * yield* Effect.log("User action", { action: "click", element: "button" })
676
- * yield* Effect.logInfo("API call", { endpoint: "/users", duration: 150 })
677
- * }).pipe(
678
- * Effect.annotateLogs("sessionId", "abc123"),
679
- * Effect.withLogSpan("request"),
680
- * Effect.provide(Logger.layer([Logger.formatStructured]))
681
- * )
638
+ * const stableStructured = Logger.map(Logger.formatStructured, (output) => ({
639
+ * message: output.message,
640
+ * level: output.level
641
+ * }))
642
+ * const program = Effect.gen(function*() {
643
+ * yield* Effect.log("User action").pipe(
644
+ * Effect.provide(Logger.layer([Logger.withConsoleLog(stableStructured)]))
645
+ * )
646
+ * return yield* TestConsole.logLines
647
+ * }).pipe(Effect.provide(TestConsole.layer))
682
648
  *
683
- * // Process structured output
684
- * const processingLogger = Logger.map(Logger.formatStructured, (output) => {
685
- * // Process the structured object
686
- * const enhanced = { ...output, processed: true }
687
- * return enhanced
688
- * })
649
+ * await Effect.runPromise(program) // => [{ message: "User action", level: "INFO" }]
689
650
  * ```
690
651
  *
691
652
  * @category constructors
@@ -740,35 +701,22 @@ export const formatStructured: Logger<unknown, {
740
701
  *
741
702
  * **Example** (Formatting logs as JSON)
742
703
  *
743
- * ```ts
744
- * import { Effect, Logger } from "effect"
745
- *
746
- * // Use the JSON format logger
747
- * const jsonLoggerProgram = Effect.log("Hello JSON Format").pipe(
748
- * Effect.provide(Logger.layer([Logger.formatJson]))
749
- * )
704
+ * ```ts import.meta.vitest
705
+ * import { Effect, Formatter, Logger } from "effect"
706
+ * import { TestConsole } from "effect/testing"
750
707
  *
751
- * // Perfect for log aggregation and processing systems
752
- * const productionProgram = Effect.gen(function*() {
753
- * yield* Effect.log("Server started", { port: 3000, env: "production" })
754
- * yield* Effect.logInfo("Request received", {
755
- * method: "GET",
756
- * path: "/api/users"
757
- * })
758
- * yield* Effect.logError("Database error", { error: "Connection timeout" })
759
- * }).pipe(
760
- * Effect.annotateLogs("service", "api-server"),
761
- * Effect.withLogSpan("request-processing"),
762
- * Effect.provide(Logger.layer([Logger.formatJson]))
763
- * )
764
- *
765
- * // Adapt the JSON string before giving it to an output sink
766
- * const envelopedJsonLogger = Logger.map(
767
- * Logger.formatJson,
768
- * (jsonString) => `{"service":"api-server","entry":${jsonString}}`
769
- * )
708
+ * const stableJson = Logger.map(Logger.formatJson, (json) => {
709
+ * const output = JSON.parse(json)
710
+ * return Formatter.formatJson({ message: output.message, level: output.level })
711
+ * })
712
+ * const program = Effect.gen(function*() {
713
+ * yield* Effect.log("Server started").pipe(
714
+ * Effect.provide(Logger.layer([Logger.withConsoleLog(stableJson)]))
715
+ * )
716
+ * return yield* TestConsole.logLines
717
+ * }).pipe(Effect.provide(TestConsole.layer))
770
718
  *
771
- * const envelopedConsoleLogger = Logger.withConsoleLog(envelopedJsonLogger)
719
+ * await Effect.runPromise(program) // => ["{\"message\":\"Server started\",\"level\":\"INFO\"}"]
772
720
  * ```
773
721
  *
774
722
  * @category constructors
@@ -787,43 +735,26 @@ export const formatJson = map(formatStructured, Formatter.formatJson)
787
735
  *
788
736
  * **Example** (Batching logger output)
789
737
  *
790
- * ```ts
791
- * import { Duration, Effect, Logger } from "effect"
738
+ * ```ts import.meta.vitest
739
+ * import { Effect, Logger } from "effect"
792
740
  *
793
- * // Create a batched logger that flushes every 5 seconds
794
- * const batchedLogger = Logger.batched(Logger.formatJson, {
795
- * window: Duration.seconds(5),
741
+ * const flushed: Array<ReadonlyArray<string>> = []
742
+ * const messageLogger = Logger.make((options) => String(options.message))
743
+ * const batchedLogger = Logger.batched(messageLogger, {
744
+ * window: "1 hour",
796
745
  * flush: (messages) =>
797
746
  * Effect.sync(() => {
798
- * console.log(`Flushing ${messages.length} log entries:`)
799
- * messages.forEach((msg, i) => console.log(`${i + 1}. ${msg}`))
747
+ * flushed.push(messages)
800
748
  * })
801
749
  * })
802
750
  *
803
- * const program = Effect.gen(function*() {
751
+ * const program = Effect.scoped(Effect.gen(function*() {
804
752
  * const logger = yield* batchedLogger
805
- *
806
- * yield* Effect.provide(
807
- * Effect.all([
808
- * Effect.log("Event 1"),
809
- * Effect.log("Event 2"),
810
- * Effect.log("Event 3"),
811
- * Effect.sleep(Duration.seconds(6)), // Trigger flush
812
- * Effect.log("Event 4")
813
- * ]),
814
- * Logger.layer([logger])
815
- * )
816
- * })
817
- *
818
- * // Remote batch logging example
819
- * const remoteBatchLogger = Logger.batched(Logger.formatStructured, {
820
- * window: Duration.seconds(10),
821
- * flush: (entries) =>
822
- * Effect.sync(() => {
823
- * // Send batch to remote logging service
824
- * console.log(`Sending ${entries.length} log entries to remote service`)
825
- * })
826
- * })
753
+ * yield* Effect.log("Event 1").pipe(Effect.provide(Logger.layer([logger])))
754
+ * yield* Effect.log("Event 2").pipe(Effect.provide(Logger.layer([logger])))
755
+ * }))
756
+ * await Effect.runPromise(program)
757
+ * flushed // => [["Event 1", "Event 2"]]
827
758
  * ```
828
759
  *
829
760
  * @category constructors
@@ -841,43 +772,26 @@ export const batched = dual<
841
772
  *
842
773
  * **Example** (Batching logger output)
843
774
  *
844
- * ```ts
845
- * import { Duration, Effect, Logger } from "effect"
775
+ * ```ts import.meta.vitest
776
+ * import { Effect, Logger } from "effect"
846
777
  *
847
- * // Create a batched logger that flushes every 5 seconds
848
- * const batchedLogger = Logger.batched(Logger.formatJson, {
849
- * window: Duration.seconds(5),
778
+ * const flushed: Array<ReadonlyArray<string>> = []
779
+ * const messageLogger = Logger.make((options) => String(options.message))
780
+ * const batchedLogger = Logger.batched(messageLogger, {
781
+ * window: "1 hour",
850
782
  * flush: (messages) =>
851
783
  * Effect.sync(() => {
852
- * console.log(`Flushing ${messages.length} log entries:`)
853
- * messages.forEach((msg, i) => console.log(`${i + 1}. ${msg}`))
784
+ * flushed.push(messages)
854
785
  * })
855
786
  * })
856
787
  *
857
- * const program = Effect.gen(function*() {
788
+ * const program = Effect.scoped(Effect.gen(function*() {
858
789
  * const logger = yield* batchedLogger
859
- *
860
- * yield* Effect.provide(
861
- * Effect.all([
862
- * Effect.log("Event 1"),
863
- * Effect.log("Event 2"),
864
- * Effect.log("Event 3"),
865
- * Effect.sleep(Duration.seconds(6)), // Trigger flush
866
- * Effect.log("Event 4")
867
- * ]),
868
- * Logger.layer([logger])
869
- * )
870
- * })
871
- *
872
- * // Remote batch logging example
873
- * const remoteBatchLogger = Logger.batched(Logger.formatStructured, {
874
- * window: Duration.seconds(10),
875
- * flush: (entries) =>
876
- * Effect.sync(() => {
877
- * // Send batch to remote logging service
878
- * console.log(`Sending ${entries.length} log entries to remote service`)
879
- * })
880
- * })
790
+ * yield* Effect.log("Event 1").pipe(Effect.provide(Logger.layer([logger])))
791
+ * yield* Effect.log("Event 2").pipe(Effect.provide(Logger.layer([logger])))
792
+ * }))
793
+ * await Effect.runPromise(program)
794
+ * flushed // => [["Event 1", "Event 2"]]
881
795
  * ```
882
796
  *
883
797
  * @category constructors
@@ -902,43 +816,26 @@ export const batched = dual<
902
816
  *
903
817
  * **Example** (Batching logger output)
904
818
  *
905
- * ```ts
906
- * import { Duration, Effect, Logger } from "effect"
819
+ * ```ts import.meta.vitest
820
+ * import { Effect, Logger } from "effect"
907
821
  *
908
- * // Create a batched logger that flushes every 5 seconds
909
- * const batchedLogger = Logger.batched(Logger.formatJson, {
910
- * window: Duration.seconds(5),
822
+ * const flushed: Array<ReadonlyArray<string>> = []
823
+ * const messageLogger = Logger.make((options) => String(options.message))
824
+ * const batchedLogger = Logger.batched(messageLogger, {
825
+ * window: "1 hour",
911
826
  * flush: (messages) =>
912
827
  * Effect.sync(() => {
913
- * console.log(`Flushing ${messages.length} log entries:`)
914
- * messages.forEach((msg, i) => console.log(`${i + 1}. ${msg}`))
828
+ * flushed.push(messages)
915
829
  * })
916
830
  * })
917
831
  *
918
- * const program = Effect.gen(function*() {
832
+ * const program = Effect.scoped(Effect.gen(function*() {
919
833
  * const logger = yield* batchedLogger
920
- *
921
- * yield* Effect.provide(
922
- * Effect.all([
923
- * Effect.log("Event 1"),
924
- * Effect.log("Event 2"),
925
- * Effect.log("Event 3"),
926
- * Effect.sleep(Duration.seconds(6)), // Trigger flush
927
- * Effect.log("Event 4")
928
- * ]),
929
- * Logger.layer([logger])
930
- * )
931
- * })
932
- *
933
- * // Remote batch logging example
934
- * const remoteBatchLogger = Logger.batched(Logger.formatStructured, {
935
- * window: Duration.seconds(10),
936
- * flush: (entries) =>
937
- * Effect.sync(() => {
938
- * // Send batch to remote logging service
939
- * console.log(`Sending ${entries.length} log entries to remote service`)
940
- * })
941
- * })
834
+ * yield* Effect.log("Event 1").pipe(Effect.provide(Logger.layer([logger])))
835
+ * yield* Effect.log("Event 2").pipe(Effect.provide(Logger.layer([logger])))
836
+ * }))
837
+ * await Effect.runPromise(program)
838
+ * flushed // => [["Event 1", "Event 2"]]
942
839
  * ```
943
840
  *
944
841
  * @category constructors
@@ -1000,35 +897,11 @@ export const batched = dual<
1000
897
  *
1001
898
  * **Example** (Logging with pretty console output)
1002
899
  *
1003
- * ```ts
1004
- * import { Effect, Logger } from "effect"
1005
- *
1006
- * // Use the pretty console logger with default settings
1007
- * const basicPretty = Effect.log("Hello Pretty Format").pipe(
1008
- * Effect.provide(Logger.layer([Logger.consolePretty()]))
1009
- * )
1010
- *
1011
- * // Configure pretty logger options
1012
- * const customPretty = Logger.consolePretty({
1013
- * colors: true,
1014
- * stderr: false,
1015
- * mode: "tty",
1016
- * formatDate: (date) => date.toLocaleTimeString()
1017
- * })
1018
- *
1019
- * // Perfect for development environment
1020
- * const developmentProgram = Effect.gen(function*() {
1021
- * yield* Effect.log("Application starting")
1022
- * yield* Effect.logInfo("Database connected")
1023
- * yield* Effect.logWarning("High memory usage detected")
1024
- * }).pipe(
1025
- * Effect.annotateLogs("environment", "development"),
1026
- * Effect.withLogSpan("startup"),
1027
- * Effect.provide(Logger.layer([customPretty]))
1028
- * )
900
+ * ```ts import.meta.vitest
901
+ * import { Logger } from "effect"
1029
902
  *
1030
- * // Disable colors for CI/CD environments
1031
- * const ciLogger = Logger.consolePretty({ colors: false })
903
+ * const prettyLogger = Logger.consolePretty({ colors: false })
904
+ * Logger.isLogger(prettyLogger) // => true
1032
905
  * ```
1033
906
  *
1034
907
  * @category constructors
@@ -1054,33 +927,10 @@ export const consolePretty: (
1054
927
  *
1055
928
  * **Example** (Logging logfmt output to the console)
1056
929
  *
1057
- * ```ts
1058
- * import { Effect, Logger } from "effect"
1059
- *
1060
- * // Use the console logfmt logger
1061
- * const logfmtProgram = Effect.log("Hello LogFmt Console").pipe(
1062
- * Effect.provide(Logger.layer([Logger.consoleLogFmt]))
1063
- * )
1064
- *
1065
- * // Great for production environments
1066
- * const productionProgram = Effect.gen(function*() {
1067
- * yield* Effect.log("Server started", { port: 8080, version: "1.0.0" })
1068
- * yield* Effect.logInfo("Request processed", { userId: 123, duration: 45 })
1069
- * yield* Effect.logError("Validation failed", {
1070
- * field: "email",
1071
- * value: "invalid"
1072
- * })
1073
- * }).pipe(
1074
- * Effect.annotateLogs("service", "api"),
1075
- * Effect.withLogSpan("request-handler"),
1076
- * Effect.provide(Logger.layer([Logger.consoleLogFmt]))
1077
- * )
930
+ * ```ts import.meta.vitest
931
+ * import { Logger } from "effect"
1078
932
  *
1079
- * // Combine with other loggers
1080
- * const multiLoggerLive = Logger.layer([
1081
- * Logger.consoleLogFmt,
1082
- * Logger.consolePretty()
1083
- * ])
933
+ * Logger.isLogger(Logger.consoleLogFmt) // => true
1084
934
  * ```
1085
935
  *
1086
936
  * @category constructors
@@ -1102,41 +952,10 @@ export const consoleLogFmt: Logger<unknown, void> = withConsoleLog(formatLogFmt)
1102
952
  *
1103
953
  * **Example** (Logging structured output to the console)
1104
954
  *
1105
- * ```ts
1106
- * import { Effect, Logger } from "effect"
1107
- *
1108
- * // Use the console structured logger
1109
- * const structuredProgram = Effect.log("Hello Structured Console").pipe(
1110
- * Effect.provide(Logger.layer([Logger.consoleStructured]))
1111
- * )
1112
- *
1113
- * // Perfect for development debugging
1114
- * const debugProgram = Effect.gen(function*() {
1115
- * yield* Effect.log("User event", {
1116
- * userId: 123,
1117
- * action: "login",
1118
- * ip: "192.168.1.1"
1119
- * })
1120
- * yield* Effect.logInfo("API call", {
1121
- * endpoint: "/users",
1122
- * method: "GET",
1123
- * duration: 120
1124
- * })
1125
- * }).pipe(
1126
- * Effect.annotateLogs("requestId", "req-123"),
1127
- * Effect.withLogSpan("authentication"),
1128
- * Effect.provide(Logger.layer([Logger.consoleStructured]))
1129
- * )
955
+ * ```ts import.meta.vitest
956
+ * import { Logger } from "effect"
1130
957
  *
1131
- * // Easy to parse and inspect object structure
1132
- * const inspectionProgram = Effect.gen(function*() {
1133
- * yield* Effect.log("Complex data", {
1134
- * user: { id: 1, name: "John" },
1135
- * metadata: { source: "api", version: 2 }
1136
- * })
1137
- * }).pipe(
1138
- * Effect.provide(Logger.layer([Logger.consoleStructured]))
1139
- * )
958
+ * Logger.isLogger(Logger.consoleStructured) // => true
1140
959
  * ```
1141
960
  *
1142
961
  * @category constructors
@@ -1156,46 +975,10 @@ export const consoleStructured: Logger<unknown, void> = withConsoleLog(formatStr
1156
975
  *
1157
976
  * **Example** (Logging JSON output to the console)
1158
977
  *
1159
- * ```ts
1160
- * import { Effect, Logger } from "effect"
1161
- *
1162
- * // Use the console JSON logger
1163
- * const jsonProgram = Effect.log("Hello JSON Console").pipe(
1164
- * Effect.provide(Logger.layer([Logger.consoleJson]))
1165
- * )
1166
- *
1167
- * // Perfect for production logging and log aggregation
1168
- * const productionProgram = Effect.gen(function*() {
1169
- * yield* Effect.log("Server started", { port: 3000, env: "production" })
1170
- * yield* Effect.logInfo("Request", {
1171
- * method: "POST",
1172
- * url: "/api/users",
1173
- * body: { name: "Alice" }
1174
- * })
1175
- * yield* Effect.logError("Database error", {
1176
- * error: "Connection timeout",
1177
- * retryCount: 3
1178
- * })
1179
- * }).pipe(
1180
- * Effect.annotateLogs("service", "user-api"),
1181
- * Effect.annotateLogs("version", "1.2.3"),
1182
- * Effect.withLogSpan("request-processing"),
1183
- * Effect.provide(Logger.layer([Logger.consoleJson]))
1184
- * )
978
+ * ```ts import.meta.vitest
979
+ * import { Logger } from "effect"
1185
980
  *
1186
- * // Easy to pipe to log aggregation services
1187
- * const productionSetup = Logger.layer([
1188
- * Logger.consoleJson, // For stdout JSON logs
1189
- * Logger.consolePretty() // For local debugging
1190
- * ])
1191
- *
1192
- * // Ideal for containerized environments (Docker, Kubernetes)
1193
- * const containerProgram = Effect.log("Container ready", {
1194
- * containerId: "abc123",
1195
- * image: "myapp:latest"
1196
- * }).pipe(
1197
- * Effect.provide(Logger.layer([Logger.consoleJson]))
1198
- * )
981
+ * Logger.isLogger(Logger.consoleJson) // => true
1199
982
  * ```
1200
983
  *
1201
984
  * @category constructors
@@ -1218,40 +1001,14 @@ export const consoleJson: Logger<unknown, void> = withConsoleLog(formatJson)
1218
1001
  *
1219
1002
  * **Example** (Recording logs as trace span events)
1220
1003
  *
1221
- * ```ts
1004
+ * ```ts import.meta.vitest
1222
1005
  * import { Effect, Logger } from "effect"
1223
1006
  *
1224
- * // Tracer logger is included by default - logs automatically become span events
1225
- * const defaultProgram = Effect.gen(function*() {
1226
- * yield* Effect.log("This automatically becomes a span event")
1227
- * yield* Effect.logInfo("Processing data")
1228
- * })
1229
- *
1230
- * // Explicitly combine tracer logger with other loggers
1231
- * const observabilityProgram = Effect.gen(function*() {
1232
- * yield* Effect.log("Operation started")
1233
- * yield* Effect.logInfo("Processing data")
1234
- * yield* Effect.logError("Error occurred")
1235
- * }).pipe(
1236
- * Effect.withLogSpan("data-processing"),
1237
- * Effect.provide(Logger.layer([
1238
- * Logger.tracerLogger,
1239
- * Logger.consoleJson
1240
- * ]))
1241
- * )
1242
- *
1243
- * // Perfect for correlating logs with traces in distributed systems
1244
- * const distributedProgram = Effect.gen(function*() {
1245
- * yield* Effect.log("Step 1: Fetching user data")
1246
- * yield* Effect.sleep("100 millis")
1247
- * yield* Effect.log("Step 2: Processing payment")
1248
- * yield* Effect.sleep("200 millis")
1249
- * yield* Effect.log("Step 3: Sending confirmation")
1250
- * }).pipe(
1251
- * Effect.withLogSpan("payment-workflow"),
1252
- * Effect.annotateLogs("userId", "user-123"),
1007
+ * const program = Effect.log("span event").pipe(
1008
+ * Effect.withSpan("operation"),
1253
1009
  * Effect.provide(Logger.layer([Logger.tracerLogger]))
1254
1010
  * )
1011
+ * Effect.runSync(program)
1255
1012
  * ```
1256
1013
  *
1257
1014
  * @category constructors
@@ -1270,37 +1027,23 @@ export const tracerLogger: Logger<unknown, void> = effect.tracerLogger
1270
1027
  *
1271
1028
  * **Example** (Providing logger layers)
1272
1029
  *
1273
- * ```ts
1030
+ * ```ts import.meta.vitest
1274
1031
  * import { Effect, Logger } from "effect"
1275
1032
  *
1276
- * // Single logger layer
1277
- * const JsonLoggerLive = Logger.layer([Logger.consoleJson])
1278
- *
1279
- * // Multiple loggers layer
1280
- * const MultiLoggerLive = Logger.layer([
1281
- * Logger.consoleJson,
1282
- * Logger.consolePretty(),
1283
- * Logger.formatStructured
1284
- * ])
1285
- *
1286
- * // Merge with existing loggers
1287
- * const AdditionalLoggerLive = Logger.layer(
1288
- * [Logger.consoleJson],
1289
- * { mergeWithExisting: true }
1290
- * )
1291
- *
1292
- * // Using multiple logger formats
1293
- * const jsonLogger = Logger.consoleJson
1294
- * const prettyLogger = Logger.consolePretty()
1295
- *
1296
- * const CustomLoggerLive = Logger.layer([jsonLogger, prettyLogger])
1033
+ * const messages: Array<unknown> = []
1034
+ * const customLogger = Logger.make((options) => {
1035
+ * messages.push(options.message)
1036
+ * })
1037
+ * const CustomLoggerLive = Logger.layer([customLogger])
1297
1038
  *
1298
1039
  * const program = Effect.log("Application started").pipe(
1299
1040
  * Effect.provide(CustomLoggerLive)
1300
1041
  * )
1042
+ * Effect.runSync(program)
1043
+ * messages // => [["Application started"]]
1301
1044
  * ```
1302
1045
  *
1303
- * @category context
1046
+ * @category layers
1304
1047
  * @since 4.0.0
1305
1048
  */
1306
1049
  export const layer = <
@@ -1338,91 +1081,59 @@ export const layer = <
1338
1081
  *
1339
1082
  * **Example** (Writing JSON logs to a file)
1340
1083
  *
1341
- * ```ts
1342
- * import { Effect, Layer, Logger } from "effect"
1343
- * import { NodeFileSystem, NodeRuntime } from "@effect/platform-node"
1344
- *
1345
- * const fileLogger = Logger.formatJson.pipe(
1346
- * Logger.toFile("/tmp/log.txt")
1347
- * )
1348
- * const LoggerLive = Logger.layer([fileLogger]).pipe(
1349
- * Layer.provide(NodeFileSystem.layer)
1350
- * )
1084
+ * ```ts import.meta.vitest
1085
+ * import { Effect, FileSystem, Logger } from "effect"
1351
1086
  *
1352
- * Effect.log("a").pipe(
1353
- * Effect.andThen(Effect.log("b")),
1354
- * Effect.andThen(Effect.log("c")),
1355
- * Effect.provide(LoggerLive),
1356
- * NodeRuntime.runMain
1357
- * )
1087
+ * const writes: Array<string> = []
1088
+ * const file = {
1089
+ * write: (buffer: Uint8Array) => Effect.sync(() => {
1090
+ * writes.push(new TextDecoder().decode(buffer).trim())
1091
+ * return FileSystem.Size(buffer.length)
1092
+ * })
1093
+ * } as unknown as FileSystem.File
1094
+ * const fileSystem = FileSystem.makeNoop({ open: () => Effect.succeed(file) })
1095
+ * const messageLogger = Logger.make((options) => String(options.message))
1096
+ *
1097
+ * const program = Effect.scoped(Effect.gen(function*() {
1098
+ * const fileLogger = yield* Logger.toFile(messageLogger, "/tmp/log.txt")
1099
+ * yield* Effect.log("a").pipe(Effect.provide(Logger.layer([fileLogger])))
1100
+ * yield* Effect.log("b").pipe(Effect.provide(Logger.layer([fileLogger])))
1101
+ * yield* Effect.log("c").pipe(Effect.provide(Logger.layer([fileLogger])))
1102
+ * })).pipe(Effect.provideService(FileSystem.FileSystem, fileSystem))
1103
+ *
1104
+ * await Effect.runPromise(program)
1105
+ * writes // => ["a\nb\nc"]
1358
1106
  * ```
1359
1107
  *
1360
1108
  * **Example** (Writing logs to files)
1361
1109
  *
1362
- * ```ts
1363
- * import { Duration, Effect, Logger } from "effect"
1364
- * import { NodeFileSystem } from "@effect/platform-node"
1365
- *
1366
- * // Basic file logging. The scope keeps the file open while logs are emitted
1367
- * // and flushes pending entries when it closes.
1368
- * const basicFileLogger = Effect.scoped(
1369
- * Effect.gen(function*() {
1370
- * const fileLogger = yield* Logger.formatJson.pipe(
1371
- * Logger.toFile("/tmp/app.log")
1372
- * )
1373
- *
1374
- * yield* Effect.log("Application started").pipe(
1375
- * Effect.provide(Logger.layer([fileLogger]))
1376
- * )
1377
- * })
1378
- * ).pipe(
1379
- * Effect.provide(NodeFileSystem.layer)
1380
- * )
1110
+ * ```ts import.meta.vitest
1111
+ * import { Effect, FileSystem, Logger } from "effect"
1381
1112
  *
1382
- * // File logger with custom batch window
1383
- * const batchedFileLogger = Effect.scoped(
1384
- * Effect.gen(function*() {
1385
- * const fileLogger = yield* Logger.formatLogFmt.pipe(
1386
- * Logger.toFile("/var/log/myapp.log", {
1387
- * flag: "a",
1388
- * batchWindow: Duration.seconds(5)
1389
- * })
1390
- * )
1391
- *
1392
- * yield* Effect.all([
1393
- * Effect.log("Event 1"),
1394
- * Effect.log("Event 2"),
1395
- * Effect.log("Event 3")
1396
- * ]).pipe(
1397
- * Effect.provide(Logger.layer([fileLogger]))
1398
- * )
1113
+ * const writes: Array<string> = []
1114
+ * const file = {
1115
+ * write: (buffer: Uint8Array) => Effect.sync(() => {
1116
+ * writes.push(new TextDecoder().decode(buffer).trim())
1117
+ * return FileSystem.Size(buffer.length)
1399
1118
  * })
1400
- * ).pipe(
1401
- * Effect.provide(NodeFileSystem.layer)
1402
- * )
1119
+ * } as unknown as FileSystem.File
1120
+ * const fileSystem = FileSystem.makeNoop({ open: () => Effect.succeed(file) })
1121
+ * const messageLogger = Logger.make((options) => String(options.message))
1403
1122
  *
1404
- * // Multiple loggers: console + file
1405
- * const multiLogger = Effect.scoped(
1406
- * Effect.gen(function*() {
1407
- * const fileLogger = yield* Logger.formatJson.pipe(
1408
- * Logger.toFile("/tmp/production.log")
1409
- * )
1410
- *
1411
- * const loggerLive = Logger.layer([
1412
- * Logger.consolePretty(),
1413
- * fileLogger
1414
- * ])
1415
- *
1416
- * yield* Effect.log("Production event").pipe(
1417
- * Effect.provide(loggerLive)
1418
- * )
1123
+ * const program = Effect.scoped(Effect.gen(function*() {
1124
+ * const fileLogger = yield* Logger.toFile(messageLogger, "/tmp/app.log", {
1125
+ * batchWindow: "1 hour"
1419
1126
  * })
1420
- * ).pipe(
1421
- * Effect.provide(NodeFileSystem.layer)
1422
- * )
1127
+ * yield* Effect.log("Application started").pipe(
1128
+ * Effect.provide(Logger.layer([fileLogger]))
1129
+ * )
1130
+ * })).pipe(Effect.provideService(FileSystem.FileSystem, fileSystem))
1131
+ *
1132
+ * await Effect.runPromise(program)
1133
+ * writes // => ["Application started"]
1423
1134
  * ```
1424
1135
  *
1425
- * @category file
1136
+ * @category logging
1426
1137
  * @since 4.0.0
1427
1138
  */
1428
1139
  export const toFile = dual<
@@ -1437,91 +1148,59 @@ export const toFile = dual<
1437
1148
  *
1438
1149
  * **Example** (Writing JSON logs to a file)
1439
1150
  *
1440
- * ```ts
1441
- * import { Effect, Layer, Logger } from "effect"
1442
- * import { NodeFileSystem, NodeRuntime } from "@effect/platform-node"
1443
- *
1444
- * const fileLogger = Logger.formatJson.pipe(
1445
- * Logger.toFile("/tmp/log.txt")
1446
- * )
1447
- * const LoggerLive = Logger.layer([fileLogger]).pipe(
1448
- * Layer.provide(NodeFileSystem.layer)
1449
- * )
1151
+ * ```ts import.meta.vitest
1152
+ * import { Effect, FileSystem, Logger } from "effect"
1450
1153
  *
1451
- * Effect.log("a").pipe(
1452
- * Effect.andThen(Effect.log("b")),
1453
- * Effect.andThen(Effect.log("c")),
1454
- * Effect.provide(LoggerLive),
1455
- * NodeRuntime.runMain
1456
- * )
1154
+ * const writes: Array<string> = []
1155
+ * const file = {
1156
+ * write: (buffer: Uint8Array) => Effect.sync(() => {
1157
+ * writes.push(new TextDecoder().decode(buffer).trim())
1158
+ * return FileSystem.Size(buffer.length)
1159
+ * })
1160
+ * } as unknown as FileSystem.File
1161
+ * const fileSystem = FileSystem.makeNoop({ open: () => Effect.succeed(file) })
1162
+ * const messageLogger = Logger.make((options) => String(options.message))
1163
+ *
1164
+ * const program = Effect.scoped(Effect.gen(function*() {
1165
+ * const fileLogger = yield* Logger.toFile(messageLogger, "/tmp/log.txt")
1166
+ * yield* Effect.log("a").pipe(Effect.provide(Logger.layer([fileLogger])))
1167
+ * yield* Effect.log("b").pipe(Effect.provide(Logger.layer([fileLogger])))
1168
+ * yield* Effect.log("c").pipe(Effect.provide(Logger.layer([fileLogger])))
1169
+ * })).pipe(Effect.provideService(FileSystem.FileSystem, fileSystem))
1170
+ *
1171
+ * await Effect.runPromise(program)
1172
+ * writes // => ["a\nb\nc"]
1457
1173
  * ```
1458
1174
  *
1459
1175
  * **Example** (Writing logs to files)
1460
1176
  *
1461
- * ```ts
1462
- * import { Duration, Effect, Logger } from "effect"
1463
- * import { NodeFileSystem } from "@effect/platform-node"
1177
+ * ```ts import.meta.vitest
1178
+ * import { Effect, FileSystem, Logger } from "effect"
1464
1179
  *
1465
- * // Basic file logging. The scope keeps the file open while logs are emitted
1466
- * // and flushes pending entries when it closes.
1467
- * const basicFileLogger = Effect.scoped(
1468
- * Effect.gen(function*() {
1469
- * const fileLogger = yield* Logger.formatJson.pipe(
1470
- * Logger.toFile("/tmp/app.log")
1471
- * )
1472
- *
1473
- * yield* Effect.log("Application started").pipe(
1474
- * Effect.provide(Logger.layer([fileLogger]))
1475
- * )
1180
+ * const writes: Array<string> = []
1181
+ * const file = {
1182
+ * write: (buffer: Uint8Array) => Effect.sync(() => {
1183
+ * writes.push(new TextDecoder().decode(buffer).trim())
1184
+ * return FileSystem.Size(buffer.length)
1476
1185
  * })
1477
- * ).pipe(
1478
- * Effect.provide(NodeFileSystem.layer)
1479
- * )
1480
- *
1481
- * // File logger with custom batch window
1482
- * const batchedFileLogger = Effect.scoped(
1483
- * Effect.gen(function*() {
1484
- * const fileLogger = yield* Logger.formatLogFmt.pipe(
1485
- * Logger.toFile("/var/log/myapp.log", {
1486
- * flag: "a",
1487
- * batchWindow: Duration.seconds(5)
1488
- * })
1489
- * )
1186
+ * } as unknown as FileSystem.File
1187
+ * const fileSystem = FileSystem.makeNoop({ open: () => Effect.succeed(file) })
1188
+ * const messageLogger = Logger.make((options) => String(options.message))
1490
1189
  *
1491
- * yield* Effect.all([
1492
- * Effect.log("Event 1"),
1493
- * Effect.log("Event 2"),
1494
- * Effect.log("Event 3")
1495
- * ]).pipe(
1496
- * Effect.provide(Logger.layer([fileLogger]))
1497
- * )
1190
+ * const program = Effect.scoped(Effect.gen(function*() {
1191
+ * const fileLogger = yield* Logger.toFile(messageLogger, "/tmp/app.log", {
1192
+ * batchWindow: "1 hour"
1498
1193
  * })
1499
- * ).pipe(
1500
- * Effect.provide(NodeFileSystem.layer)
1501
- * )
1502
- *
1503
- * // Multiple loggers: console + file
1504
- * const multiLogger = Effect.scoped(
1505
- * Effect.gen(function*() {
1506
- * const fileLogger = yield* Logger.formatJson.pipe(
1507
- * Logger.toFile("/tmp/production.log")
1508
- * )
1509
- *
1510
- * const loggerLive = Logger.layer([
1511
- * Logger.consolePretty(),
1512
- * fileLogger
1513
- * ])
1194
+ * yield* Effect.log("Application started").pipe(
1195
+ * Effect.provide(Logger.layer([fileLogger]))
1196
+ * )
1197
+ * })).pipe(Effect.provideService(FileSystem.FileSystem, fileSystem))
1514
1198
  *
1515
- * yield* Effect.log("Production event").pipe(
1516
- * Effect.provide(loggerLive)
1517
- * )
1518
- * })
1519
- * ).pipe(
1520
- * Effect.provide(NodeFileSystem.layer)
1521
- * )
1199
+ * await Effect.runPromise(program)
1200
+ * writes // => ["Application started"]
1522
1201
  * ```
1523
1202
  *
1524
- * @category file
1203
+ * @category logging
1525
1204
  * @since 4.0.0
1526
1205
  */
1527
1206
  (
@@ -1545,91 +1224,59 @@ export const toFile = dual<
1545
1224
  *
1546
1225
  * **Example** (Writing JSON logs to a file)
1547
1226
  *
1548
- * ```ts
1549
- * import { Effect, Layer, Logger } from "effect"
1550
- * import { NodeFileSystem, NodeRuntime } from "@effect/platform-node"
1551
- *
1552
- * const fileLogger = Logger.formatJson.pipe(
1553
- * Logger.toFile("/tmp/log.txt")
1554
- * )
1555
- * const LoggerLive = Logger.layer([fileLogger]).pipe(
1556
- * Layer.provide(NodeFileSystem.layer)
1557
- * )
1227
+ * ```ts import.meta.vitest
1228
+ * import { Effect, FileSystem, Logger } from "effect"
1558
1229
  *
1559
- * Effect.log("a").pipe(
1560
- * Effect.andThen(Effect.log("b")),
1561
- * Effect.andThen(Effect.log("c")),
1562
- * Effect.provide(LoggerLive),
1563
- * NodeRuntime.runMain
1564
- * )
1230
+ * const writes: Array<string> = []
1231
+ * const file = {
1232
+ * write: (buffer: Uint8Array) => Effect.sync(() => {
1233
+ * writes.push(new TextDecoder().decode(buffer).trim())
1234
+ * return FileSystem.Size(buffer.length)
1235
+ * })
1236
+ * } as unknown as FileSystem.File
1237
+ * const fileSystem = FileSystem.makeNoop({ open: () => Effect.succeed(file) })
1238
+ * const messageLogger = Logger.make((options) => String(options.message))
1239
+ *
1240
+ * const program = Effect.scoped(Effect.gen(function*() {
1241
+ * const fileLogger = yield* Logger.toFile(messageLogger, "/tmp/log.txt")
1242
+ * yield* Effect.log("a").pipe(Effect.provide(Logger.layer([fileLogger])))
1243
+ * yield* Effect.log("b").pipe(Effect.provide(Logger.layer([fileLogger])))
1244
+ * yield* Effect.log("c").pipe(Effect.provide(Logger.layer([fileLogger])))
1245
+ * })).pipe(Effect.provideService(FileSystem.FileSystem, fileSystem))
1246
+ *
1247
+ * await Effect.runPromise(program)
1248
+ * writes // => ["a\nb\nc"]
1565
1249
  * ```
1566
1250
  *
1567
1251
  * **Example** (Writing logs to files)
1568
1252
  *
1569
- * ```ts
1570
- * import { Duration, Effect, Logger } from "effect"
1571
- * import { NodeFileSystem } from "@effect/platform-node"
1572
- *
1573
- * // Basic file logging. The scope keeps the file open while logs are emitted
1574
- * // and flushes pending entries when it closes.
1575
- * const basicFileLogger = Effect.scoped(
1576
- * Effect.gen(function*() {
1577
- * const fileLogger = yield* Logger.formatJson.pipe(
1578
- * Logger.toFile("/tmp/app.log")
1579
- * )
1253
+ * ```ts import.meta.vitest
1254
+ * import { Effect, FileSystem, Logger } from "effect"
1580
1255
  *
1581
- * yield* Effect.log("Application started").pipe(
1582
- * Effect.provide(Logger.layer([fileLogger]))
1583
- * )
1256
+ * const writes: Array<string> = []
1257
+ * const file = {
1258
+ * write: (buffer: Uint8Array) => Effect.sync(() => {
1259
+ * writes.push(new TextDecoder().decode(buffer).trim())
1260
+ * return FileSystem.Size(buffer.length)
1584
1261
  * })
1585
- * ).pipe(
1586
- * Effect.provide(NodeFileSystem.layer)
1587
- * )
1588
- *
1589
- * // File logger with custom batch window
1590
- * const batchedFileLogger = Effect.scoped(
1591
- * Effect.gen(function*() {
1592
- * const fileLogger = yield* Logger.formatLogFmt.pipe(
1593
- * Logger.toFile("/var/log/myapp.log", {
1594
- * flag: "a",
1595
- * batchWindow: Duration.seconds(5)
1596
- * })
1597
- * )
1262
+ * } as unknown as FileSystem.File
1263
+ * const fileSystem = FileSystem.makeNoop({ open: () => Effect.succeed(file) })
1264
+ * const messageLogger = Logger.make((options) => String(options.message))
1598
1265
  *
1599
- * yield* Effect.all([
1600
- * Effect.log("Event 1"),
1601
- * Effect.log("Event 2"),
1602
- * Effect.log("Event 3")
1603
- * ]).pipe(
1604
- * Effect.provide(Logger.layer([fileLogger]))
1605
- * )
1266
+ * const program = Effect.scoped(Effect.gen(function*() {
1267
+ * const fileLogger = yield* Logger.toFile(messageLogger, "/tmp/app.log", {
1268
+ * batchWindow: "1 hour"
1606
1269
  * })
1607
- * ).pipe(
1608
- * Effect.provide(NodeFileSystem.layer)
1609
- * )
1610
- *
1611
- * // Multiple loggers: console + file
1612
- * const multiLogger = Effect.scoped(
1613
- * Effect.gen(function*() {
1614
- * const fileLogger = yield* Logger.formatJson.pipe(
1615
- * Logger.toFile("/tmp/production.log")
1616
- * )
1617
- *
1618
- * const loggerLive = Logger.layer([
1619
- * Logger.consolePretty(),
1620
- * fileLogger
1621
- * ])
1270
+ * yield* Effect.log("Application started").pipe(
1271
+ * Effect.provide(Logger.layer([fileLogger]))
1272
+ * )
1273
+ * })).pipe(Effect.provideService(FileSystem.FileSystem, fileSystem))
1622
1274
  *
1623
- * yield* Effect.log("Production event").pipe(
1624
- * Effect.provide(loggerLive)
1625
- * )
1626
- * })
1627
- * ).pipe(
1628
- * Effect.provide(NodeFileSystem.layer)
1629
- * )
1275
+ * await Effect.runPromise(program)
1276
+ * writes // => ["Application started"]
1630
1277
  * ```
1631
1278
  *
1632
- * @category file
1279
+ * @category logging
1633
1280
  * @since 4.0.0
1634
1281
  */
1635
1282
  <Message>(