@clayroach/effect 3.19.14-source-capture.8 → 3.19.14-source-trace.2

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 (452) hide show
  1. package/SourceLocation/package.json +6 -0
  2. package/dist/cjs/Effect.js +2 -28
  3. package/dist/cjs/Effect.js.map +1 -1
  4. package/dist/cjs/FiberRef.js +12 -1
  5. package/dist/cjs/FiberRef.js.map +1 -1
  6. package/dist/cjs/Layer.js +2 -24
  7. package/dist/cjs/Layer.js.map +1 -1
  8. package/dist/cjs/RuntimeFlags.js +1 -29
  9. package/dist/cjs/RuntimeFlags.js.map +1 -1
  10. package/dist/cjs/SourceLocation.js +60 -0
  11. package/dist/cjs/SourceLocation.js.map +1 -0
  12. package/dist/cjs/Tracer.js +1 -15
  13. package/dist/cjs/Tracer.js.map +1 -1
  14. package/dist/cjs/Utils.js +1 -1
  15. package/dist/cjs/Utils.js.map +1 -1
  16. package/dist/cjs/index.js +3 -1
  17. package/dist/cjs/index.js.map +1 -1
  18. package/dist/cjs/internal/clock.js +1 -1
  19. package/dist/cjs/internal/clock.js.map +1 -1
  20. package/dist/cjs/internal/core.js +17 -50
  21. package/dist/cjs/internal/core.js.map +1 -1
  22. package/dist/cjs/internal/effect/circular.js +18 -30
  23. package/dist/cjs/internal/effect/circular.js.map +1 -1
  24. package/dist/cjs/internal/fiberRuntime.js +16 -65
  25. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  26. package/dist/cjs/internal/layer/circular.js +1 -5
  27. package/dist/cjs/internal/layer/circular.js.map +1 -1
  28. package/dist/cjs/internal/layer.js +1 -3
  29. package/dist/cjs/internal/layer.js.map +1 -1
  30. package/dist/cjs/internal/logger.js +25 -2
  31. package/dist/cjs/internal/logger.js.map +1 -1
  32. package/dist/cjs/internal/runtimeFlags.js +2 -11
  33. package/dist/cjs/internal/runtimeFlags.js.map +1 -1
  34. package/dist/cjs/internal/tracer.js +1 -114
  35. package/dist/cjs/internal/tracer.js.map +1 -1
  36. package/dist/dts/Config.d.ts +2 -2
  37. package/dist/dts/Config.d.ts.map +1 -1
  38. package/dist/dts/Effect.d.ts +8 -29
  39. package/dist/dts/Effect.d.ts.map +1 -1
  40. package/dist/dts/FiberRef.d.ts +12 -0
  41. package/dist/dts/FiberRef.d.ts.map +1 -1
  42. package/dist/dts/Layer.d.ts +0 -22
  43. package/dist/dts/Layer.d.ts.map +1 -1
  44. package/dist/dts/RuntimeFlags.d.ts +0 -28
  45. package/dist/dts/RuntimeFlags.d.ts.map +1 -1
  46. package/dist/dts/SourceLocation.d.ts +88 -0
  47. package/dist/dts/SourceLocation.d.ts.map +1 -0
  48. package/dist/dts/Tracer.d.ts +0 -15
  49. package/dist/dts/Tracer.d.ts.map +1 -1
  50. package/dist/dts/index.d.ts +6 -0
  51. package/dist/dts/index.d.ts.map +1 -1
  52. package/dist/dts/internal/core.d.ts.map +1 -1
  53. package/dist/dts/internal/layer.d.ts.map +1 -1
  54. package/dist/dts/internal/runtimeFlags.d.ts.map +1 -1
  55. package/dist/esm/Effect.js +0 -26
  56. package/dist/esm/Effect.js.map +1 -1
  57. package/dist/esm/FiberRef.js +11 -0
  58. package/dist/esm/FiberRef.js.map +1 -1
  59. package/dist/esm/Layer.js +0 -22
  60. package/dist/esm/Layer.js.map +1 -1
  61. package/dist/esm/RuntimeFlags.js +0 -28
  62. package/dist/esm/RuntimeFlags.js.map +1 -1
  63. package/dist/esm/SourceLocation.js +51 -0
  64. package/dist/esm/SourceLocation.js.map +1 -0
  65. package/dist/esm/Tracer.js +0 -14
  66. package/dist/esm/Tracer.js.map +1 -1
  67. package/dist/esm/Utils.js +1 -1
  68. package/dist/esm/Utils.js.map +1 -1
  69. package/dist/esm/index.js +6 -0
  70. package/dist/esm/index.js.map +1 -1
  71. package/dist/esm/internal/clock.js +1 -1
  72. package/dist/esm/internal/clock.js.map +1 -1
  73. package/dist/esm/internal/core.js +12 -45
  74. package/dist/esm/internal/core.js.map +1 -1
  75. package/dist/esm/internal/effect/circular.js +18 -30
  76. package/dist/esm/internal/effect/circular.js.map +1 -1
  77. package/dist/esm/internal/fiberRuntime.js +13 -60
  78. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  79. package/dist/esm/internal/layer/circular.js +0 -4
  80. package/dist/esm/internal/layer/circular.js.map +1 -1
  81. package/dist/esm/internal/layer.js +0 -2
  82. package/dist/esm/internal/layer.js.map +1 -1
  83. package/dist/esm/internal/logger.js +25 -2
  84. package/dist/esm/internal/logger.js.map +1 -1
  85. package/dist/esm/internal/runtimeFlags.js +1 -9
  86. package/dist/esm/internal/runtimeFlags.js.map +1 -1
  87. package/dist/esm/internal/tracer.js +0 -111
  88. package/dist/esm/internal/tracer.js.map +1 -1
  89. package/package.json +12 -1
  90. package/src/Arbitrary.ts +1101 -0
  91. package/src/Array.ts +3589 -0
  92. package/src/BigDecimal.ts +1349 -0
  93. package/src/BigInt.ts +643 -0
  94. package/src/Boolean.ts +287 -0
  95. package/src/Brand.ts +360 -0
  96. package/src/Cache.ts +281 -0
  97. package/src/Cause.ts +1555 -0
  98. package/src/Channel.ts +2355 -0
  99. package/src/ChildExecutorDecision.ts +146 -0
  100. package/src/Chunk.ts +1495 -0
  101. package/src/Clock.ts +111 -0
  102. package/src/Config.ts +542 -0
  103. package/src/ConfigError.ts +270 -0
  104. package/src/ConfigProvider.ts +333 -0
  105. package/src/ConfigProviderPathPatch.ts +100 -0
  106. package/src/Console.ts +226 -0
  107. package/src/Context.ts +585 -0
  108. package/src/Cron.ts +706 -0
  109. package/src/Data.ts +596 -0
  110. package/src/DateTime.ts +1686 -0
  111. package/src/DefaultServices.ts +34 -0
  112. package/src/Deferred.ts +301 -0
  113. package/src/Differ.ts +450 -0
  114. package/src/Duration.ts +1000 -0
  115. package/src/Effect.ts +14817 -0
  116. package/src/Effectable.ts +107 -0
  117. package/src/Either.ts +1040 -0
  118. package/src/Encoding.ts +195 -0
  119. package/src/Equal.ts +98 -0
  120. package/src/Equivalence.ts +235 -0
  121. package/src/ExecutionPlan.ts +308 -0
  122. package/src/ExecutionStrategy.ts +119 -0
  123. package/src/Exit.ts +467 -0
  124. package/src/FastCheck.ts +9 -0
  125. package/src/Fiber.ts +744 -0
  126. package/src/FiberHandle.ts +540 -0
  127. package/src/FiberId.ts +195 -0
  128. package/src/FiberMap.ts +656 -0
  129. package/src/FiberRef.ts +444 -0
  130. package/src/FiberRefs.ts +204 -0
  131. package/src/FiberRefsPatch.ts +105 -0
  132. package/src/FiberSet.ts +491 -0
  133. package/src/FiberStatus.ts +108 -0
  134. package/src/Function.ts +1222 -0
  135. package/src/GlobalValue.ts +53 -0
  136. package/src/Graph.ts +3732 -0
  137. package/src/GroupBy.ts +103 -0
  138. package/src/HKT.ts +45 -0
  139. package/src/Hash.ts +195 -0
  140. package/src/HashMap.ts +519 -0
  141. package/src/HashRing.ts +317 -0
  142. package/src/HashSet.ts +2346 -0
  143. package/src/Inspectable.ts +287 -0
  144. package/src/Iterable.ts +1119 -0
  145. package/src/JSONSchema.ts +1044 -0
  146. package/src/KeyedPool.ts +167 -0
  147. package/src/Layer.ts +1228 -0
  148. package/src/LayerMap.ts +436 -0
  149. package/src/List.ts +977 -0
  150. package/src/LogLevel.ts +285 -0
  151. package/src/LogSpan.ts +25 -0
  152. package/src/Logger.ts +702 -0
  153. package/src/Mailbox.ts +268 -0
  154. package/src/ManagedRuntime.ts +180 -0
  155. package/src/Match.ts +1477 -0
  156. package/src/MergeDecision.ts +95 -0
  157. package/src/MergeState.ts +172 -0
  158. package/src/MergeStrategy.ts +107 -0
  159. package/src/Metric.ts +780 -0
  160. package/src/MetricBoundaries.ts +69 -0
  161. package/src/MetricHook.ts +151 -0
  162. package/src/MetricKey.ts +224 -0
  163. package/src/MetricKeyType.ts +262 -0
  164. package/src/MetricLabel.ts +47 -0
  165. package/src/MetricPair.ts +71 -0
  166. package/src/MetricPolling.ts +148 -0
  167. package/src/MetricRegistry.ts +48 -0
  168. package/src/MetricState.ts +257 -0
  169. package/src/Micro.ts +4405 -0
  170. package/src/ModuleVersion.ts +18 -0
  171. package/src/MutableHashMap.ts +411 -0
  172. package/src/MutableHashSet.ts +706 -0
  173. package/src/MutableList.ts +297 -0
  174. package/src/MutableQueue.ts +227 -0
  175. package/src/MutableRef.ts +202 -0
  176. package/src/NonEmptyIterable.ts +32 -0
  177. package/src/Number.ts +1071 -0
  178. package/src/Option.ts +2170 -0
  179. package/src/Order.ts +373 -0
  180. package/src/Ordering.ts +111 -0
  181. package/src/ParseResult.ts +2031 -0
  182. package/src/PartitionedSemaphore.ts +200 -0
  183. package/src/Pipeable.ts +566 -0
  184. package/src/Pool.ts +204 -0
  185. package/src/Predicate.ts +1405 -0
  186. package/src/Pretty.ts +205 -0
  187. package/src/PrimaryKey.ts +23 -0
  188. package/src/PubSub.ts +182 -0
  189. package/src/Queue.ts +644 -0
  190. package/src/Random.ts +204 -0
  191. package/src/RateLimiter.ts +138 -0
  192. package/src/RcMap.ts +141 -0
  193. package/src/RcRef.ts +122 -0
  194. package/src/Readable.ts +93 -0
  195. package/src/Record.ts +1274 -0
  196. package/src/RedBlackTree.ts +421 -0
  197. package/src/Redacted.ts +144 -0
  198. package/src/Ref.ts +180 -0
  199. package/src/RegExp.ts +38 -0
  200. package/src/Reloadable.ts +127 -0
  201. package/src/Request.ts +347 -0
  202. package/src/RequestBlock.ts +118 -0
  203. package/src/RequestResolver.ts +366 -0
  204. package/src/Resource.ts +119 -0
  205. package/src/Runtime.ts +383 -0
  206. package/src/RuntimeFlags.ts +336 -0
  207. package/src/RuntimeFlagsPatch.ts +183 -0
  208. package/src/STM.ts +2045 -0
  209. package/src/Schedule.ts +2219 -0
  210. package/src/ScheduleDecision.ts +62 -0
  211. package/src/ScheduleInterval.ts +151 -0
  212. package/src/ScheduleIntervals.ts +122 -0
  213. package/src/Scheduler.ts +353 -0
  214. package/src/Schema.ts +10914 -0
  215. package/src/SchemaAST.ts +3043 -0
  216. package/src/Scope.ts +204 -0
  217. package/src/ScopedCache.ts +151 -0
  218. package/src/ScopedRef.ts +117 -0
  219. package/src/Secret.ts +88 -0
  220. package/src/SingleProducerAsyncInput.ts +67 -0
  221. package/src/Sink.ts +1461 -0
  222. package/src/SortedMap.ts +287 -0
  223. package/src/SortedSet.ts +390 -0
  224. package/src/SourceLocation.ts +108 -0
  225. package/src/Stream.ts +6468 -0
  226. package/src/StreamEmit.ts +136 -0
  227. package/src/StreamHaltStrategy.ts +123 -0
  228. package/src/Streamable.ts +45 -0
  229. package/src/String.ts +778 -0
  230. package/src/Struct.ts +243 -0
  231. package/src/Subscribable.ts +100 -0
  232. package/src/SubscriptionRef.ts +298 -0
  233. package/src/Supervisor.ts +240 -0
  234. package/src/Symbol.ts +29 -0
  235. package/src/SynchronizedRef.ts +270 -0
  236. package/src/TArray.ts +495 -0
  237. package/src/TDeferred.ts +100 -0
  238. package/src/TMap.ts +515 -0
  239. package/src/TPriorityQueue.ts +223 -0
  240. package/src/TPubSub.ts +200 -0
  241. package/src/TQueue.ts +432 -0
  242. package/src/TRandom.ts +129 -0
  243. package/src/TReentrantLock.ts +224 -0
  244. package/src/TRef.ts +178 -0
  245. package/src/TSemaphore.ts +129 -0
  246. package/src/TSet.ts +365 -0
  247. package/src/TSubscriptionRef.ts +192 -0
  248. package/src/Take.ts +258 -0
  249. package/src/TestAnnotation.ts +158 -0
  250. package/src/TestAnnotationMap.ts +119 -0
  251. package/src/TestAnnotations.ts +117 -0
  252. package/src/TestClock.ts +556 -0
  253. package/src/TestConfig.ts +47 -0
  254. package/src/TestContext.ts +36 -0
  255. package/src/TestLive.ts +53 -0
  256. package/src/TestServices.ts +390 -0
  257. package/src/TestSized.ts +55 -0
  258. package/src/Tracer.ts +182 -0
  259. package/src/Trie.ts +840 -0
  260. package/src/Tuple.ts +305 -0
  261. package/src/Types.ts +353 -0
  262. package/src/Unify.ts +113 -0
  263. package/src/UpstreamPullRequest.ts +117 -0
  264. package/src/UpstreamPullStrategy.ts +121 -0
  265. package/src/Utils.ts +809 -0
  266. package/src/index.ts +1568 -0
  267. package/src/internal/array.ts +8 -0
  268. package/src/internal/blockedRequests.ts +520 -0
  269. package/src/internal/cache.ts +733 -0
  270. package/src/internal/cause.ts +1050 -0
  271. package/src/internal/channel/channelExecutor.ts +1200 -0
  272. package/src/internal/channel/channelState.ts +134 -0
  273. package/src/internal/channel/childExecutorDecision.ts +96 -0
  274. package/src/internal/channel/continuation.ts +200 -0
  275. package/src/internal/channel/mergeDecision.ts +113 -0
  276. package/src/internal/channel/mergeState.ts +120 -0
  277. package/src/internal/channel/mergeStrategy.ts +72 -0
  278. package/src/internal/channel/singleProducerAsyncInput.ts +259 -0
  279. package/src/internal/channel/subexecutor.ts +229 -0
  280. package/src/internal/channel/upstreamPullRequest.ts +84 -0
  281. package/src/internal/channel/upstreamPullStrategy.ts +87 -0
  282. package/src/internal/channel.ts +2603 -0
  283. package/src/internal/clock.ts +95 -0
  284. package/src/internal/completedRequestMap.ts +9 -0
  285. package/src/internal/concurrency.ts +54 -0
  286. package/src/internal/config.ts +716 -0
  287. package/src/internal/configError.ts +304 -0
  288. package/src/internal/configProvider/pathPatch.ts +97 -0
  289. package/src/internal/configProvider.ts +799 -0
  290. package/src/internal/console.ts +153 -0
  291. package/src/internal/context.ts +337 -0
  292. package/src/internal/core-effect.ts +2293 -0
  293. package/src/internal/core-stream.ts +998 -0
  294. package/src/internal/core.ts +3189 -0
  295. package/src/internal/data.ts +36 -0
  296. package/src/internal/dataSource.ts +327 -0
  297. package/src/internal/dateTime.ts +1277 -0
  298. package/src/internal/defaultServices/console.ts +100 -0
  299. package/src/internal/defaultServices.ts +163 -0
  300. package/src/internal/deferred.ts +46 -0
  301. package/src/internal/differ/chunkPatch.ts +211 -0
  302. package/src/internal/differ/contextPatch.ts +232 -0
  303. package/src/internal/differ/hashMapPatch.ts +220 -0
  304. package/src/internal/differ/hashSetPatch.ts +176 -0
  305. package/src/internal/differ/orPatch.ts +311 -0
  306. package/src/internal/differ/readonlyArrayPatch.ts +210 -0
  307. package/src/internal/differ.ts +200 -0
  308. package/src/internal/doNotation.ts +80 -0
  309. package/src/internal/effect/circular.ts +895 -0
  310. package/src/internal/effectable.ts +131 -0
  311. package/src/internal/either.ts +110 -0
  312. package/src/internal/encoding/base64.ts +286 -0
  313. package/src/internal/encoding/base64Url.ts +29 -0
  314. package/src/internal/encoding/common.ts +51 -0
  315. package/src/internal/encoding/hex.ts +315 -0
  316. package/src/internal/errors.ts +7 -0
  317. package/src/internal/executionPlan.ts +114 -0
  318. package/src/internal/executionStrategy.ts +74 -0
  319. package/src/internal/fiber.ts +388 -0
  320. package/src/internal/fiberId.ts +267 -0
  321. package/src/internal/fiberMessage.ts +82 -0
  322. package/src/internal/fiberRefs/patch.ts +144 -0
  323. package/src/internal/fiberRefs.ts +297 -0
  324. package/src/internal/fiberRuntime.ts +3842 -0
  325. package/src/internal/fiberScope.ts +71 -0
  326. package/src/internal/fiberStatus.ts +119 -0
  327. package/src/internal/groupBy.ts +530 -0
  328. package/src/internal/hashMap/array.ts +49 -0
  329. package/src/internal/hashMap/bitwise.ts +32 -0
  330. package/src/internal/hashMap/config.ts +14 -0
  331. package/src/internal/hashMap/keySet.ts +8 -0
  332. package/src/internal/hashMap/node.ts +391 -0
  333. package/src/internal/hashMap.ts +586 -0
  334. package/src/internal/hashSet.ts +323 -0
  335. package/src/internal/keyedPool.ts +244 -0
  336. package/src/internal/layer/circular.ts +214 -0
  337. package/src/internal/layer.ts +1483 -0
  338. package/src/internal/logSpan.ts +20 -0
  339. package/src/internal/logger-circular.ts +24 -0
  340. package/src/internal/logger.ts +522 -0
  341. package/src/internal/mailbox.ts +561 -0
  342. package/src/internal/managedRuntime/circular.ts +6 -0
  343. package/src/internal/managedRuntime.ts +134 -0
  344. package/src/internal/matcher.ts +652 -0
  345. package/src/internal/metric/boundaries.ts +75 -0
  346. package/src/internal/metric/hook.ts +483 -0
  347. package/src/internal/metric/key.ts +167 -0
  348. package/src/internal/metric/keyType.ts +238 -0
  349. package/src/internal/metric/label.ts +41 -0
  350. package/src/internal/metric/pair.ts +48 -0
  351. package/src/internal/metric/polling.ts +149 -0
  352. package/src/internal/metric/registry.ts +187 -0
  353. package/src/internal/metric/state.ts +290 -0
  354. package/src/internal/metric.ts +577 -0
  355. package/src/internal/opCodes/cause.ts +35 -0
  356. package/src/internal/opCodes/channel.ts +83 -0
  357. package/src/internal/opCodes/channelChildExecutorDecision.ts +17 -0
  358. package/src/internal/opCodes/channelMergeDecision.ts +11 -0
  359. package/src/internal/opCodes/channelMergeState.ts +17 -0
  360. package/src/internal/opCodes/channelMergeStrategy.ts +11 -0
  361. package/src/internal/opCodes/channelState.ts +23 -0
  362. package/src/internal/opCodes/channelUpstreamPullRequest.ts +11 -0
  363. package/src/internal/opCodes/channelUpstreamPullStrategy.ts +11 -0
  364. package/src/internal/opCodes/config.ts +65 -0
  365. package/src/internal/opCodes/configError.ts +35 -0
  366. package/src/internal/opCodes/continuation.ts +11 -0
  367. package/src/internal/opCodes/deferred.ts +11 -0
  368. package/src/internal/opCodes/effect.ts +89 -0
  369. package/src/internal/opCodes/layer.ts +59 -0
  370. package/src/internal/opCodes/streamHaltStrategy.ts +23 -0
  371. package/src/internal/option.ts +80 -0
  372. package/src/internal/pool.ts +432 -0
  373. package/src/internal/pubsub.ts +1762 -0
  374. package/src/internal/query.ts +204 -0
  375. package/src/internal/queue.ts +766 -0
  376. package/src/internal/random.ts +161 -0
  377. package/src/internal/rateLimiter.ts +93 -0
  378. package/src/internal/rcMap.ts +285 -0
  379. package/src/internal/rcRef.ts +192 -0
  380. package/src/internal/redBlackTree/iterator.ts +200 -0
  381. package/src/internal/redBlackTree/node.ts +68 -0
  382. package/src/internal/redBlackTree.ts +1245 -0
  383. package/src/internal/redacted.ts +73 -0
  384. package/src/internal/ref.ts +171 -0
  385. package/src/internal/reloadable.ts +140 -0
  386. package/src/internal/request.ts +177 -0
  387. package/src/internal/resource.ts +76 -0
  388. package/src/internal/ringBuffer.ts +68 -0
  389. package/src/internal/runtime.ts +558 -0
  390. package/src/internal/runtimeFlags.ts +178 -0
  391. package/src/internal/runtimeFlagsPatch.ts +103 -0
  392. package/src/internal/schedule/decision.ts +47 -0
  393. package/src/internal/schedule/interval.ts +101 -0
  394. package/src/internal/schedule/intervals.ts +180 -0
  395. package/src/internal/schedule.ts +2199 -0
  396. package/src/internal/schema/errors.ts +191 -0
  397. package/src/internal/schema/schemaId.ts +106 -0
  398. package/src/internal/schema/util.ts +50 -0
  399. package/src/internal/scopedCache.ts +644 -0
  400. package/src/internal/scopedRef.ts +118 -0
  401. package/src/internal/secret.ts +89 -0
  402. package/src/internal/singleShotGen.ts +35 -0
  403. package/src/internal/sink.ts +2120 -0
  404. package/src/internal/stack.ts +10 -0
  405. package/src/internal/stm/core.ts +817 -0
  406. package/src/internal/stm/entry.ts +59 -0
  407. package/src/internal/stm/journal.ts +123 -0
  408. package/src/internal/stm/opCodes/stm.ts +71 -0
  409. package/src/internal/stm/opCodes/stmState.ts +17 -0
  410. package/src/internal/stm/opCodes/strategy.ts +17 -0
  411. package/src/internal/stm/opCodes/tExit.ts +29 -0
  412. package/src/internal/stm/opCodes/tryCommit.ts +11 -0
  413. package/src/internal/stm/stm.ts +1453 -0
  414. package/src/internal/stm/stmState.ts +136 -0
  415. package/src/internal/stm/tArray.ts +550 -0
  416. package/src/internal/stm/tDeferred.ts +81 -0
  417. package/src/internal/stm/tExit.ts +190 -0
  418. package/src/internal/stm/tMap.ts +824 -0
  419. package/src/internal/stm/tPriorityQueue.ts +267 -0
  420. package/src/internal/stm/tPubSub.ts +551 -0
  421. package/src/internal/stm/tQueue.ts +393 -0
  422. package/src/internal/stm/tRandom.ts +140 -0
  423. package/src/internal/stm/tReentrantLock.ts +352 -0
  424. package/src/internal/stm/tRef.ts +195 -0
  425. package/src/internal/stm/tSemaphore.ts +113 -0
  426. package/src/internal/stm/tSet.ts +259 -0
  427. package/src/internal/stm/tSubscriptionRef.ts +286 -0
  428. package/src/internal/stm/tryCommit.ts +34 -0
  429. package/src/internal/stm/txnId.ts +14 -0
  430. package/src/internal/stm/versioned.ts +4 -0
  431. package/src/internal/stream/debounceState.ts +57 -0
  432. package/src/internal/stream/emit.ts +123 -0
  433. package/src/internal/stream/haltStrategy.ts +94 -0
  434. package/src/internal/stream/handoff.ts +187 -0
  435. package/src/internal/stream/handoffSignal.ts +59 -0
  436. package/src/internal/stream/pull.ts +34 -0
  437. package/src/internal/stream/sinkEndReason.ts +30 -0
  438. package/src/internal/stream/zipAllState.ts +88 -0
  439. package/src/internal/stream/zipChunksState.ts +56 -0
  440. package/src/internal/stream.ts +8801 -0
  441. package/src/internal/string-utils.ts +107 -0
  442. package/src/internal/subscriptionRef.ts +138 -0
  443. package/src/internal/supervisor/patch.ts +190 -0
  444. package/src/internal/supervisor.ts +303 -0
  445. package/src/internal/synchronizedRef.ts +114 -0
  446. package/src/internal/take.ts +199 -0
  447. package/src/internal/testing/sleep.ts +27 -0
  448. package/src/internal/testing/suspendedWarningData.ts +85 -0
  449. package/src/internal/testing/warningData.ts +94 -0
  450. package/src/internal/tracer.ts +150 -0
  451. package/src/internal/trie.ts +722 -0
  452. package/src/internal/version.ts +7 -0
