effect 4.0.0-beta.102 → 4.0.0-beta.104

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 (1637) 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 +167 -102
  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 +730 -769
  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 +357 -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 +117 -81
  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 +153 -276
  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 +22 -15
  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 +144 -187
  84. package/dist/Duration.js.map +1 -1
  85. package/dist/Effect.d.ts +2993 -3281
  86. package/dist/Effect.d.ts.map +1 -1
  87. package/dist/Effect.js +1360 -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 +39 -23
  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 +86 -55
  107. package/dist/ExecutionPlan.d.ts.map +1 -1
  108. package/dist/ExecutionPlan.js +8 -29
  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 +86 -60
  129. package/dist/FiberSet.js.map +1 -1
  130. package/dist/FileSystem.d.ts +154 -265
  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 +80 -148
  143. package/dist/Function.d.ts.map +1 -1
  144. package/dist/Function.js +45 -62
  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 +239 -316
  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 +202 -180
  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 +292 -1638
  357. package/dist/Schedule.d.ts.map +1 -1
  358. package/dist/Schedule.js +164 -805
  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 +676 -674
  365. package/dist/Schema.d.ts.map +1 -1
  366. package/dist/Schema.js +513 -544
  367. package/dist/Schema.js.map +1 -1
  368. package/dist/SchemaAST.d.ts +30 -53
  369. package/dist/SchemaAST.d.ts.map +1 -1
  370. package/dist/SchemaAST.js +404 -301
  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 +137 -107
  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 +1 -1
  401. package/dist/ScopedCache.js.map +1 -1
  402. package/dist/ScopedRef.d.ts +3 -3
  403. package/dist/ScopedRef.js +2 -2
  404. package/dist/ScopedRef.js.map +1 -1
  405. package/dist/Semaphore.d.ts +96 -10
  406. package/dist/Semaphore.d.ts.map +1 -1
  407. package/dist/Semaphore.js +78 -39
  408. package/dist/Semaphore.js.map +1 -1
  409. package/dist/Sink.d.ts +118 -108
  410. package/dist/Sink.d.ts.map +1 -1
  411. package/dist/Sink.js +107 -100
  412. package/dist/Sink.js.map +1 -1
  413. package/dist/Stdio.d.ts +1 -1
  414. package/dist/Stdio.js.map +1 -1
  415. package/dist/Stream.d.ts +2442 -2953
  416. package/dist/Stream.d.ts.map +1 -1
  417. package/dist/Stream.js +1105 -1383
  418. package/dist/Stream.js.map +1 -1
  419. package/dist/String.d.ts +262 -308
  420. package/dist/String.d.ts.map +1 -1
  421. package/dist/String.js +184 -215
  422. package/dist/String.js.map +1 -1
  423. package/dist/Struct.d.ts +109 -114
  424. package/dist/Struct.d.ts.map +1 -1
  425. package/dist/Struct.js +41 -50
  426. package/dist/Struct.js.map +1 -1
  427. package/dist/SubscriptionRef.d.ts +282 -250
  428. package/dist/SubscriptionRef.d.ts.map +1 -1
  429. package/dist/SubscriptionRef.js +104 -92
  430. package/dist/SubscriptionRef.js.map +1 -1
  431. package/dist/Symbol.d.ts +3 -3
  432. package/dist/Symbol.js +3 -3
  433. package/dist/Symbol.js.map +1 -1
  434. package/dist/SynchronizedRef.js +1 -1
  435. package/dist/SynchronizedRef.js.map +1 -1
  436. package/dist/Take.js.map +1 -1
  437. package/dist/Terminal.d.ts +2 -2
  438. package/dist/Terminal.js +2 -2
  439. package/dist/Terminal.js.map +1 -1
  440. package/dist/Tracer.d.ts +100 -54
  441. package/dist/Tracer.d.ts.map +1 -1
  442. package/dist/Tracer.js +41 -24
  443. package/dist/Tracer.js.map +1 -1
  444. package/dist/Trie.d.ts +287 -679
  445. package/dist/Trie.d.ts.map +1 -1
  446. package/dist/Trie.js +109 -251
  447. package/dist/Trie.js.map +1 -1
  448. package/dist/Tuple.d.ts +98 -131
  449. package/dist/Tuple.d.ts.map +1 -1
  450. package/dist/Tuple.js +42 -57
  451. package/dist/Tuple.js.map +1 -1
  452. package/dist/TxChunk.d.ts +201 -121
  453. package/dist/TxChunk.d.ts.map +1 -1
  454. package/dist/TxChunk.js +85 -56
  455. package/dist/TxChunk.js.map +1 -1
  456. package/dist/TxDeferred.d.ts +62 -46
  457. package/dist/TxDeferred.d.ts.map +1 -1
  458. package/dist/TxDeferred.js +30 -22
  459. package/dist/TxDeferred.js.map +1 -1
  460. package/dist/TxHashMap.d.ts +631 -779
  461. package/dist/TxHashMap.d.ts.map +1 -1
  462. package/dist/TxHashMap.js +268 -330
  463. package/dist/TxHashMap.js.map +1 -1
  464. package/dist/TxHashSet.d.ts +297 -236
  465. package/dist/TxHashSet.d.ts.map +1 -1
  466. package/dist/TxHashSet.js +130 -100
  467. package/dist/TxHashSet.js.map +1 -1
  468. package/dist/TxPriorityQueue.d.ts +126 -95
  469. package/dist/TxPriorityQueue.d.ts.map +1 -1
  470. package/dist/TxPriorityQueue.js +74 -56
  471. package/dist/TxPriorityQueue.js.map +1 -1
  472. package/dist/TxPubSub.d.ts +101 -88
  473. package/dist/TxPubSub.d.ts.map +1 -1
  474. package/dist/TxPubSub.js +87 -66
  475. package/dist/TxPubSub.js.map +1 -1
  476. package/dist/TxQueue.d.ts +200 -180
  477. package/dist/TxQueue.d.ts.map +1 -1
  478. package/dist/TxQueue.js +160 -136
  479. package/dist/TxQueue.js.map +1 -1
  480. package/dist/TxReentrantLock.d.ts +89 -114
  481. package/dist/TxReentrantLock.d.ts.map +1 -1
  482. package/dist/TxReentrantLock.js +75 -53
  483. package/dist/TxReentrantLock.js.map +1 -1
  484. package/dist/TxRef.d.ts +51 -32
  485. package/dist/TxRef.d.ts.map +1 -1
  486. package/dist/TxRef.js +23 -15
  487. package/dist/TxRef.js.map +1 -1
  488. package/dist/TxSemaphore.d.ts +129 -95
  489. package/dist/TxSemaphore.d.ts.map +1 -1
  490. package/dist/TxSemaphore.js +85 -70
  491. package/dist/TxSemaphore.js.map +1 -1
  492. package/dist/TxSubscriptionRef.d.ts +97 -70
  493. package/dist/TxSubscriptionRef.d.ts.map +1 -1
  494. package/dist/TxSubscriptionRef.js +44 -34
  495. package/dist/TxSubscriptionRef.js.map +1 -1
  496. package/dist/Types.d.ts +126 -67
  497. package/dist/Types.d.ts.map +1 -1
  498. package/dist/UndefinedOr.js.map +1 -1
  499. package/dist/Unify.d.ts +45 -65
  500. package/dist/Unify.d.ts.map +1 -1
  501. package/dist/Unify.js +6 -9
  502. package/dist/Unify.js.map +1 -1
  503. package/dist/Utils.d.ts +23 -16
  504. package/dist/Utils.d.ts.map +1 -1
  505. package/dist/Utils.js +3 -7
  506. package/dist/Utils.js.map +1 -1
  507. package/dist/index.js.map +1 -1
  508. package/dist/internal/array.js.map +1 -1
  509. package/dist/internal/core.js +1 -1
  510. package/dist/internal/core.js.map +1 -1
  511. package/dist/internal/dateTime.js +5 -1
  512. package/dist/internal/dateTime.js.map +1 -1
  513. package/dist/internal/doNotation.js.map +1 -1
  514. package/dist/internal/effect.js +77 -40
  515. package/dist/internal/effect.js.map +1 -1
  516. package/dist/internal/equal.js.map +1 -1
  517. package/dist/internal/errors.js.map +1 -1
  518. package/dist/internal/executionPlan.js +51 -3
  519. package/dist/internal/executionPlan.js.map +1 -1
  520. package/dist/internal/hashMap.js +12 -8
  521. package/dist/internal/hashMap.js.map +1 -1
  522. package/dist/internal/hashSet.js.map +1 -1
  523. package/dist/internal/layer.js.map +1 -1
  524. package/dist/internal/matcher.js +1 -1
  525. package/dist/internal/matcher.js.map +1 -1
  526. package/dist/internal/metric.js.map +1 -1
  527. package/dist/internal/option.js.map +1 -1
  528. package/dist/internal/persistence.d.ts +2 -0
  529. package/dist/internal/persistence.d.ts.map +1 -0
  530. package/dist/internal/persistence.js +3 -0
  531. package/dist/internal/persistence.js.map +1 -0
  532. package/dist/internal/random.js.map +1 -1
  533. package/dist/internal/rcRef.js.map +1 -1
  534. package/dist/internal/record.js.map +1 -1
  535. package/dist/internal/redacted.js.map +1 -1
  536. package/dist/internal/references.js +3 -0
  537. package/dist/internal/references.js.map +1 -1
  538. package/dist/internal/request.js.map +1 -1
  539. package/dist/internal/result.js.map +1 -1
  540. package/dist/internal/schedule.js.map +1 -1
  541. package/dist/internal/schema/annotations.js +2 -0
  542. package/dist/internal/schema/annotations.js.map +1 -1
  543. package/dist/internal/schema/cause.js.map +1 -1
  544. package/dist/internal/schema/fromJsonSchemaDocument.js +13 -11
  545. package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
  546. package/dist/internal/schema/fromRepresentation.js +8 -15
  547. package/dist/internal/schema/fromRepresentation.js.map +1 -1
  548. package/dist/internal/schema/parser.d.ts +14 -0
  549. package/dist/internal/schema/parser.d.ts.map +1 -0
  550. package/dist/internal/schema/parser.js +13 -0
  551. package/dist/internal/schema/parser.js.map +1 -0
  552. package/dist/internal/schema/schema.js.map +1 -1
  553. package/dist/internal/schema/toArbitrary.js +1 -1
  554. package/dist/internal/schema/toArbitrary.js.map +1 -1
  555. package/dist/internal/schema/toCodeDocument.js.map +1 -1
  556. package/dist/internal/schema/toEquivalence.js.map +1 -1
  557. package/dist/internal/schema/toJsonSchemaDocument.js +48 -6
  558. package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
  559. package/dist/internal/schema/toRepresentation.js +87 -107
  560. package/dist/internal/schema/toRepresentation.js.map +1 -1
  561. package/dist/internal/stackTraceLimit.js.map +1 -1
  562. package/dist/internal/stream.js.map +1 -1
  563. package/dist/internal/tracer.js.map +1 -1
  564. package/dist/internal/trie.js +24 -10
  565. package/dist/internal/trie.js.map +1 -1
  566. package/dist/testing/FastCheck.d.ts +8 -7
  567. package/dist/testing/FastCheck.d.ts.map +1 -1
  568. package/dist/testing/FastCheck.js +8 -7
  569. package/dist/testing/FastCheck.js.map +1 -1
  570. package/dist/testing/TestClock.d.ts +57 -28
  571. package/dist/testing/TestClock.d.ts.map +1 -1
  572. package/dist/testing/TestClock.js +61 -19
  573. package/dist/testing/TestClock.js.map +1 -1
  574. package/dist/testing/TestConsole.d.ts +32 -31
  575. package/dist/testing/TestConsole.d.ts.map +1 -1
  576. package/dist/testing/TestConsole.js +24 -22
  577. package/dist/testing/TestConsole.js.map +1 -1
  578. package/dist/testing/TestSchema.d.ts +30 -30
  579. package/dist/testing/TestSchema.d.ts.map +1 -1
  580. package/dist/testing/TestSchema.js +25 -25
  581. package/dist/testing/TestSchema.js.map +1 -1
  582. package/dist/testing/index.js.map +1 -1
  583. package/dist/unstable/ai/AiError.d.ts +95 -118
  584. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  585. package/dist/unstable/ai/AiError.js +113 -136
  586. package/dist/unstable/ai/AiError.js.map +1 -1
  587. package/dist/unstable/ai/AnthropicStructuredOutput.d.ts +1 -1
  588. package/dist/unstable/ai/AnthropicStructuredOutput.js +1 -1
  589. package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
  590. package/dist/unstable/ai/Chat.d.ts +132 -97
  591. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  592. package/dist/unstable/ai/Chat.js +56 -52
  593. package/dist/unstable/ai/Chat.js.map +1 -1
  594. package/dist/unstable/ai/EmbeddingModel.js.map +1 -1
  595. package/dist/unstable/ai/IdGenerator.d.ts +32 -28
  596. package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
  597. package/dist/unstable/ai/IdGenerator.js +26 -21
  598. package/dist/unstable/ai/IdGenerator.js.map +1 -1
  599. package/dist/unstable/ai/LanguageModel.d.ts +107 -67
  600. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  601. package/dist/unstable/ai/LanguageModel.js +108 -66
  602. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  603. package/dist/unstable/ai/McpProtocol.d.ts +30 -0
  604. package/dist/unstable/ai/McpProtocol.d.ts.map +1 -0
  605. package/dist/unstable/ai/McpProtocol.js +20 -0
  606. package/dist/unstable/ai/McpProtocol.js.map +1 -0
  607. package/dist/unstable/ai/McpSchema.d.ts +251 -185
  608. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  609. package/dist/unstable/ai/McpSchema.js +66 -58
  610. package/dist/unstable/ai/McpSchema.js.map +1 -1
  611. package/dist/unstable/ai/McpServer.d.ts +68 -59
  612. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  613. package/dist/unstable/ai/McpServer.js +695 -242
  614. package/dist/unstable/ai/McpServer.js.map +1 -1
  615. package/dist/unstable/ai/Model.d.ts +8 -19
  616. package/dist/unstable/ai/Model.d.ts.map +1 -1
  617. package/dist/unstable/ai/Model.js +9 -20
  618. package/dist/unstable/ai/Model.js.map +1 -1
  619. package/dist/unstable/ai/OpenAiStructuredOutput.d.ts +1 -1
  620. package/dist/unstable/ai/OpenAiStructuredOutput.js +1 -1
  621. package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
  622. package/dist/unstable/ai/Prompt.d.ts +127 -41
  623. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  624. package/dist/unstable/ai/Prompt.js +59 -20
  625. package/dist/unstable/ai/Prompt.js.map +1 -1
  626. package/dist/unstable/ai/Response.d.ts +28 -14
  627. package/dist/unstable/ai/Response.d.ts.map +1 -1
  628. package/dist/unstable/ai/Response.js +9 -4
  629. package/dist/unstable/ai/Response.js.map +1 -1
  630. package/dist/unstable/ai/ResponseIdTracker.js.map +1 -1
  631. package/dist/unstable/ai/Telemetry.d.ts +46 -13
  632. package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
  633. package/dist/unstable/ai/Telemetry.js +18 -7
  634. package/dist/unstable/ai/Telemetry.js.map +1 -1
  635. package/dist/unstable/ai/Tokenizer.d.ts +14 -3
  636. package/dist/unstable/ai/Tokenizer.d.ts.map +1 -1
  637. package/dist/unstable/ai/Tokenizer.js +10 -2
  638. package/dist/unstable/ai/Tokenizer.js.map +1 -1
  639. package/dist/unstable/ai/Tool.d.ts +59 -44
  640. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  641. package/dist/unstable/ai/Tool.js +48 -39
  642. package/dist/unstable/ai/Tool.js.map +1 -1
  643. package/dist/unstable/ai/Toolkit.d.ts +26 -8
  644. package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
  645. package/dist/unstable/ai/Toolkit.js +18 -4
  646. package/dist/unstable/ai/Toolkit.js.map +1 -1
  647. package/dist/unstable/ai/index.d.ts +4 -0
  648. package/dist/unstable/ai/index.d.ts.map +1 -1
  649. package/dist/unstable/ai/index.js +4 -0
  650. package/dist/unstable/ai/index.js.map +1 -1
  651. package/dist/unstable/ai/internal/codec-transformer.js.map +1 -1
  652. package/dist/unstable/ai/internal/mcpProtocol.d.ts +21 -0
  653. package/dist/unstable/ai/internal/mcpProtocol.d.ts.map +1 -0
  654. package/dist/unstable/ai/internal/mcpProtocol.js +22 -0
  655. package/dist/unstable/ai/internal/mcpProtocol.js.map +1 -0
  656. package/dist/unstable/ai/internal/mcpProtocolRegistry.d.ts +2 -0
  657. package/dist/unstable/ai/internal/mcpProtocolRegistry.d.ts.map +1 -0
  658. package/dist/unstable/ai/internal/mcpProtocolRegistry.js +32 -0
  659. package/dist/unstable/ai/internal/mcpProtocolRegistry.js.map +1 -0
  660. package/dist/unstable/ai/internal/structured-output.js +14 -15
  661. package/dist/unstable/ai/internal/structured-output.js.map +1 -1
  662. package/dist/unstable/cli/Argument.d.ts +273 -69
  663. package/dist/unstable/cli/Argument.d.ts.map +1 -1
  664. package/dist/unstable/cli/Argument.js +111 -33
  665. package/dist/unstable/cli/Argument.js.map +1 -1
  666. package/dist/unstable/cli/CliConfig.js.map +1 -1
  667. package/dist/unstable/cli/CliError.d.ts +70 -77
  668. package/dist/unstable/cli/CliError.d.ts.map +1 -1
  669. package/dist/unstable/cli/CliError.js +66 -70
  670. package/dist/unstable/cli/CliError.js.map +1 -1
  671. package/dist/unstable/cli/CliOutput.d.ts +35 -54
  672. package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
  673. package/dist/unstable/cli/CliOutput.js +26 -42
  674. package/dist/unstable/cli/CliOutput.js.map +1 -1
  675. package/dist/unstable/cli/Command.d.ts +713 -115
  676. package/dist/unstable/cli/Command.d.ts.map +1 -1
  677. package/dist/unstable/cli/Command.js +245 -47
  678. package/dist/unstable/cli/Command.js.map +1 -1
  679. package/dist/unstable/cli/Completions.js.map +1 -1
  680. package/dist/unstable/cli/Flag.d.ts +418 -138
  681. package/dist/unstable/cli/Flag.d.ts.map +1 -1
  682. package/dist/unstable/cli/Flag.js +197 -71
  683. package/dist/unstable/cli/Flag.js.map +1 -1
  684. package/dist/unstable/cli/GlobalFlag.d.ts +1 -1
  685. package/dist/unstable/cli/GlobalFlag.js.map +1 -1
  686. package/dist/unstable/cli/HelpDoc.d.ts +12 -4
  687. package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
  688. package/dist/unstable/cli/Param.d.ts +299 -83
  689. package/dist/unstable/cli/Param.d.ts.map +1 -1
  690. package/dist/unstable/cli/Param.js +143 -57
  691. package/dist/unstable/cli/Param.js.map +1 -1
  692. package/dist/unstable/cli/Primitive.d.ts +370 -149
  693. package/dist/unstable/cli/Primitive.d.ts.map +1 -1
  694. package/dist/unstable/cli/Primitive.js +375 -160
  695. package/dist/unstable/cli/Primitive.js.map +1 -1
  696. package/dist/unstable/cli/Prompt.d.ts +23 -14
  697. package/dist/unstable/cli/Prompt.d.ts.map +1 -1
  698. package/dist/unstable/cli/Prompt.js +54 -31
  699. package/dist/unstable/cli/Prompt.js.map +1 -1
  700. package/dist/unstable/cli/index.js.map +1 -1
  701. package/dist/unstable/cli/internal/ansi.js +2 -2
  702. package/dist/unstable/cli/internal/ansi.js.map +1 -1
  703. package/dist/unstable/cli/internal/auto-suggest.js.map +1 -1
  704. package/dist/unstable/cli/internal/command.d.ts +2 -2
  705. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  706. package/dist/unstable/cli/internal/command.js +10 -9
  707. package/dist/unstable/cli/internal/command.js.map +1 -1
  708. package/dist/unstable/cli/internal/completions/bash.js +69 -9
  709. package/dist/unstable/cli/internal/completions/bash.js.map +1 -1
  710. package/dist/unstable/cli/internal/completions/descriptor.js +24 -18
  711. package/dist/unstable/cli/internal/completions/descriptor.js.map +1 -1
  712. package/dist/unstable/cli/internal/completions/fish.js +5 -5
  713. package/dist/unstable/cli/internal/completions/fish.js.map +1 -1
  714. package/dist/unstable/cli/internal/completions/zsh.js.map +1 -1
  715. package/dist/unstable/cli/internal/config.js.map +1 -1
  716. package/dist/unstable/cli/internal/help.d.ts.map +1 -1
  717. package/dist/unstable/cli/internal/help.js +4 -2
  718. package/dist/unstable/cli/internal/help.js.map +1 -1
  719. package/dist/unstable/cli/internal/lexer.js +17 -7
  720. package/dist/unstable/cli/internal/lexer.js.map +1 -1
  721. package/dist/unstable/cli/internal/parser.js +5 -5
  722. package/dist/unstable/cli/internal/parser.js.map +1 -1
  723. package/dist/unstable/cli/internal/wizard.js +2 -2
  724. package/dist/unstable/cli/internal/wizard.js.map +1 -1
  725. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  726. package/dist/unstable/cluster/ClusterError.js +7 -7
  727. package/dist/unstable/cluster/ClusterError.js.map +1 -1
  728. package/dist/unstable/cluster/ClusterMetrics.js.map +1 -1
  729. package/dist/unstable/cluster/ClusterSchema.d.ts +8 -8
  730. package/dist/unstable/cluster/ClusterSchema.js +8 -8
  731. package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
  732. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  733. package/dist/unstable/cluster/ClusterWorkflowEngine.js +6 -2
  734. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  735. package/dist/unstable/cluster/DeliverAt.js.map +1 -1
  736. package/dist/unstable/cluster/Entity.d.ts +10 -10
  737. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  738. package/dist/unstable/cluster/Entity.js +8 -8
  739. package/dist/unstable/cluster/Entity.js.map +1 -1
  740. package/dist/unstable/cluster/EntityAddress.js.map +1 -1
  741. package/dist/unstable/cluster/EntityId.js.map +1 -1
  742. package/dist/unstable/cluster/EntityProxy.d.ts +4 -2
  743. package/dist/unstable/cluster/EntityProxy.d.ts.map +1 -1
  744. package/dist/unstable/cluster/EntityProxy.js +4 -2
  745. package/dist/unstable/cluster/EntityProxy.js.map +1 -1
  746. package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
  747. package/dist/unstable/cluster/EntityResource.d.ts +2 -2
  748. package/dist/unstable/cluster/EntityResource.js +2 -2
  749. package/dist/unstable/cluster/EntityResource.js.map +1 -1
  750. package/dist/unstable/cluster/EntityType.js.map +1 -1
  751. package/dist/unstable/cluster/Envelope.d.ts +3 -3
  752. package/dist/unstable/cluster/Envelope.js +3 -3
  753. package/dist/unstable/cluster/Envelope.js.map +1 -1
  754. package/dist/unstable/cluster/HttpRunner.d.ts +2 -2
  755. package/dist/unstable/cluster/HttpRunner.d.ts.map +1 -1
  756. package/dist/unstable/cluster/HttpRunner.js +6 -4
  757. package/dist/unstable/cluster/HttpRunner.js.map +1 -1
  758. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  759. package/dist/unstable/cluster/MachineId.js.map +1 -1
  760. package/dist/unstable/cluster/Message.d.ts +9 -9
  761. package/dist/unstable/cluster/Message.js +6 -6
  762. package/dist/unstable/cluster/Message.js.map +1 -1
  763. package/dist/unstable/cluster/MessageStorage.d.ts +15 -15
  764. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  765. package/dist/unstable/cluster/MessageStorage.js +13 -6
  766. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  767. package/dist/unstable/cluster/Reply.d.ts +8 -0
  768. package/dist/unstable/cluster/Reply.d.ts.map +1 -1
  769. package/dist/unstable/cluster/Reply.js +16 -4
  770. package/dist/unstable/cluster/Reply.js.map +1 -1
  771. package/dist/unstable/cluster/Runner.js.map +1 -1
  772. package/dist/unstable/cluster/RunnerAddress.js.map +1 -1
  773. package/dist/unstable/cluster/RunnerHealth.d.ts +1 -1
  774. package/dist/unstable/cluster/RunnerHealth.js +1 -1
  775. package/dist/unstable/cluster/RunnerHealth.js.map +1 -1
  776. package/dist/unstable/cluster/RunnerServer.d.ts +2 -1
  777. package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
  778. package/dist/unstable/cluster/RunnerServer.js +18 -16
  779. package/dist/unstable/cluster/RunnerServer.js.map +1 -1
  780. package/dist/unstable/cluster/RunnerStorage.d.ts +3 -4
  781. package/dist/unstable/cluster/RunnerStorage.d.ts.map +1 -1
  782. package/dist/unstable/cluster/RunnerStorage.js +8 -7
  783. package/dist/unstable/cluster/RunnerStorage.js.map +1 -1
  784. package/dist/unstable/cluster/Runners.d.ts +6 -6
  785. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  786. package/dist/unstable/cluster/Runners.js +19 -10
  787. package/dist/unstable/cluster/Runners.js.map +1 -1
  788. package/dist/unstable/cluster/ShardId.js.map +1 -1
  789. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  790. package/dist/unstable/cluster/Sharding.js +25 -6
  791. package/dist/unstable/cluster/Sharding.js.map +1 -1
  792. package/dist/unstable/cluster/ShardingConfig.d.ts +3 -3
  793. package/dist/unstable/cluster/ShardingConfig.js +3 -3
  794. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  795. package/dist/unstable/cluster/ShardingRegistrationEvent.js.map +1 -1
  796. package/dist/unstable/cluster/SingleRunner.js.map +1 -1
  797. package/dist/unstable/cluster/Singleton.js.map +1 -1
  798. package/dist/unstable/cluster/SingletonAddress.d.ts +1 -1
  799. package/dist/unstable/cluster/SingletonAddress.js +1 -1
  800. package/dist/unstable/cluster/SingletonAddress.js.map +1 -1
  801. package/dist/unstable/cluster/Snowflake.d.ts +8 -8
  802. package/dist/unstable/cluster/Snowflake.js +8 -8
  803. package/dist/unstable/cluster/Snowflake.js.map +1 -1
  804. package/dist/unstable/cluster/SocketRunner.js.map +1 -1
  805. package/dist/unstable/cluster/SqlMessageStorage.js +1 -1
  806. package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
  807. package/dist/unstable/cluster/SqlRunnerStorage.d.ts.map +1 -1
  808. package/dist/unstable/cluster/SqlRunnerStorage.js +20 -5
  809. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  810. package/dist/unstable/cluster/TestRunner.js.map +1 -1
  811. package/dist/unstable/cluster/index.js.map +1 -1
  812. package/dist/unstable/cluster/internal/entityManager.js +6 -6
  813. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  814. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  815. package/dist/unstable/cluster/internal/hash.js.map +1 -1
  816. package/dist/unstable/cluster/internal/interruptors.js.map +1 -1
  817. package/dist/unstable/cluster/internal/resourceMap.js +2 -2
  818. package/dist/unstable/cluster/internal/resourceMap.js.map +1 -1
  819. package/dist/unstable/cluster/internal/resourceRef.js +17 -0
  820. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  821. package/dist/unstable/cluster/internal/shardLock.js.map +1 -1
  822. package/dist/unstable/devtools/DevTools.js.map +1 -1
  823. package/dist/unstable/devtools/DevToolsClient.d.ts.map +1 -1
  824. package/dist/unstable/devtools/DevToolsClient.js +7 -2
  825. package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
  826. package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
  827. package/dist/unstable/devtools/DevToolsServer.js.map +1 -1
  828. package/dist/unstable/devtools/index.js.map +1 -1
  829. package/dist/unstable/encoding/Ini.d.ts +20 -0
  830. package/dist/unstable/encoding/Ini.d.ts.map +1 -0
  831. package/dist/unstable/encoding/Ini.js +153 -0
  832. package/dist/unstable/encoding/Ini.js.map +1 -0
  833. package/dist/unstable/encoding/Msgpack.d.ts +2 -1
  834. package/dist/unstable/encoding/Msgpack.d.ts.map +1 -1
  835. package/dist/unstable/encoding/Msgpack.js +27 -15
  836. package/dist/unstable/encoding/Msgpack.js.map +1 -1
  837. package/dist/unstable/encoding/Ndjson.d.ts.map +1 -1
  838. package/dist/unstable/encoding/Ndjson.js +7 -1
  839. package/dist/unstable/encoding/Ndjson.js.map +1 -1
  840. package/dist/unstable/encoding/Sse.d.ts +72 -8
  841. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  842. package/dist/unstable/encoding/Sse.js +72 -31
  843. package/dist/unstable/encoding/Sse.js.map +1 -1
  844. package/dist/unstable/encoding/Toml.d.ts +19 -0
  845. package/dist/unstable/encoding/Toml.d.ts.map +1 -0
  846. package/dist/unstable/encoding/Toml.js +434 -0
  847. package/dist/unstable/encoding/Toml.js.map +1 -0
  848. package/dist/unstable/encoding/Yaml.d.ts +19 -0
  849. package/dist/unstable/encoding/Yaml.d.ts.map +1 -0
  850. package/dist/unstable/encoding/Yaml.js +461 -0
  851. package/dist/unstable/encoding/Yaml.js.map +1 -0
  852. package/dist/unstable/encoding/index.d.ts +12 -0
  853. package/dist/unstable/encoding/index.d.ts.map +1 -1
  854. package/dist/unstable/encoding/index.js +12 -0
  855. package/dist/unstable/encoding/index.js.map +1 -1
  856. package/dist/unstable/eventlog/Event.d.ts +20 -20
  857. package/dist/unstable/eventlog/Event.js.map +1 -1
  858. package/dist/unstable/eventlog/EventGroup.d.ts +4 -4
  859. package/dist/unstable/eventlog/EventGroup.js.map +1 -1
  860. package/dist/unstable/eventlog/EventJournal.d.ts +16 -16
  861. package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
  862. package/dist/unstable/eventlog/EventJournal.js +26 -18
  863. package/dist/unstable/eventlog/EventJournal.js.map +1 -1
  864. package/dist/unstable/eventlog/EventLog.d.ts +3 -3
  865. package/dist/unstable/eventlog/EventLog.js +3 -3
  866. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  867. package/dist/unstable/eventlog/EventLogEncryption.d.ts +1 -1
  868. package/dist/unstable/eventlog/EventLogEncryption.js +1 -1
  869. package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
  870. package/dist/unstable/eventlog/EventLogMessage.d.ts +2 -2
  871. package/dist/unstable/eventlog/EventLogMessage.js +2 -2
  872. package/dist/unstable/eventlog/EventLogMessage.js.map +1 -1
  873. package/dist/unstable/eventlog/EventLogRemote.d.ts +15 -15
  874. package/dist/unstable/eventlog/EventLogRemote.js +1 -1
  875. package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
  876. package/dist/unstable/eventlog/EventLogServer.d.ts +11 -2
  877. package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
  878. package/dist/unstable/eventlog/EventLogServer.js +45 -21
  879. package/dist/unstable/eventlog/EventLogServer.js.map +1 -1
  880. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +4 -4
  881. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  882. package/dist/unstable/eventlog/EventLogServerEncrypted.js +13 -5
  883. package/dist/unstable/eventlog/EventLogServerEncrypted.js.map +1 -1
  884. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +5 -5
  885. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
  886. package/dist/unstable/eventlog/EventLogServerUnencrypted.js +15 -7
  887. package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -1
  888. package/dist/unstable/eventlog/EventLogSessionAuth.d.ts +1 -1
  889. package/dist/unstable/eventlog/EventLogSessionAuth.js +1 -1
  890. package/dist/unstable/eventlog/EventLogSessionAuth.js.map +1 -1
  891. package/dist/unstable/eventlog/SqlEventJournal.d.ts.map +1 -1
  892. package/dist/unstable/eventlog/SqlEventJournal.js +1 -4
  893. package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -1
  894. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
  895. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  896. package/dist/unstable/eventlog/index.js.map +1 -1
  897. package/dist/unstable/eventlog/internal/identityRootSecretDerivation.js.map +1 -1
  898. package/dist/unstable/http/Cookies.d.ts +2 -2
  899. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  900. package/dist/unstable/http/Cookies.js +30 -18
  901. package/dist/unstable/http/Cookies.js.map +1 -1
  902. package/dist/unstable/http/Etag.d.ts +1 -1
  903. package/dist/unstable/http/Etag.js +1 -1
  904. package/dist/unstable/http/Etag.js.map +1 -1
  905. package/dist/unstable/http/FetchHttpClient.d.ts.map +1 -1
  906. package/dist/unstable/http/FetchHttpClient.js.map +1 -1
  907. package/dist/unstable/http/FindMyWay/internal/queryString.d.ts +11 -0
  908. package/dist/unstable/http/FindMyWay/internal/queryString.d.ts.map +1 -0
  909. package/dist/unstable/http/FindMyWay/internal/queryString.js +259 -0
  910. package/dist/unstable/http/FindMyWay/internal/queryString.js.map +1 -0
  911. package/dist/unstable/http/FindMyWay/internal/router.d.ts +2 -0
  912. package/dist/unstable/http/FindMyWay/internal/router.d.ts.map +1 -0
  913. package/dist/unstable/http/FindMyWay/internal/router.js +665 -0
  914. package/dist/unstable/http/FindMyWay/internal/router.js.map +1 -0
  915. package/dist/unstable/http/FindMyWay.d.ts +33 -8
  916. package/dist/unstable/http/FindMyWay.d.ts.map +1 -1
  917. package/dist/unstable/http/FindMyWay.js +4 -7
  918. package/dist/unstable/http/FindMyWay.js.map +1 -1
  919. package/dist/unstable/http/Headers.d.ts +2 -2
  920. package/dist/unstable/http/Headers.js +2 -2
  921. package/dist/unstable/http/Headers.js.map +1 -1
  922. package/dist/unstable/http/HttpBody.d.ts +5 -3
  923. package/dist/unstable/http/HttpBody.d.ts.map +1 -1
  924. package/dist/unstable/http/HttpBody.js +11 -5
  925. package/dist/unstable/http/HttpBody.js.map +1 -1
  926. package/dist/unstable/http/HttpClient.d.ts +51 -44
  927. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  928. package/dist/unstable/http/HttpClient.js +46 -17
  929. package/dist/unstable/http/HttpClient.js.map +1 -1
  930. package/dist/unstable/http/HttpClientError.js +1 -1
  931. package/dist/unstable/http/HttpClientError.js.map +1 -1
  932. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  933. package/dist/unstable/http/HttpClientRequest.js +2 -12
  934. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  935. package/dist/unstable/http/HttpClientResponse.d.ts +4 -4
  936. package/dist/unstable/http/HttpClientResponse.js +3 -18
  937. package/dist/unstable/http/HttpClientResponse.js.map +1 -1
  938. package/dist/unstable/http/HttpEffect.d.ts +6 -6
  939. package/dist/unstable/http/HttpEffect.js +3 -3
  940. package/dist/unstable/http/HttpEffect.js.map +1 -1
  941. package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
  942. package/dist/unstable/http/HttpMethod.d.ts +6 -9
  943. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  944. package/dist/unstable/http/HttpMethod.js +6 -9
  945. package/dist/unstable/http/HttpMethod.js.map +1 -1
  946. package/dist/unstable/http/HttpMiddleware.d.ts +75 -9
  947. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  948. package/dist/unstable/http/HttpMiddleware.js +164 -39
  949. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  950. package/dist/unstable/http/HttpPlatform.d.ts +76 -0
  951. package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
  952. package/dist/unstable/http/HttpPlatform.js +53 -3
  953. package/dist/unstable/http/HttpPlatform.js.map +1 -1
  954. package/dist/unstable/http/HttpRouter.d.ts +88 -89
  955. package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
  956. package/dist/unstable/http/HttpRouter.js +78 -79
  957. package/dist/unstable/http/HttpRouter.js.map +1 -1
  958. package/dist/unstable/http/HttpServer.d.ts +13 -13
  959. package/dist/unstable/http/HttpServer.js +6 -6
  960. package/dist/unstable/http/HttpServer.js.map +1 -1
  961. package/dist/unstable/http/HttpServerError.d.ts +2 -2
  962. package/dist/unstable/http/HttpServerError.js +2 -2
  963. package/dist/unstable/http/HttpServerError.js.map +1 -1
  964. package/dist/unstable/http/HttpServerRequest.d.ts +4 -4
  965. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  966. package/dist/unstable/http/HttpServerRequest.js +11 -10
  967. package/dist/unstable/http/HttpServerRequest.js.map +1 -1
  968. package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
  969. package/dist/unstable/http/HttpServerResponse.d.ts +22 -0
  970. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  971. package/dist/unstable/http/HttpServerResponse.js +17 -5
  972. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  973. package/dist/unstable/http/HttpStaticServer.d.ts +35 -7
  974. package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -1
  975. package/dist/unstable/http/HttpStaticServer.js +35 -7
  976. package/dist/unstable/http/HttpStaticServer.js.map +1 -1
  977. package/dist/unstable/http/HttpTraceContext.js.map +1 -1
  978. package/dist/unstable/http/Multipart.d.ts +7 -7
  979. package/dist/unstable/http/Multipart.d.ts.map +1 -1
  980. package/dist/unstable/http/Multipart.js +14 -7
  981. package/dist/unstable/http/Multipart.js.map +1 -1
  982. package/dist/unstable/http/MultipartParser/HeadersParser.d.ts +53 -0
  983. package/dist/unstable/http/MultipartParser/HeadersParser.d.ts.map +1 -0
  984. package/dist/unstable/http/MultipartParser/HeadersParser.js +14 -0
  985. package/dist/unstable/http/MultipartParser/HeadersParser.js.map +1 -0
  986. package/dist/unstable/http/MultipartParser/Search.d.ts +11 -0
  987. package/dist/unstable/http/MultipartParser/Search.d.ts.map +1 -0
  988. package/dist/unstable/http/MultipartParser/Search.js +14 -0
  989. package/dist/unstable/http/MultipartParser/Search.js.map +1 -0
  990. package/dist/unstable/http/MultipartParser/internal/contentType.d.ts +5 -0
  991. package/dist/unstable/http/MultipartParser/internal/contentType.d.ts.map +1 -0
  992. package/dist/unstable/http/MultipartParser/internal/contentType.js +82 -0
  993. package/dist/unstable/http/MultipartParser/internal/contentType.js.map +1 -0
  994. package/dist/unstable/http/MultipartParser/internal/headers.d.ts +3 -0
  995. package/dist/unstable/http/MultipartParser/internal/headers.d.ts.map +1 -0
  996. package/dist/unstable/http/MultipartParser/internal/headers.js +194 -0
  997. package/dist/unstable/http/MultipartParser/internal/headers.js.map +1 -0
  998. package/dist/unstable/http/MultipartParser/internal/multipart.d.ts +8 -0
  999. package/dist/unstable/http/MultipartParser/internal/multipart.d.ts.map +1 -0
  1000. package/dist/unstable/http/MultipartParser/internal/multipart.js +226 -0
  1001. package/dist/unstable/http/MultipartParser/internal/multipart.js.map +1 -0
  1002. package/dist/unstable/http/MultipartParser/internal/search.d.ts +5 -0
  1003. package/dist/unstable/http/MultipartParser/internal/search.d.ts.map +1 -0
  1004. package/dist/unstable/http/MultipartParser/internal/search.js +120 -0
  1005. package/dist/unstable/http/MultipartParser/internal/search.js.map +1 -0
  1006. package/dist/unstable/http/MultipartParser.d.ts +98 -0
  1007. package/dist/unstable/http/MultipartParser.d.ts.map +1 -0
  1008. package/dist/unstable/http/MultipartParser.js +23 -0
  1009. package/dist/unstable/http/MultipartParser.js.map +1 -0
  1010. package/dist/unstable/http/Template.d.ts.map +1 -1
  1011. package/dist/unstable/http/Template.js +2 -2
  1012. package/dist/unstable/http/Template.js.map +1 -1
  1013. package/dist/unstable/http/Url.d.ts +33 -63
  1014. package/dist/unstable/http/Url.d.ts.map +1 -1
  1015. package/dist/unstable/http/Url.js +14 -28
  1016. package/dist/unstable/http/Url.js.map +1 -1
  1017. package/dist/unstable/http/UrlParams.d.ts +10 -18
  1018. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  1019. package/dist/unstable/http/UrlParams.js +9 -17
  1020. package/dist/unstable/http/UrlParams.js.map +1 -1
  1021. package/dist/unstable/http/index.d.ts +1 -1
  1022. package/dist/unstable/http/index.d.ts.map +1 -1
  1023. package/dist/unstable/http/index.js +1 -1
  1024. package/dist/unstable/http/index.js.map +1 -1
  1025. package/dist/unstable/http/internal/compression.d.ts +2 -0
  1026. package/dist/unstable/http/internal/compression.d.ts.map +1 -0
  1027. package/dist/unstable/http/internal/compression.js +155 -0
  1028. package/dist/unstable/http/internal/compression.js.map +1 -0
  1029. package/dist/unstable/http/internal/httpBody.d.ts +2 -0
  1030. package/dist/unstable/http/internal/httpBody.d.ts.map +1 -0
  1031. package/dist/unstable/http/internal/httpBody.js +10 -0
  1032. package/dist/unstable/http/internal/httpBody.js.map +1 -0
  1033. package/dist/unstable/http/internal/preResponseHandler.js.map +1 -1
  1034. package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
  1035. package/dist/unstable/httpapi/HttpApi.js +5 -5
  1036. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  1037. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +1 -1
  1038. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  1039. package/dist/unstable/httpapi/HttpApiBuilder.js +78 -26
  1040. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  1041. package/dist/unstable/httpapi/HttpApiClient.d.ts +4 -5
  1042. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  1043. package/dist/unstable/httpapi/HttpApiClient.js +76 -38
  1044. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  1045. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +48 -46
  1046. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  1047. package/dist/unstable/httpapi/HttpApiEndpoint.js +73 -16
  1048. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  1049. package/dist/unstable/httpapi/HttpApiError.d.ts +18 -18
  1050. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  1051. package/dist/unstable/httpapi/HttpApiError.js +30 -30
  1052. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  1053. package/dist/unstable/httpapi/HttpApiGroup.d.ts +15 -15
  1054. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  1055. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +71 -24
  1056. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  1057. package/dist/unstable/httpapi/HttpApiMiddleware.js +57 -10
  1058. package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
  1059. package/dist/unstable/httpapi/HttpApiScalar.d.ts +0 -12
  1060. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  1061. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  1062. package/dist/unstable/httpapi/HttpApiSchema.d.ts +225 -6
  1063. package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
  1064. package/dist/unstable/httpapi/HttpApiSchema.js +174 -4
  1065. package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
  1066. package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
  1067. package/dist/unstable/httpapi/HttpApiSwagger.js.map +1 -1
  1068. package/dist/unstable/httpapi/HttpApiTest.js.map +1 -1
  1069. package/dist/unstable/httpapi/OpenApi.d.ts +21 -13
  1070. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  1071. package/dist/unstable/httpapi/OpenApi.js +58 -31
  1072. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  1073. package/dist/unstable/httpapi/index.js.map +1 -1
  1074. package/dist/unstable/httpapi/internal/html.js.map +1 -1
  1075. package/dist/unstable/httpapi/internal/httpApiScalar.js.map +1 -1
  1076. package/dist/unstable/httpapi/internal/httpApiSwagger.js.map +1 -1
  1077. package/dist/unstable/httpapi/internal/mediaType.js.map +1 -1
  1078. package/dist/unstable/observability/Otlp.js.map +1 -1
  1079. package/dist/unstable/observability/OtlpExporter.d.ts +13 -15
  1080. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  1081. package/dist/unstable/observability/OtlpExporter.js +19 -5
  1082. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  1083. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  1084. package/dist/unstable/observability/OtlpLogger.js +2 -2
  1085. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  1086. package/dist/unstable/observability/OtlpMetrics.d.ts +6 -3
  1087. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  1088. package/dist/unstable/observability/OtlpMetrics.js +28 -15
  1089. package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
  1090. package/dist/unstable/observability/OtlpResource.d.ts +16 -7
  1091. package/dist/unstable/observability/OtlpResource.d.ts.map +1 -1
  1092. package/dist/unstable/observability/OtlpResource.js +21 -12
  1093. package/dist/unstable/observability/OtlpResource.js.map +1 -1
  1094. package/dist/unstable/observability/OtlpSerialization.js.map +1 -1
  1095. package/dist/unstable/observability/OtlpTracer.js +1 -1
  1096. package/dist/unstable/observability/OtlpTracer.js.map +1 -1
  1097. package/dist/unstable/observability/PrometheusMetrics.d.ts +13 -4
  1098. package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
  1099. package/dist/unstable/observability/PrometheusMetrics.js +10 -3
  1100. package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
  1101. package/dist/unstable/observability/index.js.map +1 -1
  1102. package/dist/unstable/observability/internal/otlpEnv.js +1 -1
  1103. package/dist/unstable/observability/internal/otlpEnv.js.map +1 -1
  1104. package/dist/unstable/observability/internal/otlpProtobuf.js.map +1 -1
  1105. package/dist/unstable/observability/internal/protobuf.js +3 -0
  1106. package/dist/unstable/observability/internal/protobuf.js.map +1 -1
  1107. package/dist/unstable/persistence/KeyValueStore.d.ts +8 -3
  1108. package/dist/unstable/persistence/KeyValueStore.d.ts.map +1 -1
  1109. package/dist/unstable/persistence/KeyValueStore.js +22 -13
  1110. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  1111. package/dist/unstable/persistence/Persistable.d.ts +8 -8
  1112. package/dist/unstable/persistence/Persistable.js.map +1 -1
  1113. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  1114. package/dist/unstable/persistence/PersistedQueue.d.ts +6 -6
  1115. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  1116. package/dist/unstable/persistence/PersistedQueue.js +15 -15
  1117. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  1118. package/dist/unstable/persistence/Persistence.d.ts +3 -3
  1119. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  1120. package/dist/unstable/persistence/Persistence.js +108 -22
  1121. package/dist/unstable/persistence/Persistence.js.map +1 -1
  1122. package/dist/unstable/persistence/RateLimiter.d.ts +45 -24
  1123. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  1124. package/dist/unstable/persistence/RateLimiter.js +29 -45
  1125. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  1126. package/dist/unstable/persistence/Redis.d.ts +2 -2
  1127. package/dist/unstable/persistence/Redis.js +2 -2
  1128. package/dist/unstable/persistence/Redis.js.map +1 -1
  1129. package/dist/unstable/persistence/index.js.map +1 -1
  1130. package/dist/unstable/process/ChildProcess.d.ts +64 -21
  1131. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  1132. package/dist/unstable/process/ChildProcess.js +14 -5
  1133. package/dist/unstable/process/ChildProcess.js.map +1 -1
  1134. package/dist/unstable/process/ChildProcessSpawner.d.ts +21 -10
  1135. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  1136. package/dist/unstable/process/ChildProcessSpawner.js +1 -1
  1137. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  1138. package/dist/unstable/process/index.js.map +1 -1
  1139. package/dist/unstable/reactivity/AsyncResult.d.ts +8 -8
  1140. package/dist/unstable/reactivity/AsyncResult.d.ts.map +1 -1
  1141. package/dist/unstable/reactivity/AsyncResult.js +10 -10
  1142. package/dist/unstable/reactivity/AsyncResult.js.map +1 -1
  1143. package/dist/unstable/reactivity/Atom.d.ts +25 -22
  1144. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  1145. package/dist/unstable/reactivity/Atom.js +14 -13
  1146. package/dist/unstable/reactivity/Atom.js.map +1 -1
  1147. package/dist/unstable/reactivity/AtomHttpApi.d.ts +1 -1
  1148. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  1149. package/dist/unstable/reactivity/AtomHttpApi.js +4 -1
  1150. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  1151. package/dist/unstable/reactivity/AtomRef.js.map +1 -1
  1152. package/dist/unstable/reactivity/AtomRegistry.js +24 -3
  1153. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  1154. package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
  1155. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  1156. package/dist/unstable/reactivity/AtomRpc.js +4 -1
  1157. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  1158. package/dist/unstable/reactivity/Hydration.d.ts +1 -1
  1159. package/dist/unstable/reactivity/Hydration.js +1 -1
  1160. package/dist/unstable/reactivity/Hydration.js.map +1 -1
  1161. package/dist/unstable/reactivity/Reactivity.js.map +1 -1
  1162. package/dist/unstable/reactivity/index.js.map +1 -1
  1163. package/dist/unstable/rpc/Rpc.d.ts +35 -33
  1164. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  1165. package/dist/unstable/rpc/Rpc.js +4 -2
  1166. package/dist/unstable/rpc/Rpc.js.map +1 -1
  1167. package/dist/unstable/rpc/RpcClient.d.ts +26 -12
  1168. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  1169. package/dist/unstable/rpc/RpcClient.js +30 -20
  1170. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  1171. package/dist/unstable/rpc/RpcClientError.js +2 -2
  1172. package/dist/unstable/rpc/RpcClientError.js.map +1 -1
  1173. package/dist/unstable/rpc/RpcGroup.d.ts +8 -8
  1174. package/dist/unstable/rpc/RpcGroup.js +1 -1
  1175. package/dist/unstable/rpc/RpcGroup.js.map +1 -1
  1176. package/dist/unstable/rpc/RpcMessage.d.ts +31 -30
  1177. package/dist/unstable/rpc/RpcMessage.d.ts.map +1 -1
  1178. package/dist/unstable/rpc/RpcMessage.js +6 -6
  1179. package/dist/unstable/rpc/RpcMessage.js.map +1 -1
  1180. package/dist/unstable/rpc/RpcMiddleware.d.ts +10 -10
  1181. package/dist/unstable/rpc/RpcMiddleware.js +1 -1
  1182. package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
  1183. package/dist/unstable/rpc/RpcSchema.d.ts +4 -4
  1184. package/dist/unstable/rpc/RpcSchema.js +3 -3
  1185. package/dist/unstable/rpc/RpcSchema.js.map +1 -1
  1186. package/dist/unstable/rpc/RpcSerialization.d.ts +58 -7
  1187. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  1188. package/dist/unstable/rpc/RpcSerialization.js +177 -96
  1189. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  1190. package/dist/unstable/rpc/RpcServer.d.ts +13 -13
  1191. package/dist/unstable/rpc/RpcServer.js +17 -13
  1192. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  1193. package/dist/unstable/rpc/RpcTest.js.map +1 -1
  1194. package/dist/unstable/rpc/RpcWorker.d.ts +5 -5
  1195. package/dist/unstable/rpc/RpcWorker.js +4 -4
  1196. package/dist/unstable/rpc/RpcWorker.js.map +1 -1
  1197. package/dist/unstable/rpc/Utils.js.map +1 -1
  1198. package/dist/unstable/rpc/index.js.map +1 -1
  1199. package/dist/unstable/schema/Model.d.ts +53 -51
  1200. package/dist/unstable/schema/Model.d.ts.map +1 -1
  1201. package/dist/unstable/schema/Model.js +35 -33
  1202. package/dist/unstable/schema/Model.js.map +1 -1
  1203. package/dist/unstable/schema/VariantSchema.d.ts +10 -10
  1204. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  1205. package/dist/unstable/schema/VariantSchema.js +19 -11
  1206. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  1207. package/dist/unstable/schema/index.js.map +1 -1
  1208. package/dist/unstable/socket/Socket.d.ts +11 -3
  1209. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  1210. package/dist/unstable/socket/Socket.js +37 -16
  1211. package/dist/unstable/socket/Socket.js.map +1 -1
  1212. package/dist/unstable/socket/SocketServer.js.map +1 -1
  1213. package/dist/unstable/socket/index.js.map +1 -1
  1214. package/dist/unstable/sql/Migrator.js.map +1 -1
  1215. package/dist/unstable/sql/SqlClient.d.ts +1 -1
  1216. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  1217. package/dist/unstable/sql/SqlClient.js +8 -4
  1218. package/dist/unstable/sql/SqlClient.js.map +1 -1
  1219. package/dist/unstable/sql/SqlConnection.js.map +1 -1
  1220. package/dist/unstable/sql/SqlError.js +13 -13
  1221. package/dist/unstable/sql/SqlError.js.map +1 -1
  1222. package/dist/unstable/sql/SqlModel.d.ts +2 -2
  1223. package/dist/unstable/sql/SqlModel.js +2 -2
  1224. package/dist/unstable/sql/SqlModel.js.map +1 -1
  1225. package/dist/unstable/sql/SqlResolver.d.ts +5 -5
  1226. package/dist/unstable/sql/SqlResolver.js +10 -8
  1227. package/dist/unstable/sql/SqlResolver.js.map +1 -1
  1228. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  1229. package/dist/unstable/sql/SqlStream.js.map +1 -1
  1230. package/dist/unstable/sql/Statement.d.ts +6 -6
  1231. package/dist/unstable/sql/Statement.d.ts.map +1 -1
  1232. package/dist/unstable/sql/Statement.js +23 -21
  1233. package/dist/unstable/sql/Statement.js.map +1 -1
  1234. package/dist/unstable/sql/index.js.map +1 -1
  1235. package/dist/unstable/workers/Transferable.d.ts +1 -1
  1236. package/dist/unstable/workers/Transferable.js +1 -1
  1237. package/dist/unstable/workers/Transferable.js.map +1 -1
  1238. package/dist/unstable/workers/Worker.d.ts +2 -2
  1239. package/dist/unstable/workers/Worker.js +2 -2
  1240. package/dist/unstable/workers/Worker.js.map +1 -1
  1241. package/dist/unstable/workers/WorkerError.d.ts +7 -7
  1242. package/dist/unstable/workers/WorkerError.js +11 -11
  1243. package/dist/unstable/workers/WorkerError.js.map +1 -1
  1244. package/dist/unstable/workers/WorkerRunner.d.ts +1 -1
  1245. package/dist/unstable/workers/WorkerRunner.js +1 -1
  1246. package/dist/unstable/workers/WorkerRunner.js.map +1 -1
  1247. package/dist/unstable/workers/index.js.map +1 -1
  1248. package/dist/unstable/workflow/Activity.d.ts +2 -2
  1249. package/dist/unstable/workflow/Activity.js +2 -2
  1250. package/dist/unstable/workflow/Activity.js.map +1 -1
  1251. package/dist/unstable/workflow/DurableClock.d.ts +1 -1
  1252. package/dist/unstable/workflow/DurableClock.js +1 -1
  1253. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  1254. package/dist/unstable/workflow/DurableDeferred.d.ts +10 -10
  1255. package/dist/unstable/workflow/DurableDeferred.js +5 -5
  1256. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  1257. package/dist/unstable/workflow/DurableQueue.d.ts +22 -20
  1258. package/dist/unstable/workflow/DurableQueue.d.ts.map +1 -1
  1259. package/dist/unstable/workflow/DurableQueue.js +22 -20
  1260. package/dist/unstable/workflow/DurableQueue.js.map +1 -1
  1261. package/dist/unstable/workflow/Workflow.d.ts +21 -21
  1262. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  1263. package/dist/unstable/workflow/Workflow.js +13 -14
  1264. package/dist/unstable/workflow/Workflow.js.map +1 -1
  1265. package/dist/unstable/workflow/WorkflowEngine.d.ts +2 -2
  1266. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  1267. package/dist/unstable/workflow/WorkflowEngine.js +3 -3
  1268. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  1269. package/dist/unstable/workflow/WorkflowProxy.d.ts +4 -2
  1270. package/dist/unstable/workflow/WorkflowProxy.d.ts.map +1 -1
  1271. package/dist/unstable/workflow/WorkflowProxy.js +4 -2
  1272. package/dist/unstable/workflow/WorkflowProxy.js.map +1 -1
  1273. package/dist/unstable/workflow/WorkflowProxyServer.js.map +1 -1
  1274. package/dist/unstable/workflow/index.js.map +1 -1
  1275. package/dist/unstable/workflow/internal/crypto.js.map +1 -1
  1276. package/package.json +6 -13
  1277. package/src/Array.ts +982 -1045
  1278. package/src/BigDecimal.ts +433 -756
  1279. package/src/BigInt.ts +213 -269
  1280. package/src/Boolean.ts +146 -188
  1281. package/src/Cache.ts +410 -256
  1282. package/src/Cause.ts +167 -277
  1283. package/src/Channel.ts +892 -817
  1284. package/src/ChannelSchema.ts +1 -1
  1285. package/src/Chunk.ts +841 -1181
  1286. package/src/Clock.ts +181 -49
  1287. package/src/Combiner.ts +20 -33
  1288. package/src/Config.ts +636 -332
  1289. package/src/ConfigProvider.ts +218 -121
  1290. package/src/Console.ts +289 -39
  1291. package/src/Context.ts +322 -381
  1292. package/src/Cron.ts +68 -77
  1293. package/src/Crypto.ts +30 -23
  1294. package/src/Data.ts +60 -80
  1295. package/src/DateTime.ts +564 -660
  1296. package/src/Deferred.ts +253 -256
  1297. package/src/Duration.ts +232 -310
  1298. package/src/Effect.ts +3034 -3296
  1299. package/src/Encoding.ts +22 -40
  1300. package/src/Equal.ts +59 -41
  1301. package/src/Equivalence.ts +103 -105
  1302. package/src/ErrorReporter.ts +51 -27
  1303. package/src/ExecutionPlan.ts +91 -56
  1304. package/src/Exit.ts +116 -192
  1305. package/src/Fiber.ts +81 -148
  1306. package/src/FiberHandle.ts +152 -105
  1307. package/src/FiberMap.ts +225 -174
  1308. package/src/FiberSet.ts +125 -83
  1309. package/src/FileSystem.ts +156 -264
  1310. package/src/Filter.ts +61 -33
  1311. package/src/Formatter.ts +54 -56
  1312. package/src/Function.ts +82 -151
  1313. package/src/Graph.ts +416 -770
  1314. package/src/HKT.ts +12 -6
  1315. package/src/Hash.ts +52 -83
  1316. package/src/HashMap.ts +319 -411
  1317. package/src/HashRing.ts +1 -0
  1318. package/src/HashSet.ts +177 -284
  1319. package/src/Inspectable.ts +12 -12
  1320. package/src/Iterable.ts +631 -796
  1321. package/src/JsonPatch.ts +58 -112
  1322. package/src/JsonPointer.ts +8 -8
  1323. package/src/JsonSchema.ts +402 -244
  1324. package/src/Latch.ts +23 -35
  1325. package/src/Layer.ts +366 -265
  1326. package/src/LayerMap.ts +49 -29
  1327. package/src/LayerRef.ts +6 -2
  1328. package/src/LogLevel.ts +114 -214
  1329. package/src/Logger.ts +344 -697
  1330. package/src/ManagedRuntime.ts +7 -5
  1331. package/src/Match.ts +217 -252
  1332. package/src/Metric.ts +516 -1089
  1333. package/src/MutableHashMap.ts +218 -255
  1334. package/src/MutableHashSet.ts +84 -89
  1335. package/src/MutableList.ts +73 -370
  1336. package/src/MutableRef.ts +420 -243
  1337. package/src/Newtype.ts +21 -14
  1338. package/src/NonEmptyIterable.ts +7 -137
  1339. package/src/Number.ts +196 -233
  1340. package/src/Optic.ts +243 -383
  1341. package/src/Option.ts +447 -812
  1342. package/src/Order.ts +109 -109
  1343. package/src/Ordering.ts +20 -23
  1344. package/src/Path.ts +38 -41
  1345. package/src/Pipeable.ts +6 -5
  1346. package/src/PlatformError.ts +4 -4
  1347. package/src/Pool.ts +4 -2
  1348. package/src/Predicate.ts +200 -181
  1349. package/src/PrimaryKey.ts +7 -7
  1350. package/src/PubSub.ts +526 -552
  1351. package/src/Pull.ts +24 -18
  1352. package/src/Queue.ts +200 -159
  1353. package/src/Random.ts +49 -74
  1354. package/src/RcMap.ts +121 -63
  1355. package/src/RcRef.ts +24 -13
  1356. package/src/Record.ts +291 -488
  1357. package/src/Redactable.ts +10 -3
  1358. package/src/Redacted.ts +25 -25
  1359. package/src/Reducer.ts +8 -15
  1360. package/src/Ref.ts +221 -361
  1361. package/src/References.ts +102 -168
  1362. package/src/RegExp.ts +10 -14
  1363. package/src/Request.ts +31 -21
  1364. package/src/RequestResolver.ts +202 -91
  1365. package/src/Result.ts +312 -484
  1366. package/src/Runtime.ts +50 -75
  1367. package/src/Schedule.ts +311 -1737
  1368. package/src/Scheduler.ts +20 -7
  1369. package/src/Schema.ts +766 -786
  1370. package/src/SchemaAST.ts +522 -382
  1371. package/src/SchemaError.ts +7 -6
  1372. package/src/SchemaGetter.ts +242 -190
  1373. package/src/SchemaIssue.ts +89 -275
  1374. package/src/SchemaParser.ts +217 -124
  1375. package/src/SchemaRepresentation.ts +22 -40
  1376. package/src/SchemaTransformation.ts +129 -88
  1377. package/src/Scope.ts +123 -151
  1378. package/src/ScopedCache.ts +1 -1
  1379. package/src/ScopedRef.ts +4 -4
  1380. package/src/Semaphore.ts +152 -51
  1381. package/src/Sink.ts +129 -114
  1382. package/src/Stdio.ts +1 -1
  1383. package/src/Stream.ts +2679 -3133
  1384. package/src/String.ts +275 -312
  1385. package/src/Struct.ts +109 -114
  1386. package/src/SubscriptionRef.ts +284 -252
  1387. package/src/Symbol.ts +3 -3
  1388. package/src/SynchronizedRef.ts +1 -1
  1389. package/src/Terminal.ts +3 -3
  1390. package/src/Tracer.ts +102 -55
  1391. package/src/Trie.ts +287 -679
  1392. package/src/Tuple.ts +99 -131
  1393. package/src/TxChunk.ts +201 -121
  1394. package/src/TxDeferred.ts +62 -46
  1395. package/src/TxHashMap.ts +645 -799
  1396. package/src/TxHashSet.ts +443 -356
  1397. package/src/TxPriorityQueue.ts +130 -98
  1398. package/src/TxPubSub.ts +107 -80
  1399. package/src/TxQueue.ts +214 -183
  1400. package/src/TxReentrantLock.ts +136 -101
  1401. package/src/TxRef.ts +51 -32
  1402. package/src/TxSemaphore.ts +129 -95
  1403. package/src/TxSubscriptionRef.ts +97 -70
  1404. package/src/Types.ts +126 -67
  1405. package/src/Unify.ts +45 -65
  1406. package/src/Utils.ts +23 -16
  1407. package/src/internal/core.ts +2 -2
  1408. package/src/internal/dateTime.ts +7 -1
  1409. package/src/internal/effect.ts +93 -48
  1410. package/src/internal/executionPlan.ts +105 -10
  1411. package/src/internal/hashMap.ts +20 -14
  1412. package/src/internal/matcher.ts +2 -2
  1413. package/src/internal/persistence.ts +2 -0
  1414. package/src/internal/references.ts +3 -2
  1415. package/src/internal/schedule.ts +4 -4
  1416. package/src/internal/schema/annotations.ts +3 -0
  1417. package/src/internal/schema/fromJsonSchemaDocument.ts +15 -13
  1418. package/src/internal/schema/fromRepresentation.ts +10 -16
  1419. package/src/internal/schema/parser.ts +22 -0
  1420. package/src/internal/schema/toArbitrary.ts +3 -1
  1421. package/src/internal/schema/toJsonSchemaDocument.ts +60 -6
  1422. package/src/internal/schema/toRepresentation.ts +104 -119
  1423. package/src/internal/trie.ts +21 -12
  1424. package/src/testing/FastCheck.ts +8 -7
  1425. package/src/testing/TestClock.ts +85 -31
  1426. package/src/testing/TestConsole.ts +32 -31
  1427. package/src/testing/TestSchema.ts +30 -30
  1428. package/src/unstable/ai/AiError.ts +114 -137
  1429. package/src/unstable/ai/AnthropicStructuredOutput.ts +1 -1
  1430. package/src/unstable/ai/Chat.ts +133 -98
  1431. package/src/unstable/ai/IdGenerator.ts +32 -28
  1432. package/src/unstable/ai/LanguageModel.ts +111 -69
  1433. package/src/unstable/ai/McpProtocol.ts +48 -0
  1434. package/src/unstable/ai/McpSchema.ts +77 -66
  1435. package/src/unstable/ai/McpServer.ts +931 -305
  1436. package/src/unstable/ai/Model.ts +9 -20
  1437. package/src/unstable/ai/OpenAiStructuredOutput.ts +1 -1
  1438. package/src/unstable/ai/Prompt.ts +166 -49
  1439. package/src/unstable/ai/Response.ts +28 -14
  1440. package/src/unstable/ai/Telemetry.ts +46 -13
  1441. package/src/unstable/ai/Tokenizer.ts +14 -3
  1442. package/src/unstable/ai/Tool.ts +59 -44
  1443. package/src/unstable/ai/Toolkit.ts +26 -8
  1444. package/src/unstable/ai/index.ts +5 -0
  1445. package/src/unstable/ai/internal/mcpProtocol.ts +85 -0
  1446. package/src/unstable/ai/internal/mcpProtocolRegistry.ts +70 -0
  1447. package/src/unstable/ai/internal/structured-output.ts +13 -18
  1448. package/src/unstable/cli/Argument.ts +273 -69
  1449. package/src/unstable/cli/CliError.ts +79 -86
  1450. package/src/unstable/cli/CliOutput.ts +44 -58
  1451. package/src/unstable/cli/Command.ts +716 -116
  1452. package/src/unstable/cli/Flag.ts +418 -138
  1453. package/src/unstable/cli/GlobalFlag.ts +1 -1
  1454. package/src/unstable/cli/HelpDoc.ts +12 -4
  1455. package/src/unstable/cli/Param.ts +333 -97
  1456. package/src/unstable/cli/Primitive.ts +381 -154
  1457. package/src/unstable/cli/Prompt.ts +64 -34
  1458. package/src/unstable/cli/internal/ansi.ts +2 -2
  1459. package/src/unstable/cli/internal/command.ts +15 -10
  1460. package/src/unstable/cli/internal/completions/bash.ts +59 -9
  1461. package/src/unstable/cli/internal/completions/descriptor.ts +14 -20
  1462. package/src/unstable/cli/internal/completions/fish.ts +5 -7
  1463. package/src/unstable/cli/internal/help.ts +4 -2
  1464. package/src/unstable/cli/internal/lexer.ts +8 -2
  1465. package/src/unstable/cli/internal/parser.ts +5 -5
  1466. package/src/unstable/cli/internal/wizard.ts +2 -2
  1467. package/src/unstable/cluster/ClusterError.ts +7 -7
  1468. package/src/unstable/cluster/ClusterSchema.ts +8 -8
  1469. package/src/unstable/cluster/ClusterWorkflowEngine.ts +9 -2
  1470. package/src/unstable/cluster/Entity.ts +15 -16
  1471. package/src/unstable/cluster/EntityProxy.ts +4 -2
  1472. package/src/unstable/cluster/EntityResource.ts +2 -2
  1473. package/src/unstable/cluster/Envelope.ts +3 -3
  1474. package/src/unstable/cluster/HttpRunner.ts +6 -4
  1475. package/src/unstable/cluster/Message.ts +9 -9
  1476. package/src/unstable/cluster/MessageStorage.ts +24 -20
  1477. package/src/unstable/cluster/Reply.ts +25 -6
  1478. package/src/unstable/cluster/RunnerHealth.ts +1 -1
  1479. package/src/unstable/cluster/RunnerServer.ts +35 -8
  1480. package/src/unstable/cluster/RunnerStorage.ts +11 -9
  1481. package/src/unstable/cluster/Runners.ts +23 -12
  1482. package/src/unstable/cluster/Sharding.ts +42 -15
  1483. package/src/unstable/cluster/ShardingConfig.ts +3 -3
  1484. package/src/unstable/cluster/SingletonAddress.ts +1 -1
  1485. package/src/unstable/cluster/Snowflake.ts +8 -8
  1486. package/src/unstable/cluster/SqlMessageStorage.ts +1 -1
  1487. package/src/unstable/cluster/SqlRunnerStorage.ts +21 -5
  1488. package/src/unstable/cluster/internal/entityManager.ts +12 -16
  1489. package/src/unstable/cluster/internal/resourceMap.ts +5 -2
  1490. package/src/unstable/cluster/internal/resourceRef.ts +27 -5
  1491. package/src/unstable/devtools/DevToolsClient.ts +3 -2
  1492. package/src/unstable/encoding/Ini.ts +174 -0
  1493. package/src/unstable/encoding/Msgpack.ts +53 -36
  1494. package/src/unstable/encoding/Ndjson.ts +9 -1
  1495. package/src/unstable/encoding/Sse.ts +109 -37
  1496. package/src/unstable/encoding/Toml.ts +504 -0
  1497. package/src/unstable/encoding/Yaml.ts +541 -0
  1498. package/src/unstable/encoding/index.ts +15 -0
  1499. package/src/unstable/eventlog/Event.ts +20 -20
  1500. package/src/unstable/eventlog/EventGroup.ts +4 -4
  1501. package/src/unstable/eventlog/EventJournal.ts +29 -21
  1502. package/src/unstable/eventlog/EventLog.ts +3 -3
  1503. package/src/unstable/eventlog/EventLogEncryption.ts +1 -1
  1504. package/src/unstable/eventlog/EventLogMessage.ts +3 -3
  1505. package/src/unstable/eventlog/EventLogRemote.ts +1 -1
  1506. package/src/unstable/eventlog/EventLogServer.ts +41 -7
  1507. package/src/unstable/eventlog/EventLogServerEncrypted.ts +13 -5
  1508. package/src/unstable/eventlog/EventLogServerUnencrypted.ts +15 -7
  1509. package/src/unstable/eventlog/EventLogSessionAuth.ts +1 -1
  1510. package/src/unstable/eventlog/SqlEventJournal.ts +6 -4
  1511. package/src/unstable/http/Cookies.ts +35 -21
  1512. package/src/unstable/http/Etag.ts +1 -1
  1513. package/src/unstable/http/FetchHttpClient.ts +3 -1
  1514. package/src/unstable/http/FindMyWay/internal/queryString.ts +420 -0
  1515. package/src/unstable/http/FindMyWay/internal/router.ts +950 -0
  1516. package/src/unstable/http/FindMyWay.ts +65 -6
  1517. package/src/unstable/http/Headers.ts +2 -2
  1518. package/src/unstable/http/HttpBody.ts +20 -5
  1519. package/src/unstable/http/HttpClient.ts +83 -55
  1520. package/src/unstable/http/HttpClientError.ts +1 -1
  1521. package/src/unstable/http/HttpClientRequest.ts +2 -12
  1522. package/src/unstable/http/HttpClientResponse.ts +5 -21
  1523. package/src/unstable/http/HttpEffect.ts +8 -8
  1524. package/src/unstable/http/HttpMethod.ts +6 -9
  1525. package/src/unstable/http/HttpMiddleware.ts +202 -39
  1526. package/src/unstable/http/HttpPlatform.ts +129 -6
  1527. package/src/unstable/http/HttpRouter.ts +102 -98
  1528. package/src/unstable/http/HttpServer.ts +13 -13
  1529. package/src/unstable/http/HttpServerError.ts +2 -2
  1530. package/src/unstable/http/HttpServerRequest.ts +18 -10
  1531. package/src/unstable/http/HttpServerResponse.ts +38 -6
  1532. package/src/unstable/http/HttpStaticServer.ts +35 -7
  1533. package/src/unstable/http/Multipart.ts +15 -8
  1534. package/src/unstable/http/MultipartParser/HeadersParser.ts +68 -0
  1535. package/src/unstable/http/MultipartParser/Search.ts +17 -0
  1536. package/src/unstable/http/MultipartParser/internal/contentType.ts +103 -0
  1537. package/src/unstable/http/MultipartParser/internal/headers.ts +615 -0
  1538. package/src/unstable/http/MultipartParser/internal/multipart.ts +262 -0
  1539. package/src/unstable/http/MultipartParser/internal/search.ts +167 -0
  1540. package/src/unstable/http/MultipartParser.ts +115 -0
  1541. package/src/unstable/http/Template.ts +6 -5
  1542. package/src/unstable/http/Url.ts +33 -63
  1543. package/src/unstable/http/UrlParams.ts +10 -18
  1544. package/src/unstable/http/index.ts +1 -1
  1545. package/src/unstable/http/internal/compression.ts +196 -0
  1546. package/src/unstable/http/internal/httpBody.ts +15 -0
  1547. package/src/unstable/httpapi/HttpApi.ts +6 -7
  1548. package/src/unstable/httpapi/HttpApiBuilder.ts +129 -30
  1549. package/src/unstable/httpapi/HttpApiClient.ts +117 -54
  1550. package/src/unstable/httpapi/HttpApiEndpoint.ts +159 -71
  1551. package/src/unstable/httpapi/HttpApiError.ts +46 -52
  1552. package/src/unstable/httpapi/HttpApiGroup.ts +15 -15
  1553. package/src/unstable/httpapi/HttpApiMiddleware.ts +71 -24
  1554. package/src/unstable/httpapi/HttpApiScalar.ts +0 -12
  1555. package/src/unstable/httpapi/HttpApiSchema.ts +359 -6
  1556. package/src/unstable/httpapi/OpenApi.ts +83 -33
  1557. package/src/unstable/observability/OtlpExporter.ts +35 -21
  1558. package/src/unstable/observability/OtlpLogger.ts +3 -1
  1559. package/src/unstable/observability/OtlpMetrics.ts +36 -19
  1560. package/src/unstable/observability/OtlpResource.ts +26 -17
  1561. package/src/unstable/observability/OtlpTracer.ts +1 -1
  1562. package/src/unstable/observability/PrometheusMetrics.ts +13 -4
  1563. package/src/unstable/observability/internal/otlpEnv.ts +1 -1
  1564. package/src/unstable/observability/internal/protobuf.ts +3 -0
  1565. package/src/unstable/persistence/KeyValueStore.ts +72 -49
  1566. package/src/unstable/persistence/Persistable.ts +8 -8
  1567. package/src/unstable/persistence/PersistedQueue.ts +18 -15
  1568. package/src/unstable/persistence/Persistence.ts +153 -26
  1569. package/src/unstable/persistence/RateLimiter.ts +77 -43
  1570. package/src/unstable/persistence/Redis.ts +3 -3
  1571. package/src/unstable/process/ChildProcess.ts +64 -21
  1572. package/src/unstable/process/ChildProcessSpawner.ts +21 -10
  1573. package/src/unstable/reactivity/AsyncResult.ts +12 -13
  1574. package/src/unstable/reactivity/Atom.ts +28 -25
  1575. package/src/unstable/reactivity/AtomHttpApi.ts +5 -4
  1576. package/src/unstable/reactivity/AtomRegistry.ts +24 -3
  1577. package/src/unstable/reactivity/AtomRpc.ts +5 -4
  1578. package/src/unstable/reactivity/Hydration.ts +1 -1
  1579. package/src/unstable/rpc/Rpc.ts +35 -33
  1580. package/src/unstable/rpc/RpcClient.ts +54 -27
  1581. package/src/unstable/rpc/RpcClientError.ts +2 -2
  1582. package/src/unstable/rpc/RpcGroup.ts +8 -8
  1583. package/src/unstable/rpc/RpcMessage.ts +31 -30
  1584. package/src/unstable/rpc/RpcMiddleware.ts +10 -10
  1585. package/src/unstable/rpc/RpcSchema.ts +4 -4
  1586. package/src/unstable/rpc/RpcSerialization.ts +167 -68
  1587. package/src/unstable/rpc/RpcServer.ts +18 -15
  1588. package/src/unstable/rpc/RpcWorker.ts +5 -5
  1589. package/src/unstable/schema/Model.ts +52 -50
  1590. package/src/unstable/schema/VariantSchema.ts +41 -23
  1591. package/src/unstable/socket/Socket.ts +41 -18
  1592. package/src/unstable/sql/SqlClient.ts +64 -56
  1593. package/src/unstable/sql/SqlError.ts +13 -13
  1594. package/src/unstable/sql/SqlModel.ts +2 -2
  1595. package/src/unstable/sql/SqlResolver.ts +13 -11
  1596. package/src/unstable/sql/Statement.ts +37 -31
  1597. package/src/unstable/workers/Transferable.ts +1 -1
  1598. package/src/unstable/workers/Worker.ts +2 -2
  1599. package/src/unstable/workers/WorkerError.ts +12 -12
  1600. package/src/unstable/workers/WorkerRunner.ts +1 -1
  1601. package/src/unstable/workflow/Activity.ts +2 -2
  1602. package/src/unstable/workflow/DurableClock.ts +1 -1
  1603. package/src/unstable/workflow/DurableDeferred.ts +10 -10
  1604. package/src/unstable/workflow/DurableQueue.ts +22 -20
  1605. package/src/unstable/workflow/Workflow.ts +23 -23
  1606. package/src/unstable/workflow/WorkflowEngine.ts +9 -4
  1607. package/src/unstable/workflow/WorkflowProxy.ts +4 -2
  1608. package/dist/internal/version.d.ts +0 -3
  1609. package/dist/internal/version.d.ts.map +0 -1
  1610. package/dist/internal/version.js +0 -2
  1611. package/dist/internal/version.js.map +0 -1
  1612. package/dist/unstable/http/Multipasta/HeadersParser.d.ts +0 -14
  1613. package/dist/unstable/http/Multipasta/HeadersParser.d.ts.map +0 -1
  1614. package/dist/unstable/http/Multipasta/HeadersParser.js +0 -14
  1615. package/dist/unstable/http/Multipasta/HeadersParser.js.map +0 -1
  1616. package/dist/unstable/http/Multipasta/Node.d.ts +0 -14
  1617. package/dist/unstable/http/Multipasta/Node.d.ts.map +0 -1
  1618. package/dist/unstable/http/Multipasta/Node.js +0 -14
  1619. package/dist/unstable/http/Multipasta/Node.js.map +0 -1
  1620. package/dist/unstable/http/Multipasta/Search.d.ts +0 -14
  1621. package/dist/unstable/http/Multipasta/Search.d.ts.map +0 -1
  1622. package/dist/unstable/http/Multipasta/Search.js +0 -14
  1623. package/dist/unstable/http/Multipasta/Search.js.map +0 -1
  1624. package/dist/unstable/http/Multipasta/Web.d.ts +0 -14
  1625. package/dist/unstable/http/Multipasta/Web.d.ts.map +0 -1
  1626. package/dist/unstable/http/Multipasta/Web.js +0 -14
  1627. package/dist/unstable/http/Multipasta/Web.js.map +0 -1
  1628. package/dist/unstable/http/Multipasta.d.ts +0 -15
  1629. package/dist/unstable/http/Multipasta.d.ts.map +0 -1
  1630. package/dist/unstable/http/Multipasta.js +0 -15
  1631. package/dist/unstable/http/Multipasta.js.map +0 -1
  1632. package/src/internal/version.ts +0 -2
  1633. package/src/unstable/http/Multipasta/HeadersParser.ts +0 -14
  1634. package/src/unstable/http/Multipasta/Node.ts +0 -14
  1635. package/src/unstable/http/Multipasta/Search.ts +0 -14
  1636. package/src/unstable/http/Multipasta/Web.ts +0 -14
  1637. package/src/unstable/http/Multipasta.ts +0 -15
