effect 2.0.0-next.57 → 2.0.0-next.59

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 (1278) hide show
  1. package/BigDecimal.js +875 -0
  2. package/BigDecimal.js.map +1 -0
  3. package/BigInt.js.map +1 -0
  4. package/Boolean.js.map +1 -0
  5. package/Brand.js.map +1 -0
  6. package/Cache.js.map +1 -0
  7. package/Cause.js.map +1 -0
  8. package/Channel.js.map +1 -0
  9. package/ChildExecutorDecision.js.map +1 -0
  10. package/Chunk.js +1062 -0
  11. package/Chunk.js.map +1 -0
  12. package/Clock.js.map +1 -0
  13. package/Config.js.map +1 -0
  14. package/ConfigError.js.map +1 -0
  15. package/ConfigProvider.js.map +1 -0
  16. package/ConfigProviderPathPatch.js.map +1 -0
  17. package/Console.js.map +1 -0
  18. package/Context.js.map +1 -0
  19. package/Data.js.map +1 -0
  20. package/DefaultServices.js.map +1 -0
  21. package/Deferred.js.map +1 -0
  22. package/Differ.js +164 -0
  23. package/Differ.js.map +1 -0
  24. package/Duration.js.map +1 -0
  25. package/Effect.js +2665 -0
  26. package/Effect.js.map +1 -0
  27. package/Effectable.js.map +1 -0
  28. package/Either.js.map +1 -0
  29. package/Encoding.js.map +1 -0
  30. package/Equal.js.map +1 -0
  31. package/Equivalence.js.map +1 -0
  32. package/ExecutionStrategy.js.map +1 -0
  33. package/Exit.js.map +1 -0
  34. package/Fiber.js.map +1 -0
  35. package/FiberId.js.map +1 -0
  36. package/FiberRef.js.map +1 -0
  37. package/FiberRefs.js +115 -0
  38. package/FiberRefs.js.map +1 -0
  39. package/FiberRefsPatch.js.map +1 -0
  40. package/FiberStatus.js.map +1 -0
  41. package/Function.js.map +1 -0
  42. package/GlobalValue.js.map +1 -0
  43. package/GroupBy.js.map +1 -0
  44. package/HKT.js.map +1 -0
  45. package/Hash.js.map +1 -0
  46. package/HashMap.js +287 -0
  47. package/HashMap.js.map +1 -0
  48. package/HashSet.js +223 -0
  49. package/HashSet.js.map +1 -0
  50. package/Inspectable.js +34 -0
  51. package/Inspectable.js.map +1 -0
  52. package/KeyedPool.js.map +1 -0
  53. package/Layer.js +579 -0
  54. package/Layer.js.map +1 -0
  55. package/List.js +802 -0
  56. package/List.js.map +1 -0
  57. package/LogLevel.js.map +1 -0
  58. package/LogSpan.js.map +1 -0
  59. package/Logger.js.map +1 -0
  60. package/Match.js.map +1 -0
  61. package/MergeDecision.js.map +1 -0
  62. package/MergeState.js.map +1 -0
  63. package/MergeStrategy.js.map +1 -0
  64. package/Metric.js +426 -0
  65. package/Metric.js.map +1 -0
  66. package/MetricBoundaries.js +64 -0
  67. package/MetricBoundaries.js.map +1 -0
  68. package/MetricHook.js.map +1 -0
  69. package/MetricKey.js +94 -0
  70. package/MetricKey.js.map +1 -0
  71. package/MetricKeyType.js.map +1 -0
  72. package/MetricLabel.js.map +1 -0
  73. package/MetricPair.js.map +1 -0
  74. package/MetricPolling.js.map +1 -0
  75. package/MetricRegistry.js +47 -0
  76. package/MetricRegistry.js.map +1 -0
  77. package/MetricState.js.map +1 -0
  78. package/MutableHashMap.js +288 -0
  79. package/MutableHashMap.js.map +1 -0
  80. package/MutableHashSet.js +108 -0
  81. package/MutableHashSet.js.map +1 -0
  82. package/MutableList.js +285 -0
  83. package/MutableList.js.map +1 -0
  84. package/MutableQueue.js.map +1 -0
  85. package/MutableRef.js.map +1 -0
  86. package/NonEmptyIterable.js.map +1 -0
  87. package/Number.js.map +1 -0
  88. package/Option.js +950 -0
  89. package/Option.js.map +1 -0
  90. package/Order.js.map +1 -0
  91. package/Ordering.js.map +1 -0
  92. package/Pipeable.js.map +1 -0
  93. package/Pool.js.map +1 -0
  94. package/Predicate.js.map +1 -0
  95. package/PrimaryKey.js.map +1 -0
  96. package/PubSub.js.map +1 -0
  97. package/Queue.js.map +1 -0
  98. package/Random.js.map +1 -0
  99. package/ReadonlyArray.js +1392 -0
  100. package/ReadonlyArray.js.map +1 -0
  101. package/ReadonlyRecord.js +802 -0
  102. package/ReadonlyRecord.js.map +1 -0
  103. package/RedBlackTree.js +290 -0
  104. package/RedBlackTree.js.map +1 -0
  105. package/Ref.js.map +1 -0
  106. package/Reloadable.js.map +1 -0
  107. package/Request.js.map +1 -0
  108. package/RequestBlock.js.map +1 -0
  109. package/RequestResolver.js.map +1 -0
  110. package/Resource.js.map +1 -0
  111. package/Runtime.js.map +1 -0
  112. package/RuntimeFlags.js.map +1 -0
  113. package/RuntimeFlagsPatch.js.map +1 -0
  114. package/STM.js.map +1 -0
  115. package/Schedule.js.map +1 -0
  116. package/ScheduleDecision.js.map +1 -0
  117. package/ScheduleInterval.js.map +1 -0
  118. package/ScheduleIntervals.js +109 -0
  119. package/ScheduleIntervals.js.map +1 -0
  120. package/Scheduler.js.map +1 -0
  121. package/Scope.js.map +1 -0
  122. package/ScopedCache.js.map +1 -0
  123. package/ScopedRef.js.map +1 -0
  124. package/Secret.js +68 -0
  125. package/Secret.js.map +1 -0
  126. package/SingleProducerAsyncInput.js.map +1 -0
  127. package/Sink.js.map +1 -0
  128. package/SortedMap.js +190 -0
  129. package/SortedMap.js.map +1 -0
  130. package/SortedSet.js +269 -0
  131. package/SortedSet.js.map +1 -0
  132. package/Stream.js +2581 -0
  133. package/Stream.js.map +1 -0
  134. package/StreamEmit.js.map +1 -0
  135. package/StreamHaltStrategy.js.map +1 -0
  136. package/Streamable.js.map +1 -0
  137. package/String.js.map +1 -0
  138. package/Struct.js.map +1 -0
  139. package/SubscriptionRef.js.map +1 -0
  140. package/Supervisor.js.map +1 -0
  141. package/Symbol.js.map +1 -0
  142. package/SynchronizedRef.js.map +1 -0
  143. package/TArray.js +338 -0
  144. package/TArray.js.map +1 -0
  145. package/TDeferred.js.map +1 -0
  146. package/TMap.js +310 -0
  147. package/TMap.js.map +1 -0
  148. package/TPriorityQueue.js +167 -0
  149. package/TPriorityQueue.js.map +1 -0
  150. package/TPubSub.js.map +1 -0
  151. package/TQueue.js.map +1 -0
  152. package/TRandom.js.map +1 -0
  153. package/TReentrantLock.js.map +1 -0
  154. package/TRef.js.map +1 -0
  155. package/TSemaphore.js.map +1 -0
  156. package/TSet.js +232 -0
  157. package/TSet.js.map +1 -0
  158. package/Take.js.map +1 -0
  159. package/TestAnnotation.js.map +1 -0
  160. package/TestAnnotationMap.js.map +1 -0
  161. package/TestAnnotations.js.map +1 -0
  162. package/TestClock.js.map +1 -0
  163. package/TestConfig.js.map +1 -0
  164. package/TestContext.js.map +1 -0
  165. package/TestLive.js.map +1 -0
  166. package/TestServices.js.map +1 -0
  167. package/TestSized.js.map +1 -0
  168. package/Tracer.js.map +1 -0
  169. package/Tuple.js.map +1 -0
  170. package/Types.js.map +1 -0
  171. package/Unify.js.map +1 -0
  172. package/UpstreamPullRequest.js.map +1 -0
  173. package/UpstreamPullStrategy.js.map +1 -0
  174. package/Utils.js +289 -0
  175. package/Utils.js.map +1 -0
  176. package/dist/dts/Chunk.d.ts +32 -15
  177. package/dist/dts/Chunk.d.ts.map +1 -1
  178. package/dist/dts/Config.d.ts +2 -2
  179. package/dist/dts/Config.d.ts.map +1 -1
  180. package/dist/dts/Differ.d.ts +30 -0
  181. package/dist/dts/Differ.d.ts.map +1 -1
  182. package/dist/dts/Effect.d.ts +36 -18
  183. package/dist/dts/Effect.d.ts.map +1 -1
  184. package/dist/dts/FiberRef.d.ts +1 -1
  185. package/dist/dts/FiberRef.d.ts.map +1 -1
  186. package/dist/dts/FiberRefs.d.ts +35 -1
  187. package/dist/dts/FiberRefs.d.ts.map +1 -1
  188. package/dist/dts/HashMap.d.ts +1 -1
  189. package/dist/dts/HashSet.d.ts +1 -1
  190. package/dist/dts/Inspectable.d.ts +4 -0
  191. package/dist/dts/Inspectable.d.ts.map +1 -1
  192. package/dist/dts/Layer.d.ts +35 -0
  193. package/dist/dts/Layer.d.ts.map +1 -1
  194. package/dist/dts/List.d.ts +13 -9
  195. package/dist/dts/List.d.ts.map +1 -1
  196. package/dist/dts/Metric.d.ts +9 -11
  197. package/dist/dts/Metric.d.ts.map +1 -1
  198. package/dist/dts/MetricBoundaries.d.ts +2 -3
  199. package/dist/dts/MetricBoundaries.d.ts.map +1 -1
  200. package/dist/dts/MetricKey.d.ts +4 -16
  201. package/dist/dts/MetricKey.d.ts.map +1 -1
  202. package/dist/dts/MetricKeyType.d.ts +2 -3
  203. package/dist/dts/MetricKeyType.d.ts.map +1 -1
  204. package/dist/dts/MetricRegistry.d.ts +1 -5
  205. package/dist/dts/MetricRegistry.d.ts.map +1 -1
  206. package/dist/dts/MetricState.d.ts +6 -8
  207. package/dist/dts/MetricState.d.ts.map +1 -1
  208. package/dist/dts/MutableHashMap.d.ts +11 -9
  209. package/dist/dts/MutableHashMap.d.ts.map +1 -1
  210. package/dist/dts/MutableHashSet.d.ts +2 -0
  211. package/dist/dts/MutableHashSet.d.ts.map +1 -1
  212. package/dist/dts/MutableList.d.ts +1 -1
  213. package/dist/dts/Option.d.ts +1 -1
  214. package/dist/dts/ReadonlyArray.d.ts +66 -50
  215. package/dist/dts/ReadonlyArray.d.ts.map +1 -1
  216. package/dist/dts/ReadonlyRecord.d.ts +11 -4
  217. package/dist/dts/ReadonlyRecord.d.ts.map +1 -1
  218. package/dist/dts/RedBlackTree.d.ts +1 -1
  219. package/dist/dts/ScheduleIntervals.d.ts +1 -1
  220. package/dist/dts/Secret.d.ts +63 -0
  221. package/dist/dts/Secret.d.ts.map +1 -0
  222. package/dist/dts/SortedMap.d.ts +2 -0
  223. package/dist/dts/SortedMap.d.ts.map +1 -1
  224. package/dist/dts/SortedSet.d.ts +2 -0
  225. package/dist/dts/SortedSet.d.ts.map +1 -1
  226. package/dist/dts/Stream.d.ts +1 -1
  227. package/dist/dts/TArray.d.ts +1 -1
  228. package/dist/dts/TMap.d.ts +1 -1
  229. package/dist/dts/TPriorityQueue.d.ts +1 -1
  230. package/dist/dts/TSet.d.ts +1 -1
  231. package/dist/dts/index.d.ts +4 -4
  232. package/dist/dts/index.d.ts.map +1 -1
  233. package/dist/dts/internal/differ/readonlyArrayPatch.d.ts +2 -0
  234. package/dist/dts/internal/differ/readonlyArrayPatch.d.ts.map +1 -0
  235. package/dist/dts/internal/metric/keyType.d.ts +2 -2
  236. package/dist/dts/internal/metric/keyType.d.ts.map +1 -1
  237. package/dist/dts/internal/metric/state.d.ts.map +1 -1
  238. package/dist/dts/internal/secret.d.ts +2 -0
  239. package/dist/dts/internal/secret.d.ts.map +1 -0
  240. package/dist/dts/internal/version.d.ts +1 -1
  241. package/dist/esm/BigDecimal.js +1 -1
  242. package/dist/esm/BigDecimal.js.map +1 -1
  243. package/dist/esm/Chunk.js +19 -7
  244. package/dist/esm/Chunk.js.map +1 -1
  245. package/dist/esm/Config.js.map +1 -1
  246. package/dist/esm/Differ.js +9 -0
  247. package/dist/esm/Differ.js.map +1 -1
  248. package/dist/esm/Effect.js +35 -14
  249. package/dist/esm/Effect.js.map +1 -1
  250. package/dist/esm/FiberRef.js.map +1 -1
  251. package/dist/esm/FiberRefs.js +8 -1
  252. package/dist/esm/FiberRefs.js.map +1 -1
  253. package/dist/esm/HashMap.js +1 -1
  254. package/dist/esm/HashSet.js +1 -1
  255. package/dist/esm/Inspectable.js +3 -1
  256. package/dist/esm/Inspectable.js.map +1 -1
  257. package/dist/esm/Layer.js +23 -0
  258. package/dist/esm/Layer.js.map +1 -1
  259. package/dist/esm/List.js +1 -1
  260. package/dist/esm/List.js.map +1 -1
  261. package/dist/esm/Metric.js +1 -1
  262. package/dist/esm/Metric.js.map +1 -1
  263. package/dist/esm/MetricBoundaries.js +1 -1
  264. package/dist/esm/MetricBoundaries.js.map +1 -1
  265. package/dist/esm/MetricKey.js +0 -7
  266. package/dist/esm/MetricKey.js.map +1 -1
  267. package/dist/esm/MetricKeyType.js.map +1 -1
  268. package/dist/esm/MetricRegistry.js +3 -0
  269. package/dist/esm/MetricRegistry.js.map +1 -1
  270. package/dist/esm/MetricState.js.map +1 -1
  271. package/dist/esm/MutableHashMap.js +178 -31
  272. package/dist/esm/MutableHashMap.js.map +1 -1
  273. package/dist/esm/MutableHashSet.js +2 -0
  274. package/dist/esm/MutableHashSet.js.map +1 -1
  275. package/dist/esm/MutableList.js +1 -1
  276. package/dist/esm/Option.js +1 -1
  277. package/dist/esm/ReadonlyArray.js +33 -12
  278. package/dist/esm/ReadonlyArray.js.map +1 -1
  279. package/dist/esm/ReadonlyRecord.js +12 -5
  280. package/dist/esm/ReadonlyRecord.js.map +1 -1
  281. package/dist/esm/RedBlackTree.js +1 -1
  282. package/dist/esm/ScheduleIntervals.js +1 -1
  283. package/dist/esm/Secret.js +37 -0
  284. package/dist/esm/Secret.js.map +1 -0
  285. package/dist/esm/SortedMap.js +2 -0
  286. package/dist/esm/SortedMap.js.map +1 -1
  287. package/dist/esm/SortedSet.js +2 -0
  288. package/dist/esm/SortedSet.js.map +1 -1
  289. package/dist/esm/Stream.js +1 -1
  290. package/dist/esm/TArray.js +1 -1
  291. package/dist/esm/TMap.js +1 -1
  292. package/dist/esm/TPriorityQueue.js +1 -1
  293. package/dist/esm/TSet.js +1 -1
  294. package/dist/esm/Utils.js +0 -1
  295. package/dist/esm/Utils.js.map +1 -1
  296. package/dist/esm/index.js +4 -4
  297. package/dist/esm/index.js.map +1 -1
  298. package/dist/esm/internal/config.js +2 -2
  299. package/dist/esm/internal/config.js.map +1 -1
  300. package/dist/esm/internal/console.js +2 -0
  301. package/dist/esm/internal/console.js.map +1 -1
  302. package/dist/esm/internal/core-effect.js +1 -3
  303. package/dist/esm/internal/core-effect.js.map +1 -1
  304. package/dist/esm/internal/core.js +9 -2
  305. package/dist/esm/internal/core.js.map +1 -1
  306. package/dist/esm/internal/differ/chunkPatch.js +3 -0
  307. package/dist/esm/internal/differ/chunkPatch.js.map +1 -1
  308. package/dist/esm/internal/differ/contextPatch.js +3 -0
  309. package/dist/esm/internal/differ/contextPatch.js.map +1 -1
  310. package/dist/esm/internal/differ/hashMapPatch.js +3 -0
  311. package/dist/esm/internal/differ/hashMapPatch.js.map +1 -1
  312. package/dist/esm/internal/differ/hashSetPatch.js +3 -0
  313. package/dist/esm/internal/differ/hashSetPatch.js.map +1 -1
  314. package/dist/esm/internal/differ/orPatch.js +3 -0
  315. package/dist/esm/internal/differ/orPatch.js.map +1 -1
  316. package/dist/esm/internal/differ/readonlyArrayPatch.js +127 -0
  317. package/dist/esm/internal/differ/readonlyArrayPatch.js.map +1 -0
  318. package/dist/esm/internal/differ.js +12 -0
  319. package/dist/esm/internal/differ.js.map +1 -1
  320. package/dist/esm/internal/fiberId.js +1 -1
  321. package/dist/esm/internal/fiberId.js.map +1 -1
  322. package/dist/esm/internal/fiberRefs/patch.js +2 -2
  323. package/dist/esm/internal/fiberRefs/patch.js.map +1 -1
  324. package/dist/esm/internal/fiberRefs.js +61 -28
  325. package/dist/esm/internal/fiberRefs.js.map +1 -1
  326. package/dist/esm/internal/fiberRuntime.js +47 -45
  327. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  328. package/dist/esm/internal/hashMap/node.js +0 -2
  329. package/dist/esm/internal/hashMap/node.js.map +1 -1
  330. package/dist/esm/internal/layer.js +19 -14
  331. package/dist/esm/internal/layer.js.map +1 -1
  332. package/dist/esm/internal/metric/boundaries.js +7 -5
  333. package/dist/esm/internal/metric/boundaries.js.map +1 -1
  334. package/dist/esm/internal/metric/hook.js +23 -25
  335. package/dist/esm/internal/metric/hook.js.map +1 -1
  336. package/dist/esm/internal/metric/key.js +9 -8
  337. package/dist/esm/internal/metric/key.js.map +1 -1
  338. package/dist/esm/internal/metric/keyType.js +13 -5
  339. package/dist/esm/internal/metric/keyType.js.map +1 -1
  340. package/dist/esm/internal/metric/label.js +3 -2
  341. package/dist/esm/internal/metric/label.js.map +1 -1
  342. package/dist/esm/internal/metric/registry.js +1 -2
  343. package/dist/esm/internal/metric/registry.js.map +1 -1
  344. package/dist/esm/internal/metric/state.js +9 -2
  345. package/dist/esm/internal/metric/state.js.map +1 -1
  346. package/dist/esm/internal/metric.js +27 -15
  347. package/dist/esm/internal/metric.js.map +1 -1
  348. package/dist/esm/internal/runtime.js +7 -11
  349. package/dist/esm/internal/runtime.js.map +1 -1
  350. package/dist/esm/internal/schedule.js +1 -1
  351. package/dist/esm/internal/schedule.js.map +1 -1
  352. package/dist/esm/internal/secret.js +53 -0
  353. package/dist/esm/internal/secret.js.map +1 -0
  354. package/dist/esm/internal/version.js +1 -1
  355. package/index.js +357 -0
  356. package/index.js.map +1 -0
  357. package/internal/Iterable.js.map +1 -0
  358. package/internal/blockedRequests.js.map +1 -0
  359. package/internal/cache.js.map +1 -0
  360. package/internal/cause.js.map +1 -0
  361. package/internal/channel/channelExecutor.js.map +1 -0
  362. package/internal/channel/channelState.js.map +1 -0
  363. package/internal/channel/childExecutorDecision.js.map +1 -0
  364. package/internal/channel/continuation.js.map +1 -0
  365. package/internal/channel/mergeDecision.js.map +1 -0
  366. package/internal/channel/mergeState.js.map +1 -0
  367. package/internal/channel/mergeStrategy.js.map +1 -0
  368. package/internal/channel/singleProducerAsyncInput.js.map +1 -0
  369. package/internal/channel/subexecutor.js.map +1 -0
  370. package/internal/channel/upstreamPullRequest.js.map +1 -0
  371. package/internal/channel/upstreamPullStrategy.js.map +1 -0
  372. package/internal/channel.js.map +1 -0
  373. package/internal/clock.js.map +1 -0
  374. package/internal/completedRequestMap.js.map +1 -0
  375. package/internal/concurrency.js.map +1 -0
  376. package/internal/config.js +356 -0
  377. package/internal/config.js.map +1 -0
  378. package/internal/configError.js.map +1 -0
  379. package/internal/configProvider/pathPatch.js.map +1 -0
  380. package/internal/configProvider.js.map +1 -0
  381. package/internal/console.js +103 -0
  382. package/internal/console.js.map +1 -0
  383. package/internal/context.js.map +1 -0
  384. package/internal/core-effect.js +837 -0
  385. package/internal/core-effect.js.map +1 -0
  386. package/internal/core-stream.js.map +1 -0
  387. package/internal/core.js +1758 -0
  388. package/internal/core.js.map +1 -0
  389. package/internal/data.js.map +1 -0
  390. package/internal/dataSource.js.map +1 -0
  391. package/internal/defaultServices/console.js.map +1 -0
  392. package/internal/defaultServices.js.map +1 -0
  393. package/internal/deferred.js.map +1 -0
  394. package/internal/differ/chunkPatch.js +163 -0
  395. package/internal/differ/chunkPatch.js.map +1 -0
  396. package/internal/differ/contextPatch.js +176 -0
  397. package/internal/differ/contextPatch.js.map +1 -0
  398. package/internal/differ/hashMapPatch.js +163 -0
  399. package/internal/differ/hashMapPatch.js.map +1 -0
  400. package/internal/differ/hashSetPatch.js +137 -0
  401. package/internal/differ/hashSetPatch.js.map +1 -0
  402. package/internal/differ/orPatch.js +208 -0
  403. package/internal/differ/orPatch.js.map +1 -0
  404. package/internal/differ/readonlyArrayPatch.js +160 -0
  405. package/internal/differ/readonlyArrayPatch.js.map +1 -0
  406. package/internal/differ.js +169 -0
  407. package/internal/differ.js.map +1 -0
  408. package/internal/effect/circular.js.map +1 -0
  409. package/internal/effectable.js.map +1 -0
  410. package/internal/either.js.map +1 -0
  411. package/internal/encoding/base64.js.map +1 -0
  412. package/internal/encoding/base64Url.js.map +1 -0
  413. package/internal/encoding/common.js.map +1 -0
  414. package/internal/encoding/hex.js.map +1 -0
  415. package/internal/executionStrategy.js.map +1 -0
  416. package/internal/fiber.js.map +1 -0
  417. package/internal/fiberId.js +259 -0
  418. package/internal/fiberId.js.map +1 -0
  419. package/internal/fiberMessage.js.map +1 -0
  420. package/internal/fiberRefs/patch.js +139 -0
  421. package/internal/fiberRefs/patch.js.map +1 -0
  422. package/internal/fiberRefs.js +227 -0
  423. package/internal/fiberRefs.js.map +1 -0
  424. package/internal/fiberRuntime.js +1921 -0
  425. package/internal/fiberRuntime.js.map +1 -0
  426. package/internal/fiberScope.js.map +1 -0
  427. package/internal/fiberStatus.js.map +1 -0
  428. package/internal/groupBy.js.map +1 -0
  429. package/internal/hashMap/array.js.map +1 -0
  430. package/internal/hashMap/bitwise.js.map +1 -0
  431. package/internal/hashMap/config.js.map +1 -0
  432. package/internal/hashMap/keySet.js.map +1 -0
  433. package/internal/hashMap/node.js +297 -0
  434. package/internal/hashMap/node.js.map +1 -0
  435. package/internal/hashMap.js.map +1 -0
  436. package/internal/hashSet.js.map +1 -0
  437. package/internal/keyedPool.js.map +1 -0
  438. package/internal/layer/circular.js.map +1 -0
  439. package/internal/layer.js +512 -0
  440. package/internal/layer.js.map +1 -0
  441. package/internal/logSpan.js.map +1 -0
  442. package/internal/logger-circular.js.map +1 -0
  443. package/internal/logger.js.map +1 -0
  444. package/internal/matcher.js.map +1 -0
  445. package/internal/metric/boundaries.js +77 -0
  446. package/internal/metric/boundaries.js.map +1 -0
  447. package/internal/metric/hook.js +387 -0
  448. package/internal/metric/hook.js.map +1 -0
  449. package/internal/metric/key.js +97 -0
  450. package/internal/metric/key.js.map +1 -0
  451. package/internal/metric/keyType.js +243 -0
  452. package/internal/metric/keyType.js.map +1 -0
  453. package/internal/metric/label.js +69 -0
  454. package/internal/metric/label.js.map +1 -0
  455. package/internal/metric/pair.js.map +1 -0
  456. package/internal/metric/polling.js.map +1 -0
  457. package/internal/metric/registry.js +137 -0
  458. package/internal/metric/registry.js.map +1 -0
  459. package/internal/metric/state.js +229 -0
  460. package/internal/metric/state.js.map +1 -0
  461. package/internal/metric.js +227 -0
  462. package/internal/metric.js.map +1 -0
  463. package/internal/opCodes/cause.js.map +1 -0
  464. package/internal/opCodes/channel.js.map +1 -0
  465. package/internal/opCodes/channelChildExecutorDecision.js.map +1 -0
  466. package/internal/opCodes/channelMergeDecision.js.map +1 -0
  467. package/internal/opCodes/channelMergeState.js.map +1 -0
  468. package/internal/opCodes/channelMergeStrategy.js.map +1 -0
  469. package/internal/opCodes/channelState.js.map +1 -0
  470. package/internal/opCodes/channelUpstreamPullRequest.js.map +1 -0
  471. package/internal/opCodes/channelUpstreamPullStrategy.js.map +1 -0
  472. package/internal/opCodes/config.js.map +1 -0
  473. package/internal/opCodes/configError.js.map +1 -0
  474. package/internal/opCodes/continuation.js.map +1 -0
  475. package/internal/opCodes/deferred.js.map +1 -0
  476. package/internal/opCodes/effect.js.map +1 -0
  477. package/internal/opCodes/layer.js.map +1 -0
  478. package/internal/opCodes/streamHaltStrategy.js.map +1 -0
  479. package/internal/option.js.map +1 -0
  480. package/internal/pool.js.map +1 -0
  481. package/internal/pubsub.js.map +1 -0
  482. package/internal/query.js.map +1 -0
  483. package/internal/queue.js.map +1 -0
  484. package/internal/random.js.map +1 -0
  485. package/internal/readonlyArray.js.map +1 -0
  486. package/internal/redBlackTree/iterator.js.map +1 -0
  487. package/internal/redBlackTree/node.js.map +1 -0
  488. package/internal/redBlackTree.js.map +1 -0
  489. package/internal/ref.js.map +1 -0
  490. package/internal/reloadable.js.map +1 -0
  491. package/internal/request.js.map +1 -0
  492. package/internal/resource.js.map +1 -0
  493. package/internal/ringBuffer.js.map +1 -0
  494. package/internal/runtime.js +288 -0
  495. package/internal/runtime.js.map +1 -0
  496. package/internal/runtimeFlags.js.map +1 -0
  497. package/internal/runtimeFlagsPatch.js.map +1 -0
  498. package/internal/schedule/decision.js.map +1 -0
  499. package/internal/schedule/interval.js.map +1 -0
  500. package/internal/schedule/intervals.js.map +1 -0
  501. package/internal/schedule.js +802 -0
  502. package/internal/schedule.js.map +1 -0
  503. package/internal/scopedCache.js.map +1 -0
  504. package/internal/scopedRef.js.map +1 -0
  505. package/internal/secret.js +90 -0
  506. package/internal/secret.js.map +1 -0
  507. package/internal/singleShotGen.js.map +1 -0
  508. package/internal/sink.js.map +1 -0
  509. package/internal/stack.js.map +1 -0
  510. package/internal/stm/core.js.map +1 -0
  511. package/internal/stm/opCodes/stm.js.map +1 -0
  512. package/internal/stm/opCodes/stmState.js.map +1 -0
  513. package/internal/stm/opCodes/strategy.js.map +1 -0
  514. package/internal/stm/opCodes/tExit.js.map +1 -0
  515. package/internal/stm/opCodes/tryCommit.js.map +1 -0
  516. package/internal/stm/stm/entry.js.map +1 -0
  517. package/internal/stm/stm/journal.js.map +1 -0
  518. package/internal/stm/stm/opCodes/stm.js.map +1 -0
  519. package/internal/stm/stm/opCodes/stmState.js.map +1 -0
  520. package/internal/stm/stm/opCodes/strategy.js.map +1 -0
  521. package/internal/stm/stm/opCodes/tExit.js.map +1 -0
  522. package/internal/stm/stm/opCodes/tryCommit.js.map +1 -0
  523. package/internal/stm/stm/stmState.js.map +1 -0
  524. package/internal/stm/stm/tExit.js.map +1 -0
  525. package/internal/stm/stm/tryCommit.js.map +1 -0
  526. package/internal/stm/stm/txnId.js.map +1 -0
  527. package/internal/stm/stm/versioned.js.map +1 -0
  528. package/internal/stm/stm.js.map +1 -0
  529. package/internal/stm/tArray.js.map +1 -0
  530. package/internal/stm/tDeferred.js.map +1 -0
  531. package/internal/stm/tMap.js.map +1 -0
  532. package/internal/stm/tPriorityQueue.js.map +1 -0
  533. package/internal/stm/tPubSub.js.map +1 -0
  534. package/internal/stm/tQueue.js.map +1 -0
  535. package/internal/stm/tRandom.js.map +1 -0
  536. package/internal/stm/tReentrantLock.js.map +1 -0
  537. package/internal/stm/tRef.js.map +1 -0
  538. package/internal/stm/tSemaphore.js.map +1 -0
  539. package/internal/stm/tSet.js.map +1 -0
  540. package/internal/stream/debounceState.js.map +1 -0
  541. package/internal/stream/emit.js.map +1 -0
  542. package/internal/stream/haltStrategy.js.map +1 -0
  543. package/internal/stream/handoff.js.map +1 -0
  544. package/internal/stream/handoffSignal.js.map +1 -0
  545. package/internal/stream/pull.js.map +1 -0
  546. package/internal/stream/sinkEndReason.js.map +1 -0
  547. package/internal/stream/zipAllState.js.map +1 -0
  548. package/internal/stream/zipChunksState.js.map +1 -0
  549. package/internal/stream.js.map +1 -0
  550. package/internal/string-utils.js.map +1 -0
  551. package/internal/subscriptionRef.js.map +1 -0
  552. package/internal/supervisor/patch.js.map +1 -0
  553. package/internal/supervisor.js.map +1 -0
  554. package/internal/synchronizedRef.js.map +1 -0
  555. package/internal/take.js.map +1 -0
  556. package/internal/testing/sleep.js.map +1 -0
  557. package/internal/testing/suspendedWarningData.js.map +1 -0
  558. package/internal/testing/warningData.js.map +1 -0
  559. package/internal/timeout.js.map +1 -0
  560. package/internal/tracer.js.map +1 -0
  561. package/internal/version.js +8 -0
  562. package/internal/version.js.map +1 -0
  563. package/package.json +154 -154
  564. package/src/BigDecimal.ts +1 -1
  565. package/src/Chunk.ts +50 -15
  566. package/src/Config.ts +2 -2
  567. package/src/Differ.ts +36 -0
  568. package/src/Effect.ts +46 -22
  569. package/src/FiberRef.ts +1 -1
  570. package/src/FiberRefs.ts +46 -2
  571. package/src/HashMap.ts +1 -1
  572. package/src/HashSet.ts +1 -1
  573. package/src/Inspectable.ts +3 -1
  574. package/src/Layer.ts +57 -0
  575. package/src/List.ts +17 -9
  576. package/src/Metric.ts +10 -12
  577. package/src/MetricBoundaries.ts +2 -3
  578. package/src/MetricKey.ts +4 -22
  579. package/src/MetricKeyType.ts +2 -3
  580. package/src/MetricRegistry.ts +1 -2
  581. package/src/MetricState.ts +6 -8
  582. package/src/MutableHashMap.ts +212 -46
  583. package/src/MutableHashSet.ts +2 -0
  584. package/src/MutableList.ts +1 -1
  585. package/src/Option.ts +1 -1
  586. package/src/ReadonlyArray.ts +134 -78
  587. package/src/ReadonlyRecord.ts +15 -5
  588. package/src/RedBlackTree.ts +1 -1
  589. package/src/ScheduleIntervals.ts +1 -1
  590. package/src/Secret.ts +75 -0
  591. package/src/SortedMap.ts +2 -0
  592. package/src/SortedSet.ts +2 -0
  593. package/src/Stream.ts +1 -1
  594. package/src/TArray.ts +1 -1
  595. package/src/TMap.ts +1 -1
  596. package/src/TPriorityQueue.ts +1 -1
  597. package/src/TSet.ts +1 -1
  598. package/src/index.ts +5 -5
  599. package/src/internal/config.ts +4 -4
  600. package/src/internal/console.ts +8 -0
  601. package/src/internal/core-effect.ts +1 -9
  602. package/src/internal/core.ts +15 -4
  603. package/src/internal/differ/chunkPatch.ts +3 -0
  604. package/src/internal/differ/contextPatch.ts +3 -0
  605. package/src/internal/differ/hashMapPatch.ts +3 -0
  606. package/src/internal/differ/hashSetPatch.ts +3 -0
  607. package/src/internal/differ/orPatch.ts +3 -0
  608. package/src/internal/differ/readonlyArrayPatch.ts +208 -0
  609. package/src/internal/differ.ts +12 -0
  610. package/src/internal/fiberId.ts +1 -1
  611. package/src/internal/fiberRefs/patch.ts +2 -2
  612. package/src/internal/fiberRefs.ts +101 -42
  613. package/src/internal/fiberRuntime.ts +62 -58
  614. package/src/internal/layer.ts +57 -30
  615. package/src/internal/metric/boundaries.ts +14 -11
  616. package/src/internal/metric/hook.ts +46 -59
  617. package/src/internal/metric/key.ts +19 -29
  618. package/src/internal/metric/keyType.ts +27 -17
  619. package/src/internal/metric/label.ts +5 -7
  620. package/src/internal/metric/registry.ts +2 -3
  621. package/src/internal/metric/state.ts +21 -12
  622. package/src/internal/metric.ts +44 -25
  623. package/src/internal/runtime.ts +11 -11
  624. package/src/internal/schedule.ts +1 -1
  625. package/src/internal/secret.ts +69 -0
  626. package/src/internal/version.ts +1 -1
  627. package/dist/cjs/BigDecimal.js +0 -875
  628. package/dist/cjs/BigDecimal.js.map +0 -1
  629. package/dist/cjs/BigInt.js.map +0 -1
  630. package/dist/cjs/Boolean.js.map +0 -1
  631. package/dist/cjs/Brand.js.map +0 -1
  632. package/dist/cjs/Cache.js.map +0 -1
  633. package/dist/cjs/Cause.js.map +0 -1
  634. package/dist/cjs/Channel.js.map +0 -1
  635. package/dist/cjs/ChildExecutorDecision.js.map +0 -1
  636. package/dist/cjs/Chunk.js +0 -1050
  637. package/dist/cjs/Chunk.js.map +0 -1
  638. package/dist/cjs/Clock.js.map +0 -1
  639. package/dist/cjs/Config.js.map +0 -1
  640. package/dist/cjs/ConfigError.js.map +0 -1
  641. package/dist/cjs/ConfigProvider.js.map +0 -1
  642. package/dist/cjs/ConfigProviderPathPatch.js.map +0 -1
  643. package/dist/cjs/ConfigSecret.js +0 -68
  644. package/dist/cjs/ConfigSecret.js.map +0 -1
  645. package/dist/cjs/Console.js.map +0 -1
  646. package/dist/cjs/Context.js.map +0 -1
  647. package/dist/cjs/Data.js.map +0 -1
  648. package/dist/cjs/DefaultServices.js.map +0 -1
  649. package/dist/cjs/Deferred.js.map +0 -1
  650. package/dist/cjs/Differ.js +0 -155
  651. package/dist/cjs/Differ.js.map +0 -1
  652. package/dist/cjs/Duration.js.map +0 -1
  653. package/dist/cjs/Effect.js +0 -2644
  654. package/dist/cjs/Effect.js.map +0 -1
  655. package/dist/cjs/Effectable.js.map +0 -1
  656. package/dist/cjs/Either.js.map +0 -1
  657. package/dist/cjs/Encoding.js.map +0 -1
  658. package/dist/cjs/Equal.js.map +0 -1
  659. package/dist/cjs/Equivalence.js.map +0 -1
  660. package/dist/cjs/ExecutionStrategy.js.map +0 -1
  661. package/dist/cjs/Exit.js.map +0 -1
  662. package/dist/cjs/Fiber.js.map +0 -1
  663. package/dist/cjs/FiberId.js.map +0 -1
  664. package/dist/cjs/FiberRef.js.map +0 -1
  665. package/dist/cjs/FiberRefs.js +0 -108
  666. package/dist/cjs/FiberRefs.js.map +0 -1
  667. package/dist/cjs/FiberRefsPatch.js.map +0 -1
  668. package/dist/cjs/FiberStatus.js.map +0 -1
  669. package/dist/cjs/Function.js.map +0 -1
  670. package/dist/cjs/GlobalValue.js.map +0 -1
  671. package/dist/cjs/GroupBy.js.map +0 -1
  672. package/dist/cjs/HKT.js.map +0 -1
  673. package/dist/cjs/Hash.js.map +0 -1
  674. package/dist/cjs/HashMap.js +0 -287
  675. package/dist/cjs/HashMap.js.map +0 -1
  676. package/dist/cjs/HashSet.js +0 -223
  677. package/dist/cjs/HashSet.js.map +0 -1
  678. package/dist/cjs/Inspectable.js +0 -32
  679. package/dist/cjs/Inspectable.js.map +0 -1
  680. package/dist/cjs/KeyedPool.js.map +0 -1
  681. package/dist/cjs/Layer.js +0 -556
  682. package/dist/cjs/Layer.js.map +0 -1
  683. package/dist/cjs/List.js +0 -802
  684. package/dist/cjs/List.js.map +0 -1
  685. package/dist/cjs/LogLevel.js.map +0 -1
  686. package/dist/cjs/LogSpan.js.map +0 -1
  687. package/dist/cjs/Logger.js.map +0 -1
  688. package/dist/cjs/Match.js.map +0 -1
  689. package/dist/cjs/MergeDecision.js.map +0 -1
  690. package/dist/cjs/MergeState.js.map +0 -1
  691. package/dist/cjs/MergeStrategy.js.map +0 -1
  692. package/dist/cjs/Metric.js +0 -426
  693. package/dist/cjs/Metric.js.map +0 -1
  694. package/dist/cjs/MetricBoundaries.js +0 -64
  695. package/dist/cjs/MetricBoundaries.js.map +0 -1
  696. package/dist/cjs/MetricHook.js.map +0 -1
  697. package/dist/cjs/MetricKey.js +0 -101
  698. package/dist/cjs/MetricKey.js.map +0 -1
  699. package/dist/cjs/MetricKeyType.js.map +0 -1
  700. package/dist/cjs/MetricLabel.js.map +0 -1
  701. package/dist/cjs/MetricPair.js.map +0 -1
  702. package/dist/cjs/MetricPolling.js.map +0 -1
  703. package/dist/cjs/MetricRegistry.js +0 -43
  704. package/dist/cjs/MetricRegistry.js.map +0 -1
  705. package/dist/cjs/MetricState.js.map +0 -1
  706. package/dist/cjs/MutableHashMap.js +0 -141
  707. package/dist/cjs/MutableHashMap.js.map +0 -1
  708. package/dist/cjs/MutableHashSet.js +0 -106
  709. package/dist/cjs/MutableHashSet.js.map +0 -1
  710. package/dist/cjs/MutableList.js +0 -285
  711. package/dist/cjs/MutableList.js.map +0 -1
  712. package/dist/cjs/MutableQueue.js.map +0 -1
  713. package/dist/cjs/MutableRef.js.map +0 -1
  714. package/dist/cjs/NonEmptyIterable.js.map +0 -1
  715. package/dist/cjs/Number.js.map +0 -1
  716. package/dist/cjs/Option.js +0 -950
  717. package/dist/cjs/Option.js.map +0 -1
  718. package/dist/cjs/Order.js.map +0 -1
  719. package/dist/cjs/Ordering.js.map +0 -1
  720. package/dist/cjs/Pipeable.js.map +0 -1
  721. package/dist/cjs/Pool.js.map +0 -1
  722. package/dist/cjs/Predicate.js.map +0 -1
  723. package/dist/cjs/PrimaryKey.js.map +0 -1
  724. package/dist/cjs/PubSub.js.map +0 -1
  725. package/dist/cjs/Queue.js.map +0 -1
  726. package/dist/cjs/Random.js.map +0 -1
  727. package/dist/cjs/ReadonlyArray.js +0 -1370
  728. package/dist/cjs/ReadonlyArray.js.map +0 -1
  729. package/dist/cjs/ReadonlyRecord.js +0 -795
  730. package/dist/cjs/ReadonlyRecord.js.map +0 -1
  731. package/dist/cjs/RedBlackTree.js +0 -290
  732. package/dist/cjs/RedBlackTree.js.map +0 -1
  733. package/dist/cjs/Ref.js.map +0 -1
  734. package/dist/cjs/Reloadable.js.map +0 -1
  735. package/dist/cjs/Request.js.map +0 -1
  736. package/dist/cjs/RequestBlock.js.map +0 -1
  737. package/dist/cjs/RequestResolver.js.map +0 -1
  738. package/dist/cjs/Resource.js.map +0 -1
  739. package/dist/cjs/Runtime.js.map +0 -1
  740. package/dist/cjs/RuntimeFlags.js.map +0 -1
  741. package/dist/cjs/RuntimeFlagsPatch.js.map +0 -1
  742. package/dist/cjs/STM.js.map +0 -1
  743. package/dist/cjs/Schedule.js.map +0 -1
  744. package/dist/cjs/ScheduleDecision.js.map +0 -1
  745. package/dist/cjs/ScheduleInterval.js.map +0 -1
  746. package/dist/cjs/ScheduleIntervals.js +0 -109
  747. package/dist/cjs/ScheduleIntervals.js.map +0 -1
  748. package/dist/cjs/Scheduler.js.map +0 -1
  749. package/dist/cjs/Scope.js.map +0 -1
  750. package/dist/cjs/ScopedCache.js.map +0 -1
  751. package/dist/cjs/ScopedRef.js.map +0 -1
  752. package/dist/cjs/SingleProducerAsyncInput.js.map +0 -1
  753. package/dist/cjs/Sink.js.map +0 -1
  754. package/dist/cjs/SortedMap.js +0 -188
  755. package/dist/cjs/SortedMap.js.map +0 -1
  756. package/dist/cjs/SortedSet.js +0 -267
  757. package/dist/cjs/SortedSet.js.map +0 -1
  758. package/dist/cjs/Stream.js +0 -2581
  759. package/dist/cjs/Stream.js.map +0 -1
  760. package/dist/cjs/StreamEmit.js.map +0 -1
  761. package/dist/cjs/StreamHaltStrategy.js.map +0 -1
  762. package/dist/cjs/Streamable.js.map +0 -1
  763. package/dist/cjs/String.js.map +0 -1
  764. package/dist/cjs/Struct.js.map +0 -1
  765. package/dist/cjs/SubscriptionRef.js.map +0 -1
  766. package/dist/cjs/Supervisor.js.map +0 -1
  767. package/dist/cjs/Symbol.js.map +0 -1
  768. package/dist/cjs/SynchronizedRef.js.map +0 -1
  769. package/dist/cjs/TArray.js +0 -338
  770. package/dist/cjs/TArray.js.map +0 -1
  771. package/dist/cjs/TDeferred.js.map +0 -1
  772. package/dist/cjs/TMap.js +0 -310
  773. package/dist/cjs/TMap.js.map +0 -1
  774. package/dist/cjs/TPriorityQueue.js +0 -167
  775. package/dist/cjs/TPriorityQueue.js.map +0 -1
  776. package/dist/cjs/TPubSub.js.map +0 -1
  777. package/dist/cjs/TQueue.js.map +0 -1
  778. package/dist/cjs/TRandom.js.map +0 -1
  779. package/dist/cjs/TReentrantLock.js.map +0 -1
  780. package/dist/cjs/TRef.js.map +0 -1
  781. package/dist/cjs/TSemaphore.js.map +0 -1
  782. package/dist/cjs/TSet.js +0 -232
  783. package/dist/cjs/TSet.js.map +0 -1
  784. package/dist/cjs/Take.js.map +0 -1
  785. package/dist/cjs/TestAnnotation.js.map +0 -1
  786. package/dist/cjs/TestAnnotationMap.js.map +0 -1
  787. package/dist/cjs/TestAnnotations.js.map +0 -1
  788. package/dist/cjs/TestClock.js.map +0 -1
  789. package/dist/cjs/TestConfig.js.map +0 -1
  790. package/dist/cjs/TestContext.js.map +0 -1
  791. package/dist/cjs/TestLive.js.map +0 -1
  792. package/dist/cjs/TestServices.js.map +0 -1
  793. package/dist/cjs/TestSized.js.map +0 -1
  794. package/dist/cjs/Tracer.js.map +0 -1
  795. package/dist/cjs/Tuple.js.map +0 -1
  796. package/dist/cjs/Types.js.map +0 -1
  797. package/dist/cjs/Unify.js.map +0 -1
  798. package/dist/cjs/UpstreamPullRequest.js.map +0 -1
  799. package/dist/cjs/UpstreamPullStrategy.js.map +0 -1
  800. package/dist/cjs/Utils.js +0 -290
  801. package/dist/cjs/Utils.js.map +0 -1
  802. package/dist/cjs/index.js +0 -357
  803. package/dist/cjs/index.js.map +0 -1
  804. package/dist/cjs/internal/Iterable.js.map +0 -1
  805. package/dist/cjs/internal/blockedRequests.js.map +0 -1
  806. package/dist/cjs/internal/cache.js.map +0 -1
  807. package/dist/cjs/internal/cause.js.map +0 -1
  808. package/dist/cjs/internal/channel/channelExecutor.js.map +0 -1
  809. package/dist/cjs/internal/channel/channelState.js.map +0 -1
  810. package/dist/cjs/internal/channel/childExecutorDecision.js.map +0 -1
  811. package/dist/cjs/internal/channel/continuation.js.map +0 -1
  812. package/dist/cjs/internal/channel/mergeDecision.js.map +0 -1
  813. package/dist/cjs/internal/channel/mergeState.js.map +0 -1
  814. package/dist/cjs/internal/channel/mergeStrategy.js.map +0 -1
  815. package/dist/cjs/internal/channel/singleProducerAsyncInput.js.map +0 -1
  816. package/dist/cjs/internal/channel/subexecutor.js.map +0 -1
  817. package/dist/cjs/internal/channel/upstreamPullRequest.js.map +0 -1
  818. package/dist/cjs/internal/channel/upstreamPullStrategy.js.map +0 -1
  819. package/dist/cjs/internal/channel.js.map +0 -1
  820. package/dist/cjs/internal/clock.js.map +0 -1
  821. package/dist/cjs/internal/completedRequestMap.js.map +0 -1
  822. package/dist/cjs/internal/concurrency.js.map +0 -1
  823. package/dist/cjs/internal/config.js +0 -356
  824. package/dist/cjs/internal/config.js.map +0 -1
  825. package/dist/cjs/internal/configError.js.map +0 -1
  826. package/dist/cjs/internal/configProvider/pathPatch.js.map +0 -1
  827. package/dist/cjs/internal/configProvider.js.map +0 -1
  828. package/dist/cjs/internal/configSecret.js +0 -92
  829. package/dist/cjs/internal/configSecret.js.map +0 -1
  830. package/dist/cjs/internal/console.js +0 -100
  831. package/dist/cjs/internal/console.js.map +0 -1
  832. package/dist/cjs/internal/context.js.map +0 -1
  833. package/dist/cjs/internal/core-effect.js +0 -839
  834. package/dist/cjs/internal/core-effect.js.map +0 -1
  835. package/dist/cjs/internal/core-stream.js.map +0 -1
  836. package/dist/cjs/internal/core.js +0 -1750
  837. package/dist/cjs/internal/core.js.map +0 -1
  838. package/dist/cjs/internal/data.js.map +0 -1
  839. package/dist/cjs/internal/dataSource.js.map +0 -1
  840. package/dist/cjs/internal/defaultServices/console.js.map +0 -1
  841. package/dist/cjs/internal/defaultServices.js.map +0 -1
  842. package/dist/cjs/internal/deferred.js.map +0 -1
  843. package/dist/cjs/internal/differ/chunkPatch.js +0 -160
  844. package/dist/cjs/internal/differ/chunkPatch.js.map +0 -1
  845. package/dist/cjs/internal/differ/contextPatch.js +0 -173
  846. package/dist/cjs/internal/differ/contextPatch.js.map +0 -1
  847. package/dist/cjs/internal/differ/hashMapPatch.js +0 -160
  848. package/dist/cjs/internal/differ/hashMapPatch.js.map +0 -1
  849. package/dist/cjs/internal/differ/hashSetPatch.js +0 -134
  850. package/dist/cjs/internal/differ/hashSetPatch.js.map +0 -1
  851. package/dist/cjs/internal/differ/orPatch.js +0 -205
  852. package/dist/cjs/internal/differ/orPatch.js.map +0 -1
  853. package/dist/cjs/internal/differ.js +0 -156
  854. package/dist/cjs/internal/differ.js.map +0 -1
  855. package/dist/cjs/internal/effect/circular.js.map +0 -1
  856. package/dist/cjs/internal/effectable.js.map +0 -1
  857. package/dist/cjs/internal/either.js.map +0 -1
  858. package/dist/cjs/internal/encoding/base64.js.map +0 -1
  859. package/dist/cjs/internal/encoding/base64Url.js.map +0 -1
  860. package/dist/cjs/internal/encoding/common.js.map +0 -1
  861. package/dist/cjs/internal/encoding/hex.js.map +0 -1
  862. package/dist/cjs/internal/executionStrategy.js.map +0 -1
  863. package/dist/cjs/internal/fiber.js.map +0 -1
  864. package/dist/cjs/internal/fiberId.js +0 -259
  865. package/dist/cjs/internal/fiberId.js.map +0 -1
  866. package/dist/cjs/internal/fiberMessage.js.map +0 -1
  867. package/dist/cjs/internal/fiberRefs/patch.js +0 -139
  868. package/dist/cjs/internal/fiberRefs/patch.js.map +0 -1
  869. package/dist/cjs/internal/fiberRefs.js +0 -194
  870. package/dist/cjs/internal/fiberRefs.js.map +0 -1
  871. package/dist/cjs/internal/fiberRuntime.js +0 -1920
  872. package/dist/cjs/internal/fiberRuntime.js.map +0 -1
  873. package/dist/cjs/internal/fiberScope.js.map +0 -1
  874. package/dist/cjs/internal/fiberStatus.js.map +0 -1
  875. package/dist/cjs/internal/groupBy.js.map +0 -1
  876. package/dist/cjs/internal/hashMap/array.js.map +0 -1
  877. package/dist/cjs/internal/hashMap/bitwise.js.map +0 -1
  878. package/dist/cjs/internal/hashMap/config.js.map +0 -1
  879. package/dist/cjs/internal/hashMap/keySet.js.map +0 -1
  880. package/dist/cjs/internal/hashMap/node.js +0 -299
  881. package/dist/cjs/internal/hashMap/node.js.map +0 -1
  882. package/dist/cjs/internal/hashMap.js.map +0 -1
  883. package/dist/cjs/internal/hashSet.js.map +0 -1
  884. package/dist/cjs/internal/keyedPool.js.map +0 -1
  885. package/dist/cjs/internal/layer/circular.js.map +0 -1
  886. package/dist/cjs/internal/layer.js +0 -507
  887. package/dist/cjs/internal/layer.js.map +0 -1
  888. package/dist/cjs/internal/logSpan.js.map +0 -1
  889. package/dist/cjs/internal/logger-circular.js.map +0 -1
  890. package/dist/cjs/internal/logger.js.map +0 -1
  891. package/dist/cjs/internal/matcher.js.map +0 -1
  892. package/dist/cjs/internal/metric/boundaries.js +0 -75
  893. package/dist/cjs/internal/metric/boundaries.js.map +0 -1
  894. package/dist/cjs/internal/metric/hook.js +0 -389
  895. package/dist/cjs/internal/metric/hook.js.map +0 -1
  896. package/dist/cjs/internal/metric/key.js +0 -96
  897. package/dist/cjs/internal/metric/key.js.map +0 -1
  898. package/dist/cjs/internal/metric/keyType.js +0 -235
  899. package/dist/cjs/internal/metric/keyType.js.map +0 -1
  900. package/dist/cjs/internal/metric/label.js +0 -68
  901. package/dist/cjs/internal/metric/label.js.map +0 -1
  902. package/dist/cjs/internal/metric/pair.js.map +0 -1
  903. package/dist/cjs/internal/metric/polling.js.map +0 -1
  904. package/dist/cjs/internal/metric/registry.js +0 -138
  905. package/dist/cjs/internal/metric/registry.js.map +0 -1
  906. package/dist/cjs/internal/metric/state.js +0 -222
  907. package/dist/cjs/internal/metric/state.js.map +0 -1
  908. package/dist/cjs/internal/metric.js +0 -215
  909. package/dist/cjs/internal/metric.js.map +0 -1
  910. package/dist/cjs/internal/opCodes/cause.js.map +0 -1
  911. package/dist/cjs/internal/opCodes/channel.js.map +0 -1
  912. package/dist/cjs/internal/opCodes/channelChildExecutorDecision.js.map +0 -1
  913. package/dist/cjs/internal/opCodes/channelMergeDecision.js.map +0 -1
  914. package/dist/cjs/internal/opCodes/channelMergeState.js.map +0 -1
  915. package/dist/cjs/internal/opCodes/channelMergeStrategy.js.map +0 -1
  916. package/dist/cjs/internal/opCodes/channelState.js.map +0 -1
  917. package/dist/cjs/internal/opCodes/channelUpstreamPullRequest.js.map +0 -1
  918. package/dist/cjs/internal/opCodes/channelUpstreamPullStrategy.js.map +0 -1
  919. package/dist/cjs/internal/opCodes/config.js.map +0 -1
  920. package/dist/cjs/internal/opCodes/configError.js.map +0 -1
  921. package/dist/cjs/internal/opCodes/continuation.js.map +0 -1
  922. package/dist/cjs/internal/opCodes/deferred.js.map +0 -1
  923. package/dist/cjs/internal/opCodes/effect.js.map +0 -1
  924. package/dist/cjs/internal/opCodes/layer.js.map +0 -1
  925. package/dist/cjs/internal/opCodes/streamHaltStrategy.js.map +0 -1
  926. package/dist/cjs/internal/option.js.map +0 -1
  927. package/dist/cjs/internal/pool.js.map +0 -1
  928. package/dist/cjs/internal/pubsub.js.map +0 -1
  929. package/dist/cjs/internal/query.js.map +0 -1
  930. package/dist/cjs/internal/queue.js.map +0 -1
  931. package/dist/cjs/internal/random.js.map +0 -1
  932. package/dist/cjs/internal/readonlyArray.js.map +0 -1
  933. package/dist/cjs/internal/redBlackTree/iterator.js.map +0 -1
  934. package/dist/cjs/internal/redBlackTree/node.js.map +0 -1
  935. package/dist/cjs/internal/redBlackTree.js.map +0 -1
  936. package/dist/cjs/internal/ref.js.map +0 -1
  937. package/dist/cjs/internal/reloadable.js.map +0 -1
  938. package/dist/cjs/internal/request.js.map +0 -1
  939. package/dist/cjs/internal/resource.js.map +0 -1
  940. package/dist/cjs/internal/ringBuffer.js.map +0 -1
  941. package/dist/cjs/internal/runtime.js +0 -292
  942. package/dist/cjs/internal/runtime.js.map +0 -1
  943. package/dist/cjs/internal/runtimeFlags.js.map +0 -1
  944. package/dist/cjs/internal/runtimeFlagsPatch.js.map +0 -1
  945. package/dist/cjs/internal/schedule/decision.js.map +0 -1
  946. package/dist/cjs/internal/schedule/interval.js.map +0 -1
  947. package/dist/cjs/internal/schedule/intervals.js.map +0 -1
  948. package/dist/cjs/internal/schedule.js +0 -802
  949. package/dist/cjs/internal/schedule.js.map +0 -1
  950. package/dist/cjs/internal/scopedCache.js.map +0 -1
  951. package/dist/cjs/internal/scopedRef.js.map +0 -1
  952. package/dist/cjs/internal/singleShotGen.js.map +0 -1
  953. package/dist/cjs/internal/sink.js.map +0 -1
  954. package/dist/cjs/internal/stack.js.map +0 -1
  955. package/dist/cjs/internal/stm/core.js.map +0 -1
  956. package/dist/cjs/internal/stm/opCodes/stm.js.map +0 -1
  957. package/dist/cjs/internal/stm/opCodes/stmState.js.map +0 -1
  958. package/dist/cjs/internal/stm/opCodes/strategy.js.map +0 -1
  959. package/dist/cjs/internal/stm/opCodes/tExit.js.map +0 -1
  960. package/dist/cjs/internal/stm/opCodes/tryCommit.js.map +0 -1
  961. package/dist/cjs/internal/stm/stm/entry.js.map +0 -1
  962. package/dist/cjs/internal/stm/stm/journal.js.map +0 -1
  963. package/dist/cjs/internal/stm/stm/opCodes/stm.js.map +0 -1
  964. package/dist/cjs/internal/stm/stm/opCodes/stmState.js.map +0 -1
  965. package/dist/cjs/internal/stm/stm/opCodes/strategy.js.map +0 -1
  966. package/dist/cjs/internal/stm/stm/opCodes/tExit.js.map +0 -1
  967. package/dist/cjs/internal/stm/stm/opCodes/tryCommit.js.map +0 -1
  968. package/dist/cjs/internal/stm/stm/stmState.js.map +0 -1
  969. package/dist/cjs/internal/stm/stm/tExit.js.map +0 -1
  970. package/dist/cjs/internal/stm/stm/tryCommit.js.map +0 -1
  971. package/dist/cjs/internal/stm/stm/txnId.js.map +0 -1
  972. package/dist/cjs/internal/stm/stm/versioned.js.map +0 -1
  973. package/dist/cjs/internal/stm/stm.js.map +0 -1
  974. package/dist/cjs/internal/stm/tArray.js.map +0 -1
  975. package/dist/cjs/internal/stm/tDeferred.js.map +0 -1
  976. package/dist/cjs/internal/stm/tMap.js.map +0 -1
  977. package/dist/cjs/internal/stm/tPriorityQueue.js.map +0 -1
  978. package/dist/cjs/internal/stm/tPubSub.js.map +0 -1
  979. package/dist/cjs/internal/stm/tQueue.js.map +0 -1
  980. package/dist/cjs/internal/stm/tRandom.js.map +0 -1
  981. package/dist/cjs/internal/stm/tReentrantLock.js.map +0 -1
  982. package/dist/cjs/internal/stm/tRef.js.map +0 -1
  983. package/dist/cjs/internal/stm/tSemaphore.js.map +0 -1
  984. package/dist/cjs/internal/stm/tSet.js.map +0 -1
  985. package/dist/cjs/internal/stream/debounceState.js.map +0 -1
  986. package/dist/cjs/internal/stream/emit.js.map +0 -1
  987. package/dist/cjs/internal/stream/haltStrategy.js.map +0 -1
  988. package/dist/cjs/internal/stream/handoff.js.map +0 -1
  989. package/dist/cjs/internal/stream/handoffSignal.js.map +0 -1
  990. package/dist/cjs/internal/stream/pull.js.map +0 -1
  991. package/dist/cjs/internal/stream/sinkEndReason.js.map +0 -1
  992. package/dist/cjs/internal/stream/zipAllState.js.map +0 -1
  993. package/dist/cjs/internal/stream/zipChunksState.js.map +0 -1
  994. package/dist/cjs/internal/stream.js.map +0 -1
  995. package/dist/cjs/internal/string-utils.js.map +0 -1
  996. package/dist/cjs/internal/subscriptionRef.js.map +0 -1
  997. package/dist/cjs/internal/supervisor/patch.js.map +0 -1
  998. package/dist/cjs/internal/supervisor.js.map +0 -1
  999. package/dist/cjs/internal/synchronizedRef.js.map +0 -1
  1000. package/dist/cjs/internal/take.js.map +0 -1
  1001. package/dist/cjs/internal/testing/sleep.js.map +0 -1
  1002. package/dist/cjs/internal/testing/suspendedWarningData.js.map +0 -1
  1003. package/dist/cjs/internal/testing/warningData.js.map +0 -1
  1004. package/dist/cjs/internal/timeout.js.map +0 -1
  1005. package/dist/cjs/internal/tracer.js.map +0 -1
  1006. package/dist/cjs/internal/version.js +0 -8
  1007. package/dist/cjs/internal/version.js.map +0 -1
  1008. package/dist/dts/ConfigSecret.d.ts +0 -64
  1009. package/dist/dts/ConfigSecret.d.ts.map +0 -1
  1010. package/dist/dts/internal/configSecret.d.ts +0 -2
  1011. package/dist/dts/internal/configSecret.d.ts.map +0 -1
  1012. package/dist/esm/ConfigSecret.js +0 -37
  1013. package/dist/esm/ConfigSecret.js.map +0 -1
  1014. package/dist/esm/internal/configSecret.js +0 -55
  1015. package/dist/esm/internal/configSecret.js.map +0 -1
  1016. package/src/ConfigSecret.ts +0 -76
  1017. package/src/internal/configSecret.ts +0 -70
  1018. /package/{dist/cjs/BigInt.js → BigInt.js} +0 -0
  1019. /package/{dist/cjs/Boolean.js → Boolean.js} +0 -0
  1020. /package/{dist/cjs/Brand.js → Brand.js} +0 -0
  1021. /package/{dist/cjs/Cache.js → Cache.js} +0 -0
  1022. /package/{dist/cjs/Cause.js → Cause.js} +0 -0
  1023. /package/{dist/cjs/Channel.js → Channel.js} +0 -0
  1024. /package/{dist/cjs/ChildExecutorDecision.js → ChildExecutorDecision.js} +0 -0
  1025. /package/{dist/cjs/Clock.js → Clock.js} +0 -0
  1026. /package/{dist/cjs/Config.js → Config.js} +0 -0
  1027. /package/{dist/cjs/ConfigError.js → ConfigError.js} +0 -0
  1028. /package/{dist/cjs/ConfigProvider.js → ConfigProvider.js} +0 -0
  1029. /package/{dist/cjs/ConfigProviderPathPatch.js → ConfigProviderPathPatch.js} +0 -0
  1030. /package/{dist/cjs/Console.js → Console.js} +0 -0
  1031. /package/{dist/cjs/Context.js → Context.js} +0 -0
  1032. /package/{dist/cjs/Data.js → Data.js} +0 -0
  1033. /package/{dist/cjs/DefaultServices.js → DefaultServices.js} +0 -0
  1034. /package/{dist/cjs/Deferred.js → Deferred.js} +0 -0
  1035. /package/{dist/cjs/Duration.js → Duration.js} +0 -0
  1036. /package/{dist/cjs/Effectable.js → Effectable.js} +0 -0
  1037. /package/{dist/cjs/Either.js → Either.js} +0 -0
  1038. /package/{dist/cjs/Encoding.js → Encoding.js} +0 -0
  1039. /package/{dist/cjs/Equal.js → Equal.js} +0 -0
  1040. /package/{dist/cjs/Equivalence.js → Equivalence.js} +0 -0
  1041. /package/{dist/cjs/ExecutionStrategy.js → ExecutionStrategy.js} +0 -0
  1042. /package/{dist/cjs/Exit.js → Exit.js} +0 -0
  1043. /package/{dist/cjs/Fiber.js → Fiber.js} +0 -0
  1044. /package/{dist/cjs/FiberId.js → FiberId.js} +0 -0
  1045. /package/{dist/cjs/FiberRef.js → FiberRef.js} +0 -0
  1046. /package/{dist/cjs/FiberRefsPatch.js → FiberRefsPatch.js} +0 -0
  1047. /package/{dist/cjs/FiberStatus.js → FiberStatus.js} +0 -0
  1048. /package/{dist/cjs/Function.js → Function.js} +0 -0
  1049. /package/{dist/cjs/GlobalValue.js → GlobalValue.js} +0 -0
  1050. /package/{dist/cjs/GroupBy.js → GroupBy.js} +0 -0
  1051. /package/{dist/cjs/HKT.js → HKT.js} +0 -0
  1052. /package/{dist/cjs/Hash.js → Hash.js} +0 -0
  1053. /package/{dist/cjs/KeyedPool.js → KeyedPool.js} +0 -0
  1054. /package/{dist/cjs/LogLevel.js → LogLevel.js} +0 -0
  1055. /package/{dist/cjs/LogSpan.js → LogSpan.js} +0 -0
  1056. /package/{dist/cjs/Logger.js → Logger.js} +0 -0
  1057. /package/{dist/cjs/Match.js → Match.js} +0 -0
  1058. /package/{dist/cjs/MergeDecision.js → MergeDecision.js} +0 -0
  1059. /package/{dist/cjs/MergeState.js → MergeState.js} +0 -0
  1060. /package/{dist/cjs/MergeStrategy.js → MergeStrategy.js} +0 -0
  1061. /package/{dist/cjs/MetricHook.js → MetricHook.js} +0 -0
  1062. /package/{dist/cjs/MetricKeyType.js → MetricKeyType.js} +0 -0
  1063. /package/{dist/cjs/MetricLabel.js → MetricLabel.js} +0 -0
  1064. /package/{dist/cjs/MetricPair.js → MetricPair.js} +0 -0
  1065. /package/{dist/cjs/MetricPolling.js → MetricPolling.js} +0 -0
  1066. /package/{dist/cjs/MetricState.js → MetricState.js} +0 -0
  1067. /package/{dist/cjs/MutableQueue.js → MutableQueue.js} +0 -0
  1068. /package/{dist/cjs/MutableRef.js → MutableRef.js} +0 -0
  1069. /package/{dist/cjs/NonEmptyIterable.js → NonEmptyIterable.js} +0 -0
  1070. /package/{dist/cjs/Number.js → Number.js} +0 -0
  1071. /package/{dist/cjs/Order.js → Order.js} +0 -0
  1072. /package/{dist/cjs/Ordering.js → Ordering.js} +0 -0
  1073. /package/{dist/cjs/Pipeable.js → Pipeable.js} +0 -0
  1074. /package/{dist/cjs/Pool.js → Pool.js} +0 -0
  1075. /package/{dist/cjs/Predicate.js → Predicate.js} +0 -0
  1076. /package/{dist/cjs/PrimaryKey.js → PrimaryKey.js} +0 -0
  1077. /package/{dist/cjs/PubSub.js → PubSub.js} +0 -0
  1078. /package/{dist/cjs/Queue.js → Queue.js} +0 -0
  1079. /package/{dist/cjs/Random.js → Random.js} +0 -0
  1080. /package/{dist/cjs/Ref.js → Ref.js} +0 -0
  1081. /package/{dist/cjs/Reloadable.js → Reloadable.js} +0 -0
  1082. /package/{dist/cjs/Request.js → Request.js} +0 -0
  1083. /package/{dist/cjs/RequestBlock.js → RequestBlock.js} +0 -0
  1084. /package/{dist/cjs/RequestResolver.js → RequestResolver.js} +0 -0
  1085. /package/{dist/cjs/Resource.js → Resource.js} +0 -0
  1086. /package/{dist/cjs/Runtime.js → Runtime.js} +0 -0
  1087. /package/{dist/cjs/RuntimeFlags.js → RuntimeFlags.js} +0 -0
  1088. /package/{dist/cjs/RuntimeFlagsPatch.js → RuntimeFlagsPatch.js} +0 -0
  1089. /package/{dist/cjs/STM.js → STM.js} +0 -0
  1090. /package/{dist/cjs/Schedule.js → Schedule.js} +0 -0
  1091. /package/{dist/cjs/ScheduleDecision.js → ScheduleDecision.js} +0 -0
  1092. /package/{dist/cjs/ScheduleInterval.js → ScheduleInterval.js} +0 -0
  1093. /package/{dist/cjs/Scheduler.js → Scheduler.js} +0 -0
  1094. /package/{dist/cjs/Scope.js → Scope.js} +0 -0
  1095. /package/{dist/cjs/ScopedCache.js → ScopedCache.js} +0 -0
  1096. /package/{dist/cjs/ScopedRef.js → ScopedRef.js} +0 -0
  1097. /package/{dist/cjs/SingleProducerAsyncInput.js → SingleProducerAsyncInput.js} +0 -0
  1098. /package/{dist/cjs/Sink.js → Sink.js} +0 -0
  1099. /package/{dist/cjs/StreamEmit.js → StreamEmit.js} +0 -0
  1100. /package/{dist/cjs/StreamHaltStrategy.js → StreamHaltStrategy.js} +0 -0
  1101. /package/{dist/cjs/Streamable.js → Streamable.js} +0 -0
  1102. /package/{dist/cjs/String.js → String.js} +0 -0
  1103. /package/{dist/cjs/Struct.js → Struct.js} +0 -0
  1104. /package/{dist/cjs/SubscriptionRef.js → SubscriptionRef.js} +0 -0
  1105. /package/{dist/cjs/Supervisor.js → Supervisor.js} +0 -0
  1106. /package/{dist/cjs/Symbol.js → Symbol.js} +0 -0
  1107. /package/{dist/cjs/SynchronizedRef.js → SynchronizedRef.js} +0 -0
  1108. /package/{dist/cjs/TDeferred.js → TDeferred.js} +0 -0
  1109. /package/{dist/cjs/TPubSub.js → TPubSub.js} +0 -0
  1110. /package/{dist/cjs/TQueue.js → TQueue.js} +0 -0
  1111. /package/{dist/cjs/TRandom.js → TRandom.js} +0 -0
  1112. /package/{dist/cjs/TReentrantLock.js → TReentrantLock.js} +0 -0
  1113. /package/{dist/cjs/TRef.js → TRef.js} +0 -0
  1114. /package/{dist/cjs/TSemaphore.js → TSemaphore.js} +0 -0
  1115. /package/{dist/cjs/Take.js → Take.js} +0 -0
  1116. /package/{dist/cjs/TestAnnotation.js → TestAnnotation.js} +0 -0
  1117. /package/{dist/cjs/TestAnnotationMap.js → TestAnnotationMap.js} +0 -0
  1118. /package/{dist/cjs/TestAnnotations.js → TestAnnotations.js} +0 -0
  1119. /package/{dist/cjs/TestClock.js → TestClock.js} +0 -0
  1120. /package/{dist/cjs/TestConfig.js → TestConfig.js} +0 -0
  1121. /package/{dist/cjs/TestContext.js → TestContext.js} +0 -0
  1122. /package/{dist/cjs/TestLive.js → TestLive.js} +0 -0
  1123. /package/{dist/cjs/TestServices.js → TestServices.js} +0 -0
  1124. /package/{dist/cjs/TestSized.js → TestSized.js} +0 -0
  1125. /package/{dist/cjs/Tracer.js → Tracer.js} +0 -0
  1126. /package/{dist/cjs/Tuple.js → Tuple.js} +0 -0
  1127. /package/{dist/cjs/Types.js → Types.js} +0 -0
  1128. /package/{dist/cjs/Unify.js → Unify.js} +0 -0
  1129. /package/{dist/cjs/UpstreamPullRequest.js → UpstreamPullRequest.js} +0 -0
  1130. /package/{dist/cjs/UpstreamPullStrategy.js → UpstreamPullStrategy.js} +0 -0
  1131. /package/{dist/cjs/internal → internal}/Iterable.js +0 -0
  1132. /package/{dist/cjs/internal → internal}/blockedRequests.js +0 -0
  1133. /package/{dist/cjs/internal → internal}/cache.js +0 -0
  1134. /package/{dist/cjs/internal → internal}/cause.js +0 -0
  1135. /package/{dist/cjs/internal → internal}/channel/channelExecutor.js +0 -0
  1136. /package/{dist/cjs/internal → internal}/channel/channelState.js +0 -0
  1137. /package/{dist/cjs/internal → internal}/channel/childExecutorDecision.js +0 -0
  1138. /package/{dist/cjs/internal → internal}/channel/continuation.js +0 -0
  1139. /package/{dist/cjs/internal → internal}/channel/mergeDecision.js +0 -0
  1140. /package/{dist/cjs/internal → internal}/channel/mergeState.js +0 -0
  1141. /package/{dist/cjs/internal → internal}/channel/mergeStrategy.js +0 -0
  1142. /package/{dist/cjs/internal → internal}/channel/singleProducerAsyncInput.js +0 -0
  1143. /package/{dist/cjs/internal → internal}/channel/subexecutor.js +0 -0
  1144. /package/{dist/cjs/internal → internal}/channel/upstreamPullRequest.js +0 -0
  1145. /package/{dist/cjs/internal → internal}/channel/upstreamPullStrategy.js +0 -0
  1146. /package/{dist/cjs/internal → internal}/channel.js +0 -0
  1147. /package/{dist/cjs/internal → internal}/clock.js +0 -0
  1148. /package/{dist/cjs/internal → internal}/completedRequestMap.js +0 -0
  1149. /package/{dist/cjs/internal → internal}/concurrency.js +0 -0
  1150. /package/{dist/cjs/internal → internal}/configError.js +0 -0
  1151. /package/{dist/cjs/internal → internal}/configProvider/pathPatch.js +0 -0
  1152. /package/{dist/cjs/internal → internal}/configProvider.js +0 -0
  1153. /package/{dist/cjs/internal → internal}/context.js +0 -0
  1154. /package/{dist/cjs/internal → internal}/core-stream.js +0 -0
  1155. /package/{dist/cjs/internal → internal}/data.js +0 -0
  1156. /package/{dist/cjs/internal → internal}/dataSource.js +0 -0
  1157. /package/{dist/cjs/internal → internal}/defaultServices/console.js +0 -0
  1158. /package/{dist/cjs/internal → internal}/defaultServices.js +0 -0
  1159. /package/{dist/cjs/internal → internal}/deferred.js +0 -0
  1160. /package/{dist/cjs/internal → internal}/effect/circular.js +0 -0
  1161. /package/{dist/cjs/internal → internal}/effectable.js +0 -0
  1162. /package/{dist/cjs/internal → internal}/either.js +0 -0
  1163. /package/{dist/cjs/internal → internal}/encoding/base64.js +0 -0
  1164. /package/{dist/cjs/internal → internal}/encoding/base64Url.js +0 -0
  1165. /package/{dist/cjs/internal → internal}/encoding/common.js +0 -0
  1166. /package/{dist/cjs/internal → internal}/encoding/hex.js +0 -0
  1167. /package/{dist/cjs/internal → internal}/executionStrategy.js +0 -0
  1168. /package/{dist/cjs/internal → internal}/fiber.js +0 -0
  1169. /package/{dist/cjs/internal → internal}/fiberMessage.js +0 -0
  1170. /package/{dist/cjs/internal → internal}/fiberScope.js +0 -0
  1171. /package/{dist/cjs/internal → internal}/fiberStatus.js +0 -0
  1172. /package/{dist/cjs/internal → internal}/groupBy.js +0 -0
  1173. /package/{dist/cjs/internal → internal}/hashMap/array.js +0 -0
  1174. /package/{dist/cjs/internal → internal}/hashMap/bitwise.js +0 -0
  1175. /package/{dist/cjs/internal → internal}/hashMap/config.js +0 -0
  1176. /package/{dist/cjs/internal → internal}/hashMap/keySet.js +0 -0
  1177. /package/{dist/cjs/internal → internal}/hashMap.js +0 -0
  1178. /package/{dist/cjs/internal → internal}/hashSet.js +0 -0
  1179. /package/{dist/cjs/internal → internal}/keyedPool.js +0 -0
  1180. /package/{dist/cjs/internal → internal}/layer/circular.js +0 -0
  1181. /package/{dist/cjs/internal → internal}/logSpan.js +0 -0
  1182. /package/{dist/cjs/internal → internal}/logger-circular.js +0 -0
  1183. /package/{dist/cjs/internal → internal}/logger.js +0 -0
  1184. /package/{dist/cjs/internal → internal}/matcher.js +0 -0
  1185. /package/{dist/cjs/internal → internal}/metric/pair.js +0 -0
  1186. /package/{dist/cjs/internal → internal}/metric/polling.js +0 -0
  1187. /package/{dist/cjs/internal → internal}/opCodes/cause.js +0 -0
  1188. /package/{dist/cjs/internal → internal}/opCodes/channel.js +0 -0
  1189. /package/{dist/cjs/internal → internal}/opCodes/channelChildExecutorDecision.js +0 -0
  1190. /package/{dist/cjs/internal → internal}/opCodes/channelMergeDecision.js +0 -0
  1191. /package/{dist/cjs/internal → internal}/opCodes/channelMergeState.js +0 -0
  1192. /package/{dist/cjs/internal → internal}/opCodes/channelMergeStrategy.js +0 -0
  1193. /package/{dist/cjs/internal → internal}/opCodes/channelState.js +0 -0
  1194. /package/{dist/cjs/internal → internal}/opCodes/channelUpstreamPullRequest.js +0 -0
  1195. /package/{dist/cjs/internal → internal}/opCodes/channelUpstreamPullStrategy.js +0 -0
  1196. /package/{dist/cjs/internal → internal}/opCodes/config.js +0 -0
  1197. /package/{dist/cjs/internal → internal}/opCodes/configError.js +0 -0
  1198. /package/{dist/cjs/internal → internal}/opCodes/continuation.js +0 -0
  1199. /package/{dist/cjs/internal → internal}/opCodes/deferred.js +0 -0
  1200. /package/{dist/cjs/internal → internal}/opCodes/effect.js +0 -0
  1201. /package/{dist/cjs/internal → internal}/opCodes/layer.js +0 -0
  1202. /package/{dist/cjs/internal → internal}/opCodes/streamHaltStrategy.js +0 -0
  1203. /package/{dist/cjs/internal → internal}/option.js +0 -0
  1204. /package/{dist/cjs/internal → internal}/pool.js +0 -0
  1205. /package/{dist/cjs/internal → internal}/pubsub.js +0 -0
  1206. /package/{dist/cjs/internal → internal}/query.js +0 -0
  1207. /package/{dist/cjs/internal → internal}/queue.js +0 -0
  1208. /package/{dist/cjs/internal → internal}/random.js +0 -0
  1209. /package/{dist/cjs/internal → internal}/readonlyArray.js +0 -0
  1210. /package/{dist/cjs/internal → internal}/redBlackTree/iterator.js +0 -0
  1211. /package/{dist/cjs/internal → internal}/redBlackTree/node.js +0 -0
  1212. /package/{dist/cjs/internal → internal}/redBlackTree.js +0 -0
  1213. /package/{dist/cjs/internal → internal}/ref.js +0 -0
  1214. /package/{dist/cjs/internal → internal}/reloadable.js +0 -0
  1215. /package/{dist/cjs/internal → internal}/request.js +0 -0
  1216. /package/{dist/cjs/internal → internal}/resource.js +0 -0
  1217. /package/{dist/cjs/internal → internal}/ringBuffer.js +0 -0
  1218. /package/{dist/cjs/internal → internal}/runtimeFlags.js +0 -0
  1219. /package/{dist/cjs/internal → internal}/runtimeFlagsPatch.js +0 -0
  1220. /package/{dist/cjs/internal → internal}/schedule/decision.js +0 -0
  1221. /package/{dist/cjs/internal → internal}/schedule/interval.js +0 -0
  1222. /package/{dist/cjs/internal → internal}/schedule/intervals.js +0 -0
  1223. /package/{dist/cjs/internal → internal}/scopedCache.js +0 -0
  1224. /package/{dist/cjs/internal → internal}/scopedRef.js +0 -0
  1225. /package/{dist/cjs/internal → internal}/singleShotGen.js +0 -0
  1226. /package/{dist/cjs/internal → internal}/sink.js +0 -0
  1227. /package/{dist/cjs/internal → internal}/stack.js +0 -0
  1228. /package/{dist/cjs/internal → internal}/stm/core.js +0 -0
  1229. /package/{dist/cjs/internal → internal}/stm/opCodes/stm.js +0 -0
  1230. /package/{dist/cjs/internal → internal}/stm/opCodes/stmState.js +0 -0
  1231. /package/{dist/cjs/internal → internal}/stm/opCodes/strategy.js +0 -0
  1232. /package/{dist/cjs/internal → internal}/stm/opCodes/tExit.js +0 -0
  1233. /package/{dist/cjs/internal → internal}/stm/opCodes/tryCommit.js +0 -0
  1234. /package/{dist/cjs/internal → internal}/stm/stm/entry.js +0 -0
  1235. /package/{dist/cjs/internal → internal}/stm/stm/journal.js +0 -0
  1236. /package/{dist/cjs/internal → internal}/stm/stm/opCodes/stm.js +0 -0
  1237. /package/{dist/cjs/internal → internal}/stm/stm/opCodes/stmState.js +0 -0
  1238. /package/{dist/cjs/internal → internal}/stm/stm/opCodes/strategy.js +0 -0
  1239. /package/{dist/cjs/internal → internal}/stm/stm/opCodes/tExit.js +0 -0
  1240. /package/{dist/cjs/internal → internal}/stm/stm/opCodes/tryCommit.js +0 -0
  1241. /package/{dist/cjs/internal → internal}/stm/stm/stmState.js +0 -0
  1242. /package/{dist/cjs/internal → internal}/stm/stm/tExit.js +0 -0
  1243. /package/{dist/cjs/internal → internal}/stm/stm/tryCommit.js +0 -0
  1244. /package/{dist/cjs/internal → internal}/stm/stm/txnId.js +0 -0
  1245. /package/{dist/cjs/internal → internal}/stm/stm/versioned.js +0 -0
  1246. /package/{dist/cjs/internal → internal}/stm/stm.js +0 -0
  1247. /package/{dist/cjs/internal → internal}/stm/tArray.js +0 -0
  1248. /package/{dist/cjs/internal → internal}/stm/tDeferred.js +0 -0
  1249. /package/{dist/cjs/internal → internal}/stm/tMap.js +0 -0
  1250. /package/{dist/cjs/internal → internal}/stm/tPriorityQueue.js +0 -0
  1251. /package/{dist/cjs/internal → internal}/stm/tPubSub.js +0 -0
  1252. /package/{dist/cjs/internal → internal}/stm/tQueue.js +0 -0
  1253. /package/{dist/cjs/internal → internal}/stm/tRandom.js +0 -0
  1254. /package/{dist/cjs/internal → internal}/stm/tReentrantLock.js +0 -0
  1255. /package/{dist/cjs/internal → internal}/stm/tRef.js +0 -0
  1256. /package/{dist/cjs/internal → internal}/stm/tSemaphore.js +0 -0
  1257. /package/{dist/cjs/internal → internal}/stm/tSet.js +0 -0
  1258. /package/{dist/cjs/internal → internal}/stream/debounceState.js +0 -0
  1259. /package/{dist/cjs/internal → internal}/stream/emit.js +0 -0
  1260. /package/{dist/cjs/internal → internal}/stream/haltStrategy.js +0 -0
  1261. /package/{dist/cjs/internal → internal}/stream/handoff.js +0 -0
  1262. /package/{dist/cjs/internal → internal}/stream/handoffSignal.js +0 -0
  1263. /package/{dist/cjs/internal → internal}/stream/pull.js +0 -0
  1264. /package/{dist/cjs/internal → internal}/stream/sinkEndReason.js +0 -0
  1265. /package/{dist/cjs/internal → internal}/stream/zipAllState.js +0 -0
  1266. /package/{dist/cjs/internal → internal}/stream/zipChunksState.js +0 -0
  1267. /package/{dist/cjs/internal → internal}/stream.js +0 -0
  1268. /package/{dist/cjs/internal → internal}/string-utils.js +0 -0
  1269. /package/{dist/cjs/internal → internal}/subscriptionRef.js +0 -0
  1270. /package/{dist/cjs/internal → internal}/supervisor/patch.js +0 -0
  1271. /package/{dist/cjs/internal → internal}/supervisor.js +0 -0
  1272. /package/{dist/cjs/internal → internal}/synchronizedRef.js +0 -0
  1273. /package/{dist/cjs/internal → internal}/take.js +0 -0
  1274. /package/{dist/cjs/internal → internal}/testing/sleep.js +0 -0
  1275. /package/{dist/cjs/internal → internal}/testing/suspendedWarningData.js +0 -0
  1276. /package/{dist/cjs/internal → internal}/testing/warningData.js +0 -0
  1277. /package/{dist/cjs/internal → internal}/timeout.js +0 -0
  1278. /package/{dist/cjs/internal → internal}/tracer.js +0 -0
