@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
package/src/TQueue.ts ADDED
@@ -0,0 +1,432 @@
1
+ /**
2
+ * @since 2.0.0
3
+ */
4
+ import * as internal from "./internal/stm/tQueue.js"
5
+ import type * as Option from "./Option.js"
6
+ import type { Predicate } from "./Predicate.js"
7
+ import type * as STM from "./STM.js"
8
+ import type * as Types from "./Types.js"
9
+
10
+ /**
11
+ * @since 2.0.0
12
+ * @category symbols
13
+ */
14
+ export const TDequeueTypeId: unique symbol = internal.TDequeueTypeId
15
+
16
+ /**
17
+ * @since 2.0.0
18
+ * @category symbols
19
+ */
20
+ export type TDequeueTypeId = typeof TDequeueTypeId
21
+
22
+ /**
23
+ * @since 2.0.0
24
+ * @category symbols
25
+ */
26
+ export const TEnqueueTypeId: unique symbol = internal.TEnqueueTypeId
27
+
28
+ /**
29
+ * @since 2.0.0
30
+ * @category symbols
31
+ */
32
+ export type TEnqueueTypeId = typeof TEnqueueTypeId
33
+
34
+ /**
35
+ * @since 2.0.0
36
+ * @category models
37
+ */
38
+ export interface TQueue<in out A> extends TEnqueue<A>, TDequeue<A> {}
39
+
40
+ /**
41
+ * @since 2.0.0
42
+ * @category models
43
+ */
44
+ export interface TEnqueue<in A> extends TQueue.TEnqueueVariance<A>, BaseTQueue {
45
+ /**
46
+ * Places one value in the queue.
47
+ */
48
+ offer(value: A): STM.STM<boolean>
49
+
50
+ /**
51
+ * For Bounded TQueue: uses the `BackPressure` Strategy, places the values in
52
+ * the queue and always returns true. If the queue has reached capacity, then
53
+ * the fiber performing the `offerAll` will be suspended until there is room
54
+ * in the queue.
55
+ *
56
+ * For Unbounded TQueue: Places all values in the queue and returns true.
57
+ *
58
+ * For Sliding TQueue: uses `Sliding` Strategy If there is room in the queue,
59
+ * it places the values otherwise it removes the old elements and enqueues the
60
+ * new ones. Always returns true.
61
+ *
62
+ * For Dropping TQueue: uses `Dropping` Strategy, It places the values in the
63
+ * queue but if there is no room it will not enqueue them and return false.
64
+ */
65
+ offerAll(iterable: Iterable<A>): STM.STM<boolean>
66
+ }
67
+
68
+ /**
69
+ * @since 2.0.0
70
+ * @category models
71
+ */
72
+ export interface TDequeue<out A> extends TQueue.TDequeueVariance<A>, BaseTQueue {
73
+ /**
74
+ * Views the next element in the queue without removing it, retrying if the
75
+ * queue is empty.
76
+ */
77
+ readonly peek: STM.STM<A>
78
+
79
+ /**
80
+ * Views the next element in the queue without removing it, returning `None`
81
+ * if the queue is empty.
82
+ */
83
+ readonly peekOption: STM.STM<Option.Option<A>>
84
+
85
+ /**
86
+ * Takes the oldest value in the queue. If the queue is empty, this will return
87
+ * a computation that resumes when an item has been added to the queue.
88
+ */
89
+ readonly take: STM.STM<A>
90
+
91
+ /**
92
+ * Takes all the values in the queue and returns the values. If the queue is
93
+ * empty returns an empty collection.
94
+ */
95
+ readonly takeAll: STM.STM<Array<A>>
96
+
97
+ /**
98
+ * Takes up to max number of values from the queue.
99
+ */
100
+ takeUpTo(max: number): STM.STM<Array<A>>
101
+ }
102
+
103
+ /**
104
+ * The base interface that all `TQueue`s must implement.
105
+ *
106
+ * @since 2.0.0
107
+ * @category models
108
+ */
109
+ export interface BaseTQueue {
110
+ /**
111
+ * Returns the number of elements the queue can hold.
112
+ */
113
+ capacity(): number
114
+
115
+ /**
116
+ * Retrieves the size of the queue, which is equal to the number of elements
117
+ * in the queue. This may be negative if fibers are suspended waiting for
118
+ * elements to be added to the queue.
119
+ */
120
+ readonly size: STM.STM<number>
121
+
122
+ /**
123
+ * Returns `true` if the `TQueue` contains at least one element, `false`
124
+ * otherwise.
125
+ */
126
+ readonly isFull: STM.STM<boolean>
127
+
128
+ /**
129
+ * Returns `true` if the `TQueue` contains zero elements, `false` otherwise.
130
+ */
131
+ readonly isEmpty: STM.STM<boolean>
132
+
133
+ /**
134
+ * Interrupts any fibers that are suspended on `offer` or `take`. Future calls
135
+ * to `offer*` and `take*` will be interrupted immediately.
136
+ */
137
+ readonly shutdown: STM.STM<void>
138
+
139
+ /**
140
+ * Returns `true` if `shutdown` has been called, otherwise returns `false`.
141
+ */
142
+ readonly isShutdown: STM.STM<boolean>
143
+
144
+ /**
145
+ * Waits until the queue is shutdown. The `STM` returned by this method will
146
+ * not resume until the queue has been shutdown. If the queue is already
147
+ * shutdown, the `STM` will resume right away.
148
+ */
149
+ readonly awaitShutdown: STM.STM<void>
150
+ }
151
+
152
+ /**
153
+ * @since 2.0.0
154
+ */
155
+ export declare namespace TQueue {
156
+ /**
157
+ * @since 2.0.0
158
+ * @category models
159
+ */
160
+ export interface TEnqueueVariance<in A> {
161
+ readonly [TEnqueueTypeId]: {
162
+ readonly _In: Types.Contravariant<A>
163
+ }
164
+ }
165
+
166
+ /**
167
+ * @since 2.0.0
168
+ * @category models
169
+ */
170
+ export interface TDequeueVariance<out A> {
171
+ readonly [TDequeueTypeId]: {
172
+ readonly _Out: Types.Covariant<A>
173
+ }
174
+ }
175
+ }
176
+
177
+ /**
178
+ * Returns `true` if the specified value is a `TQueue`, `false` otherwise.
179
+ *
180
+ * @since 2.0.0
181
+ * @category refinements
182
+ */
183
+ export const isTQueue: (u: unknown) => u is TQueue<unknown> = internal.isTQueue
184
+
185
+ /**
186
+ * Returns `true` if the specified value is a `TDequeue`, `false` otherwise.
187
+ *
188
+ * @since 2.0.0
189
+ * @category refinements
190
+ */
191
+ export const isTDequeue: (u: unknown) => u is TDequeue<unknown> = internal.isTDequeue
192
+
193
+ /**
194
+ * Returns `true` if the specified value is a `TEnqueue`, `false` otherwise.
195
+ *
196
+ * @since 2.0.0
197
+ * @category refinements
198
+ */
199
+ export const isTEnqueue: (u: unknown) => u is TEnqueue<unknown> = internal.isTEnqueue
200
+
201
+ /**
202
+ * Waits until the queue is shutdown. The `STM` returned by this method will
203
+ * not resume until the queue has been shutdown. If the queue is already
204
+ * shutdown, the `STM` will resume right away.
205
+ *
206
+ * @since 2.0.0
207
+ * @category mutations
208
+ */
209
+ export const awaitShutdown: <A>(self: TDequeue<A> | TEnqueue<A>) => STM.STM<void> = internal.awaitShutdown
210
+
211
+ /**
212
+ * Creates a bounded queue with the back pressure strategy. The queue will
213
+ * retain values until they have been taken, applying back pressure to
214
+ * offerors if the queue is at capacity.
215
+ *
216
+ * For best performance use capacities that are powers of two.
217
+ *
218
+ * @since 2.0.0
219
+ * @category constructors
220
+ */
221
+ export const bounded: <A>(requestedCapacity: number) => STM.STM<TQueue<A>> = internal.bounded
222
+
223
+ /**
224
+ * Returns the number of elements the queue can hold.
225
+ *
226
+ * @since 2.0.0
227
+ * @category getters
228
+ */
229
+ export const capacity: <A>(self: TDequeue<A> | TEnqueue<A>) => number = internal.capacity
230
+
231
+ /**
232
+ * Creates a bounded queue with the dropping strategy. The queue will drop new
233
+ * values if the queue is at capacity.
234
+ *
235
+ * For best performance use capacities that are powers of two.
236
+ *
237
+ * @since 2.0.0
238
+ * @category constructors
239
+ */
240
+ export const dropping: <A>(requestedCapacity: number) => STM.STM<TQueue<A>> = internal.dropping
241
+
242
+ /**
243
+ * Returns `true` if the `TQueue` contains zero elements, `false` otherwise.
244
+ *
245
+ * @since 2.0.0
246
+ * @category getters
247
+ */
248
+ export const isEmpty: <A>(self: TDequeue<A> | TEnqueue<A>) => STM.STM<boolean> = internal.isEmpty
249
+
250
+ /**
251
+ * Returns `true` if the `TQueue` contains at least one element, `false`
252
+ * otherwise.
253
+ *
254
+ * @since 2.0.0
255
+ * @category getters
256
+ */
257
+ export const isFull: <A>(self: TDequeue<A> | TEnqueue<A>) => STM.STM<boolean> = internal.isFull
258
+
259
+ /**
260
+ * Returns `true` if `shutdown` has been called, otherwise returns `false`.
261
+ *
262
+ * @since 2.0.0
263
+ * @category getters
264
+ */
265
+ export const isShutdown: <A>(self: TDequeue<A> | TEnqueue<A>) => STM.STM<boolean> = internal.isShutdown
266
+
267
+ /**
268
+ * Places one value in the queue.
269
+ *
270
+ * @since 2.0.0
271
+ * @category mutations
272
+ */
273
+ export const offer: {
274
+ <A>(value: A): (self: TEnqueue<A>) => STM.STM<void>
275
+ <A>(self: TEnqueue<A>, value: A): STM.STM<void>
276
+ } = internal.offer
277
+
278
+ /**
279
+ * For Bounded TQueue: uses the `BackPressure` Strategy, places the values in
280
+ * the queue and always returns true. If the queue has reached capacity, then
281
+ * the fiber performing the `offerAll` will be suspended until there is room
282
+ * in the queue.
283
+ *
284
+ * For Unbounded TQueue: Places all values in the queue and returns true.
285
+ *
286
+ * For Sliding TQueue: uses `Sliding` Strategy If there is room in the queue,
287
+ * it places the values otherwise it removes the old elements and enqueues the
288
+ * new ones. Always returns true.
289
+ *
290
+ * For Dropping TQueue: uses `Dropping` Strategy, It places the values in the
291
+ * queue but if there is no room it will not enqueue them and return false.
292
+ *
293
+ * @since 2.0.0
294
+ * @category mutations
295
+ */
296
+ export const offerAll: {
297
+ <A>(iterable: Iterable<A>): (self: TEnqueue<A>) => STM.STM<boolean>
298
+ <A>(self: TEnqueue<A>, iterable: Iterable<A>): STM.STM<boolean>
299
+ } = internal.offerAll
300
+
301
+ /**
302
+ * Views the next element in the queue without removing it, retrying if the
303
+ * queue is empty.
304
+ *
305
+ * @since 2.0.0
306
+ * @category getters
307
+ */
308
+ export const peek: <A>(self: TDequeue<A>) => STM.STM<A> = internal.peek
309
+
310
+ /**
311
+ * Views the next element in the queue without removing it, returning `None`
312
+ * if the queue is empty.
313
+ *
314
+ * @since 2.0.0
315
+ * @category getters
316
+ */
317
+ export const peekOption: <A>(self: TDequeue<A>) => STM.STM<Option.Option<A>> = internal.peekOption
318
+
319
+ /**
320
+ * Takes a single element from the queue, returning `None` if the queue is
321
+ * empty.
322
+ *
323
+ * @since 2.0.0
324
+ * @category getters
325
+ */
326
+ export const poll: <A>(self: TDequeue<A>) => STM.STM<Option.Option<A>> = internal.poll
327
+
328
+ /**
329
+ * Drops elements from the queue while they do not satisfy the predicate,
330
+ * taking and returning the first element that does satisfy the predicate.
331
+ * Retries if no elements satisfy the predicate.
332
+ *
333
+ * @since 2.0.0
334
+ * @category mutations
335
+ */
336
+ export const seek: {
337
+ <A>(predicate: Predicate<A>): (self: TDequeue<A>) => STM.STM<A>
338
+ <A>(self: TDequeue<A>, predicate: Predicate<A>): STM.STM<A>
339
+ } = internal.seek
340
+
341
+ /**
342
+ * Interrupts any fibers that are suspended on `offer` or `take`. Future calls
343
+ * to `offer*` and `take*` will be interrupted immediately.
344
+ *
345
+ * @since 2.0.0
346
+ * @category mutations
347
+ */
348
+ export const shutdown: <A>(self: TDequeue<A> | TEnqueue<A>) => STM.STM<void> = internal.shutdown
349
+
350
+ /**
351
+ * Retrieves the size of the queue, which is equal to the number of elements
352
+ * in the queue. This may be negative if fibers are suspended waiting for
353
+ * elements to be added to the queue.
354
+ *
355
+ * @since 2.0.0
356
+ * @category getters
357
+ */
358
+ export const size: <A>(self: TDequeue<A> | TEnqueue<A>) => STM.STM<number> = internal.size
359
+
360
+ /**
361
+ * Creates a bounded queue with the sliding strategy. The queue will add new
362
+ * values and drop old values if the queue is at capacity.
363
+ *
364
+ * For best performance use capacities that are powers of two.
365
+ *
366
+ * @since 2.0.0
367
+ * @category constructors
368
+ */
369
+ export const sliding: <A>(requestedCapacity: number) => STM.STM<TQueue<A>> = internal.sliding
370
+
371
+ /**
372
+ * Takes the oldest value in the queue. If the queue is empty, this will return
373
+ * a computation that resumes when an item has been added to the queue.
374
+ *
375
+ * @since 2.0.0
376
+ * @category mutations
377
+ */
378
+ export const take: <A>(self: TDequeue<A>) => STM.STM<A> = internal.take
379
+
380
+ /**
381
+ * Takes all the values in the queue and returns the values. If the queue is
382
+ * empty returns an empty collection.
383
+ *
384
+ * @since 2.0.0
385
+ * @category mutations
386
+ */
387
+ export const takeAll: <A>(self: TDequeue<A>) => STM.STM<Array<A>> = internal.takeAll
388
+
389
+ /**
390
+ * Takes a number of elements from the queue between the specified minimum and
391
+ * maximum. If there are fewer than the minimum number of elements available,
392
+ * retries until at least the minimum number of elements have been collected.
393
+ *
394
+ * @since 2.0.0
395
+ * @category mutations
396
+ */
397
+ export const takeBetween: {
398
+ (min: number, max: number): <A>(self: TDequeue<A>) => STM.STM<Array<A>>
399
+ <A>(self: TDequeue<A>, min: number, max: number): STM.STM<Array<A>>
400
+ } = internal.takeBetween
401
+
402
+ /**
403
+ * Takes the specified number of elements from the queue. If there are fewer
404
+ * than the specified number of elements available, it retries until they
405
+ * become available.
406
+ *
407
+ * @since 2.0.0
408
+ * @category mutations
409
+ */
410
+ export const takeN: {
411
+ (n: number): <A>(self: TDequeue<A>) => STM.STM<Array<A>>
412
+ <A>(self: TDequeue<A>, n: number): STM.STM<Array<A>>
413
+ } = internal.takeN
414
+
415
+ /**
416
+ * Takes up to max number of values from the queue.
417
+ *
418
+ * @since 2.0.0
419
+ * @category mutations
420
+ */
421
+ export const takeUpTo: {
422
+ (max: number): <A>(self: TDequeue<A>) => STM.STM<Array<A>>
423
+ <A>(self: TDequeue<A>, max: number): STM.STM<Array<A>>
424
+ } = internal.takeUpTo
425
+
426
+ /**
427
+ * Creates an unbounded queue.
428
+ *
429
+ * @since 2.0.0
430
+ * @category constructors
431
+ */
432
+ export const unbounded: <A>() => STM.STM<TQueue<A>> = internal.unbounded
package/src/TRandom.ts ADDED
@@ -0,0 +1,129 @@
1
+ /**
2
+ * @since 2.0.0
3
+ */
4
+ import type * as Context from "./Context.js"
5
+ import * as internal from "./internal/stm/tRandom.js"
6
+ import type * as Layer from "./Layer.js"
7
+ import type * as STM from "./STM.js"
8
+ import type * as TRef from "./TRef.js"
9
+ import type * as Random from "./Utils.js"
10
+
11
+ /**
12
+ * @since 2.0.0
13
+ * @category symbols
14
+ */
15
+ export const TRandomTypeId: unique symbol = internal.TRandomTypeId
16
+
17
+ /**
18
+ * @since 2.0.0
19
+ * @category symbols
20
+ */
21
+ export type TRandomTypeId = typeof TRandomTypeId
22
+
23
+ /**
24
+ * @since 2.0.0
25
+ * @category models
26
+ */
27
+ export interface TRandom {
28
+ readonly [TRandomTypeId]: TRandomTypeId
29
+ /**
30
+ * Returns the next numeric value from the pseudo-random number generator.
31
+ */
32
+ readonly next: STM.STM<number>
33
+ /**
34
+ * Returns the next boolean value from the pseudo-random number generator.
35
+ */
36
+ readonly nextBoolean: STM.STM<boolean>
37
+ /**
38
+ * Returns the next integer value from the pseudo-random number generator.
39
+ */
40
+ readonly nextInt: STM.STM<number>
41
+ /**
42
+ * Returns the next numeric value in the specified range from the
43
+ * pseudo-random number generator.
44
+ */
45
+ nextRange(min: number, max: number): STM.STM<number>
46
+ /**
47
+ * Returns the next integer value in the specified range from the
48
+ * pseudo-random number generator.
49
+ */
50
+ nextIntBetween(min: number, max: number): STM.STM<number>
51
+ /**
52
+ * Uses the pseudo-random number generator to shuffle the specified iterable.
53
+ */
54
+ shuffle<A>(elements: Iterable<A>): STM.STM<Array<A>>
55
+ }
56
+ /**
57
+ * @internal
58
+ * @since 2.0.0
59
+ */
60
+ export interface TRandom {
61
+ /** @internal */
62
+ readonly state: TRef.TRef<Random.PCGRandomState>
63
+ }
64
+
65
+ /**
66
+ * The service tag used to access `TRandom` in the environment of an effect.
67
+ *
68
+ * @since 2.0.0
69
+ * @category context
70
+ */
71
+ export const Tag: Context.Tag<TRandom, TRandom> = internal.Tag
72
+
73
+ /**
74
+ * The "live" `TRandom` service wrapped into a `Layer`.
75
+ *
76
+ * @since 2.0.0
77
+ * @category context
78
+ */
79
+ export const live: Layer.Layer<TRandom> = internal.live
80
+
81
+ /**
82
+ * Returns the next number from the pseudo-random number generator.
83
+ *
84
+ * @since 2.0.0
85
+ * @category random
86
+ */
87
+ export const next: STM.STM<number, never, TRandom> = internal.next
88
+
89
+ /**
90
+ * Returns the next boolean value from the pseudo-random number generator.
91
+ *
92
+ * @since 2.0.0
93
+ * @category random
94
+ */
95
+ export const nextBoolean: STM.STM<boolean, never, TRandom> = internal.nextBoolean
96
+
97
+ /**
98
+ * Returns the next integer from the pseudo-random number generator.
99
+ *
100
+ * @since 2.0.0
101
+ * @category random
102
+ */
103
+ export const nextInt: STM.STM<number, never, TRandom> = internal.nextInt
104
+
105
+ /**
106
+ * Returns the next integer in the specified range from the pseudo-random number
107
+ * generator.
108
+ *
109
+ * @since 2.0.0
110
+ * @category random
111
+ */
112
+ export const nextIntBetween: (low: number, high: number) => STM.STM<number, never, TRandom> = internal.nextIntBetween
113
+
114
+ /**
115
+ * Returns the next number in the specified range from the pseudo-random number
116
+ * generator.
117
+ *
118
+ * @since 2.0.0
119
+ * @category random
120
+ */
121
+ export const nextRange: (min: number, max: number) => STM.STM<number, never, TRandom> = internal.nextRange
122
+
123
+ /**
124
+ * Uses the pseudo-random number generator to shuffle the specified iterable.
125
+ *
126
+ * @since 2.0.0
127
+ * @category random
128
+ */
129
+ export const shuffle: <A>(elements: Iterable<A>) => STM.STM<Array<A>, never, TRandom> = internal.shuffle