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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1451) hide show
  1. package/dist/Array.d.ts +971 -1037
  2. package/dist/Array.d.ts.map +1 -1
  3. package/dist/Array.js +381 -407
  4. package/dist/Array.js.map +1 -1
  5. package/dist/BigDecimal.d.ts +433 -756
  6. package/dist/BigDecimal.d.ts.map +1 -1
  7. package/dist/BigDecimal.js +200 -325
  8. package/dist/BigDecimal.js.map +1 -1
  9. package/dist/BigInt.d.ts +207 -267
  10. package/dist/BigInt.d.ts.map +1 -1
  11. package/dist/BigInt.js +107 -135
  12. package/dist/BigInt.js.map +1 -1
  13. package/dist/Boolean.d.ts +146 -188
  14. package/dist/Boolean.d.ts.map +1 -1
  15. package/dist/Boolean.js +64 -84
  16. package/dist/Boolean.js.map +1 -1
  17. package/dist/Brand.js.map +1 -1
  18. package/dist/Cache.d.ts +405 -254
  19. package/dist/Cache.d.ts.map +1 -1
  20. package/dist/Cache.js +166 -101
  21. package/dist/Cache.js.map +1 -1
  22. package/dist/Cause.d.ts +167 -277
  23. package/dist/Cause.d.ts.map +1 -1
  24. package/dist/Cause.js +122 -176
  25. package/dist/Cause.js.map +1 -1
  26. package/dist/Channel.d.ts +729 -768
  27. package/dist/Channel.d.ts.map +1 -1
  28. package/dist/Channel.js +514 -440
  29. package/dist/Channel.js.map +1 -1
  30. package/dist/ChannelSchema.d.ts +1 -1
  31. package/dist/ChannelSchema.d.ts.map +1 -1
  32. package/dist/ChannelSchema.js.map +1 -1
  33. package/dist/Chunk.d.ts +834 -1173
  34. package/dist/Chunk.d.ts.map +1 -1
  35. package/dist/Chunk.js +326 -439
  36. package/dist/Chunk.js.map +1 -1
  37. package/dist/Clock.d.ts +180 -49
  38. package/dist/Clock.d.ts.map +1 -1
  39. package/dist/Clock.js +96 -31
  40. package/dist/Clock.js.map +1 -1
  41. package/dist/Combiner.d.ts +20 -33
  42. package/dist/Combiner.d.ts.map +1 -1
  43. package/dist/Combiner.js +18 -30
  44. package/dist/Combiner.js.map +1 -1
  45. package/dist/Config.d.ts +225 -173
  46. package/dist/Config.d.ts.map +1 -1
  47. package/dist/Config.js +336 -265
  48. package/dist/Config.js.map +1 -1
  49. package/dist/ConfigProvider.d.ts +194 -68
  50. package/dist/ConfigProvider.d.ts.map +1 -1
  51. package/dist/ConfigProvider.js +115 -80
  52. package/dist/ConfigProvider.js.map +1 -1
  53. package/dist/Console.d.ts +233 -33
  54. package/dist/Console.d.ts.map +1 -1
  55. package/dist/Console.js +232 -32
  56. package/dist/Console.js.map +1 -1
  57. package/dist/Context.d.ts +151 -274
  58. package/dist/Context.d.ts.map +1 -1
  59. package/dist/Context.js +171 -214
  60. package/dist/Context.js.map +1 -1
  61. package/dist/Cron.d.ts +68 -77
  62. package/dist/Cron.d.ts.map +1 -1
  63. package/dist/Cron.js +57 -66
  64. package/dist/Cron.js.map +1 -1
  65. package/dist/Crypto.d.ts +13 -15
  66. package/dist/Crypto.d.ts.map +1 -1
  67. package/dist/Crypto.js +9 -10
  68. package/dist/Crypto.js.map +1 -1
  69. package/dist/Data.d.ts +60 -80
  70. package/dist/Data.d.ts.map +1 -1
  71. package/dist/Data.js +16 -23
  72. package/dist/Data.js.map +1 -1
  73. package/dist/DateTime.d.ts +562 -660
  74. package/dist/DateTime.d.ts.map +1 -1
  75. package/dist/DateTime.js +307 -362
  76. package/dist/DateTime.js.map +1 -1
  77. package/dist/Deferred.d.ts +253 -256
  78. package/dist/Deferred.d.ts.map +1 -1
  79. package/dist/Deferred.js +104 -96
  80. package/dist/Deferred.js.map +1 -1
  81. package/dist/Duration.d.ts +216 -308
  82. package/dist/Duration.d.ts.map +1 -1
  83. package/dist/Duration.js +132 -186
  84. package/dist/Duration.js.map +1 -1
  85. package/dist/Effect.d.ts +2841 -3247
  86. package/dist/Effect.d.ts.map +1 -1
  87. package/dist/Effect.js +1322 -1546
  88. package/dist/Effect.js.map +1 -1
  89. package/dist/Effectable.js.map +1 -1
  90. package/dist/Encoding.d.ts +22 -40
  91. package/dist/Encoding.d.ts.map +1 -1
  92. package/dist/Encoding.js +22 -40
  93. package/dist/Encoding.js.map +1 -1
  94. package/dist/Equal.d.ts +33 -37
  95. package/dist/Equal.d.ts.map +1 -1
  96. package/dist/Equal.js +29 -21
  97. package/dist/Equal.js.map +1 -1
  98. package/dist/Equivalence.d.ts +103 -105
  99. package/dist/Equivalence.d.ts.map +1 -1
  100. package/dist/Equivalence.js +77 -79
  101. package/dist/Equivalence.js.map +1 -1
  102. package/dist/ErrorReporter.d.ts +51 -27
  103. package/dist/ErrorReporter.d.ts.map +1 -1
  104. package/dist/ErrorReporter.js +50 -26
  105. package/dist/ErrorReporter.js.map +1 -1
  106. package/dist/ExecutionPlan.d.ts +13 -55
  107. package/dist/ExecutionPlan.d.ts.map +1 -1
  108. package/dist/ExecutionPlan.js +7 -28
  109. package/dist/ExecutionPlan.js.map +1 -1
  110. package/dist/Exit.d.ts +116 -192
  111. package/dist/Exit.d.ts.map +1 -1
  112. package/dist/Exit.js +82 -130
  113. package/dist/Exit.js.map +1 -1
  114. package/dist/Fiber.d.ts +82 -146
  115. package/dist/Fiber.d.ts.map +1 -1
  116. package/dist/Fiber.js +48 -87
  117. package/dist/Fiber.js.map +1 -1
  118. package/dist/FiberHandle.d.ts +152 -105
  119. package/dist/FiberHandle.d.ts.map +1 -1
  120. package/dist/FiberHandle.js +106 -73
  121. package/dist/FiberHandle.js.map +1 -1
  122. package/dist/FiberMap.d.ts +213 -168
  123. package/dist/FiberMap.d.ts.map +1 -1
  124. package/dist/FiberMap.js +114 -89
  125. package/dist/FiberMap.js.map +1 -1
  126. package/dist/FiberSet.d.ts +123 -81
  127. package/dist/FiberSet.d.ts.map +1 -1
  128. package/dist/FiberSet.js +85 -59
  129. package/dist/FiberSet.js.map +1 -1
  130. package/dist/FileSystem.d.ts +153 -264
  131. package/dist/FileSystem.d.ts.map +1 -1
  132. package/dist/FileSystem.js +42 -147
  133. package/dist/FileSystem.js.map +1 -1
  134. package/dist/Filter.d.ts +61 -33
  135. package/dist/Filter.d.ts.map +1 -1
  136. package/dist/Filter.js +26 -15
  137. package/dist/Filter.js.map +1 -1
  138. package/dist/Formatter.d.ts +25 -33
  139. package/dist/Formatter.d.ts.map +1 -1
  140. package/dist/Formatter.js +48 -49
  141. package/dist/Formatter.js.map +1 -1
  142. package/dist/Function.d.ts +76 -145
  143. package/dist/Function.d.ts.map +1 -1
  144. package/dist/Function.js +40 -57
  145. package/dist/Function.js.map +1 -1
  146. package/dist/Graph.d.ts +360 -714
  147. package/dist/Graph.d.ts.map +1 -1
  148. package/dist/Graph.js +168 -297
  149. package/dist/Graph.js.map +1 -1
  150. package/dist/HKT.d.ts +12 -6
  151. package/dist/HKT.d.ts.map +1 -1
  152. package/dist/Hash.d.ts +47 -83
  153. package/dist/Hash.d.ts.map +1 -1
  154. package/dist/Hash.js +46 -68
  155. package/dist/Hash.js.map +1 -1
  156. package/dist/HashMap.d.ts +319 -411
  157. package/dist/HashMap.d.ts.map +1 -1
  158. package/dist/HashMap.js +122 -166
  159. package/dist/HashMap.js.map +1 -1
  160. package/dist/HashRing.d.ts.map +1 -1
  161. package/dist/HashRing.js +1 -0
  162. package/dist/HashRing.js.map +1 -1
  163. package/dist/HashSet.d.ts +177 -284
  164. package/dist/HashSet.d.ts.map +1 -1
  165. package/dist/HashSet.js +68 -109
  166. package/dist/HashSet.js.map +1 -1
  167. package/dist/Inspectable.d.ts +12 -12
  168. package/dist/Inspectable.js +8 -8
  169. package/dist/Inspectable.js.map +1 -1
  170. package/dist/Iterable.d.ts +620 -786
  171. package/dist/Iterable.d.ts.map +1 -1
  172. package/dist/Iterable.js +228 -306
  173. package/dist/Iterable.js.map +1 -1
  174. package/dist/JsonPatch.d.ts +11 -13
  175. package/dist/JsonPatch.d.ts.map +1 -1
  176. package/dist/JsonPatch.js +44 -102
  177. package/dist/JsonPatch.js.map +1 -1
  178. package/dist/JsonPointer.d.ts +8 -8
  179. package/dist/JsonPointer.js +8 -8
  180. package/dist/JsonPointer.js.map +1 -1
  181. package/dist/JsonSchema.d.ts +98 -44
  182. package/dist/JsonSchema.d.ts.map +1 -1
  183. package/dist/JsonSchema.js +297 -234
  184. package/dist/JsonSchema.js.map +1 -1
  185. package/dist/Latch.d.ts +23 -35
  186. package/dist/Latch.d.ts.map +1 -1
  187. package/dist/Latch.js +16 -28
  188. package/dist/Latch.js.map +1 -1
  189. package/dist/Layer.d.ts +359 -260
  190. package/dist/Layer.d.ts.map +1 -1
  191. package/dist/Layer.js +195 -175
  192. package/dist/Layer.js.map +1 -1
  193. package/dist/LayerMap.d.ts +42 -29
  194. package/dist/LayerMap.d.ts.map +1 -1
  195. package/dist/LayerMap.js +31 -21
  196. package/dist/LayerMap.js.map +1 -1
  197. package/dist/LayerRef.d.ts +6 -2
  198. package/dist/LayerRef.d.ts.map +1 -1
  199. package/dist/LayerRef.js +6 -2
  200. package/dist/LayerRef.js.map +1 -1
  201. package/dist/LogLevel.d.ts +114 -214
  202. package/dist/LogLevel.d.ts.map +1 -1
  203. package/dist/LogLevel.js +41 -76
  204. package/dist/LogLevel.js.map +1 -1
  205. package/dist/Logger.d.ts +218 -467
  206. package/dist/Logger.d.ts.map +1 -1
  207. package/dist/Logger.js +204 -450
  208. package/dist/Logger.js.map +1 -1
  209. package/dist/ManagedRuntime.d.ts +7 -5
  210. package/dist/ManagedRuntime.d.ts.map +1 -1
  211. package/dist/ManagedRuntime.js +7 -5
  212. package/dist/ManagedRuntime.js.map +1 -1
  213. package/dist/Match.d.ts +217 -252
  214. package/dist/Match.d.ts.map +1 -1
  215. package/dist/Match.js +150 -183
  216. package/dist/Match.js.map +1 -1
  217. package/dist/Metric.d.ts +442 -993
  218. package/dist/Metric.d.ts.map +1 -1
  219. package/dist/Metric.js +198 -642
  220. package/dist/Metric.js.map +1 -1
  221. package/dist/MutableHashMap.d.ts +144 -173
  222. package/dist/MutableHashMap.d.ts.map +1 -1
  223. package/dist/MutableHashMap.js +68 -79
  224. package/dist/MutableHashMap.js.map +1 -1
  225. package/dist/MutableHashSet.d.ts +84 -89
  226. package/dist/MutableHashSet.d.ts.map +1 -1
  227. package/dist/MutableHashSet.js +44 -47
  228. package/dist/MutableHashSet.js.map +1 -1
  229. package/dist/MutableList.d.ts +71 -370
  230. package/dist/MutableList.d.ts.map +1 -1
  231. package/dist/MutableList.js +59 -284
  232. package/dist/MutableList.js.map +1 -1
  233. package/dist/MutableRef.d.ts +420 -243
  234. package/dist/MutableRef.d.ts.map +1 -1
  235. package/dist/MutableRef.js +209 -120
  236. package/dist/MutableRef.js.map +1 -1
  237. package/dist/Newtype.d.ts +21 -14
  238. package/dist/Newtype.d.ts.map +1 -1
  239. package/dist/Newtype.js +15 -13
  240. package/dist/Newtype.js.map +1 -1
  241. package/dist/NonEmptyIterable.d.ts +7 -137
  242. package/dist/NonEmptyIterable.d.ts.map +1 -1
  243. package/dist/NonEmptyIterable.js +5 -93
  244. package/dist/NonEmptyIterable.js.map +1 -1
  245. package/dist/Number.d.ts +196 -233
  246. package/dist/Number.d.ts.map +1 -1
  247. package/dist/Number.js +90 -109
  248. package/dist/Number.js.map +1 -1
  249. package/dist/Optic.d.ts +97 -189
  250. package/dist/Optic.d.ts.map +1 -1
  251. package/dist/Optic.js +187 -290
  252. package/dist/Optic.js.map +1 -1
  253. package/dist/Option.d.ts +447 -812
  254. package/dist/Option.d.ts.map +1 -1
  255. package/dist/Option.js +211 -392
  256. package/dist/Option.js.map +1 -1
  257. package/dist/Order.d.ts +109 -109
  258. package/dist/Order.js +91 -91
  259. package/dist/Order.js.map +1 -1
  260. package/dist/Ordering.d.ts +20 -23
  261. package/dist/Ordering.d.ts.map +1 -1
  262. package/dist/Ordering.js +8 -9
  263. package/dist/Ordering.js.map +1 -1
  264. package/dist/PartitionedSemaphore.js.map +1 -1
  265. package/dist/Path.d.ts +38 -41
  266. package/dist/Path.d.ts.map +1 -1
  267. package/dist/Path.js +3 -4
  268. package/dist/Path.js.map +1 -1
  269. package/dist/Pipeable.d.ts +6 -5
  270. package/dist/Pipeable.d.ts.map +1 -1
  271. package/dist/Pipeable.js +2 -2
  272. package/dist/Pipeable.js.map +1 -1
  273. package/dist/PlatformError.d.ts +4 -4
  274. package/dist/PlatformError.js +3 -3
  275. package/dist/PlatformError.js.map +1 -1
  276. package/dist/Pool.d.ts +4 -2
  277. package/dist/Pool.d.ts.map +1 -1
  278. package/dist/Pool.js +4 -2
  279. package/dist/Pool.js.map +1 -1
  280. package/dist/Predicate.d.ts +200 -181
  281. package/dist/Predicate.d.ts.map +1 -1
  282. package/dist/Predicate.js +100 -108
  283. package/dist/Predicate.js.map +1 -1
  284. package/dist/PrimaryKey.d.ts +7 -7
  285. package/dist/PrimaryKey.js +5 -5
  286. package/dist/PrimaryKey.js.map +1 -1
  287. package/dist/PubSub.d.ts +425 -494
  288. package/dist/PubSub.d.ts.map +1 -1
  289. package/dist/PubSub.js +373 -362
  290. package/dist/PubSub.js.map +1 -1
  291. package/dist/Pull.d.ts +24 -18
  292. package/dist/Pull.d.ts.map +1 -1
  293. package/dist/Pull.js +11 -9
  294. package/dist/Pull.js.map +1 -1
  295. package/dist/Queue.d.ts +200 -159
  296. package/dist/Queue.d.ts.map +1 -1
  297. package/dist/Queue.js +162 -132
  298. package/dist/Queue.js.map +1 -1
  299. package/dist/Random.d.ts +49 -74
  300. package/dist/Random.d.ts.map +1 -1
  301. package/dist/Random.js +35 -54
  302. package/dist/Random.js.map +1 -1
  303. package/dist/RcMap.d.ts +121 -63
  304. package/dist/RcMap.d.ts.map +1 -1
  305. package/dist/RcMap.js +42 -21
  306. package/dist/RcMap.js.map +1 -1
  307. package/dist/RcRef.d.ts +24 -13
  308. package/dist/RcRef.d.ts.map +1 -1
  309. package/dist/RcRef.js +15 -9
  310. package/dist/RcRef.js.map +1 -1
  311. package/dist/Record.d.ts +291 -488
  312. package/dist/Record.d.ts.map +1 -1
  313. package/dist/Record.js +111 -202
  314. package/dist/Record.js.map +1 -1
  315. package/dist/Redactable.d.ts +6 -2
  316. package/dist/Redactable.d.ts.map +1 -1
  317. package/dist/Redactable.js +7 -2
  318. package/dist/Redactable.js.map +1 -1
  319. package/dist/Redacted.d.ts +25 -25
  320. package/dist/Redacted.d.ts.map +1 -1
  321. package/dist/Redacted.js +19 -20
  322. package/dist/Redacted.js.map +1 -1
  323. package/dist/Reducer.d.ts +8 -15
  324. package/dist/Reducer.d.ts.map +1 -1
  325. package/dist/Reducer.js +6 -12
  326. package/dist/Reducer.js.map +1 -1
  327. package/dist/Ref.d.ts +95 -165
  328. package/dist/Ref.d.ts.map +1 -1
  329. package/dist/Ref.js +75 -122
  330. package/dist/Ref.js.map +1 -1
  331. package/dist/References.d.ts +102 -168
  332. package/dist/References.d.ts.map +1 -1
  333. package/dist/References.js +102 -168
  334. package/dist/References.js.map +1 -1
  335. package/dist/RegExp.d.ts +10 -14
  336. package/dist/RegExp.d.ts.map +1 -1
  337. package/dist/RegExp.js +10 -14
  338. package/dist/RegExp.js.map +1 -1
  339. package/dist/Request.d.ts +31 -21
  340. package/dist/Request.d.ts.map +1 -1
  341. package/dist/Request.js +16 -13
  342. package/dist/Request.js.map +1 -1
  343. package/dist/RequestResolver.d.ts +201 -90
  344. package/dist/RequestResolver.d.ts.map +1 -1
  345. package/dist/RequestResolver.js +87 -41
  346. package/dist/RequestResolver.js.map +1 -1
  347. package/dist/Resource.js.map +1 -1
  348. package/dist/Result.d.ts +302 -470
  349. package/dist/Result.d.ts.map +1 -1
  350. package/dist/Result.js +133 -217
  351. package/dist/Result.js.map +1 -1
  352. package/dist/Runtime.d.ts +50 -75
  353. package/dist/Runtime.d.ts.map +1 -1
  354. package/dist/Runtime.js +39 -60
  355. package/dist/Runtime.js.map +1 -1
  356. package/dist/Schedule.d.ts +290 -1636
  357. package/dist/Schedule.d.ts.map +1 -1
  358. package/dist/Schedule.js +162 -803
  359. package/dist/Schedule.js.map +1 -1
  360. package/dist/Scheduler.d.ts +5 -5
  361. package/dist/Scheduler.d.ts.map +1 -1
  362. package/dist/Scheduler.js +18 -6
  363. package/dist/Scheduler.js.map +1 -1
  364. package/dist/Schema.d.ts +644 -642
  365. package/dist/Schema.d.ts.map +1 -1
  366. package/dist/Schema.js +491 -527
  367. package/dist/Schema.js.map +1 -1
  368. package/dist/SchemaAST.d.ts +27 -50
  369. package/dist/SchemaAST.d.ts.map +1 -1
  370. package/dist/SchemaAST.js +366 -279
  371. package/dist/SchemaAST.js.map +1 -1
  372. package/dist/SchemaError.d.ts +7 -6
  373. package/dist/SchemaError.d.ts.map +1 -1
  374. package/dist/SchemaError.js +7 -6
  375. package/dist/SchemaError.js.map +1 -1
  376. package/dist/SchemaGetter.d.ts +217 -174
  377. package/dist/SchemaGetter.d.ts.map +1 -1
  378. package/dist/SchemaGetter.js +218 -185
  379. package/dist/SchemaGetter.js.map +1 -1
  380. package/dist/SchemaIssue.d.ts +62 -190
  381. package/dist/SchemaIssue.d.ts.map +1 -1
  382. package/dist/SchemaIssue.js +73 -265
  383. package/dist/SchemaIssue.js.map +1 -1
  384. package/dist/SchemaParser.d.ts +2 -2
  385. package/dist/SchemaParser.d.ts.map +1 -1
  386. package/dist/SchemaParser.js +123 -75
  387. package/dist/SchemaParser.js.map +1 -1
  388. package/dist/SchemaRepresentation.d.ts +22 -36
  389. package/dist/SchemaRepresentation.d.ts.map +1 -1
  390. package/dist/SchemaRepresentation.js +20 -26
  391. package/dist/SchemaRepresentation.js.map +1 -1
  392. package/dist/SchemaTransformation.d.ts +114 -74
  393. package/dist/SchemaTransformation.d.ts.map +1 -1
  394. package/dist/SchemaTransformation.js +120 -85
  395. package/dist/SchemaTransformation.js.map +1 -1
  396. package/dist/Scope.d.ts +123 -151
  397. package/dist/Scope.d.ts.map +1 -1
  398. package/dist/Scope.js +72 -92
  399. package/dist/Scope.js.map +1 -1
  400. package/dist/ScopedCache.js.map +1 -1
  401. package/dist/ScopedRef.d.ts +3 -3
  402. package/dist/ScopedRef.js +2 -2
  403. package/dist/ScopedRef.js.map +1 -1
  404. package/dist/Semaphore.d.ts +96 -10
  405. package/dist/Semaphore.d.ts.map +1 -1
  406. package/dist/Semaphore.js +78 -39
  407. package/dist/Semaphore.js.map +1 -1
  408. package/dist/Sink.d.ts +117 -107
  409. package/dist/Sink.d.ts.map +1 -1
  410. package/dist/Sink.js +107 -100
  411. package/dist/Sink.js.map +1 -1
  412. package/dist/Stdio.d.ts +1 -1
  413. package/dist/Stdio.js.map +1 -1
  414. package/dist/Stream.d.ts +2415 -2949
  415. package/dist/Stream.d.ts.map +1 -1
  416. package/dist/Stream.js +1078 -1381
  417. package/dist/Stream.js.map +1 -1
  418. package/dist/String.d.ts +262 -308
  419. package/dist/String.d.ts.map +1 -1
  420. package/dist/String.js +184 -215
  421. package/dist/String.js.map +1 -1
  422. package/dist/Struct.d.ts +109 -114
  423. package/dist/Struct.d.ts.map +1 -1
  424. package/dist/Struct.js +41 -50
  425. package/dist/Struct.js.map +1 -1
  426. package/dist/SubscriptionRef.d.ts +282 -250
  427. package/dist/SubscriptionRef.d.ts.map +1 -1
  428. package/dist/SubscriptionRef.js +104 -92
  429. package/dist/SubscriptionRef.js.map +1 -1
  430. package/dist/Symbol.d.ts +3 -3
  431. package/dist/Symbol.js +3 -3
  432. package/dist/Symbol.js.map +1 -1
  433. package/dist/SynchronizedRef.js.map +1 -1
  434. package/dist/Take.js.map +1 -1
  435. package/dist/Terminal.d.ts +2 -2
  436. package/dist/Terminal.js +1 -1
  437. package/dist/Terminal.js.map +1 -1
  438. package/dist/Tracer.d.ts +100 -54
  439. package/dist/Tracer.d.ts.map +1 -1
  440. package/dist/Tracer.js +41 -24
  441. package/dist/Tracer.js.map +1 -1
  442. package/dist/Trie.d.ts +287 -679
  443. package/dist/Trie.d.ts.map +1 -1
  444. package/dist/Trie.js +109 -251
  445. package/dist/Trie.js.map +1 -1
  446. package/dist/Tuple.d.ts +92 -127
  447. package/dist/Tuple.d.ts.map +1 -1
  448. package/dist/Tuple.js +42 -57
  449. package/dist/Tuple.js.map +1 -1
  450. package/dist/TxChunk.d.ts +201 -121
  451. package/dist/TxChunk.d.ts.map +1 -1
  452. package/dist/TxChunk.js +85 -56
  453. package/dist/TxChunk.js.map +1 -1
  454. package/dist/TxDeferred.d.ts +62 -46
  455. package/dist/TxDeferred.d.ts.map +1 -1
  456. package/dist/TxDeferred.js +30 -22
  457. package/dist/TxDeferred.js.map +1 -1
  458. package/dist/TxHashMap.d.ts +631 -779
  459. package/dist/TxHashMap.d.ts.map +1 -1
  460. package/dist/TxHashMap.js +268 -330
  461. package/dist/TxHashMap.js.map +1 -1
  462. package/dist/TxHashSet.d.ts +297 -236
  463. package/dist/TxHashSet.d.ts.map +1 -1
  464. package/dist/TxHashSet.js +130 -100
  465. package/dist/TxHashSet.js.map +1 -1
  466. package/dist/TxPriorityQueue.d.ts +126 -95
  467. package/dist/TxPriorityQueue.d.ts.map +1 -1
  468. package/dist/TxPriorityQueue.js +74 -56
  469. package/dist/TxPriorityQueue.js.map +1 -1
  470. package/dist/TxPubSub.d.ts +101 -88
  471. package/dist/TxPubSub.d.ts.map +1 -1
  472. package/dist/TxPubSub.js +87 -66
  473. package/dist/TxPubSub.js.map +1 -1
  474. package/dist/TxQueue.d.ts +200 -180
  475. package/dist/TxQueue.d.ts.map +1 -1
  476. package/dist/TxQueue.js +160 -136
  477. package/dist/TxQueue.js.map +1 -1
  478. package/dist/TxReentrantLock.d.ts +97 -66
  479. package/dist/TxReentrantLock.d.ts.map +1 -1
  480. package/dist/TxReentrantLock.js +67 -45
  481. package/dist/TxReentrantLock.js.map +1 -1
  482. package/dist/TxRef.d.ts +51 -32
  483. package/dist/TxRef.d.ts.map +1 -1
  484. package/dist/TxRef.js +23 -15
  485. package/dist/TxRef.js.map +1 -1
  486. package/dist/TxSemaphore.d.ts +129 -95
  487. package/dist/TxSemaphore.d.ts.map +1 -1
  488. package/dist/TxSemaphore.js +85 -70
  489. package/dist/TxSemaphore.js.map +1 -1
  490. package/dist/TxSubscriptionRef.d.ts +97 -70
  491. package/dist/TxSubscriptionRef.d.ts.map +1 -1
  492. package/dist/TxSubscriptionRef.js +44 -34
  493. package/dist/TxSubscriptionRef.js.map +1 -1
  494. package/dist/Types.d.ts +126 -67
  495. package/dist/Types.d.ts.map +1 -1
  496. package/dist/UndefinedOr.js.map +1 -1
  497. package/dist/Unify.d.ts +45 -65
  498. package/dist/Unify.d.ts.map +1 -1
  499. package/dist/Unify.js +6 -9
  500. package/dist/Unify.js.map +1 -1
  501. package/dist/Utils.d.ts +23 -16
  502. package/dist/Utils.d.ts.map +1 -1
  503. package/dist/Utils.js +3 -7
  504. package/dist/Utils.js.map +1 -1
  505. package/dist/index.js.map +1 -1
  506. package/dist/internal/array.js.map +1 -1
  507. package/dist/internal/core.js +1 -1
  508. package/dist/internal/core.js.map +1 -1
  509. package/dist/internal/dateTime.js +4 -0
  510. package/dist/internal/dateTime.js.map +1 -1
  511. package/dist/internal/doNotation.js.map +1 -1
  512. package/dist/internal/effect.js +77 -40
  513. package/dist/internal/effect.js.map +1 -1
  514. package/dist/internal/equal.js.map +1 -1
  515. package/dist/internal/errors.js.map +1 -1
  516. package/dist/internal/executionPlan.js.map +1 -1
  517. package/dist/internal/hashMap.js.map +1 -1
  518. package/dist/internal/hashSet.js.map +1 -1
  519. package/dist/internal/layer.js.map +1 -1
  520. package/dist/internal/matcher.js.map +1 -1
  521. package/dist/internal/metric.js.map +1 -1
  522. package/dist/internal/option.js.map +1 -1
  523. package/dist/internal/persistence.d.ts +2 -0
  524. package/dist/internal/persistence.d.ts.map +1 -0
  525. package/dist/internal/persistence.js +3 -0
  526. package/dist/internal/persistence.js.map +1 -0
  527. package/dist/internal/random.js.map +1 -1
  528. package/dist/internal/rcRef.js.map +1 -1
  529. package/dist/internal/record.js.map +1 -1
  530. package/dist/internal/redacted.js.map +1 -1
  531. package/dist/internal/references.js +3 -0
  532. package/dist/internal/references.js.map +1 -1
  533. package/dist/internal/request.js.map +1 -1
  534. package/dist/internal/result.js.map +1 -1
  535. package/dist/internal/schedule.js.map +1 -1
  536. package/dist/internal/schema/annotations.js.map +1 -1
  537. package/dist/internal/schema/cause.js.map +1 -1
  538. package/dist/internal/schema/fromJsonSchemaDocument.js +13 -11
  539. package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
  540. package/dist/internal/schema/fromRepresentation.js +8 -15
  541. package/dist/internal/schema/fromRepresentation.js.map +1 -1
  542. package/dist/internal/schema/parser.d.ts +14 -0
  543. package/dist/internal/schema/parser.d.ts.map +1 -0
  544. package/dist/internal/schema/parser.js +13 -0
  545. package/dist/internal/schema/parser.js.map +1 -0
  546. package/dist/internal/schema/schema.js.map +1 -1
  547. package/dist/internal/schema/toArbitrary.js.map +1 -1
  548. package/dist/internal/schema/toCodeDocument.js.map +1 -1
  549. package/dist/internal/schema/toEquivalence.js.map +1 -1
  550. package/dist/internal/schema/toJsonSchemaDocument.js +48 -6
  551. package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
  552. package/dist/internal/schema/toRepresentation.js +87 -107
  553. package/dist/internal/schema/toRepresentation.js.map +1 -1
  554. package/dist/internal/stackTraceLimit.js.map +1 -1
  555. package/dist/internal/stream.js.map +1 -1
  556. package/dist/internal/tracer.js.map +1 -1
  557. package/dist/internal/trie.js +13 -9
  558. package/dist/internal/trie.js.map +1 -1
  559. package/dist/testing/FastCheck.d.ts +8 -7
  560. package/dist/testing/FastCheck.d.ts.map +1 -1
  561. package/dist/testing/FastCheck.js +8 -7
  562. package/dist/testing/FastCheck.js.map +1 -1
  563. package/dist/testing/TestClock.d.ts +57 -28
  564. package/dist/testing/TestClock.d.ts.map +1 -1
  565. package/dist/testing/TestClock.js +50 -18
  566. package/dist/testing/TestClock.js.map +1 -1
  567. package/dist/testing/TestConsole.d.ts +32 -31
  568. package/dist/testing/TestConsole.d.ts.map +1 -1
  569. package/dist/testing/TestConsole.js +24 -22
  570. package/dist/testing/TestConsole.js.map +1 -1
  571. package/dist/testing/TestSchema.d.ts +29 -29
  572. package/dist/testing/TestSchema.js +25 -25
  573. package/dist/testing/TestSchema.js.map +1 -1
  574. package/dist/testing/index.js.map +1 -1
  575. package/dist/unstable/ai/AiError.d.ts +95 -118
  576. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  577. package/dist/unstable/ai/AiError.js +94 -117
  578. package/dist/unstable/ai/AiError.js.map +1 -1
  579. package/dist/unstable/ai/AnthropicStructuredOutput.d.ts +1 -1
  580. package/dist/unstable/ai/AnthropicStructuredOutput.js +1 -1
  581. package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
  582. package/dist/unstable/ai/Chat.d.ts +132 -97
  583. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  584. package/dist/unstable/ai/Chat.js +55 -51
  585. package/dist/unstable/ai/Chat.js.map +1 -1
  586. package/dist/unstable/ai/EmbeddingModel.js.map +1 -1
  587. package/dist/unstable/ai/IdGenerator.d.ts +32 -28
  588. package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
  589. package/dist/unstable/ai/IdGenerator.js +26 -21
  590. package/dist/unstable/ai/IdGenerator.js.map +1 -1
  591. package/dist/unstable/ai/LanguageModel.d.ts +107 -67
  592. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  593. package/dist/unstable/ai/LanguageModel.js +104 -64
  594. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  595. package/dist/unstable/ai/McpProtocol.d.ts +30 -0
  596. package/dist/unstable/ai/McpProtocol.d.ts.map +1 -0
  597. package/dist/unstable/ai/McpProtocol.js +20 -0
  598. package/dist/unstable/ai/McpProtocol.js.map +1 -0
  599. package/dist/unstable/ai/McpSchema.d.ts +141 -75
  600. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  601. package/dist/unstable/ai/McpSchema.js +58 -50
  602. package/dist/unstable/ai/McpSchema.js.map +1 -1
  603. package/dist/unstable/ai/McpServer.d.ts +68 -59
  604. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  605. package/dist/unstable/ai/McpServer.js +694 -241
  606. package/dist/unstable/ai/McpServer.js.map +1 -1
  607. package/dist/unstable/ai/Model.d.ts +8 -19
  608. package/dist/unstable/ai/Model.d.ts.map +1 -1
  609. package/dist/unstable/ai/Model.js +9 -20
  610. package/dist/unstable/ai/Model.js.map +1 -1
  611. package/dist/unstable/ai/OpenAiStructuredOutput.d.ts +1 -1
  612. package/dist/unstable/ai/OpenAiStructuredOutput.js +1 -1
  613. package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
  614. package/dist/unstable/ai/Prompt.d.ts +112 -38
  615. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  616. package/dist/unstable/ai/Prompt.js +53 -17
  617. package/dist/unstable/ai/Prompt.js.map +1 -1
  618. package/dist/unstable/ai/Response.d.ts +28 -14
  619. package/dist/unstable/ai/Response.d.ts.map +1 -1
  620. package/dist/unstable/ai/Response.js +9 -4
  621. package/dist/unstable/ai/Response.js.map +1 -1
  622. package/dist/unstable/ai/ResponseIdTracker.js.map +1 -1
  623. package/dist/unstable/ai/Telemetry.d.ts +46 -13
  624. package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
  625. package/dist/unstable/ai/Telemetry.js +18 -7
  626. package/dist/unstable/ai/Telemetry.js.map +1 -1
  627. package/dist/unstable/ai/Tokenizer.d.ts +14 -3
  628. package/dist/unstable/ai/Tokenizer.d.ts.map +1 -1
  629. package/dist/unstable/ai/Tokenizer.js +10 -2
  630. package/dist/unstable/ai/Tokenizer.js.map +1 -1
  631. package/dist/unstable/ai/Tool.d.ts +59 -44
  632. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  633. package/dist/unstable/ai/Tool.js +48 -39
  634. package/dist/unstable/ai/Tool.js.map +1 -1
  635. package/dist/unstable/ai/Toolkit.d.ts +26 -8
  636. package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
  637. package/dist/unstable/ai/Toolkit.js +18 -4
  638. package/dist/unstable/ai/Toolkit.js.map +1 -1
  639. package/dist/unstable/ai/index.d.ts +4 -0
  640. package/dist/unstable/ai/index.d.ts.map +1 -1
  641. package/dist/unstable/ai/index.js +4 -0
  642. package/dist/unstable/ai/index.js.map +1 -1
  643. package/dist/unstable/ai/internal/codec-transformer.js.map +1 -1
  644. package/dist/unstable/ai/internal/mcpProtocol.d.ts +21 -0
  645. package/dist/unstable/ai/internal/mcpProtocol.d.ts.map +1 -0
  646. package/dist/unstable/ai/internal/mcpProtocol.js +22 -0
  647. package/dist/unstable/ai/internal/mcpProtocol.js.map +1 -0
  648. package/dist/unstable/ai/internal/mcpProtocolRegistry.d.ts +2 -0
  649. package/dist/unstable/ai/internal/mcpProtocolRegistry.d.ts.map +1 -0
  650. package/dist/unstable/ai/internal/mcpProtocolRegistry.js +32 -0
  651. package/dist/unstable/ai/internal/mcpProtocolRegistry.js.map +1 -0
  652. package/dist/unstable/ai/internal/structured-output.js +14 -15
  653. package/dist/unstable/ai/internal/structured-output.js.map +1 -1
  654. package/dist/unstable/cli/Argument.d.ts +273 -69
  655. package/dist/unstable/cli/Argument.d.ts.map +1 -1
  656. package/dist/unstable/cli/Argument.js +111 -33
  657. package/dist/unstable/cli/Argument.js.map +1 -1
  658. package/dist/unstable/cli/CliConfig.js.map +1 -1
  659. package/dist/unstable/cli/CliError.d.ts +69 -76
  660. package/dist/unstable/cli/CliError.d.ts.map +1 -1
  661. package/dist/unstable/cli/CliError.js +57 -61
  662. package/dist/unstable/cli/CliError.js.map +1 -1
  663. package/dist/unstable/cli/CliOutput.d.ts +35 -54
  664. package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
  665. package/dist/unstable/cli/CliOutput.js +26 -42
  666. package/dist/unstable/cli/CliOutput.js.map +1 -1
  667. package/dist/unstable/cli/Command.d.ts +705 -107
  668. package/dist/unstable/cli/Command.d.ts.map +1 -1
  669. package/dist/unstable/cli/Command.js +238 -42
  670. package/dist/unstable/cli/Command.js.map +1 -1
  671. package/dist/unstable/cli/Completions.js.map +1 -1
  672. package/dist/unstable/cli/Flag.d.ts +418 -138
  673. package/dist/unstable/cli/Flag.d.ts.map +1 -1
  674. package/dist/unstable/cli/Flag.js +197 -71
  675. package/dist/unstable/cli/Flag.js.map +1 -1
  676. package/dist/unstable/cli/GlobalFlag.d.ts +1 -1
  677. package/dist/unstable/cli/GlobalFlag.js.map +1 -1
  678. package/dist/unstable/cli/HelpDoc.d.ts +12 -4
  679. package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
  680. package/dist/unstable/cli/Param.d.ts +292 -78
  681. package/dist/unstable/cli/Param.d.ts.map +1 -1
  682. package/dist/unstable/cli/Param.js +128 -46
  683. package/dist/unstable/cli/Param.js.map +1 -1
  684. package/dist/unstable/cli/Primitive.d.ts +370 -149
  685. package/dist/unstable/cli/Primitive.d.ts.map +1 -1
  686. package/dist/unstable/cli/Primitive.js +344 -136
  687. package/dist/unstable/cli/Primitive.js.map +1 -1
  688. package/dist/unstable/cli/Prompt.d.ts +23 -14
  689. package/dist/unstable/cli/Prompt.d.ts.map +1 -1
  690. package/dist/unstable/cli/Prompt.js +23 -14
  691. package/dist/unstable/cli/Prompt.js.map +1 -1
  692. package/dist/unstable/cli/index.js.map +1 -1
  693. package/dist/unstable/cli/internal/ansi.js.map +1 -1
  694. package/dist/unstable/cli/internal/auto-suggest.js.map +1 -1
  695. package/dist/unstable/cli/internal/command.js.map +1 -1
  696. package/dist/unstable/cli/internal/completions/bash.js.map +1 -1
  697. package/dist/unstable/cli/internal/completions/descriptor.js.map +1 -1
  698. package/dist/unstable/cli/internal/completions/fish.js.map +1 -1
  699. package/dist/unstable/cli/internal/completions/zsh.js.map +1 -1
  700. package/dist/unstable/cli/internal/config.js.map +1 -1
  701. package/dist/unstable/cli/internal/help.js.map +1 -1
  702. package/dist/unstable/cli/internal/lexer.js +17 -7
  703. package/dist/unstable/cli/internal/lexer.js.map +1 -1
  704. package/dist/unstable/cli/internal/parser.js +2 -2
  705. package/dist/unstable/cli/internal/parser.js.map +1 -1
  706. package/dist/unstable/cli/internal/wizard.js.map +1 -1
  707. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  708. package/dist/unstable/cluster/ClusterError.js.map +1 -1
  709. package/dist/unstable/cluster/ClusterMetrics.js.map +1 -1
  710. package/dist/unstable/cluster/ClusterSchema.d.ts +8 -8
  711. package/dist/unstable/cluster/ClusterSchema.js +8 -8
  712. package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
  713. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  714. package/dist/unstable/cluster/ClusterWorkflowEngine.js +5 -1
  715. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  716. package/dist/unstable/cluster/DeliverAt.js.map +1 -1
  717. package/dist/unstable/cluster/Entity.d.ts +10 -10
  718. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  719. package/dist/unstable/cluster/Entity.js +8 -8
  720. package/dist/unstable/cluster/Entity.js.map +1 -1
  721. package/dist/unstable/cluster/EntityAddress.js.map +1 -1
  722. package/dist/unstable/cluster/EntityId.js.map +1 -1
  723. package/dist/unstable/cluster/EntityProxy.d.ts +4 -2
  724. package/dist/unstable/cluster/EntityProxy.d.ts.map +1 -1
  725. package/dist/unstable/cluster/EntityProxy.js +4 -2
  726. package/dist/unstable/cluster/EntityProxy.js.map +1 -1
  727. package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
  728. package/dist/unstable/cluster/EntityResource.d.ts +2 -2
  729. package/dist/unstable/cluster/EntityResource.js +2 -2
  730. package/dist/unstable/cluster/EntityResource.js.map +1 -1
  731. package/dist/unstable/cluster/EntityType.js.map +1 -1
  732. package/dist/unstable/cluster/Envelope.d.ts +3 -3
  733. package/dist/unstable/cluster/Envelope.js +3 -3
  734. package/dist/unstable/cluster/Envelope.js.map +1 -1
  735. package/dist/unstable/cluster/HttpRunner.d.ts +2 -2
  736. package/dist/unstable/cluster/HttpRunner.d.ts.map +1 -1
  737. package/dist/unstable/cluster/HttpRunner.js +6 -4
  738. package/dist/unstable/cluster/HttpRunner.js.map +1 -1
  739. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  740. package/dist/unstable/cluster/MachineId.js.map +1 -1
  741. package/dist/unstable/cluster/Message.d.ts +9 -9
  742. package/dist/unstable/cluster/Message.js +6 -6
  743. package/dist/unstable/cluster/Message.js.map +1 -1
  744. package/dist/unstable/cluster/MessageStorage.d.ts +15 -15
  745. package/dist/unstable/cluster/MessageStorage.js +5 -5
  746. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  747. package/dist/unstable/cluster/Reply.d.ts.map +1 -1
  748. package/dist/unstable/cluster/Reply.js +4 -4
  749. package/dist/unstable/cluster/Reply.js.map +1 -1
  750. package/dist/unstable/cluster/Runner.js.map +1 -1
  751. package/dist/unstable/cluster/RunnerAddress.js.map +1 -1
  752. package/dist/unstable/cluster/RunnerHealth.d.ts +1 -1
  753. package/dist/unstable/cluster/RunnerHealth.js +1 -1
  754. package/dist/unstable/cluster/RunnerHealth.js.map +1 -1
  755. package/dist/unstable/cluster/RunnerServer.d.ts +2 -1
  756. package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
  757. package/dist/unstable/cluster/RunnerServer.js +16 -16
  758. package/dist/unstable/cluster/RunnerServer.js.map +1 -1
  759. package/dist/unstable/cluster/RunnerStorage.d.ts +2 -2
  760. package/dist/unstable/cluster/RunnerStorage.js +1 -1
  761. package/dist/unstable/cluster/RunnerStorage.js.map +1 -1
  762. package/dist/unstable/cluster/Runners.d.ts +6 -6
  763. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  764. package/dist/unstable/cluster/Runners.js +19 -10
  765. package/dist/unstable/cluster/Runners.js.map +1 -1
  766. package/dist/unstable/cluster/ShardId.js.map +1 -1
  767. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  768. package/dist/unstable/cluster/Sharding.js +3 -2
  769. package/dist/unstable/cluster/Sharding.js.map +1 -1
  770. package/dist/unstable/cluster/ShardingConfig.d.ts +3 -3
  771. package/dist/unstable/cluster/ShardingConfig.js +3 -3
  772. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  773. package/dist/unstable/cluster/ShardingRegistrationEvent.js.map +1 -1
  774. package/dist/unstable/cluster/SingleRunner.js.map +1 -1
  775. package/dist/unstable/cluster/Singleton.js.map +1 -1
  776. package/dist/unstable/cluster/SingletonAddress.d.ts +1 -1
  777. package/dist/unstable/cluster/SingletonAddress.js +1 -1
  778. package/dist/unstable/cluster/SingletonAddress.js.map +1 -1
  779. package/dist/unstable/cluster/Snowflake.d.ts +8 -8
  780. package/dist/unstable/cluster/Snowflake.js +8 -8
  781. package/dist/unstable/cluster/Snowflake.js.map +1 -1
  782. package/dist/unstable/cluster/SocketRunner.js.map +1 -1
  783. package/dist/unstable/cluster/SqlMessageStorage.js +1 -1
  784. package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
  785. package/dist/unstable/cluster/SqlRunnerStorage.d.ts.map +1 -1
  786. package/dist/unstable/cluster/SqlRunnerStorage.js +20 -5
  787. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  788. package/dist/unstable/cluster/TestRunner.js.map +1 -1
  789. package/dist/unstable/cluster/index.js.map +1 -1
  790. package/dist/unstable/cluster/internal/entityManager.js +5 -5
  791. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  792. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  793. package/dist/unstable/cluster/internal/hash.js.map +1 -1
  794. package/dist/unstable/cluster/internal/interruptors.js.map +1 -1
  795. package/dist/unstable/cluster/internal/resourceMap.js.map +1 -1
  796. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  797. package/dist/unstable/cluster/internal/shardLock.js.map +1 -1
  798. package/dist/unstable/devtools/DevTools.js.map +1 -1
  799. package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
  800. package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
  801. package/dist/unstable/devtools/DevToolsServer.js.map +1 -1
  802. package/dist/unstable/devtools/index.js.map +1 -1
  803. package/dist/unstable/encoding/Msgpack.d.ts.map +1 -1
  804. package/dist/unstable/encoding/Msgpack.js +6 -8
  805. package/dist/unstable/encoding/Msgpack.js.map +1 -1
  806. package/dist/unstable/encoding/Ndjson.js.map +1 -1
  807. package/dist/unstable/encoding/Sse.d.ts +72 -8
  808. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  809. package/dist/unstable/encoding/Sse.js +58 -8
  810. package/dist/unstable/encoding/Sse.js.map +1 -1
  811. package/dist/unstable/encoding/index.js.map +1 -1
  812. package/dist/unstable/eventlog/Event.d.ts +20 -20
  813. package/dist/unstable/eventlog/Event.js.map +1 -1
  814. package/dist/unstable/eventlog/EventGroup.d.ts +4 -4
  815. package/dist/unstable/eventlog/EventGroup.js.map +1 -1
  816. package/dist/unstable/eventlog/EventJournal.d.ts +15 -15
  817. package/dist/unstable/eventlog/EventJournal.js +13 -13
  818. package/dist/unstable/eventlog/EventJournal.js.map +1 -1
  819. package/dist/unstable/eventlog/EventLog.d.ts +3 -3
  820. package/dist/unstable/eventlog/EventLog.js +3 -3
  821. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  822. package/dist/unstable/eventlog/EventLogEncryption.d.ts +1 -1
  823. package/dist/unstable/eventlog/EventLogEncryption.js +1 -1
  824. package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
  825. package/dist/unstable/eventlog/EventLogMessage.d.ts +2 -2
  826. package/dist/unstable/eventlog/EventLogMessage.js +1 -1
  827. package/dist/unstable/eventlog/EventLogMessage.js.map +1 -1
  828. package/dist/unstable/eventlog/EventLogRemote.d.ts +15 -15
  829. package/dist/unstable/eventlog/EventLogRemote.js +1 -1
  830. package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
  831. package/dist/unstable/eventlog/EventLogServer.d.ts +11 -2
  832. package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
  833. package/dist/unstable/eventlog/EventLogServer.js +45 -21
  834. package/dist/unstable/eventlog/EventLogServer.js.map +1 -1
  835. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +4 -4
  836. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  837. package/dist/unstable/eventlog/EventLogServerEncrypted.js +13 -5
  838. package/dist/unstable/eventlog/EventLogServerEncrypted.js.map +1 -1
  839. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +5 -5
  840. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
  841. package/dist/unstable/eventlog/EventLogServerUnencrypted.js +14 -6
  842. package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -1
  843. package/dist/unstable/eventlog/EventLogSessionAuth.d.ts +1 -1
  844. package/dist/unstable/eventlog/EventLogSessionAuth.js +1 -1
  845. package/dist/unstable/eventlog/EventLogSessionAuth.js.map +1 -1
  846. package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -1
  847. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
  848. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  849. package/dist/unstable/eventlog/index.js.map +1 -1
  850. package/dist/unstable/eventlog/internal/identityRootSecretDerivation.js.map +1 -1
  851. package/dist/unstable/http/Cookies.d.ts +2 -2
  852. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  853. package/dist/unstable/http/Cookies.js +30 -18
  854. package/dist/unstable/http/Cookies.js.map +1 -1
  855. package/dist/unstable/http/Etag.d.ts +1 -1
  856. package/dist/unstable/http/Etag.js +1 -1
  857. package/dist/unstable/http/Etag.js.map +1 -1
  858. package/dist/unstable/http/FetchHttpClient.d.ts.map +1 -1
  859. package/dist/unstable/http/FetchHttpClient.js.map +1 -1
  860. package/dist/unstable/http/Headers.d.ts +2 -2
  861. package/dist/unstable/http/Headers.js +2 -2
  862. package/dist/unstable/http/Headers.js.map +1 -1
  863. package/dist/unstable/http/HttpBody.d.ts +5 -3
  864. package/dist/unstable/http/HttpBody.d.ts.map +1 -1
  865. package/dist/unstable/http/HttpBody.js +11 -5
  866. package/dist/unstable/http/HttpBody.js.map +1 -1
  867. package/dist/unstable/http/HttpClient.d.ts +51 -44
  868. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  869. package/dist/unstable/http/HttpClient.js +46 -17
  870. package/dist/unstable/http/HttpClient.js.map +1 -1
  871. package/dist/unstable/http/HttpClientError.js.map +1 -1
  872. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  873. package/dist/unstable/http/HttpClientRequest.js +2 -0
  874. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  875. package/dist/unstable/http/HttpClientResponse.d.ts +4 -4
  876. package/dist/unstable/http/HttpClientResponse.js +2 -2
  877. package/dist/unstable/http/HttpClientResponse.js.map +1 -1
  878. package/dist/unstable/http/HttpEffect.d.ts +6 -6
  879. package/dist/unstable/http/HttpEffect.js +3 -3
  880. package/dist/unstable/http/HttpEffect.js.map +1 -1
  881. package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
  882. package/dist/unstable/http/HttpMethod.d.ts +6 -9
  883. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  884. package/dist/unstable/http/HttpMethod.js +6 -9
  885. package/dist/unstable/http/HttpMethod.js.map +1 -1
  886. package/dist/unstable/http/HttpMiddleware.d.ts +75 -9
  887. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  888. package/dist/unstable/http/HttpMiddleware.js +164 -39
  889. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  890. package/dist/unstable/http/HttpPlatform.d.ts +76 -0
  891. package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
  892. package/dist/unstable/http/HttpPlatform.js +32 -0
  893. package/dist/unstable/http/HttpPlatform.js.map +1 -1
  894. package/dist/unstable/http/HttpRouter.d.ts +88 -89
  895. package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
  896. package/dist/unstable/http/HttpRouter.js +78 -79
  897. package/dist/unstable/http/HttpRouter.js.map +1 -1
  898. package/dist/unstable/http/HttpServer.d.ts +13 -13
  899. package/dist/unstable/http/HttpServer.js +6 -6
  900. package/dist/unstable/http/HttpServer.js.map +1 -1
  901. package/dist/unstable/http/HttpServerError.d.ts +2 -2
  902. package/dist/unstable/http/HttpServerError.js +2 -2
  903. package/dist/unstable/http/HttpServerError.js.map +1 -1
  904. package/dist/unstable/http/HttpServerRequest.d.ts +4 -4
  905. package/dist/unstable/http/HttpServerRequest.js +4 -4
  906. package/dist/unstable/http/HttpServerRequest.js.map +1 -1
  907. package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
  908. package/dist/unstable/http/HttpServerResponse.d.ts +22 -0
  909. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  910. package/dist/unstable/http/HttpServerResponse.js +10 -0
  911. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  912. package/dist/unstable/http/HttpStaticServer.d.ts +35 -7
  913. package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -1
  914. package/dist/unstable/http/HttpStaticServer.js +35 -7
  915. package/dist/unstable/http/HttpStaticServer.js.map +1 -1
  916. package/dist/unstable/http/HttpTraceContext.js.map +1 -1
  917. package/dist/unstable/http/Multipart.d.ts +6 -6
  918. package/dist/unstable/http/Multipart.js +5 -5
  919. package/dist/unstable/http/Multipart.js.map +1 -1
  920. package/dist/unstable/http/Template.js.map +1 -1
  921. package/dist/unstable/http/Url.d.ts +33 -63
  922. package/dist/unstable/http/Url.d.ts.map +1 -1
  923. package/dist/unstable/http/Url.js +14 -28
  924. package/dist/unstable/http/Url.js.map +1 -1
  925. package/dist/unstable/http/UrlParams.d.ts +10 -18
  926. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  927. package/dist/unstable/http/UrlParams.js +9 -17
  928. package/dist/unstable/http/UrlParams.js.map +1 -1
  929. package/dist/unstable/http/index.js.map +1 -1
  930. package/dist/unstable/http/internal/compression.d.ts +2 -0
  931. package/dist/unstable/http/internal/compression.d.ts.map +1 -0
  932. package/dist/unstable/http/internal/compression.js +155 -0
  933. package/dist/unstable/http/internal/compression.js.map +1 -0
  934. package/dist/unstable/http/internal/preResponseHandler.js.map +1 -1
  935. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  936. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +1 -1
  937. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  938. package/dist/unstable/httpapi/HttpApiBuilder.js +10 -11
  939. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  940. package/dist/unstable/httpapi/HttpApiClient.d.ts +4 -5
  941. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  942. package/dist/unstable/httpapi/HttpApiClient.js +11 -13
  943. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  944. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +42 -42
  945. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  946. package/dist/unstable/httpapi/HttpApiError.d.ts +13 -13
  947. package/dist/unstable/httpapi/HttpApiError.js +13 -13
  948. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  949. package/dist/unstable/httpapi/HttpApiGroup.d.ts +15 -15
  950. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  951. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +71 -24
  952. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  953. package/dist/unstable/httpapi/HttpApiMiddleware.js +57 -10
  954. package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
  955. package/dist/unstable/httpapi/HttpApiScalar.d.ts +0 -12
  956. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  957. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  958. package/dist/unstable/httpapi/HttpApiSchema.d.ts +6 -6
  959. package/dist/unstable/httpapi/HttpApiSchema.js +4 -4
  960. package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
  961. package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
  962. package/dist/unstable/httpapi/HttpApiSwagger.js.map +1 -1
  963. package/dist/unstable/httpapi/HttpApiTest.js.map +1 -1
  964. package/dist/unstable/httpapi/OpenApi.d.ts +13 -13
  965. package/dist/unstable/httpapi/OpenApi.js +13 -13
  966. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  967. package/dist/unstable/httpapi/index.js.map +1 -1
  968. package/dist/unstable/httpapi/internal/html.js.map +1 -1
  969. package/dist/unstable/httpapi/internal/httpApiScalar.js.map +1 -1
  970. package/dist/unstable/httpapi/internal/httpApiSwagger.js.map +1 -1
  971. package/dist/unstable/httpapi/internal/mediaType.js.map +1 -1
  972. package/dist/unstable/observability/Otlp.js.map +1 -1
  973. package/dist/unstable/observability/OtlpExporter.d.ts +12 -14
  974. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  975. package/dist/unstable/observability/OtlpExporter.js +17 -4
  976. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  977. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  978. package/dist/unstable/observability/OtlpMetrics.d.ts +4 -1
  979. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  980. package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
  981. package/dist/unstable/observability/OtlpResource.d.ts +16 -7
  982. package/dist/unstable/observability/OtlpResource.d.ts.map +1 -1
  983. package/dist/unstable/observability/OtlpResource.js +21 -12
  984. package/dist/unstable/observability/OtlpResource.js.map +1 -1
  985. package/dist/unstable/observability/OtlpSerialization.js.map +1 -1
  986. package/dist/unstable/observability/OtlpTracer.js.map +1 -1
  987. package/dist/unstable/observability/PrometheusMetrics.d.ts +13 -4
  988. package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
  989. package/dist/unstable/observability/PrometheusMetrics.js +10 -3
  990. package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
  991. package/dist/unstable/observability/index.js.map +1 -1
  992. package/dist/unstable/observability/internal/otlpEnv.js +1 -1
  993. package/dist/unstable/observability/internal/otlpEnv.js.map +1 -1
  994. package/dist/unstable/observability/internal/otlpProtobuf.js.map +1 -1
  995. package/dist/unstable/observability/internal/protobuf.js +3 -0
  996. package/dist/unstable/observability/internal/protobuf.js.map +1 -1
  997. package/dist/unstable/persistence/KeyValueStore.d.ts +8 -3
  998. package/dist/unstable/persistence/KeyValueStore.d.ts.map +1 -1
  999. package/dist/unstable/persistence/KeyValueStore.js +22 -13
  1000. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  1001. package/dist/unstable/persistence/Persistable.d.ts +8 -8
  1002. package/dist/unstable/persistence/Persistable.js.map +1 -1
  1003. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  1004. package/dist/unstable/persistence/PersistedQueue.d.ts +6 -6
  1005. package/dist/unstable/persistence/PersistedQueue.js +6 -6
  1006. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  1007. package/dist/unstable/persistence/Persistence.d.ts +3 -3
  1008. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  1009. package/dist/unstable/persistence/Persistence.js +91 -15
  1010. package/dist/unstable/persistence/Persistence.js.map +1 -1
  1011. package/dist/unstable/persistence/RateLimiter.d.ts +26 -15
  1012. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  1013. package/dist/unstable/persistence/RateLimiter.js +24 -13
  1014. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  1015. package/dist/unstable/persistence/Redis.d.ts +2 -2
  1016. package/dist/unstable/persistence/Redis.js +1 -1
  1017. package/dist/unstable/persistence/Redis.js.map +1 -1
  1018. package/dist/unstable/persistence/index.js.map +1 -1
  1019. package/dist/unstable/process/ChildProcess.d.ts +64 -21
  1020. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  1021. package/dist/unstable/process/ChildProcess.js +14 -5
  1022. package/dist/unstable/process/ChildProcess.js.map +1 -1
  1023. package/dist/unstable/process/ChildProcessSpawner.d.ts +21 -10
  1024. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  1025. package/dist/unstable/process/ChildProcessSpawner.js +1 -1
  1026. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  1027. package/dist/unstable/process/index.js.map +1 -1
  1028. package/dist/unstable/reactivity/AsyncResult.d.ts +8 -8
  1029. package/dist/unstable/reactivity/AsyncResult.d.ts.map +1 -1
  1030. package/dist/unstable/reactivity/AsyncResult.js +10 -10
  1031. package/dist/unstable/reactivity/AsyncResult.js.map +1 -1
  1032. package/dist/unstable/reactivity/Atom.d.ts +25 -22
  1033. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  1034. package/dist/unstable/reactivity/Atom.js +14 -13
  1035. package/dist/unstable/reactivity/Atom.js.map +1 -1
  1036. package/dist/unstable/reactivity/AtomHttpApi.d.ts +1 -1
  1037. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  1038. package/dist/unstable/reactivity/AtomHttpApi.js +4 -1
  1039. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  1040. package/dist/unstable/reactivity/AtomRef.js.map +1 -1
  1041. package/dist/unstable/reactivity/AtomRegistry.js +24 -3
  1042. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  1043. package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
  1044. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  1045. package/dist/unstable/reactivity/AtomRpc.js +4 -1
  1046. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  1047. package/dist/unstable/reactivity/Hydration.d.ts +1 -1
  1048. package/dist/unstable/reactivity/Hydration.js +1 -1
  1049. package/dist/unstable/reactivity/Hydration.js.map +1 -1
  1050. package/dist/unstable/reactivity/Reactivity.js.map +1 -1
  1051. package/dist/unstable/reactivity/index.js.map +1 -1
  1052. package/dist/unstable/rpc/Rpc.d.ts +35 -33
  1053. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  1054. package/dist/unstable/rpc/Rpc.js +4 -2
  1055. package/dist/unstable/rpc/Rpc.js.map +1 -1
  1056. package/dist/unstable/rpc/RpcClient.d.ts +12 -12
  1057. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  1058. package/dist/unstable/rpc/RpcClient.js +12 -11
  1059. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  1060. package/dist/unstable/rpc/RpcClientError.js.map +1 -1
  1061. package/dist/unstable/rpc/RpcGroup.d.ts +8 -8
  1062. package/dist/unstable/rpc/RpcGroup.js +1 -1
  1063. package/dist/unstable/rpc/RpcGroup.js.map +1 -1
  1064. package/dist/unstable/rpc/RpcMessage.d.ts +31 -30
  1065. package/dist/unstable/rpc/RpcMessage.d.ts.map +1 -1
  1066. package/dist/unstable/rpc/RpcMessage.js +6 -6
  1067. package/dist/unstable/rpc/RpcMessage.js.map +1 -1
  1068. package/dist/unstable/rpc/RpcMiddleware.d.ts +10 -10
  1069. package/dist/unstable/rpc/RpcMiddleware.js +1 -1
  1070. package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
  1071. package/dist/unstable/rpc/RpcSchema.d.ts +4 -4
  1072. package/dist/unstable/rpc/RpcSchema.js +3 -3
  1073. package/dist/unstable/rpc/RpcSchema.js.map +1 -1
  1074. package/dist/unstable/rpc/RpcSerialization.d.ts +58 -7
  1075. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  1076. package/dist/unstable/rpc/RpcSerialization.js +175 -96
  1077. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  1078. package/dist/unstable/rpc/RpcServer.d.ts +13 -13
  1079. package/dist/unstable/rpc/RpcServer.js +17 -13
  1080. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  1081. package/dist/unstable/rpc/RpcTest.js.map +1 -1
  1082. package/dist/unstable/rpc/RpcWorker.d.ts +5 -5
  1083. package/dist/unstable/rpc/RpcWorker.js +4 -4
  1084. package/dist/unstable/rpc/RpcWorker.js.map +1 -1
  1085. package/dist/unstable/rpc/Utils.js.map +1 -1
  1086. package/dist/unstable/rpc/index.js.map +1 -1
  1087. package/dist/unstable/schema/Model.d.ts +52 -50
  1088. package/dist/unstable/schema/Model.d.ts.map +1 -1
  1089. package/dist/unstable/schema/Model.js +35 -33
  1090. package/dist/unstable/schema/Model.js.map +1 -1
  1091. package/dist/unstable/schema/VariantSchema.d.ts +5 -5
  1092. package/dist/unstable/schema/VariantSchema.js +2 -2
  1093. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  1094. package/dist/unstable/schema/index.js.map +1 -1
  1095. package/dist/unstable/socket/Socket.d.ts +11 -3
  1096. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  1097. package/dist/unstable/socket/Socket.js +9 -4
  1098. package/dist/unstable/socket/Socket.js.map +1 -1
  1099. package/dist/unstable/socket/SocketServer.js.map +1 -1
  1100. package/dist/unstable/socket/index.js.map +1 -1
  1101. package/dist/unstable/sql/Migrator.js.map +1 -1
  1102. package/dist/unstable/sql/SqlClient.d.ts +1 -1
  1103. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  1104. package/dist/unstable/sql/SqlClient.js +2 -2
  1105. package/dist/unstable/sql/SqlClient.js.map +1 -1
  1106. package/dist/unstable/sql/SqlConnection.js.map +1 -1
  1107. package/dist/unstable/sql/SqlError.js.map +1 -1
  1108. package/dist/unstable/sql/SqlModel.d.ts +2 -2
  1109. package/dist/unstable/sql/SqlModel.js +2 -2
  1110. package/dist/unstable/sql/SqlModel.js.map +1 -1
  1111. package/dist/unstable/sql/SqlResolver.d.ts +5 -5
  1112. package/dist/unstable/sql/SqlResolver.js +2 -2
  1113. package/dist/unstable/sql/SqlResolver.js.map +1 -1
  1114. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  1115. package/dist/unstable/sql/SqlStream.js.map +1 -1
  1116. package/dist/unstable/sql/Statement.d.ts +6 -6
  1117. package/dist/unstable/sql/Statement.js +15 -15
  1118. package/dist/unstable/sql/Statement.js.map +1 -1
  1119. package/dist/unstable/sql/index.js.map +1 -1
  1120. package/dist/unstable/workers/Transferable.d.ts +1 -1
  1121. package/dist/unstable/workers/Transferable.js +1 -1
  1122. package/dist/unstable/workers/Transferable.js.map +1 -1
  1123. package/dist/unstable/workers/Worker.d.ts +2 -2
  1124. package/dist/unstable/workers/Worker.js +2 -2
  1125. package/dist/unstable/workers/Worker.js.map +1 -1
  1126. package/dist/unstable/workers/WorkerError.d.ts +7 -7
  1127. package/dist/unstable/workers/WorkerError.js +6 -6
  1128. package/dist/unstable/workers/WorkerError.js.map +1 -1
  1129. package/dist/unstable/workers/WorkerRunner.d.ts +1 -1
  1130. package/dist/unstable/workers/WorkerRunner.js +1 -1
  1131. package/dist/unstable/workers/WorkerRunner.js.map +1 -1
  1132. package/dist/unstable/workers/index.js.map +1 -1
  1133. package/dist/unstable/workflow/Activity.d.ts +2 -2
  1134. package/dist/unstable/workflow/Activity.js +2 -2
  1135. package/dist/unstable/workflow/Activity.js.map +1 -1
  1136. package/dist/unstable/workflow/DurableClock.d.ts +1 -1
  1137. package/dist/unstable/workflow/DurableClock.js +1 -1
  1138. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  1139. package/dist/unstable/workflow/DurableDeferred.d.ts +10 -10
  1140. package/dist/unstable/workflow/DurableDeferred.js +5 -5
  1141. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  1142. package/dist/unstable/workflow/DurableQueue.d.ts +22 -20
  1143. package/dist/unstable/workflow/DurableQueue.d.ts.map +1 -1
  1144. package/dist/unstable/workflow/DurableQueue.js +22 -20
  1145. package/dist/unstable/workflow/DurableQueue.js.map +1 -1
  1146. package/dist/unstable/workflow/Workflow.d.ts +21 -21
  1147. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  1148. package/dist/unstable/workflow/Workflow.js +13 -14
  1149. package/dist/unstable/workflow/Workflow.js.map +1 -1
  1150. package/dist/unstable/workflow/WorkflowEngine.d.ts +1 -1
  1151. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  1152. package/dist/unstable/workflow/WorkflowProxy.d.ts +4 -2
  1153. package/dist/unstable/workflow/WorkflowProxy.d.ts.map +1 -1
  1154. package/dist/unstable/workflow/WorkflowProxy.js +4 -2
  1155. package/dist/unstable/workflow/WorkflowProxy.js.map +1 -1
  1156. package/dist/unstable/workflow/WorkflowProxyServer.js.map +1 -1
  1157. package/dist/unstable/workflow/index.js.map +1 -1
  1158. package/dist/unstable/workflow/internal/crypto.js.map +1 -1
  1159. package/package.json +5 -6
  1160. package/src/Array.ts +982 -1045
  1161. package/src/BigDecimal.ts +433 -756
  1162. package/src/BigInt.ts +213 -269
  1163. package/src/Boolean.ts +146 -188
  1164. package/src/Cache.ts +409 -255
  1165. package/src/Cause.ts +167 -277
  1166. package/src/Channel.ts +891 -816
  1167. package/src/ChannelSchema.ts +1 -1
  1168. package/src/Chunk.ts +841 -1181
  1169. package/src/Clock.ts +181 -49
  1170. package/src/Combiner.ts +20 -33
  1171. package/src/Config.ts +615 -332
  1172. package/src/ConfigProvider.ts +214 -120
  1173. package/src/Console.ts +289 -39
  1174. package/src/Context.ts +319 -378
  1175. package/src/Cron.ts +68 -77
  1176. package/src/Crypto.ts +13 -15
  1177. package/src/Data.ts +60 -80
  1178. package/src/DateTime.ts +564 -660
  1179. package/src/Deferred.ts +253 -256
  1180. package/src/Duration.ts +216 -308
  1181. package/src/Effect.ts +2893 -3279
  1182. package/src/Encoding.ts +22 -40
  1183. package/src/Equal.ts +49 -39
  1184. package/src/Equivalence.ts +103 -105
  1185. package/src/ErrorReporter.ts +51 -27
  1186. package/src/ExecutionPlan.ts +13 -55
  1187. package/src/Exit.ts +116 -192
  1188. package/src/Fiber.ts +81 -148
  1189. package/src/FiberHandle.ts +152 -105
  1190. package/src/FiberMap.ts +225 -174
  1191. package/src/FiberSet.ts +124 -82
  1192. package/src/FileSystem.ts +155 -263
  1193. package/src/Filter.ts +61 -33
  1194. package/src/Formatter.ts +54 -56
  1195. package/src/Function.ts +76 -145
  1196. package/src/Graph.ts +416 -770
  1197. package/src/HKT.ts +12 -6
  1198. package/src/Hash.ts +52 -83
  1199. package/src/HashMap.ts +319 -411
  1200. package/src/HashRing.ts +1 -0
  1201. package/src/HashSet.ts +177 -284
  1202. package/src/Inspectable.ts +12 -12
  1203. package/src/Iterable.ts +620 -786
  1204. package/src/JsonPatch.ts +58 -112
  1205. package/src/JsonPointer.ts +8 -8
  1206. package/src/JsonSchema.ts +402 -244
  1207. package/src/Latch.ts +23 -35
  1208. package/src/Layer.ts +359 -260
  1209. package/src/LayerMap.ts +49 -29
  1210. package/src/LayerRef.ts +6 -2
  1211. package/src/LogLevel.ts +114 -214
  1212. package/src/Logger.ts +344 -697
  1213. package/src/ManagedRuntime.ts +7 -5
  1214. package/src/Match.ts +217 -252
  1215. package/src/Metric.ts +516 -1089
  1216. package/src/MutableHashMap.ts +218 -255
  1217. package/src/MutableHashSet.ts +84 -89
  1218. package/src/MutableList.ts +73 -370
  1219. package/src/MutableRef.ts +420 -243
  1220. package/src/Newtype.ts +21 -14
  1221. package/src/NonEmptyIterable.ts +7 -137
  1222. package/src/Number.ts +196 -233
  1223. package/src/Optic.ts +243 -383
  1224. package/src/Option.ts +447 -812
  1225. package/src/Order.ts +109 -109
  1226. package/src/Ordering.ts +20 -23
  1227. package/src/Path.ts +38 -41
  1228. package/src/Pipeable.ts +6 -5
  1229. package/src/PlatformError.ts +4 -4
  1230. package/src/Pool.ts +4 -2
  1231. package/src/Predicate.ts +200 -181
  1232. package/src/PrimaryKey.ts +7 -7
  1233. package/src/PubSub.ts +526 -552
  1234. package/src/Pull.ts +24 -18
  1235. package/src/Queue.ts +200 -159
  1236. package/src/Random.ts +49 -74
  1237. package/src/RcMap.ts +121 -63
  1238. package/src/RcRef.ts +24 -13
  1239. package/src/Record.ts +291 -488
  1240. package/src/Redactable.ts +10 -3
  1241. package/src/Redacted.ts +25 -25
  1242. package/src/Reducer.ts +8 -15
  1243. package/src/Ref.ts +221 -361
  1244. package/src/References.ts +102 -168
  1245. package/src/RegExp.ts +10 -14
  1246. package/src/Request.ts +31 -21
  1247. package/src/RequestResolver.ts +202 -91
  1248. package/src/Result.ts +312 -484
  1249. package/src/Runtime.ts +50 -75
  1250. package/src/Schedule.ts +308 -1734
  1251. package/src/Scheduler.ts +20 -7
  1252. package/src/Schema.ts +716 -745
  1253. package/src/SchemaAST.ts +466 -358
  1254. package/src/SchemaError.ts +7 -6
  1255. package/src/SchemaGetter.ts +242 -190
  1256. package/src/SchemaIssue.ts +89 -275
  1257. package/src/SchemaParser.ts +180 -93
  1258. package/src/SchemaRepresentation.ts +22 -40
  1259. package/src/SchemaTransformation.ts +129 -88
  1260. package/src/Scope.ts +123 -151
  1261. package/src/ScopedRef.ts +4 -4
  1262. package/src/Semaphore.ts +152 -51
  1263. package/src/Sink.ts +128 -113
  1264. package/src/Stdio.ts +1 -1
  1265. package/src/Stream.ts +2602 -3123
  1266. package/src/String.ts +275 -312
  1267. package/src/Struct.ts +109 -114
  1268. package/src/SubscriptionRef.ts +284 -252
  1269. package/src/Symbol.ts +3 -3
  1270. package/src/Terminal.ts +2 -2
  1271. package/src/Tracer.ts +102 -55
  1272. package/src/Trie.ts +287 -679
  1273. package/src/Tuple.ts +92 -127
  1274. package/src/TxChunk.ts +201 -121
  1275. package/src/TxDeferred.ts +62 -46
  1276. package/src/TxHashMap.ts +645 -799
  1277. package/src/TxHashSet.ts +443 -356
  1278. package/src/TxPriorityQueue.ts +130 -98
  1279. package/src/TxPubSub.ts +107 -80
  1280. package/src/TxQueue.ts +214 -183
  1281. package/src/TxReentrantLock.ts +97 -66
  1282. package/src/TxRef.ts +51 -32
  1283. package/src/TxSemaphore.ts +129 -95
  1284. package/src/TxSubscriptionRef.ts +97 -70
  1285. package/src/Types.ts +126 -67
  1286. package/src/Unify.ts +45 -65
  1287. package/src/Utils.ts +23 -16
  1288. package/src/internal/core.ts +2 -2
  1289. package/src/internal/dateTime.ts +6 -0
  1290. package/src/internal/effect.ts +93 -48
  1291. package/src/internal/persistence.ts +2 -0
  1292. package/src/internal/references.ts +3 -2
  1293. package/src/internal/schema/fromJsonSchemaDocument.ts +15 -13
  1294. package/src/internal/schema/fromRepresentation.ts +10 -16
  1295. package/src/internal/schema/parser.ts +22 -0
  1296. package/src/internal/schema/toJsonSchemaDocument.ts +60 -6
  1297. package/src/internal/schema/toRepresentation.ts +104 -119
  1298. package/src/internal/trie.ts +10 -11
  1299. package/src/testing/FastCheck.ts +8 -7
  1300. package/src/testing/TestClock.ts +72 -30
  1301. package/src/testing/TestConsole.ts +32 -31
  1302. package/src/testing/TestSchema.ts +29 -29
  1303. package/src/unstable/ai/AiError.ts +95 -118
  1304. package/src/unstable/ai/AnthropicStructuredOutput.ts +1 -1
  1305. package/src/unstable/ai/Chat.ts +132 -97
  1306. package/src/unstable/ai/IdGenerator.ts +32 -28
  1307. package/src/unstable/ai/LanguageModel.ts +107 -67
  1308. package/src/unstable/ai/McpProtocol.ts +48 -0
  1309. package/src/unstable/ai/McpSchema.ts +60 -50
  1310. package/src/unstable/ai/McpServer.ts +930 -304
  1311. package/src/unstable/ai/Model.ts +9 -20
  1312. package/src/unstable/ai/OpenAiStructuredOutput.ts +1 -1
  1313. package/src/unstable/ai/Prompt.ts +145 -43
  1314. package/src/unstable/ai/Response.ts +28 -14
  1315. package/src/unstable/ai/Telemetry.ts +46 -13
  1316. package/src/unstable/ai/Tokenizer.ts +14 -3
  1317. package/src/unstable/ai/Tool.ts +59 -44
  1318. package/src/unstable/ai/Toolkit.ts +26 -8
  1319. package/src/unstable/ai/index.ts +5 -0
  1320. package/src/unstable/ai/internal/mcpProtocol.ts +85 -0
  1321. package/src/unstable/ai/internal/mcpProtocolRegistry.ts +70 -0
  1322. package/src/unstable/ai/internal/structured-output.ts +13 -18
  1323. package/src/unstable/cli/Argument.ts +273 -69
  1324. package/src/unstable/cli/CliError.ts +69 -76
  1325. package/src/unstable/cli/CliOutput.ts +44 -58
  1326. package/src/unstable/cli/Command.ts +705 -107
  1327. package/src/unstable/cli/Flag.ts +418 -138
  1328. package/src/unstable/cli/GlobalFlag.ts +1 -1
  1329. package/src/unstable/cli/HelpDoc.ts +12 -4
  1330. package/src/unstable/cli/Param.ts +292 -78
  1331. package/src/unstable/cli/Primitive.ts +370 -149
  1332. package/src/unstable/cli/Prompt.ts +28 -14
  1333. package/src/unstable/cli/internal/lexer.ts +8 -2
  1334. package/src/unstable/cli/internal/parser.ts +2 -2
  1335. package/src/unstable/cluster/ClusterSchema.ts +8 -8
  1336. package/src/unstable/cluster/ClusterWorkflowEngine.ts +5 -1
  1337. package/src/unstable/cluster/Entity.ts +15 -16
  1338. package/src/unstable/cluster/EntityProxy.ts +4 -2
  1339. package/src/unstable/cluster/EntityResource.ts +2 -2
  1340. package/src/unstable/cluster/Envelope.ts +3 -3
  1341. package/src/unstable/cluster/HttpRunner.ts +6 -4
  1342. package/src/unstable/cluster/Message.ts +9 -9
  1343. package/src/unstable/cluster/MessageStorage.ts +15 -15
  1344. package/src/unstable/cluster/Reply.ts +4 -6
  1345. package/src/unstable/cluster/RunnerHealth.ts +1 -1
  1346. package/src/unstable/cluster/RunnerServer.ts +41 -8
  1347. package/src/unstable/cluster/RunnerStorage.ts +2 -2
  1348. package/src/unstable/cluster/Runners.ts +23 -12
  1349. package/src/unstable/cluster/Sharding.ts +7 -8
  1350. package/src/unstable/cluster/ShardingConfig.ts +3 -3
  1351. package/src/unstable/cluster/SingletonAddress.ts +1 -1
  1352. package/src/unstable/cluster/Snowflake.ts +8 -8
  1353. package/src/unstable/cluster/SqlMessageStorage.ts +1 -1
  1354. package/src/unstable/cluster/SqlRunnerStorage.ts +21 -5
  1355. package/src/unstable/cluster/internal/entityManager.ts +11 -15
  1356. package/src/unstable/encoding/Msgpack.ts +6 -8
  1357. package/src/unstable/encoding/Sse.ts +98 -16
  1358. package/src/unstable/eventlog/Event.ts +20 -20
  1359. package/src/unstable/eventlog/EventGroup.ts +4 -4
  1360. package/src/unstable/eventlog/EventJournal.ts +15 -15
  1361. package/src/unstable/eventlog/EventLog.ts +3 -3
  1362. package/src/unstable/eventlog/EventLogEncryption.ts +1 -1
  1363. package/src/unstable/eventlog/EventLogMessage.ts +2 -2
  1364. package/src/unstable/eventlog/EventLogRemote.ts +1 -1
  1365. package/src/unstable/eventlog/EventLogServer.ts +41 -7
  1366. package/src/unstable/eventlog/EventLogServerEncrypted.ts +13 -5
  1367. package/src/unstable/eventlog/EventLogServerUnencrypted.ts +14 -6
  1368. package/src/unstable/eventlog/EventLogSessionAuth.ts +1 -1
  1369. package/src/unstable/http/Cookies.ts +35 -21
  1370. package/src/unstable/http/Etag.ts +1 -1
  1371. package/src/unstable/http/FetchHttpClient.ts +3 -1
  1372. package/src/unstable/http/Headers.ts +2 -2
  1373. package/src/unstable/http/HttpBody.ts +20 -5
  1374. package/src/unstable/http/HttpClient.ts +83 -55
  1375. package/src/unstable/http/HttpClientRequest.ts +2 -0
  1376. package/src/unstable/http/HttpClientResponse.ts +4 -4
  1377. package/src/unstable/http/HttpEffect.ts +8 -8
  1378. package/src/unstable/http/HttpMethod.ts +6 -9
  1379. package/src/unstable/http/HttpMiddleware.ts +202 -39
  1380. package/src/unstable/http/HttpPlatform.ts +95 -0
  1381. package/src/unstable/http/HttpRouter.ts +102 -98
  1382. package/src/unstable/http/HttpServer.ts +13 -13
  1383. package/src/unstable/http/HttpServerError.ts +2 -2
  1384. package/src/unstable/http/HttpServerRequest.ts +4 -4
  1385. package/src/unstable/http/HttpServerResponse.ts +30 -0
  1386. package/src/unstable/http/HttpStaticServer.ts +35 -7
  1387. package/src/unstable/http/Multipart.ts +6 -6
  1388. package/src/unstable/http/Url.ts +33 -63
  1389. package/src/unstable/http/UrlParams.ts +10 -18
  1390. package/src/unstable/http/internal/compression.ts +196 -0
  1391. package/src/unstable/httpapi/HttpApiBuilder.ts +10 -9
  1392. package/src/unstable/httpapi/HttpApiClient.ts +14 -14
  1393. package/src/unstable/httpapi/HttpApiEndpoint.ts +42 -42
  1394. package/src/unstable/httpapi/HttpApiError.ts +13 -13
  1395. package/src/unstable/httpapi/HttpApiGroup.ts +15 -15
  1396. package/src/unstable/httpapi/HttpApiMiddleware.ts +71 -24
  1397. package/src/unstable/httpapi/HttpApiScalar.ts +0 -12
  1398. package/src/unstable/httpapi/HttpApiSchema.ts +6 -6
  1399. package/src/unstable/httpapi/OpenApi.ts +13 -13
  1400. package/src/unstable/observability/OtlpExporter.ts +31 -19
  1401. package/src/unstable/observability/OtlpMetrics.ts +4 -1
  1402. package/src/unstable/observability/OtlpResource.ts +26 -17
  1403. package/src/unstable/observability/PrometheusMetrics.ts +13 -4
  1404. package/src/unstable/observability/internal/otlpEnv.ts +1 -1
  1405. package/src/unstable/observability/internal/protobuf.ts +3 -0
  1406. package/src/unstable/persistence/KeyValueStore.ts +72 -49
  1407. package/src/unstable/persistence/Persistable.ts +8 -8
  1408. package/src/unstable/persistence/PersistedQueue.ts +6 -6
  1409. package/src/unstable/persistence/Persistence.ts +126 -19
  1410. package/src/unstable/persistence/RateLimiter.ts +26 -15
  1411. package/src/unstable/persistence/Redis.ts +2 -2
  1412. package/src/unstable/process/ChildProcess.ts +64 -21
  1413. package/src/unstable/process/ChildProcessSpawner.ts +21 -10
  1414. package/src/unstable/reactivity/AsyncResult.ts +12 -13
  1415. package/src/unstable/reactivity/Atom.ts +28 -25
  1416. package/src/unstable/reactivity/AtomHttpApi.ts +5 -4
  1417. package/src/unstable/reactivity/AtomRegistry.ts +24 -3
  1418. package/src/unstable/reactivity/AtomRpc.ts +5 -4
  1419. package/src/unstable/reactivity/Hydration.ts +1 -1
  1420. package/src/unstable/rpc/Rpc.ts +35 -33
  1421. package/src/unstable/rpc/RpcClient.ts +16 -15
  1422. package/src/unstable/rpc/RpcGroup.ts +8 -8
  1423. package/src/unstable/rpc/RpcMessage.ts +31 -30
  1424. package/src/unstable/rpc/RpcMiddleware.ts +10 -10
  1425. package/src/unstable/rpc/RpcSchema.ts +4 -4
  1426. package/src/unstable/rpc/RpcSerialization.ts +167 -68
  1427. package/src/unstable/rpc/RpcServer.ts +18 -15
  1428. package/src/unstable/rpc/RpcWorker.ts +5 -5
  1429. package/src/unstable/schema/Model.ts +52 -50
  1430. package/src/unstable/schema/VariantSchema.ts +5 -5
  1431. package/src/unstable/socket/Socket.ts +17 -4
  1432. package/src/unstable/sql/SqlClient.ts +5 -6
  1433. package/src/unstable/sql/SqlModel.ts +2 -2
  1434. package/src/unstable/sql/SqlResolver.ts +5 -5
  1435. package/src/unstable/sql/Statement.ts +24 -23
  1436. package/src/unstable/workers/Transferable.ts +1 -1
  1437. package/src/unstable/workers/Worker.ts +2 -2
  1438. package/src/unstable/workers/WorkerError.ts +7 -7
  1439. package/src/unstable/workers/WorkerRunner.ts +1 -1
  1440. package/src/unstable/workflow/Activity.ts +2 -2
  1441. package/src/unstable/workflow/DurableClock.ts +1 -1
  1442. package/src/unstable/workflow/DurableDeferred.ts +10 -10
  1443. package/src/unstable/workflow/DurableQueue.ts +22 -20
  1444. package/src/unstable/workflow/Workflow.ts +23 -23
  1445. package/src/unstable/workflow/WorkflowEngine.ts +1 -1
  1446. package/src/unstable/workflow/WorkflowProxy.ts +4 -2
  1447. package/dist/internal/version.d.ts +0 -3
  1448. package/dist/internal/version.d.ts.map +0 -1
  1449. package/dist/internal/version.js +0 -2
  1450. package/dist/internal/version.js.map +0 -1
  1451. package/src/internal/version.ts +0 -2
