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

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/TMap.ts ADDED
@@ -0,0 +1,515 @@
1
+ /**
2
+ * @since 2.0.0
3
+ */
4
+ import type * as Chunk from "./Chunk.js"
5
+ import type { LazyArg } from "./Function.js"
6
+ import type * as HashMap from "./HashMap.js"
7
+ import * as internal from "./internal/stm/tMap.js"
8
+ import type * as Option from "./Option.js"
9
+ import type * as STM from "./STM.js"
10
+ import type * as TArray from "./TArray.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 TMapTypeId: unique symbol = internal.TMapTypeId
19
+
20
+ /**
21
+ * @since 2.0.0
22
+ * @category symbols
23
+ */
24
+ export type TMapTypeId = typeof TMapTypeId
25
+
26
+ /**
27
+ * Transactional map implemented on top of `TRef` and `TArray`. Resolves
28
+ * conflicts via chaining.
29
+ *
30
+ * @since 2.0.0
31
+ * @category models
32
+ */
33
+ export interface TMap<in out K, in out V> extends TMap.Variance<K, V> {}
34
+ /**
35
+ * @internal
36
+ * @since 2.0.0
37
+ */
38
+ export interface TMap<in out K, in out V> {
39
+ /** @internal */
40
+ readonly tBuckets: TRef.TRef<TArray.TArray<Chunk.Chunk<readonly [K, V]>>>
41
+ /** @internal */
42
+ readonly tSize: TRef.TRef<number>
43
+ }
44
+
45
+ /**
46
+ * @since 2.0.0
47
+ */
48
+ export declare namespace TMap {
49
+ /**
50
+ * @since 2.0.0
51
+ * @category models
52
+ */
53
+ export interface Variance<in out K, in out V> {
54
+ readonly [TMapTypeId]: {
55
+ readonly _K: Types.Invariant<K>
56
+ readonly _V: Types.Invariant<V>
57
+ }
58
+ }
59
+ }
60
+
61
+ /**
62
+ * Makes an empty `TMap`.
63
+ *
64
+ * @since 2.0.0
65
+ * @category constructors
66
+ */
67
+ export const empty: <K, V>() => STM.STM<TMap<K, V>> = internal.empty
68
+
69
+ /**
70
+ * Finds the key/value pair matching the specified predicate, and uses the
71
+ * provided function to extract a value out of it.
72
+ *
73
+ * @since 2.0.0
74
+ * @category elements
75
+ */
76
+ export const find: {
77
+ <K, V, A>(pf: (key: K, value: V) => Option.Option<A>): (self: TMap<K, V>) => STM.STM<Option.Option<A>>
78
+ <K, V, A>(self: TMap<K, V>, pf: (key: K, value: V) => Option.Option<A>): STM.STM<Option.Option<A>>
79
+ } = internal.find
80
+
81
+ /**
82
+ * Finds the key/value pair matching the specified predicate, and uses the
83
+ * provided effectful function to extract a value out of it.
84
+ *
85
+ * @since 2.0.0
86
+ * @category elements
87
+ */
88
+ export const findSTM: {
89
+ <K, V, A, E, R>(
90
+ f: (key: K, value: V) => STM.STM<A, Option.Option<E>, R>
91
+ ): (self: TMap<K, V>) => STM.STM<Option.Option<A>, E, R>
92
+ <K, V, A, E, R>(
93
+ self: TMap<K, V>,
94
+ f: (key: K, value: V) => STM.STM<A, Option.Option<E>, R>
95
+ ): STM.STM<Option.Option<A>, E, R>
96
+ } = internal.findSTM
97
+
98
+ /**
99
+ * Finds all the key/value pairs matching the specified predicate, and uses
100
+ * the provided function to extract values out them.
101
+ *
102
+ * @since 2.0.0
103
+ * @category elements
104
+ */
105
+ export const findAll: {
106
+ <K, V, A>(pf: (key: K, value: V) => Option.Option<A>): (self: TMap<K, V>) => STM.STM<Array<A>>
107
+ <K, V, A>(self: TMap<K, V>, pf: (key: K, value: V) => Option.Option<A>): STM.STM<Array<A>>
108
+ } = internal.findAll
109
+
110
+ /**
111
+ * Finds all the key/value pairs matching the specified predicate, and uses
112
+ * the provided effectful function to extract values out of them..
113
+ *
114
+ * @since 2.0.0
115
+ * @category elements
116
+ */
117
+ export const findAllSTM: {
118
+ <K, V, A, E, R>(
119
+ pf: (key: K, value: V) => STM.STM<A, Option.Option<E>, R>
120
+ ): (self: TMap<K, V>) => STM.STM<Array<A>, E, R>
121
+ <K, V, A, E, R>(self: TMap<K, V>, pf: (key: K, value: V) => STM.STM<A, Option.Option<E>, R>): STM.STM<Array<A>, E, R>
122
+ } = internal.findAllSTM
123
+
124
+ /**
125
+ * Atomically performs transactional-effect for each binding present in map.
126
+ *
127
+ * @since 2.0.0
128
+ * @category elements
129
+ */
130
+ export const forEach: {
131
+ <K, V, X, E, R>(f: (key: K, value: V) => STM.STM<X, E, R>): (self: TMap<K, V>) => STM.STM<void, E, R>
132
+ <K, V, X, E, R>(self: TMap<K, V>, f: (key: K, value: V) => STM.STM<X, E, R>): STM.STM<void, E, R>
133
+ } = internal.forEach
134
+
135
+ /**
136
+ * Creates a new `TMap` from an iterable collection of key/value pairs.
137
+ *
138
+ * @since 2.0.0
139
+ * @category constructors
140
+ */
141
+ export const fromIterable: <K, V>(
142
+ iterable: Iterable<readonly [K, V]>
143
+ ) => STM.STM<TMap<K, V>> = internal.fromIterable
144
+
145
+ /**
146
+ * Retrieves value associated with given key.
147
+ *
148
+ * @since 2.0.0
149
+ * @category elements
150
+ */
151
+ export const get: {
152
+ <K>(key: K): <V>(self: TMap<K, V>) => STM.STM<Option.Option<V>>
153
+ <K, V>(self: TMap<K, V>, key: K): STM.STM<Option.Option<V>>
154
+ } = internal.get
155
+
156
+ /**
157
+ * Retrieves value associated with given key or default value, in case the key
158
+ * isn't present.
159
+ *
160
+ * @since 2.0.0
161
+ * @category elements
162
+ */
163
+ export const getOrElse: {
164
+ <K, V>(key: K, fallback: LazyArg<V>): (self: TMap<K, V>) => STM.STM<V>
165
+ <K, V>(self: TMap<K, V>, key: K, fallback: LazyArg<V>): STM.STM<V>
166
+ } = internal.getOrElse
167
+
168
+ /**
169
+ * Tests whether or not map contains a key.
170
+ *
171
+ * @since 2.0.0
172
+ * @category elements
173
+ */
174
+ export const has: {
175
+ <K>(key: K): <V>(self: TMap<K, V>) => STM.STM<boolean>
176
+ <K, V>(self: TMap<K, V>, key: K): STM.STM<boolean>
177
+ } = internal.has
178
+
179
+ /**
180
+ * Tests if the map is empty or not.
181
+ *
182
+ * @since 2.0.0
183
+ * @category getters
184
+ */
185
+ export const isEmpty: <K, V>(self: TMap<K, V>) => STM.STM<boolean> = internal.isEmpty
186
+
187
+ /**
188
+ * Collects all keys stored in map.
189
+ *
190
+ * @since 2.0.0
191
+ * @category elements
192
+ */
193
+ export const keys: <K, V>(self: TMap<K, V>) => STM.STM<Array<K>> = internal.keys
194
+
195
+ /**
196
+ * Makes a new `TMap` that is initialized with specified values.
197
+ *
198
+ * @since 2.0.0
199
+ * @category constructors
200
+ */
201
+ export const make: <K, V>(...entries: Array<readonly [K, V]>) => STM.STM<TMap<K, V>> = internal.make
202
+
203
+ /**
204
+ * If the key is not already associated with a value, stores the provided value,
205
+ * otherwise merge the existing value with the new one using function `f` and
206
+ * store the result.
207
+ *
208
+ * @since 2.0.0
209
+ * @category mutations
210
+ */
211
+ export const merge: {
212
+ <K, V>(key: K, value: V, f: (x: V, y: V) => V): (self: TMap<K, V>) => STM.STM<V>
213
+ <K, V>(self: TMap<K, V>, key: K, value: V, f: (x: V, y: V) => V): STM.STM<V>
214
+ } = internal.merge
215
+
216
+ /**
217
+ * Atomically folds using a pure function.
218
+ *
219
+ * @since 2.0.0
220
+ * @category folding
221
+ */
222
+ export const reduce: {
223
+ <Z, K, V>(zero: Z, f: (acc: Z, value: V, key: K) => Z): (self: TMap<K, V>) => STM.STM<Z>
224
+ <K, V, Z>(self: TMap<K, V>, zero: Z, f: (acc: Z, value: V, key: K) => Z): STM.STM<Z>
225
+ } = internal.reduce
226
+
227
+ /**
228
+ * Atomically folds using a transactional function.
229
+ *
230
+ * @since 2.0.0
231
+ * @category folding
232
+ */
233
+ export const reduceSTM: {
234
+ <Z, V, K, R, E>(zero: Z, f: (acc: Z, value: V, key: K) => STM.STM<Z, E, R>): (self: TMap<K, V>) => STM.STM<Z, E, R>
235
+ <Z, V, K, R, E>(self: TMap<K, V>, zero: Z, f: (acc: Z, value: V, key: K) => STM.STM<Z, E, R>): STM.STM<Z, E, R>
236
+ } = internal.reduceSTM
237
+
238
+ /**
239
+ * Removes binding for given key.
240
+ *
241
+ * @since 2.0.0
242
+ * @category mutations
243
+ */
244
+ export const remove: {
245
+ <K>(key: K): <V>(self: TMap<K, V>) => STM.STM<void>
246
+ <K, V>(self: TMap<K, V>, key: K): STM.STM<void>
247
+ } = internal.remove
248
+
249
+ /**
250
+ * Deletes all entries associated with the specified keys.
251
+ *
252
+ * @since 2.0.0
253
+ * @category mutations
254
+ */
255
+ export const removeAll: {
256
+ <K>(keys: Iterable<K>): <V>(self: TMap<K, V>) => STM.STM<void>
257
+ <K, V>(self: TMap<K, V>, keys: Iterable<K>): STM.STM<void>
258
+ } = internal.removeAll
259
+
260
+ /**
261
+ * Removes entries from a `TMap` that satisfy the specified predicate and returns the removed entries
262
+ * (or `void` if `discard = true`).
263
+ *
264
+ * @since 2.0.0
265
+ * @category mutations
266
+ */
267
+ export const removeIf: {
268
+ <K, V>(
269
+ predicate: (key: K, value: V) => boolean,
270
+ options: {
271
+ readonly discard: true
272
+ }
273
+ ): (self: TMap<K, V>) => STM.STM<void>
274
+ <K, V>(
275
+ predicate: (key: K, value: V) => boolean,
276
+ options?: {
277
+ readonly discard: false
278
+ }
279
+ ): (self: TMap<K, V>) => STM.STM<Array<[K, V]>>
280
+ <K, V>(
281
+ self: TMap<K, V>,
282
+ predicate: (key: K, value: V) => boolean,
283
+ options: {
284
+ readonly discard: true
285
+ }
286
+ ): STM.STM<void>
287
+ <K, V>(
288
+ self: TMap<K, V>,
289
+ predicate: (key: K, value: V) => boolean,
290
+ options?: {
291
+ readonly discard: false
292
+ }
293
+ ): STM.STM<Array<[K, V]>>
294
+ } = internal.removeIf
295
+
296
+ /**
297
+ * Retains entries in a `TMap` that satisfy the specified predicate and returns the removed entries
298
+ * (or `void` if `discard = true`).
299
+ *
300
+ * @since 2.0.0
301
+ * @category mutations
302
+ */
303
+ export const retainIf: {
304
+ <K, V>(
305
+ predicate: (key: K, value: V) => boolean,
306
+ options: {
307
+ readonly discard: true
308
+ }
309
+ ): (self: TMap<K, V>) => STM.STM<void>
310
+ <K, V>(
311
+ predicate: (key: K, value: V) => boolean,
312
+ options?: {
313
+ readonly discard: false
314
+ }
315
+ ): (self: TMap<K, V>) => STM.STM<Array<[K, V]>>
316
+ <K, V>(
317
+ self: TMap<K, V>,
318
+ predicate: (key: K, value: V) => boolean,
319
+ options: {
320
+ readonly discard: true
321
+ }
322
+ ): STM.STM<void>
323
+ <K, V>(
324
+ self: TMap<K, V>,
325
+ predicate: (key: K, value: V) => boolean,
326
+ options?: {
327
+ readonly discard: false
328
+ }
329
+ ): STM.STM<Array<[K, V]>>
330
+ } = internal.retainIf
331
+
332
+ /**
333
+ * Stores new binding into the map.
334
+ *
335
+ * @since 2.0.0
336
+ * @category mutations
337
+ */
338
+ export const set: {
339
+ <K, V>(key: K, value: V): (self: TMap<K, V>) => STM.STM<void>
340
+ <K, V>(self: TMap<K, V>, key: K, value: V): STM.STM<void>
341
+ } = internal.set
342
+
343
+ /**
344
+ * Stores new binding in the map if it does not already exist.
345
+ *
346
+ * @since 2.0.0
347
+ * @category mutations
348
+ */
349
+ export const setIfAbsent: {
350
+ <K, V>(key: K, value: V): (self: TMap<K, V>) => STM.STM<void>
351
+ <K, V>(self: TMap<K, V>, key: K, value: V): STM.STM<void>
352
+ } = internal.setIfAbsent
353
+
354
+ /**
355
+ * Returns the number of bindings.
356
+ *
357
+ * @since 2.0.0
358
+ * @category getters
359
+ */
360
+ export const size: <K, V>(self: TMap<K, V>) => STM.STM<number> = internal.size
361
+
362
+ /**
363
+ * Takes the first matching value, or retries until there is one.
364
+ *
365
+ * @since 2.0.0
366
+ * @category mutations
367
+ */
368
+ export const takeFirst: {
369
+ <K, V, A>(pf: (key: K, value: V) => Option.Option<A>): (self: TMap<K, V>) => STM.STM<A>
370
+ <K, V, A>(self: TMap<K, V>, pf: (key: K, value: V) => Option.Option<A>): STM.STM<A>
371
+ } = internal.takeFirst
372
+
373
+ /**
374
+ * Takes the first matching value, or retries until there is one.
375
+ *
376
+ * @since 2.0.0
377
+ * @category mutations
378
+ */
379
+ export const takeFirstSTM: {
380
+ <K, V, A, E, R>(pf: (key: K, value: V) => STM.STM<A, Option.Option<E>, R>): (self: TMap<K, V>) => STM.STM<A, E, R>
381
+ <K, V, A, E, R>(self: TMap<K, V>, pf: (key: K, value: V) => STM.STM<A, Option.Option<E>, R>): STM.STM<A, E, R>
382
+ } = internal.takeFirstSTM
383
+
384
+ /**
385
+ * Takes all matching values, or retries until there is at least one.
386
+ *
387
+ * @since 2.0.0
388
+ * @category mutations
389
+ */
390
+ export const takeSome: {
391
+ <K, V, A>(pf: (key: K, value: V) => Option.Option<A>): (self: TMap<K, V>) => STM.STM<[A, ...Array<A>]>
392
+ <K, V, A>(self: TMap<K, V>, pf: (key: K, value: V) => Option.Option<A>): STM.STM<[A, ...Array<A>]>
393
+ } = internal.takeSome
394
+
395
+ /**
396
+ * Takes all matching values, or retries until there is at least one.
397
+ *
398
+ * @since 2.0.0
399
+ * @category mutations
400
+ */
401
+ export const takeSomeSTM: {
402
+ <K, V, A, E, R>(
403
+ pf: (key: K, value: V) => STM.STM<A, Option.Option<E>, R>
404
+ ): (self: TMap<K, V>) => STM.STM<[A, ...Array<A>], E, R>
405
+ <K, V, A, E, R>(
406
+ self: TMap<K, V>,
407
+ pf: (key: K, value: V) => STM.STM<A, Option.Option<E>, R>
408
+ ): STM.STM<[A, ...Array<A>], E, R>
409
+ } = internal.takeSomeSTM
410
+
411
+ /**
412
+ * Collects all bindings into a `Chunk`.
413
+ *
414
+ * @since 2.0.0
415
+ * @category destructors
416
+ */
417
+ export const toChunk: <K, V>(self: TMap<K, V>) => STM.STM<Chunk.Chunk<[K, V]>> = internal.toChunk
418
+
419
+ /**
420
+ * Collects all bindings into a `HashMap`.
421
+ *
422
+ * @since 2.0.0
423
+ * @category destructors
424
+ */
425
+ export const toHashMap: <K, V>(self: TMap<K, V>) => STM.STM<HashMap.HashMap<K, V>> = internal.toHashMap
426
+
427
+ /**
428
+ * Collects all bindings into an `Array`.
429
+ *
430
+ * @since 2.0.0
431
+ * @category destructors
432
+ */
433
+ export const toArray: <K, V>(self: TMap<K, V>) => STM.STM<Array<[K, V]>> = internal.toArray
434
+
435
+ /**
436
+ * Collects all bindings into a `Map`.
437
+ *
438
+ * @since 2.0.0
439
+ * @category destructors
440
+ */
441
+ export const toMap: <K, V>(self: TMap<K, V>) => STM.STM<ReadonlyMap<K, V>> = internal.toMap
442
+
443
+ /**
444
+ * Atomically updates all bindings using a pure function.
445
+ *
446
+ * @since 2.0.0
447
+ * @category mutations
448
+ */
449
+ export const transform: {
450
+ <K, V>(f: (key: K, value: V) => readonly [K, V]): (self: TMap<K, V>) => STM.STM<void>
451
+ <K, V>(self: TMap<K, V>, f: (key: K, value: V) => readonly [K, V]): STM.STM<void>
452
+ } = internal.transform
453
+
454
+ /**
455
+ * Atomically updates all bindings using a transactional function.
456
+ *
457
+ * @since 2.0.0
458
+ * @category mutations
459
+ */
460
+ export const transformSTM: {
461
+ <K, V, R, E>(f: (key: K, value: V) => STM.STM<readonly [K, V], E, R>): (self: TMap<K, V>) => STM.STM<void, E, R>
462
+ <K, V, R, E>(self: TMap<K, V>, f: (key: K, value: V) => STM.STM<readonly [K, V], E, R>): STM.STM<void, E, R>
463
+ } = internal.transformSTM
464
+
465
+ /**
466
+ * Atomically updates all values using a pure function.
467
+ *
468
+ * @since 2.0.0
469
+ * @category mutations
470
+ */
471
+ export const transformValues: {
472
+ <V>(f: (value: V) => V): <K>(self: TMap<K, V>) => STM.STM<void>
473
+ <K, V>(self: TMap<K, V>, f: (value: V) => V): STM.STM<void>
474
+ } = internal.transformValues
475
+
476
+ /**
477
+ * Atomically updates all values using a transactional function.
478
+ *
479
+ * @since 2.0.0
480
+ * @category mutations
481
+ */
482
+ export const transformValuesSTM: {
483
+ <V, R, E>(f: (value: V) => STM.STM<V, E, R>): <K>(self: TMap<K, V>) => STM.STM<void, E, R>
484
+ <K, V, R, E>(self: TMap<K, V>, f: (value: V) => STM.STM<V, E, R>): STM.STM<void, E, R>
485
+ } = internal.transformValuesSTM
486
+
487
+ /**
488
+ * Updates the mapping for the specified key with the specified function,
489
+ * which takes the current value of the key as an input, if it exists, and
490
+ * either returns `Some` with a new value to indicate to update the value in
491
+ * the map or `None` to remove the value from the map. Returns `Some` with the
492
+ * updated value or `None` if the value was removed from the map.
493
+ *
494
+ * @since 2.0.0
495
+ * @category mutations
496
+ */
497
+ export const updateWith: {
498
+ <K, V>(
499
+ key: K,
500
+ f: (value: Option.Option<V>) => Option.Option<V>
501
+ ): (self: TMap<K, V>) => STM.STM<Option.Option<V>>
502
+ <K, V>(
503
+ self: TMap<K, V>,
504
+ key: K,
505
+ f: (value: Option.Option<V>) => Option.Option<V>
506
+ ): STM.STM<Option.Option<V>>
507
+ } = internal.updateWith
508
+
509
+ /**
510
+ * Collects all values stored in map.
511
+ *
512
+ * @since 2.0.0
513
+ * @category elements
514
+ */
515
+ export const values: <K, V>(self: TMap<K, V>) => STM.STM<Array<V>> = internal.values