@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/Mailbox.ts ADDED
@@ -0,0 +1,268 @@
1
+ /**
2
+ * @since 3.8.0
3
+ * @experimental
4
+ */
5
+ import type { Cause, NoSuchElementException } from "./Cause.js"
6
+ import type { Channel } from "./Channel.js"
7
+ import type { Chunk } from "./Chunk.js"
8
+ import type { Effect } from "./Effect.js"
9
+ import type { Exit } from "./Exit.js"
10
+ import type { Inspectable } from "./Inspectable.js"
11
+ import * as internal from "./internal/mailbox.js"
12
+ import type { Option } from "./Option.js"
13
+ import { hasProperty } from "./Predicate.js"
14
+ import type { Scope } from "./Scope.js"
15
+ import type { Stream } from "./Stream.js"
16
+
17
+ /**
18
+ * @since 3.8.0
19
+ * @experimental
20
+ * @category type ids
21
+ */
22
+ export const TypeId: unique symbol = internal.TypeId
23
+
24
+ /**
25
+ * @since 3.8.0
26
+ * @experimental
27
+ * @category type ids
28
+ */
29
+ export type TypeId = typeof TypeId
30
+
31
+ /**
32
+ * @since 3.8.0
33
+ * @experimental
34
+ * @category type ids
35
+ */
36
+ export const ReadonlyTypeId: unique symbol = internal.ReadonlyTypeId
37
+
38
+ /**
39
+ * @since 3.8.0
40
+ * @experimental
41
+ * @category type ids
42
+ */
43
+ export type ReadonlyTypeId = typeof ReadonlyTypeId
44
+
45
+ /**
46
+ * @since 3.8.0
47
+ * @experimental
48
+ * @category guards
49
+ */
50
+ export const isMailbox = <A = unknown, E = unknown>(u: unknown): u is Mailbox<A, E> => hasProperty(u, TypeId)
51
+
52
+ /**
53
+ * @since 3.8.0
54
+ * @experimental
55
+ * @category guards
56
+ */
57
+ export const isReadonlyMailbox = <A = unknown, E = unknown>(u: unknown): u is ReadonlyMailbox<A, E> =>
58
+ hasProperty(u, ReadonlyTypeId)
59
+
60
+ /**
61
+ * A `Mailbox` is a queue that can be signaled to be done or failed.
62
+ *
63
+ * @since 3.8.0
64
+ * @experimental
65
+ * @category models
66
+ */
67
+ export interface Mailbox<in out A, in out E = never> extends ReadonlyMailbox<A, E> {
68
+ readonly [TypeId]: TypeId
69
+ /**
70
+ * Add a message to the mailbox. Returns `false` if the mailbox is done.
71
+ */
72
+ readonly offer: (message: A) => Effect<boolean>
73
+ /**
74
+ * Add a message to the mailbox. Returns `false` if the mailbox is done.
75
+ */
76
+ readonly unsafeOffer: (message: A) => boolean
77
+ /**
78
+ * Add multiple messages to the mailbox. Returns the remaining messages that
79
+ * were not added.
80
+ */
81
+ readonly offerAll: (messages: Iterable<A>) => Effect<Chunk<A>>
82
+ /**
83
+ * Add multiple messages to the mailbox. Returns the remaining messages that
84
+ * were not added.
85
+ */
86
+ readonly unsafeOfferAll: (messages: Iterable<A>) => Chunk<A>
87
+ /**
88
+ * Fail the mailbox with an error. If the mailbox is already done, `false` is
89
+ * returned.
90
+ */
91
+ readonly fail: (error: E) => Effect<boolean>
92
+ /**
93
+ * Fail the mailbox with a cause. If the mailbox is already done, `false` is
94
+ * returned.
95
+ */
96
+ readonly failCause: (cause: Cause<E>) => Effect<boolean>
97
+ /**
98
+ * Signal that the mailbox is complete. If the mailbox is already done, `false` is
99
+ * returned.
100
+ */
101
+ readonly end: Effect<boolean>
102
+ /**
103
+ * Signal that the mailbox is done. If the mailbox is already done, `false` is
104
+ * returned.
105
+ */
106
+ readonly done: (exit: Exit<void, E>) => Effect<boolean>
107
+ /**
108
+ * Signal that the mailbox is done. If the mailbox is already done, `false` is
109
+ * returned.
110
+ */
111
+ readonly unsafeDone: (exit: Exit<void, E>) => boolean
112
+ /**
113
+ * Shutdown the mailbox, canceling any pending operations.
114
+ * If the mailbox is already done, `false` is returned.
115
+ */
116
+ readonly shutdown: Effect<boolean>
117
+ }
118
+
119
+ /**
120
+ * A `ReadonlyMailbox` represents a mailbox that can only be read from.
121
+ *
122
+ * @since 3.8.0
123
+ * @experimental
124
+ * @category models
125
+ */
126
+ export interface ReadonlyMailbox<out A, out E = never>
127
+ extends Effect<readonly [messages: Chunk<A>, done: boolean], E>, Inspectable
128
+ {
129
+ readonly [ReadonlyTypeId]: ReadonlyTypeId
130
+ /**
131
+ * Take all messages from the mailbox, returning an empty Chunk if the mailbox
132
+ * is empty or done.
133
+ */
134
+ readonly clear: Effect<Chunk<A>, E>
135
+ /**
136
+ * Take all messages from the mailbox, or wait for messages to be available.
137
+ *
138
+ * If the mailbox is done, the `done` flag will be `true`. If the mailbox
139
+ * fails, the Effect will fail with the error.
140
+ */
141
+ readonly takeAll: Effect<readonly [messages: Chunk<A>, done: boolean], E>
142
+ /**
143
+ * Take a specified number of messages from the mailbox. It will only take
144
+ * up to the capacity of the mailbox.
145
+ *
146
+ * If the mailbox is done, the `done` flag will be `true`. If the mailbox
147
+ * fails, the Effect will fail with the error.
148
+ */
149
+ readonly takeN: (n: number) => Effect<readonly [messages: Chunk<A>, done: boolean], E>
150
+ /**
151
+ * Take a single message from the mailbox, or wait for a message to be
152
+ * available.
153
+ *
154
+ * If the mailbox is done, it will fail with `NoSuchElementException`. If the
155
+ * mailbox fails, the Effect will fail with the error.
156
+ */
157
+ readonly take: Effect<A, E | NoSuchElementException>
158
+ /** Wait for the mailbox to be done. */
159
+ readonly await: Effect<void, E>
160
+ /**
161
+ * Check the size of the mailbox.
162
+ *
163
+ * If the mailbox is complete, it will return `None`.
164
+ */
165
+ readonly size: Effect<Option<number>>
166
+ /**
167
+ * Check the size of the mailbox.
168
+ *
169
+ * If the mailbox is complete, it will return `None`.
170
+ */
171
+ readonly unsafeSize: () => Option<number>
172
+ }
173
+
174
+ /**
175
+ * A `Mailbox` is a queue that can be signaled to be done or failed.
176
+ *
177
+ * @since 3.8.0
178
+ * @experimental
179
+ * @category constructors
180
+ * @example
181
+ * ```ts
182
+ * import * as assert from "node:assert"
183
+ * import { Effect, Mailbox } from "effect"
184
+ *
185
+ * Effect.gen(function*() {
186
+ * const mailbox = yield* Mailbox.make<number, string>()
187
+ *
188
+ * // add messages to the mailbox
189
+ * yield* mailbox.offer(1)
190
+ * yield* mailbox.offer(2)
191
+ * yield* mailbox.offerAll([3, 4, 5])
192
+ *
193
+ * // take messages from the mailbox
194
+ * const [messages, done] = yield* mailbox.takeAll
195
+ * assert.deepStrictEqual(messages, [1, 2, 3, 4, 5])
196
+ * assert.strictEqual(done, false)
197
+ *
198
+ * // signal that the mailbox is done
199
+ * yield* mailbox.end
200
+ * const [messages2, done2] = yield* mailbox.takeAll
201
+ * assert.deepStrictEqual(messages2, [])
202
+ * assert.strictEqual(done2, true)
203
+ *
204
+ * // signal that the mailbox has failed
205
+ * yield* mailbox.fail("boom")
206
+ * })
207
+ * ```
208
+ */
209
+ export const make: <A, E = never>(
210
+ capacity?: number | {
211
+ readonly capacity?: number
212
+ readonly strategy?: "suspend" | "dropping" | "sliding"
213
+ } | undefined
214
+ ) => Effect<Mailbox<A, E>> = internal.make
215
+
216
+ /**
217
+ * Run an `Effect` into a `Mailbox`, where success ends the mailbox and failure
218
+ * fails the mailbox.
219
+ *
220
+ * @since 3.8.0
221
+ * @experimental
222
+ * @category combinators
223
+ */
224
+ export const into: {
225
+ <A, E>(self: Mailbox<A, E>): <AX, EX extends E, RX>(effect: Effect<AX, EX, RX>) => Effect<boolean, never, RX>
226
+ <AX, E, EX extends E, RX, A>(effect: Effect<AX, EX, RX>, self: Mailbox<A, E>): Effect<boolean, never, RX>
227
+ } = internal.into
228
+
229
+ /**
230
+ * Create a `Channel` from a `Mailbox`.
231
+ *
232
+ * @since 3.8.0
233
+ * @experimental
234
+ * @category conversions
235
+ */
236
+ export const toChannel: <A, E>(self: ReadonlyMailbox<A, E>) => Channel<Chunk<A>, unknown, E> = internal.toChannel
237
+
238
+ /**
239
+ * Create a `Stream` from a `Mailbox`.
240
+ *
241
+ * @since 3.8.0
242
+ * @experimental
243
+ * @category conversions
244
+ */
245
+ export const toStream: <A, E>(self: ReadonlyMailbox<A, E>) => Stream<A, E> = internal.toStream
246
+
247
+ /**
248
+ * Create a `ReadonlyMailbox` from a `Stream`.
249
+ *
250
+ * @since 3.11.0
251
+ * @experimental
252
+ * @category conversions
253
+ */
254
+ export const fromStream: {
255
+ (
256
+ options?: {
257
+ readonly capacity?: number | undefined
258
+ readonly strategy?: "suspend" | "dropping" | "sliding" | undefined
259
+ }
260
+ ): <A, E, R>(self: Stream<A, E, R>) => Effect<ReadonlyMailbox<A, E>, never, R | Scope>
261
+ <A, E, R>(
262
+ self: Stream<A, E, R>,
263
+ options?: {
264
+ readonly capacity?: number | undefined
265
+ readonly strategy?: "suspend" | "dropping" | "sliding" | undefined
266
+ }
267
+ ): Effect<ReadonlyMailbox<A, E>, never, R | Scope>
268
+ } = internal.fromStream
@@ -0,0 +1,180 @@
1
+ /**
2
+ * @since 2.0.0
3
+ */
4
+ import type * as Effect from "./Effect.js"
5
+ import type * as Exit from "./Exit.js"
6
+ import type * as Fiber from "./Fiber.js"
7
+ import * as internal from "./internal/managedRuntime.js"
8
+ import * as circular from "./internal/managedRuntime/circular.js"
9
+ import type * as Layer from "./Layer.js"
10
+ import type * as Runtime from "./Runtime.js"
11
+ import type * as Unify from "./Unify.js"
12
+
13
+ /**
14
+ * @since 3.9.0
15
+ * @category symbol
16
+ */
17
+ export const TypeId: unique symbol = circular.TypeId as TypeId
18
+
19
+ /**
20
+ * @since 3.9.0
21
+ * @category symbol
22
+ */
23
+ export type TypeId = typeof TypeId
24
+
25
+ /**
26
+ * Checks if the provided argument is a `ManagedRuntime`.
27
+ *
28
+ * @since 3.9.0
29
+ * @category guards
30
+ */
31
+ export const isManagedRuntime: (input: unknown) => input is ManagedRuntime<unknown, unknown> = internal.isManagedRuntime
32
+
33
+ /**
34
+ * @since 3.4.0
35
+ */
36
+ export declare namespace ManagedRuntime {
37
+ /**
38
+ * @category type-level
39
+ * @since 3.4.0
40
+ */
41
+ export type Context<T extends ManagedRuntime<never, any>> = [T] extends [ManagedRuntime<infer R, infer _E>] ? R
42
+ : never
43
+ /**
44
+ * @category type-level
45
+ * @since 3.4.0
46
+ */
47
+ export type Error<T extends ManagedRuntime<never, any>> = [T] extends [ManagedRuntime<infer _R, infer E>] ? E : never
48
+ }
49
+
50
+ /**
51
+ * @since 2.0.0
52
+ * @category models
53
+ */
54
+ export interface ManagedRuntime<in R, out ER> extends Effect.Effect<Runtime.Runtime<R>, ER> {
55
+ readonly [TypeId]: TypeId
56
+ readonly memoMap: Layer.MemoMap
57
+ readonly runtimeEffect: Effect.Effect<Runtime.Runtime<R>, ER>
58
+ readonly runtime: () => Promise<Runtime.Runtime<R>>
59
+
60
+ /**
61
+ * Executes the effect using the provided Scheduler or using the global
62
+ * Scheduler if not provided
63
+ */
64
+ readonly runFork: <A, E>(
65
+ self: Effect.Effect<A, E, R>,
66
+ options?: Runtime.RunForkOptions
67
+ ) => Fiber.RuntimeFiber<A, E | ER>
68
+
69
+ /**
70
+ * Executes the effect synchronously returning the exit.
71
+ *
72
+ * This method is effectful and should only be invoked at the edges of your
73
+ * program.
74
+ */
75
+ readonly runSyncExit: <A, E>(effect: Effect.Effect<A, E, R>) => Exit.Exit<A, ER | E>
76
+
77
+ /**
78
+ * Executes the effect synchronously throwing in case of errors or async boundaries.
79
+ *
80
+ * This method is effectful and should only be invoked at the edges of your
81
+ * program.
82
+ */
83
+ readonly runSync: <A, E>(effect: Effect.Effect<A, E, R>) => A
84
+
85
+ /**
86
+ * Executes the effect asynchronously, eventually passing the exit value to
87
+ * the specified callback.
88
+ *
89
+ * This method is effectful and should only be invoked at the edges of your
90
+ * program.
91
+ */
92
+ readonly runCallback: <A, E>(
93
+ effect: Effect.Effect<A, E, R>,
94
+ options?: Runtime.RunCallbackOptions<A, E | ER> | undefined
95
+ ) => Runtime.Cancel<A, E | ER>
96
+
97
+ /**
98
+ * Runs the `Effect`, returning a JavaScript `Promise` that will be resolved
99
+ * with the value of the effect once the effect has been executed, or will be
100
+ * rejected with the first error or exception throw by the effect.
101
+ *
102
+ * This method is effectful and should only be used at the edges of your
103
+ * program.
104
+ */
105
+ readonly runPromise: <A, E>(effect: Effect.Effect<A, E, R>, options?: {
106
+ readonly signal?: AbortSignal | undefined
107
+ }) => Promise<A>
108
+
109
+ /**
110
+ * Runs the `Effect`, returning a JavaScript `Promise` that will be resolved
111
+ * with the `Exit` state of the effect once the effect has been executed.
112
+ *
113
+ * This method is effectful and should only be used at the edges of your
114
+ * program.
115
+ */
116
+ readonly runPromiseExit: <A, E>(effect: Effect.Effect<A, E, R>, options?: {
117
+ readonly signal?: AbortSignal | undefined
118
+ }) => Promise<Exit.Exit<A, ER | E>>
119
+
120
+ /**
121
+ * Dispose of the resources associated with the runtime.
122
+ */
123
+ readonly dispose: () => Promise<void>
124
+
125
+ /**
126
+ * Dispose of the resources associated with the runtime.
127
+ */
128
+ readonly disposeEffect: Effect.Effect<void, never, never>
129
+
130
+ readonly [Unify.typeSymbol]?: unknown
131
+ readonly [Unify.unifySymbol]?: ManagedRuntimeUnify<this>
132
+ readonly [Unify.ignoreSymbol]?: ManagedRuntimeUnifyIgnore
133
+ }
134
+
135
+ /**
136
+ * @category models
137
+ * @since 3.9.0
138
+ */
139
+ export interface ManagedRuntimeUnify<A extends { [Unify.typeSymbol]?: any }> extends Effect.EffectUnify<A> {
140
+ ManagedRuntime?: () => Extract<A[Unify.typeSymbol], ManagedRuntime<any, any>>
141
+ }
142
+
143
+ /**
144
+ * @category models
145
+ * @since 3.9.0
146
+ */
147
+ export interface ManagedRuntimeUnifyIgnore extends Effect.EffectUnifyIgnore {
148
+ Effect?: true
149
+ }
150
+
151
+ /**
152
+ * Convert a Layer into an ManagedRuntime, that can be used to run Effect's using
153
+ * your services.
154
+ *
155
+ * @since 2.0.0
156
+ * @category runtime class
157
+ * @example
158
+ * ```ts
159
+ * import { Console, Effect, Layer, ManagedRuntime } from "effect"
160
+ *
161
+ * class Notifications extends Effect.Tag("Notifications")<
162
+ * Notifications,
163
+ * { readonly notify: (message: string) => Effect.Effect<void> }
164
+ * >() {
165
+ * static Live = Layer.succeed(this, { notify: (message) => Console.log(message) })
166
+ * }
167
+ *
168
+ * async function main() {
169
+ * const runtime = ManagedRuntime.make(Notifications.Live)
170
+ * await runtime.runPromise(Notifications.notify("Hello, world!"))
171
+ * await runtime.dispose()
172
+ * }
173
+ *
174
+ * main()
175
+ * ```
176
+ */
177
+ export const make: <R, E>(
178
+ layer: Layer.Layer<R, E, never>,
179
+ memoMap?: Layer.MemoMap | undefined
180
+ ) => ManagedRuntime<R, E> = internal.make