package/dist/PubSub.js CHANGED
@@ -30,7 +30,7 @@ const SubscriptionTypeId = "~effect/PubSub/Subscription";
30
30
  *
31
31
  * **Example** (Creating a PubSub with a custom strategy)
32
32
  *
33
- * ```ts
33
+ * ```ts import.meta.vitest
34
34
  * import { Effect, PubSub } from "effect"
35
35
  *
36
36
  * const program = Effect.gen(function*() {
@@ -41,8 +41,13 @@ const SubscriptionTypeId = "~effect/PubSub/Subscription";
41
41
  * })
42
42
  *
43
43
  * // Use the created PubSub
44
- * yield* PubSub.publish(pubsub, "Hello")
44
+ * const published = yield* PubSub.publish(pubsub, "Hello")
45
+ * yield* PubSub.shutdown(pubsub)
46
+ * return published
45
47
  * })
48
+ *
49
+ * const actual = await Effect.runPromise(program)
50
+ * actual // => true
46
51
  * ```
47
52
  *
48
53
  * @category constructors
@@ -62,7 +67,7 @@ export const make = options => Effect.sync(() => makePubSubUnsafe(options.atomic
62
67
  *
63
68
  * **Example** (Creating a bounded PubSub)
64
69
  *
65
- * ```ts
70
+ * ```ts import.meta.vitest
66
71
  * import { Effect, PubSub } from "effect"
67
72
  *
68
73
  * const program = Effect.gen(function*() {
@@ -74,7 +79,15 @@ export const make = options => Effect.sync(() => makePubSubUnsafe(options.atomic
74
79
  * capacity: 100,
75
80
  * replay: 10 // Last 10 messages replayed to new subscribers
76
81
  * })
82
+ *
83
+ * const capacities = [PubSub.capacity(pubsub), PubSub.capacity(pubsubWithReplay)]
84
+ * yield* PubSub.shutdown(pubsub)
85
+ * yield* PubSub.shutdown(pubsubWithReplay)
86
+ * return capacities
77
87
  * })
88
+ *
89
+ * const actual = await Effect.runPromise(program)
90
+ * actual // => [100, 100]
78
91
  * ```