package/src/PubSub.ts CHANGED
@@ -35,26 +35,27 @@ const TypeId = "~effect/PubSub"
35
35
  *
36
36
  * **Example** (Publishing and subscribing to messages)
37
37
  *
38
- * ```ts
38
+ * ```ts import.meta.vitest
39
39
  * import { Effect, PubSub } from "effect"
40
40
  *
41
- * const program = Effect.gen(function*() {
41
+ * const program = Effect.scoped(Effect.gen(function*() {
42
42
  * // Create a bounded PubSub with capacity 10
43
43
  * const pubsub = yield* PubSub.bounded<string>(10)
44
44
  *
45
45
  * // Subscribe and consume messages
46
- * yield* Effect.scoped(Effect.gen(function*() {
47
- * const subscription = yield* PubSub.subscribe(pubsub)
46
+ * const subscription = yield* PubSub.subscribe(pubsub)
48
47
  *
49
- * // Publish messages
50
- * yield* PubSub.publish(pubsub, "Hello")
51
- * yield* PubSub.publish(pubsub, "World")
48
+ * // Publish messages
49
+ * yield* PubSub.publish(pubsub, "Hello")
50
+ * yield* PubSub.publish(pubsub, "World")
52
51
  *
53
- * const message1 = yield* PubSub.take(subscription)
54
- * const message2 = yield* PubSub.take(subscription)
55
- * console.log(message1, message2) // "Hello", "World"
56
- * }))
57
- * })
52
+ * const message1 = yield* PubSub.take(subscription)
53
+ * const message2 = yield* PubSub.take(subscription)
54
+ * return [message1, message2]
55
+ * }))
56
+ *
57
+ * const actual = await Effect.runPromise(program)
58
+ * actual // => ["Hello", "World"]
58
59
  * ```
59
60
  *
60
61
  * @category models
@@ -139,6 +140,7 @@ export declare namespace PubSub {
139
140
  take(): A | undefined
140
141
  takeN(n: number): Array<A>
141
142
  takeAll(): Array<A>
143
+ close(): void
142
144
  readonly remaining: number
143
145
  }
144
146
 
@@ -204,31 +206,28 @@ const SubscriptionTypeId = "~effect/PubSub/Subscription"
204
206
  *
205
207
  * **Example** (Taking messages from a subscription)
206
208
  *
207
- * ```ts
209
+ * ```ts import.meta.vitest
208
210
  * import { Effect, PubSub } from "effect"
209
211
  *
210
- * const program = Effect.gen(function*() {
212
+ * const program = Effect.scoped(Effect.gen(function*() {
211
213
  * const pubsub = yield* PubSub.bounded<string>(10)
212
214
  *
213
215
  * // Subscribe within a scope for automatic cleanup
214
- * yield* Effect.scoped(Effect.gen(function*() {
215
- * const subscription: PubSub.Subscription<string> = yield* PubSub.subscribe(
216
- * pubsub
217
- * )
218
- *
219
- * yield* PubSub.publishAll(pubsub, ["msg1", "msg2", "msg3"])
220
- *
221
- * // Take individual messages
222
- * const message = yield* PubSub.take(subscription)
223
- * console.log(message) // "msg1"
224
- *
225
- * // Take multiple messages
226
- * const messages = yield* PubSub.takeUpTo(subscription, 1)
227
- * console.log(messages) // ["msg2"]
228
- * const allMessages = yield* PubSub.takeAll(subscription)
229
- * console.log(allMessages) // ["msg3"]
230
- * }))
231
- * })
216
+ * const subscription: PubSub.Subscription<string> = yield* PubSub.subscribe(pubsub)
217
+ *
218
+ * yield* PubSub.publishAll(pubsub, ["msg1", "msg2", "msg3"])
219
+ *
220
+ * // Take individual messages
221
+ * const message = yield* PubSub.take(subscription)
222
+ *
223
+ * // Take multiple messages
224
+ * const messages = yield* PubSub.takeUpTo(subscription, 1)
225
+ * const allMessages = yield* PubSub.takeAll(subscription)
226
+ * return { message, messages, allMessages }
227
+ * }))
228
+ *
229
+ * const actual = await Effect.runPromise(program)
230
+ * actual // => { message: "msg1", messages: ["msg2"], allMessages: ["msg3"] }
232
231
  * ```
