@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,308 @@
1
+ /**
2
+ * @since 3.16.0
3
+ * @experimental
4
+ */
5
+ import type { NonEmptyReadonlyArray } from "./Array.js"
6
+ import type * as Context from "./Context.js"
7
+ import * as Effect from "./Effect.js"
8
+ import * as internal from "./internal/executionPlan.js"
9
+ import * as Layer from "./Layer.js"
10
+ import type { Pipeable } from "./Pipeable.js"
11
+ import { pipeArguments } from "./Pipeable.js"
12
+ import type * as Schedule from "./Schedule.js"
13
+
14
+ /**
15
+ * @since 3.16.0
16
+ * @category Symbols
17
+ * @experimental
18
+ */
19
+ export const TypeId: unique symbol = internal.TypeId
20
+
21
+ /**
22
+ * @since 3.16.0
23
+ * @category Symbols
24
+ * @experimental
25
+ */
26
+ export type TypeId = typeof TypeId
27
+
28
+ /**
29
+ * @since 3.16.0
30
+ * @category Guards
31
+ * @experimental
32
+ */
33
+ export const isExecutionPlan: (u: unknown) => u is ExecutionPlan<any> = internal.isExecutionPlan
34
+
35
+ /**
36
+ * A `ExecutionPlan` can be used with `Effect.withExecutionPlan` or `Stream.withExecutionPlan`, allowing you to provide different resources for each step of execution until the effect succeeds or the plan is exhausted.
37
+ *
38
+ * ```ts
39
+ * import type { LanguageModel } from "@effect/ai"
40
+ * import type { Layer } from "effect"
41
+ * import { Effect, ExecutionPlan, Schedule } from "effect"
42
+ *
43
+ * declare const layerBad: Layer.Layer<LanguageModel.LanguageModel>
44
+ * declare const layerGood: Layer.Layer<LanguageModel.LanguageModel>
45
+ *
46
+ * const ThePlan = ExecutionPlan.make(
47
+ * {
48
+ * // First try with the bad layer 2 times with a 3 second delay between attempts
49
+ * provide: layerBad,
50
+ * attempts: 2,
51
+ * schedule: Schedule.spaced(3000)
52
+ * },
53
+ * // Then try with the bad layer 3 times with a 1 second delay between attempts
54
+ * {
55
+ * provide: layerBad,
56
+ * attempts: 3,
57
+ * schedule: Schedule.spaced(1000)
58
+ * },
59
+ * // Finally try with the good layer.
60
+ * //
61
+ * // If `attempts` is omitted, the plan will only attempt once, unless a schedule is provided.
62
+ * {
63
+ * provide: layerGood
64
+ * }
65
+ * )
66
+ *
67
+ * declare const effect: Effect.Effect<
68
+ * void,
69
+ * never,
70
+ * LanguageModel.LanguageModel
71
+ * >
72
+ * const withPlan: Effect.Effect<void> = Effect.withExecutionPlan(effect, ThePlan)
73
+ * ```
74
+ *
75
+ * @since 3.16.0
76
+ * @category Models
77
+ * @experimental
78
+ */
79
+ export interface ExecutionPlan<
80
+ Types extends {
81
+ provides: any
82
+ input: any
83
+ error: any
84
+ requirements: any
85
+ }
86
+ > extends Pipeable {
87
+ readonly [TypeId]: TypeId
88
+ readonly steps: NonEmptyReadonlyArray<{
89
+ readonly provide:
90
+ | Context.Context<Types["provides"]>
91
+ | Layer.Layer<Types["provides"], Types["error"], Types["requirements"]>
92
+ readonly attempts?: number | undefined
93
+ readonly while?:
94
+ | ((input: Types["input"]) => Effect.Effect<boolean, Types["error"], Types["requirements"]>)
95
+ | undefined
96
+ readonly schedule?: Schedule.Schedule<any, Types["input"], Types["requirements"]> | undefined
97
+ }>
98
+
99
+ /**
100
+ * Returns an equivalent `ExecutionPlan` with the requirements satisfied,
101
+ * using the current context.
102
+ */
103
+ readonly withRequirements: Effect.Effect<
104
+ ExecutionPlan<{
105
+ provides: Types["provides"]
106
+ input: Types["input"]
107
+ error: Types["error"]
108
+ requirements: never
109
+ }>,
110
+ never,
111
+ Types["requirements"]
112
+ >
113
+ }
114
+
115
+ /**
116
+ * @since 3.16.0
117
+ * @experimental
118
+ */
119
+ export type TypesBase = {
120
+ provides: any
121
+ input: any
122
+ error: any
123
+ requirements: any
124
+ }
125
+
126
+ /**
127
+ * Create an `ExecutionPlan`, which can be used with `Effect.withExecutionPlan` or `Stream.withExecutionPlan`, allowing you to provide different resources for each step of execution until the effect succeeds or the plan is exhausted.
128
+ *
129
+ * ```ts
130
+ * import type { LanguageModel } from "@effect/ai"
131
+ * import type { Layer } from "effect"
132
+ * import { Effect, ExecutionPlan, Schedule } from "effect"
133
+ *
134
+ * declare const layerBad: Layer.Layer<LanguageModel.LanguageModel>
135
+ * declare const layerGood: Layer.Layer<LanguageModel.LanguageModel>
136
+ *
137
+ * const ThePlan = ExecutionPlan.make(
138
+ * {
139
+ * // First try with the bad layer 2 times with a 3 second delay between attempts
140
+ * provide: layerBad,
141
+ * attempts: 2,
142
+ * schedule: Schedule.spaced(3000)
143
+ * },
144
+ * // Then try with the bad layer 3 times with a 1 second delay between attempts
145
+ * {
146
+ * provide: layerBad,
147
+ * attempts: 3,
148
+ * schedule: Schedule.spaced(1000)
149
+ * },
150
+ * // Finally try with the good layer.
151
+ * //
152
+ * // If `attempts` is omitted, the plan will only attempt once, unless a schedule is provided.
153
+ * {
154
+ * provide: layerGood
155
+ * }
156
+ * )
157
+ *
158
+ * declare const effect: Effect.Effect<
159
+ * void,
160
+ * never,
161
+ * LanguageModel.LanguageModel
162
+ * >
163
+ * const withPlan: Effect.Effect<void> = Effect.withExecutionPlan(effect, ThePlan)
164
+ * ```
165
+ *
166
+ * @since 3.16.0
167
+ * @category Constructors
168
+ * @experimental
169
+ */
170
+ export const make = <const Steps extends NonEmptyReadonlyArray<make.Step>>(
171
+ ...steps: Steps & { [K in keyof Steps]: make.Step }
172
+ ): ExecutionPlan<{
173
+ provides: make.StepProvides<Steps>
174
+ input: make.StepInput<Steps>
175
+ error:
176
+ | (Steps[number]["provide"] extends Context.Context<infer _P> | Layer.Layer<infer _P, infer E, infer _R> ? E
177
+ : never)
178
+ | (Steps[number]["while"] extends (input: infer _I) => Effect.Effect<infer _A, infer _E, infer _R> ? _E : never)
179
+ requirements:
180
+ | (Steps[number]["provide"] extends Layer.Layer<infer _A, infer _E, infer R> ? R : never)
181
+ | (Steps[number]["while"] extends (input: infer _I) => Effect.Effect<infer _A, infer _E, infer R> ? R : never)
182
+ | (Steps[number]["schedule"] extends Schedule.Schedule<infer _O, infer _I, infer R> ? R : never)
183
+ }> =>
184
+ makeProto(steps.map((options, i) => {
185
+ if (options.attempts && options.attempts < 1) {
186
+ throw new Error(`ExecutionPlan.make: step[${i}].attempts must be greater than 0`)
187
+ }
188
+ return {
189
+ schedule: options.schedule,
190
+ attempts: options.attempts,
191
+ while: options.while
192
+ ? (input: any) =>
193
+ Effect.suspend(() => {
194
+ const result = options.while!(input)
195
+ return typeof result === "boolean" ? Effect.succeed(result) : result
196
+ })
197
+ : undefined,
198
+ provide: options.provide
199
+ }
200
+ }) as any)
201
+
202
+ /**
203
+ * @since 3.16.0
204
+ * @experimental
205
+ */
206
+ export declare namespace make {
207
+ /**
208
+ * @since 3.16.0
209
+ * @experimental
210
+ */
211
+ export type Step = {
212
+ readonly provide: Context.Context<any> | Context.Context<never> | Layer.Layer.Any
213
+ readonly attempts?: number | undefined
214
+ readonly while?: ((input: any) => boolean | Effect.Effect<boolean, any, any>) | undefined
215
+ readonly schedule?: Schedule.Schedule<any, any, any> | undefined
216
+ }
217
+
218
+ /**
219
+ * @since 3.16.1
220
+ * @experimental
221
+ */
222
+ export type StepProvides<Steps extends ReadonlyArray<any>, Out = unknown> = Steps extends
223
+ readonly [infer Step, ...infer Rest] ? StepProvides<
224
+ Rest,
225
+ & Out
226
+ & (
227
+ (Step extends { readonly provide: Context.Context<infer P> | Layer.Layer<infer P, infer _E, infer _R> } ? P
228
+ : unknown)
229
+ )
230
+ > :
231
+ Out
232
+
233
+ /**
234
+ * @since 3.16.1
235
+ * @experimental
236
+ */
237
+ export type PlanProvides<Plans extends ReadonlyArray<any>, Out = unknown> = Plans extends
238
+ readonly [infer Plan, ...infer Rest] ?
239
+ PlanProvides<Rest, Out & (Plan extends ExecutionPlan<infer T> ? T["provides"] : unknown)> :
240
+ Out
241
+
242
+ /**
243
+ * @since 3.16.0
244
+ * @experimental
245
+ */
246
+ export type StepInput<Steps extends ReadonlyArray<any>, Out = unknown> = Steps extends
247
+ readonly [infer Step, ...infer Rest] ? StepInput<
248
+ Rest,
249
+ & Out
250
+ & (
251
+ & (Step extends { readonly while: (input: infer I) => infer _ } ? I : unknown)
252
+ & (Step extends { readonly schedule: Schedule.Schedule<infer _O, infer I, infer _R> } ? I : unknown)
253
+ )
254
+ > :
255
+ Out
256
+
257
+ /**
258
+ * @since 3.16.0
259
+ * @experimental
260
+ */
261
+ export type PlanInput<Plans extends ReadonlyArray<any>, Out = unknown> = Plans extends
262
+ readonly [infer Plan, ...infer Rest] ?
263
+ PlanInput<Rest, Out & (Plan extends ExecutionPlan<infer T> ? T["input"] : unknown)> :
264
+ Out
265
+ }
266
+
267
+ const Proto: Omit<ExecutionPlan<any>, "steps"> = {
268
+ [TypeId]: TypeId,
269
+ get withRequirements() {
270
+ const self = this as any as ExecutionPlan<any>
271
+ return Effect.contextWith((context: Context.Context<any>) =>
272
+ makeProto(self.steps.map((step) => ({
273
+ ...step,
274
+ provide: Layer.isLayer(step.provide) ? Layer.provide(step.provide, Layer.succeedContext(context)) : step.provide
275
+ })) as any)
276
+ )
277
+ },
278
+ pipe() {
279
+ return pipeArguments(this, arguments)
280
+ }
281
+ }
282
+
283
+ const makeProto = <Provides, In, PlanE, PlanR>(
284
+ steps: ExecutionPlan<{
285
+ provides: Provides
286
+ input: In
287
+ error: PlanE
288
+ requirements: PlanR
289
+ }>["steps"]
290
+ ) => {
291
+ const self = Object.create(Proto)
292
+ self.steps = steps
293
+ return self
294
+ }
295
+
296
+ /**
297
+ * @since 3.16.0
298
+ * @category Combining
299
+ * @experimental
300
+ */
301
+ export const merge = <const Plans extends NonEmptyReadonlyArray<ExecutionPlan<any>>>(
302
+ ...plans: Plans
303
+ ): ExecutionPlan<{
304
+ provides: make.PlanProvides<Plans>
305
+ input: make.PlanInput<Plans>
306
+ error: Plans[number] extends ExecutionPlan<infer T> ? T["error"] : never
307
+ requirements: Plans[number] extends ExecutionPlan<infer T> ? T["requirements"] : never
308
+ }> => makeProto(plans.flatMap((plan) => plan.steps) as any)
@@ -0,0 +1,119 @@
1
+ /**
2
+ * @since 2.0.0
3
+ */
4
+ import type { LazyArg } from "./Function.js"
5
+ import * as internal from "./internal/executionStrategy.js"
6
+
7
+ /**
8
+ * Describes a strategy for evaluating multiple effects, potentially in
9
+ * parallel.
10
+ *
11
+ * There are 3 possible execution strategies: `Sequential`, `Parallel`,
12
+ * `ParallelN`.
13
+ *
14
+ * @since 2.0.0
15
+ * @category models
16
+ */
17
+ export type ExecutionStrategy = Sequential | Parallel | ParallelN
18
+
19
+ /**
20
+ * Execute effects sequentially.
21
+ *
22
+ * @since 2.0.0
23
+ * @category models
24
+ */
25
+ export interface Sequential {
26
+ readonly _tag: "Sequential"
27
+ }
28
+
29
+ /**
30
+ * Execute effects in parallel.
31
+ *
32
+ * @since 2.0.0
33
+ * @category models
34
+ */
35
+ export interface Parallel {
36
+ readonly _tag: "Parallel"
37
+ }
38
+
39
+ /**
40
+ * Execute effects in parallel, up to the specified number of concurrent fibers.
41
+ *
42
+ * @since 2.0.0
43
+ * @category models
44
+ */
45
+ export interface ParallelN {
46
+ readonly _tag: "ParallelN"
47
+ readonly parallelism: number
48
+ }
49
+
50
+ /**
51
+ * Execute effects sequentially.
52
+ *
53
+ * @since 2.0.0
54
+ * @category constructors
55
+ */
56
+ export const sequential: ExecutionStrategy = internal.sequential
57
+
58
+ /**
59
+ * Execute effects in parallel.
60
+ *
61
+ * @since 2.0.0
62
+ * @category constructors
63
+ */
64
+ export const parallel: ExecutionStrategy = internal.parallel
65
+
66
+ /**
67
+ * Execute effects in parallel, up to the specified number of concurrent fibers.
68
+ *
69
+ * @since 2.0.0
70
+ * @category constructors
71
+ */
72
+ export const parallelN: (parallelism: number) => ExecutionStrategy = internal.parallelN
73
+
74
+ /**
75
+ * Returns `true` if the specified `ExecutionStrategy` is an instance of
76
+ * `Sequential`, `false` otherwise.
77
+ *
78
+ * @since 2.0.0
79
+ * @category refinements
80
+ */
81
+ export const isSequential: (self: ExecutionStrategy) => self is Sequential = internal.isSequential
82
+
83
+ /**
84
+ * Returns `true` if the specified `ExecutionStrategy` is an instance of
85
+ * `Sequential`, `false` otherwise.
86
+ *
87
+ * @since 2.0.0
88
+ * @category refinements
89
+ */
90
+ export const isParallel: (self: ExecutionStrategy) => self is Parallel = internal.isParallel
91
+
92
+ /**
93
+ * Returns `true` if the specified `ExecutionStrategy` is an instance of
94
+ * `Sequential`, `false` otherwise.
95
+ *
96
+ * @since 2.0.0
97
+ * @category refinements
98
+ */
99
+ export const isParallelN: (self: ExecutionStrategy) => self is ParallelN = internal.isParallelN
100
+
101
+ /**
102
+ * Folds over the specified `ExecutionStrategy` using the provided case
103
+ * functions.
104
+ *
105
+ * @since 2.0.0
106
+ * @category folding
107
+ */
108
+ export const match: {
109
+ <A>(options: {
110
+ readonly onSequential: LazyArg<A>
111
+ readonly onParallel: LazyArg<A>
112
+ readonly onParallelN: (n: number) => A
113
+ }): (self: ExecutionStrategy) => A
114
+ <A>(self: ExecutionStrategy, options: {
115
+ readonly onSequential: LazyArg<A>
116
+ readonly onParallel: LazyArg<A>
117
+ readonly onParallelN: (n: number) => A
118
+ }): A
119
+ } = internal.match