@@ -0,0 +1,223 @@
1
+ /**
2
+ * @since 2.0.0
3
+ */
4
+ import type * as Chunk from "./Chunk.js"
5
+ import * as internal from "./internal/stm/tPriorityQueue.js"
6
+ import type * as Option from "./Option.js"
7
+ import type * as Order from "./Order.js"
8
+ import type { Predicate } from "./Predicate.js"
9
+ import type * as SortedMap from "./SortedMap.js"
10
+ import type * as STM from "./STM.js"
11
+ import type * as TRef from "./TRef.js"
12
+ import type * as Types from "./Types.js"
13
+
14
+ /**
15
+ * @since 2.0.0
16
+ * @category symbols
17
+ */
18
+ export const TPriorityQueueTypeId: unique symbol = internal.TPriorityQueueTypeId
19
+
20
+ /**
21
+ * @since 2.0.0
22
+ * @category symbols
23
+ */
24
+ export type TPriorityQueueTypeId = typeof TPriorityQueueTypeId
25
+
26
+ /**
27
+ * A `TPriorityQueue` contains values of type `A` that an `Order` is defined
28
+ * on. Unlike a `TQueue`, `take` returns the highest priority value (the value
29
+ * that is first in the specified ordering) as opposed to the first value
30
+ * offered to the queue. The ordering that elements with the same priority will
31
+ * be taken from the queue is not guaranteed.
32
+ *
33
+ * @since 2.0.0
34
+ * @category models
35
+ */
36
+ export interface TPriorityQueue<in out A> extends TPriorityQueue.Variance<A> {}
37
+ /**
38
+ * @internal
39
+ * @since 2.0.0
40
+ */
41
+ export interface TPriorityQueue<in out A> {
42
+ /** @internal */
43
+ readonly ref: TRef.TRef<SortedMap.SortedMap<A, [A, ...Array<A>]>>
44
+ }
45
+
46
+ /**
47
+ * @since 2.0.0
48
+ */
49
+ export declare namespace TPriorityQueue {
50
+ /**
51
+ * @since 2.0.0
52
+ * @category models
53
+ */
54
+ export interface Variance<in out A> {
55
+ readonly [TPriorityQueueTypeId]: {
56
+ readonly _A: Types.Invariant<A>
57
+ }
58
+ }
59
+ }
60
+
61
+ /**
62
+ * Constructs a new empty `TPriorityQueue` with the specified `Order`.
63
+ *
64
+ * @since 2.0.0
65
+ * @category constructors
66
+ */
67
+ export const empty: <A>(order: Order.Order<A>) => STM.STM<TPriorityQueue<A>> = internal.empty
68
+
69
+ /**
70
+ * Creates a new `TPriorityQueue` from an iterable collection of values.
71
+ *
72
+ * @since 2.0.0
73
+ * @category constructors
74
+ */
75
+ export const fromIterable: <A>(
76
+ order: Order.Order<A>
77
+ ) => (iterable: Iterable<A>) => STM.STM<TPriorityQueue<A>> = internal.fromIterable
78
+
79
+ /**
80
+ * Checks whether the queue is empty.
81
+ *
82
+ * @since 2.0.0
83
+ * @category getters
84
+ */
85
+ export const isEmpty: <A>(self: TPriorityQueue<A>) => STM.STM<boolean> = internal.isEmpty
86
+
87
+ /**
88
+ * Checks whether the queue is not empty.
89
+ *
90
+ * @since 2.0.0
91
+ * @category getters
92
+ */
93
+ export const isNonEmpty: <A>(self: TPriorityQueue<A>) => STM.STM<boolean> = internal.isNonEmpty
94
+
95
+ /**
96
+ * Makes a new `TPriorityQueue` that is initialized with specified values.
97
+ *
98
+ * @since 2.0.0
99
+ * @category constructors
100
+ */
101
+ export const make: <A>(order: Order.Order<A>) => (...elements: Array<A>) => STM.STM<TPriorityQueue<A>> = internal.make
102
+
103
+ /**
104
+ * Offers the specified value to the queue.
105
+ *
106
+ * @since 2.0.0
107
+ * @category mutations
108
+ */
109
+ export const offer: {
110
+ <A>(value: A): (self: TPriorityQueue<A>) => STM.STM<void>
111
+ <A>(self: TPriorityQueue<A>, value: A): STM.STM<void>
112
+ } = internal.offer
113
+
114
+ /**
115
+ * Offers all of the elements in the specified collection to the queue.
116
+ *
117
+ * @since 2.0.0
118
+ * @category mutations
119
+ */
120
+ export const offerAll: {
121
+ <A>(values: Iterable<A>): (self: TPriorityQueue<A>) => STM.STM<void>
122
+ <A>(self: TPriorityQueue<A>, values: Iterable<A>): STM.STM<void>
123
+ } = internal.offerAll
124
+
125
+ /**
126
+ * Peeks at the first value in the queue without removing it, retrying until a
127
+ * value is in the queue.
128
+ *
129
+ * @since 2.0.0
130
+ * @category getters
131
+ */
132
+ export const peek: <A>(self: TPriorityQueue<A>) => STM.STM<A> = internal.peek
133
+
134
+ /**
135
+ * Peeks at the first value in the queue without removing it, returning `None`
136
+ * if there is not a value in the queue.
137
+ *
138
+ * @since 2.0.0
139
+ * @category getters
140
+ */
141
+ export const peekOption: <A>(self: TPriorityQueue<A>) => STM.STM<Option.Option<A>> = internal.peekOption
142
+
143
+ /**
144
+ * Removes all elements from the queue matching the specified predicate.
145
+ *
146
+ * @since 2.0.0
147
+ * @category getters
148
+ */
149
+ export const removeIf: {
150
+ <A>(predicate: Predicate<A>): (self: TPriorityQueue<A>) => STM.STM<void>
151
+ <A>(self: TPriorityQueue<A>, predicate: Predicate<A>): STM.STM<void>
152
+ } = internal.removeIf
153
+
154
+ /**
155
+ * Retains only elements from the queue matching the specified predicate.
156
+ *
157
+ * @since 2.0.0
158
+ * @category getters
159
+ */
160
+ export const retainIf: {
161
+ <A>(predicate: Predicate<A>): (self: TPriorityQueue<A>) => STM.STM<void>
162
+ <A>(self: TPriorityQueue<A>, predicate: Predicate<A>): STM.STM<void>
163
+ } = internal.retainIf
164
+
165
+ /**
166
+ * Returns the size of the queue.
167
+ *
168
+ * @since 2.0.0
169
+ * @category getters
170
+ */
171
+ export const size: <A>(self: TPriorityQueue<A>) => STM.STM<number> = internal.size
172
+
173
+ /**
174
+ * Takes a value from the queue, retrying until a value is in the queue.
175
+ *
176
+ * @since 2.0.0
177
+ * @category mutations
178
+ */
179
+ export const take: <A>(self: TPriorityQueue<A>) => STM.STM<A> = internal.take
180
+
181
+ /**
182
+ * Takes all values from the queue.
183
+ *
184
+ * @since 2.0.0
185
+ * @category mutations
186
+ */
187
+ export const takeAll: <A>(self: TPriorityQueue<A>) => STM.STM<Array<A>> = internal.takeAll
188
+
189
+ /**
190
+ * Takes a value from the queue, returning `None` if there is not a value in
191
+ * the queue.
192
+ *
193
+ * @since 2.0.0
194
+ * @category mutations
195
+ */
196
+ export const takeOption: <A>(self: TPriorityQueue<A>) => STM.STM<Option.Option<A>> = internal.takeOption
197
+
198
+ /**
199
+ * Takes up to the specified maximum number of elements from the queue.
200
+ *
201
+ * @since 2.0.0
202
+ * @category mutations
203
+ */
204
+ export const takeUpTo: {
205
+ (n: number): <A>(self: TPriorityQueue<A>) => STM.STM<Array<A>>
206
+ <A>(self: TPriorityQueue<A>, n: number): STM.STM<Array<A>>
207
+ } = internal.takeUpTo
208
+
209
+ /**
210
+ * Collects all values into a `Chunk`.
211
+ *
212
+ * @since 2.0.0
213
+ * @category destructors
214
+ */
215
+ export const toChunk: <A>(self: TPriorityQueue<A>) => STM.STM<Chunk.Chunk<A>> = internal.toChunk
216
+
217
+ /**
218
+ * Collects all values into an array.
219
+ *
220
+ * @since 2.0.0
221
+ * @category destructors
222
+ */
223
+ export const toArray: <A>(self: TPriorityQueue<A>) => STM.STM<Array<A>> = internal.toArray
package/src/TPubSub.ts ADDED
@@ -0,0 +1,200 @@
1
+ /**
2
+ * @since 2.0.0
3
+ */
4
+ import type * as Effect from "./Effect.js"
5
+ import type * as HashSet from "./HashSet.js"
6
+ import * as internal from "./internal/stm/tPubSub.js"
7
+ import type * as tQueue from "./internal/stm/tQueue.js"
8
+ import type * as Scope from "./Scope.js"
9
+ import type * as STM from "./STM.js"
10
+ import type * as TQueue from "./TQueue.js"
11
+ import type * as TRef from "./TRef.js"
12
+ import type * as Types from "./Types.js"
13
+
14
+ /**
15
+ * @since 2.0.0
16
+ * @category symbols
17
+ */
18
+ export const TPubSubTypeId: unique symbol = internal.TPubSubTypeId
19
+
20
+ /**
21
+ * @since 2.0.0
22
+ * @category symbols
23
+ */
24
+ export type TPubSubTypeId = typeof TPubSubTypeId
25
+
26
+ /**
27
+ * @since 2.0.0
28
+ * @category models
29
+ */
30
+ export interface TPubSub<in out A> extends TQueue.TEnqueue<A> {
31
+ readonly [TPubSubTypeId]: {
32
+ readonly _A: Types.Invariant<A>
33
+ }
34
+ }
35
+ /**
36
+ * @internal
37
+ * @since 2.0.0
38
+ */
39
+ export interface TPubSub<in out A> {
40
+ /** @internal */
41
+ readonly pubsubSize: TRef.TRef<number>
42
+ /** @internal */
43
+ readonly publisherHead: TRef.TRef<TRef.TRef<internal.Node<A> | undefined>>
44
+ /** @internal */
45
+ readonly publisherTail: TRef.TRef<TRef.TRef<internal.Node<A> | undefined> | undefined>
46
+ /** @internal */
47
+ readonly requestedCapacity: number
48
+ /** @internal */
49
+ readonly strategy: tQueue.TQueueStrategy
50
+ /** @internal */
51
+ readonly subscriberCount: TRef.TRef<number>
52
+ /** @internal */
53
+ readonly subscribers: TRef.TRef<HashSet.HashSet<TRef.TRef<TRef.TRef<internal.Node<A>> | undefined>>>
54
+ }
55
+
56
+ /**
57
+ * Waits until the `TPubSub` is shutdown. The `STM` returned by this method will
58
+ * not resume until the queue has been shutdown. If the `TPubSub` is already
59
+ * shutdown, the `STM` will resume right away.
60
+ *
61
+ * @since 2.0.0
62
+ * @category mutations
63
+ */
64
+ export const awaitShutdown: <A>(self: TPubSub<A>) => STM.STM<void> = internal.awaitShutdown
65
+
66
+ /**
67
+ * Creates a bounded `TPubSub` with the back pressure strategy. The `TPubSub` will retain
68
+ * messages until they have been taken by all subscribers, applying back
69
+ * pressure to publishers if the `TPubSub` is at capacity.
70
+ *
71
+ * @since 2.0.0
72
+ * @category constructors
73
+ */
74
+ export const bounded: <A>(requestedCapacity: number) => STM.STM<TPubSub<A>> = internal.bounded
75
+
76
+ /**
77
+ * Returns the number of elements the `TPubSub` can hold.
78
+ *
79
+ * @since 2.0.0
80
+ * @category getters
81
+ */
82
+ export const capacity: <A>(self: TPubSub<A>) => number = internal.capacity
83
+
84
+ /**
85
+ * Creates a bounded `TPubSub` with the dropping strategy. The `TPubSub` will drop new
86
+ * messages if the `TPubSub` is at capacity.
87
+ *
88
+ * @since 2.0.0
89
+ * @category constructors
90
+ */
91
+ export const dropping: <A>(requestedCapacity: number) => STM.STM<TPubSub<A>> = internal.dropping
92
+
93
+ /**
94
+ * Returns `true` if the `TPubSub` contains zero elements, `false` otherwise.
95
+ *
96
+ * @since 2.0.0
97
+ * @category getters
98
+ */
99
+ export const isEmpty: <A>(self: TPubSub<A>) => STM.STM<boolean> = internal.isEmpty
100
+
101
+ /**
102
+ * Returns `true` if the `TPubSub` contains at least one element, `false`
103
+ * otherwise.
104
+ *
105
+ * @since 2.0.0
106
+ * @category getters
107
+ */
108
+ export const isFull: <A>(self: TPubSub<A>) => STM.STM<boolean> = internal.isFull
109
+
110
+ /**
111
+ * Interrupts any fibers that are suspended on `offer` or `take`. Future calls
112
+ * to `offer*` and `take*` will be interrupted immediately.
113
+ *
114
+ * @since 2.0.0
115
+ * @category utils
116
+ */
117
+ export const shutdown: <A>(self: TPubSub<A>) => STM.STM<void> = internal.shutdown
118
+
119
+ /**
120
+ * Returns `true` if `shutdown` has been called, otherwise returns `false`.
121
+ *
122
+ * @since 2.0.0
123
+ * @category getters
124
+ */
125
+ export const isShutdown: <A>(self: TPubSub<A>) => STM.STM<boolean> = internal.isShutdown
126
+
127
+ /**
128
+ * Publishes a message to the `TPubSub`, returning whether the message was published
129
+ * to the `TPubSub`.
130
+ *
131
+ * @since 2.0.0
132
+ * @category mutations
133
+ */
134
+ export const publish: {
135
+ <A>(value: A): (self: TPubSub<A>) => STM.STM<boolean>
136
+ <A>(self: TPubSub<A>, value: A): STM.STM<boolean>
137
+ } = internal.publish
138
+
139
+ /**
140
+ * Publishes all of the specified messages to the `TPubSub`, returning whether they
141
+ * were published to the `TPubSub`.
142
+ *
143
+ * @since 2.0.0
144
+ * @category mutations
145
+ */
146
+ export const publishAll: {
147
+ <A>(iterable: Iterable<A>): (self: TPubSub<A>) => STM.STM<boolean>
148
+ <A>(self: TPubSub<A>, iterable: Iterable<A>): STM.STM<boolean>
149
+ } = internal.publishAll
150
+
151
+ /**
152
+ * Retrieves the size of the `TPubSub`, which is equal to the number of elements
153
+ * in the `TPubSub`. This may be negative if fibers are suspended waiting for
154
+ * elements to be added to the `TPubSub`.
155
+ *
156
+ * @since 2.0.0
157
+ * @category getters
158
+ */
159
+ export const size: <A>(self: TPubSub<A>) => STM.STM<number> = internal.size
160
+
161
+ /**
162
+ * Creates a bounded `TPubSub` with the sliding strategy. The `TPubSub` will add new
163
+ * messages and drop old messages if the `TPubSub` is at capacity.
164
+ *
165
+ * For best performance use capacities that are powers of two.
166
+ *
167
+ * @since 2.0.0
168
+ * @category constructors
169
+ */
170
+ export const sliding: <A>(requestedCapacity: number) => STM.STM<TPubSub<A>> = internal.sliding
171
+
172
+ /**
173
+ * Subscribes to receive messages from the `TPubSub`. The resulting subscription can
174
+ * be evaluated multiple times to take a message from the `TPubSub` each time. The
175
+ * caller is responsible for unsubscribing from the `TPubSub` by shutting down the
176
+ * queue.
177
+ *
178
+ * @since 2.0.0
179
+ * @category mutations
180
+ */
181
+ export const subscribe: <A>(self: TPubSub<A>) => STM.STM<TQueue.TDequeue<A>> = internal.subscribe
182
+
183
+ /**
184
+ * Subscribes to receive messages from the `TPubSub`. The resulting subscription can
185
+ * be evaluated multiple times within the scope to take a message from the `TPubSub`
186
+ * each time.
187
+ *
188
+ * @since 2.0.0
189
+ * @category mutations
190
+ */
191
+ export const subscribeScoped: <A>(self: TPubSub<A>) => Effect.Effect<TQueue.TDequeue<A>, never, Scope.Scope> =
192
+ internal.subscribeScoped
193
+
194
+ /**
195
+ * Creates an unbounded `TPubSub`.
196
+ *
197
+ * @since 2.0.0
198
+ * @category constructors
199
+ */
200
+ export const unbounded: <A>() => STM.STM<TPubSub<A>> = internal.unbounded