233
232
  *
234
233
  * @category models
@@ -253,7 +252,7 @@ export interface Subscription<out A> extends Pipeable {
253
252
  *
254
253
  * **Example** (Creating a PubSub with a custom strategy)
255
254
  *
256
- * ```ts
255
+ * ```ts import.meta.vitest
257
256
  * import { Effect, PubSub } from "effect"
258
257
  *
259
258
  * const program = Effect.gen(function*() {
@@ -264,8 +263,13 @@ export interface Subscription<out A> extends Pipeable {
264
263
  * })
265
264
  *
266
265
  * // Use the created PubSub
267
- * yield* PubSub.publish(pubsub, "Hello")
266
+ * const published = yield* PubSub.publish(pubsub, "Hello")
267
+ * yield* PubSub.shutdown(pubsub)
268
+ * return published
268
269
  * })
270
+ *
271
+ * const actual = await Effect.runPromise(program)
272
+ * actual // => true
269
273
  * ```
270
274
  *
271
275
  * @category constructors
@@ -301,7 +305,7 @@ export const make = <A>(
301
305
  *
302
306
  * **Example** (Creating a bounded PubSub)
303
307
  *
304
- * ```ts
308
+ * ```ts import.meta.vitest
305
309
  * import { Effect, PubSub } from "effect"
306
310
  *
307
311
  * const program = Effect.gen(function*() {
@@ -313,7 +317,15 @@ export const make = <A>(
313
317
  * capacity: 100,
314
318
  * replay: 10 // Last 10 messages replayed to new subscribers
315
319
  * })
320
+ *
321
+ * const capacities = [PubSub.capacity(pubsub), PubSub.capacity(pubsubWithReplay)]
322
+ * yield* PubSub.shutdown(pubsub)
323
+ * yield* PubSub.shutdown(pubsubWithReplay)
324
+ * return capacities
316
325
  * })
326
+ *
327
+ * const actual = await Effect.runPromise(program)
328
+ * actual // => [100, 100]
317
329
  * ```