79
92
  *
80
93
  * @category constructors
@@ -94,33 +107,27 @@ export const bounded = capacity => make({
94
107
  *
95
108
  * **Example** (Dropping messages when full)
96
109
  *
97
- * ```ts
110
+ * ```ts import.meta.vitest
98
111
  * import { Effect, PubSub } from "effect"
99
112
  *
100
- * const program = Effect.gen(function*() {
113
+ * const program = Effect.scoped(Effect.gen(function*() {
101
114
  * // Create dropping PubSub that drops new messages when full
102
115
  * const pubsub = yield* PubSub.dropping<string>(3)
103
116
  *
104
- * // With replay buffer for late subscribers
105
- * const pubsubWithReplay = yield* PubSub.dropping<string>({
106
- * capacity: 3,
107
- * replay: 5
108
- * })
117
+ * const subscription = yield* PubSub.subscribe(pubsub)
109
118
  *
110
- * yield* Effect.scoped(Effect.gen(function*() {
111
- * const subscription = yield* PubSub.subscribe(pubsub)
119
+ * // Fill the PubSub and see dropping behavior
120
+ * yield* PubSub.publish(pubsub, "msg1") // succeeds
121
+ * yield* PubSub.publish(pubsub, "msg2") // succeeds
122
+ * yield* PubSub.publish(pubsub, "msg3") // succeeds
123
+ * const dropped = yield* PubSub.publish(pubsub, "msg4") // returns false (dropped)
112
124
  *
113
- * // Fill the PubSub and see dropping behavior
114
- * yield* PubSub.publish(pubsub, "msg1") // succeeds
115
- * yield* PubSub.publish(pubsub, "msg2") // succeeds
116
- * yield* PubSub.publish(pubsub, "msg3") // succeeds
117
- * const dropped = yield* PubSub.publish(pubsub, "msg4") // returns false (dropped)
118
- * console.log("Message dropped:", !dropped) // true
125
+ * const messages = yield* PubSub.takeAll(subscription)
126
+ * return { dropped: !dropped, messages }
127
+ * }))
119
128
  *
120
- * const messages = yield* PubSub.takeAll(subscription)
121
- * console.log(messages) // ["msg1", "msg2", "msg3"]
122
- * }))
123
- * })
129
+ * const actual = await Effect.runPromise(program)
130
+ * actual // => { dropped: true, messages: ["msg1", "msg2", "msg3"] }
124
131
  * ```
125
132
  *
126
133
  * @category constructors
@@ -140,32 +147,26 @@ export const dropping = capacity => make({
140
147
  *
141
148
  * **Example** (Sliding old messages when full)
142
149
  *
143
- * ```ts
150
+ * ```ts import.meta.vitest
144
151
  * import { Effect, PubSub } from "effect"
145
152
  *
146
- * const program = Effect.gen(function*() {
153
+ * const program = Effect.scoped(Effect.gen(function*() {
147
154
  * // Create sliding PubSub that evicts old messages when full
148
155
  * const pubsub = yield* PubSub.sliding<string>(3)
149
156
  *
150
- * // With replay buffer
151
- * const pubsubWithReplay = yield* PubSub.sliding<string>({
152
- * capacity: 3,
153
- * replay: 2
154
- * })
157
+ * const subscription = yield* PubSub.subscribe(pubsub)
155
158
  *
156
- * yield* Effect.scoped(Effect.gen(function*() {
157
- * const subscription = yield* PubSub.subscribe(pubsub)
159
+ * // Fill and overflow the PubSub
160
+ * yield* PubSub.publish(pubsub, "msg1")
161
+ * yield* PubSub.publish(pubsub, "msg2")
162
+ * yield* PubSub.publish(pubsub, "msg3")
163
+ * yield* PubSub.publish(pubsub, "msg4") // "msg1" is evicted
158
164
  *
159
- * // Fill and overflow the PubSub
160
- * yield* PubSub.publish(pubsub, "msg1")
161
- * yield* PubSub.publish(pubsub, "msg2")
162
- * yield* PubSub.publish(pubsub, "msg3")
163
- * yield* PubSub.publish(pubsub, "msg4") // "msg1" is evicted
165
+ * return yield* PubSub.takeAll(subscription)
166
+ * }))
164
167
  *
165
- * const messages = yield* PubSub.takeAll(subscription)
166
- * console.log(messages) // ["msg2", "msg3", "msg4"]
167
- * }))
168
- * })
168
+ * const actual = await Effect.runPromise(program)
169
+ * actual // => ["msg2", "msg3", "msg4"]
169
170
  * ```
170
171
  *
171
172
  * @category constructors
@@ -180,30 +181,25 @@ export const sliding = capacity => make({
180
181
  *
181
182
  * **Example** (Creating an unbounded PubSub)
182
183
  *
183
- * ```ts
184
+ * ```ts import.meta.vitest
184
185
  * import { Effect, PubSub } from "effect"
185
186
  *
186
- * const program = Effect.gen(function*() {
187
+ * const program = Effect.scoped(Effect.gen(function*() {
187
188
  * // Create unbounded PubSub
188
189
  * const pubsub = yield* PubSub.unbounded<string>()
189
190
  *
190
- * // With replay buffer for late subscribers
191
- * const pubsubWithReplay = yield* PubSub.unbounded<string>({
192
- * replay: 10
193
- * })
191
+ * const subscription = yield* PubSub.subscribe(pubsub)
194
192
  *
195
- * yield* Effect.scoped(Effect.gen(function*() {
196
- * const subscription = yield* PubSub.subscribe(pubsub)
193
+ * // Can publish unlimited messages
194
+ * for (let i = 0; i < 3; i++) {
195
+ * yield* PubSub.publish(pubsub, `message-${i}`)
196
+ * }
197
197
  *
198
- * // Can publish unlimited messages
199
- * for (let i = 0; i < 3; i++) {
200
- * yield* PubSub.publish(pubsub, `message-${i}`)
201
- * }
198
+ * return yield* PubSub.takeAll(subscription)
199
+ * }))
202
200
  *
203
- * const message = yield* PubSub.take(subscription)
204
- * console.log("First message:", message) // "message-0"
205
- * }))
206
- * })
201
+ * const actual = await Effect.runPromise(program)
202
+ * actual // => ["message-0", "message-1", "message-2"]
207
203
  * ```
208
204
  *
209
205
  * @category constructors
@@ -281,18 +277,17 @@ export const makeAtomicUnbounded = options => new UnboundedPubSub(options?.repla
281
277
  *
282
278
  * **Example** (Getting PubSub capacity)
283
279
  *
284
- * ```ts
280
+ * ```ts import.meta.vitest
285
281
  * import { Effect, PubSub } from "effect"
286
282
  *
287
283
  * const program = Effect.gen(function*() {
288
284
  * const pubsub = yield* PubSub.bounded<string>(100)
289
- * const cap = PubSub.capacity(pubsub)
290
- * console.log("PubSub capacity:", cap) // 100
291
- *
292
285
  * const unboundedPubsub = yield* PubSub.unbounded<string>()
293
- * const unboundedCap = PubSub.capacity(unboundedPubsub)
294
- * console.log("Unbounded capacity:", unboundedCap) // Number.MAX_SAFE_INTEGER
286
+ * return [PubSub.capacity(pubsub), PubSub.capacity(unboundedPubsub)]
295
287
  * })
288
+ *
289
+ * const actual = await Effect.runPromise(program)
290
+ * actual // => [100, Number.MAX_SAFE_INTEGER]
296
291
  * ```
297
292
  *
298
293
  * @category getters
@@ -310,29 +305,28 @@ export const capacity = self => self.pubsub.capacity;
310
305
  *
311
306
  * **Example** (Getting PubSub size)
312
307
  *
313
- * ```ts
308
+ * ```ts import.meta.vitest
314
309
  * import { Effect, PubSub } from "effect"
315
310
  *
316
- * const program = Effect.gen(function*() {
311
+ * const program = Effect.scoped(Effect.gen(function*() {
317
312
  * const pubsub = yield* PubSub.bounded<string>(10)
318
313
  *
319
314
  * // Initially empty
320
315
  * const initialSize = yield* PubSub.size(pubsub)
321
- * console.log("Initial size:", initialSize) // 0
322
316
  *
323
- * yield* Effect.scoped(Effect.gen(function*() {
324
- * const subscription = yield* PubSub.subscribe(pubsub)
317
+ * const subscription = yield* PubSub.subscribe(pubsub)
325
318
  *
326
- * // Publish some messages for the active subscription
327
- * yield* PubSub.publish(pubsub, "msg1")
328
- * yield* PubSub.publish(pubsub, "msg2")
319
+ * // Publish some messages for the active subscription
320
+ * yield* PubSub.publish(pubsub, "msg1")
321
+ * yield* PubSub.publish(pubsub, "msg2")
329
322
  *
330
- * const afterPublish = yield* PubSub.size(pubsub)
331
- * console.log("After publishing:", afterPublish) // 2
323
+ * const afterPublish = yield* PubSub.size(pubsub)
324
+ * const messages = yield* PubSub.takeAll(subscription)
325
+ * return { initialSize, afterPublish, messages }
326
+ * }))
332
327
  *
333
- * yield* PubSub.takeAll(subscription)
334
- * }))
335
- * })
328
+ * const actual = await Effect.runPromise(program)
329
+ * actual // => { initialSize: 0, afterPublish: 2, messages: ["msg1", "msg2"] }
336
330
  * ```
337
331
  *
338
332
  * @category getters
@@ -355,14 +349,16 @@ export const size = self => Effect.sync(() => sizeUnsafe(self));
355
349
  *
356
350
  * **Example** (Reading size synchronously)
357
351
  *
358
- * ```ts
359
- * import { PubSub } from "effect"
352
+ * ```ts import.meta.vitest
353
+ * import { Effect, PubSub } from "effect"
360
354
  *
361
- * // Unsafe synchronous size check
362
- * declare const pubsub: PubSub.PubSub<string>
355
+ * const program = Effect.gen(function*() {
356
+ * const pubsub = yield* PubSub.bounded<string>(2)
357
+ * return PubSub.sizeUnsafe(pubsub)
358
+ * })
363
359
  *
364
- * const size = PubSub.sizeUnsafe(pubsub)
365
- * console.log("Current size:", size)
360
+ * const actual = await Effect.runPromise(program)
361
+ * actual // => 0
366
362
  * ```
367
363
  *
368
364
  * @category getters
@@ -383,29 +379,28 @@ export const sizeUnsafe = self => {
383
379
  *
384
380
  * **Example** (Checking whether a PubSub is full)
385
381
  *
386
- * ```ts
382
+ * ```ts import.meta.vitest
387
383
  * import { Effect, PubSub } from "effect"
388
384
  *
389
- * const program = Effect.gen(function*() {
385
+ * const program = Effect.scoped(Effect.gen(function*() {
390
386
  * const pubsub = yield* PubSub.bounded<string>(2)
391
387
  *
392
388
  * // Initially not full
393
389
  * const initiallyFull = yield* PubSub.isFull(pubsub)
394
- * console.log("Initially full:", initiallyFull) // false
395
390
  *
396
- * yield* Effect.scoped(Effect.gen(function*() {
397
- * const subscription = yield* PubSub.subscribe(pubsub)
391
+ * const subscription = yield* PubSub.subscribe(pubsub)
398
392
  *
399
- * // Fill the PubSub for the active subscription
400
- * yield* PubSub.publish(pubsub, "msg1")
401
- * yield* PubSub.publish(pubsub, "msg2")
393
+ * // Fill the PubSub for the active subscription
394
+ * yield* PubSub.publish(pubsub, "msg1")
395
+ * yield* PubSub.publish(pubsub, "msg2")
402
396
  *
403
- * const nowFull = yield* PubSub.isFull(pubsub)
404
- * console.log("Now full:", nowFull) // true
397
+ * const nowFull = yield* PubSub.isFull(pubsub)
398
+ * const messages = yield* PubSub.takeAll(subscription)
399
+ * return { initiallyFull, nowFull, messages }
400
+ * }))
405
401
  *
406
- * yield* PubSub.takeAll(subscription)
407
- * }))
408
- * })
402
+ * const actual = await Effect.runPromise(program)
403
+ * actual // => { initiallyFull: false, nowFull: true, messages: ["msg1", "msg2"] }
409
404
  * ```
410
405
  *
411
406
  * @category predicates
@@ -417,28 +412,27 @@ export const isFull = self => Effect.map(size(self), size => size === self.pubsu
417
412
  *
418
413
  * **Example** (Checking whether a PubSub is empty)
419
414
  *
420
- * ```ts
415
+ * ```ts import.meta.vitest
421
416
  * import { Effect, PubSub } from "effect"
422
417
  *
423
- * const program = Effect.gen(function*() {
418
+ * const program = Effect.scoped(Effect.gen(function*() {
424
419
  * const pubsub = yield* PubSub.bounded<string>(10)
425
420
  *
426
421
  * // Initially empty
427
422
  * const initiallyEmpty = yield* PubSub.isEmpty(pubsub)
428
- * console.log("Initially empty:", initiallyEmpty) // true
429
423
  *
430
- * yield* Effect.scoped(Effect.gen(function*() {
431
- * const subscription = yield* PubSub.subscribe(pubsub)
424
+ * const subscription = yield* PubSub.subscribe(pubsub)
432
425
  *
433
- * // Publish a message for the active subscription
434
- * yield* PubSub.publish(pubsub, "Hello")
426
+ * // Publish a message for the active subscription
427
+ * yield* PubSub.publish(pubsub, "Hello")
435
428
  *
436
- * const nowEmpty = yield* PubSub.isEmpty(pubsub)
437
- * console.log("Now empty:", nowEmpty) // false
429
+ * const nowEmpty = yield* PubSub.isEmpty(pubsub)
430
+ * const message = yield* PubSub.take(subscription)
431
+ * return { initiallyEmpty, nowEmpty, message }
432
+ * }))
438
433
  *
439
- * yield* PubSub.take(subscription)
440
- * }))
441
- * })
434
+ * const actual = await Effect.runPromise(program)
435
+ * actual // => { initiallyEmpty: true, nowEmpty: false, message: "Hello" }
442
436
  * ```
443
437
  *
444
438
  * @category predicates
@@ -457,7 +451,7 @@ export const isEmpty = self => Effect.map(size(self), size => size === 0);
457
451
  *
458
452
  * **Example** (Shutting down a PubSub)
459
453
  *
460
- * ```ts
454
+ * ```ts import.meta.vitest
461
455
  * import { Effect, PubSub } from "effect"
462
456
  *
463
457
  * const program = Effect.gen(function*() {
@@ -467,12 +461,14 @@ export const isEmpty = self => Effect.map(size(self), size => size === 0);
467
461
  * yield* PubSub.shutdown(pubsub)
468
462
  *
469
463
  * const isShutdown = yield* PubSub.isShutdown(pubsub)
470
- * console.log("Is shutdown:", isShutdown) // true
471
464
  *
472
465
  * // Publishing after shutdown returns false
473
466
  * const published = yield* PubSub.publish(pubsub, "msg1")
474
- * console.log("Published after shutdown:", published) // false
467
+ * return { isShutdown, published }
475
468
  * })
469
+ *
470
+ * const actual = await Effect.runPromise(program)
471
+ * actual // => { isShutdown: true, published: false }
476
472
  * ```
477
473
  *
478
474
  * @category lifecycle
@@ -488,7 +484,7 @@ export const shutdown = self => Effect.uninterruptible(Effect.withFiber(fiber =>
488
484
  *
489
485
  * **Example** (Checking whether a PubSub is shut down)
490
486
  *
491
- * ```ts
487
+ * ```ts import.meta.vitest
492
488
  * import { Effect, PubSub } from "effect"
493
489
  *
494
490
  * const program = Effect.gen(function*() {
@@ -496,14 +492,16 @@ export const shutdown = self => Effect.uninterruptible(Effect.withFiber(fiber =>
496
492
  *
497
493
  * // Initially not shutdown
498
494
  * const initiallyShutdown = yield* PubSub.isShutdown(pubsub)
499
- * console.log("Initially shutdown:", initiallyShutdown) // false
500
495
  *
501
496
  * // Shutdown the PubSub
502
497
  * yield* PubSub.shutdown(pubsub)
503
498
  *
504
499
  * const nowShutdown = yield* PubSub.isShutdown(pubsub)
505
- * console.log("Now shutdown:", nowShutdown) // true
500
+ * return [initiallyShutdown, nowShutdown]
506
501
  * })
502
+ *
503
+ * const actual = await Effect.runPromise(program)
504
+ * actual // => [false, true]
507
505
  * ```
508
506
  *
509
507
  * @category predicates
@@ -521,18 +519,18 @@ export const isShutdown = self => Effect.sync(() => isShutdownUnsafe(self));
521
519
  *
522
520
  * **Example** (Checking shutdown synchronously)
523
521
  *
524
- * ```ts
525
- * import { PubSub } from "effect"
522
+ * ```ts import.meta.vitest
523
+ * import { Effect, PubSub } from "effect"
526
524
  *
527
- * declare const pubsub: PubSub.PubSub<string>
525
+ * const program = Effect.gen(function*() {
526
+ * const pubsub = yield* PubSub.bounded<string>(2)
527
+ * const initiallyShutdown = PubSub.isShutdownUnsafe(pubsub)
528
+ * yield* PubSub.shutdown(pubsub)
529
+ * return [initiallyShutdown, PubSub.isShutdownUnsafe(pubsub)]
530
+ * })
528
531
  *
529
- * // Unsafe synchronous shutdown check
530
- * const isDown = PubSub.isShutdownUnsafe(pubsub)
531
- * if (isDown) {
532
- * console.log("PubSub is shutdown, cannot publish")
533
- * } else {
534
- * console.log("PubSub is active")
535
- * }
532
+ * const actual = await Effect.runPromise(program)
533
+ * actual // => [false, true]
536
534
  * ```
537
535
  *
538
536
  * @category predicates
@@ -546,7 +544,7 @@ export const isShutdownUnsafe = self => self.shutdownFlag.current;
546
544
  *
547
545
  * **Example** (Waiting for shutdown)
548
546
  *
549
- * ```ts
547
+ * ```ts import.meta.vitest
550
548
  * import { Effect, Fiber, PubSub } from "effect"
551
549
  *
552
550
  * const program = Effect.gen(function*() {
@@ -556,19 +554,19 @@ export const isShutdownUnsafe = self => self.shutdownFlag.current;
556
554
  * const waiterFiber = yield* Effect.forkChild(
557
555
  * Effect.gen(function*() {
558
556
  * yield* PubSub.awaitShutdown(pubsub)
559
- * console.log("PubSub has been shutdown!")
557
+ * return "PubSub has been shutdown!"
560
558
  * })
561
559
  * )
562
560
  *
563
- * // Do some work...
564
- * yield* Effect.sleep("100 millis")
565
- *
566
561
  * // Shutdown the PubSub
567
562
  * yield* PubSub.shutdown(pubsub)
568
563
  *
569
564
  * // The waiter will now complete
570
- * yield* Fiber.join(waiterFiber)
565
+ * return yield* Fiber.join(waiterFiber)
571
566
  * })
567
+ *
568
+ * const actual = await Effect.runPromise(program)
569
+ * actual // => "PubSub has been shutdown!"
572
570
  * ```
573
571
  *
574
572
  * @category lifecycle
@@ -592,24 +590,24 @@ export const awaitShutdown = self => self.shutdownHook.await;
592
590
  *
593
591
  * **Example** (Publishing a message)
594
592
  *
595
- * ```ts
593
+ * ```ts import.meta.vitest
596
594
  * import { Effect, PubSub } from "effect"
597
595
  *
598
- * const program = Effect.gen(function*() {
596
+ * const program = Effect.scoped(Effect.gen(function*() {
599
597
  * const pubsub = yield* PubSub.bounded<string>(10)
600
598
  *
601
599
  * // Publish a message
602
600
  * const published = yield* PubSub.publish(pubsub, "Hello World")
603
- * console.log("Message published:", published) // true
604
601
  *
605
- * yield* Effect.scoped(Effect.gen(function*() {
606
- * const subscription = yield* PubSub.subscribe(pubsub)
602
+ * const subscription = yield* PubSub.subscribe(pubsub)
607
603
  *
608
- * yield* PubSub.publish(pubsub, "Hello")
609
- * const message = yield* PubSub.take(subscription)
610
- * console.log("Received:", message) // "Hello"
611
- * }))
612
- * })
604
+ * yield* PubSub.publish(pubsub, "Hello")
605
+ * const message = yield* PubSub.take(subscription)
606
+ * return { published, message }
607
+ * }))
608
+ *
609
+ * const actual = await Effect.runPromise(program)
610
+ * actual // => { published: true, message: "Hello" }
613
611
  * ```
614
612
  *
615
613
  * @see {@link publishUnsafe} for a synchronous non-blocking attempt that does not run effectful surplus handling
@@ -644,24 +642,16 @@ export const publish = /*#__PURE__*/dual(2, (self, value) => Effect.suspend(() =
644
642
  *
645
643
  * **Example** (Publishing without suspending)
646
644
  *
647
- * ```ts
648
- * import { PubSub } from "effect"
649
- *
650
- * declare const pubsub: PubSub.PubSub<string>
645
+ * ```ts import.meta.vitest
646
+ * import { Effect, PubSub } from "effect"
651
647
  *
652
- * // Unsafe synchronous publish (non-blocking)
653
- * const published = PubSub.publishUnsafe(pubsub, "Hello")
654
- * if (published) {
655
- * console.log("Message published successfully")
656
- * } else {
657
- * console.log("Message dropped (PubSub full or shutdown)")
658
- * }
648
+ * const program = Effect.gen(function*() {
649
+ * const pubsub = yield* PubSub.bounded<string>(2)
650
+ * return PubSub.publishUnsafe(pubsub, "Hello")
651
+ * })
659
652
  *
660
- * // Useful for scenarios where you don't want to suspend
661
- * const messages = ["msg1", "msg2", "msg3"]
662
- * const publishedCount =
663
- * messages.filter((msg) => PubSub.publishUnsafe(pubsub, msg)).length
664
- * console.log(`Published ${publishedCount} out of ${messages.length} messages`)
653
+ * const actual = await Effect.runPromise(program)
654
+ * actual // => true
665
655
  * ```
666
656
  *
667
657
  * @see {@link publish} for effectful publishing that honors the configured surplus strategy
@@ -683,37 +673,30 @@ export const publishUnsafe = /*#__PURE__*/dual(2, (self, value) => {
683
673
  *
684
674
  * **Example** (Publishing multiple messages)
685
675
  *
686
- * ```ts
676
+ * ```ts import.meta.vitest
687
677
  * import { Effect, Fiber, PubSub } from "effect"
688
678
  *
689
- * const program = Effect.gen(function*() {
679
+ * const program = Effect.scoped(Effect.gen(function*() {
690
680
  * const pubsub = yield* PubSub.bounded<string>(10)
691
681
  *
692
682
  * // Publish multiple messages at once
693
- * const messages = ["Hello", "World", "from", "Effect"]
694
- * const allPublished = yield* PubSub.publishAll(pubsub, messages)
695
- * console.log("All messages published:", allPublished) // true
683
+ * const allPublished = yield* PubSub.publishAll(pubsub, ["Hello", "World", "from", "Effect"])
696
684
  *
697
685
  * // With a smaller capacity and an active subscription
698
686
  * const smallPubsub = yield* PubSub.bounded<string>(2)
699
- * const manyMessages = ["msg1", "msg2", "msg3", "msg4"]
700
- *
701
- * yield* Effect.scoped(Effect.gen(function*() {
702
- * const subscription = yield* PubSub.subscribe(smallPubsub)
687
+ * const subscription = yield* PubSub.subscribe(smallPubsub)
703
688
  *
704
- * // Will suspend until space becomes available for all messages
705
- * const fiber = yield* Effect.forkChild(PubSub.publishAll(smallPubsub, manyMessages))
689
+ * // Will suspend until space becomes available for all messages
690
+ * const fiber = yield* Effect.forkChild(PubSub.publishAll(smallPubsub, ["msg1", "msg2", "msg3", "msg4"]))
706
691
  *
707
- * const firstBatch = yield* PubSub.takeBetween(subscription, 2, 2)
708
- * console.log("First batch:", firstBatch) // ["msg1", "msg2"]
692
+ * const firstBatch = yield* PubSub.takeBetween(subscription, 2, 2)
693
+ * const result = yield* Fiber.join(fiber)
694
+ * const secondBatch = yield* PubSub.takeAll(subscription)
695
+ * return { allPublished, firstBatch, result, secondBatch }
696
+ * }))
709
697
  *
710
- * const result = yield* Fiber.join(fiber)
711
- * console.log("All messages eventually published:", result) // true
712
- *
713
- * const secondBatch = yield* PubSub.takeAll(subscription)
714
- * console.log("Second batch:", secondBatch) // ["msg3", "msg4"]
715
- * }))
716
- * })
698
+ * const actual = await Effect.runPromise(program)
699
+ * actual // => { allPublished: true, firstBatch: ["msg1", "msg2"], result: true, secondBatch: ["msg3", "msg4"] }
717
700
  * ```
718
701
  *
719
702
  * @category publishing
@@ -737,14 +720,14 @@ export const publishAll = /*#__PURE__*/dual(2, (self, elements) => Effect.suspen
737
720
  *
738
721
  * **Example** (Subscribing to messages)
739
722
  *
740
- * ```ts
723
+ * ```ts import.meta.vitest
741
724
  * import { Effect, PubSub } from "effect"
742
725
  *
743
726
  * const program = Effect.gen(function*() {
744
727
  * const pubsub = yield* PubSub.bounded<string>(10)
745
728
  *
746
729
  * // Subscribe within a scope for automatic cleanup
747
- * yield* Effect.scoped(Effect.gen(function*() {
730
+ * const first = yield* Effect.scoped(Effect.gen(function*() {
748
731
  * const subscription = yield* PubSub.subscribe(pubsub)
749
732
  *
750
733
  * // Publish some messages
@@ -754,25 +737,28 @@ export const publishAll = /*#__PURE__*/dual(2, (self, elements) => Effect.suspen
754
737
  * // Take messages one by one
755
738
  * const msg1 = yield* PubSub.take(subscription)
756
739
  * const msg2 = yield* PubSub.take(subscription)
757
- * console.log(msg1, msg2) // "Hello", "World"
758
740
  *
759
741
  * // Subscription is automatically cleaned up when scope exits
742
+ * return [msg1, msg2]
760
743
  * }))
761
744
  *
762
- * yield* Effect.scoped(Effect.gen(function*() {
745
+ * const second = yield* Effect.scoped(Effect.gen(function*() {
763
746
  * const sub1 = yield* PubSub.subscribe(pubsub)
764
747
  * const sub2 = yield* PubSub.subscribe(pubsub)
765
748
  *
766
749
  * // Multiple subscribers can receive the same messages
767
750
  * yield* PubSub.publish(pubsub, "Broadcast")
768
751
  *
769
- * const [msg1, msg2] = yield* Effect.all([
752
+ * return yield* Effect.all([
770
753
  * PubSub.take(sub1),
771
754
  * PubSub.take(sub2)
772
755
  * ])
773
- * console.log("Both received:", msg1, msg2) // "Broadcast", "Broadcast"
774
756
  * }))
757
+ * return [first, second]
775
758
  * })
759
+ *
760
+ * const actual = await Effect.runPromise(program)
761
+ * actual // => [["Hello", "World"], ["Broadcast", "Broadcast"]]
776
762
  * ```
777
763
  *
778
764
  * @category subscriptions
@@ -792,6 +778,7 @@ const unsubscribe = self => Effect.uninterruptible(Effect.withFiber(state => {
792
778
  }).pipe(Effect.tap(() => Effect.sync(() => {
793
779
  self.subscribers.delete(self.subscription);
794
780
  self.subscription.unsubscribe();
781
+ self.replayWindow.close();
795
782
  self.strategy.onPubSubEmptySpaceUnsafe(self.pubsub, self.subscribers);
796
783
  })), Effect.when(self.shutdownHook.open), Effect.asVoid);
797
784
  }));
@@ -801,28 +788,26 @@ const unsubscribe = self => Effect.uninterruptible(Effect.withFiber(state => {
801
788
  *
802
789
  * **Example** (Taking a message)
803
790
  *
804
- * ```ts
791
+ * ```ts import.meta.vitest
805
792
  * import { Effect, Fiber, PubSub } from "effect"
806
793
  *
807
- * const program = Effect.gen(function*() {
794
+ * const program = Effect.scoped(Effect.gen(function*() {
808
795
  * const pubsub = yield* PubSub.bounded<string>(10)
809
796
  *
810
- * yield* Effect.scoped(Effect.gen(function*() {
811
- * const subscription = yield* PubSub.subscribe(pubsub)
797
+ * const subscription = yield* PubSub.subscribe(pubsub)
812
798
  *
813
- * // Start a fiber to take a message (will suspend)
814
- * const takeFiber = yield* Effect.forkChild(
815
- * PubSub.take(subscription)
816
- * )
799
+ * // Start a fiber to take a message (will suspend)
800
+ * const takeFiber = yield* Effect.forkChild(PubSub.take(subscription))
817
801
  *
818
- * // Publish a message
819
- * yield* PubSub.publish(pubsub, "Hello")
802
+ * // Publish a message
803
+ * yield* PubSub.publish(pubsub, "Hello")
820
804
  *
821
- * // The take will now complete
822
- * const message = yield* Fiber.join(takeFiber)
823
- * console.log("Received:", message) // "Hello"
824
- * }))
825
- * })
805
+ * // The take will now complete
806
+ * return yield* Fiber.join(takeFiber)
807
+ * }))
808
+ *
809
+ * const actual = await Effect.runPromise(program)
810
+ * actual // => "Hello"
826
811
  * ```
827
812
  *
828
813
  * @category subscriptions
@@ -850,23 +835,23 @@ export const take = self => Effect.suspend(() => {
850
835
  *
851
836
  * **Example** (Taking all available messages)
852
837
  *
853
- * ```ts
838
+ * ```ts import.meta.vitest
854
839
  * import { Effect, PubSub } from "effect"
855
840
  *
856
- * const program = Effect.gen(function*() {
841
+ * const program = Effect.scoped(Effect.gen(function*() {
857
842
  * const pubsub = yield* PubSub.bounded<string>(10)
858
843
  *
859
- * yield* Effect.scoped(Effect.gen(function*() {
860
- * const subscription = yield* PubSub.subscribe(pubsub)
844
+ * const subscription = yield* PubSub.subscribe(pubsub)
861
845
  *
862
- * // Publish multiple messages
863
- * yield* PubSub.publishAll(pubsub, ["msg1", "msg2", "msg3"])
846
+ * // Publish multiple messages
847
+ * yield* PubSub.publishAll(pubsub, ["msg1", "msg2", "msg3"])
864
848
  *
865
- * // Take all available messages at once
866
- * const allMessages = yield* PubSub.takeAll(subscription)
867
- * console.log("All messages:", allMessages) // ["msg1", "msg2", "msg3"]
868
- * }))
869
- * })
849
+ * // Take all available messages at once
850
+ * return yield* PubSub.takeAll(subscription)
851
+ * }))
852
+ *
853
+ * const actual = await Effect.runPromise(program)
854
+ * actual // => ["msg1", "msg2", "msg3"]
870
855
  * ```
871
856
  *
872
857
  * @category subscriptions
@@ -908,31 +893,30 @@ const pollForItem = self => {
908
893
  *
909
894
  * **Example** (Taking up to a maximum number of messages)
910
895
  *
911
- * ```ts
896
+ * ```ts import.meta.vitest
912
897
  * import { Effect, PubSub } from "effect"
913
898
  *
914
- * const program = Effect.gen(function*() {
899
+ * const program = Effect.scoped(Effect.gen(function*() {
915
900
  * const pubsub = yield* PubSub.bounded<string>(10)
916
901
  *
917
- * yield* Effect.scoped(Effect.gen(function*() {
918
- * const subscription = yield* PubSub.subscribe(pubsub)
902
+ * const subscription = yield* PubSub.subscribe(pubsub)
919
903
  *
920
- * // Publish multiple messages
921
- * yield* PubSub.publishAll(pubsub, ["msg1", "msg2", "msg3", "msg4", "msg5"])
904
+ * // Publish multiple messages
905
+ * yield* PubSub.publishAll(pubsub, ["msg1", "msg2", "msg3", "msg4", "msg5"])
922
906
  *
923
- * // Take up to 3 messages
924
- * const upTo3 = yield* PubSub.takeUpTo(subscription, 3)
925
- * console.log("Up to 3:", upTo3) // ["msg1", "msg2", "msg3"]
907
+ * // Take up to 3 messages
908
+ * const upTo3 = yield* PubSub.takeUpTo(subscription, 3)
926
909
  *
927
- * // Take up to 5 more (only 2 remaining)
928
- * const upTo5 = yield* PubSub.takeUpTo(subscription, 5)
929
- * console.log("Up to 5:", upTo5) // ["msg4", "msg5"]
910
+ * // Take up to 5 more (only 2 remaining)
911
+ * const upTo5 = yield* PubSub.takeUpTo(subscription, 5)
930
912
  *
931
- * // No more messages available
932
- * const noMore = yield* PubSub.takeUpTo(subscription, 10)
933
- * console.log("No more:", noMore) // []
934
- * }))
935
- * })
913
+ * // No more messages available
914
+ * const noMore = yield* PubSub.takeUpTo(subscription, 10)
915
+ * return [upTo3, upTo5, noMore]
916
+ * }))
917
+ *
918
+ * const actual = await Effect.runPromise(program)
919
+ * actual // => [["msg1", "msg2", "msg3"], ["msg4", "msg5"], []]
936
920
  * ```
937
921
  *
938
922
  * @category subscriptions
@@ -957,28 +941,26 @@ export const takeUpTo = /*#__PURE__*/dual(2, (self, max) => Effect.suspend(() =>
957
941
  *
958
942
  * **Example** (Taking between a minimum and maximum)
959
943
  *
960
- * ```ts
944
+ * ```ts import.meta.vitest
961
945
  * import { Effect, Fiber, PubSub } from "effect"
962
946
  *
963
- * const program = Effect.gen(function*() {
947
+ * const program = Effect.scoped(Effect.gen(function*() {
964
948
  * const pubsub = yield* PubSub.bounded<string>(10)
965
949
  *
966
- * yield* Effect.scoped(Effect.gen(function*() {
967
- * const subscription = yield* PubSub.subscribe(pubsub)
950
+ * const subscription = yield* PubSub.subscribe(pubsub)
968
951
  *
969
- * // Start taking between 2 and 5 messages (will suspend)
970
- * const takeFiber = yield* Effect.forkChild(
971
- * PubSub.takeBetween(subscription, 2, 5)
972
- * )
952
+ * // Start taking between 2 and 5 messages (will suspend)
953
+ * const takeFiber = yield* Effect.forkChild(PubSub.takeBetween(subscription, 2, 5))
973
954
  *
974
- * // Publish 3 messages
975
- * yield* PubSub.publishAll(pubsub, ["msg1", "msg2", "msg3"])
955
+ * // Publish 3 messages
956
+ * yield* PubSub.publishAll(pubsub, ["msg1", "msg2", "msg3"])
976
957
  *
977
- * // Now the take will complete with 3 messages
978
- * const messages = yield* Fiber.join(takeFiber)
979
- * console.log("Between 2-5:", messages) // ["msg1", "msg2", "msg3"]
980
- * }))
981
- * })
958
+ * // Now the take will complete with 3 messages
959
+ * return yield* Fiber.join(takeFiber)
960
+ * }))
961
+ *
962
+ * const actual = await Effect.runPromise(program)
963
+ * actual // => ["msg1", "msg2", "msg3"]
982
964
  * ```
983
965
  *
984
966
  * @category subscriptions
@@ -1023,29 +1005,29 @@ const takeRemainderLoop = (self, min, max, acc) => {
1023
1005
  *
1024
1006
  * **Example** (Checking remaining messages)
1025
1007
  *
1026
- * ```ts
1008
+ * ```ts import.meta.vitest
1027
1009
  * import { Effect, PubSub } from "effect"
1028
1010
  *
1029
- * const program = Effect.gen(function*() {
1011
+ * const program = Effect.scoped(Effect.gen(function*() {
1030
1012
  * const pubsub = yield* PubSub.bounded<string>(10)
1031
1013
  *
1032
- * yield* Effect.scoped(Effect.gen(function*() {
1033
- * const subscription = yield* PubSub.subscribe(pubsub)
1014
+ * const subscription = yield* PubSub.subscribe(pubsub)
1034
1015
  *
1035
- * // Publish some messages
1036
- * yield* PubSub.publishAll(pubsub, ["msg1", "msg2", "msg3"])
1016
+ * // Publish some messages
1017
+ * yield* PubSub.publishAll(pubsub, ["msg1", "msg2", "msg3"])
1037
1018
  *
1038
- * // Check how many messages are available
1039
- * const count = yield* PubSub.remaining(subscription)
1040
- * console.log("Messages available:", count) // 3
1019
+ * // Check how many messages are available
1020
+ * const count = yield* PubSub.remaining(subscription)
1041
1021
  *
1042
- * // Take one message
1043
- * yield* PubSub.take(subscription)
1022
+ * // Take one message
1023
+ * const message = yield* PubSub.take(subscription)
1044
1024
  *
1045
- * const remaining = yield* PubSub.remaining(subscription)
1046
- * console.log("Messages remaining:", remaining) // 2
1047
- * }))
1048
- * })
1025
+ * const remaining = yield* PubSub.remaining(subscription)
1026
+ * return { count, message, remaining }
1027
+ * }))
1028
+ *
1029
+ * const actual = await Effect.runPromise(program)
1030
+ * actual // => { count: 3, message: "msg1", remaining: 2 }
1049
1031
  * ```
1050
1032
  *
1051
1033
  * @see {@link remainingUnsafe} for a synchronous check that reports shutdown as `Option.none()`
@@ -1065,23 +1047,17 @@ export const remaining = self => Effect.suspend(() => self.shutdownFlag.current
1065
1047
  *
1066
1048
  * **Example** (Checking remaining messages synchronously)
1067
1049
  *
1068
- * ```ts
1069
- * import { PubSub } from "effect"
1050
+ * ```ts import.meta.vitest
1051
+ * import { Effect, Option, PubSub } from "effect"
1070
1052
  *
1071
- * declare const subscription: PubSub.Subscription<string>
1072
- *
1073
- * // Unsafe synchronous check for remaining messages
1074
- * const remainingOption = PubSub.remainingUnsafe(subscription)
1075
- * if (remainingOption._tag === "Some") {
1076
- * console.log("Messages available:", remainingOption.value)
1077
- * } else {
1078
- * console.log("Subscription is shutdown")
1079
- * }
1053
+ * const program = Effect.scoped(Effect.gen(function*() {
1054
+ * const pubsub = yield* PubSub.bounded<string>(2)
1055
+ * const subscription = yield* PubSub.subscribe(pubsub)
1056
+ * return PubSub.remainingUnsafe(subscription)
1057
+ * }))
1080
1058
  *
1081
- * // Useful for polling or batching scenarios
1082
- * if (remainingOption._tag === "Some" && remainingOption.value > 10) {
1083
- * // Process messages in batch
1084
- * }
1059
+ * const actual = await Effect.runPromise(program)
1060
+ * actual // => Option.some(0)
1085
1061
  * ```
1086
1062
  *
1087
1063
  * @see {@link remaining} for the effectful variant that interrupts on shutdown
@@ -1119,6 +1095,7 @@ const removeSubscribers = (subscribers, subscription, pollers) => {
1119
1095
  const makeSubscriptionUnsafe = (pubsub, subscribers, strategy) => new SubscriptionImpl(pubsub, subscribers, pubsub.subscribe(), MutableList.make(), Latch.makeUnsafe(false), MutableRef.make(false), strategy, pubsub.replayWindow());
1120
1096
  class BoundedPubSubArb {
1121
1097
  array;
1098
+ replayIndices;
1122
1099
  publisherIndex = 0;
1123
1100
  subscribers;
1124
1101
  subscriberCount = 0;
@@ -1131,6 +1108,9 @@ class BoundedPubSubArb {
1131
1108
  this.array = Array.from({
1132
1109
  length: capacity
1133
1110
  });
1111
+ this.replayIndices = replayBuffer ? Array.from({
1112
+ length: capacity
1113
+ }) : [];
1134
1114
  this.subscribers = Array.from({
1135
1115
  length: capacity
1136
1116
  });
@@ -1151,15 +1131,16 @@ class BoundedPubSubArb {
1151
1131
  if (this.isFull()) {
1152
1132
  return false;
1153
1133
  }
1134
+ const replayIndex = this.replayBuffer?.offer(value);
1154
1135
  if (this.subscriberCount !== 0) {
1155
1136
  const index = this.publisherIndex % this.capacity;
1156
1137
  this.array[index] = value;
1138
+ if (replayIndex !== undefined) {
1139
+ this.replayIndices[index] = replayIndex;
1140
+ }
1157
1141
  this.subscribers[index] = this.subscriberCount;
1158
1142
  this.publisherIndex += 1;
1159
1143
  }
1160
- if (this.replayBuffer) {
1161
- this.replayBuffer.offer(value);
1162
- }
1163
1144
  return true;
1164
1145
  }
1165
1146
  publishAll(elements) {
@@ -1183,23 +1164,23 @@ class BoundedPubSubArb {
1183
1164
  const a = chunk[iteratorIndex++];
1184
1165
  const index = this.publisherIndex % this.capacity;
1185
1166
  this.array[index] = a;
1167
+ const replayIndex = this.replayBuffer?.offer(a);
1168
+ if (replayIndex !== undefined) {
1169
+ this.replayIndices[index] = replayIndex;
1170
+ }
1186
1171
  this.subscribers[index] = this.subscriberCount;
1187
1172
  this.publisherIndex += 1;
1188
- if (this.replayBuffer) {
1189
- this.replayBuffer.offer(a);
1190
- }
1191
1173
  }
1192
1174
  return chunk.slice(iteratorIndex);
1193
1175
  }
1194
1176
  slide() {
1195
1177
  if (this.subscribersIndex !== this.publisherIndex) {
1196
1178
  const index = this.subscribersIndex % this.capacity;
1179
+ const value = this.array[index];
1197
1180
  this.array[index] = AbsentValue;
1198
1181
  this.subscribers[index] = 0;
1199
1182
  this.subscribersIndex += 1;
1200
- }
1201
- if (this.replayBuffer) {
1202
- this.replayBuffer.slide();
1183
+ this.replayBuffer?.slide(value, this.replayIndices[index]);
1203
1184
  }
1204
1185
  }
1205
1186
  subscribe() {
@@ -1287,6 +1268,7 @@ class BoundedPubSubArbSubscription {
1287
1268
  }
1288
1269
  class BoundedPubSubPow2 {
1289
1270
  array;
1271
+ replayIndices;
1290
1272
  mask;
1291
1273
  publisherIndex = 0;
1292
1274
  subscribers;
@@ -1300,6 +1282,9 @@ class BoundedPubSubPow2 {
1300
1282
  this.array = Array.from({
1301
1283
  length: capacity
1302
1284
  });
1285
+ this.replayIndices = replayBuffer ? Array.from({
1286
+ length: capacity
1287
+ }) : [];
1303
1288
  this.mask = capacity - 1;
1304
1289
  this.subscribers = Array.from({
1305
1290
  length: capacity
@@ -1321,15 +1306,16 @@ class BoundedPubSubPow2 {
1321
1306
  if (this.isFull()) {
1322
1307
  return false;
1323
1308
  }
1309
+ const replayIndex = this.replayBuffer?.offer(value);
1324
1310
  if (this.subscriberCount !== 0) {
1325
1311
  const index = this.publisherIndex & this.mask;
1326
1312
  this.array[index] = value;
1313
+ if (replayIndex !== undefined) {
1314
+ this.replayIndices[index] = replayIndex;
1315
+ }
1327
1316
  this.subscribers[index] = this.subscriberCount;
1328
1317
  this.publisherIndex += 1;
1329
1318
  }
1330
- if (this.replayBuffer) {
1331
- this.replayBuffer.offer(value);
1332
- }
1333
1319
  return true;
1334
1320
  }
1335
1321
  publishAll(elements) {
@@ -1353,23 +1339,23 @@ class BoundedPubSubPow2 {
1353
1339
  const elem = chunk[iteratorIndex++];
1354
1340
  const index = this.publisherIndex & this.mask;
1355
1341
  this.array[index] = elem;
1342
+ const replayIndex = this.replayBuffer?.offer(elem);
1343
+ if (replayIndex !== undefined) {
1344
+ this.replayIndices[index] = replayIndex;
1345
+ }
1356
1346
  this.subscribers[index] = this.subscriberCount;
1357
1347
  this.publisherIndex += 1;
1358
- if (this.replayBuffer) {
1359
- this.replayBuffer.offer(elem);
1360
- }
1361
1348
  }
1362
1349
  return chunk.slice(iteratorIndex);
1363
1350
  }
1364
1351
  slide() {
1365
1352
  if (this.subscribersIndex !== this.publisherIndex) {
1366
1353
  const index = this.subscribersIndex & this.mask;
1354
+ const value = this.array[index];
1367
1355
  this.array[index] = AbsentValue;
1368
1356
  this.subscribers[index] = 0;
1369
1357
  this.subscribersIndex += 1;
1370
- }
1371
- if (this.replayBuffer) {
1372
- this.replayBuffer.slide();
1358
+ this.replayBuffer?.slide(value, this.replayIndices[index]);
1373
1359
  }
1374
1360
  }
1375
1361
  subscribe() {
@@ -1460,6 +1446,7 @@ class BoundedPubSubSingle {
1460
1446
  subscriberCount = 0;
1461
1447
  subscribers = 0;
1462
1448
  value = AbsentValue;
1449
+ replayIndex = 0;
1463
1450
  capacity = 1;
1464
1451
  replayBuffer;
1465
1452
  constructor(replayBuffer) {
@@ -1484,14 +1471,15 @@ class BoundedPubSubSingle {
1484
1471
  if (this.isFull()) {
1485
1472
  return false;
1486
1473
  }
1474
+ const replayIndex = this.replayBuffer?.offer(value);
1487
1475
  if (this.subscriberCount !== 0) {
1488
1476
  this.value = value;
1477
+ if (replayIndex !== undefined) {
1478
+ this.replayIndex = replayIndex;
1479
+ }
1489
1480
  this.subscribers = this.subscriberCount;
1490
1481
  this.publisherIndex += 1;
1491
1482
  }
1492
- if (this.replayBuffer) {
1493
- this.replayBuffer.offer(value);
1494
- }
1495
1483
  return true;
1496
1484
  }
1497
1485
  publishAll(elements) {
@@ -1513,11 +1501,10 @@ class BoundedPubSubSingle {
1513
1501
  }
1514
1502
  slide() {
1515
1503
  if (this.isFull()) {
1504
+ const value = this.value;
1516
1505
  this.subscribers = 0;
1517
1506
  this.value = AbsentValue;
1518
- }
1519
- if (this.replayBuffer) {
1520
- this.replayBuffer.slide();
1507
+ this.replayBuffer?.slide(value, this.replayIndex);
1521
1508
  }
1522
1509
  }
1523
1510
  subscribe() {
@@ -1580,6 +1567,7 @@ class BoundedPubSubSingleSubscription {
1580
1567
  class UnboundedPubSub {
1581
1568
  publisherHead = {
1582
1569
  value: AbsentValue,
1570
+ replayIndex: undefined,
1583
1571
  subscribers: 0,
1584
1572
  next: null
1585
1573
  };
@@ -1604,19 +1592,19 @@ class UnboundedPubSub {
1604
1592
  return this.publisherIndex - this.subscribersIndex;
1605
1593
  }
1606
1594
  publish(value) {
1595
+ const replayIndex = this.replayBuffer?.offer(value);
1607
1596
  const subscribers = this.publisherTail.subscribers;
1608
1597
  if (subscribers !== 0) {
1609
- this.publisherTail.next = {
1598
+ const node = {
1610
1599
  value,
1600
+ replayIndex,
1611
1601
  subscribers,
1612
1602
  next: null
1613
1603
  };
1604
+ this.publisherTail.next = node;
1614
1605
  this.publisherTail = this.publisherTail.next;
1615
1606
  this.publisherIndex += 1;
1616
1607
  }
1617
- if (this.replayBuffer) {
1618
- this.replayBuffer.offer(value);
1619
- }
1620
1608
  return true;
1621
1609
  }
1622
1610
  publishAll(elements) {
@@ -1631,12 +1619,12 @@ class UnboundedPubSub {
1631
1619
  }
1632
1620
  slide() {
1633
1621
  if (this.publisherHead !== this.publisherTail) {
1622
+ const node = this.publisherHead.next;
1623
+ const value = node.value;
1634
1624
  this.publisherHead = this.publisherHead.next;
1635
1625
  this.publisherHead.value = AbsentValue;
1636
1626
  this.subscribersIndex += 1;
1637
- }
1638
- if (this.replayBuffer) {
1639
- this.replayBuffer.slide();
1627
+ this.replayBuffer?.slide(value, node.replayIndex);
1640
1628
  }
1641
1629
  }
1642
1630
  subscribe() {
@@ -1906,34 +1894,30 @@ export class BackPressureStrategy {
1906
1894
  *
1907
1895
  * **Example** (Applying a dropping strategy)
1908
1896
  *
1909
- * ```ts
1897
+ * ```ts import.meta.vitest
1910
1898
  * import { Effect, PubSub } from "effect"
1911
1899
  *
1912
- * const program = Effect.gen(function*() {
1913
- * // Create PubSub with dropping strategy
1914
- * const pubsub = yield* PubSub.dropping<string>(2)
1915
- *
1916
- * // Or explicitly create with dropping strategy
1917
- * const customPubsub = yield* PubSub.make<string>({
1900
+ * const program = Effect.scoped(Effect.gen(function*() {
1901
+ * // Explicitly create a PubSub with a dropping strategy
1902
+ * const pubsub = yield* PubSub.make<string>({
1918
1903
  * atomicPubSub: () => PubSub.makeAtomicBounded(2),
1919
1904
  * strategy: () => new PubSub.DroppingStrategy()
1920
1905
  * })
1921
1906
  *
1922
- * yield* Effect.scoped(Effect.gen(function*() {
1923
- * const subscription = yield* PubSub.subscribe(pubsub)
1907
+ * const subscription = yield* PubSub.subscribe(pubsub)
1924
1908
  *
1925
- * // Fill the PubSub
1926
- * const pub1 = yield* PubSub.publish(pubsub, "msg1") // true
1927
- * const pub2 = yield* PubSub.publish(pubsub, "msg2") // true
1928
- * const pub3 = yield* PubSub.publish(pubsub, "msg3") // false (dropped)
1909
+ * // Fill the PubSub
1910
+ * const pub1 = yield* PubSub.publish(pubsub, "msg1") // true
1911
+ * const pub2 = yield* PubSub.publish(pubsub, "msg2") // true
1912
+ * const pub3 = yield* PubSub.publish(pubsub, "msg3") // false (dropped)
1929
1913
  *
1930
- * console.log("Publication results:", [pub1, pub2, pub3]) // [true, true, false]
1914
+ * // Subscribers will only see the first two messages
1915
+ * const messages = yield* PubSub.takeAll(subscription)
1916
+ * return { published: [pub1, pub2, pub3], messages }
1917
+ * }))
1931
1918
  *
1932
- * // Subscribers will only see the first two messages
1933
- * const messages = yield* PubSub.takeAll(subscription)
1934
- * console.log("Received messages:", messages) // ["msg1", "msg2"]
1935
- * }))
1936
- * })
1919
+ * const actual = await Effect.runPromise(program)
1920
+ * actual // => { published: [true, true, false], messages: ["msg1", "msg2"] }
1937
1921
  * ```
1938
1922
  *
1939
1923
  * @category models
@@ -1975,33 +1959,30 @@ export class DroppingStrategy {
1975
1959
  *
1976
1960
  * **Example** (Applying a sliding strategy)
1977
1961
  *
1978
- * ```ts
1962
+ * ```ts import.meta.vitest
1979
1963
  * import { Effect, PubSub } from "effect"
1980
1964
  *
1981
- * const program = Effect.gen(function*() {
1982
- * // Create PubSub with sliding strategy
1983
- * const pubsub = yield* PubSub.sliding<string>(2)
1984
- *
1985
- * // Or explicitly create with sliding strategy
1986
- * const customPubsub = yield* PubSub.make<string>({
1965
+ * const program = Effect.scoped(Effect.gen(function*() {
1966
+ * // Explicitly create a PubSub with a sliding strategy
1967
+ * const pubsub = yield* PubSub.make<string>({
1987
1968
  * atomicPubSub: () => PubSub.makeAtomicBounded(2),
1988
1969
  * strategy: () => new PubSub.SlidingStrategy()
1989
1970
  * })
1990
1971
  *
1991
- * yield* Effect.scoped(Effect.gen(function*() {
1992
- * const subscription = yield* PubSub.subscribe(pubsub)
1972
+ * const subscription = yield* PubSub.subscribe(pubsub)
1993
1973
  *
1994
- * // Publish messages that exceed capacity
1995
- * yield* PubSub.publish(pubsub, "msg1") // stored
1996
- * yield* PubSub.publish(pubsub, "msg2") // stored
1997
- * yield* PubSub.publish(pubsub, "msg3") // "msg1" evicted, "msg3" stored
1998
- * yield* PubSub.publish(pubsub, "msg4") // "msg2" evicted, "msg4" stored
1974
+ * // Publish messages that exceed capacity
1975
+ * yield* PubSub.publish(pubsub, "msg1") // stored
1976
+ * yield* PubSub.publish(pubsub, "msg2") // stored
1977
+ * yield* PubSub.publish(pubsub, "msg3") // "msg1" evicted, "msg3" stored
1978
+ * yield* PubSub.publish(pubsub, "msg4") // "msg2" evicted, "msg4" stored
1999
1979
  *
2000
- * // Subscribers will see the most recent messages
2001
- * const messages = yield* PubSub.takeAll(subscription)
2002
- * console.log("Recent messages:", messages) // ["msg3", "msg4"]
2003
- * }))
2004
- * })
1980
+ * // Subscribers will see the most recent messages
1981
+ * return yield* PubSub.takeAll(subscription)
1982
+ * }))
1983
+ *
1984
+ * const actual = await Effect.runPromise(program)
1985
+ * actual // => ["msg3", "msg4"]
2005
1986
  * ```
2006
1987
  *
2007
1988
  * @category models
@@ -2078,21 +2059,31 @@ class ReplayBuffer {
2078
2059
  capacity;
2079
2060
  head = {
2080
2061
  value: AbsentValue,
2062
+ index: 0,
2081
2063
  next: null
2082
2064
  };
2083
2065
  tail = this.head;
2066
+ slideValues = [];
2084
2067
  size = 0;
2085
2068
  index = 0;
2069
+ publisherIndex = 0;
2086
2070
  constructor(capacity) {
2087
2071
  this.capacity = capacity;
2088
2072
  }
2089
- slide() {
2073
+ slide(value, publisherIndex) {
2074
+ this.slideValues[this.index % this.capacity] = {
2075
+ value,
2076
+ index: publisherIndex
2077
+ };
2090
2078
  this.index++;
2091
2079
  }
2092
2080
  offer(a) {
2081
+ const index = this.publisherIndex++;
2093
2082
  this.tail.value = a;
2083
+ this.tail.index = index;
2094
2084
  this.tail.next = {
2095
2085
  value: AbsentValue,
2086
+ index: 0,
2096
2087
  next: null
2097
2088
  };
2098
2089
  this.tail = this.tail.next;
@@ -2101,6 +2092,7 @@ class ReplayBuffer {
2101
2092
  } else {
2102
2093
  this.size += 1;
2103
2094
  }
2095
+ return index;
2104
2096
  }
2105
2097
  offerAll(as) {
2106
2098
  for (const a of as) {
@@ -2109,47 +2101,65 @@ class ReplayBuffer {
2109
2101
  }
2110
2102
  }
2111
2103
  class ReplayWindowImpl {
2112
- head;
2113
- index;
2114
- remaining;
2115
2104
  buffer;
2105
+ values;
2106
+ index = 0;
2107
+ remaining;
2108
+ slideIndex;
2109
+ newestIndex = -1;
2116
2110
  constructor(buffer) {
2117
2111
  this.buffer = buffer;
2118
- this.index = buffer.index;
2119
2112
  this.remaining = buffer.size;
2120
- this.head = buffer.head;
2121
- }
2122
- fastForward() {
2123
- while (this.index < this.buffer.index) {
2124
- this.head = this.head.next;
2125
- this.index++;
2113
+ this.slideIndex = buffer.index;
2114
+ this.values = new Array(this.remaining);
2115
+ let node = buffer.head;
2116
+ for (let i = 0; i < this.remaining; i++) {
2117
+ this.values[i] = node.value;
2118
+ this.newestIndex = node.index;
2119
+ node = node.next;
2120
+ }
2121
+ }
2122
+ close() {
2123
+ this.values.length = 0;
2124
+ this.remaining = 0;
2125
+ }
2126
+ sync() {
2127
+ const slides = this.buffer.index - this.slideIndex;
2128
+ if (slides === 0 || this.remaining === 0) {
2129
+ return;
2130
+ }
2131
+ const count = Math.min(slides, this.buffer.capacity);
2132
+ const start = this.buffer.index - count;
2133
+ for (let i = 0; i < count; i++) {
2134
+ const entry = this.buffer.slideValues[(start + i) % this.buffer.capacity];
2135
+ if (entry.index > this.newestIndex) {
2136
+ this.index = (this.index + 1) % this.values.length;
2137
+ this.values[(this.index + this.remaining - 1) % this.values.length] = entry.value;
2138
+ this.newestIndex = entry.index;
2139
+ }
2126
2140
  }
2141
+ this.slideIndex = this.buffer.index;
2127
2142
  }
2128
2143
  take() {
2129
2144
  if (this.remaining === 0) {
2130
2145
  return undefined;
2131
- } else if (this.index < this.buffer.index) {
2132
- this.fastForward();
2133
2146
  }
2147
+ this.sync();
2148
+ const value = this.values[this.index];
2149
+ this.values[this.index] = AbsentValue;
2150
+ this.index = (this.index + 1) % this.values.length;
2134
2151
  this.remaining--;
2135
- const value = this.head.value;
2136
- this.head = this.head.next;
2152
+ if (this.remaining === 0) {
2153
+ this.close();
2154
+ }
2137
2155
  return value;
2138
2156
  }
2139
2157
  takeN(n) {
2140
- if (this.remaining === 0) {
2141
- return [];
2142
- } else if (this.index < this.buffer.index) {
2143
- this.fastForward();
2144
- }
2145
2158
  const len = Math.min(n, this.remaining);
2146
2159
  const items = new Array(len);
2147
2160
  for (let i = 0; i < len; i++) {
2148
- const value = this.head.value;
2149
- this.head = this.head.next;
2150
- items[i] = value;
2161
+ items[i] = this.take();
2151
2162
  }
2152
- this.remaining -= len;
2153
2163
  return items;
2154
2164
  }
2155
2165
  takeAll() {
@@ -2160,6 +2170,7 @@ const emptyReplayWindow = {
2160
2170
  remaining: 0,
2161
2171
  take: () => undefined,
2162
2172
  takeN: () => [],
2163
- takeAll: () => []
2173
+ takeAll: () => [],
2174
+ close: () => void 0
2164
2175
  };
2165
2176
  //# sourceMappingURL=PubSub.js.map