@@ -1,1920 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.zipWithOptions = exports.zipRightOptions = exports.zipOptions = exports.zipLeftOptions = exports.withTracerScoped = exports.withSpanScoped = exports.withRuntimeFlagsScoped = exports.withEarlyRelease = exports.withConfigProviderScoped = exports.withClockScoped = exports.validateWith = exports.validateFirst = exports.validateAllParDiscard = exports.validateAllPar = exports.validateAll = exports.validate = exports.using = exports.unsafeMakeChildFiber = exports.unsafeForkUnstarted = exports.unsafeFork = exports.tracerLogger = exports.tagMetricsScoped = exports.sequentialFinalizers = exports.scopedEffect = exports.scopeWith = exports.scopeUse = exports.scopeTag = exports.scopeMake = exports.scopeExtend = exports.scope = exports.replicateEffect = exports.replicate = exports.releaseMapReleaseAll = exports.reduceEffect = exports.raceWith = exports.raceFibersWith = exports.raceAll = exports.race = exports.partition = exports.parallelNFinalizers = exports.parallelFinalizers = exports.mergeAll = exports.makeSpanScoped = exports.loggerWithSpanAnnotations = exports.logFmtLogger = exports.labelMetricsScopedSet = exports.labelMetricsScoped = exports.invokeWithInterrupt = exports.interruptWhenPossible = exports.getConsole = exports.forkWithErrorHandler = exports.forkDaemon = exports.fork = exports.forEachParUnbounded = exports.forEachParN = exports.forEachConcurrentDiscard = exports.forEach = exports.finalizersMask = exports.filter = exports.fiberSuccesses = exports.fiberStarted = exports.fiberScoped = exports.fiberRefUnsafeMakeSupervisor = exports.fiberRefMakeWith = exports.fiberRefMakeRuntimeFlags = exports.fiberRefMakeContext = exports.fiberRefMake = exports.fiberRefLocallyScopedWith = exports.fiberRefLocallyScoped = exports.fiberLifetimes = exports.fiberJoinAll = exports.fiberInterruptFork = exports.fiberFailures = exports.fiberAwaitAll = exports.fiberAll = exports.fiberActive = exports.exists = exports.ensuring = exports.disconnect = exports.defaultLogger = exports.daemonChildren = exports.currentSupervisor = exports.currentRuntimeFlags = exports.currentMinimumLogLevel = exports.currentLoggers = exports.allWith = exports.allSuccesses = exports.all = exports.addFinalizer = exports.acquireReleaseInterruptible = exports.acquireRelease = exports.FiberRuntime = void 0;
7
- var Boolean = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../Boolean.js"));
8
- var Chunk = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../Chunk.js"));
9
- var Context = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../Context.js"));
10
- var Deferred = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../Deferred.js"));
11
- var _Effectable = /*#__PURE__*/require("../Effectable.js");
12
- var ExecutionStrategy = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../ExecutionStrategy.js"));
13
- var FiberId = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../FiberId.js"));
14
- var FiberRefs = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../FiberRefs.js"));
15
- var FiberRefsPatch = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../FiberRefsPatch.js"));
16
- var FiberStatus = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../FiberStatus.js"));
17
- var _Function = /*#__PURE__*/require("../Function.js");
18
- var _GlobalValue = /*#__PURE__*/require("../GlobalValue.js");
19
- var HashMap = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../HashMap.js"));
20
- var HashSet = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../HashSet.js"));
21
- var LogLevel = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../LogLevel.js"));
22
- var MRef = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../MutableRef.js"));
23
- var Option = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../Option.js"));
24
- var _Pipeable = /*#__PURE__*/require("../Pipeable.js");
25
- var Predicate = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../Predicate.js"));
26
- var RA = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../ReadonlyArray.js"));
27
- var Ref = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../Ref.js"));
28
- var RuntimeFlagsPatch = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../RuntimeFlagsPatch.js"));
29
- var _Scheduler = /*#__PURE__*/require("../Scheduler.js");
30
- var _RequestBlock = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./blockedRequests.js"));
31
- var internalCause = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./cause.js"));
32
- var clock = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./clock.js"));
33
- var _completedRequestMap = /*#__PURE__*/require("./completedRequestMap.js");
34
- var concurrency = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./concurrency.js"));
35
- var _configProvider = /*#__PURE__*/require("./configProvider.js");
36
- var internalEffect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./core-effect.js"));
37
- var core = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./core.js"));
38
- var defaultServices = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./defaultServices.js"));
39
- var _console = /*#__PURE__*/require("./defaultServices/console.js");
40
- var executionStrategy = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./executionStrategy.js"));
41
- var internalFiber = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./fiber.js"));
42
- var FiberMessage = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./fiberMessage.js"));
43
- var fiberRefs = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./fiberRefs.js"));
44
- var fiberScope = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./fiberScope.js"));
45
- var internalLogger = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./logger.js"));
46
- var metric = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./metric.js"));
47
- var metricBoundaries = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./metric/boundaries.js"));
48
- var metricLabel = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./metric/label.js"));
49
- var OpCodes = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./opCodes/effect.js"));
50
- var _request = /*#__PURE__*/require("./request.js");
51
- var _runtimeFlags2 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./runtimeFlags.js"));
52
- var _runtimeFlags = _runtimeFlags2;
53
- var supervisor = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./supervisor.js"));
54
- var SupervisorPatch = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./supervisor/patch.js"));
55
- var tracer = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./tracer.js"));
56
- var _version = /*#__PURE__*/require("./version.js");
57
- function _getRequireWildcardCache(e) {
58
- if ("function" != typeof WeakMap) return null;
59
- var r = new WeakMap(),
60
- t = new WeakMap();
61
- return (_getRequireWildcardCache = function (e) {
62
- return e ? t : r;
63
- })(e);
64
- }
65
- function _interopRequireWildcard(e, r) {
66
- if (!r && e && e.__esModule) return e;
67
- if (null === e || "object" != typeof e && "function" != typeof e) return {
68
- default: e
69
- };
70
- var t = _getRequireWildcardCache(r);
71
- if (t && t.has(e)) return t.get(e);
72
- var n = {
73
- __proto__: null
74
- },
75
- a = Object.defineProperty && Object.getOwnPropertyDescriptor;
76
- for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) {
77
- var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
78
- i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
79
- }
80
- return n.default = e, t && t.set(e, n), n;
81
- }
82
- /** @internal */
83
- const fiberStarted = exports.fiberStarted = /*#__PURE__*/metric.counter("effect_fiber_started");
84
- /** @internal */
85
- const fiberActive = exports.fiberActive = /*#__PURE__*/metric.counter("effect_fiber_active");
86
- /** @internal */
87
- const fiberSuccesses = exports.fiberSuccesses = /*#__PURE__*/metric.counter("effect_fiber_successes");
88
- /** @internal */
89
- const fiberFailures = exports.fiberFailures = /*#__PURE__*/metric.counter("effect_fiber_failures");
90
- /** @internal */
91
- const fiberLifetimes = exports.fiberLifetimes = /*#__PURE__*/metric.tagged( /*#__PURE__*/metric.histogram("effect_fiber_lifetimes", /*#__PURE__*/metricBoundaries.exponential({
92
- start: 1.0,
93
- factor: 1.3,
94
- count: 100
95
- })), "time_unit", "milliseconds");
96
- /** @internal */
97
- const EvaluationSignalContinue = "Continue";
98
- /** @internal */
99
- const EvaluationSignalDone = "Done";
100
- /** @internal */
101
- const EvaluationSignalYieldNow = "Yield";
102
- const runtimeFiberVariance = {
103
- /* c8 ignore next */
104
- _E: _ => _,
105
- /* c8 ignore next */
106
- _A: _ => _
107
- };
108
- const absurd = _ => {
109
- throw new Error(`BUG: FiberRuntime - ${JSON.stringify(_)} - please report an issue at https://github.com/Effect-TS/effect/issues`);
110
- };
111
- const contOpSuccess = {
112
- [OpCodes.OP_ON_SUCCESS]: (_, cont, value) => {
113
- return cont.i1(value);
114
- },
115
- ["OnStep"]: (_, _cont, value) => {
116
- return core.exitSucceed(core.exitSucceed(value));
117
- },
118
- [OpCodes.OP_ON_SUCCESS_AND_FAILURE]: (_, cont, value) => {
119
- return cont.i2(value);
120
- },
121
- [OpCodes.OP_REVERT_FLAGS]: (self, cont, value) => {
122
- self.patchRuntimeFlags(self._runtimeFlags, cont.patch);
123
- if (_runtimeFlags.interruptible(self._runtimeFlags) && self.isInterrupted()) {
124
- return core.exitFailCause(self.getInterruptedCause());
125
- } else {
126
- return core.exitSucceed(value);
127
- }
128
- },
129
- [OpCodes.OP_WHILE]: (self, cont, value) => {
130
- cont.i2(value);
131
- if (cont.i0()) {
132
- self.pushStack(cont);
133
- return cont.i1();
134
- } else {
135
- return core.unit;
136
- }
137
- }
138
- };
139
- const drainQueueWhileRunningTable = {
140
- [FiberMessage.OP_INTERRUPT_SIGNAL]: (self, runtimeFlags, cur, message) => {
141
- self.processNewInterruptSignal(message.cause);
142
- return _runtimeFlags.interruptible(runtimeFlags) ? core.exitFailCause(message.cause) : cur;
143
- },
144
- [FiberMessage.OP_RESUME]: (_self, _runtimeFlags, _cur, _message) => {
145
- throw new Error("It is illegal to have multiple concurrent run loops in a single fiber");
146
- },
147
- [FiberMessage.OP_STATEFUL]: (self, runtimeFlags, cur, message) => {
148
- message.onFiber(self, FiberStatus.running(runtimeFlags));
149
- return cur;
150
- },
151
- [FiberMessage.OP_YIELD_NOW]: (_self, _runtimeFlags, cur, _message) => {
152
- return core.flatMap(core.yieldNow(), () => cur);
153
- }
154
- };
155
- /**
156
- * Executes all requests, submitting requests to each data source in parallel.
157
- */
158
- const runBlockedRequests = self => core.forEachSequentialDiscard(_RequestBlock.flatten(self), requestsByRequestResolver => forEachConcurrentDiscard(_RequestBlock.sequentialCollectionToChunk(requestsByRequestResolver), ([dataSource, sequential]) => {
159
- const map = new Map();
160
- for (const block of sequential) {
161
- for (const entry of block) {
162
- map.set(entry.request, entry);
163
- }
164
- }
165
- return core.fiberRefLocally(invokeWithInterrupt(dataSource.runAll(sequential), sequential.flat()), _completedRequestMap.currentRequestMap, map);
166
- }, false, false));
167
- /** @internal */
168
- class FiberRuntime {
169
- [internalFiber.FiberTypeId] = internalFiber.fiberVariance;
170
- [internalFiber.RuntimeFiberTypeId] = runtimeFiberVariance;
171
- pipe() {
172
- return (0, _Pipeable.pipeArguments)(this, arguments);
173
- }
174
- _fiberRefs;
175
- _fiberId;
176
- _runtimeFlags;
177
- _queue = new Array();
178
- _children = null;
179
- _observers = new Array();
180
- _running = false;
181
- _stack = [];
182
- _asyncInterruptor = null;
183
- _asyncBlockingOn = null;
184
- _exitValue = null;
185
- _steps = [];
186
- _supervisor;
187
- _scheduler;
188
- _tracer;
189
- currentOpCount = 0;
190
- isYielding = false;
191
- constructor(fiberId, fiberRefs0, runtimeFlags0) {
192
- this._runtimeFlags = runtimeFlags0;
193
- this._fiberId = fiberId;
194
- this._fiberRefs = fiberRefs0;
195
- this._supervisor = this.getFiberRef(currentSupervisor);
196
- this._scheduler = this.getFiberRef(_Scheduler.currentScheduler);
197
- if (_runtimeFlags.runtimeMetrics(runtimeFlags0)) {
198
- const tags = this.getFiberRef(core.currentMetricLabels);
199
- fiberStarted.unsafeUpdate(1, tags);
200
- fiberActive.unsafeUpdate(1, tags);
201
- }
202
- this._tracer = Context.get(this.getFiberRef(defaultServices.currentServices), tracer.tracerTag);
203
- }
204
- /**
205
- * The identity of the fiber.
206
- */
207
- id() {
208
- return this._fiberId;
209
- }
210
- /**
211
- * Begins execution of the effect associated with this fiber on in the
212
- * background. This can be called to "kick off" execution of a fiber after
213
- * it has been created.
214
- */
215
- resume(effect) {
216
- this.tell(FiberMessage.resume(effect));
217
- }
218
- /**
219
- * The status of the fiber.
220
- */
221
- get status() {
222
- return this.ask((_, status) => status);
223
- }
224
- /**
225
- * Gets the fiber runtime flags.
226
- */
227
- get runtimeFlags() {
228
- return this.ask((state, status) => {
229
- if (FiberStatus.isDone(status)) {
230
- return state._runtimeFlags;
231
- }
232
- return status.runtimeFlags;
233
- });
234
- }
235
- /**
236
- * Returns the current `FiberScope` for the fiber.
237
- */
238
- scope() {
239
- return fiberScope.unsafeMake(this);
240
- }
241
- /**
242
- * Retrieves the immediate children of the fiber.
243
- */
244
- get children() {
245
- return this.ask(fiber => Array.from(fiber.getChildren()));
246
- }
247
- /**
248
- * Gets the fiber's set of children.
249
- */
250
- getChildren() {
251
- if (this._children === null) {
252
- this._children = new Set();
253
- }
254
- return this._children;
255
- }
256
- /**
257
- * Retrieves the interrupted cause of the fiber, which will be `Cause.empty`
258
- * if the fiber has not been interrupted.
259
- *
260
- * **NOTE**: This method is safe to invoke on any fiber, but if not invoked
261
- * on this fiber, then values derived from the fiber's state (including the
262
- * log annotations and log level) may not be up-to-date.
263
- */
264
- getInterruptedCause() {
265
- return this.getFiberRef(core.currentInterruptedCause);
266
- }
267
- /**
268
- * Retrieves the whole set of fiber refs.
269
- */
270
- fiberRefs() {
271
- return this.ask(fiber => fiber.getFiberRefs());
272
- }
273
- /**
274
- * Returns an effect that will contain information computed from the fiber
275
- * state and status while running on the fiber.
276
- *
277
- * This allows the outside world to interact safely with mutable fiber state
278
- * without locks or immutable data.
279
- */
280
- ask(f) {
281
- return core.suspend(() => {
282
- const deferred = core.deferredUnsafeMake(this._fiberId);
283
- this.tell(FiberMessage.stateful((fiber, status) => {
284
- core.deferredUnsafeDone(deferred, core.sync(() => f(fiber, status)));
285
- }));
286
- return core.deferredAwait(deferred);
287
- });
288
- }
289
- /**
290
- * Adds a message to be processed by the fiber on the fiber.
291
- */
292
- tell(message) {
293
- this._queue.push(message);
294
- if (!this._running) {
295
- this._running = true;
296
- this.drainQueueLaterOnExecutor();
297
- }
298
- }
299
- get await() {
300
- return core.async(resume => {
301
- const cb = exit => resume(core.succeed(exit));
302
- this.tell(FiberMessage.stateful((fiber, _) => {
303
- if (fiber._exitValue !== null) {
304
- cb(this._exitValue);
305
- } else {
306
- fiber.addObserver(cb);
307
- }
308
- }));
309
- return core.sync(() => this.tell(FiberMessage.stateful((fiber, _) => {
310
- fiber.removeObserver(cb);
311
- })));
312
- }, this.id());
313
- }
314
- get inheritAll() {
315
- return core.withFiberRuntime((parentFiber, parentStatus) => {
316
- const parentFiberId = parentFiber.id();
317
- const parentFiberRefs = parentFiber.getFiberRefs();
318
- const parentRuntimeFlags = parentStatus.runtimeFlags;
319
- const childFiberRefs = this.getFiberRefs();
320
- const updatedFiberRefs = fiberRefs.joinAs(parentFiberRefs, parentFiberId, childFiberRefs);
321
- parentFiber.setFiberRefs(updatedFiberRefs);
322
- const updatedRuntimeFlags = parentFiber.getFiberRef(currentRuntimeFlags);
323
- const patch = (0, _Function.pipe)(_runtimeFlags.diff(parentRuntimeFlags, updatedRuntimeFlags),
324
- // Do not inherit WindDown or Interruption!
325
- RuntimeFlagsPatch.exclude(_runtimeFlags.Interruption), RuntimeFlagsPatch.exclude(_runtimeFlags.WindDown));
326
- return core.updateRuntimeFlags(patch);
327
- });
328
- }
329
- /**
330
- * Tentatively observes the fiber, but returns immediately if it is not
331
- * already done.
332
- */
333
- get poll() {
334
- return core.sync(() => Option.fromNullable(this._exitValue));
335
- }
336
- /**
337
- * Unsafely observes the fiber, but returns immediately if it is not
338
- * already done.
339
- */
340
- unsafePoll() {
341
- return this._exitValue;
342
- }
343
- /**
344
- * In the background, interrupts the fiber as if interrupted from the specified fiber.
345
- */
346
- interruptAsFork(fiberId) {
347
- return core.sync(() => this.tell(FiberMessage.interruptSignal(internalCause.interrupt(fiberId))));
348
- }
349
- /**
350
- * In the background, interrupts the fiber as if interrupted from the specified fiber.
351
- */
352
- unsafeInterruptAsFork(fiberId) {
353
- this.tell(FiberMessage.interruptSignal(internalCause.interrupt(fiberId)));
354
- }
355
- /**
356
- * Adds an observer to the list of observers.
357
- *
358
- * **NOTE**: This method must be invoked by the fiber itself.
359
- */
360
- addObserver(observer) {
361
- if (this._exitValue !== null) {
362
- observer(this._exitValue);
363
- } else {
364
- this._observers.push(observer);
365
- }
366
- }
367
- /**
368
- * Removes the specified observer from the list of observers that will be
369
- * notified when the fiber exits.
370
- *
371
- * **NOTE**: This method must be invoked by the fiber itself.
372
- */
373
- removeObserver(observer) {
374
- this._observers = this._observers.filter(o => o !== observer);
375
- }
376
- /**
377
- * Retrieves all fiber refs of the fiber.
378
- *
379
- * **NOTE**: This method is safe to invoke on any fiber, but if not invoked
380
- * on this fiber, then values derived from the fiber's state (including the
381
- * log annotations and log level) may not be up-to-date.
382
- */
383
- getFiberRefs() {
384
- this.setFiberRef(currentRuntimeFlags, this._runtimeFlags);
385
- return this._fiberRefs;
386
- }
387
- /**
388
- * Deletes the specified fiber ref.
389
- *
390
- * **NOTE**: This method must be invoked by the fiber itself.
391
- */
392
- unsafeDeleteFiberRef(fiberRef) {
393
- this._fiberRefs = fiberRefs.delete_(this._fiberRefs, fiberRef);
394
- }
395
- /**
396
- * Retrieves the state of the fiber ref, or else its initial value.
397
- *
398
- * **NOTE**: This method is safe to invoke on any fiber, but if not invoked
399
- * on this fiber, then values derived from the fiber's state (including the
400
- * log annotations and log level) may not be up-to-date.
401
- */
402
- getFiberRef(fiberRef) {
403
- if (this._fiberRefs.locals.has(fiberRef)) {
404
- return this._fiberRefs.locals.get(fiberRef)[0][1];
405
- }
406
- return fiberRef.initial;
407
- }
408
- /**
409
- * Sets the fiber ref to the specified value.
410
- *
411
- * **NOTE**: This method must be invoked by the fiber itself.
412
- */
413
- setFiberRef(fiberRef, value) {
414
- this._fiberRefs = fiberRefs.updatedAs(this._fiberRefs, {
415
- fiberId: this._fiberId,
416
- fiberRef,
417
- value
418
- });
419
- this.refreshRefCache();
420
- }
421
- refreshRefCache() {
422
- this._tracer = Context.get(this.getFiberRef(defaultServices.currentServices), tracer.tracerTag);
423
- this._supervisor = this.getFiberRef(currentSupervisor);
424
- this._scheduler = this.getFiberRef(_Scheduler.currentScheduler);
425
- }
426
- /**
427
- * Wholesale replaces all fiber refs of this fiber.
428
- *
429
- * **NOTE**: This method must be invoked by the fiber itself.
430
- */
431
- setFiberRefs(fiberRefs) {
432
- this._fiberRefs = fiberRefs;
433
- this.refreshRefCache();
434
- }
435
- /**
436
- * Adds a reference to the specified fiber inside the children set.
437
- *
438
- * **NOTE**: This method must be invoked by the fiber itself.
439
- */
440
- addChild(child) {
441
- this.getChildren().add(child);
442
- }
443
- /**
444
- * Removes a reference to the specified fiber inside the children set.
445
- *
446
- * **NOTE**: This method must be invoked by the fiber itself.
447
- */
448
- removeChild(child) {
449
- this.getChildren().delete(child);
450
- }
451
- /**
452
- * On the current thread, executes all messages in the fiber's inbox. This
453
- * method may return before all work is done, in the event the fiber executes
454
- * an asynchronous operation.
455
- *
456
- * **NOTE**: This method must be invoked by the fiber itself.
457
- */
458
- drainQueueOnCurrentThread() {
459
- let recurse = true;
460
- while (recurse) {
461
- let evaluationSignal = EvaluationSignalContinue;
462
- const prev = globalThis[internalFiber.currentFiberURI];
463
- globalThis[internalFiber.currentFiberURI] = this;
464
- try {
465
- while (evaluationSignal === EvaluationSignalContinue) {
466
- evaluationSignal = this._queue.length === 0 ? EvaluationSignalDone : this.evaluateMessageWhileSuspended(this._queue.splice(0, 1)[0]);
467
- }
468
- } finally {
469
- this._running = false;
470
- globalThis[internalFiber.currentFiberURI] = prev;
471
- }
472
- // Maybe someone added something to the queue between us checking, and us
473
- // giving up the drain. If so, we need to restart the draining, but only
474
- // if we beat everyone else to the restart:
475
- if (this._queue.length > 0 && !this._running) {
476
- this._running = true;
477
- if (evaluationSignal === EvaluationSignalYieldNow) {
478
- this.drainQueueLaterOnExecutor();
479
- recurse = false;
480
- } else {
481
- recurse = true;
482
- }
483
- } else {
484
- recurse = false;
485
- }
486
- }
487
- }
488
- /**
489
- * Schedules the execution of all messages in the fiber's inbox.
490
- *
491
- * This method will return immediately after the scheduling
492
- * operation is completed, but potentially before such messages have been
493
- * executed.
494
- *
495
- * **NOTE**: This method must be invoked by the fiber itself.
496
- */
497
- drainQueueLaterOnExecutor() {
498
- this._scheduler.scheduleTask(this.run, this.getFiberRef(core.currentSchedulingPriority));
499
- }
500
- /**
501
- * Drains the fiber's message queue while the fiber is actively running,
502
- * returning the next effect to execute, which may be the input effect if no
503
- * additional effect needs to be executed.
504
- *
505
- * **NOTE**: This method must be invoked by the fiber itself.
506
- */
507
- drainQueueWhileRunning(runtimeFlags, cur0) {
508
- let cur = cur0;
509
- while (this._queue.length > 0) {
510
- const message = this._queue.splice(0, 1)[0];
511
- // @ts-expect-error
512
- cur = drainQueueWhileRunningTable[message._tag](this, runtimeFlags, cur, message);
513
- }
514
- return cur;
515
- }
516
- /**
517
- * Determines if the fiber is interrupted.
518
- *
519
- * **NOTE**: This method is safe to invoke on any fiber, but if not invoked
520
- * on this fiber, then values derived from the fiber's state (including the
521
- * log annotations and log level) may not be up-to-date.
522
- */
523
- isInterrupted() {
524
- return !internalCause.isEmpty(this.getFiberRef(core.currentInterruptedCause));
525
- }
526
- /**
527
- * Adds an interruptor to the set of interruptors that are interrupting this
528
- * fiber.
529
- *
530
- * **NOTE**: This method must be invoked by the fiber itself.
531
- */
532
- addInterruptedCause(cause) {
533
- const oldSC = this.getFiberRef(core.currentInterruptedCause);
534
- this.setFiberRef(core.currentInterruptedCause, internalCause.sequential(oldSC, cause));
535
- }
536
- /**
537
- * Processes a new incoming interrupt signal.
538
- *
539
- * **NOTE**: This method must be invoked by the fiber itself.
540
- */
541
- processNewInterruptSignal(cause) {
542
- this.addInterruptedCause(cause);
543
- this.sendInterruptSignalToAllChildren();
544
- }
545
- /**
546
- * Interrupts all children of the current fiber, returning an effect that will
547
- * await the exit of the children. This method will return null if the fiber
548
- * has no children.
549
- *
550
- * **NOTE**: This method must be invoked by the fiber itself.
551
- */
552
- sendInterruptSignalToAllChildren() {
553
- if (this._children === null || this._children.size === 0) {
554
- return false;
555
- }
556
- let told = false;
557
- for (const child of this._children) {
558
- child.tell(FiberMessage.interruptSignal(internalCause.interrupt(this.id())));
559
- told = true;
560
- }
561
- return told;
562
- }
563
- /**
564
- * Interrupts all children of the current fiber, returning an effect that will
565
- * await the exit of the children. This method will return null if the fiber
566
- * has no children.
567
- *
568
- * **NOTE**: This method must be invoked by the fiber itself.
569
- */
570
- interruptAllChildren() {
571
- if (this.sendInterruptSignalToAllChildren()) {
572
- const it = this._children.values();
573
- this._children = null;
574
- let isDone = false;
575
- const body = () => {
576
- const next = it.next();
577
- if (!next.done) {
578
- return core.asUnit(next.value.await);
579
- } else {
580
- return core.sync(() => {
581
- isDone = true;
582
- });
583
- }
584
- };
585
- return core.whileLoop({
586
- while: () => !isDone,
587
- body,
588
- step: () => {
589
- //
590
- }
591
- });
592
- }
593
- return null;
594
- }
595
- reportExitValue(exit) {
596
- if (_runtimeFlags.runtimeMetrics(this._runtimeFlags)) {
597
- const tags = this.getFiberRef(core.currentMetricLabels);
598
- fiberActive.unsafeUpdate(-1, tags);
599
- switch (exit._tag) {
600
- case OpCodes.OP_SUCCESS:
601
- {
602
- fiberSuccesses.unsafeUpdate(1, tags);
603
- break;
604
- }
605
- case OpCodes.OP_FAILURE:
606
- {
607
- fiberFailures.unsafeUpdate(1, tags);
608
- break;
609
- }
610
- }
611
- }
612
- if (exit._tag === "Failure") {
613
- const level = this.getFiberRef(core.currentUnhandledErrorLogLevel);
614
- if (!internalCause.isInterruptedOnly(exit.cause) && level._tag === "Some") {
615
- this.log("Fiber terminated with a non handled error", exit.cause, level);
616
- }
617
- }
618
- }
619
- setExitValue(exit) {
620
- this._exitValue = exit;
621
- if (_runtimeFlags.runtimeMetrics(this._runtimeFlags)) {
622
- const tags = this.getFiberRef(core.currentMetricLabels);
623
- const startTimeMillis = this.id().startTimeMillis;
624
- const endTimeMillis = new Date().getTime();
625
- fiberLifetimes.unsafeUpdate(endTimeMillis - startTimeMillis, tags);
626
- }
627
- this.reportExitValue(exit);
628
- for (let i = this._observers.length - 1; i >= 0; i--) {
629
- this._observers[i](exit);
630
- }
631
- }
632
- getLoggers() {
633
- return this.getFiberRef(currentLoggers);
634
- }
635
- log(message, cause, overrideLogLevel) {
636
- const logLevel = Option.isSome(overrideLogLevel) ? overrideLogLevel.value : this.getFiberRef(core.currentLogLevel);
637
- const minimumLogLevel = this.getFiberRef(currentMinimumLogLevel);
638
- if (LogLevel.greaterThan(minimumLogLevel, logLevel)) {
639
- return;
640
- }
641
- const spans = this.getFiberRef(core.currentLogSpan);
642
- const annotations = this.getFiberRef(core.currentLogAnnotations);
643
- const loggers = this.getLoggers();
644
- const contextMap = this.getFiberRefs();
645
- if (HashSet.size(loggers) > 0) {
646
- const clockService = Context.get(this.getFiberRef(defaultServices.currentServices), clock.clockTag);
647
- const date = new Date(clockService.unsafeCurrentTimeMillis());
648
- for (const logger of loggers) {
649
- logger.log({
650
- fiberId: this.id(),
651
- logLevel,
652
- message,
653
- cause,
654
- context: contextMap,
655
- spans,
656
- annotations,
657
- date
658
- });
659
- }
660
- }
661
- }
662
- /**
663
- * Evaluates a single message on the current thread, while the fiber is
664
- * suspended. This method should only be called while evaluation of the
665
- * fiber's effect is suspended due to an asynchronous operation.
666
- *
667
- * **NOTE**: This method must be invoked by the fiber itself.
668
- */
669
- evaluateMessageWhileSuspended(message) {
670
- switch (message._tag) {
671
- case FiberMessage.OP_YIELD_NOW:
672
- {
673
- return EvaluationSignalYieldNow;
674
- }
675
- case FiberMessage.OP_INTERRUPT_SIGNAL:
676
- {
677
- this.processNewInterruptSignal(message.cause);
678
- if (this._asyncInterruptor !== null) {
679
- this._asyncInterruptor(core.exitFailCause(message.cause));
680
- this._asyncInterruptor = null;
681
- }
682
- return EvaluationSignalContinue;
683
- }
684
- case FiberMessage.OP_RESUME:
685
- {
686
- this._asyncInterruptor = null;
687
- this._asyncBlockingOn = null;
688
- this.evaluateEffect(message.effect);
689
- return EvaluationSignalContinue;
690
- }
691
- case FiberMessage.OP_STATEFUL:
692
- {
693
- message.onFiber(this, this._exitValue !== null ? FiberStatus.done : FiberStatus.suspended(this._runtimeFlags, this._asyncBlockingOn));
694
- return EvaluationSignalContinue;
695
- }
696
- default:
697
- {
698
- return absurd(message);
699
- }
700
- }
701
- }
702
- /**
703
- * Evaluates an effect until completion, potentially asynchronously.
704
- *
705
- * **NOTE**: This method must be invoked by the fiber itself.
706
- */
707
- evaluateEffect(effect0) {
708
- this._supervisor.onResume(this);
709
- try {
710
- let effect = _runtimeFlags.interruptible(this._runtimeFlags) && this.isInterrupted() ? core.exitFailCause(this.getInterruptedCause()) : effect0;
711
- while (effect !== null) {
712
- try {
713
- const eff = effect;
714
- const exit = this.runLoop(eff);
715
- this._runtimeFlags = (0, _Function.pipe)(this._runtimeFlags, _runtimeFlags.enable(_runtimeFlags.WindDown));
716
- const interruption = this.interruptAllChildren();
717
- if (interruption !== null) {
718
- effect = core.flatMap(interruption, () => exit);
719
- } else {
720
- if (this._queue.length === 0) {
721
- // No more messages to process, so we will allow the fiber to end life:
722
- this.setExitValue(exit);
723
- } else {
724
- // There are messages, possibly added by the final op executed by
725
- // the fiber. To be safe, we should execute those now before we
726
- // allow the fiber to end life:
727
- this.tell(FiberMessage.resume(exit));
728
- }
729
- effect = null;
730
- }
731
- } catch (e) {
732
- if (core.isEffect(e)) {
733
- if (e._op === OpCodes.OP_YIELD) {
734
- if (_runtimeFlags.cooperativeYielding(this._runtimeFlags)) {
735
- this.tell(FiberMessage.yieldNow());
736
- this.tell(FiberMessage.resume(core.exitUnit));
737
- effect = null;
738
- } else {
739
- effect = core.exitUnit;
740
- }
741
- } else if (e._op === OpCodes.OP_ASYNC) {
742
- // Terminate this evaluation, async resumption will continue evaluation:
743
- effect = null;
744
- }
745
- } else {
746
- throw e;
747
- }
748
- }
749
- }
750
- } finally {
751
- this._supervisor.onSuspend(this);
752
- }
753
- }
754
- /**
755
- * Begins execution of the effect associated with this fiber on the current
756
- * thread. This can be called to "kick off" execution of a fiber after it has
757
- * been created, in hopes that the effect can be executed synchronously.
758
- *
759
- * This is not the normal way of starting a fiber, but it is useful when the
760
- * express goal of executing the fiber is to synchronously produce its exit.
761
- */
762
- start(effect) {
763
- if (!this._running) {
764
- this._running = true;
765
- const prev = globalThis[internalFiber.currentFiberURI];
766
- globalThis[internalFiber.currentFiberURI] = this;
767
- try {
768
- this.evaluateEffect(effect);
769
- } finally {
770
- this._running = false;
771
- globalThis[internalFiber.currentFiberURI] = prev;
772
- // Because we're special casing `start`, we have to be responsible
773
- // for spinning up the fiber if there were new messages added to
774
- // the queue between the completion of the effect and the transition
775
- // to the not running state.
776
- if (this._queue.length > 0) {
777
- this.drainQueueLaterOnExecutor();
778
- }
779
- }
780
- } else {
781
- this.tell(FiberMessage.resume(effect));
782
- }
783
- }
784
- /**
785
- * Begins execution of the effect associated with this fiber on in the
786
- * background, and on the correct thread pool. This can be called to "kick
787
- * off" execution of a fiber after it has been created, in hopes that the
788
- * effect can be executed synchronously.
789
- */
790
- startFork(effect) {
791
- this.tell(FiberMessage.resume(effect));
792
- }
793
- /**
794
- * Takes the current runtime flags, patches them to return the new runtime
795
- * flags, and then makes any changes necessary to fiber state based on the
796
- * specified patch.
797
- *
798
- * **NOTE**: This method must be invoked by the fiber itself.
799
- */
800
- patchRuntimeFlags(oldRuntimeFlags, patch) {
801
- const newRuntimeFlags = _runtimeFlags.patch(oldRuntimeFlags, patch);
802
- globalThis[internalFiber.currentFiberURI] = this;
803
- this._runtimeFlags = newRuntimeFlags;
804
- return newRuntimeFlags;
805
- }
806
- /**
807
- * Initiates an asynchronous operation, by building a callback that will
808
- * resume execution, and then feeding that callback to the registration
809
- * function, handling error cases and repeated resumptions appropriately.
810
- *
811
- * **NOTE**: This method must be invoked by the fiber itself.
812
- */
813
- initiateAsync(runtimeFlags, asyncRegister) {
814
- let alreadyCalled = false;
815
- const callback = effect => {
816
- if (!alreadyCalled) {
817
- alreadyCalled = true;
818
- this.tell(FiberMessage.resume(effect));
819
- }
820
- };
821
- if (_runtimeFlags.interruptible(runtimeFlags)) {
822
- this._asyncInterruptor = callback;
823
- }
824
- try {
825
- asyncRegister(callback);
826
- } catch (e) {
827
- callback(core.failCause(internalCause.die(e)));
828
- }
829
- }
830
- pushStack(cont) {
831
- this._stack.push(cont);
832
- if (cont._op === "OnStep") {
833
- this._steps.push({
834
- refs: this.getFiberRefs(),
835
- flags: this._runtimeFlags
836
- });
837
- }
838
- }
839
- popStack() {
840
- const item = this._stack.pop();
841
- if (item) {
842
- if (item._op === "OnStep") {
843
- this._steps.pop();
844
- }
845
- return item;
846
- }
847
- return;
848
- }
849
- getNextSuccessCont() {
850
- let frame = this.popStack();
851
- while (frame) {
852
- if (frame._op !== OpCodes.OP_ON_FAILURE) {
853
- return frame;
854
- }
855
- frame = this.popStack();
856
- }
857
- }
858
- getNextFailCont() {
859
- let frame = this.popStack();
860
- while (frame) {
861
- if (frame._op !== OpCodes.OP_ON_SUCCESS && frame._op !== OpCodes.OP_WHILE) {
862
- return frame;
863
- }
864
- frame = this.popStack();
865
- }
866
- }
867
- [OpCodes.OP_TAG](op) {
868
- return core.map(core.fiberRefGet(core.currentContext), context => Context.unsafeGet(context, op));
869
- }
870
- ["Left"](op) {
871
- return core.fail(op.left);
872
- }
873
- ["None"](_) {
874
- return core.fail(new core.NoSuchElementException());
875
- }
876
- ["Right"](op) {
877
- return core.exitSucceed(op.right);
878
- }
879
- ["Some"](op) {
880
- return core.exitSucceed(op.value);
881
- }
882
- [OpCodes.OP_SYNC](op) {
883
- const value = op.i0();
884
- const cont = this.getNextSuccessCont();
885
- if (cont !== undefined) {
886
- if (!(cont._op in contOpSuccess)) {
887
- // @ts-expect-error
888
- absurd(cont);
889
- }
890
- // @ts-expect-error
891
- return contOpSuccess[cont._op](this, cont, value);
892
- } else {
893
- throw core.exitSucceed(value);
894
- }
895
- }
896
- [OpCodes.OP_SUCCESS](op) {
897
- const oldCur = op;
898
- const cont = this.getNextSuccessCont();
899
- if (cont !== undefined) {
900
- if (!(cont._op in contOpSuccess)) {
901
- // @ts-expect-error
902
- absurd(cont);
903
- }
904
- // @ts-expect-error
905
- return contOpSuccess[cont._op](this, cont, oldCur.i0);
906
- } else {
907
- throw oldCur;
908
- }
909
- }
910
- [OpCodes.OP_FAILURE](op) {
911
- const cause = op.i0;
912
- const cont = this.getNextFailCont();
913
- if (cont !== undefined) {
914
- switch (cont._op) {
915
- case OpCodes.OP_ON_FAILURE:
916
- case OpCodes.OP_ON_SUCCESS_AND_FAILURE:
917
- {
918
- if (!(_runtimeFlags.interruptible(this._runtimeFlags) && this.isInterrupted())) {
919
- return cont.i1(cause);
920
- } else {
921
- return core.exitFailCause(internalCause.stripFailures(cause));
922
- }
923
- }
924
- case "OnStep":
925
- {
926
- if (!(_runtimeFlags.interruptible(this._runtimeFlags) && this.isInterrupted())) {
927
- return core.exitSucceed(core.exitFailCause(cause));
928
- } else {
929
- return core.exitFailCause(internalCause.stripFailures(cause));
930
- }
931
- }
932
- case OpCodes.OP_REVERT_FLAGS:
933
- {
934
- this.patchRuntimeFlags(this._runtimeFlags, cont.patch);
935
- if (_runtimeFlags.interruptible(this._runtimeFlags) && this.isInterrupted()) {
936
- return core.exitFailCause(internalCause.sequential(cause, this.getInterruptedCause()));
937
- } else {
938
- return core.exitFailCause(cause);
939
- }
940
- }
941
- default:
942
- {
943
- absurd(cont);
944
- }
945
- }
946
- } else {
947
- throw core.exitFailCause(cause);
948
- }
949
- }
950
- [OpCodes.OP_WITH_RUNTIME](op) {
951
- return op.i0(this, FiberStatus.running(this._runtimeFlags));
952
- }
953
- ["Blocked"](op) {
954
- const refs = this.getFiberRefs();
955
- const flags = this._runtimeFlags;
956
- if (this._steps.length > 0) {
957
- const frames = [];
958
- const snap = this._steps[this._steps.length - 1];
959
- let frame = this.popStack();
960
- while (frame && frame._op !== "OnStep") {
961
- frames.push(frame);
962
- frame = this.popStack();
963
- }
964
- this.setFiberRefs(snap.refs);
965
- this._runtimeFlags = snap.flags;
966
- const patchRefs = FiberRefsPatch.diff(snap.refs, refs);
967
- const patchFlags = _runtimeFlags.diff(snap.flags, flags);
968
- return core.exitSucceed(core.blocked(op.i0, core.withFiberRuntime(newFiber => {
969
- while (frames.length > 0) {
970
- newFiber.pushStack(frames.pop());
971
- }
972
- newFiber.setFiberRefs(FiberRefsPatch.patch(newFiber.id(), newFiber.getFiberRefs())(patchRefs));
973
- newFiber._runtimeFlags = _runtimeFlags.patch(patchFlags)(newFiber._runtimeFlags);
974
- return op.i1;
975
- })));
976
- }
977
- return core.uninterruptibleMask(restore => core.flatMap(forkDaemon(core.runRequestBlock(op.i0)), () => restore(op.i1)));
978
- }
979
- ["RunBlocked"](op) {
980
- return runBlockedRequests(op.i0);
981
- }
982
- [OpCodes.OP_UPDATE_RUNTIME_FLAGS](op) {
983
- const updateFlags = op.i0;
984
- const oldRuntimeFlags = this._runtimeFlags;
985
- const newRuntimeFlags = _runtimeFlags.patch(oldRuntimeFlags, updateFlags);
986
- // One more chance to short circuit: if we're immediately going
987
- // to interrupt. Interruption will cause immediate reversion of
988
- // the flag, so as long as we "peek ahead", there's no need to
989
- // set them to begin with.
990
- if (_runtimeFlags.interruptible(newRuntimeFlags) && this.isInterrupted()) {
991
- return core.exitFailCause(this.getInterruptedCause());
992
- } else {
993
- // Impossible to short circuit, so record the changes
994
- this.patchRuntimeFlags(this._runtimeFlags, updateFlags);
995
- if (op.i1) {
996
- // Since we updated the flags, we need to revert them
997
- const revertFlags = _runtimeFlags.diff(newRuntimeFlags, oldRuntimeFlags);
998
- this.pushStack(new core.RevertFlags(revertFlags, op));
999
- return op.i1(oldRuntimeFlags);
1000
- } else {
1001
- return core.exitUnit;
1002
- }
1003
- }
1004
- }
1005
- [OpCodes.OP_ON_SUCCESS](op) {
1006
- this.pushStack(op);
1007
- return op.i0;
1008
- }
1009
- ["OnStep"](op) {
1010
- this.pushStack(op);
1011
- return op.i0;
1012
- }
1013
- [OpCodes.OP_ON_FAILURE](op) {
1014
- this.pushStack(op);
1015
- return op.i0;
1016
- }
1017
- [OpCodes.OP_ON_SUCCESS_AND_FAILURE](op) {
1018
- this.pushStack(op);
1019
- return op.i0;
1020
- }
1021
- [OpCodes.OP_ASYNC](op) {
1022
- this._asyncBlockingOn = op.i1;
1023
- this.initiateAsync(this._runtimeFlags, op.i0);
1024
- throw op;
1025
- }
1026
- [OpCodes.OP_YIELD](op) {
1027
- this.isYielding = false;
1028
- throw op;
1029
- }
1030
- [OpCodes.OP_WHILE](op) {
1031
- const check = op.i0;
1032
- const body = op.i1;
1033
- if (check()) {
1034
- this.pushStack(op);
1035
- return body();
1036
- } else {
1037
- return core.exitUnit;
1038
- }
1039
- }
1040
- [OpCodes.OP_COMMIT](op) {
1041
- return op.commit();
1042
- }
1043
- /**
1044
- * The main run-loop for evaluating effects.
1045
- *
1046
- * **NOTE**: This method must be invoked by the fiber itself.
1047
- */
1048
- runLoop(effect0) {
1049
- let cur = effect0;
1050
- this.currentOpCount = 0;
1051
- // eslint-disable-next-line no-constant-condition
1052
- while (true) {
1053
- if ((this._runtimeFlags & _runtimeFlags2.OpSupervision) !== 0) {
1054
- this._supervisor.onEffect(this, cur);
1055
- }
1056
- if (this._queue.length > 0) {
1057
- cur = this.drainQueueWhileRunning(this._runtimeFlags, cur);
1058
- }
1059
- if (!this.isYielding) {
1060
- this.currentOpCount += 1;
1061
- const shouldYield = this._scheduler.shouldYield(this);
1062
- if (shouldYield !== false) {
1063
- this.isYielding = true;
1064
- this.currentOpCount = 0;
1065
- const oldCur = cur;
1066
- cur = core.flatMap(core.yieldNow({
1067
- priority: shouldYield
1068
- }), () => oldCur);
1069
- }
1070
- }
1071
- try {
1072
- if (!("_op" in cur) || !(cur._op in this)) {
1073
- // @ts-expect-error
1074
- absurd(cur);
1075
- }
1076
- // @ts-expect-error
1077
- cur = this._tracer.context(() => {
1078
- if (_version.moduleVersion !== cur[_Effectable.EffectTypeId]._V) {
1079
- return core.dieMessage(`Cannot execute an Effect versioned ${cur[_Effectable.EffectTypeId]._V} with a Runtime of version ${_version.moduleVersion}`);
1080
- }
1081
- // @ts-expect-error
1082
- return this[cur._op](cur);
1083
- }, this);
1084
- } catch (e) {
1085
- if (core.isEffect(e)) {
1086
- if (e._op === OpCodes.OP_YIELD || e._op === OpCodes.OP_ASYNC) {
1087
- throw e;
1088
- } else if (e._op === OpCodes.OP_SUCCESS || e._op === OpCodes.OP_FAILURE) {
1089
- return e;
1090
- } else {
1091
- cur = core.exitFailCause(internalCause.die(e));
1092
- }
1093
- } else if (core.isEffectError(e)) {
1094
- cur = core.exitFailCause(e.cause);
1095
- } else if (core.isInterruptedException(e)) {
1096
- cur = core.exitFailCause(internalCause.sequential(internalCause.die(e), internalCause.interrupt(FiberId.none)));
1097
- } else {
1098
- cur = core.exitFailCause(internalCause.die(e));
1099
- }
1100
- }
1101
- }
1102
- }
1103
- run = () => {
1104
- this.drainQueueOnCurrentThread();
1105
- };
1106
- }
1107
- // circular with Logger
1108
- /** @internal */
1109
- exports.FiberRuntime = FiberRuntime;
1110
- const currentMinimumLogLevel = exports.currentMinimumLogLevel = /*#__PURE__*/(0, _GlobalValue.globalValue)("effect/FiberRef/currentMinimumLogLevel", () => core.fiberRefUnsafeMake(LogLevel.fromLiteral("Info")));
1111
- /** @internal */
1112
- const getConsole = refs => {
1113
- const defaultServicesValue = FiberRefs.getOrDefault(refs, defaultServices.currentServices);
1114
- const cnsl = Context.get(defaultServicesValue, _console.consoleTag);
1115
- return cnsl.unsafe;
1116
- };
1117
- /** @internal */
1118
- exports.getConsole = getConsole;
1119
- const defaultLogger = exports.defaultLogger = /*#__PURE__*/(0, _GlobalValue.globalValue)( /*#__PURE__*/Symbol.for("effect/Logger/defaultLogger"), () => internalLogger.makeLogger(options => {
1120
- const formatted = internalLogger.stringLogger.log(options);
1121
- getConsole(options.context).log(formatted);
1122
- }));
1123
- /** @internal */
1124
- const logFmtLogger = exports.logFmtLogger = /*#__PURE__*/(0, _GlobalValue.globalValue)( /*#__PURE__*/Symbol.for("effect/Logger/logFmtLogger"), () => internalLogger.makeLogger(options => {
1125
- const formatted = internalLogger.logfmtLogger.log(options);
1126
- getConsole(options.context).log(formatted);
1127
- }));
1128
- /** @internal */
1129
- const tracerLogger = exports.tracerLogger = /*#__PURE__*/(0, _GlobalValue.globalValue)( /*#__PURE__*/Symbol.for("effect/Logger/tracerLogger"), () => internalLogger.makeLogger(({
1130
- annotations,
1131
- cause,
1132
- context,
1133
- fiberId,
1134
- logLevel,
1135
- message
1136
- }) => {
1137
- const span = Option.flatMap(fiberRefs.get(context, core.currentContext), Context.getOption(tracer.spanTag));
1138
- const clockService = Option.map(fiberRefs.get(context, defaultServices.currentServices), _ => Context.get(_, clock.clockTag));
1139
- if (span._tag === "None" || span.value._tag === "ExternalSpan" || clockService._tag === "None") {
1140
- return;
1141
- }
1142
- const attributes = Object.fromEntries(HashMap.map(annotations, value => internalLogger.serializeUnknown(value)));
1143
- attributes["effect.fiberId"] = FiberId.threadName(fiberId);
1144
- attributes["effect.logLevel"] = logLevel.label;
1145
- if (cause !== null && cause._tag !== "Empty") {
1146
- attributes["effect.cause"] = internalCause.pretty(cause);
1147
- }
1148
- span.value.event(String(message), clockService.value.unsafeCurrentTimeNanos(), attributes);
1149
- }));
1150
- /** @internal */
1151
- const loggerWithSpanAnnotations = self => internalLogger.mapInputOptions(self, options => {
1152
- const span = Option.flatMap(fiberRefs.get(options.context, core.currentContext), Context.getOption(tracer.spanTag));
1153
- if (span._tag === "None") {
1154
- return options;
1155
- }
1156
- return {
1157
- ...options,
1158
- annotations: (0, _Function.pipe)(options.annotations, HashMap.set("effect.traceId", span.value.traceId), HashMap.set("effect.spanId", span.value.spanId), span.value._tag === "Span" ? HashMap.set("effect.spanName", span.value.name) : _Function.identity)
1159
- };
1160
- });
1161
- /** @internal */
1162
- exports.loggerWithSpanAnnotations = loggerWithSpanAnnotations;
1163
- const currentLoggers = exports.currentLoggers = /*#__PURE__*/(0, _GlobalValue.globalValue)( /*#__PURE__*/Symbol.for("effect/FiberRef/currentLoggers"), () => core.fiberRefUnsafeMakeHashSet(HashSet.make(defaultLogger, tracerLogger)));
1164
- // circular with Effect
1165
- /* @internal */
1166
- const acquireRelease = exports.acquireRelease = /*#__PURE__*/(0, _Function.dual)(args => core.isEffect(args[0]), (acquire, release) => {
1167
- return core.uninterruptible(core.tap(acquire, a => addFinalizer(exit => release(a, exit))));
1168
- });
1169
- /* @internal */
1170
- const acquireReleaseInterruptible = exports.acquireReleaseInterruptible = /*#__PURE__*/(0, _Function.dual)(args => core.isEffect(args[0]), (acquire, release) => {
1171
- return ensuring(acquire, addFinalizer(exit => release(exit)));
1172
- });
1173
- /* @internal */
1174
- const addFinalizer = finalizer => core.withFiberRuntime(runtime => {
1175
- const acquireRefs = runtime.getFiberRefs();
1176
- const acquireFlags = runtime._runtimeFlags;
1177
- return core.flatMap(scope, scope => core.scopeAddFinalizerExit(scope, exit => core.withFiberRuntime(runtimeFinalizer => {
1178
- const preRefs = runtimeFinalizer.getFiberRefs();
1179
- const preFlags = runtimeFinalizer._runtimeFlags;
1180
- const patchRefs = FiberRefsPatch.diff(preRefs, acquireRefs);
1181
- const patchFlags = _runtimeFlags.diff(preFlags, acquireFlags);
1182
- const inverseRefs = FiberRefsPatch.diff(acquireRefs, preRefs);
1183
- runtimeFinalizer.setFiberRefs(FiberRefsPatch.patch(patchRefs, runtimeFinalizer.id(), acquireRefs));
1184
- return ensuring(core.withRuntimeFlags(finalizer(exit), patchFlags), core.sync(() => {
1185
- runtimeFinalizer.setFiberRefs(FiberRefsPatch.patch(inverseRefs, runtimeFinalizer.id(), runtimeFinalizer.getFiberRefs()));
1186
- }));
1187
- })));
1188
- });
1189
- /* @internal */
1190
- exports.addFinalizer = addFinalizer;
1191
- const daemonChildren = self => {
1192
- const forkScope = core.fiberRefLocally(core.currentForkScopeOverride, Option.some(fiberScope.globalScope));
1193
- return forkScope(self);
1194
- };
1195
- /** @internal */
1196
- exports.daemonChildren = daemonChildren;
1197
- const _existsParFound = /*#__PURE__*/Symbol.for("effect/Effect/existsPar/found");
1198
- /* @internal */
1199
- const exists = exports.exists = /*#__PURE__*/(0, _Function.dual)(args => Predicate.isIterable(args[0]), (elements, f, options) => concurrency.matchSimple(options?.concurrency, () => core.suspend(() => existsLoop(elements[Symbol.iterator](), 0, f)), () => core.matchEffect(forEach(elements, (a, i) => core.if_(f(a, i), {
1200
- onTrue: core.fail(_existsParFound),
1201
- onFalse: core.unit
1202
- }), options), {
1203
- onFailure: e => e === _existsParFound ? core.succeed(true) : core.fail(e),
1204
- onSuccess: () => core.succeed(false)
1205
- })));
1206
- const existsLoop = (iterator, index, f) => {
1207
- const next = iterator.next();
1208
- if (next.done) {
1209
- return core.succeed(false);
1210
- }
1211
- return (0, _Function.pipe)(core.flatMap(f(next.value, index), b => b ? core.succeed(b) : existsLoop(iterator, index + 1, f)));
1212
- };
1213
- /* @internal */
1214
- const filter = exports.filter = /*#__PURE__*/(0, _Function.dual)(args => Predicate.isIterable(args[0]), (elements, f, options) => {
1215
- const predicate = options?.negate ? (a, i) => core.map(f(a, i), Boolean.not) : f;
1216
- return concurrency.matchSimple(options?.concurrency, () => core.suspend(() => RA.fromIterable(elements).reduceRight((effect, a, i) => core.zipWith(effect, core.suspend(() => predicate(a, i)), (list, b) => b ? [a, ...list] : list), core.sync(() => new Array()))), () => core.map(forEach(elements, (a, i) => core.map(predicate(a, i), b => b ? Option.some(a) : Option.none()), options), RA.getSomes));
1217
- });
1218
- // === all
1219
- const allResolveInput = input => {
1220
- if (Array.isArray(input) || Predicate.isIterable(input)) {
1221
- return [input, Option.none()];
1222
- }
1223
- const keys = Object.keys(input);
1224
- const size = keys.length;
1225
- return [keys.map(k => input[k]), Option.some(values => {
1226
- const res = {};
1227
- for (let i = 0; i < size; i++) {
1228
- ;
1229
- res[keys[i]] = values[i];
1230
- }
1231
- return res;
1232
- })];
1233
- };
1234
- const allValidate = (effects, reconcile, options) => {
1235
- const eitherEffects = [];
1236
- for (const effect of effects) {
1237
- eitherEffects.push(core.either(effect));
1238
- }
1239
- return core.flatMap(forEach(eitherEffects, _Function.identity, {
1240
- concurrency: options?.concurrency,
1241
- batching: options?.batching
1242
- }), eithers => {
1243
- const none = Option.none();
1244
- const size = eithers.length;
1245
- const errors = new Array(size);
1246
- const successes = new Array(size);
1247
- let errored = false;
1248
- for (let i = 0; i < size; i++) {
1249
- const either = eithers[i];
1250
- if (either._tag === "Left") {
1251
- errors[i] = Option.some(either.left);
1252
- errored = true;
1253
- } else {
1254
- successes[i] = either.right;
1255
- errors[i] = none;
1256
- }
1257
- }
1258
- if (errored) {
1259
- return reconcile._tag === "Some" ? core.fail(reconcile.value(errors)) : core.fail(errors);
1260
- } else if (options?.discard) {
1261
- return core.unit;
1262
- }
1263
- return reconcile._tag === "Some" ? core.succeed(reconcile.value(successes)) : core.succeed(successes);
1264
- });
1265
- };
1266
- const allEither = (effects, reconcile, options) => {
1267
- const eitherEffects = [];
1268
- for (const effect of effects) {
1269
- eitherEffects.push(core.either(effect));
1270
- }
1271
- if (options?.discard) {
1272
- return forEach(eitherEffects, _Function.identity, {
1273
- concurrency: options?.concurrency,
1274
- batching: options?.batching,
1275
- discard: true
1276
- });
1277
- }
1278
- return core.map(forEach(eitherEffects, _Function.identity, {
1279
- concurrency: options?.concurrency,
1280
- batching: options?.batching
1281
- }), eithers => reconcile._tag === "Some" ? reconcile.value(eithers) : eithers);
1282
- };
1283
- /* @internal */
1284
- const all = (arg, options) => {
1285
- const [effects, reconcile] = allResolveInput(arg);
1286
- if (options?.mode === "validate") {
1287
- return allValidate(effects, reconcile, options);
1288
- } else if (options?.mode === "either") {
1289
- return allEither(effects, reconcile, options);
1290
- }
1291
- return reconcile._tag === "Some" ? core.map(forEach(effects, _Function.identity, options), reconcile.value) : forEach(effects, _Function.identity, options);
1292
- };
1293
- /* @internal */
1294
- exports.all = all;
1295
- const allWith = options => arg => all(arg, options);
1296
- /* @internal */
1297
- exports.allWith = allWith;
1298
- const allSuccesses = (elements, options) => core.map(all(RA.fromIterable(elements).map(core.exit), options), RA.filterMap(exit => core.exitIsSuccess(exit) ? Option.some(exit.i0) : Option.none()));
1299
- /* @internal */
1300
- exports.allSuccesses = allSuccesses;
1301
- const replicate = exports.replicate = /*#__PURE__*/(0, _Function.dual)(2, (self, n) => Array.from({
1302
- length: n
1303
- }, () => self));
1304
- /* @internal */
1305
- const replicateEffect = exports.replicateEffect = /*#__PURE__*/(0, _Function.dual)(args => core.isEffect(args[0]), (self, n, options) => all(replicate(self, n), options));
1306
- /* @internal */
1307
- const forEach = exports.forEach = /*#__PURE__*/(0, _Function.dual)(args => Predicate.isIterable(args[0]), (self, f, options) => core.withFiberRuntime(r => {
1308
- const isRequestBatchingEnabled = options?.batching === true || options?.batching === "inherit" && r.getFiberRef(core.currentRequestBatching);
1309
- if (options?.discard) {
1310
- return concurrency.match(options.concurrency, () => finalizersMask(ExecutionStrategy.sequential)(restore => isRequestBatchingEnabled ? forEachConcurrentDiscard(self, (a, i) => restore(f(a, i)), true, false, 1) : core.forEachSequentialDiscard(self, (a, i) => restore(f(a, i)))), () => finalizersMask(ExecutionStrategy.parallel)(restore => forEachConcurrentDiscard(self, (a, i) => restore(f(a, i)), isRequestBatchingEnabled, false)), n => finalizersMask(ExecutionStrategy.parallelN(n))(restore => forEachConcurrentDiscard(self, (a, i) => restore(f(a, i)), isRequestBatchingEnabled, false, n)));
1311
- }
1312
- return concurrency.match(options?.concurrency, () => finalizersMask(ExecutionStrategy.sequential)(restore => isRequestBatchingEnabled ? forEachParN(self, 1, (a, i) => restore(f(a, i)), true) : core.forEachSequential(self, (a, i) => restore(f(a, i)))), () => finalizersMask(ExecutionStrategy.parallel)(restore => forEachParUnbounded(self, (a, i) => restore(f(a, i)), isRequestBatchingEnabled)), n => finalizersMask(ExecutionStrategy.parallelN(n))(restore => forEachParN(self, n, (a, i) => restore(f(a, i)), isRequestBatchingEnabled)));
1313
- }));
1314
- /* @internal */
1315
- const forEachParUnbounded = (self, f, batching) => core.suspend(() => {
1316
- const as = RA.fromIterable(self);
1317
- const array = new Array(as.length);
1318
- const fn = (a, i) => core.flatMap(f(a, i), b => core.sync(() => array[i] = b));
1319
- return core.zipRight(forEachConcurrentDiscard(as, fn, batching, false), core.succeed(array));
1320
- });
1321
- /** @internal */
1322
- exports.forEachParUnbounded = forEachParUnbounded;
1323
- const forEachConcurrentDiscard = (self, f, batching, processAll, n) => core.uninterruptibleMask(restore => core.transplant(graft => core.withFiberRuntime(parent => {
1324
- let todos = Array.from(self).reverse();
1325
- let target = todos.length;
1326
- if (target === 0) {
1327
- return core.unit;
1328
- }
1329
- let counter = 0;
1330
- let interrupted = false;
1331
- const fibersCount = n ? Math.min(todos.length, n) : todos.length;
1332
- const fibers = new Set();
1333
- const results = new Array();
1334
- const interruptAll = () => fibers.forEach(fiber => {
1335
- fiber._scheduler.scheduleTask(() => {
1336
- fiber.unsafeInterruptAsFork(parent.id());
1337
- }, 0);
1338
- });
1339
- const startOrder = new Array();
1340
- const joinOrder = new Array();
1341
- const residual = new Array();
1342
- const collectExits = () => {
1343
- const exits = results.filter(({
1344
- exit
1345
- }) => exit._tag === "Failure").sort((a, b) => a.index < b.index ? -1 : a.index === b.index ? 0 : 1).map(({
1346
- exit
1347
- }) => exit);
1348
- if (exits.length === 0) {
1349
- exits.push(core.exitUnit);
1350
- }
1351
- return exits;
1352
- };
1353
- const runFiber = eff => {
1354
- const runnable = core.uninterruptible(graft(eff));
1355
- const fiber = unsafeForkUnstarted(runnable, parent, parent._runtimeFlags, fiberScope.globalScope);
1356
- parent._scheduler.scheduleTask(() => {
1357
- fiber.resume(runnable);
1358
- }, 0);
1359
- return fiber;
1360
- };
1361
- const onInterruptSignal = () => {
1362
- if (!processAll) {
1363
- target -= todos.length;
1364
- todos = [];
1365
- }
1366
- interrupted = true;
1367
- interruptAll();
1368
- };
1369
- const stepOrExit = batching ? core.step : core.exit;
1370
- const processingFiber = runFiber(core.async(resume => {
1371
- const pushResult = (res, index) => {
1372
- if (res._op === "Blocked") {
1373
- residual.push(res);
1374
- } else {
1375
- results.push({
1376
- index,
1377
- exit: res
1378
- });
1379
- if (res._op === "Failure" && !interrupted) {
1380
- onInterruptSignal();
1381
- }
1382
- }
1383
- };
1384
- const next = () => {
1385
- if (todos.length > 0) {
1386
- const a = todos.pop();
1387
- let index = counter++;
1388
- const returnNextElement = () => {
1389
- const a = todos.pop();
1390
- index = counter++;
1391
- return core.flatMap(core.yieldNow(), () => core.flatMap(stepOrExit(restore(f(a, index))), onRes));
1392
- };
1393
- const onRes = res => {
1394
- if (todos.length > 0) {
1395
- pushResult(res, index);
1396
- if (todos.length > 0) {
1397
- return returnNextElement();
1398
- }
1399
- }
1400
- return core.succeed(res);
1401
- };
1402
- const todo = core.flatMap(stepOrExit(restore(f(a, index))), onRes);
1403
- const fiber = runFiber(todo);
1404
- startOrder.push(fiber);
1405
- fibers.add(fiber);
1406
- if (interrupted) {
1407
- fiber._scheduler.scheduleTask(() => {
1408
- fiber.unsafeInterruptAsFork(parent.id());
1409
- }, 0);
1410
- }
1411
- fiber.addObserver(wrapped => {
1412
- let exit;
1413
- if (wrapped._op === "Failure") {
1414
- exit = wrapped;
1415
- } else {
1416
- exit = wrapped.i0;
1417
- }
1418
- joinOrder.push(fiber);
1419
- fibers.delete(fiber);
1420
- pushResult(exit, index);
1421
- if (results.length === target) {
1422
- resume(core.succeed(Option.getOrElse(core.exitCollectAll(collectExits(), {
1423
- parallel: true
1424
- }), () => core.exitUnit)));
1425
- } else if (residual.length + results.length === target) {
1426
- const requests = residual.map(blocked => blocked.i0).reduce(_RequestBlock.par);
1427
- resume(core.succeed(core.blocked(requests, forEachConcurrentDiscard([Option.getOrElse(core.exitCollectAll(collectExits(), {
1428
- parallel: true
1429
- }), () => core.exitUnit), ...residual.map(blocked => blocked.i1)], i => i, batching, true, n))));
1430
- } else {
1431
- next();
1432
- }
1433
- });
1434
- }
1435
- };
1436
- for (let i = 0; i < fibersCount; i++) {
1437
- next();
1438
- }
1439
- }));
1440
- return core.asUnit(core.tap(core.flatten(core.onInterrupt(restore(internalFiber.join(processingFiber)), () => {
1441
- onInterruptSignal();
1442
- return internalFiber._await(processingFiber);
1443
- })), () => core.forEachSequential(joinOrder, f => f.inheritAll)));
1444
- })));
1445
- /* @internal */
1446
- exports.forEachConcurrentDiscard = forEachConcurrentDiscard;
1447
- const forEachParN = (self, n, f, batching) => core.suspend(() => {
1448
- const as = RA.fromIterable(self);
1449
- const array = new Array(as.length);
1450
- const fn = (a, i) => core.map(f(a, i), b => array[i] = b);
1451
- return core.zipRight(forEachConcurrentDiscard(as, fn, batching, false, n), core.succeed(array));
1452
- });
1453
- /* @internal */
1454
- exports.forEachParN = forEachParN;
1455
- const fork = self => core.withFiberRuntime((state, status) => core.succeed(unsafeFork(self, state, status.runtimeFlags)));
1456
- /* @internal */
1457
- exports.fork = fork;
1458
- const forkDaemon = self => forkWithScopeOverride(self, fiberScope.globalScope);
1459
- /* @internal */
1460
- exports.forkDaemon = forkDaemon;
1461
- const forkWithErrorHandler = exports.forkWithErrorHandler = /*#__PURE__*/(0, _Function.dual)(2, (self, handler) => fork(core.onError(self, cause => {
1462
- const either = internalCause.failureOrCause(cause);
1463
- switch (either._tag) {
1464
- case "Left":
1465
- {
1466
- return handler(either.left);
1467
- }
1468
- case "Right":
1469
- {
1470
- return core.failCause(either.right);
1471
- }
1472
- }
1473
- })));
1474
- /** @internal */
1475
- const unsafeFork = (effect, parentFiber, parentRuntimeFlags, overrideScope = null) => {
1476
- const childFiber = unsafeMakeChildFiber(effect, parentFiber, parentRuntimeFlags, overrideScope);
1477
- childFiber.resume(effect);
1478
- return childFiber;
1479
- };
1480
- /** @internal */
1481
- exports.unsafeFork = unsafeFork;
1482
- const unsafeForkUnstarted = (effect, parentFiber, parentRuntimeFlags, overrideScope = null) => {
1483
- const childFiber = unsafeMakeChildFiber(effect, parentFiber, parentRuntimeFlags, overrideScope);
1484
- return childFiber;
1485
- };
1486
- /** @internal */
1487
- exports.unsafeForkUnstarted = unsafeForkUnstarted;
1488
- const unsafeMakeChildFiber = (effect, parentFiber, parentRuntimeFlags, overrideScope = null) => {
1489
- const childId = FiberId.unsafeMake();
1490
- const parentFiberRefs = parentFiber.getFiberRefs();
1491
- const childFiberRefs = fiberRefs.forkAs(parentFiberRefs, childId);
1492
- const childFiber = new FiberRuntime(childId, childFiberRefs, parentRuntimeFlags);
1493
- const childContext = fiberRefs.getOrDefault(childFiberRefs, core.currentContext);
1494
- const supervisor = childFiber._supervisor;
1495
- supervisor.onStart(childContext, effect, Option.some(parentFiber), childFiber);
1496
- childFiber.addObserver(exit => supervisor.onEnd(exit, childFiber));
1497
- const parentScope = overrideScope !== null ? overrideScope : (0, _Function.pipe)(parentFiber.getFiberRef(core.currentForkScopeOverride), Option.getOrElse(() => parentFiber.scope()));
1498
- parentScope.add(parentRuntimeFlags, childFiber);
1499
- return childFiber;
1500
- };
1501
- /* @internal */
1502
- exports.unsafeMakeChildFiber = unsafeMakeChildFiber;
1503
- const forkWithScopeOverride = (self, scopeOverride) => core.withFiberRuntime((parentFiber, parentStatus) => core.succeed(unsafeFork(self, parentFiber, parentStatus.runtimeFlags, scopeOverride)));
1504
- /* @internal */
1505
- const mergeAll = exports.mergeAll = /*#__PURE__*/(0, _Function.dual)(args => Predicate.isIterable(args[0]), (elements, zero, f, options) => concurrency.matchSimple(options?.concurrency, () => RA.fromIterable(elements).reduce((acc, a, i) => core.zipWith(acc, a, (acc, a) => f(acc, a, i)), core.succeed(zero)), () => core.flatMap(Ref.make(zero), acc => core.flatMap(forEach(elements, (effect, i) => core.flatMap(effect, a => Ref.update(acc, b => f(b, a, i))), options), () => Ref.get(acc)))));
1506
- /* @internal */
1507
- const partition = exports.partition = /*#__PURE__*/(0, _Function.dual)(args => Predicate.isIterable(args[0]), (elements, f, options) => (0, _Function.pipe)(forEach(elements, (a, i) => core.either(f(a, i)), options), core.map(chunk => core.partitionMap(chunk, _Function.identity))));
1508
- /* @internal */
1509
- const validateAll = exports.validateAll = /*#__PURE__*/(0, _Function.dual)(args => Predicate.isIterable(args[0]), (elements, f, options) => core.flatMap(partition(elements, f, {
1510
- concurrency: options?.concurrency,
1511
- batching: options?.batching
1512
- }), ([es, bs]) => es.length === 0 ? options?.discard ? core.unit : core.succeed(bs) : core.fail(es)));
1513
- /* @internal */
1514
- const raceAll = all => {
1515
- const list = Chunk.fromIterable(all);
1516
- if (!Chunk.isNonEmpty(list)) {
1517
- return core.dieSync(() => new core.IllegalArgumentException(`Received an empty collection of effects`));
1518
- }
1519
- const self = Chunk.headNonEmpty(list);
1520
- const effects = Chunk.tailNonEmpty(list);
1521
- const inheritAll = res => (0, _Function.pipe)(internalFiber.inheritAll(res[1]), core.as(res[0]));
1522
- return (0, _Function.pipe)(core.deferredMake(), core.flatMap(done => (0, _Function.pipe)(Ref.make(effects.length), core.flatMap(fails => core.uninterruptibleMask(restore => (0, _Function.pipe)(fork(core.interruptible(self)), core.flatMap(head => (0, _Function.pipe)(effects, core.forEachSequential(effect => fork(core.interruptible(effect))), core.map(Chunk.unsafeFromArray), core.map(tail => (0, _Function.pipe)(tail, Chunk.prepend(head))), core.tap(fibers => (0, _Function.pipe)(fibers, RA.reduce(core.unit, (effect, fiber) => (0, _Function.pipe)(effect, core.zipRight((0, _Function.pipe)(internalFiber._await(fiber), core.flatMap(raceAllArbiter(fibers, fiber, done, fails)), fork, core.asUnit)))))), core.flatMap(fibers => (0, _Function.pipe)(restore((0, _Function.pipe)(Deferred.await(done), core.flatMap(inheritAll))), core.onInterrupt(() => (0, _Function.pipe)(fibers, RA.reduce(core.unit, (effect, fiber) => (0, _Function.pipe)(effect, core.zipLeft(core.interruptFiber(fiber))))))))))))))));
1523
- };
1524
- /* @internal */
1525
- exports.raceAll = raceAll;
1526
- const raceAllArbiter = (fibers, winner, deferred, fails) => exit => core.exitMatchEffect(exit, {
1527
- onFailure: cause => (0, _Function.pipe)(Ref.modify(fails, fails => [fails === 0 ? (0, _Function.pipe)(core.deferredFailCause(deferred, cause), core.asUnit) : core.unit, fails - 1]), core.flatten),
1528
- onSuccess: value => (0, _Function.pipe)(core.deferredSucceed(deferred, [value, winner]), core.flatMap(set => set ? (0, _Function.pipe)(Chunk.fromIterable(fibers), RA.reduce(core.unit, (effect, fiber) => fiber === winner ? effect : (0, _Function.pipe)(effect, core.zipLeft(core.interruptFiber(fiber))))) : core.unit))
1529
- });
1530
- /* @internal */
1531
- const reduceEffect = exports.reduceEffect = /*#__PURE__*/(0, _Function.dual)(args => Predicate.isIterable(args[0]), (elements, zero, f, options) => concurrency.matchSimple(options?.concurrency, () => RA.fromIterable(elements).reduce((acc, a, i) => core.zipWith(acc, a, (acc, a) => f(acc, a, i)), zero), () => core.suspend(() => (0, _Function.pipe)(mergeAll([zero, ...elements], Option.none(), (acc, elem, i) => {
1532
- switch (acc._tag) {
1533
- case "None":
1534
- {
1535
- return Option.some(elem);
1536
- }
1537
- case "Some":
1538
- {
1539
- return Option.some(f(acc.value, elem, i));
1540
- }
1541
- }
1542
- }, options), core.map(option => {
1543
- switch (option._tag) {
1544
- case "None":
1545
- {
1546
- throw new Error("BUG: Effect.reduceEffect - please report an issue at https://github.com/Effect-TS/effect/issues");
1547
- }
1548
- case "Some":
1549
- {
1550
- return option.value;
1551
- }
1552
- }
1553
- })))));
1554
- /* @internal */
1555
- const parallelFinalizers = self => core.contextWithEffect(context => Option.match(Context.getOption(context, scopeTag), {
1556
- onNone: () => self,
1557
- onSome: scope => {
1558
- switch (scope.strategy._tag) {
1559
- case "Parallel":
1560
- return self;
1561
- case "Sequential":
1562
- case "ParallelN":
1563
- return core.flatMap(core.scopeFork(scope, ExecutionStrategy.parallel), inner => scopeExtend(self, inner));
1564
- }
1565
- }
1566
- }));
1567
- /* @internal */
1568
- exports.parallelFinalizers = parallelFinalizers;
1569
- const parallelNFinalizers = parallelism => self => core.contextWithEffect(context => Option.match(Context.getOption(context, scopeTag), {
1570
- onNone: () => self,
1571
- onSome: scope => {
1572
- if (scope.strategy._tag === "ParallelN" && scope.strategy.parallelism === parallelism) {
1573
- return self;
1574
- }
1575
- return core.flatMap(core.scopeFork(scope, ExecutionStrategy.parallelN(parallelism)), inner => scopeExtend(self, inner));
1576
- }
1577
- }));
1578
- /* @internal */
1579
- exports.parallelNFinalizers = parallelNFinalizers;
1580
- const finalizersMask = strategy => self => core.contextWithEffect(context => Option.match(Context.getOption(context, scopeTag), {
1581
- onNone: () => self(_Function.identity),
1582
- onSome: scope => {
1583
- const patch = strategy._tag === "Parallel" ? parallelFinalizers : strategy._tag === "Sequential" ? sequentialFinalizers : parallelNFinalizers(strategy.parallelism);
1584
- switch (scope.strategy._tag) {
1585
- case "Parallel":
1586
- return patch(self(parallelFinalizers));
1587
- case "Sequential":
1588
- return patch(self(sequentialFinalizers));
1589
- case "ParallelN":
1590
- return patch(self(parallelNFinalizers(scope.strategy.parallelism)));
1591
- }
1592
- }
1593
- }));
1594
- /* @internal */
1595
- exports.finalizersMask = finalizersMask;
1596
- const scopeWith = f => core.flatMap(scopeTag, f);
1597
- /* @internal */
1598
- exports.scopeWith = scopeWith;
1599
- const scopedEffect = effect => core.flatMap(scopeMake(), scope => scopeUse(scope)(effect));
1600
- /* @internal */
1601
- exports.scopedEffect = scopedEffect;
1602
- const sequentialFinalizers = self => core.contextWithEffect(context => Option.match(Context.getOption(context, scopeTag), {
1603
- onNone: () => self,
1604
- onSome: scope => {
1605
- switch (scope.strategy._tag) {
1606
- case "Sequential":
1607
- return self;
1608
- case "Parallel":
1609
- case "ParallelN":
1610
- return core.flatMap(core.scopeFork(scope, ExecutionStrategy.sequential), inner => scopeExtend(self, inner));
1611
- }
1612
- }
1613
- }));
1614
- /* @internal */
1615
- exports.sequentialFinalizers = sequentialFinalizers;
1616
- const tagMetricsScoped = (key, value) => labelMetricsScoped([metricLabel.make(key, value)]);
1617
- /* @internal */
1618
- exports.tagMetricsScoped = tagMetricsScoped;
1619
- const labelMetricsScoped = labels => labelMetricsScopedSet(HashSet.fromIterable(labels));
1620
- /* @internal */
1621
- exports.labelMetricsScoped = labelMetricsScoped;
1622
- const labelMetricsScopedSet = labels => fiberRefLocallyScopedWith(core.currentMetricLabels, set => (0, _Function.pipe)(set, HashSet.union(labels)));
1623
- /* @internal */
1624
- exports.labelMetricsScopedSet = labelMetricsScopedSet;
1625
- const using = exports.using = /*#__PURE__*/(0, _Function.dual)(2, (self, use) => core.acquireUseRelease(scopeMake(), scope => core.flatMap(scopeExtend(self, scope), use), (scope, exit) => core.scopeClose(scope, exit)));
1626
- /** @internal */
1627
- const validate = exports.validate = /*#__PURE__*/(0, _Function.dual)(args => core.isEffect(args[1]), (self, that, options) => validateWith(self, that, (a, b) => [a, b], options));
1628
- /** @internal */
1629
- const validateWith = exports.validateWith = /*#__PURE__*/(0, _Function.dual)(args => core.isEffect(args[1]), (self, that, f, options) => core.flatten(zipWithOptions(core.exit(self), core.exit(that), (ea, eb) => core.exitZipWith(ea, eb, {
1630
- onSuccess: f,
1631
- onFailure: (ca, cb) => options?.concurrent ? internalCause.parallel(ca, cb) : internalCause.sequential(ca, cb)
1632
- }), options)));
1633
- /* @internal */
1634
- const validateAllPar = exports.validateAllPar = /*#__PURE__*/(0, _Function.dual)(2, (elements, f) => core.flatMap(partition(elements, f), ([es, bs]) => es.length === 0 ? core.succeed(bs) : core.fail(es)));
1635
- /* @internal */
1636
- const validateAllParDiscard = exports.validateAllParDiscard = /*#__PURE__*/(0, _Function.dual)(2, (elements, f) => core.flatMap(partition(elements, f), ([es, _]) => es.length === 0 ? core.unit : core.fail(es)));
1637
- /* @internal */
1638
- const validateFirst = exports.validateFirst = /*#__PURE__*/(0, _Function.dual)(args => Predicate.isIterable(args[0]), (elements, f, options) => core.flip(forEach(elements, (a, i) => core.flip(f(a, i)), options)));
1639
- /* @internal */
1640
- const withClockScoped = value => fiberRefLocallyScopedWith(defaultServices.currentServices, Context.add(clock.clockTag, value));
1641
- /* @internal */
1642
- exports.withClockScoped = withClockScoped;
1643
- const withConfigProviderScoped = value => fiberRefLocallyScopedWith(defaultServices.currentServices, Context.add(_configProvider.configProviderTag, value));
1644
- /* @internal */
1645
- exports.withConfigProviderScoped = withConfigProviderScoped;
1646
- const withEarlyRelease = self => scopeWith(parent => core.flatMap(core.scopeFork(parent, executionStrategy.sequential), child => (0, _Function.pipe)(self, scopeExtend(child), core.map(value => [core.fiberIdWith(fiberId => core.scopeClose(child, core.exitInterrupt(fiberId))), value]))));
1647
- /** @internal */
1648
- exports.withEarlyRelease = withEarlyRelease;
1649
- const zipOptions = exports.zipOptions = /*#__PURE__*/(0, _Function.dual)(args => core.isEffect(args[1]), (self, that, options) => zipWithOptions(self, that, (a, b) => [a, b], options));
1650
- /** @internal */
1651
- const zipLeftOptions = exports.zipLeftOptions = /*#__PURE__*/(0, _Function.dual)(args => core.isEffect(args[1]), (self, that, options) => zipWithOptions(self, that, (a, _) => a, options));
1652
- /** @internal */
1653
- const zipRightOptions = exports.zipRightOptions = /*#__PURE__*/(0, _Function.dual)(args => core.isEffect(args[1]), (self, that, options) => zipWithOptions(self, that, (_, b) => b, options));
1654
- /** @internal */
1655
- const zipWithOptions = exports.zipWithOptions = /*#__PURE__*/(0, _Function.dual)(args => core.isEffect(args[1]), (self, that, f, options) => core.map(all([self, that], {
1656
- concurrency: options?.concurrent ? 2 : 1,
1657
- batching: options?.batching
1658
- }), ([a, a2]) => f(a, a2)));
1659
- /* @internal */
1660
- const withRuntimeFlagsScoped = update => {
1661
- if (update === RuntimeFlagsPatch.empty) {
1662
- return core.unit;
1663
- }
1664
- return (0, _Function.pipe)(core.runtimeFlags, core.flatMap(runtimeFlags => {
1665
- const updatedRuntimeFlags = _runtimeFlags.patch(runtimeFlags, update);
1666
- const revertRuntimeFlags = _runtimeFlags.diff(updatedRuntimeFlags, runtimeFlags);
1667
- return (0, _Function.pipe)(core.updateRuntimeFlags(update), core.zipRight(addFinalizer(() => core.updateRuntimeFlags(revertRuntimeFlags))), core.asUnit);
1668
- }), core.uninterruptible);
1669
- };
1670
- // circular with ReleaseMap
1671
- /* @internal */
1672
- exports.withRuntimeFlagsScoped = withRuntimeFlagsScoped;
1673
- const releaseMapReleaseAll = (strategy, exit) => self => core.suspend(() => {
1674
- switch (self.state._tag) {
1675
- case "Exited":
1676
- {
1677
- return core.unit;
1678
- }
1679
- case "Running":
1680
- {
1681
- const finalizersMap = self.state.finalizers;
1682
- const update = self.state.update;
1683
- const finalizers = Array.from(finalizersMap.keys()).sort((a, b) => b - a).map(key => finalizersMap.get(key));
1684
- self.state = {
1685
- _tag: "Exited",
1686
- nextKey: self.state.nextKey,
1687
- exit,
1688
- update
1689
- };
1690
- return executionStrategy.isSequential(strategy) ? (0, _Function.pipe)(finalizers, core.forEachSequential(fin => core.exit(update(fin)(exit))), core.flatMap(results => (0, _Function.pipe)(core.exitCollectAll(results), Option.map(core.exitAsUnit), Option.getOrElse(() => core.exitUnit)))) : executionStrategy.isParallel(strategy) ? (0, _Function.pipe)(forEachParUnbounded(finalizers, fin => core.exit(update(fin)(exit)), false), core.flatMap(results => (0, _Function.pipe)(core.exitCollectAll(results, {
1691
- parallel: true
1692
- }), Option.map(core.exitAsUnit), Option.getOrElse(() => core.exitUnit)))) : (0, _Function.pipe)(forEachParN(finalizers, strategy.parallelism, fin => core.exit(update(fin)(exit)), false), core.flatMap(results => (0, _Function.pipe)(core.exitCollectAll(results, {
1693
- parallel: true
1694
- }), Option.map(core.exitAsUnit), Option.getOrElse(() => core.exitUnit))));
1695
- }
1696
- }
1697
- });
1698
- // circular with Scope
1699
- /** @internal */
1700
- exports.releaseMapReleaseAll = releaseMapReleaseAll;
1701
- const scopeTag = exports.scopeTag = /*#__PURE__*/Context.Tag(core.ScopeTypeId);
1702
- /* @internal */
1703
- const scope = exports.scope = scopeTag;
1704
- /* @internal */
1705
- const scopeMake = (strategy = executionStrategy.sequential) => core.map(core.releaseMapMake, rm => ({
1706
- [core.ScopeTypeId]: core.ScopeTypeId,
1707
- [core.CloseableScopeTypeId]: core.CloseableScopeTypeId,
1708
- strategy,
1709
- pipe() {
1710
- return (0, _Pipeable.pipeArguments)(this, arguments);
1711
- },
1712
- fork: strategy => core.uninterruptible((0, _Function.pipe)(scopeMake(strategy), core.flatMap(scope => (0, _Function.pipe)(core.releaseMapAdd(rm, exit => core.scopeClose(scope, exit)), core.tap(fin => core.scopeAddFinalizerExit(scope, fin)), core.as(scope))))),
1713
- close: exit => core.asUnit(releaseMapReleaseAll(strategy, exit)(rm)),
1714
- addFinalizer: fin => core.asUnit(core.releaseMapAdd(fin)(rm))
1715
- }));
1716
- /* @internal */
1717
- exports.scopeMake = scopeMake;
1718
- const scopeExtend = exports.scopeExtend = /*#__PURE__*/(0, _Function.dual)(2, (effect, scope) => core.mapInputContext(effect,
1719
- // @ts-expect-error
1720
- Context.merge(Context.make(scopeTag, scope))));
1721
- /* @internal */
1722
- const scopeUse = exports.scopeUse = /*#__PURE__*/(0, _Function.dual)(2, (effect, scope) => (0, _Function.pipe)(effect, scopeExtend(scope), core.onExit(exit => scope.close(exit))));
1723
- // circular with Supervisor
1724
- /** @internal */
1725
- const fiberRefUnsafeMakeSupervisor = initial => core.fiberRefUnsafeMakePatch(initial, {
1726
- differ: SupervisorPatch.differ,
1727
- fork: SupervisorPatch.empty
1728
- });
1729
- // circular with FiberRef
1730
- /* @internal */
1731
- exports.fiberRefUnsafeMakeSupervisor = fiberRefUnsafeMakeSupervisor;
1732
- const fiberRefLocallyScoped = exports.fiberRefLocallyScoped = /*#__PURE__*/(0, _Function.dual)(2, (self, value) => core.asUnit(acquireRelease(core.flatMap(core.fiberRefGet(self), oldValue => core.as(core.fiberRefSet(self, value), oldValue)), oldValue => core.fiberRefSet(self, oldValue))));
1733
- /* @internal */
1734
- const fiberRefLocallyScopedWith = exports.fiberRefLocallyScopedWith = /*#__PURE__*/(0, _Function.dual)(2, (self, f) => core.fiberRefGetWith(self, a => fiberRefLocallyScoped(self, f(a))));
1735
- /* @internal */
1736
- const fiberRefMake = (initial, options) => fiberRefMakeWith(() => core.fiberRefUnsafeMake(initial, options));
1737
- /* @internal */
1738
- exports.fiberRefMake = fiberRefMake;
1739
- const fiberRefMakeWith = ref => acquireRelease(core.tap(core.sync(ref), ref => core.fiberRefUpdate(ref, _Function.identity)), fiberRef => core.fiberRefDelete(fiberRef));
1740
- /* @internal */
1741
- exports.fiberRefMakeWith = fiberRefMakeWith;
1742
- const fiberRefMakeContext = initial => fiberRefMakeWith(() => core.fiberRefUnsafeMakeContext(initial));
1743
- /* @internal */
1744
- exports.fiberRefMakeContext = fiberRefMakeContext;
1745
- const fiberRefMakeRuntimeFlags = initial => fiberRefMakeWith(() => core.fiberRefUnsafeMakeRuntimeFlags(initial));
1746
- /** @internal */
1747
- exports.fiberRefMakeRuntimeFlags = fiberRefMakeRuntimeFlags;
1748
- const currentRuntimeFlags = exports.currentRuntimeFlags = /*#__PURE__*/core.fiberRefUnsafeMakeRuntimeFlags(_runtimeFlags.none);
1749
- /** @internal */
1750
- const currentSupervisor = exports.currentSupervisor = /*#__PURE__*/fiberRefUnsafeMakeSupervisor(supervisor.none);
1751
- // circular with Fiber
1752
- /* @internal */
1753
- const fiberAwaitAll = fibers => core.asUnit(internalFiber._await(fiberAll(fibers)));
1754
- /** @internal */
1755
- exports.fiberAwaitAll = fiberAwaitAll;
1756
- const fiberAll = fibers => ({
1757
- [internalFiber.FiberTypeId]: internalFiber.fiberVariance,
1758
- id: () => RA.fromIterable(fibers).reduce((id, fiber) => FiberId.combine(id, fiber.id()), FiberId.none),
1759
- await: core.exit(forEachParUnbounded(fibers, fiber => core.flatten(fiber.await), false)),
1760
- children: core.map(forEachParUnbounded(fibers, fiber => fiber.children, false), children => RA.flatten(children)),
1761
- inheritAll: core.forEachSequentialDiscard(fibers, fiber => fiber.inheritAll),
1762
- poll: core.map(core.forEachSequential(fibers, fiber => fiber.poll), RA.reduceRight(Option.some(core.exitSucceed(new Array())), (optionB, optionA) => {
1763
- switch (optionA._tag) {
1764
- case "None":
1765
- {
1766
- return Option.none();
1767
- }
1768
- case "Some":
1769
- {
1770
- switch (optionB._tag) {
1771
- case "None":
1772
- {
1773
- return Option.none();
1774
- }
1775
- case "Some":
1776
- {
1777
- return Option.some(core.exitZipWith(optionA.value, optionB.value, {
1778
- onSuccess: (a, chunk) => [a, ...chunk],
1779
- onFailure: internalCause.parallel
1780
- }));
1781
- }
1782
- }
1783
- }
1784
- }
1785
- })),
1786
- interruptAsFork: fiberId => core.forEachSequentialDiscard(fibers, fiber => fiber.interruptAsFork(fiberId)),
1787
- pipe() {
1788
- return (0, _Pipeable.pipeArguments)(this, arguments);
1789
- }
1790
- });
1791
- /* @internal */
1792
- exports.fiberAll = fiberAll;
1793
- const fiberInterruptFork = self => core.asUnit(forkDaemon(core.interruptFiber(self)));
1794
- /* @internal */
1795
- exports.fiberInterruptFork = fiberInterruptFork;
1796
- const fiberJoinAll = fibers => core.asUnit(internalFiber.join(fiberAll(fibers)));
1797
- /* @internal */
1798
- exports.fiberJoinAll = fiberJoinAll;
1799
- const fiberScoped = self => acquireRelease(core.succeed(self), core.interruptFiber);
1800
- //
1801
- // circular race
1802
- //
1803
- /** @internal */
1804
- exports.fiberScoped = fiberScoped;
1805
- const raceWith = exports.raceWith = /*#__PURE__*/(0, _Function.dual)(3, (self, other, options) => raceFibersWith(self, other, {
1806
- onSelfWin: (winner, loser) => core.flatMap(winner.await, exit => {
1807
- switch (exit._tag) {
1808
- case OpCodes.OP_SUCCESS:
1809
- {
1810
- return core.flatMap(winner.inheritAll, () => options.onSelfDone(exit, loser));
1811
- }
1812
- case OpCodes.OP_FAILURE:
1813
- {
1814
- return options.onSelfDone(exit, loser);
1815
- }
1816
- }
1817
- }),
1818
- onOtherWin: (winner, loser) => core.flatMap(winner.await, exit => {
1819
- switch (exit._tag) {
1820
- case OpCodes.OP_SUCCESS:
1821
- {
1822
- return core.flatMap(winner.inheritAll, () => options.onOtherDone(exit, loser));
1823
- }
1824
- case OpCodes.OP_FAILURE:
1825
- {
1826
- return options.onOtherDone(exit, loser);
1827
- }
1828
- }
1829
- })
1830
- }));
1831
- /** @internal */
1832
- const disconnect = self => core.uninterruptibleMask(restore => core.fiberIdWith(fiberId => core.flatMap(forkDaemon(restore(self)), fiber => (0, _Function.pipe)(restore(internalFiber.join(fiber)), core.onInterrupt(() => (0, _Function.pipe)(fiber, internalFiber.interruptAsFork(fiberId)))))));
1833
- /** @internal */
1834
- exports.disconnect = disconnect;
1835
- const race = exports.race = /*#__PURE__*/(0, _Function.dual)(2, (self, that) => core.fiberIdWith(parentFiberId => raceWith(self, that, {
1836
- onSelfDone: (exit, right) => core.exitMatchEffect(exit, {
1837
- onFailure: cause => (0, _Function.pipe)(internalFiber.join(right), internalEffect.mapErrorCause(cause2 => internalCause.parallel(cause, cause2))),
1838
- onSuccess: value => (0, _Function.pipe)(right, core.interruptAsFiber(parentFiberId), core.as(value))
1839
- }),
1840
- onOtherDone: (exit, left) => core.exitMatchEffect(exit, {
1841
- onFailure: cause => (0, _Function.pipe)(internalFiber.join(left), internalEffect.mapErrorCause(cause2 => internalCause.parallel(cause2, cause))),
1842
- onSuccess: value => (0, _Function.pipe)(left, core.interruptAsFiber(parentFiberId), core.as(value))
1843
- })
1844
- })));
1845
- /** @internal */
1846
- const raceFibersWith = exports.raceFibersWith = /*#__PURE__*/(0, _Function.dual)(3, (self, other, options) => core.withFiberRuntime((parentFiber, parentStatus) => {
1847
- const parentRuntimeFlags = parentStatus.runtimeFlags;
1848
- const raceIndicator = MRef.make(true);
1849
- const leftFiber = unsafeMakeChildFiber(self, parentFiber, parentRuntimeFlags, options.selfScope);
1850
- const rightFiber = unsafeMakeChildFiber(other, parentFiber, parentRuntimeFlags, options.otherScope);
1851
- return core.async(cb => {
1852
- leftFiber.addObserver(() => completeRace(leftFiber, rightFiber, options.onSelfWin, raceIndicator, cb));
1853
- rightFiber.addObserver(() => completeRace(rightFiber, leftFiber, options.onOtherWin, raceIndicator, cb));
1854
- leftFiber.startFork(self);
1855
- rightFiber.startFork(other);
1856
- }, FiberId.combine(leftFiber.id(), rightFiber.id()));
1857
- }));
1858
- const completeRace = (winner, loser, cont, ab, cb) => {
1859
- if (MRef.compareAndSet(true, false)(ab)) {
1860
- cb(cont(winner, loser));
1861
- }
1862
- };
1863
- /** @internal */
1864
- const ensuring = exports.ensuring = /*#__PURE__*/(0, _Function.dual)(2, (self, finalizer) => core.uninterruptibleMask(restore => core.matchCauseEffect(restore(self), {
1865
- onFailure: cause1 => core.matchCauseEffect(finalizer, {
1866
- onFailure: cause2 => core.failCause(internalCause.sequential(cause1, cause2)),
1867
- onSuccess: () => core.failCause(cause1)
1868
- }),
1869
- onSuccess: a => core.as(finalizer, a)
1870
- })));
1871
- /** @internal */
1872
- const invokeWithInterrupt = (dataSource, all) => core.fiberIdWith(id => core.flatMap(core.flatMap(forkDaemon(core.interruptible(dataSource)), processing => core.async(cb => {
1873
- const counts = all.map(_ => _.listeners.count);
1874
- const checkDone = () => {
1875
- if (counts.every(count => count === 0)) {
1876
- cleanup.forEach(f => f());
1877
- cb(core.interruptFiber(processing));
1878
- }
1879
- };
1880
- processing.addObserver(exit => {
1881
- cleanup.forEach(f => f());
1882
- cb(exit);
1883
- });
1884
- const cleanup = all.map((r, i) => {
1885
- const observer = count => {
1886
- counts[i] = count;
1887
- checkDone();
1888
- };
1889
- r.listeners.addObserver(observer);
1890
- return () => r.listeners.removeObserver(observer);
1891
- });
1892
- checkDone();
1893
- return core.sync(() => {
1894
- cleanup.forEach(f => f());
1895
- });
1896
- })), () => core.suspend(() => {
1897
- const residual = all.flatMap(entry => {
1898
- if (!entry.state.completed) {
1899
- return [entry];
1900
- }
1901
- return [];
1902
- });
1903
- return core.forEachSequentialDiscard(residual, entry => (0, _request.complete)(entry.request, core.exitInterrupt(id)));
1904
- })));
1905
- /** @internal */
1906
- exports.invokeWithInterrupt = invokeWithInterrupt;
1907
- const interruptWhenPossible = exports.interruptWhenPossible = /*#__PURE__*/(0, _Function.dual)(2, (self, all) => core.fiberRefGetWith(_completedRequestMap.currentRequestMap, map => core.suspend(() => {
1908
- const entries = RA.fromIterable(all).flatMap(_ => map.has(_) ? [map.get(_)] : []);
1909
- return invokeWithInterrupt(self, entries);
1910
- })));
1911
- // circular Tracer
1912
- /** @internal */
1913
- const makeSpanScoped = (name, options) => acquireRelease(internalEffect.makeSpan(name, options), (span, exit) => core.flatMap(internalEffect.currentTimeNanosTracing, endTime => core.sync(() => span.end(endTime, exit))));
1914
- /* @internal */
1915
- exports.makeSpanScoped = makeSpanScoped;
1916
- const withTracerScoped = value => fiberRefLocallyScopedWith(defaultServices.currentServices, Context.add(tracer.tracerTag, value));
1917
- /** @internal */
1918
- exports.withTracerScoped = withTracerScoped;
1919
- const withSpanScoped = exports.withSpanScoped = /*#__PURE__*/(0, _Function.dual)(args => typeof args[0] !== "string", (self, name, options) => core.flatMap(makeSpanScoped(name, options), span => internalEffect.provideService(self, tracer.spanTag, span)));
1920
- //# sourceMappingURL=fiberRuntime.js.map