318
330
  *
319
331
  * @category constructors
@@ -340,33 +352,27 @@ export const bounded = <A>(
340
352
  *
341
353
  * **Example** (Dropping messages when full)
342
354
  *
343
- * ```ts
355
+ * ```ts import.meta.vitest
344
356
  * import { Effect, PubSub } from "effect"
345
357
  *
346
- * const program = Effect.gen(function*() {
358
+ * const program = Effect.scoped(Effect.gen(function*() {
347
359
  * // Create dropping PubSub that drops new messages when full
348
360
  * const pubsub = yield* PubSub.dropping<string>(3)
349
361
  *
350
- * // With replay buffer for late subscribers
351
- * const pubsubWithReplay = yield* PubSub.dropping<string>({
352
- * capacity: 3,
353
- * replay: 5
354
- * })
362
+ * const subscription = yield* PubSub.subscribe(pubsub)
355
363
  *
356
- * yield* Effect.scoped(Effect.gen(function*() {
357
- * const subscription = yield* PubSub.subscribe(pubsub)
364
+ * // Fill the PubSub and see dropping behavior
365
+ * yield* PubSub.publish(pubsub, "msg1") // succeeds
366
+ * yield* PubSub.publish(pubsub, "msg2") // succeeds
367
+ * yield* PubSub.publish(pubsub, "msg3") // succeeds
368
+ * const dropped = yield* PubSub.publish(pubsub, "msg4") // returns false (dropped)
358
369
  *
359
- * // Fill the PubSub and see dropping behavior
360
- * yield* PubSub.publish(pubsub, "msg1") // succeeds
361
- * yield* PubSub.publish(pubsub, "msg2") // succeeds
362
- * yield* PubSub.publish(pubsub, "msg3") // succeeds
363
- * const dropped = yield* PubSub.publish(pubsub, "msg4") // returns false (dropped)
364
- * console.log("Message dropped:", !dropped) // true
370
+ * const messages = yield* PubSub.takeAll(subscription)
371
+ * return { dropped: !dropped, messages }
372
+ * }))
365
373
  *
366
- * const messages = yield* PubSub.takeAll(subscription)
367
- * console.log(messages) // ["msg1", "msg2", "msg3"]
368
- * }))
369
- * })
374
+ * const actual = await Effect.runPromise(program)
375
+ * actual // => { dropped: true, messages: ["msg1", "msg2", "msg3"] }
370
376
  * ```
371
377
  *
372
378
  * @category constructors
@@ -393,32 +399,26 @@ export const dropping = <A>(
393
399
  *
394
400
  * **Example** (Sliding old messages when full)
395
401
  *
396
- * ```ts
402
+ * ```ts import.meta.vitest
397
403
  * import { Effect, PubSub } from "effect"
398
404
  *
399
- * const program = Effect.gen(function*() {
405
+ * const program = Effect.scoped(Effect.gen(function*() {
400
406
  * // Create sliding PubSub that evicts old messages when full
401
407
  * const pubsub = yield* PubSub.sliding<string>(3)
402
408
  *
403
- * // With replay buffer
404
- * const pubsubWithReplay = yield* PubSub.sliding<string>({
405
- * capacity: 3,
406
- * replay: 2
407
- * })
409
+ * const subscription = yield* PubSub.subscribe(pubsub)
408
410
  *
409
- * yield* Effect.scoped(Effect.gen(function*() {
410
- * const subscription = yield* PubSub.subscribe(pubsub)
411
+ * // Fill and overflow the PubSub
412
+ * yield* PubSub.publish(pubsub, "msg1")
413
+ * yield* PubSub.publish(pubsub, "msg2")
414
+ * yield* PubSub.publish(pubsub, "msg3")
415
+ * yield* PubSub.publish(pubsub, "msg4") // "msg1" is evicted
411
416
  *
412
- * // Fill and overflow the PubSub
413
- * yield* PubSub.publish(pubsub, "msg1")
414
- * yield* PubSub.publish(pubsub, "msg2")
415
- * yield* PubSub.publish(pubsub, "msg3")
416
- * yield* PubSub.publish(pubsub, "msg4") // "msg1" is evicted
417
+ * return yield* PubSub.takeAll(subscription)
418
+ * }))
417
419
  *
418
- * const messages = yield* PubSub.takeAll(subscription)
419
- * console.log(messages) // ["msg2", "msg3", "msg4"]
420
- * }))
421
- * })
420
+ * const actual = await Effect.runPromise(program)
421
+ * actual // => ["msg2", "msg3", "msg4"]
422
422
  * ```
423
423
  *
424
424
  * @category constructors
@@ -440,30 +440,25 @@ export const sliding = <A>(
440
440
  *
441
441
  * **Example** (Creating an unbounded PubSub)
442
442
  *
443
- * ```ts
443
+ * ```ts import.meta.vitest
444
444
  * import { Effect, PubSub } from "effect"
445
445
  *
446
- * const program = Effect.gen(function*() {
446
+ * const program = Effect.scoped(Effect.gen(function*() {
447
447
  * // Create unbounded PubSub
448
448
  * const pubsub = yield* PubSub.unbounded<string>()
449
449
  *
450
- * // With replay buffer for late subscribers
451
- * const pubsubWithReplay = yield* PubSub.unbounded<string>({
452
- * replay: 10
453
- * })
450
+ * const subscription = yield* PubSub.subscribe(pubsub)
454
451
  *
455
- * yield* Effect.scoped(Effect.gen(function*() {
456
- * const subscription = yield* PubSub.subscribe(pubsub)
452
+ * // Can publish unlimited messages
453
+ * for (let i = 0; i < 3; i++) {
454
+ * yield* PubSub.publish(pubsub, `message-${i}`)
455
+ * }
457
456
  *
458
- * // Can publish unlimited messages
459
- * for (let i = 0; i < 3; i++) {
460
- * yield* PubSub.publish(pubsub, `message-${i}`)
461
- * }
457
+ * return yield* PubSub.takeAll(subscription)
458
+ * }))
462
459
  *
463
- * const message = yield* PubSub.take(subscription)
464
- * console.log("First message:", message) // "message-0"
465
- * }))
466
- * })
460
+ * const actual = await Effect.runPromise(program)
461
+ * actual // => ["message-0", "message-1", "message-2"]
467
462
  * ```
468
463
  *
469
464
  * @category constructors
@@ -552,18 +547,17 @@ export const makeAtomicUnbounded = <A>(options?: {
552
547
  *
553
548
  * **Example** (Getting PubSub capacity)
554
549
  *
555
- * ```ts
550
+ * ```ts import.meta.vitest
556
551
  * import { Effect, PubSub } from "effect"
557
552
  *
558
553
  * const program = Effect.gen(function*() {
559
554
  * const pubsub = yield* PubSub.bounded<string>(100)
560
- * const cap = PubSub.capacity(pubsub)
561
- * console.log("PubSub capacity:", cap) // 100
562
- *
563
555
  * const unboundedPubsub = yield* PubSub.unbounded<string>()
564
- * const unboundedCap = PubSub.capacity(unboundedPubsub)
565
- * console.log("Unbounded capacity:", unboundedCap) // Number.MAX_SAFE_INTEGER
556
+ * return [PubSub.capacity(pubsub), PubSub.capacity(unboundedPubsub)]
566
557
  * })
558
+ *
559
+ * const actual = await Effect.runPromise(program)
560
+ * actual // => [100, Number.MAX_SAFE_INTEGER]
567
561
  * ```
568
562
  *
569
563
  * @category getters
@@ -582,29 +576,28 @@ export const capacity = <A>(self: PubSub<A>): number => self.pubsub.capacity
582
576
  *
583
577
  * **Example** (Getting PubSub size)
584
578
  *
585
- * ```ts
579
+ * ```ts import.meta.vitest
586
580
  * import { Effect, PubSub } from "effect"
587
581
  *
588
- * const program = Effect.gen(function*() {
582
+ * const program = Effect.scoped(Effect.gen(function*() {
589
583
  * const pubsub = yield* PubSub.bounded<string>(10)
590
584
  *
591
585
  * // Initially empty
592
586
  * const initialSize = yield* PubSub.size(pubsub)
593
- * console.log("Initial size:", initialSize) // 0
594
587
  *
595
- * yield* Effect.scoped(Effect.gen(function*() {
596
- * const subscription = yield* PubSub.subscribe(pubsub)
588
+ * const subscription = yield* PubSub.subscribe(pubsub)
597
589
  *
598
- * // Publish some messages for the active subscription
599
- * yield* PubSub.publish(pubsub, "msg1")
600
- * yield* PubSub.publish(pubsub, "msg2")
590
+ * // Publish some messages for the active subscription
591
+ * yield* PubSub.publish(pubsub, "msg1")
592
+ * yield* PubSub.publish(pubsub, "msg2")
601
593
  *
602
- * const afterPublish = yield* PubSub.size(pubsub)
603
- * console.log("After publishing:", afterPublish) // 2
594
+ * const afterPublish = yield* PubSub.size(pubsub)
595
+ * const messages = yield* PubSub.takeAll(subscription)
596
+ * return { initialSize, afterPublish, messages }
597
+ * }))
604
598
  *
605
- * yield* PubSub.takeAll(subscription)
606
- * }))
607
- * })
599
+ * const actual = await Effect.runPromise(program)
600
+ * actual // => { initialSize: 0, afterPublish: 2, messages: ["msg1", "msg2"] }
608
601
  * ```
609
602
  *
610
603
  * @category getters
@@ -627,14 +620,16 @@ export const size = <A>(self: PubSub<A>): Effect.Effect<number> => Effect.sync((
627
620
  *
628
621
  * **Example** (Reading size synchronously)
629
622
  *
630
- * ```ts
631
- * import { PubSub } from "effect"
623
+ * ```ts import.meta.vitest
624
+ * import { Effect, PubSub } from "effect"
632
625
  *
633
- * // Unsafe synchronous size check
634
- * declare const pubsub: PubSub.PubSub<string>
626
+ * const program = Effect.gen(function*() {
627
+ * const pubsub = yield* PubSub.bounded<string>(2)
628
+ * return PubSub.sizeUnsafe(pubsub)
629
+ * })
635
630
  *
636
- * const size = PubSub.sizeUnsafe(pubsub)
637
- * console.log("Current size:", size)
631
+ * const actual = await Effect.runPromise(program)
632
+ * actual // => 0
638
633
  * ```
639
634
  *
640
635
  * @category getters
@@ -656,29 +651,28 @@ export const sizeUnsafe = <A>(self: PubSub<A>): number => {
656
651
  *
657
652
  * **Example** (Checking whether a PubSub is full)
658
653
  *
659
- * ```ts
654
+ * ```ts import.meta.vitest
660
655
  * import { Effect, PubSub } from "effect"
661
656
  *
662
- * const program = Effect.gen(function*() {
657
+ * const program = Effect.scoped(Effect.gen(function*() {
663
658
  * const pubsub = yield* PubSub.bounded<string>(2)
664
659
  *
665
660
  * // Initially not full
666
661
  * const initiallyFull = yield* PubSub.isFull(pubsub)
667
- * console.log("Initially full:", initiallyFull) // false
668
662
  *
669
- * yield* Effect.scoped(Effect.gen(function*() {
670
- * const subscription = yield* PubSub.subscribe(pubsub)
663
+ * const subscription = yield* PubSub.subscribe(pubsub)
671
664
  *
672
- * // Fill the PubSub for the active subscription
673
- * yield* PubSub.publish(pubsub, "msg1")
674
- * yield* PubSub.publish(pubsub, "msg2")
665
+ * // Fill the PubSub for the active subscription
666
+ * yield* PubSub.publish(pubsub, "msg1")
667
+ * yield* PubSub.publish(pubsub, "msg2")
675
668
  *
676
- * const nowFull = yield* PubSub.isFull(pubsub)
677
- * console.log("Now full:", nowFull) // true
669
+ * const nowFull = yield* PubSub.isFull(pubsub)
670
+ * const messages = yield* PubSub.takeAll(subscription)
671
+ * return { initiallyFull, nowFull, messages }
672
+ * }))
678
673
  *
679
- * yield* PubSub.takeAll(subscription)
680
- * }))
681
- * })
674
+ * const actual = await Effect.runPromise(program)
675
+ * actual // => { initiallyFull: false, nowFull: true, messages: ["msg1", "msg2"] }
682
676
  * ```
683
677
  *
684
678
  * @category predicates
@@ -692,28 +686,27 @@ export const isFull = <A>(self: PubSub<A>): Effect.Effect<boolean> =>
692
686
  *
693
687
  * **Example** (Checking whether a PubSub is empty)
694
688
  *
695
- * ```ts
689
+ * ```ts import.meta.vitest
696
690
  * import { Effect, PubSub } from "effect"
697
691
  *
698
- * const program = Effect.gen(function*() {
692
+ * const program = Effect.scoped(Effect.gen(function*() {
699
693
  * const pubsub = yield* PubSub.bounded<string>(10)
700
694
  *
701
695
  * // Initially empty
702
696
  * const initiallyEmpty = yield* PubSub.isEmpty(pubsub)
703
- * console.log("Initially empty:", initiallyEmpty) // true
704
697
  *
705
- * yield* Effect.scoped(Effect.gen(function*() {
706
- * const subscription = yield* PubSub.subscribe(pubsub)
698
+ * const subscription = yield* PubSub.subscribe(pubsub)
707
699
  *
708
- * // Publish a message for the active subscription
709
- * yield* PubSub.publish(pubsub, "Hello")
700
+ * // Publish a message for the active subscription
701
+ * yield* PubSub.publish(pubsub, "Hello")
710
702
  *
711
- * const nowEmpty = yield* PubSub.isEmpty(pubsub)
712
- * console.log("Now empty:", nowEmpty) // false
703
+ * const nowEmpty = yield* PubSub.isEmpty(pubsub)
704
+ * const message = yield* PubSub.take(subscription)
705
+ * return { initiallyEmpty, nowEmpty, message }
706
+ * }))
713
707
  *
714
- * yield* PubSub.take(subscription)
715
- * }))
716
- * })
708
+ * const actual = await Effect.runPromise(program)
709
+ * actual // => { initiallyEmpty: true, nowEmpty: false, message: "Hello" }
717
710
  * ```
718
711
  *
719
712
  * @category predicates
@@ -733,7 +726,7 @@ export const isEmpty = <A>(self: PubSub<A>): Effect.Effect<boolean> => Effect.ma
733
726
  *
734
727
  * **Example** (Shutting down a PubSub)
735
728
  *
736
- * ```ts
729
+ * ```ts import.meta.vitest
737
730
  * import { Effect, PubSub } from "effect"
738
731
  *
739
732
  * const program = Effect.gen(function*() {
@@ -743,12 +736,14 @@ export const isEmpty = <A>(self: PubSub<A>): Effect.Effect<boolean> => Effect.ma
743
736
  * yield* PubSub.shutdown(pubsub)
744
737
  *
745
738
  * const isShutdown = yield* PubSub.isShutdown(pubsub)
746
- * console.log("Is shutdown:", isShutdown) // true
747
739
  *
748
740
  * // Publishing after shutdown returns false
749
741
  * const published = yield* PubSub.publish(pubsub, "msg1")
750
- * console.log("Published after shutdown:", published) // false
742
+ * return { isShutdown, published }
751
743
  * })
744
+ *
745
+ * const actual = await Effect.runPromise(program)
746
+ * actual // => { isShutdown: true, published: false }
752
747
  * ```
753
748
  *
754
749
  * @category lifecycle
@@ -770,7 +765,7 @@ export const shutdown = <A>(self: PubSub<A>): Effect.Effect<void> =>
770
765
  *
771
766
  * **Example** (Checking whether a PubSub is shut down)
772
767
  *
773
- * ```ts
768
+ * ```ts import.meta.vitest
774
769
  * import { Effect, PubSub } from "effect"
775
770
  *
776
771
  * const program = Effect.gen(function*() {
@@ -778,14 +773,16 @@ export const shutdown = <A>(self: PubSub<A>): Effect.Effect<void> =>
778
773
  *
779
774
  * // Initially not shutdown
780
775
  * const initiallyShutdown = yield* PubSub.isShutdown(pubsub)
781
- * console.log("Initially shutdown:", initiallyShutdown) // false
782
776
  *
783
777
  * // Shutdown the PubSub
784
778
  * yield* PubSub.shutdown(pubsub)
785
779
  *
786
780
  * const nowShutdown = yield* PubSub.isShutdown(pubsub)
787
- * console.log("Now shutdown:", nowShutdown) // true
781
+ * return [initiallyShutdown, nowShutdown]
788
782
  * })
783
+ *
784
+ * const actual = await Effect.runPromise(program)
785
+ * actual // => [false, true]
789
786
  * ```
790
787
  *
791
788
  * @category predicates
@@ -804,18 +801,18 @@ export const isShutdown = <A>(self: PubSub<A>): Effect.Effect<boolean> => Effect
804
801
  *
805
802
  * **Example** (Checking shutdown synchronously)
806
803
  *
807
- * ```ts
808
- * import { PubSub } from "effect"
804
+ * ```ts import.meta.vitest
805
+ * import { Effect, PubSub } from "effect"
809
806
  *
810
- * declare const pubsub: PubSub.PubSub<string>
807
+ * const program = Effect.gen(function*() {
808
+ * const pubsub = yield* PubSub.bounded<string>(2)
809
+ * const initiallyShutdown = PubSub.isShutdownUnsafe(pubsub)
810
+ * yield* PubSub.shutdown(pubsub)
811
+ * return [initiallyShutdown, PubSub.isShutdownUnsafe(pubsub)]
812
+ * })
811
813
  *
812
- * // Unsafe synchronous shutdown check
813
- * const isDown = PubSub.isShutdownUnsafe(pubsub)
814
- * if (isDown) {
815
- * console.log("PubSub is shutdown, cannot publish")
816
- * } else {
817
- * console.log("PubSub is active")
818
- * }
814
+ * const actual = await Effect.runPromise(program)
815
+ * actual // => [false, true]
819
816
  * ```
820
817
  *
821
818
  * @category predicates
@@ -830,7 +827,7 @@ export const isShutdownUnsafe = <A>(self: PubSub<A>): boolean => self.shutdownFl
830
827
  *
831
828
  * **Example** (Waiting for shutdown)
832
829
  *
833
- * ```ts
830
+ * ```ts import.meta.vitest
834
831
  * import { Effect, Fiber, PubSub } from "effect"
835
832
  *
836
833
  * const program = Effect.gen(function*() {
@@ -840,19 +837,19 @@ export const isShutdownUnsafe = <A>(self: PubSub<A>): boolean => self.shutdownFl
840
837
  * const waiterFiber = yield* Effect.forkChild(
841
838
  * Effect.gen(function*() {
842
839
  * yield* PubSub.awaitShutdown(pubsub)
843
- * console.log("PubSub has been shutdown!")
840
+ * return "PubSub has been shutdown!"
844
841
  * })
845
842
  * )
846
843
  *
847
- * // Do some work...
848
- * yield* Effect.sleep("100 millis")
849
- *
850
844
  * // Shutdown the PubSub
851
845
  * yield* PubSub.shutdown(pubsub)
852
846
  *
853
847
  * // The waiter will now complete
854
- * yield* Fiber.join(waiterFiber)
848
+ * return yield* Fiber.join(waiterFiber)
855
849
  * })
850
+ *
851
+ * const actual = await Effect.runPromise(program)
852
+ * actual // => "PubSub has been shutdown!"
856
853
  * ```
857
854
  *
858
855
  * @category lifecycle
@@ -877,24 +874,24 @@ export const awaitShutdown = <A>(self: PubSub<A>): Effect.Effect<void> => self.s
877
874
  *
878
875
  * **Example** (Publishing a message)
879
876
  *
880
- * ```ts
877
+ * ```ts import.meta.vitest
881
878
  * import { Effect, PubSub } from "effect"
882
879
  *
883
- * const program = Effect.gen(function*() {
880
+ * const program = Effect.scoped(Effect.gen(function*() {
884
881
  * const pubsub = yield* PubSub.bounded<string>(10)
885
882
  *
886
883
  * // Publish a message
887
884
  * const published = yield* PubSub.publish(pubsub, "Hello World")
888
- * console.log("Message published:", published) // true
889
885
  *
890
- * yield* Effect.scoped(Effect.gen(function*() {
891
- * const subscription = yield* PubSub.subscribe(pubsub)
886
+ * const subscription = yield* PubSub.subscribe(pubsub)
892
887
  *
893
- * yield* PubSub.publish(pubsub, "Hello")
894
- * const message = yield* PubSub.take(subscription)
895
- * console.log("Received:", message) // "Hello"
896
- * }))
897
- * })
888
+ * yield* PubSub.publish(pubsub, "Hello")
889
+ * const message = yield* PubSub.take(subscription)
890
+ * return { published, message }
891
+ * }))
892
+ *
893
+ * const actual = await Effect.runPromise(program)
894
+ * actual // => { published: true, message: "Hello" }
898
895
  * ```
899
896
  *
900
897
  * @see {@link publishUnsafe} for a synchronous non-blocking attempt that does not run effectful surplus handling
@@ -920,24 +917,24 @@ export const publish: {
920
917
  *
921
918
  * **Example** (Publishing a message)
922
919
  *
923
- * ```ts
920
+ * ```ts import.meta.vitest
924
921
  * import { Effect, PubSub } from "effect"
925
922
  *
926
- * const program = Effect.gen(function*() {
923
+ * const program = Effect.scoped(Effect.gen(function*() {
927
924
  * const pubsub = yield* PubSub.bounded<string>(10)
928
925
  *
929
926
  * // Publish a message
930
927
  * const published = yield* PubSub.publish(pubsub, "Hello World")
931
- * console.log("Message published:", published) // true
932
928
  *
933
- * yield* Effect.scoped(Effect.gen(function*() {
934
- * const subscription = yield* PubSub.subscribe(pubsub)
929
+ * const subscription = yield* PubSub.subscribe(pubsub)
935
930
  *
936
- * yield* PubSub.publish(pubsub, "Hello")
937
- * const message = yield* PubSub.take(subscription)
938
- * console.log("Received:", message) // "Hello"
939
- * }))
940
- * })
931
+ * yield* PubSub.publish(pubsub, "Hello")
932
+ * const message = yield* PubSub.take(subscription)
933
+ * return { published, message }
934
+ * }))
935
+ *
936
+ * const actual = await Effect.runPromise(program)
937
+ * actual // => { published: true, message: "Hello" }
941
938
  * ```
942
939
  *
943
940
  * @see {@link publishUnsafe} for a synchronous non-blocking attempt that does not run effectful surplus handling
@@ -963,24 +960,24 @@ export const publish: {
963
960
  *
964
961
  * **Example** (Publishing a message)
965
962
  *
966
- * ```ts
963
+ * ```ts import.meta.vitest
967
964
  * import { Effect, PubSub } from "effect"
968
965
  *
969
- * const program = Effect.gen(function*() {
966
+ * const program = Effect.scoped(Effect.gen(function*() {
970
967
  * const pubsub = yield* PubSub.bounded<string>(10)
971
968
  *
972
969
  * // Publish a message
973
970
  * const published = yield* PubSub.publish(pubsub, "Hello World")
974
- * console.log("Message published:", published) // true
975
971
  *
976
- * yield* Effect.scoped(Effect.gen(function*() {
977
- * const subscription = yield* PubSub.subscribe(pubsub)
972
+ * const subscription = yield* PubSub.subscribe(pubsub)
978
973
  *
979
- * yield* PubSub.publish(pubsub, "Hello")
980
- * const message = yield* PubSub.take(subscription)
981
- * console.log("Received:", message) // "Hello"
982
- * }))
983
- * })
974
+ * yield* PubSub.publish(pubsub, "Hello")
975
+ * const message = yield* PubSub.take(subscription)
976
+ * return { published, message }
977
+ * }))
978
+ *
979
+ * const actual = await Effect.runPromise(program)
980
+ * actual // => { published: true, message: "Hello" }
984
981
  * ```
985
982
  *
986
983
  * @see {@link publishUnsafe} for a synchronous non-blocking attempt that does not run effectful surplus handling
@@ -1025,24 +1022,16 @@ export const publish: {
1025
1022
  *
1026
1023
  * **Example** (Publishing without suspending)
1027
1024
  *
1028
- * ```ts
1029
- * import { PubSub } from "effect"
1030
- *
1031
- * declare const pubsub: PubSub.PubSub<string>
1025
+ * ```ts import.meta.vitest
1026
+ * import { Effect, PubSub } from "effect"
1032
1027
  *
1033
- * // Unsafe synchronous publish (non-blocking)
1034
- * const published = PubSub.publishUnsafe(pubsub, "Hello")
1035
- * if (published) {
1036
- * console.log("Message published successfully")
1037
- * } else {
1038
- * console.log("Message dropped (PubSub full or shutdown)")
1039
- * }
1028
+ * const program = Effect.gen(function*() {
1029
+ * const pubsub = yield* PubSub.bounded<string>(2)
1030
+ * return PubSub.publishUnsafe(pubsub, "Hello")
1031
+ * })
1040
1032
  *
1041
- * // Useful for scenarios where you don't want to suspend
1042
- * const messages = ["msg1", "msg2", "msg3"]
1043
- * const publishedCount =
1044
- * messages.filter((msg) => PubSub.publishUnsafe(pubsub, msg)).length
1045
- * console.log(`Published ${publishedCount} out of ${messages.length} messages`)
1033
+ * const actual = await Effect.runPromise(program)
1034
+ * actual // => true
1046
1035
  * ```
1047
1036
  *
1048
1037
  * @see {@link publish} for effectful publishing that honors the configured surplus strategy
@@ -1068,24 +1057,16 @@ export const publishUnsafe: {
1068
1057
  *
1069
1058
  * **Example** (Publishing without suspending)
1070
1059
  *
1071
- * ```ts
1072
- * import { PubSub } from "effect"
1073
- *
1074
- * declare const pubsub: PubSub.PubSub<string>
1060
+ * ```ts import.meta.vitest
1061
+ * import { Effect, PubSub } from "effect"
1075
1062
  *
1076
- * // Unsafe synchronous publish (non-blocking)
1077
- * const published = PubSub.publishUnsafe(pubsub, "Hello")
1078
- * if (published) {
1079
- * console.log("Message published successfully")
1080
- * } else {
1081
- * console.log("Message dropped (PubSub full or shutdown)")
1082
- * }
1063
+ * const program = Effect.gen(function*() {
1064
+ * const pubsub = yield* PubSub.bounded<string>(2)
1065
+ * return PubSub.publishUnsafe(pubsub, "Hello")
1066
+ * })
1083
1067
  *
1084
- * // Useful for scenarios where you don't want to suspend
1085
- * const messages = ["msg1", "msg2", "msg3"]
1086
- * const publishedCount =
1087
- * messages.filter((msg) => PubSub.publishUnsafe(pubsub, msg)).length
1088
- * console.log(`Published ${publishedCount} out of ${messages.length} messages`)
1068
+ * const actual = await Effect.runPromise(program)
1069
+ * actual // => true
1089
1070
  * ```
1090
1071
  *
1091
1072
  * @see {@link publish} for effectful publishing that honors the configured surplus strategy
@@ -1111,24 +1092,16 @@ export const publishUnsafe: {
1111
1092
  *
1112
1093
  * **Example** (Publishing without suspending)
1113
1094
  *
1114
- * ```ts
1115
- * import { PubSub } from "effect"
1116
- *
1117
- * declare const pubsub: PubSub.PubSub<string>
1095
+ * ```ts import.meta.vitest
1096
+ * import { Effect, PubSub } from "effect"
1118
1097
  *
1119
- * // Unsafe synchronous publish (non-blocking)
1120
- * const published = PubSub.publishUnsafe(pubsub, "Hello")
1121
- * if (published) {
1122
- * console.log("Message published successfully")
1123
- * } else {
1124
- * console.log("Message dropped (PubSub full or shutdown)")
1125
- * }
1098
+ * const program = Effect.gen(function*() {
1099
+ * const pubsub = yield* PubSub.bounded<string>(2)
1100
+ * return PubSub.publishUnsafe(pubsub, "Hello")
1101
+ * })
1126
1102
  *
1127
- * // Useful for scenarios where you don't want to suspend
1128
- * const messages = ["msg1", "msg2", "msg3"]
1129
- * const publishedCount =
1130
- * messages.filter((msg) => PubSub.publishUnsafe(pubsub, msg)).length
1131
- * console.log(`Published ${publishedCount} out of ${messages.length} messages`)
1103
+ * const actual = await Effect.runPromise(program)
1104
+ * actual // => true
1132
1105
  * ```
1133
1106
  *
1134
1107
  * @see {@link publish} for effectful publishing that honors the configured surplus strategy
@@ -1152,37 +1125,30 @@ export const publishUnsafe: {
1152
1125
  *
1153
1126
  * **Example** (Publishing multiple messages)
1154
1127
  *
1155
- * ```ts
1128
+ * ```ts import.meta.vitest
1156
1129
  * import { Effect, Fiber, PubSub } from "effect"
1157
1130
  *
1158
- * const program = Effect.gen(function*() {
1131
+ * const program = Effect.scoped(Effect.gen(function*() {
1159
1132
  * const pubsub = yield* PubSub.bounded<string>(10)
1160
1133
  *
1161
1134
  * // Publish multiple messages at once
1162
- * const messages = ["Hello", "World", "from", "Effect"]
1163
- * const allPublished = yield* PubSub.publishAll(pubsub, messages)
1164
- * console.log("All messages published:", allPublished) // true
1135
+ * const allPublished = yield* PubSub.publishAll(pubsub, ["Hello", "World", "from", "Effect"])
1165
1136
  *
1166
1137
  * // With a smaller capacity and an active subscription
1167
1138
  * const smallPubsub = yield* PubSub.bounded<string>(2)
1168
- * const manyMessages = ["msg1", "msg2", "msg3", "msg4"]
1169
- *
1170
- * yield* Effect.scoped(Effect.gen(function*() {
1171
- * const subscription = yield* PubSub.subscribe(smallPubsub)
1172
- *
1173
- * // Will suspend until space becomes available for all messages
1174
- * const fiber = yield* Effect.forkChild(PubSub.publishAll(smallPubsub, manyMessages))
1139
+ * const subscription = yield* PubSub.subscribe(smallPubsub)
1175
1140
  *
1176
- * const firstBatch = yield* PubSub.takeBetween(subscription, 2, 2)
1177
- * console.log("First batch:", firstBatch) // ["msg1", "msg2"]
1141
+ * // Will suspend until space becomes available for all messages
1142
+ * const fiber = yield* Effect.forkChild(PubSub.publishAll(smallPubsub, ["msg1", "msg2", "msg3", "msg4"]))
1178
1143
  *
1179
- * const result = yield* Fiber.join(fiber)
1180
- * console.log("All messages eventually published:", result) // true
1144
+ * const firstBatch = yield* PubSub.takeBetween(subscription, 2, 2)
1145
+ * const result = yield* Fiber.join(fiber)
1146
+ * const secondBatch = yield* PubSub.takeAll(subscription)
1147
+ * return { allPublished, firstBatch, result, secondBatch }
1148
+ * }))
1181
1149
  *
1182
- * const secondBatch = yield* PubSub.takeAll(subscription)
1183
- * console.log("Second batch:", secondBatch) // ["msg3", "msg4"]
1184
- * }))
1185
- * })
1150
+ * const actual = await Effect.runPromise(program)
1151
+ * actual // => { allPublished: true, firstBatch: ["msg1", "msg2"], result: true, secondBatch: ["msg3", "msg4"] }
1186
1152
  * ```
1187
1153
  *
1188
1154
  * @category publishing
@@ -1195,37 +1161,30 @@ export const publishAll: {
1195
1161
  *
1196
1162
  * **Example** (Publishing multiple messages)
1197
1163
  *
1198
- * ```ts
1164
+ * ```ts import.meta.vitest
1199
1165
  * import { Effect, Fiber, PubSub } from "effect"
1200
1166
  *
1201
- * const program = Effect.gen(function*() {
1167
+ * const program = Effect.scoped(Effect.gen(function*() {
1202
1168
  * const pubsub = yield* PubSub.bounded<string>(10)
1203
1169
  *
1204
1170
  * // Publish multiple messages at once
1205
- * const messages = ["Hello", "World", "from", "Effect"]
1206
- * const allPublished = yield* PubSub.publishAll(pubsub, messages)
1207
- * console.log("All messages published:", allPublished) // true
1171
+ * const allPublished = yield* PubSub.publishAll(pubsub, ["Hello", "World", "from", "Effect"])
1208
1172
  *
1209
1173
  * // With a smaller capacity and an active subscription
1210
1174
  * const smallPubsub = yield* PubSub.bounded<string>(2)
1211
- * const manyMessages = ["msg1", "msg2", "msg3", "msg4"]
1175
+ * const subscription = yield* PubSub.subscribe(smallPubsub)
1212
1176
  *
1213
- * yield* Effect.scoped(Effect.gen(function*() {
1214
- * const subscription = yield* PubSub.subscribe(smallPubsub)
1177
+ * // Will suspend until space becomes available for all messages
1178
+ * const fiber = yield* Effect.forkChild(PubSub.publishAll(smallPubsub, ["msg1", "msg2", "msg3", "msg4"]))
1215
1179
  *
1216
- * // Will suspend until space becomes available for all messages
1217
- * const fiber = yield* Effect.forkChild(PubSub.publishAll(smallPubsub, manyMessages))
1180
+ * const firstBatch = yield* PubSub.takeBetween(subscription, 2, 2)
1181
+ * const result = yield* Fiber.join(fiber)
1182
+ * const secondBatch = yield* PubSub.takeAll(subscription)
1183
+ * return { allPublished, firstBatch, result, secondBatch }
1184
+ * }))
1218
1185
  *
1219
- * const firstBatch = yield* PubSub.takeBetween(subscription, 2, 2)
1220
- * console.log("First batch:", firstBatch) // ["msg1", "msg2"]
1221
- *
1222
- * const result = yield* Fiber.join(fiber)
1223
- * console.log("All messages eventually published:", result) // true
1224
- *
1225
- * const secondBatch = yield* PubSub.takeAll(subscription)
1226
- * console.log("Second batch:", secondBatch) // ["msg3", "msg4"]
1227
- * }))
1228
- * })
1186
+ * const actual = await Effect.runPromise(program)
1187
+ * actual // => { allPublished: true, firstBatch: ["msg1", "msg2"], result: true, secondBatch: ["msg3", "msg4"] }
1229
1188
  * ```
1230
1189
  *
1231
1190
  * @category publishing
@@ -1238,37 +1197,30 @@ export const publishAll: {
1238
1197
  *
1239
1198
  * **Example** (Publishing multiple messages)
1240
1199
  *
1241
- * ```ts
1200
+ * ```ts import.meta.vitest
1242
1201
  * import { Effect, Fiber, PubSub } from "effect"
1243
1202
  *
1244
- * const program = Effect.gen(function*() {
1203
+ * const program = Effect.scoped(Effect.gen(function*() {
1245
1204
  * const pubsub = yield* PubSub.bounded<string>(10)
1246
1205
  *
1247
1206
  * // Publish multiple messages at once
1248
- * const messages = ["Hello", "World", "from", "Effect"]
1249
- * const allPublished = yield* PubSub.publishAll(pubsub, messages)
1250
- * console.log("All messages published:", allPublished) // true
1207
+ * const allPublished = yield* PubSub.publishAll(pubsub, ["Hello", "World", "from", "Effect"])
1251
1208
  *
1252
1209
  * // With a smaller capacity and an active subscription
1253
1210
  * const smallPubsub = yield* PubSub.bounded<string>(2)
1254
- * const manyMessages = ["msg1", "msg2", "msg3", "msg4"]
1211
+ * const subscription = yield* PubSub.subscribe(smallPubsub)
1255
1212
  *
1256
- * yield* Effect.scoped(Effect.gen(function*() {
1257
- * const subscription = yield* PubSub.subscribe(smallPubsub)
1213
+ * // Will suspend until space becomes available for all messages
1214
+ * const fiber = yield* Effect.forkChild(PubSub.publishAll(smallPubsub, ["msg1", "msg2", "msg3", "msg4"]))
1258
1215
  *
1259
- * // Will suspend until space becomes available for all messages
1260
- * const fiber = yield* Effect.forkChild(PubSub.publishAll(smallPubsub, manyMessages))
1216
+ * const firstBatch = yield* PubSub.takeBetween(subscription, 2, 2)
1217
+ * const result = yield* Fiber.join(fiber)
1218
+ * const secondBatch = yield* PubSub.takeAll(subscription)
1219
+ * return { allPublished, firstBatch, result, secondBatch }
1220
+ * }))
1261
1221
  *
1262
- * const firstBatch = yield* PubSub.takeBetween(subscription, 2, 2)
1263
- * console.log("First batch:", firstBatch) // ["msg1", "msg2"]
1264
- *
1265
- * const result = yield* Fiber.join(fiber)
1266
- * console.log("All messages eventually published:", result) // true
1267
- *
1268
- * const secondBatch = yield* PubSub.takeAll(subscription)
1269
- * console.log("Second batch:", secondBatch) // ["msg3", "msg4"]
1270
- * }))
1271
- * })
1222
+ * const actual = await Effect.runPromise(program)
1223
+ * actual // => { allPublished: true, firstBatch: ["msg1", "msg2"], result: true, secondBatch: ["msg3", "msg4"] }
1272
1224
  * ```
1273
1225
  *
1274
1226
  * @category publishing
@@ -1300,14 +1252,14 @@ export const publishAll: {
1300
1252
  *
1301
1253
  * **Example** (Subscribing to messages)
1302
1254
  *
1303
- * ```ts
1255
+ * ```ts import.meta.vitest
1304
1256
  * import { Effect, PubSub } from "effect"
1305
1257
  *
1306
1258
  * const program = Effect.gen(function*() {
1307
1259
  * const pubsub = yield* PubSub.bounded<string>(10)
1308
1260
  *
1309
1261
  * // Subscribe within a scope for automatic cleanup
1310
- * yield* Effect.scoped(Effect.gen(function*() {
1262
+ * const first = yield* Effect.scoped(Effect.gen(function*() {
1311
1263
  * const subscription = yield* PubSub.subscribe(pubsub)
1312
1264
  *
1313
1265
  * // Publish some messages
@@ -1317,25 +1269,28 @@ export const publishAll: {
1317
1269
  * // Take messages one by one
1318
1270
  * const msg1 = yield* PubSub.take(subscription)
1319
1271
  * const msg2 = yield* PubSub.take(subscription)
1320
- * console.log(msg1, msg2) // "Hello", "World"
1321
1272
  *
1322
1273
  * // Subscription is automatically cleaned up when scope exits
1274
+ * return [msg1, msg2]
1323
1275
  * }))
1324
1276
  *
1325
- * yield* Effect.scoped(Effect.gen(function*() {
1277
+ * const second = yield* Effect.scoped(Effect.gen(function*() {
1326
1278
  * const sub1 = yield* PubSub.subscribe(pubsub)
1327
1279
  * const sub2 = yield* PubSub.subscribe(pubsub)
1328
1280
  *
1329
1281
  * // Multiple subscribers can receive the same messages
1330
1282
  * yield* PubSub.publish(pubsub, "Broadcast")
1331
1283
  *
1332
- * const [msg1, msg2] = yield* Effect.all([
1284
+ * return yield* Effect.all([
1333
1285
  * PubSub.take(sub1),
1334
1286
  * PubSub.take(sub2)
1335
1287
  * ])
1336
- * console.log("Both received:", msg1, msg2) // "Broadcast", "Broadcast"
1337
1288
  * }))
1289
+ * return [first, second]
1338
1290
  * })
1291
+ *
1292
+ * const actual = await Effect.runPromise(program)
1293
+ * actual // => [["Hello", "World"], ["Broadcast", "Broadcast"]]
1339
1294
  * ```
1340
1295
  *
1341
1296
  * @category subscriptions
@@ -1367,6 +1322,7 @@ const unsubscribe = <A>(self: Subscription<A>): Effect.Effect<void> =>
1367
1322
  Effect.sync(() => {
1368
1323
  self.subscribers.delete(self.subscription)
1369
1324
  self.subscription.unsubscribe()
1325
+ self.replayWindow.close()
1370
1326
  self.strategy.onPubSubEmptySpaceUnsafe(self.pubsub, self.subscribers)
1371
1327
  })
1372
1328
  ),
@@ -1382,28 +1338,26 @@ const unsubscribe = <A>(self: Subscription<A>): Effect.Effect<void> =>
1382
1338
  *
1383
1339
  * **Example** (Taking a message)
1384
1340
  *
1385
- * ```ts
1341
+ * ```ts import.meta.vitest
1386
1342
  * import { Effect, Fiber, PubSub } from "effect"
1387
1343
  *
1388
- * const program = Effect.gen(function*() {
1344
+ * const program = Effect.scoped(Effect.gen(function*() {
1389
1345
  * const pubsub = yield* PubSub.bounded<string>(10)
1390
1346
  *
1391
- * yield* Effect.scoped(Effect.gen(function*() {
1392
- * const subscription = yield* PubSub.subscribe(pubsub)
1347
+ * const subscription = yield* PubSub.subscribe(pubsub)
1393
1348
  *
1394
- * // Start a fiber to take a message (will suspend)
1395
- * const takeFiber = yield* Effect.forkChild(
1396
- * PubSub.take(subscription)
1397
- * )
1349
+ * // Start a fiber to take a message (will suspend)
1350
+ * const takeFiber = yield* Effect.forkChild(PubSub.take(subscription))
1398
1351
  *
1399
- * // Publish a message
1400
- * yield* PubSub.publish(pubsub, "Hello")
1352
+ * // Publish a message
1353
+ * yield* PubSub.publish(pubsub, "Hello")
1401
1354
  *
1402
- * // The take will now complete
1403
- * const message = yield* Fiber.join(takeFiber)
1404
- * console.log("Received:", message) // "Hello"
1405
- * }))
1406
- * })
1355
+ * // The take will now complete
1356
+ * return yield* Fiber.join(takeFiber)
1357
+ * }))
1358
+ *
1359
+ * const actual = await Effect.runPromise(program)
1360
+ * actual // => "Hello"
1407
1361
  * ```
1408
1362
  *
1409
1363
  * @category subscriptions
@@ -1435,23 +1389,23 @@ export const take = <A>(self: Subscription<A>): Effect.Effect<A> =>
1435
1389
  *
1436
1390
  * **Example** (Taking all available messages)
1437
1391
  *
1438
- * ```ts
1392
+ * ```ts import.meta.vitest
1439
1393
  * import { Effect, PubSub } from "effect"
1440
1394
  *
1441
- * const program = Effect.gen(function*() {
1395
+ * const program = Effect.scoped(Effect.gen(function*() {
1442
1396
  * const pubsub = yield* PubSub.bounded<string>(10)
1443
1397
  *
1444
- * yield* Effect.scoped(Effect.gen(function*() {
1445
- * const subscription = yield* PubSub.subscribe(pubsub)
1398
+ * const subscription = yield* PubSub.subscribe(pubsub)
1446
1399
  *
1447
- * // Publish multiple messages
1448
- * yield* PubSub.publishAll(pubsub, ["msg1", "msg2", "msg3"])
1400
+ * // Publish multiple messages
1401
+ * yield* PubSub.publishAll(pubsub, ["msg1", "msg2", "msg3"])
1449
1402
  *
1450
- * // Take all available messages at once
1451
- * const allMessages = yield* PubSub.takeAll(subscription)
1452
- * console.log("All messages:", allMessages) // ["msg1", "msg2", "msg3"]
1453
- * }))
1454
- * })
1403
+ * // Take all available messages at once
1404
+ * return yield* PubSub.takeAll(subscription)
1405
+ * }))
1406
+ *
1407
+ * const actual = await Effect.runPromise(program)
1408
+ * actual // => ["msg1", "msg2", "msg3"]
1455
1409
  * ```
1456
1410
  *
1457
1411
  * @category subscriptions
@@ -1506,31 +1460,30 @@ const pollForItem = <A>(self: Subscription<A>) => {
1506
1460
  *
1507
1461
  * **Example** (Taking up to a maximum number of messages)
1508
1462
  *
1509
- * ```ts
1463
+ * ```ts import.meta.vitest
1510
1464
  * import { Effect, PubSub } from "effect"
1511
1465
  *
1512
- * const program = Effect.gen(function*() {
1466
+ * const program = Effect.scoped(Effect.gen(function*() {
1513
1467
  * const pubsub = yield* PubSub.bounded<string>(10)
1514
1468
  *
1515
- * yield* Effect.scoped(Effect.gen(function*() {
1516
- * const subscription = yield* PubSub.subscribe(pubsub)
1469
+ * const subscription = yield* PubSub.subscribe(pubsub)
1517
1470
  *
1518
- * // Publish multiple messages
1519
- * yield* PubSub.publishAll(pubsub, ["msg1", "msg2", "msg3", "msg4", "msg5"])
1471
+ * // Publish multiple messages
1472
+ * yield* PubSub.publishAll(pubsub, ["msg1", "msg2", "msg3", "msg4", "msg5"])
1520
1473
  *
1521
- * // Take up to 3 messages
1522
- * const upTo3 = yield* PubSub.takeUpTo(subscription, 3)
1523
- * console.log("Up to 3:", upTo3) // ["msg1", "msg2", "msg3"]
1474
+ * // Take up to 3 messages
1475
+ * const upTo3 = yield* PubSub.takeUpTo(subscription, 3)
1524
1476
  *
1525
- * // Take up to 5 more (only 2 remaining)
1526
- * const upTo5 = yield* PubSub.takeUpTo(subscription, 5)
1527
- * console.log("Up to 5:", upTo5) // ["msg4", "msg5"]
1477
+ * // Take up to 5 more (only 2 remaining)
1478
+ * const upTo5 = yield* PubSub.takeUpTo(subscription, 5)
1528
1479
  *
1529
- * // No more messages available
1530
- * const noMore = yield* PubSub.takeUpTo(subscription, 10)
1531
- * console.log("No more:", noMore) // []
1532
- * }))
1533
- * })
1480
+ * // No more messages available
1481
+ * const noMore = yield* PubSub.takeUpTo(subscription, 10)
1482
+ * return [upTo3, upTo5, noMore]
1483
+ * }))
1484
+ *
1485
+ * const actual = await Effect.runPromise(program)
1486
+ * actual // => [["msg1", "msg2", "msg3"], ["msg4", "msg5"], []]
1534
1487
  * ```
1535
1488
  *
1536
1489
  * @category subscriptions
@@ -1542,31 +1495,30 @@ export const takeUpTo: {
1542
1495
  *
1543
1496
  * **Example** (Taking up to a maximum number of messages)
1544
1497
  *
1545
- * ```ts
1498
+ * ```ts import.meta.vitest
1546
1499
  * import { Effect, PubSub } from "effect"
1547
1500
  *
1548
- * const program = Effect.gen(function*() {
1501
+ * const program = Effect.scoped(Effect.gen(function*() {
1549
1502
  * const pubsub = yield* PubSub.bounded<string>(10)
1550
1503
  *
1551
- * yield* Effect.scoped(Effect.gen(function*() {
1552
- * const subscription = yield* PubSub.subscribe(pubsub)
1504
+ * const subscription = yield* PubSub.subscribe(pubsub)
1553
1505
  *
1554
- * // Publish multiple messages
1555
- * yield* PubSub.publishAll(pubsub, ["msg1", "msg2", "msg3", "msg4", "msg5"])
1506
+ * // Publish multiple messages
1507
+ * yield* PubSub.publishAll(pubsub, ["msg1", "msg2", "msg3", "msg4", "msg5"])
1556
1508
  *
1557
- * // Take up to 3 messages
1558
- * const upTo3 = yield* PubSub.takeUpTo(subscription, 3)
1559
- * console.log("Up to 3:", upTo3) // ["msg1", "msg2", "msg3"]
1509
+ * // Take up to 3 messages
1510
+ * const upTo3 = yield* PubSub.takeUpTo(subscription, 3)
1560
1511
  *
1561
- * // Take up to 5 more (only 2 remaining)
1562
- * const upTo5 = yield* PubSub.takeUpTo(subscription, 5)
1563
- * console.log("Up to 5:", upTo5) // ["msg4", "msg5"]
1512
+ * // Take up to 5 more (only 2 remaining)
1513
+ * const upTo5 = yield* PubSub.takeUpTo(subscription, 5)
1564
1514
  *
1565
- * // No more messages available
1566
- * const noMore = yield* PubSub.takeUpTo(subscription, 10)
1567
- * console.log("No more:", noMore) // []
1568
- * }))
1569
- * })
1515
+ * // No more messages available
1516
+ * const noMore = yield* PubSub.takeUpTo(subscription, 10)
1517
+ * return [upTo3, upTo5, noMore]
1518
+ * }))
1519
+ *
1520
+ * const actual = await Effect.runPromise(program)
1521
+ * actual // => [["msg1", "msg2", "msg3"], ["msg4", "msg5"], []]
1570
1522
  * ```
1571
1523
  *
1572
1524
  * @category subscriptions
@@ -1578,31 +1530,30 @@ export const takeUpTo: {
1578
1530
  *
1579
1531
  * **Example** (Taking up to a maximum number of messages)
1580
1532
  *
1581
- * ```ts
1533
+ * ```ts import.meta.vitest
1582
1534
  * import { Effect, PubSub } from "effect"
1583
1535
  *
1584
- * const program = Effect.gen(function*() {
1536
+ * const program = Effect.scoped(Effect.gen(function*() {
1585
1537
  * const pubsub = yield* PubSub.bounded<string>(10)
1586
1538
  *
1587
- * yield* Effect.scoped(Effect.gen(function*() {
1588
- * const subscription = yield* PubSub.subscribe(pubsub)
1539
+ * const subscription = yield* PubSub.subscribe(pubsub)
1589
1540
  *
1590
- * // Publish multiple messages
1591
- * yield* PubSub.publishAll(pubsub, ["msg1", "msg2", "msg3", "msg4", "msg5"])
1541
+ * // Publish multiple messages
1542
+ * yield* PubSub.publishAll(pubsub, ["msg1", "msg2", "msg3", "msg4", "msg5"])
1592
1543
  *
1593
- * // Take up to 3 messages
1594
- * const upTo3 = yield* PubSub.takeUpTo(subscription, 3)
1595
- * console.log("Up to 3:", upTo3) // ["msg1", "msg2", "msg3"]
1544
+ * // Take up to 3 messages
1545
+ * const upTo3 = yield* PubSub.takeUpTo(subscription, 3)
1596
1546
  *
1597
- * // Take up to 5 more (only 2 remaining)
1598
- * const upTo5 = yield* PubSub.takeUpTo(subscription, 5)
1599
- * console.log("Up to 5:", upTo5) // ["msg4", "msg5"]
1547
+ * // Take up to 5 more (only 2 remaining)
1548
+ * const upTo5 = yield* PubSub.takeUpTo(subscription, 5)
1600
1549
  *
1601
- * // No more messages available
1602
- * const noMore = yield* PubSub.takeUpTo(subscription, 10)
1603
- * console.log("No more:", noMore) // []
1604
- * }))
1605
- * })
1550
+ * // No more messages available
1551
+ * const noMore = yield* PubSub.takeUpTo(subscription, 10)
1552
+ * return [upTo3, upTo5, noMore]
1553
+ * }))
1554
+ *
1555
+ * const actual = await Effect.runPromise(program)
1556
+ * actual // => [["msg1", "msg2", "msg3"], ["msg4", "msg5"], []]
1606
1557
  * ```
1607
1558
  *
1608
1559
  * @category subscriptions
@@ -1632,28 +1583,26 @@ export const takeUpTo: {
1632
1583
  *
1633
1584
  * **Example** (Taking between a minimum and maximum)
1634
1585
  *
1635
- * ```ts
1586
+ * ```ts import.meta.vitest
1636
1587
  * import { Effect, Fiber, PubSub } from "effect"
1637
1588
  *
1638
- * const program = Effect.gen(function*() {
1589
+ * const program = Effect.scoped(Effect.gen(function*() {
1639
1590
  * const pubsub = yield* PubSub.bounded<string>(10)
1640
1591
  *
1641
- * yield* Effect.scoped(Effect.gen(function*() {
1642
- * const subscription = yield* PubSub.subscribe(pubsub)
1592
+ * const subscription = yield* PubSub.subscribe(pubsub)
1643
1593
  *
1644
- * // Start taking between 2 and 5 messages (will suspend)
1645
- * const takeFiber = yield* Effect.forkChild(
1646
- * PubSub.takeBetween(subscription, 2, 5)
1647
- * )
1594
+ * // Start taking between 2 and 5 messages (will suspend)
1595
+ * const takeFiber = yield* Effect.forkChild(PubSub.takeBetween(subscription, 2, 5))
1648
1596
  *
1649
- * // Publish 3 messages
1650
- * yield* PubSub.publishAll(pubsub, ["msg1", "msg2", "msg3"])
1597
+ * // Publish 3 messages
1598
+ * yield* PubSub.publishAll(pubsub, ["msg1", "msg2", "msg3"])
1651
1599
  *
1652
- * // Now the take will complete with 3 messages
1653
- * const messages = yield* Fiber.join(takeFiber)
1654
- * console.log("Between 2-5:", messages) // ["msg1", "msg2", "msg3"]
1655
- * }))
1656
- * })
1600
+ * // Now the take will complete with 3 messages
1601
+ * return yield* Fiber.join(takeFiber)
1602
+ * }))
1603
+ *
1604
+ * const actual = await Effect.runPromise(program)
1605
+ * actual // => ["msg1", "msg2", "msg3"]
1657
1606
  * ```
1658
1607
  *
1659
1608
  * @category subscriptions
@@ -1666,28 +1615,26 @@ export const takeBetween: {
1666
1615
  *
1667
1616
  * **Example** (Taking between a minimum and maximum)
1668
1617
  *
1669
- * ```ts
1618
+ * ```ts import.meta.vitest
1670
1619
  * import { Effect, Fiber, PubSub } from "effect"
1671
1620
  *
1672
- * const program = Effect.gen(function*() {
1621
+ * const program = Effect.scoped(Effect.gen(function*() {
1673
1622
  * const pubsub = yield* PubSub.bounded<string>(10)
1674
1623
  *
1675
- * yield* Effect.scoped(Effect.gen(function*() {
1676
- * const subscription = yield* PubSub.subscribe(pubsub)
1624
+ * const subscription = yield* PubSub.subscribe(pubsub)
1677
1625
  *
1678
- * // Start taking between 2 and 5 messages (will suspend)
1679
- * const takeFiber = yield* Effect.forkChild(
1680
- * PubSub.takeBetween(subscription, 2, 5)
1681
- * )
1626
+ * // Start taking between 2 and 5 messages (will suspend)
1627
+ * const takeFiber = yield* Effect.forkChild(PubSub.takeBetween(subscription, 2, 5))
1682
1628
  *
1683
- * // Publish 3 messages
1684
- * yield* PubSub.publishAll(pubsub, ["msg1", "msg2", "msg3"])
1629
+ * // Publish 3 messages
1630
+ * yield* PubSub.publishAll(pubsub, ["msg1", "msg2", "msg3"])
1685
1631
  *
1686
- * // Now the take will complete with 3 messages
1687
- * const messages = yield* Fiber.join(takeFiber)
1688
- * console.log("Between 2-5:", messages) // ["msg1", "msg2", "msg3"]
1689
- * }))
1690
- * })
1632
+ * // Now the take will complete with 3 messages
1633
+ * return yield* Fiber.join(takeFiber)
1634
+ * }))
1635
+ *
1636
+ * const actual = await Effect.runPromise(program)
1637
+ * actual // => ["msg1", "msg2", "msg3"]
1691
1638
  * ```
1692
1639
  *
1693
1640
  * @category subscriptions
@@ -1700,28 +1647,26 @@ export const takeBetween: {
1700
1647
  *
1701
1648
  * **Example** (Taking between a minimum and maximum)
1702
1649
  *
1703
- * ```ts
1650
+ * ```ts import.meta.vitest
1704
1651
  * import { Effect, Fiber, PubSub } from "effect"
1705
1652
  *
1706
- * const program = Effect.gen(function*() {
1653
+ * const program = Effect.scoped(Effect.gen(function*() {
1707
1654
  * const pubsub = yield* PubSub.bounded<string>(10)
1708
1655
  *
1709
- * yield* Effect.scoped(Effect.gen(function*() {
1710
- * const subscription = yield* PubSub.subscribe(pubsub)
1656
+ * const subscription = yield* PubSub.subscribe(pubsub)
1711
1657
  *
1712
- * // Start taking between 2 and 5 messages (will suspend)
1713
- * const takeFiber = yield* Effect.forkChild(
1714
- * PubSub.takeBetween(subscription, 2, 5)
1715
- * )
1658
+ * // Start taking between 2 and 5 messages (will suspend)
1659
+ * const takeFiber = yield* Effect.forkChild(PubSub.takeBetween(subscription, 2, 5))
1716
1660
  *
1717
- * // Publish 3 messages
1718
- * yield* PubSub.publishAll(pubsub, ["msg1", "msg2", "msg3"])
1661
+ * // Publish 3 messages
1662
+ * yield* PubSub.publishAll(pubsub, ["msg1", "msg2", "msg3"])
1719
1663
  *
1720
- * // Now the take will complete with 3 messages
1721
- * const messages = yield* Fiber.join(takeFiber)
1722
- * console.log("Between 2-5:", messages) // ["msg1", "msg2", "msg3"]
1723
- * }))
1724
- * })
1664
+ * // Now the take will complete with 3 messages
1665
+ * return yield* Fiber.join(takeFiber)
1666
+ * }))
1667
+ *
1668
+ * const actual = await Effect.runPromise(program)
1669
+ * actual // => ["msg1", "msg2", "msg3"]
1725
1670
  * ```
1726
1671
  *
1727
1672
  * @category subscriptions
@@ -1783,29 +1728,29 @@ const takeRemainderLoop = <A>(
1783
1728
  *
1784
1729
  * **Example** (Checking remaining messages)
1785
1730
  *
1786
- * ```ts
1731
+ * ```ts import.meta.vitest
1787
1732
  * import { Effect, PubSub } from "effect"
1788
1733
  *
1789
- * const program = Effect.gen(function*() {
1734
+ * const program = Effect.scoped(Effect.gen(function*() {
1790
1735
  * const pubsub = yield* PubSub.bounded<string>(10)
1791
1736
  *
1792
- * yield* Effect.scoped(Effect.gen(function*() {
1793
- * const subscription = yield* PubSub.subscribe(pubsub)
1737
+ * const subscription = yield* PubSub.subscribe(pubsub)
1794
1738
  *
1795
- * // Publish some messages
1796
- * yield* PubSub.publishAll(pubsub, ["msg1", "msg2", "msg3"])
1739
+ * // Publish some messages
1740
+ * yield* PubSub.publishAll(pubsub, ["msg1", "msg2", "msg3"])
1797
1741
  *
1798
- * // Check how many messages are available
1799
- * const count = yield* PubSub.remaining(subscription)
1800
- * console.log("Messages available:", count) // 3
1742
+ * // Check how many messages are available
1743
+ * const count = yield* PubSub.remaining(subscription)
1801
1744
  *
1802
- * // Take one message
1803
- * yield* PubSub.take(subscription)
1745
+ * // Take one message
1746
+ * const message = yield* PubSub.take(subscription)
1804
1747
  *
1805
- * const remaining = yield* PubSub.remaining(subscription)
1806
- * console.log("Messages remaining:", remaining) // 2
1807
- * }))
1808
- * })
1748
+ * const remaining = yield* PubSub.remaining(subscription)
1749
+ * return { count, message, remaining }
1750
+ * }))
1751
+ *
1752
+ * const actual = await Effect.runPromise(program)
1753
+ * actual // => { count: 3, message: "msg1", remaining: 2 }
1809
1754
  * ```
1810
1755
  *
1811
1756
  * @see {@link remainingUnsafe} for a synchronous check that reports shutdown as `Option.none()`
@@ -1831,23 +1776,17 @@ export const remaining = <A>(self: Subscription<A>): Effect.Effect<number> =>
1831
1776
  *
1832
1777
  * **Example** (Checking remaining messages synchronously)
1833
1778
  *
1834
- * ```ts
1835
- * import { PubSub } from "effect"
1779
+ * ```ts import.meta.vitest
1780
+ * import { Effect, Option, PubSub } from "effect"
1836
1781
  *
1837
- * declare const subscription: PubSub.Subscription<string>
1838
- *
1839
- * // Unsafe synchronous check for remaining messages
1840
- * const remainingOption = PubSub.remainingUnsafe(subscription)
1841
- * if (remainingOption._tag === "Some") {
1842
- * console.log("Messages available:", remainingOption.value)
1843
- * } else {
1844
- * console.log("Subscription is shutdown")
1845
- * }
1782
+ * const program = Effect.scoped(Effect.gen(function*() {
1783
+ * const pubsub = yield* PubSub.bounded<string>(2)
1784
+ * const subscription = yield* PubSub.subscribe(pubsub)
1785
+ * return PubSub.remainingUnsafe(subscription)
1786
+ * }))
1846
1787
  *
1847
- * // Useful for polling or batching scenarios
1848
- * if (remainingOption._tag === "Some" && remainingOption.value > 10) {
1849
- * // Process messages in batch
1850
- * }
1788
+ * const actual = await Effect.runPromise(program)
1789
+ * actual // => Option.some(0)
1851
1790
  * ```
1852
1791
  *
1853
1792
  * @see {@link remaining} for the effectful variant that interrupts on shutdown
@@ -1914,6 +1853,7 @@ const makeSubscriptionUnsafe = <A>(
1914
1853
 
1915
1854
  class BoundedPubSubArb<in out A> implements PubSub.Atomic<A> {
1916
1855
  array: Array<A>
1856
+ replayIndices: Array<number>
1917
1857
  publisherIndex = 0
1918
1858
  subscribers: Array<number>
1919
1859
  subscriberCount = 0
@@ -1926,6 +1866,7 @@ class BoundedPubSubArb<in out A> implements PubSub.Atomic<A> {
1926
1866
  this.capacity = capacity
1927
1867
  this.replayBuffer = replayBuffer
1928
1868
  this.array = Array.from({ length: capacity })
1869
+ this.replayIndices = replayBuffer ? Array.from({ length: capacity }) : []
1929
1870
  this.subscribers = Array.from({ length: capacity })
1930
1871
  }
1931
1872
 
@@ -1949,15 +1890,16 @@ class BoundedPubSubArb<in out A> implements PubSub.Atomic<A> {
1949
1890
  if (this.isFull()) {
1950
1891
  return false
1951
1892
  }
1893
+ const replayIndex = this.replayBuffer?.offer(value)
1952
1894
  if (this.subscriberCount !== 0) {
1953
1895
  const index = this.publisherIndex % this.capacity
1954
1896
  this.array[index] = value
1897
+ if (replayIndex !== undefined) {
1898
+ this.replayIndices[index] = replayIndex
1899
+ }
1955
1900
  this.subscribers[index] = this.subscriberCount
1956
1901
  this.publisherIndex += 1
1957
1902
  }
1958
- if (this.replayBuffer) {
1959
- this.replayBuffer.offer(value)
1960
- }
1961
1903
  return true
1962
1904
  }
1963
1905
 
@@ -1982,11 +1924,12 @@ class BoundedPubSubArb<in out A> implements PubSub.Atomic<A> {
1982
1924
  const a = chunk[iteratorIndex++]
1983
1925
  const index = this.publisherIndex % this.capacity
1984
1926
  this.array[index] = a
1927
+ const replayIndex = this.replayBuffer?.offer(a)
1928
+ if (replayIndex !== undefined) {
1929
+ this.replayIndices[index] = replayIndex
1930
+ }
1985
1931
  this.subscribers[index] = this.subscriberCount
1986
1932
  this.publisherIndex += 1
1987
- if (this.replayBuffer) {
1988
- this.replayBuffer.offer(a)
1989
- }
1990
1933
  }
1991
1934
  return chunk.slice(iteratorIndex)
1992
1935
  }
@@ -1994,12 +1937,11 @@ class BoundedPubSubArb<in out A> implements PubSub.Atomic<A> {
1994
1937
  slide(): void {
1995
1938
  if (this.subscribersIndex !== this.publisherIndex) {
1996
1939
  const index = this.subscribersIndex % this.capacity
1940
+ const value = this.array[index]
1997
1941
  this.array[index] = AbsentValue as unknown as A
1998
1942
  this.subscribers[index] = 0
1999
1943
  this.subscribersIndex += 1
2000
- }
2001
- if (this.replayBuffer) {
2002
- this.replayBuffer.slide()
1944
+ this.replayBuffer?.slide(value, this.replayIndices[index])
2003
1945
  }
2004
1946
  }
2005
1947
 
@@ -2105,6 +2047,7 @@ class BoundedPubSubArbSubscription<in out A> implements PubSub.BackingSubscripti
2105
2047
 
2106
2048
  class BoundedPubSubPow2<in out A> implements PubSub.Atomic<A> {
2107
2049
  array: Array<A>
2050
+ replayIndices: Array<number>
2108
2051
  mask: number
2109
2052
  publisherIndex = 0
2110
2053
  subscribers: Array<number>
@@ -2118,6 +2061,7 @@ class BoundedPubSubPow2<in out A> implements PubSub.Atomic<A> {
2118
2061
  this.capacity = capacity
2119
2062
  this.replayBuffer = replayBuffer
2120
2063
  this.array = Array.from({ length: capacity })
2064
+ this.replayIndices = replayBuffer ? Array.from({ length: capacity }) : []
2121
2065
  this.mask = capacity - 1
2122
2066
  this.subscribers = Array.from({ length: capacity })
2123
2067
  }
@@ -2142,15 +2086,16 @@ class BoundedPubSubPow2<in out A> implements PubSub.Atomic<A> {
2142
2086
  if (this.isFull()) {
2143
2087
  return false
2144
2088
  }
2089
+ const replayIndex = this.replayBuffer?.offer(value)
2145
2090
  if (this.subscriberCount !== 0) {
2146
2091
  const index = this.publisherIndex & this.mask
2147
2092
  this.array[index] = value
2093
+ if (replayIndex !== undefined) {
2094
+ this.replayIndices[index] = replayIndex
2095
+ }
2148
2096
  this.subscribers[index] = this.subscriberCount
2149
2097
  this.publisherIndex += 1
2150
2098
  }
2151
- if (this.replayBuffer) {
2152
- this.replayBuffer.offer(value)
2153
- }
2154
2099
  return true
2155
2100
  }
2156
2101
 
@@ -2175,11 +2120,12 @@ class BoundedPubSubPow2<in out A> implements PubSub.Atomic<A> {
2175
2120
  const elem = chunk[iteratorIndex++]
2176
2121
  const index = this.publisherIndex & this.mask
2177
2122
  this.array[index] = elem
2123
+ const replayIndex = this.replayBuffer?.offer(elem)
2124
+ if (replayIndex !== undefined) {
2125
+ this.replayIndices[index] = replayIndex
2126
+ }
2178
2127
  this.subscribers[index] = this.subscriberCount
2179
2128
  this.publisherIndex += 1
2180
- if (this.replayBuffer) {
2181
- this.replayBuffer.offer(elem)
2182
- }
2183
2129
  }
2184
2130
  return chunk.slice(iteratorIndex)
2185
2131
  }
@@ -2187,12 +2133,11 @@ class BoundedPubSubPow2<in out A> implements PubSub.Atomic<A> {
2187
2133
  slide(): void {
2188
2134
  if (this.subscribersIndex !== this.publisherIndex) {
2189
2135
  const index = this.subscribersIndex & this.mask
2136
+ const value = this.array[index]
2190
2137
  this.array[index] = AbsentValue as unknown as A
2191
2138
  this.subscribers[index] = 0
2192
2139
  this.subscribersIndex += 1
2193
- }
2194
- if (this.replayBuffer) {
2195
- this.replayBuffer.slide()
2140
+ this.replayBuffer?.slide(value, this.replayIndices[index])
2196
2141
  }
2197
2142
  }
2198
2143
 
@@ -2300,6 +2245,7 @@ class BoundedPubSubSingle<in out A> implements PubSub.Atomic<A> {
2300
2245
  subscriberCount = 0
2301
2246
  subscribers = 0
2302
2247
  value: A = AbsentValue as unknown as A
2248
+ replayIndex = 0
2303
2249
 
2304
2250
  readonly capacity = 1
2305
2251
  readonly replayBuffer: ReplayBuffer<A> | undefined
@@ -2332,14 +2278,15 @@ class BoundedPubSubSingle<in out A> implements PubSub.Atomic<A> {
2332
2278
  if (this.isFull()) {
2333
2279
  return false
2334
2280
  }
2281
+ const replayIndex = this.replayBuffer?.offer(value)
2335
2282
  if (this.subscriberCount !== 0) {
2336
2283
  this.value = value
2284
+ if (replayIndex !== undefined) {
2285
+ this.replayIndex = replayIndex
2286
+ }
2337
2287
  this.subscribers = this.subscriberCount
2338
2288
  this.publisherIndex += 1
2339
2289
  }
2340
- if (this.replayBuffer) {
2341
- this.replayBuffer.offer(value)
2342
- }
2343
2290
  return true
2344
2291
  }
2345
2292
 
@@ -2363,11 +2310,10 @@ class BoundedPubSubSingle<in out A> implements PubSub.Atomic<A> {
2363
2310
 
2364
2311
  slide(): void {
2365
2312
  if (this.isFull()) {
2313
+ const value = this.value
2366
2314
  this.subscribers = 0
2367
2315
  this.value = AbsentValue as unknown as A
2368
- }
2369
- if (this.replayBuffer) {
2370
- this.replayBuffer.slide()
2316
+ this.replayBuffer?.slide(value, this.replayIndex)
2371
2317
  }
2372
2318
  }
2373
2319
 
@@ -2446,6 +2392,7 @@ class BoundedPubSubSingleSubscription<in out A> implements PubSub.BackingSubscri
2446
2392
 
2447
2393
  interface Node<out A> {
2448
2394
  value: A | AbsentValue
2395
+ replayIndex: number | undefined
2449
2396
  subscribers: number
2450
2397
  next: Node<A> | null
2451
2398
  }
@@ -2453,6 +2400,7 @@ interface Node<out A> {
2453
2400
  class UnboundedPubSub<in out A> implements PubSub.Atomic<A> {
2454
2401
  publisherHead: Node<A> = {
2455
2402
  value: AbsentValue,
2403
+ replayIndex: undefined,
2456
2404
  subscribers: 0,
2457
2405
  next: null
2458
2406
  }
@@ -2484,19 +2432,19 @@ class UnboundedPubSub<in out A> implements PubSub.Atomic<A> {
2484
2432
  }
2485
2433
 
2486
2434
  publish(value: A): boolean {
2435
+ const replayIndex = this.replayBuffer?.offer(value)
2487
2436
  const subscribers = this.publisherTail.subscribers
2488
2437
  if (subscribers !== 0) {
2489
- this.publisherTail.next = {
2438
+ const node: Node<A> = {
2490
2439
  value,
2440
+ replayIndex,
2491
2441
  subscribers,
2492
2442
  next: null
2493
2443
  }
2444
+ this.publisherTail.next = node
2494
2445
  this.publisherTail = this.publisherTail.next
2495
2446
  this.publisherIndex += 1
2496
2447
  }
2497
- if (this.replayBuffer) {
2498
- this.replayBuffer.offer(value)
2499
- }
2500
2448
  return true
2501
2449
  }
2502
2450
 
@@ -2513,12 +2461,12 @@ class UnboundedPubSub<in out A> implements PubSub.Atomic<A> {
2513
2461
 
2514
2462
  slide(): void {
2515
2463
  if (this.publisherHead !== this.publisherTail) {
2464
+ const node = this.publisherHead.next!
2465
+ const value = node.value as A
2516
2466
  this.publisherHead = this.publisherHead.next!
2517
2467
  this.publisherHead.value = AbsentValue
2518
2468
  this.subscribersIndex += 1
2519
- }
2520
- if (this.replayBuffer) {
2521
- this.replayBuffer.slide()
2469
+ this.replayBuffer?.slide(value, node.replayIndex!)
2522
2470
  }
2523
2471
  }
2524
2472
 
@@ -2869,34 +2817,30 @@ export class BackPressureStrategy<in out A> implements PubSub.Strategy<A> {
2869
2817
  *
2870
2818
  * **Example** (Applying a dropping strategy)
2871
2819
  *
2872
- * ```ts
2820
+ * ```ts import.meta.vitest
2873
2821
  * import { Effect, PubSub } from "effect"
2874
2822
  *
2875
- * const program = Effect.gen(function*() {
2876
- * // Create PubSub with dropping strategy
2877
- * const pubsub = yield* PubSub.dropping<string>(2)
2878
- *
2879
- * // Or explicitly create with dropping strategy
2880
- * const customPubsub = yield* PubSub.make<string>({
2823
+ * const program = Effect.scoped(Effect.gen(function*() {
2824
+ * // Explicitly create a PubSub with a dropping strategy
2825
+ * const pubsub = yield* PubSub.make<string>({
2881
2826
  * atomicPubSub: () => PubSub.makeAtomicBounded(2),
2882
2827
  * strategy: () => new PubSub.DroppingStrategy()
2883
2828
  * })
2884
2829
  *
2885
- * yield* Effect.scoped(Effect.gen(function*() {
2886
- * const subscription = yield* PubSub.subscribe(pubsub)
2830
+ * const subscription = yield* PubSub.subscribe(pubsub)
2887
2831
  *
2888
- * // Fill the PubSub
2889
- * const pub1 = yield* PubSub.publish(pubsub, "msg1") // true
2890
- * const pub2 = yield* PubSub.publish(pubsub, "msg2") // true
2891
- * const pub3 = yield* PubSub.publish(pubsub, "msg3") // false (dropped)
2832
+ * // Fill the PubSub
2833
+ * const pub1 = yield* PubSub.publish(pubsub, "msg1") // true
2834
+ * const pub2 = yield* PubSub.publish(pubsub, "msg2") // true
2835
+ * const pub3 = yield* PubSub.publish(pubsub, "msg3") // false (dropped)
2892
2836
  *
2893
- * console.log("Publication results:", [pub1, pub2, pub3]) // [true, true, false]
2837
+ * // Subscribers will only see the first two messages
2838
+ * const messages = yield* PubSub.takeAll(subscription)
2839
+ * return { published: [pub1, pub2, pub3], messages }
2840
+ * }))
2894
2841
  *
2895
- * // Subscribers will only see the first two messages
2896
- * const messages = yield* PubSub.takeAll(subscription)
2897
- * console.log("Received messages:", messages) // ["msg1", "msg2"]
2898
- * }))
2899
- * })
2842
+ * const actual = await Effect.runPromise(program)
2843
+ * actual // => { published: [true, true, false], messages: ["msg1", "msg2"] }
2900
2844
  * ```
2901
2845
  *
2902
2846
  * @category models
@@ -2956,33 +2900,30 @@ export class DroppingStrategy<in out A> implements PubSub.Strategy<A> {
2956
2900
  *
2957
2901
  * **Example** (Applying a sliding strategy)
2958
2902
  *
2959
- * ```ts
2903
+ * ```ts import.meta.vitest
2960
2904
  * import { Effect, PubSub } from "effect"
2961
2905
  *
2962
- * const program = Effect.gen(function*() {
2963
- * // Create PubSub with sliding strategy
2964
- * const pubsub = yield* PubSub.sliding<string>(2)
2965
- *
2966
- * // Or explicitly create with sliding strategy
2967
- * const customPubsub = yield* PubSub.make<string>({
2906
+ * const program = Effect.scoped(Effect.gen(function*() {
2907
+ * // Explicitly create a PubSub with a sliding strategy
2908
+ * const pubsub = yield* PubSub.make<string>({
2968
2909
  * atomicPubSub: () => PubSub.makeAtomicBounded(2),
2969
2910
  * strategy: () => new PubSub.SlidingStrategy()
2970
2911
  * })
2971
2912
  *
2972
- * yield* Effect.scoped(Effect.gen(function*() {
2973
- * const subscription = yield* PubSub.subscribe(pubsub)
2913
+ * const subscription = yield* PubSub.subscribe(pubsub)
2974
2914
  *
2975
- * // Publish messages that exceed capacity
2976
- * yield* PubSub.publish(pubsub, "msg1") // stored
2977
- * yield* PubSub.publish(pubsub, "msg2") // stored
2978
- * yield* PubSub.publish(pubsub, "msg3") // "msg1" evicted, "msg3" stored
2979
- * yield* PubSub.publish(pubsub, "msg4") // "msg2" evicted, "msg4" stored
2915
+ * // Publish messages that exceed capacity
2916
+ * yield* PubSub.publish(pubsub, "msg1") // stored
2917
+ * yield* PubSub.publish(pubsub, "msg2") // stored
2918
+ * yield* PubSub.publish(pubsub, "msg3") // "msg1" evicted, "msg3" stored
2919
+ * yield* PubSub.publish(pubsub, "msg4") // "msg2" evicted, "msg4" stored
2980
2920
  *
2981
- * // Subscribers will see the most recent messages
2982
- * const messages = yield* PubSub.takeAll(subscription)
2983
- * console.log("Recent messages:", messages) // ["msg3", "msg4"]
2984
- * }))
2985
- * })
2921
+ * // Subscribers will see the most recent messages
2922
+ * return yield* PubSub.takeAll(subscription)
2923
+ * }))
2924
+ *
2925
+ * const actual = await Effect.runPromise(program)
2926
+ * actual // => ["msg3", "msg4"]
2986
2927
  * ```
2987
2928
  *
2988
2929
  * @category models
@@ -3090,27 +3031,40 @@ const strategyCompleteSubscribersUnsafe = <A>(
3090
3031
 
3091
3032
  interface ReplayNode<A> {
3092
3033
  value: A | AbsentValue
3034
+ index: number
3093
3035
  next: ReplayNode<A> | null
3094
3036
  }
3095
3037
 
3096
3038
  class ReplayBuffer<A> {
3097
3039
  readonly capacity: number
3098
- head: ReplayNode<A> = { value: AbsentValue, next: null }
3040
+ head: ReplayNode<A> = { value: AbsentValue, index: 0, next: null }
3099
3041
  tail: ReplayNode<A> = this.head
3042
+ readonly slideValues: Array<{
3043
+ readonly value: A
3044
+ readonly index: number
3045
+ }> = []
3100
3046
  size = 0
3101
3047
  index = 0
3048
+ publisherIndex = 0
3102
3049
 
3103
3050
  constructor(capacity: number) {
3104
3051
  this.capacity = capacity
3105
3052
  }
3106
3053
 
3107
- slide() {
3054
+ slide(value: A, publisherIndex: number): void {
3055
+ this.slideValues[this.index % this.capacity] = {
3056
+ value,
3057
+ index: publisherIndex
3058
+ }
3108
3059
  this.index++
3109
3060
  }
3110
- offer(a: A): void {
3061
+ offer(a: A): number {
3062
+ const index = this.publisherIndex++
3111
3063
  this.tail.value = a
3064
+ this.tail.index = index
3112
3065
  this.tail.next = {
3113
3066
  value: AbsentValue,
3067
+ index: 0,
3114
3068
  next: null
3115
3069
  }
3116
3070
  this.tail = this.tail.next
@@ -3119,6 +3073,7 @@ class ReplayBuffer<A> {
3119
3073
  } else {
3120
3074
  this.size += 1
3121
3075
  }
3076
+ return index
3122
3077
  }
3123
3078
  offerAll(as: Iterable<A>): void {
3124
3079
  for (const a of as) {
@@ -3128,48 +3083,66 @@ class ReplayBuffer<A> {
3128
3083
  }
3129
3084
 
3130
3085
  class ReplayWindowImpl<A> implements PubSub.ReplayWindow<A> {
3131
- head: ReplayNode<A>
3132
- index: number
3133
- remaining: number
3134
3086
  readonly buffer: ReplayBuffer<A>
3087
+ readonly values: Array<A>
3088
+ index = 0
3089
+ remaining: number
3090
+ slideIndex: number
3091
+ newestIndex = -1
3135
3092
 
3136
3093
  constructor(buffer: ReplayBuffer<A>) {
3137
3094
  this.buffer = buffer
3138
- this.index = buffer.index
3139
3095
  this.remaining = buffer.size
3140
- this.head = buffer.head
3141
- }
3142
- fastForward() {
3143
- while (this.index < this.buffer.index) {
3144
- this.head = this.head.next!
3145
- this.index++
3096
+ this.slideIndex = buffer.index
3097
+ this.values = new Array(this.remaining)
3098
+ let node = buffer.head
3099
+ for (let i = 0; i < this.remaining; i++) {
3100
+ this.values[i] = node.value as A
3101
+ this.newestIndex = node.index
3102
+ node = node.next!
3103
+ }
3104
+ }
3105
+ close(): void {
3106
+ this.values.length = 0
3107
+ this.remaining = 0
3108
+ }
3109
+ sync(): void {
3110
+ const slides = this.buffer.index - this.slideIndex
3111
+ if (slides === 0 || this.remaining === 0) {
3112
+ return
3113
+ }
3114
+ const count = Math.min(slides, this.buffer.capacity)
3115
+ const start = this.buffer.index - count
3116
+ for (let i = 0; i < count; i++) {
3117
+ const entry = this.buffer.slideValues[(start + i) % this.buffer.capacity]
3118
+ if (entry.index > this.newestIndex) {
3119
+ this.index = (this.index + 1) % this.values.length
3120
+ this.values[(this.index + this.remaining - 1) % this.values.length] = entry.value
3121
+ this.newestIndex = entry.index
3122
+ }
3146
3123
  }
3124
+ this.slideIndex = this.buffer.index
3147
3125
  }
3148
3126
  take(): A | undefined {
3149
3127
  if (this.remaining === 0) {
3150
3128
  return undefined
3151
- } else if (this.index < this.buffer.index) {
3152
- this.fastForward()
3153
3129
  }
3130
+ this.sync()
3131
+ const value = this.values[this.index]
3132
+ this.values[this.index] = AbsentValue as unknown as A
3133
+ this.index = (this.index + 1) % this.values.length
3154
3134
  this.remaining--
3155
- const value = this.head.value
3156
- this.head = this.head.next!
3135
+ if (this.remaining === 0) {
3136
+ this.close()
3137
+ }
3157
3138
  return value as A
3158
3139
  }
3159
3140
  takeN(n: number): Array<A> {
3160
- if (this.remaining === 0) {
3161
- return []
3162
- } else if (this.index < this.buffer.index) {
3163
- this.fastForward()
3164
- }
3165
3141
  const len = Math.min(n, this.remaining)
3166
3142
  const items = new Array(len)
3167
3143
  for (let i = 0; i < len; i++) {
3168
- const value = this.head.value as A
3169
- this.head = this.head.next!
3170
- items[i] = value
3144
+ items[i] = this.take()!
3171
3145
  }
3172
- this.remaining -= len
3173
3146
  return items
3174
3147
  }
3175
3148
  takeAll(): Array<A> {
@@ -3181,5 +3154,6 @@ const emptyReplayWindow: PubSub.ReplayWindow<never> = {
3181
3154
  remaining: 0,
3182
3155
  take: () => undefined,
3183
3156
  takeN: () => [],
3184
- takeAll: () => []
3157
+ takeAll: () => [],
3158
+ close: () => void 0
3185
3159
  }