@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,82 @@
1
+ import type * as Cause from "../Cause.js"
2
+ import type * as Effect from "../Effect.js"
3
+ import type * as FiberStatus from "../FiberStatus.js"
4
+ import type * as FiberRuntime from "./fiberRuntime.js"
5
+
6
+ /** @internal */
7
+ export type FiberMessage = InterruptSignal | Stateful | Resume | YieldNow
8
+
9
+ /** @internal */
10
+ export const OP_INTERRUPT_SIGNAL = "InterruptSignal" as const
11
+
12
+ /** @internal */
13
+ export type OP_INTERRUPT_SIGNAL = typeof OP_INTERRUPT_SIGNAL
14
+
15
+ /** @internal */
16
+ export const OP_STATEFUL = "Stateful" as const
17
+
18
+ /** @internal */
19
+ export type OP_STATEFUL = typeof OP_STATEFUL
20
+
21
+ /** @internal */
22
+ export const OP_RESUME = "Resume" as const
23
+
24
+ /** @internal */
25
+ export type OP_RESUME = typeof OP_RESUME
26
+
27
+ /** @internal */
28
+ export const OP_YIELD_NOW = "YieldNow" as const
29
+
30
+ /** @internal */
31
+ export type OP_YIELD_NOW = typeof OP_YIELD_NOW
32
+
33
+ /** @internal */
34
+ export interface InterruptSignal {
35
+ readonly _tag: OP_INTERRUPT_SIGNAL
36
+ readonly cause: Cause.Cause<never>
37
+ }
38
+
39
+ /** @internal */
40
+ export interface Stateful {
41
+ readonly _tag: OP_STATEFUL
42
+ onFiber(fiber: FiberRuntime.FiberRuntime<any, any>, status: FiberStatus.FiberStatus): void
43
+ }
44
+
45
+ /** @internal */
46
+ export interface Resume {
47
+ readonly _tag: OP_RESUME
48
+ readonly effect: Effect.Effect<any, any, any>
49
+ }
50
+
51
+ /** @internal */
52
+ export interface YieldNow {
53
+ readonly _tag: OP_YIELD_NOW
54
+ }
55
+
56
+ /** @internal */
57
+ export const interruptSignal = (cause: Cause.Cause<never>): FiberMessage => ({
58
+ _tag: OP_INTERRUPT_SIGNAL,
59
+ cause
60
+ })
61
+
62
+ /** @internal */
63
+ export const stateful = (
64
+ onFiber: (
65
+ fiber: FiberRuntime.FiberRuntime<any, any>,
66
+ status: FiberStatus.FiberStatus
67
+ ) => void
68
+ ): FiberMessage => ({
69
+ _tag: OP_STATEFUL,
70
+ onFiber
71
+ })
72
+
73
+ /** @internal */
74
+ export const resume = (effect: Effect.Effect<any, any, any>): FiberMessage => ({
75
+ _tag: OP_RESUME,
76
+ effect
77
+ })
78
+
79
+ /** @internal */
80
+ export const yieldNow = (): FiberMessage => ({
81
+ _tag: OP_YIELD_NOW
82
+ })
@@ -0,0 +1,144 @@
1
+ import * as Arr from "../../Array.js"
2
+ import { equals } from "../../Equal.js"
3
+ import type * as FiberId from "../../FiberId.js"
4
+ import type * as FiberRefs from "../../FiberRefs.js"
5
+ import type * as FiberRefsPatch from "../../FiberRefsPatch.js"
6
+ import { dual } from "../../Function.js"
7
+ import * as fiberRefs_ from "../fiberRefs.js"
8
+
9
+ /** @internal */
10
+ export const OP_EMPTY = "Empty" as const
11
+
12
+ /** @internal */
13
+ export type OP_EMPTY = typeof OP_EMPTY
14
+
15
+ /** @internal */
16
+ export const OP_ADD = "Add" as const
17
+
18
+ /** @internal */
19
+ export type OP_ADD = typeof OP_ADD
20
+
21
+ /** @internal */
22
+ export const OP_REMOVE = "Remove" as const
23
+
24
+ /** @internal */
25
+ export type OP_REMOVE = typeof OP_REMOVE
26
+
27
+ /** @internal */
28
+ export const OP_UPDATE = "Update" as const
29
+
30
+ /** @internal */
31
+ export type OP_UPDATE = typeof OP_UPDATE
32
+
33
+ /** @internal */
34
+ export const OP_AND_THEN = "AndThen" as const
35
+
36
+ /** @internal */
37
+ export type OP_AND_THEN = typeof OP_AND_THEN
38
+
39
+ /** @internal */
40
+ export const empty: FiberRefsPatch.FiberRefsPatch = ({
41
+ _tag: OP_EMPTY
42
+ }) as FiberRefsPatch.FiberRefsPatch
43
+
44
+ /** @internal */
45
+ export const diff = (
46
+ oldValue: FiberRefs.FiberRefs,
47
+ newValue: FiberRefs.FiberRefs
48
+ ): FiberRefsPatch.FiberRefsPatch => {
49
+ const missingLocals = new Map(oldValue.locals)
50
+ let patch = empty
51
+ for (const [fiberRef, pairs] of newValue.locals.entries()) {
52
+ const newValue = Arr.headNonEmpty(pairs)[1]
53
+ const old = missingLocals.get(fiberRef)
54
+ if (old !== undefined) {
55
+ const oldValue = Arr.headNonEmpty(old)[1]
56
+ if (!equals(oldValue, newValue)) {
57
+ patch = combine({
58
+ _tag: OP_UPDATE,
59
+ fiberRef,
60
+ patch: fiberRef.diff(oldValue, newValue)
61
+ })(patch)
62
+ }
63
+ } else {
64
+ patch = combine({
65
+ _tag: OP_ADD,
66
+ fiberRef,
67
+ value: newValue
68
+ })(patch)
69
+ }
70
+ missingLocals.delete(fiberRef)
71
+ }
72
+ for (const [fiberRef] of missingLocals.entries()) {
73
+ patch = combine({
74
+ _tag: OP_REMOVE,
75
+ fiberRef
76
+ })(patch)
77
+ }
78
+ return patch
79
+ }
80
+
81
+ /** @internal */
82
+ export const combine = dual<
83
+ (that: FiberRefsPatch.FiberRefsPatch) => (self: FiberRefsPatch.FiberRefsPatch) => FiberRefsPatch.FiberRefsPatch,
84
+ (self: FiberRefsPatch.FiberRefsPatch, that: FiberRefsPatch.FiberRefsPatch) => FiberRefsPatch.FiberRefsPatch
85
+ >(2, (self, that) => ({
86
+ _tag: OP_AND_THEN,
87
+ first: self,
88
+ second: that
89
+ }))
90
+
91
+ /** @internal */
92
+ export const patch = dual<
93
+ (
94
+ fiberId: FiberId.Runtime,
95
+ oldValue: FiberRefs.FiberRefs
96
+ ) => (self: FiberRefsPatch.FiberRefsPatch) => FiberRefs.FiberRefs,
97
+ (
98
+ self: FiberRefsPatch.FiberRefsPatch,
99
+ fiberId: FiberId.Runtime,
100
+ oldValue: FiberRefs.FiberRefs
101
+ ) => FiberRefs.FiberRefs
102
+ >(3, (self, fiberId, oldValue) => {
103
+ let fiberRefs: FiberRefs.FiberRefs = oldValue
104
+ let patches: ReadonlyArray<FiberRefsPatch.FiberRefsPatch> = Arr.of(self)
105
+ while (Arr.isNonEmptyReadonlyArray(patches)) {
106
+ const head = Arr.headNonEmpty(patches)
107
+ const tail = Arr.tailNonEmpty(patches)
108
+ switch (head._tag) {
109
+ case OP_EMPTY: {
110
+ patches = tail
111
+ break
112
+ }
113
+ case OP_ADD: {
114
+ fiberRefs = fiberRefs_.updateAs(fiberRefs, {
115
+ fiberId,
116
+ fiberRef: head.fiberRef,
117
+ value: head.value
118
+ })
119
+ patches = tail
120
+ break
121
+ }
122
+ case OP_REMOVE: {
123
+ fiberRefs = fiberRefs_.delete_(fiberRefs, head.fiberRef)
124
+ patches = tail
125
+ break
126
+ }
127
+ case OP_UPDATE: {
128
+ const value = fiberRefs_.getOrDefault(fiberRefs, head.fiberRef)
129
+ fiberRefs = fiberRefs_.updateAs(fiberRefs, {
130
+ fiberId,
131
+ fiberRef: head.fiberRef,
132
+ value: head.fiberRef.patch(head.patch)(value)
133
+ })
134
+ patches = tail
135
+ break
136
+ }
137
+ case OP_AND_THEN: {
138
+ patches = Arr.prepend(head.first)(Arr.prepend(head.second)(tail))
139
+ break
140
+ }
141
+ }
142
+ }
143
+ return fiberRefs
144
+ })
@@ -0,0 +1,297 @@
1
+ import * as Arr from "../Array.js"
2
+ import type * as Effect from "../Effect.js"
3
+ import * as Equal from "../Equal.js"
4
+ import type * as FiberId from "../FiberId.js"
5
+ import type * as FiberRef from "../FiberRef.js"
6
+ import type * as FiberRefs from "../FiberRefs.js"
7
+ import { dual, pipe } from "../Function.js"
8
+ import * as HashSet from "../HashSet.js"
9
+ import * as Option from "../Option.js"
10
+ import { pipeArguments } from "../Pipeable.js"
11
+ import * as core from "./core.js"
12
+
13
+ /** @internal */
14
+ export function unsafeMake(
15
+ fiberRefLocals: Map<FiberRef.FiberRef<any>, Arr.NonEmptyReadonlyArray<readonly [FiberId.Single, any]>>
16
+ ): FiberRefs.FiberRefs {
17
+ return new FiberRefsImpl(fiberRefLocals)
18
+ }
19
+
20
+ /** @internal */
21
+ export function empty(): FiberRefs.FiberRefs {
22
+ return unsafeMake(new Map())
23
+ }
24
+
25
+ /** @internal */
26
+ export const FiberRefsSym: FiberRefs.FiberRefsSym = Symbol.for("effect/FiberRefs") as FiberRefs.FiberRefsSym
27
+
28
+ /** @internal */
29
+ export class FiberRefsImpl implements FiberRefs.FiberRefs {
30
+ readonly [FiberRefsSym]: FiberRefs.FiberRefsSym = FiberRefsSym
31
+ constructor(
32
+ readonly locals: Map<
33
+ FiberRef.FiberRef<any>,
34
+ Arr.NonEmptyReadonlyArray<readonly [FiberId.Single, any]>
35
+ >
36
+ ) {}
37
+ pipe() {
38
+ return pipeArguments(this, arguments)
39
+ }
40
+ }
41
+
42
+ /** @internal */
43
+ const findAncestor = (
44
+ _ref: FiberRef.FiberRef<any>,
45
+ _parentStack: ReadonlyArray<readonly [FiberId.Single, unknown]>,
46
+ _childStack: ReadonlyArray<readonly [FiberId.Single, unknown]>,
47
+ _childModified = false
48
+ ): readonly [unknown, boolean] => {
49
+ const ref = _ref
50
+ let parentStack = _parentStack
51
+ let childStack = _childStack
52
+ let childModified = _childModified
53
+ let ret: readonly [unknown, boolean] | undefined = undefined
54
+ while (ret === undefined) {
55
+ if (Arr.isNonEmptyReadonlyArray(parentStack) && Arr.isNonEmptyReadonlyArray(childStack)) {
56
+ const parentFiberId = Arr.headNonEmpty(parentStack)[0]
57
+ const parentAncestors = Arr.tailNonEmpty(parentStack)
58
+ const childFiberId = Arr.headNonEmpty(childStack)[0]
59
+ const childRefValue = Arr.headNonEmpty(childStack)[1]
60
+ const childAncestors = Arr.tailNonEmpty(childStack)
61
+ if (parentFiberId.startTimeMillis < childFiberId.startTimeMillis) {
62
+ childStack = childAncestors
63
+ childModified = true
64
+ } else if (parentFiberId.startTimeMillis > childFiberId.startTimeMillis) {
65
+ parentStack = parentAncestors
66
+ } else {
67
+ if (parentFiberId.id < childFiberId.id) {
68
+ childStack = childAncestors
69
+ childModified = true
70
+ } else if (parentFiberId.id > childFiberId.id) {
71
+ parentStack = parentAncestors
72
+ } else {
73
+ ret = [childRefValue, childModified] as const
74
+ }
75
+ }
76
+ } else {
77
+ ret = [ref.initial, true] as const
78
+ }
79
+ }
80
+ return ret
81
+ }
82
+
83
+ /** @internal */
84
+ export const joinAs = dual<
85
+ (fiberId: FiberId.Single, that: FiberRefs.FiberRefs) => (self: FiberRefs.FiberRefs) => FiberRefs.FiberRefs,
86
+ (self: FiberRefs.FiberRefs, fiberId: FiberId.Single, that: FiberRefs.FiberRefs) => FiberRefs.FiberRefs
87
+ >(3, (self, fiberId, that) => {
88
+ const parentFiberRefs = new Map(self.locals)
89
+ that.locals.forEach((childStack, fiberRef) => {
90
+ const childValue = childStack[0][1]
91
+ if (!childStack[0][0][Equal.symbol](fiberId)) {
92
+ if (!parentFiberRefs.has(fiberRef)) {
93
+ if (Equal.equals(childValue, fiberRef.initial)) {
94
+ return
95
+ }
96
+ parentFiberRefs.set(
97
+ fiberRef,
98
+ [[fiberId, fiberRef.join(fiberRef.initial, childValue)]]
99
+ )
100
+ return
101
+ }
102
+ const parentStack = parentFiberRefs.get(fiberRef)!
103
+ const [ancestor, wasModified] = findAncestor(
104
+ fiberRef,
105
+ parentStack,
106
+ childStack
107
+ )
108
+ if (wasModified) {
109
+ const patch = fiberRef.diff(ancestor, childValue)
110
+ const oldValue = parentStack[0][1]
111
+ const newValue = fiberRef.join(oldValue, fiberRef.patch(patch)(oldValue))
112
+ if (!Equal.equals(oldValue, newValue)) {
113
+ let newStack: Arr.NonEmptyReadonlyArray<readonly [FiberId.Single, unknown]>
114
+ const parentFiberId = parentStack[0][0]
115
+ if (parentFiberId[Equal.symbol](fiberId)) {
116
+ newStack = [[parentFiberId, newValue] as const, ...parentStack.slice(1)]
117
+ } else {
118
+ newStack = [[fiberId, newValue] as const, ...parentStack]
119
+ }
120
+ parentFiberRefs.set(fiberRef, newStack)
121
+ }
122
+ }
123
+ }
124
+ })
125
+ return new FiberRefsImpl(parentFiberRefs)
126
+ })
127
+
128
+ /** @internal */
129
+ export const forkAs = dual<
130
+ (childId: FiberId.Single) => (self: FiberRefs.FiberRefs) => FiberRefs.FiberRefs,
131
+ (self: FiberRefs.FiberRefs, childId: FiberId.Single) => FiberRefs.FiberRefs
132
+ >(2, (self, childId) => {
133
+ const map = new Map<FiberRef.FiberRef<any>, Arr.NonEmptyReadonlyArray<readonly [FiberId.Single, unknown]>>()
134
+ unsafeForkAs(self, map, childId)
135
+ return new FiberRefsImpl(map)
136
+ })
137
+
138
+ const unsafeForkAs = (
139
+ self: FiberRefs.FiberRefs,
140
+ map: Map<FiberRef.FiberRef<any>, Arr.NonEmptyReadonlyArray<readonly [FiberId.Single, any]>>,
141
+ fiberId: FiberId.Single
142
+ ) => {
143
+ self.locals.forEach((stack, fiberRef) => {
144
+ const oldValue = stack[0][1]
145
+ const newValue = fiberRef.patch(fiberRef.fork)(oldValue)
146
+ if (Equal.equals(oldValue, newValue)) {
147
+ map.set(fiberRef, stack)
148
+ } else {
149
+ map.set(fiberRef, [[fiberId, newValue] as const, ...stack])
150
+ }
151
+ })
152
+ }
153
+
154
+ /** @internal */
155
+ export const fiberRefs = (self: FiberRefs.FiberRefs) => HashSet.fromIterable(self.locals.keys())
156
+
157
+ /** @internal */
158
+ export const setAll = (self: FiberRefs.FiberRefs): Effect.Effect<void> =>
159
+ core.forEachSequentialDiscard(
160
+ fiberRefs(self),
161
+ (fiberRef) => core.fiberRefSet(fiberRef, getOrDefault(self, fiberRef))
162
+ )
163
+
164
+ /** @internal */
165
+ export const delete_ = dual<
166
+ <A>(fiberRef: FiberRef.FiberRef<A>) => (self: FiberRefs.FiberRefs) => FiberRefs.FiberRefs,
167
+ <A>(self: FiberRefs.FiberRefs, fiberRef: FiberRef.FiberRef<A>) => FiberRefs.FiberRefs
168
+ >(2, (self, fiberRef) => {
169
+ const locals = new Map(self.locals)
170
+ locals.delete(fiberRef)
171
+ return new FiberRefsImpl(locals)
172
+ })
173
+
174
+ /** @internal */
175
+ export const get = dual<
176
+ <A>(fiberRef: FiberRef.FiberRef<A>) => (self: FiberRefs.FiberRefs) => Option.Option<A>,
177
+ <A>(self: FiberRefs.FiberRefs, fiberRef: FiberRef.FiberRef<A>) => Option.Option<A>
178
+ >(2, (self, fiberRef) => {
179
+ if (!self.locals.has(fiberRef)) {
180
+ return Option.none()
181
+ }
182
+ return Option.some(Arr.headNonEmpty(self.locals.get(fiberRef)!)[1])
183
+ })
184
+
185
+ /** @internal */
186
+ export const getOrDefault = dual<
187
+ <A>(fiberRef: FiberRef.FiberRef<A>) => (self: FiberRefs.FiberRefs) => A,
188
+ <A>(self: FiberRefs.FiberRefs, fiberRef: FiberRef.FiberRef<A>) => A
189
+ >(2, (self, fiberRef) => pipe(get(self, fiberRef), Option.getOrElse(() => fiberRef.initial)))
190
+
191
+ /** @internal */
192
+ export const updateAs = dual<
193
+ <A>(
194
+ options: {
195
+ readonly fiberId: FiberId.Single
196
+ readonly fiberRef: FiberRef.FiberRef<A>
197
+ readonly value: A
198
+ }
199
+ ) => (self: FiberRefs.FiberRefs) => FiberRefs.FiberRefs,
200
+ <A>(
201
+ self: FiberRefs.FiberRefs,
202
+ options: {
203
+ readonly fiberId: FiberId.Single
204
+ readonly fiberRef: FiberRef.FiberRef<A>
205
+ readonly value: A
206
+ }
207
+ ) => FiberRefs.FiberRefs
208
+ >(2, <A>(self: FiberRefs.FiberRefs, { fiberId, fiberRef, value }: {
209
+ readonly fiberId: FiberId.Single
210
+ readonly fiberRef: FiberRef.FiberRef<A>
211
+ readonly value: A
212
+ }) => {
213
+ if (self.locals.size === 0) {
214
+ return new FiberRefsImpl(new Map([[fiberRef, [[fiberId, value] as const]]]))
215
+ }
216
+ const locals = new Map(self.locals)
217
+ unsafeUpdateAs(locals, fiberId, fiberRef, value)
218
+ return new FiberRefsImpl(locals)
219
+ })
220
+
221
+ const unsafeUpdateAs = (
222
+ locals: Map<FiberRef.FiberRef<any>, Arr.NonEmptyReadonlyArray<readonly [FiberId.Single, any]>>,
223
+ fiberId: FiberId.Single,
224
+ fiberRef: FiberRef.FiberRef<any>,
225
+ value: any
226
+ ) => {
227
+ const oldStack: ReadonlyArray<readonly [FiberId.Single, any]> = locals.get(fiberRef) ?? []
228
+ let newStack: Arr.NonEmptyReadonlyArray<readonly [FiberId.Single, any]> | undefined
229
+
230
+ if (Arr.isNonEmptyReadonlyArray(oldStack)) {
231
+ const [currentId, currentValue] = Arr.headNonEmpty(oldStack)
232
+ if (currentId[Equal.symbol](fiberId)) {
233
+ if (Equal.equals(currentValue, value)) {
234
+ return
235
+ } else {
236
+ newStack = [
237
+ [fiberId, value] as const,
238
+ ...oldStack.slice(1)
239
+ ]
240
+ }
241
+ } else {
242
+ newStack = [
243
+ [fiberId, value] as const,
244
+ ...oldStack
245
+ ]
246
+ }
247
+ } else {
248
+ newStack = [[fiberId, value] as const]
249
+ }
250
+
251
+ locals.set(fiberRef, newStack)
252
+ }
253
+
254
+ /** @internal */
255
+ export const updateManyAs = dual<
256
+ (
257
+ options: {
258
+ readonly forkAs?: FiberId.Single | undefined
259
+ readonly entries: Arr.NonEmptyReadonlyArray<
260
+ readonly [FiberRef.FiberRef<any>, Arr.NonEmptyReadonlyArray<readonly [FiberId.Single, any]>]
261
+ >
262
+ }
263
+ ) => (self: FiberRefs.FiberRefs) => FiberRefs.FiberRefs,
264
+ (
265
+ self: FiberRefs.FiberRefs,
266
+ options: {
267
+ readonly forkAs?: FiberId.Single | undefined
268
+ readonly entries: Arr.NonEmptyReadonlyArray<
269
+ readonly [FiberRef.FiberRef<any>, Arr.NonEmptyReadonlyArray<readonly [FiberId.Single, any]>]
270
+ >
271
+ }
272
+ ) => FiberRefs.FiberRefs
273
+ >(2, (self: FiberRefs.FiberRefs, { entries, forkAs }: {
274
+ readonly forkAs?: FiberId.Single | undefined
275
+ readonly entries: Arr.NonEmptyReadonlyArray<
276
+ readonly [FiberRef.FiberRef<any>, Arr.NonEmptyReadonlyArray<readonly [FiberId.Single, any]>]
277
+ >
278
+ }) => {
279
+ if (self.locals.size === 0) {
280
+ return new FiberRefsImpl(new Map(entries))
281
+ }
282
+
283
+ const locals = new Map(self.locals)
284
+ if (forkAs !== undefined) {
285
+ unsafeForkAs(self, locals, forkAs)
286
+ }
287
+ entries.forEach(([fiberRef, values]) => {
288
+ if (values.length === 1) {
289
+ unsafeUpdateAs(locals, values[0][0], fiberRef, values[0][1])
290
+ } else {
291
+ values.forEach(([fiberId, value]) => {
292
+ unsafeUpdateAs(locals, fiberId, fiberRef, value)
293
+ })
294
+ }
295
+ })
296
+ return new FiberRefsImpl(locals)
297
+ })