@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/TSet.ts ADDED
@@ -0,0 +1,365 @@
1
+ /**
2
+ * @since 2.0.0
3
+ */
4
+ import type * as Chunk from "./Chunk.js"
5
+ import type * as HashSet from "./HashSet.js"
6
+ import * as internal from "./internal/stm/tSet.js"
7
+ import type * as Option from "./Option.js"
8
+ import type { Predicate } from "./Predicate.js"
9
+ import type * as STM from "./STM.js"
10
+ import type * as TMap from "./TMap.js"
11
+ import type * as Types from "./Types.js"
12
+
13
+ /**
14
+ * @since 2.0.0
15
+ * @category symbols
16
+ */
17
+ export const TSetTypeId: unique symbol = internal.TSetTypeId
18
+
19
+ /**
20
+ * @since 2.0.0
21
+ * @category symbols
22
+ */
23
+ export type TSetTypeId = typeof TSetTypeId
24
+
25
+ /**
26
+ * Transactional set implemented on top of `TMap`.
27
+ *
28
+ * @since 2.0.0
29
+ * @category models
30
+ */
31
+ export interface TSet<in out A> extends TSet.Variance<A> {}
32
+ /**
33
+ * @internal
34
+ * @since 2.0.0
35
+ */
36
+ export interface TSet<in out A> {
37
+ /** @internal */
38
+ readonly tMap: TMap.TMap<A, void>
39
+ }
40
+
41
+ /**
42
+ * @since 2.0.0
43
+ */
44
+ export declare namespace TSet {
45
+ /**
46
+ * @since 2.0.0
47
+ * @category models
48
+ */
49
+ export interface Variance<in out A> {
50
+ readonly [TSetTypeId]: {
51
+ readonly _A: Types.Invariant<A>
52
+ }
53
+ }
54
+ }
55
+
56
+ /**
57
+ * Stores new element in the set.
58
+ *
59
+ * @since 2.0.0
60
+ * @category mutations
61
+ */
62
+ export const add: {
63
+ <A>(value: A): (self: TSet<A>) => STM.STM<void>
64
+ <A>(self: TSet<A>, value: A): STM.STM<void>
65
+ } = internal.add
66
+
67
+ /**
68
+ * Atomically transforms the set into the difference of itself and the
69
+ * provided set.
70
+ *
71
+ * @since 2.0.0
72
+ * @category mutations
73
+ */
74
+ export const difference: {
75
+ <A>(other: TSet<A>): (self: TSet<A>) => STM.STM<void>
76
+ <A>(self: TSet<A>, other: TSet<A>): STM.STM<void>
77
+ } = internal.difference
78
+
79
+ /**
80
+ * Makes an empty `TSet`.
81
+ *
82
+ * @since 2.0.0
83
+ * @category constructors
84
+ */
85
+ export const empty: <A>() => STM.STM<TSet<A>> = internal.empty
86
+
87
+ /**
88
+ * Atomically performs transactional-effect for each element in set.
89
+ *
90
+ * @since 2.0.0
91
+ * @category elements
92
+ */
93
+ export const forEach: {
94
+ <A, R, E>(f: (value: A) => STM.STM<void, E, R>): (self: TSet<A>) => STM.STM<void, E, R>
95
+ <A, R, E>(self: TSet<A>, f: (value: A) => STM.STM<void, E, R>): STM.STM<void, E, R>
96
+ } = internal.forEach
97
+
98
+ /**
99
+ * Creates a new `TSet` from an iterable collection of values.
100
+ *
101
+ * @since 2.0.0
102
+ * @category constructors
103
+ */
104
+ export const fromIterable: <A>(iterable: Iterable<A>) => STM.STM<TSet<A>> = internal.fromIterable
105
+
106
+ /**
107
+ * Tests whether or not set contains an element.
108
+ *
109
+ * @since 2.0.0
110
+ * @category elements
111
+ */
112
+ export const has: {
113
+ <A>(value: A): (self: TSet<A>) => STM.STM<boolean>
114
+ <A>(self: TSet<A>, value: A): STM.STM<boolean>
115
+ } = internal.has
116
+
117
+ /**
118
+ * Atomically transforms the set into the intersection of itself and the
119
+ * provided set.
120
+ *
121
+ * @since 2.0.0
122
+ * @category mutations
123
+ */
124
+ export const intersection: {
125
+ <A>(other: TSet<A>): (self: TSet<A>) => STM.STM<void>
126
+ <A>(self: TSet<A>, other: TSet<A>): STM.STM<void>
127
+ } = internal.intersection
128
+
129
+ /**
130
+ * Tests if the set is empty or not
131
+ *
132
+ * @since 2.0.0
133
+ * @category getters
134
+ */
135
+ export const isEmpty: <A>(self: TSet<A>) => STM.STM<boolean> = internal.isEmpty
136
+
137
+ /**
138
+ * Makes a new `TSet` that is initialized with specified values.
139
+ *
140
+ * @since 2.0.0
141
+ * @category constructors
142
+ */
143
+ export const make: <Elements extends Array<any>>(
144
+ ...elements: Elements
145
+ ) => STM.STM<TSet<Elements[number]>> = internal.make
146
+
147
+ /**
148
+ * Atomically folds using a pure function.
149
+ *
150
+ * @since 2.0.0
151
+ * @category folding
152
+ */
153
+ export const reduce: {
154
+ <Z, A>(zero: Z, f: (accumulator: Z, value: A) => Z): (self: TSet<A>) => STM.STM<Z>
155
+ <Z, A>(self: TSet<A>, zero: Z, f: (accumulator: Z, value: A) => Z): STM.STM<Z>
156
+ } = internal.reduce
157
+
158
+ /**
159
+ * Atomically folds using a transactional function.
160
+ *
161
+ * @since 2.0.0
162
+ * @category folding
163
+ */
164
+ export const reduceSTM: {
165
+ <Z, A, R, E>(zero: Z, f: (accumulator: Z, value: A) => STM.STM<Z, E, R>): (self: TSet<A>) => STM.STM<Z, E, R>
166
+ <Z, A, R, E>(self: TSet<A>, zero: Z, f: (accumulator: Z, value: A) => STM.STM<Z, E, R>): STM.STM<Z, E, R>
167
+ } = internal.reduceSTM
168
+
169
+ /**
170
+ * Removes a single element from the set.
171
+ *
172
+ * @since 2.0.0
173
+ * @category mutations
174
+ */
175
+ export const remove: {
176
+ <A>(value: A): (self: TSet<A>) => STM.STM<void>
177
+ <A>(self: TSet<A>, value: A): STM.STM<void>
178
+ } = internal.remove
179
+
180
+ /**
181
+ * Removes elements from the set.
182
+ *
183
+ * @since 2.0.0
184
+ * @category mutations
185
+ */
186
+ export const removeAll: {
187
+ <A>(iterable: Iterable<A>): (self: TSet<A>) => STM.STM<void>
188
+ <A>(self: TSet<A>, iterable: Iterable<A>): STM.STM<void>
189
+ } = internal.removeAll
190
+
191
+ /**
192
+ * Removes entries from a `TSet` that satisfy the specified predicate and returns the removed entries
193
+ * (or `void` if `discard = true`).
194
+ *
195
+ * @since 2.0.0
196
+ * @category mutations
197
+ */
198
+ export const removeIf: {
199
+ <A>(predicate: Predicate<A>, options: {
200
+ readonly discard: true
201
+ }): (self: TSet<A>) => STM.STM<void>
202
+ <A>(
203
+ predicate: Predicate<A>,
204
+ options?: {
205
+ readonly discard: false
206
+ }
207
+ ): (self: TSet<A>) => STM.STM<Array<A>>
208
+ <A>(self: TSet<A>, predicate: Predicate<A>, options: {
209
+ readonly discard: true
210
+ }): STM.STM<void>
211
+ <A>(
212
+ self: TSet<A>,
213
+ predicate: Predicate<A>,
214
+ options?: {
215
+ readonly discard: false
216
+ }
217
+ ): STM.STM<Array<A>>
218
+ } = internal.removeIf
219
+
220
+ /**
221
+ * Retains entries in a `TSet` that satisfy the specified predicate and returns the removed entries
222
+ * (or `void` if `discard = true`).
223
+ *
224
+ * @since 2.0.0
225
+ * @category mutations
226
+ */
227
+ export const retainIf: {
228
+ <A>(predicate: Predicate<A>, options: {
229
+ readonly discard: true
230
+ }): (self: TSet<A>) => STM.STM<void>
231
+ <A>(
232
+ predicate: Predicate<A>,
233
+ options?: {
234
+ readonly discard: false
235
+ }
236
+ ): (self: TSet<A>) => STM.STM<Array<A>>
237
+ <A>(self: TSet<A>, predicate: Predicate<A>, options: {
238
+ readonly discard: true
239
+ }): STM.STM<void>
240
+ <A>(
241
+ self: TSet<A>,
242
+ predicate: Predicate<A>,
243
+ options?: {
244
+ readonly discard: false
245
+ }
246
+ ): STM.STM<Array<A>>
247
+ } = internal.retainIf
248
+
249
+ /**
250
+ * Returns the set's cardinality.
251
+ *
252
+ * @since 2.0.0
253
+ * @category getters
254
+ */
255
+ export const size: <A>(self: TSet<A>) => STM.STM<number> = internal.size
256
+
257
+ /**
258
+ * Takes the first matching value, or retries until there is one.
259
+ *
260
+ * @since 2.0.0
261
+ * @category mutations
262
+ */
263
+ export const takeFirst: {
264
+ <A, B>(pf: (a: A) => Option.Option<B>): (self: TSet<A>) => STM.STM<B>
265
+ <A, B>(self: TSet<A>, pf: (a: A) => Option.Option<B>): STM.STM<B>
266
+ } = internal.takeFirst
267
+
268
+ /**
269
+ * Takes the first matching value, or retries until there is one.
270
+ *
271
+ * @since 2.0.0
272
+ * @category mutations
273
+ */
274
+ export const takeFirstSTM: {
275
+ <A, B, E, R>(pf: (a: A) => STM.STM<B, Option.Option<E>, R>): (self: TSet<A>) => STM.STM<B, E, R>
276
+ <A, B, E, R>(self: TSet<A>, pf: (a: A) => STM.STM<B, Option.Option<E>, R>): STM.STM<B, E, R>
277
+ } = internal.takeFirstSTM
278
+
279
+ /**
280
+ * Takes all matching values, or retries until there is at least one.
281
+ *
282
+ * @since 2.0.0
283
+ * @category mutations
284
+ */
285
+ export const takeSome: {
286
+ <A, B>(pf: (a: A) => Option.Option<B>): (self: TSet<A>) => STM.STM<[B, ...Array<B>]>
287
+ <A, B>(self: TSet<A>, pf: (a: A) => Option.Option<B>): STM.STM<[B, ...Array<B>]>
288
+ } = internal.takeSome
289
+
290
+ /**
291
+ * Takes all matching values, or retries until there is at least one.
292
+ *
293
+ * @since 2.0.0
294
+ * @category mutations
295
+ */
296
+ export const takeSomeSTM: {
297
+ <A, B, E, R>(pf: (a: A) => STM.STM<B, Option.Option<E>, R>): (self: TSet<A>) => STM.STM<[B, ...Array<B>], E, R>
298
+ <A, B, E, R>(self: TSet<A>, pf: (a: A) => STM.STM<B, Option.Option<E>, R>): STM.STM<[B, ...Array<B>], E, R>
299
+ } = internal.takeSomeSTM
300
+
301
+ /**
302
+ * Collects all elements into a `Chunk`.
303
+ *
304
+ * @since 2.0.0
305
+ * @category destructors
306
+ */
307
+ export const toChunk: <A>(self: TSet<A>) => STM.STM<Chunk.Chunk<A>> = internal.toChunk
308
+
309
+ /**
310
+ * Collects all elements into a `HashSet`.
311
+ *
312
+ * @since 2.0.0
313
+ * @category destructors
314
+ */
315
+ export const toHashSet: <A>(self: TSet<A>) => STM.STM<HashSet.HashSet<A>> = internal.toHashSet
316
+
317
+ /**
318
+ * Collects all elements into a `Array`.
319
+ *
320
+ * @since 2.0.0
321
+ * @category destructors
322
+ */
323
+ export const toArray: <A>(self: TSet<A>) => STM.STM<Array<A>> = internal.toArray
324
+
325
+ /**
326
+ * Collects all elements into a `ReadonlySet`.
327
+ *
328
+ * @since 2.0.0
329
+ * @category destructors
330
+ */
331
+ export const toReadonlySet: <A>(self: TSet<A>) => STM.STM<ReadonlySet<A>> = internal.toReadonlySet
332
+
333
+ /**
334
+ * Atomically updates all elements using a pure function.
335
+ *
336
+ * @since 2.0.0
337
+ * @category mutations
338
+ */
339
+ export const transform: {
340
+ <A>(f: (a: A) => A): (self: TSet<A>) => STM.STM<void>
341
+ <A>(self: TSet<A>, f: (a: A) => A): STM.STM<void>
342
+ } = internal.transform
343
+
344
+ /**
345
+ * Atomically updates all elements using a transactional function.
346
+ *
347
+ * @since 2.0.0
348
+ * @category mutations
349
+ */
350
+ export const transformSTM: {
351
+ <A, R, E>(f: (a: A) => STM.STM<A, E, R>): (self: TSet<A>) => STM.STM<void, E, R>
352
+ <A, R, E>(self: TSet<A>, f: (a: A) => STM.STM<A, E, R>): STM.STM<void, E, R>
353
+ } = internal.transformSTM
354
+
355
+ /**
356
+ * Atomically transforms the set into the union of itself and the provided
357
+ * set.
358
+ *
359
+ * @since 2.0.0
360
+ * @category mutations
361
+ */
362
+ export const union: {
363
+ <A>(other: TSet<A>): (self: TSet<A>) => STM.STM<void>
364
+ <A>(self: TSet<A>, other: TSet<A>): STM.STM<void>
365
+ } = internal.union
@@ -0,0 +1,192 @@
1
+ /**
2
+ * @since 3.10.0
3
+ */
4
+ import type * as Effect from "./Effect.js"
5
+ import * as internal from "./internal/stm/tSubscriptionRef.js"
6
+ import type * as Option from "./Option.js"
7
+ import type * as Scope from "./Scope.js"
8
+ import type * as STM from "./STM.js"
9
+ import type * as Stream from "./Stream.js"
10
+ import type * as TPubSub from "./TPubSub.js"
11
+ import type * as TQueue from "./TQueue.js"
12
+ import type * as TRef from "./TRef.js"
13
+ import type * as Types from "./Types.js"
14
+
15
+ /**
16
+ * @since 3.10.0
17
+ * @category symbols
18
+ */
19
+ export const TSubscriptionRefTypeId: unique symbol = internal.TSubscriptionRefTypeId
20
+
21
+ /**
22
+ * @since 3.10.0
23
+ * @category symbols
24
+ */
25
+ export type TSubscriptionRefTypeId = typeof TSubscriptionRefTypeId
26
+
27
+ /**
28
+ * A `TSubscriptionRef<A>` is a `TRef` that can be subscribed to in order to
29
+ * receive a `TDequeue<A>` of the current value and all committed changes to the value.
30
+ *
31
+ * @since 3.10.0
32
+ * @category models
33
+ */
34
+ export interface TSubscriptionRef<in out A> extends TSubscriptionRef.Variance<A>, TRef.TRef<A> {
35
+ /** @internal */
36
+ readonly ref: TRef.TRef<A>
37
+ /** @internal */
38
+ readonly pubsub: TPubSub.TPubSub<A>
39
+ /** @internal */
40
+ modify<B>(f: (a: A) => readonly [B, A]): STM.STM<B>
41
+
42
+ /**
43
+ * A TDequeue containing the current value of the `Ref` as well as all changes
44
+ * to that value.
45
+ */
46
+ readonly changes: STM.STM<TQueue.TDequeue<A>>
47
+ }
48
+
49
+ /**
50
+ * @since 3.10.0
51
+ */
52
+ export declare namespace TSubscriptionRef {
53
+ /**
54
+ * @since 3.10.0
55
+ * @category models
56
+ */
57
+ export interface Variance<in out A> {
58
+ readonly [TSubscriptionRefTypeId]: {
59
+ readonly _A: Types.Invariant<A>
60
+ }
61
+ }
62
+ }
63
+
64
+ /**
65
+ * @since 3.10.0
66
+ * @category mutations
67
+ */
68
+ export const get: <A>(self: TSubscriptionRef<A>) => STM.STM<A> = internal.get
69
+
70
+ /**
71
+ * @since 3.10.0
72
+ * @category mutations
73
+ */
74
+ export const getAndSet: {
75
+ <A>(value: A): (self: TSubscriptionRef<A>) => STM.STM<A>
76
+ <A>(self: TSubscriptionRef<A>, value: A): STM.STM<A>
77
+ } = internal.getAndSet
78
+
79
+ /**
80
+ * @since 3.10.0
81
+ * @category mutations
82
+ */
83
+ export const getAndUpdate: {
84
+ <A>(f: (a: A) => A): (self: TSubscriptionRef<A>) => STM.STM<A>
85
+ <A>(self: TSubscriptionRef<A>, f: (a: A) => A): STM.STM<A>
86
+ } = internal.getAndUpdate
87
+
88
+ /**
89
+ * @since 3.10.0
90
+ * @category mutations
91
+ */
92
+ export const getAndUpdateSome: {
93
+ <A>(f: (a: A) => Option.Option<A>): (self: TSubscriptionRef<A>) => STM.STM<A>
94
+ <A>(self: TSubscriptionRef<A>, f: (a: A) => Option.Option<A>): STM.STM<A>
95
+ } = internal.getAndUpdateSome
96
+
97
+ /**
98
+ * @since 3.10.0
99
+ * @category constructors
100
+ */
101
+ export const make: <A>(value: A) => STM.STM<TSubscriptionRef<A>> = internal.make
102
+
103
+ /**
104
+ * @since 3.10.0
105
+ * @category mutations
106
+ */
107
+ export const modify: {
108
+ <A, B>(f: (a: A) => readonly [B, A]): (self: TSubscriptionRef<A>) => STM.STM<B>
109
+ <A, B>(self: TSubscriptionRef<A>, f: (a: A) => readonly [B, A]): STM.STM<B>
110
+ } = internal.modify
111
+
112
+ /**
113
+ * @since 3.10.0
114
+ * @category mutations
115
+ */
116
+ export const modifySome: {
117
+ <A, B>(fallback: B, f: (a: A) => Option.Option<readonly [B, A]>): (self: TSubscriptionRef<A>) => STM.STM<B>
118
+ <A, B>(self: TSubscriptionRef<A>, fallback: B, f: (a: A) => Option.Option<readonly [B, A]>): STM.STM<B>
119
+ } = internal.modifySome
120
+
121
+ /**
122
+ * @since 3.10.0
123
+ * @category mutations
124
+ */
125
+ export const set: {
126
+ <A>(value: A): (self: TSubscriptionRef<A>) => STM.STM<void>
127
+ <A>(self: TSubscriptionRef<A>, value: A): STM.STM<void>
128
+ } = internal.set
129
+
130
+ /**
131
+ * @since 3.10.0
132
+ * @category mutations
133
+ */
134
+ export const setAndGet: {
135
+ <A>(value: A): (self: TSubscriptionRef<A>) => STM.STM<A>
136
+ <A>(self: TSubscriptionRef<A>, value: A): STM.STM<A>
137
+ } = internal.setAndGet
138
+
139
+ /**
140
+ * @since 3.10.0
141
+ * @category mutations
142
+ */
143
+ export const update: {
144
+ <A>(f: (a: A) => A): (self: TSubscriptionRef<A>) => STM.STM<void>
145
+ <A>(self: TSubscriptionRef<A>, f: (a: A) => A): STM.STM<void>
146
+ } = internal.update
147
+
148
+ /**
149
+ * @since 3.10.0
150
+ * @category mutations
151
+ */
152
+ export const updateAndGet: {
153
+ <A>(f: (a: A) => A): (self: TSubscriptionRef<A>) => STM.STM<A>
154
+ <A>(self: TSubscriptionRef<A>, f: (a: A) => A): STM.STM<A>
155
+ } = internal.updateAndGet
156
+
157
+ /**
158
+ * @since 3.10.0
159
+ * @category mutations
160
+ */
161
+ export const updateSome: {
162
+ <A>(f: (a: A) => Option.Option<A>): (self: TSubscriptionRef<A>) => STM.STM<void>
163
+ <A>(self: TSubscriptionRef<A>, f: (a: A) => Option.Option<A>): STM.STM<void>
164
+ } = internal.updateSome
165
+
166
+ /**
167
+ * @since 3.10.0
168
+ * @category mutations
169
+ */
170
+ export const updateSomeAndGet: {
171
+ <A>(f: (a: A) => Option.Option<A>): (self: TSubscriptionRef<A>) => STM.STM<A>
172
+ <A>(self: TSubscriptionRef<A>, f: (a: A) => Option.Option<A>): STM.STM<A>
173
+ } = internal.updateSomeAndGet
174
+
175
+ /**
176
+ * @since 3.10.0
177
+ * @category mutations
178
+ */
179
+ export const changesScoped: <A>(self: TSubscriptionRef<A>) => Effect.Effect<TQueue.TDequeue<A>, never, Scope.Scope> =
180
+ internal.changesScoped
181
+
182
+ /**
183
+ * @since 3.10.0
184
+ * @category mutations
185
+ */
186
+ export const changesStream: <A>(self: TSubscriptionRef<A>) => Stream.Stream<A> = internal.changesStream
187
+
188
+ /**
189
+ * @since 3.10.0
190
+ * @category mutations
191
+ */
192
+ export const changes: <A>(self: TSubscriptionRef<A>) => STM.STM<TQueue.TDequeue<A>> = (self) => self.changes