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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (452) hide show
  1. package/SourceLocation/package.json +6 -0
  2. package/dist/cjs/Effect.js +2 -28
  3. package/dist/cjs/Effect.js.map +1 -1
  4. package/dist/cjs/FiberRef.js +12 -1
  5. package/dist/cjs/FiberRef.js.map +1 -1
  6. package/dist/cjs/Layer.js +2 -24
  7. package/dist/cjs/Layer.js.map +1 -1
  8. package/dist/cjs/RuntimeFlags.js +1 -29
  9. package/dist/cjs/RuntimeFlags.js.map +1 -1
  10. package/dist/cjs/SourceLocation.js +60 -0
  11. package/dist/cjs/SourceLocation.js.map +1 -0
  12. package/dist/cjs/Tracer.js +1 -15
  13. package/dist/cjs/Tracer.js.map +1 -1
  14. package/dist/cjs/Utils.js +1 -1
  15. package/dist/cjs/Utils.js.map +1 -1
  16. package/dist/cjs/index.js +3 -1
  17. package/dist/cjs/index.js.map +1 -1
  18. package/dist/cjs/internal/clock.js +1 -1
  19. package/dist/cjs/internal/clock.js.map +1 -1
  20. package/dist/cjs/internal/core.js +17 -50
  21. package/dist/cjs/internal/core.js.map +1 -1
  22. package/dist/cjs/internal/effect/circular.js +18 -30
  23. package/dist/cjs/internal/effect/circular.js.map +1 -1
  24. package/dist/cjs/internal/fiberRuntime.js +16 -65
  25. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  26. package/dist/cjs/internal/layer/circular.js +1 -5
  27. package/dist/cjs/internal/layer/circular.js.map +1 -1
  28. package/dist/cjs/internal/layer.js +1 -3
  29. package/dist/cjs/internal/layer.js.map +1 -1
  30. package/dist/cjs/internal/logger.js +25 -2
  31. package/dist/cjs/internal/logger.js.map +1 -1
  32. package/dist/cjs/internal/runtimeFlags.js +2 -11
  33. package/dist/cjs/internal/runtimeFlags.js.map +1 -1
  34. package/dist/cjs/internal/tracer.js +1 -114
  35. package/dist/cjs/internal/tracer.js.map +1 -1
  36. package/dist/dts/Config.d.ts +2 -2
  37. package/dist/dts/Config.d.ts.map +1 -1
  38. package/dist/dts/Effect.d.ts +8 -29
  39. package/dist/dts/Effect.d.ts.map +1 -1
  40. package/dist/dts/FiberRef.d.ts +12 -0
  41. package/dist/dts/FiberRef.d.ts.map +1 -1
  42. package/dist/dts/Layer.d.ts +0 -22
  43. package/dist/dts/Layer.d.ts.map +1 -1
  44. package/dist/dts/RuntimeFlags.d.ts +0 -28
  45. package/dist/dts/RuntimeFlags.d.ts.map +1 -1
  46. package/dist/dts/SourceLocation.d.ts +88 -0
  47. package/dist/dts/SourceLocation.d.ts.map +1 -0
  48. package/dist/dts/Tracer.d.ts +0 -15
  49. package/dist/dts/Tracer.d.ts.map +1 -1
  50. package/dist/dts/index.d.ts +6 -0
  51. package/dist/dts/index.d.ts.map +1 -1
  52. package/dist/dts/internal/core.d.ts.map +1 -1
  53. package/dist/dts/internal/layer.d.ts.map +1 -1
  54. package/dist/dts/internal/runtimeFlags.d.ts.map +1 -1
  55. package/dist/esm/Effect.js +0 -26
  56. package/dist/esm/Effect.js.map +1 -1
  57. package/dist/esm/FiberRef.js +11 -0
  58. package/dist/esm/FiberRef.js.map +1 -1
  59. package/dist/esm/Layer.js +0 -22
  60. package/dist/esm/Layer.js.map +1 -1
  61. package/dist/esm/RuntimeFlags.js +0 -28
  62. package/dist/esm/RuntimeFlags.js.map +1 -1
  63. package/dist/esm/SourceLocation.js +51 -0
  64. package/dist/esm/SourceLocation.js.map +1 -0
  65. package/dist/esm/Tracer.js +0 -14
  66. package/dist/esm/Tracer.js.map +1 -1
  67. package/dist/esm/Utils.js +1 -1
  68. package/dist/esm/Utils.js.map +1 -1
  69. package/dist/esm/index.js +6 -0
  70. package/dist/esm/index.js.map +1 -1
  71. package/dist/esm/internal/clock.js +1 -1
  72. package/dist/esm/internal/clock.js.map +1 -1
  73. package/dist/esm/internal/core.js +12 -45
  74. package/dist/esm/internal/core.js.map +1 -1
  75. package/dist/esm/internal/effect/circular.js +18 -30
  76. package/dist/esm/internal/effect/circular.js.map +1 -1
  77. package/dist/esm/internal/fiberRuntime.js +13 -60
  78. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  79. package/dist/esm/internal/layer/circular.js +0 -4
  80. package/dist/esm/internal/layer/circular.js.map +1 -1
  81. package/dist/esm/internal/layer.js +0 -2
  82. package/dist/esm/internal/layer.js.map +1 -1
  83. package/dist/esm/internal/logger.js +25 -2
  84. package/dist/esm/internal/logger.js.map +1 -1
  85. package/dist/esm/internal/runtimeFlags.js +1 -9
  86. package/dist/esm/internal/runtimeFlags.js.map +1 -1
  87. package/dist/esm/internal/tracer.js +0 -111
  88. package/dist/esm/internal/tracer.js.map +1 -1
  89. package/package.json +12 -1
  90. package/src/Arbitrary.ts +1101 -0
  91. package/src/Array.ts +3589 -0
  92. package/src/BigDecimal.ts +1349 -0
  93. package/src/BigInt.ts +643 -0
  94. package/src/Boolean.ts +287 -0
  95. package/src/Brand.ts +360 -0
  96. package/src/Cache.ts +281 -0
  97. package/src/Cause.ts +1555 -0
  98. package/src/Channel.ts +2355 -0
  99. package/src/ChildExecutorDecision.ts +146 -0
  100. package/src/Chunk.ts +1495 -0
  101. package/src/Clock.ts +111 -0
  102. package/src/Config.ts +542 -0
  103. package/src/ConfigError.ts +270 -0
  104. package/src/ConfigProvider.ts +333 -0
  105. package/src/ConfigProviderPathPatch.ts +100 -0
  106. package/src/Console.ts +226 -0
  107. package/src/Context.ts +585 -0
  108. package/src/Cron.ts +706 -0
  109. package/src/Data.ts +596 -0
  110. package/src/DateTime.ts +1686 -0
  111. package/src/DefaultServices.ts +34 -0
  112. package/src/Deferred.ts +301 -0
  113. package/src/Differ.ts +450 -0
  114. package/src/Duration.ts +1000 -0
  115. package/src/Effect.ts +14817 -0
  116. package/src/Effectable.ts +107 -0
  117. package/src/Either.ts +1040 -0
  118. package/src/Encoding.ts +195 -0
  119. package/src/Equal.ts +98 -0
  120. package/src/Equivalence.ts +235 -0
  121. package/src/ExecutionPlan.ts +308 -0
  122. package/src/ExecutionStrategy.ts +119 -0
  123. package/src/Exit.ts +467 -0
  124. package/src/FastCheck.ts +9 -0
  125. package/src/Fiber.ts +744 -0
  126. package/src/FiberHandle.ts +540 -0
  127. package/src/FiberId.ts +195 -0
  128. package/src/FiberMap.ts +656 -0
  129. package/src/FiberRef.ts +444 -0
  130. package/src/FiberRefs.ts +204 -0
  131. package/src/FiberRefsPatch.ts +105 -0
  132. package/src/FiberSet.ts +491 -0
  133. package/src/FiberStatus.ts +108 -0
  134. package/src/Function.ts +1222 -0
  135. package/src/GlobalValue.ts +53 -0
  136. package/src/Graph.ts +3732 -0
  137. package/src/GroupBy.ts +103 -0
  138. package/src/HKT.ts +45 -0
  139. package/src/Hash.ts +195 -0
  140. package/src/HashMap.ts +519 -0
  141. package/src/HashRing.ts +317 -0
  142. package/src/HashSet.ts +2346 -0
  143. package/src/Inspectable.ts +287 -0
  144. package/src/Iterable.ts +1119 -0
  145. package/src/JSONSchema.ts +1044 -0
  146. package/src/KeyedPool.ts +167 -0
  147. package/src/Layer.ts +1228 -0
  148. package/src/LayerMap.ts +436 -0
  149. package/src/List.ts +977 -0
  150. package/src/LogLevel.ts +285 -0
  151. package/src/LogSpan.ts +25 -0
  152. package/src/Logger.ts +702 -0
  153. package/src/Mailbox.ts +268 -0
  154. package/src/ManagedRuntime.ts +180 -0
  155. package/src/Match.ts +1477 -0
  156. package/src/MergeDecision.ts +95 -0
  157. package/src/MergeState.ts +172 -0
  158. package/src/MergeStrategy.ts +107 -0
  159. package/src/Metric.ts +780 -0
  160. package/src/MetricBoundaries.ts +69 -0
  161. package/src/MetricHook.ts +151 -0
  162. package/src/MetricKey.ts +224 -0
  163. package/src/MetricKeyType.ts +262 -0
  164. package/src/MetricLabel.ts +47 -0
  165. package/src/MetricPair.ts +71 -0
  166. package/src/MetricPolling.ts +148 -0
  167. package/src/MetricRegistry.ts +48 -0
  168. package/src/MetricState.ts +257 -0
  169. package/src/Micro.ts +4405 -0
  170. package/src/ModuleVersion.ts +18 -0
  171. package/src/MutableHashMap.ts +411 -0
  172. package/src/MutableHashSet.ts +706 -0
  173. package/src/MutableList.ts +297 -0
  174. package/src/MutableQueue.ts +227 -0
  175. package/src/MutableRef.ts +202 -0
  176. package/src/NonEmptyIterable.ts +32 -0
  177. package/src/Number.ts +1071 -0
  178. package/src/Option.ts +2170 -0
  179. package/src/Order.ts +373 -0
  180. package/src/Ordering.ts +111 -0
  181. package/src/ParseResult.ts +2031 -0
  182. package/src/PartitionedSemaphore.ts +200 -0
  183. package/src/Pipeable.ts +566 -0
  184. package/src/Pool.ts +204 -0
  185. package/src/Predicate.ts +1405 -0
  186. package/src/Pretty.ts +205 -0
  187. package/src/PrimaryKey.ts +23 -0
  188. package/src/PubSub.ts +182 -0
  189. package/src/Queue.ts +644 -0
  190. package/src/Random.ts +204 -0
  191. package/src/RateLimiter.ts +138 -0
  192. package/src/RcMap.ts +141 -0
  193. package/src/RcRef.ts +122 -0
  194. package/src/Readable.ts +93 -0
  195. package/src/Record.ts +1274 -0
  196. package/src/RedBlackTree.ts +421 -0
  197. package/src/Redacted.ts +144 -0
  198. package/src/Ref.ts +180 -0
  199. package/src/RegExp.ts +38 -0
  200. package/src/Reloadable.ts +127 -0
  201. package/src/Request.ts +347 -0
  202. package/src/RequestBlock.ts +118 -0
  203. package/src/RequestResolver.ts +366 -0
  204. package/src/Resource.ts +119 -0
  205. package/src/Runtime.ts +383 -0
  206. package/src/RuntimeFlags.ts +336 -0
  207. package/src/RuntimeFlagsPatch.ts +183 -0
  208. package/src/STM.ts +2045 -0
  209. package/src/Schedule.ts +2219 -0
  210. package/src/ScheduleDecision.ts +62 -0
  211. package/src/ScheduleInterval.ts +151 -0
  212. package/src/ScheduleIntervals.ts +122 -0
  213. package/src/Scheduler.ts +353 -0
  214. package/src/Schema.ts +10914 -0
  215. package/src/SchemaAST.ts +3043 -0
  216. package/src/Scope.ts +204 -0
  217. package/src/ScopedCache.ts +151 -0
  218. package/src/ScopedRef.ts +117 -0
  219. package/src/Secret.ts +88 -0
  220. package/src/SingleProducerAsyncInput.ts +67 -0
  221. package/src/Sink.ts +1461 -0
  222. package/src/SortedMap.ts +287 -0
  223. package/src/SortedSet.ts +390 -0
  224. package/src/SourceLocation.ts +108 -0
  225. package/src/Stream.ts +6468 -0
  226. package/src/StreamEmit.ts +136 -0
  227. package/src/StreamHaltStrategy.ts +123 -0
  228. package/src/Streamable.ts +45 -0
  229. package/src/String.ts +778 -0
  230. package/src/Struct.ts +243 -0
  231. package/src/Subscribable.ts +100 -0
  232. package/src/SubscriptionRef.ts +298 -0
  233. package/src/Supervisor.ts +240 -0
  234. package/src/Symbol.ts +29 -0
  235. package/src/SynchronizedRef.ts +270 -0
  236. package/src/TArray.ts +495 -0
  237. package/src/TDeferred.ts +100 -0
  238. package/src/TMap.ts +515 -0
  239. package/src/TPriorityQueue.ts +223 -0
  240. package/src/TPubSub.ts +200 -0
  241. package/src/TQueue.ts +432 -0
  242. package/src/TRandom.ts +129 -0
  243. package/src/TReentrantLock.ts +224 -0
  244. package/src/TRef.ts +178 -0
  245. package/src/TSemaphore.ts +129 -0
  246. package/src/TSet.ts +365 -0
  247. package/src/TSubscriptionRef.ts +192 -0
  248. package/src/Take.ts +258 -0
  249. package/src/TestAnnotation.ts +158 -0
  250. package/src/TestAnnotationMap.ts +119 -0
  251. package/src/TestAnnotations.ts +117 -0
  252. package/src/TestClock.ts +556 -0
  253. package/src/TestConfig.ts +47 -0
  254. package/src/TestContext.ts +36 -0
  255. package/src/TestLive.ts +53 -0
  256. package/src/TestServices.ts +390 -0
  257. package/src/TestSized.ts +55 -0
  258. package/src/Tracer.ts +182 -0
  259. package/src/Trie.ts +840 -0
  260. package/src/Tuple.ts +305 -0
  261. package/src/Types.ts +353 -0
  262. package/src/Unify.ts +113 -0
  263. package/src/UpstreamPullRequest.ts +117 -0
  264. package/src/UpstreamPullStrategy.ts +121 -0
  265. package/src/Utils.ts +809 -0
  266. package/src/index.ts +1568 -0
  267. package/src/internal/array.ts +8 -0
  268. package/src/internal/blockedRequests.ts +520 -0
  269. package/src/internal/cache.ts +733 -0
  270. package/src/internal/cause.ts +1050 -0
  271. package/src/internal/channel/channelExecutor.ts +1200 -0
  272. package/src/internal/channel/channelState.ts +134 -0
  273. package/src/internal/channel/childExecutorDecision.ts +96 -0
  274. package/src/internal/channel/continuation.ts +200 -0
  275. package/src/internal/channel/mergeDecision.ts +113 -0
  276. package/src/internal/channel/mergeState.ts +120 -0
  277. package/src/internal/channel/mergeStrategy.ts +72 -0
  278. package/src/internal/channel/singleProducerAsyncInput.ts +259 -0
  279. package/src/internal/channel/subexecutor.ts +229 -0
  280. package/src/internal/channel/upstreamPullRequest.ts +84 -0
  281. package/src/internal/channel/upstreamPullStrategy.ts +87 -0
  282. package/src/internal/channel.ts +2603 -0
  283. package/src/internal/clock.ts +95 -0
  284. package/src/internal/completedRequestMap.ts +9 -0
  285. package/src/internal/concurrency.ts +54 -0
  286. package/src/internal/config.ts +716 -0
  287. package/src/internal/configError.ts +304 -0
  288. package/src/internal/configProvider/pathPatch.ts +97 -0
  289. package/src/internal/configProvider.ts +799 -0
  290. package/src/internal/console.ts +153 -0
  291. package/src/internal/context.ts +337 -0
  292. package/src/internal/core-effect.ts +2293 -0
  293. package/src/internal/core-stream.ts +998 -0
  294. package/src/internal/core.ts +3189 -0
  295. package/src/internal/data.ts +36 -0
  296. package/src/internal/dataSource.ts +327 -0
  297. package/src/internal/dateTime.ts +1277 -0
  298. package/src/internal/defaultServices/console.ts +100 -0
  299. package/src/internal/defaultServices.ts +163 -0
  300. package/src/internal/deferred.ts +46 -0
  301. package/src/internal/differ/chunkPatch.ts +211 -0
  302. package/src/internal/differ/contextPatch.ts +232 -0
  303. package/src/internal/differ/hashMapPatch.ts +220 -0
  304. package/src/internal/differ/hashSetPatch.ts +176 -0
  305. package/src/internal/differ/orPatch.ts +311 -0
  306. package/src/internal/differ/readonlyArrayPatch.ts +210 -0
  307. package/src/internal/differ.ts +200 -0
  308. package/src/internal/doNotation.ts +80 -0
  309. package/src/internal/effect/circular.ts +895 -0
  310. package/src/internal/effectable.ts +131 -0
  311. package/src/internal/either.ts +110 -0
  312. package/src/internal/encoding/base64.ts +286 -0
  313. package/src/internal/encoding/base64Url.ts +29 -0
  314. package/src/internal/encoding/common.ts +51 -0
  315. package/src/internal/encoding/hex.ts +315 -0
  316. package/src/internal/errors.ts +7 -0
  317. package/src/internal/executionPlan.ts +114 -0
  318. package/src/internal/executionStrategy.ts +74 -0
  319. package/src/internal/fiber.ts +388 -0
  320. package/src/internal/fiberId.ts +267 -0
  321. package/src/internal/fiberMessage.ts +82 -0
  322. package/src/internal/fiberRefs/patch.ts +144 -0
  323. package/src/internal/fiberRefs.ts +297 -0
  324. package/src/internal/fiberRuntime.ts +3842 -0
  325. package/src/internal/fiberScope.ts +71 -0
  326. package/src/internal/fiberStatus.ts +119 -0
  327. package/src/internal/groupBy.ts +530 -0
  328. package/src/internal/hashMap/array.ts +49 -0
  329. package/src/internal/hashMap/bitwise.ts +32 -0
  330. package/src/internal/hashMap/config.ts +14 -0
  331. package/src/internal/hashMap/keySet.ts +8 -0
  332. package/src/internal/hashMap/node.ts +391 -0
  333. package/src/internal/hashMap.ts +586 -0
  334. package/src/internal/hashSet.ts +323 -0
  335. package/src/internal/keyedPool.ts +244 -0
  336. package/src/internal/layer/circular.ts +214 -0
  337. package/src/internal/layer.ts +1483 -0
  338. package/src/internal/logSpan.ts +20 -0
  339. package/src/internal/logger-circular.ts +24 -0
  340. package/src/internal/logger.ts +522 -0
  341. package/src/internal/mailbox.ts +561 -0
  342. package/src/internal/managedRuntime/circular.ts +6 -0
  343. package/src/internal/managedRuntime.ts +134 -0
  344. package/src/internal/matcher.ts +652 -0
  345. package/src/internal/metric/boundaries.ts +75 -0
  346. package/src/internal/metric/hook.ts +483 -0
  347. package/src/internal/metric/key.ts +167 -0
  348. package/src/internal/metric/keyType.ts +238 -0
  349. package/src/internal/metric/label.ts +41 -0
  350. package/src/internal/metric/pair.ts +48 -0
  351. package/src/internal/metric/polling.ts +149 -0
  352. package/src/internal/metric/registry.ts +187 -0
  353. package/src/internal/metric/state.ts +290 -0
  354. package/src/internal/metric.ts +577 -0
  355. package/src/internal/opCodes/cause.ts +35 -0
  356. package/src/internal/opCodes/channel.ts +83 -0
  357. package/src/internal/opCodes/channelChildExecutorDecision.ts +17 -0
  358. package/src/internal/opCodes/channelMergeDecision.ts +11 -0
  359. package/src/internal/opCodes/channelMergeState.ts +17 -0
  360. package/src/internal/opCodes/channelMergeStrategy.ts +11 -0
  361. package/src/internal/opCodes/channelState.ts +23 -0
  362. package/src/internal/opCodes/channelUpstreamPullRequest.ts +11 -0
  363. package/src/internal/opCodes/channelUpstreamPullStrategy.ts +11 -0
  364. package/src/internal/opCodes/config.ts +65 -0
  365. package/src/internal/opCodes/configError.ts +35 -0
  366. package/src/internal/opCodes/continuation.ts +11 -0
  367. package/src/internal/opCodes/deferred.ts +11 -0
  368. package/src/internal/opCodes/effect.ts +89 -0
  369. package/src/internal/opCodes/layer.ts +59 -0
  370. package/src/internal/opCodes/streamHaltStrategy.ts +23 -0
  371. package/src/internal/option.ts +80 -0
  372. package/src/internal/pool.ts +432 -0
  373. package/src/internal/pubsub.ts +1762 -0
  374. package/src/internal/query.ts +204 -0
  375. package/src/internal/queue.ts +766 -0
  376. package/src/internal/random.ts +161 -0
  377. package/src/internal/rateLimiter.ts +93 -0
  378. package/src/internal/rcMap.ts +285 -0
  379. package/src/internal/rcRef.ts +192 -0
  380. package/src/internal/redBlackTree/iterator.ts +200 -0
  381. package/src/internal/redBlackTree/node.ts +68 -0
  382. package/src/internal/redBlackTree.ts +1245 -0
  383. package/src/internal/redacted.ts +73 -0
  384. package/src/internal/ref.ts +171 -0
  385. package/src/internal/reloadable.ts +140 -0
  386. package/src/internal/request.ts +177 -0
  387. package/src/internal/resource.ts +76 -0
  388. package/src/internal/ringBuffer.ts +68 -0
  389. package/src/internal/runtime.ts +558 -0
  390. package/src/internal/runtimeFlags.ts +178 -0
  391. package/src/internal/runtimeFlagsPatch.ts +103 -0
  392. package/src/internal/schedule/decision.ts +47 -0
  393. package/src/internal/schedule/interval.ts +101 -0
  394. package/src/internal/schedule/intervals.ts +180 -0
  395. package/src/internal/schedule.ts +2199 -0
  396. package/src/internal/schema/errors.ts +191 -0
  397. package/src/internal/schema/schemaId.ts +106 -0
  398. package/src/internal/schema/util.ts +50 -0
  399. package/src/internal/scopedCache.ts +644 -0
  400. package/src/internal/scopedRef.ts +118 -0
  401. package/src/internal/secret.ts +89 -0
  402. package/src/internal/singleShotGen.ts +35 -0
  403. package/src/internal/sink.ts +2120 -0
  404. package/src/internal/stack.ts +10 -0
  405. package/src/internal/stm/core.ts +817 -0
  406. package/src/internal/stm/entry.ts +59 -0
  407. package/src/internal/stm/journal.ts +123 -0
  408. package/src/internal/stm/opCodes/stm.ts +71 -0
  409. package/src/internal/stm/opCodes/stmState.ts +17 -0
  410. package/src/internal/stm/opCodes/strategy.ts +17 -0
  411. package/src/internal/stm/opCodes/tExit.ts +29 -0
  412. package/src/internal/stm/opCodes/tryCommit.ts +11 -0
  413. package/src/internal/stm/stm.ts +1453 -0
  414. package/src/internal/stm/stmState.ts +136 -0
  415. package/src/internal/stm/tArray.ts +550 -0
  416. package/src/internal/stm/tDeferred.ts +81 -0
  417. package/src/internal/stm/tExit.ts +190 -0
  418. package/src/internal/stm/tMap.ts +824 -0
  419. package/src/internal/stm/tPriorityQueue.ts +267 -0
  420. package/src/internal/stm/tPubSub.ts +551 -0
  421. package/src/internal/stm/tQueue.ts +393 -0
  422. package/src/internal/stm/tRandom.ts +140 -0
  423. package/src/internal/stm/tReentrantLock.ts +352 -0
  424. package/src/internal/stm/tRef.ts +195 -0
  425. package/src/internal/stm/tSemaphore.ts +113 -0
  426. package/src/internal/stm/tSet.ts +259 -0
  427. package/src/internal/stm/tSubscriptionRef.ts +286 -0
  428. package/src/internal/stm/tryCommit.ts +34 -0
  429. package/src/internal/stm/txnId.ts +14 -0
  430. package/src/internal/stm/versioned.ts +4 -0
  431. package/src/internal/stream/debounceState.ts +57 -0
  432. package/src/internal/stream/emit.ts +123 -0
  433. package/src/internal/stream/haltStrategy.ts +94 -0
  434. package/src/internal/stream/handoff.ts +187 -0
  435. package/src/internal/stream/handoffSignal.ts +59 -0
  436. package/src/internal/stream/pull.ts +34 -0
  437. package/src/internal/stream/sinkEndReason.ts +30 -0
  438. package/src/internal/stream/zipAllState.ts +88 -0
  439. package/src/internal/stream/zipChunksState.ts +56 -0
  440. package/src/internal/stream.ts +8801 -0
  441. package/src/internal/string-utils.ts +107 -0
  442. package/src/internal/subscriptionRef.ts +138 -0
  443. package/src/internal/supervisor/patch.ts +190 -0
  444. package/src/internal/supervisor.ts +303 -0
  445. package/src/internal/synchronizedRef.ts +114 -0
  446. package/src/internal/take.ts +199 -0
  447. package/src/internal/testing/sleep.ts +27 -0
  448. package/src/internal/testing/suspendedWarningData.ts +85 -0
  449. package/src/internal/testing/warningData.ts +94 -0
  450. package/src/internal/tracer.ts +150 -0
  451. package/src/internal/trie.ts +722 -0
  452. package/src/internal/version.ts +7 -0
@@ -0,0 +1,224 @@
1
+ /**
2
+ * @since 2.0.0
3
+ */
4
+ import type * as Effect from "./Effect.js"
5
+ import * as internal from "./internal/stm/tReentrantLock.js"
6
+ import type * as Scope from "./Scope.js"
7
+ import type * as STM from "./STM.js"
8
+ import type * as TRef from "./TRef.js"
9
+
10
+ /**
11
+ * @since 2.0.0
12
+ * @category symbols
13
+ */
14
+ export const TReentrantLockTypeId: unique symbol = internal.TReentrantLockTypeId
15
+
16
+ /**
17
+ * @since 2.0.0
18
+ * @category symbols
19
+ */
20
+ export type TReentrantLockTypeId = typeof TReentrantLockTypeId
21
+
22
+ /**
23
+ * A `TReentrantLock` is a reentrant read/write lock. Multiple readers may all
24
+ * concurrently acquire read locks. Only one writer is allowed to acquire a
25
+ * write lock at any given time. Read locks may be upgraded into write locks. A
26
+ * fiber that has a write lock may acquire other write locks or read locks.
27
+ *
28
+ * The two primary methods of this structure are `readLock`, which acquires a
29
+ * read lock in a scoped context, and `writeLock`, which acquires a write lock
30
+ * in a scoped context.
31
+ *
32
+ * Although located in the STM package, there is no need for locks within STM
33
+ * transactions. However, this lock can be quite useful in effectful code, to
34
+ * provide consistent read/write access to mutable state; and being in STM
35
+ * allows this structure to be composed into more complicated concurrent
36
+ * structures that are consumed from effectful code.
37
+ *
38
+ * @since 2.0.0
39
+ * @category models
40
+ */
41
+ export interface TReentrantLock extends TReentrantLock.Proto {}
42
+ /**
43
+ * @internal
44
+ * @since 2.0.0
45
+ */
46
+ export interface TReentrantLock {
47
+ /** @internal */
48
+ readonly state: TRef.TRef<internal.LockState>
49
+ }
50
+
51
+ /**
52
+ * @since 2.0.0
53
+ */
54
+ export declare namespace TReentrantLock {
55
+ /**
56
+ * @since 2.0.0
57
+ * @category models
58
+ */
59
+ export interface Proto {
60
+ readonly [TReentrantLockTypeId]: TReentrantLockTypeId
61
+ }
62
+ }
63
+
64
+ /**
65
+ * Acquires a read lock. The transaction will suspend until no other fiber is
66
+ * holding a write lock. Succeeds with the number of read locks held by this
67
+ * fiber.
68
+ *
69
+ * @since 2.0.0
70
+ * @category mutations
71
+ */
72
+ export const acquireRead: (self: TReentrantLock) => STM.STM<number> = internal.acquireRead
73
+
74
+ /**
75
+ * Acquires a write lock. The transaction will suspend until no other fibers
76
+ * are holding read or write locks. Succeeds with the number of write locks
77
+ * held by this fiber.
78
+ *
79
+ * @since 2.0.0
80
+ * @category mutations
81
+ */
82
+ export const acquireWrite: (self: TReentrantLock) => STM.STM<number> = internal.acquireWrite
83
+
84
+ /**
85
+ * Retrieves the number of acquired read locks for this fiber.
86
+ *
87
+ * @since 2.0.0
88
+ * @category mutations
89
+ */
90
+ export const fiberReadLocks: (self: TReentrantLock) => STM.STM<number> = internal.fiberReadLocks
91
+
92
+ /**
93
+ * Retrieves the number of acquired write locks for this fiber.
94
+ *
95
+ * @since 2.0.0
96
+ * @category mutations
97
+ */
98
+ export const fiberWriteLocks: (self: TReentrantLock) => STM.STM<number> = internal.fiberWriteLocks
99
+
100
+ /**
101
+ * Just a convenience method for applications that only need reentrant locks,
102
+ * without needing a distinction between readers / writers.
103
+ *
104
+ * See `TReentrantLock.writeLock`.
105
+ *
106
+ * @since 2.0.0
107
+ * @category mutations
108
+ */
109
+ export const lock: (self: TReentrantLock) => Effect.Effect<number, never, Scope.Scope> = internal.lock
110
+
111
+ /**
112
+ * Determines if any fiber has a read or write lock.
113
+ *
114
+ * @since 2.0.0
115
+ * @category mutations
116
+ */
117
+ export const locked: (self: TReentrantLock) => STM.STM<boolean> = internal.locked
118
+
119
+ /**
120
+ * Makes a new reentrant read/write lock.
121
+ *
122
+ * @since 2.0.0
123
+ * @category constructors
124
+ */
125
+ export const make: STM.STM<TReentrantLock> = internal.make
126
+
127
+ /**
128
+ * Obtains a read lock in a scoped context.
129
+ *
130
+ * @since 2.0.0
131
+ * @category mutations
132
+ */
133
+ export const readLock: (self: TReentrantLock) => Effect.Effect<number, never, Scope.Scope> = internal.readLock
134
+
135
+ /**
136
+ * Retrieves the total number of acquired read locks.
137
+ *
138
+ * @since 2.0.0
139
+ * @category mutations
140
+ */
141
+ export const readLocks: (self: TReentrantLock) => STM.STM<number> = internal.readLocks
142
+
143
+ /**
144
+ * Determines if any fiber has a read lock.
145
+ *
146
+ * @since 2.0.0
147
+ * @category mutations
148
+ */
149
+ export const readLocked: (self: TReentrantLock) => STM.STM<boolean> = internal.readLocked
150
+
151
+ /**
152
+ * Releases a read lock held by this fiber. Succeeds with the outstanding
153
+ * number of read locks held by this fiber.
154
+ *
155
+ * @since 2.0.0
156
+ * @category mutations
157
+ */
158
+ export const releaseRead: (self: TReentrantLock) => STM.STM<number> = internal.releaseRead
159
+
160
+ /**
161
+ * Releases a write lock held by this fiber. Succeeds with the outstanding
162
+ * number of write locks held by this fiber.
163
+ *
164
+ * @since 2.0.0
165
+ * @category mutations
166
+ */
167
+ export const releaseWrite: (self: TReentrantLock) => STM.STM<number> = internal.releaseWrite
168
+
169
+ /**
170
+ * Runs the specified workflow with a lock.
171
+ *
172
+ * @since 2.0.0
173
+ * @category mutations
174
+ */
175
+ export const withLock: {
176
+ (self: TReentrantLock): <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>
177
+ <A, E, R>(effect: Effect.Effect<A, E, R>, self: TReentrantLock): Effect.Effect<A, E, R>
178
+ } = internal.withLock
179
+
180
+ /**
181
+ * Runs the specified workflow with a read lock.
182
+ *
183
+ * @since 2.0.0
184
+ * @category mutations
185
+ */
186
+ export const withReadLock: {
187
+ (self: TReentrantLock): <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>
188
+ <A, E, R>(effect: Effect.Effect<A, E, R>, self: TReentrantLock): Effect.Effect<A, E, R>
189
+ } = internal.withReadLock
190
+
191
+ /**
192
+ * Runs the specified workflow with a write lock.
193
+ *
194
+ * @since 2.0.0
195
+ * @category mutations
196
+ */
197
+ export const withWriteLock: {
198
+ (self: TReentrantLock): <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>
199
+ <A, E, R>(effect: Effect.Effect<A, E, R>, self: TReentrantLock): Effect.Effect<A, E, R>
200
+ } = internal.withWriteLock
201
+
202
+ /**
203
+ * Obtains a write lock in a scoped context.
204
+ *
205
+ * @since 2.0.0
206
+ * @category mutations
207
+ */
208
+ export const writeLock: (self: TReentrantLock) => Effect.Effect<number, never, Scope.Scope> = internal.writeLock
209
+
210
+ /**
211
+ * Determines if a write lock is held by some fiber.
212
+ *
213
+ * @since 2.0.0
214
+ * @category mutations
215
+ */
216
+ export const writeLocked: (self: TReentrantLock) => STM.STM<boolean> = internal.writeLocked
217
+
218
+ /**
219
+ * Computes the number of write locks held by fibers.
220
+ *
221
+ * @since 2.0.0
222
+ * @category mutations
223
+ */
224
+ export const writeLocks: (self: TReentrantLock) => STM.STM<number> = internal.writeLocks
package/src/TRef.ts ADDED
@@ -0,0 +1,178 @@
1
+ /**
2
+ * @since 2.0.0
3
+ */
4
+
5
+ import type * as Journal from "./internal/stm/journal.js"
6
+ import * as internal from "./internal/stm/tRef.js"
7
+ import type * as TxnId from "./internal/stm/txnId.js"
8
+ import type * as Versioned from "./internal/stm/versioned.js"
9
+ import type * as Option from "./Option.js"
10
+ import type { Pipeable } from "./Pipeable.js"
11
+ import type * as STM from "./STM.js"
12
+ import type * as Types from "./Types.js"
13
+
14
+ /**
15
+ * @since 2.0.0
16
+ * @category symbols
17
+ */
18
+ export const TRefTypeId: unique symbol = internal.TRefTypeId
19
+
20
+ /**
21
+ * @since 2.0.0
22
+ * @category symbols
23
+ */
24
+ export type TRefTypeId = typeof TRefTypeId
25
+
26
+ /**
27
+ * A `TRef<A>` is a purely functional description of a mutable reference that can
28
+ * be modified as part of a transactional effect. The fundamental operations of
29
+ * a `TRef` are `set` and `get`. `set` transactionally sets the reference to a
30
+ * new value. `get` gets the current value of the reference.
31
+ *
32
+ * NOTE: While `TRef<A>` provides the transactional equivalent of a mutable
33
+ * reference, the value inside the `TRef` should be immutable.
34
+ *
35
+ * @since 2.0.0
36
+ * @category models
37
+ */
38
+ export interface TRef<in out A> extends TRef.Variance<A>, Pipeable {
39
+ /**
40
+ * Note: the method is unbound, exposed only for potential extensions.
41
+ */
42
+ modify<B>(f: (a: A) => readonly [B, A]): STM.STM<B>
43
+ }
44
+ /**
45
+ * @internal
46
+ * @since 2.0.0
47
+ */
48
+ export interface TRef<in out A> {
49
+ /** @internal */
50
+ todos: Map<TxnId.TxnId, Journal.Todo>
51
+ /** @internal */
52
+ versioned: Versioned.Versioned<A>
53
+ }
54
+
55
+ /**
56
+ * @since 2.0.0
57
+ */
58
+ export declare namespace TRef {
59
+ /**
60
+ * @since 2.0.0
61
+ */
62
+ export interface Variance<in out A> {
63
+ readonly [TRefTypeId]: {
64
+ readonly _A: Types.Invariant<A>
65
+ }
66
+ }
67
+ }
68
+
69
+ /**
70
+ * @since 2.0.0
71
+ * @category mutations
72
+ */
73
+ export const get: <A>(self: TRef<A>) => STM.STM<A> = internal.get
74
+
75
+ /**
76
+ * @since 2.0.0
77
+ * @category mutations
78
+ */
79
+ export const getAndSet: {
80
+ <A>(value: A): (self: TRef<A>) => STM.STM<A>
81
+ <A>(self: TRef<A>, value: A): STM.STM<A>
82
+ } = internal.getAndSet
83
+
84
+ /**
85
+ * @since 2.0.0
86
+ * @category mutations
87
+ */
88
+ export const getAndUpdate: {
89
+ <A>(f: (a: A) => A): (self: TRef<A>) => STM.STM<A>
90
+ <A>(self: TRef<A>, f: (a: A) => A): STM.STM<A>
91
+ } = internal.getAndUpdate
92
+
93
+ /**
94
+ * @since 2.0.0
95
+ * @category mutations
96
+ */
97
+ export const getAndUpdateSome: {
98
+ <A>(f: (a: A) => Option.Option<A>): (self: TRef<A>) => STM.STM<A>
99
+ <A>(self: TRef<A>, f: (a: A) => Option.Option<A>): STM.STM<A>
100
+ } = internal.getAndUpdateSome
101
+
102
+ /**
103
+ * @since 2.0.0
104
+ * @category constructors
105
+ */
106
+ export const make: <A>(value: A) => STM.STM<TRef<A>> = internal.make
107
+
108
+ /**
109
+ * @since 2.0.0
110
+ * @category mutations
111
+ */
112
+ export const modify: {
113
+ <A, B>(f: (a: A) => readonly [B, A]): (self: TRef<A>) => STM.STM<B>
114
+ <A, B>(self: TRef<A>, f: (a: A) => readonly [B, A]): STM.STM<B>
115
+ } = internal.modify
116
+
117
+ /**
118
+ * @since 2.0.0
119
+ * @category mutations
120
+ */
121
+ export const modifySome: {
122
+ <A, B>(fallback: B, f: (a: A) => Option.Option<readonly [B, A]>): (self: TRef<A>) => STM.STM<B>
123
+ <A, B>(self: TRef<A>, fallback: B, f: (a: A) => Option.Option<readonly [B, A]>): STM.STM<B>
124
+ } = internal.modifySome
125
+
126
+ /**
127
+ * @since 2.0.0
128
+ * @category mutations
129
+ */
130
+ export const set: {
131
+ <A>(value: A): (self: TRef<A>) => STM.STM<void>
132
+ <A>(self: TRef<A>, value: A): STM.STM<void>
133
+ } = internal.set
134
+
135
+ /**
136
+ * @since 2.0.0
137
+ * @category mutations
138
+ */
139
+ export const setAndGet: {
140
+ <A>(value: A): (self: TRef<A>) => STM.STM<A>
141
+ <A>(self: TRef<A>, value: A): STM.STM<A>
142
+ } = internal.setAndGet
143
+
144
+ /**
145
+ * @since 2.0.0
146
+ * @category mutations
147
+ */
148
+ export const update: {
149
+ <A>(f: (a: A) => A): (self: TRef<A>) => STM.STM<void>
150
+ <A>(self: TRef<A>, f: (a: A) => A): STM.STM<void>
151
+ } = internal.update
152
+
153
+ /**
154
+ * @since 2.0.0
155
+ * @category mutations
156
+ */
157
+ export const updateAndGet: {
158
+ <A>(f: (a: A) => A): (self: TRef<A>) => STM.STM<A>
159
+ <A>(self: TRef<A>, f: (a: A) => A): STM.STM<A>
160
+ } = internal.updateAndGet
161
+
162
+ /**
163
+ * @since 2.0.0
164
+ * @category mutations
165
+ */
166
+ export const updateSome: {
167
+ <A>(f: (a: A) => Option.Option<A>): (self: TRef<A>) => STM.STM<void>
168
+ <A>(self: TRef<A>, f: (a: A) => Option.Option<A>): STM.STM<void>
169
+ } = internal.updateSome
170
+
171
+ /**
172
+ * @since 2.0.0
173
+ * @category mutations
174
+ */
175
+ export const updateSomeAndGet: {
176
+ <A>(f: (a: A) => Option.Option<A>): (self: TRef<A>) => STM.STM<A>
177
+ <A>(self: TRef<A>, f: (a: A) => Option.Option<A>): STM.STM<A>
178
+ } = internal.updateSomeAndGet
@@ -0,0 +1,129 @@
1
+ /**
2
+ * @since 2.0.0
3
+ */
4
+
5
+ import type * as Effect from "./Effect.js"
6
+ import * as internal from "./internal/stm/tSemaphore.js"
7
+ import type * as Scope from "./Scope.js"
8
+ import type * as STM from "./STM.js"
9
+ import type * as TRef from "./TRef.js"
10
+
11
+ /**
12
+ * @since 2.0.0
13
+ * @category symbols
14
+ */
15
+ export const TSemaphoreTypeId: unique symbol = internal.TSemaphoreTypeId
16
+
17
+ /**
18
+ * @since 2.0.0
19
+ * @category symbols
20
+ */
21
+ export type TSemaphoreTypeId = typeof TSemaphoreTypeId
22
+
23
+ /**
24
+ * @since 2.0.0
25
+ * @category models
26
+ */
27
+ export interface TSemaphore extends TSemaphore.Proto {}
28
+ /**
29
+ * @internal
30
+ * @since 2.0.0
31
+ */
32
+ export interface TSemaphore {
33
+ /** @internal */
34
+ readonly permits: TRef.TRef<number>
35
+ }
36
+
37
+ /**
38
+ * @since 2.0.0
39
+ */
40
+ export declare namespace TSemaphore {
41
+ /**
42
+ * @since 2.0.0
43
+ * @category models
44
+ */
45
+ export interface Proto {
46
+ readonly [TSemaphoreTypeId]: TSemaphoreTypeId
47
+ }
48
+ }
49
+
50
+ /**
51
+ * @since 2.0.0
52
+ * @category mutations
53
+ */
54
+ export const acquire: (self: TSemaphore) => STM.STM<void> = internal.acquire
55
+
56
+ /**
57
+ * @since 2.0.0
58
+ * @category mutations
59
+ */
60
+ export const acquireN: {
61
+ (n: number): (self: TSemaphore) => STM.STM<void>
62
+ (self: TSemaphore, n: number): STM.STM<void>
63
+ } = internal.acquireN
64
+
65
+ /**
66
+ * @since 2.0.0
67
+ * @category getters
68
+ */
69
+ export const available: (self: TSemaphore) => STM.STM<number> = internal.available
70
+
71
+ /**
72
+ * @since 2.0.0
73
+ * @category constructors
74
+ */
75
+ export const make: (permits: number) => STM.STM<TSemaphore> = internal.make
76
+
77
+ /**
78
+ * @since 2.0.0
79
+ * @category mutations
80
+ */
81
+ export const release: (self: TSemaphore) => STM.STM<void> = internal.release
82
+
83
+ /**
84
+ * @since 2.0.0
85
+ * @category mutations
86
+ */
87
+ export const releaseN: {
88
+ (n: number): (self: TSemaphore) => STM.STM<void>
89
+ (self: TSemaphore, n: number): STM.STM<void>
90
+ } = internal.releaseN
91
+
92
+ /**
93
+ * @since 2.0.0
94
+ * @category mutations
95
+ */
96
+ export const withPermit: {
97
+ (semaphore: TSemaphore): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>
98
+ <A, E, R>(self: Effect.Effect<A, E, R>, semaphore: TSemaphore): Effect.Effect<A, E, R>
99
+ } = internal.withPermit
100
+
101
+ /**
102
+ * @since 2.0.0
103
+ * @category mutations
104
+ */
105
+ export const withPermits: {
106
+ (semaphore: TSemaphore, permits: number): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>
107
+ <A, E, R>(self: Effect.Effect<A, E, R>, semaphore: TSemaphore, permits: number): Effect.Effect<A, E, R>
108
+ } = internal.withPermits
109
+
110
+ /**
111
+ * @since 2.0.0
112
+ * @category mutations
113
+ */
114
+ export const withPermitScoped: (self: TSemaphore) => Effect.Effect<void, never, Scope.Scope> = internal.withPermitScoped
115
+
116
+ /**
117
+ * @since 2.0.0
118
+ * @category mutations
119
+ */
120
+ export const withPermitsScoped: {
121
+ (permits: number): (self: TSemaphore) => Effect.Effect<void, never, Scope.Scope>
122
+ (self: TSemaphore, permits: number): Effect.Effect<void, never, Scope.Scope>
123
+ } = internal.withPermitsScoped
124
+
125
+ /**
126
+ * @since 2.0.0
127
+ * @category unsafe
128
+ */
129
+ export const unsafeMake: (permits: number) => TSemaphore = internal.unsafeMakeSemaphore