@depup/effect 3.20.0-depup.0

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 (2716) hide show
  1. package/.index/package.json +6 -0
  2. package/Arbitrary/package.json +6 -0
  3. package/Array/package.json +6 -0
  4. package/BigDecimal/package.json +6 -0
  5. package/BigInt/package.json +6 -0
  6. package/Boolean/package.json +6 -0
  7. package/Brand/package.json +6 -0
  8. package/Cache/package.json +6 -0
  9. package/Cause/package.json +6 -0
  10. package/Channel/package.json +6 -0
  11. package/ChildExecutorDecision/package.json +6 -0
  12. package/Chunk/package.json +6 -0
  13. package/Clock/package.json +6 -0
  14. package/Config/package.json +6 -0
  15. package/ConfigError/package.json +6 -0
  16. package/ConfigProvider/package.json +6 -0
  17. package/ConfigProviderPathPatch/package.json +6 -0
  18. package/Console/package.json +6 -0
  19. package/Context/package.json +6 -0
  20. package/Cron/package.json +6 -0
  21. package/Data/package.json +6 -0
  22. package/DateTime/package.json +6 -0
  23. package/DefaultServices/package.json +6 -0
  24. package/Deferred/package.json +6 -0
  25. package/Differ/package.json +6 -0
  26. package/Duration/package.json +6 -0
  27. package/Effect/package.json +6 -0
  28. package/Effectable/package.json +6 -0
  29. package/Either/package.json +6 -0
  30. package/Encoding/package.json +6 -0
  31. package/Equal/package.json +6 -0
  32. package/Equivalence/package.json +6 -0
  33. package/ExecutionPlan/package.json +6 -0
  34. package/ExecutionStrategy/package.json +6 -0
  35. package/Exit/package.json +6 -0
  36. package/FastCheck/package.json +6 -0
  37. package/Fiber/package.json +6 -0
  38. package/FiberHandle/package.json +6 -0
  39. package/FiberId/package.json +6 -0
  40. package/FiberMap/package.json +6 -0
  41. package/FiberRef/package.json +6 -0
  42. package/FiberRefs/package.json +6 -0
  43. package/FiberRefsPatch/package.json +6 -0
  44. package/FiberSet/package.json +6 -0
  45. package/FiberStatus/package.json +6 -0
  46. package/Function/package.json +6 -0
  47. package/GlobalValue/package.json +6 -0
  48. package/Graph/package.json +6 -0
  49. package/GroupBy/package.json +6 -0
  50. package/HKT/package.json +6 -0
  51. package/Hash/package.json +6 -0
  52. package/HashMap/package.json +6 -0
  53. package/HashRing/package.json +6 -0
  54. package/HashSet/package.json +6 -0
  55. package/Inspectable/package.json +6 -0
  56. package/Iterable/package.json +6 -0
  57. package/JSONSchema/package.json +6 -0
  58. package/KeyedPool/package.json +6 -0
  59. package/LICENSE +21 -0
  60. package/Layer/package.json +6 -0
  61. package/LayerMap/package.json +6 -0
  62. package/List/package.json +6 -0
  63. package/LogLevel/package.json +6 -0
  64. package/LogSpan/package.json +6 -0
  65. package/Logger/package.json +6 -0
  66. package/Mailbox/package.json +6 -0
  67. package/ManagedRuntime/package.json +6 -0
  68. package/Match/package.json +6 -0
  69. package/MergeDecision/package.json +6 -0
  70. package/MergeState/package.json +6 -0
  71. package/MergeStrategy/package.json +6 -0
  72. package/Metric/package.json +6 -0
  73. package/MetricBoundaries/package.json +6 -0
  74. package/MetricHook/package.json +6 -0
  75. package/MetricKey/package.json +6 -0
  76. package/MetricKeyType/package.json +6 -0
  77. package/MetricLabel/package.json +6 -0
  78. package/MetricPair/package.json +6 -0
  79. package/MetricPolling/package.json +6 -0
  80. package/MetricRegistry/package.json +6 -0
  81. package/MetricState/package.json +6 -0
  82. package/Micro/package.json +6 -0
  83. package/ModuleVersion/package.json +6 -0
  84. package/MutableHashMap/package.json +6 -0
  85. package/MutableHashSet/package.json +6 -0
  86. package/MutableList/package.json +6 -0
  87. package/MutableQueue/package.json +6 -0
  88. package/MutableRef/package.json +6 -0
  89. package/NonEmptyIterable/package.json +6 -0
  90. package/Number/package.json +6 -0
  91. package/Option/package.json +6 -0
  92. package/Order/package.json +6 -0
  93. package/Ordering/package.json +6 -0
  94. package/ParseResult/package.json +6 -0
  95. package/PartitionedSemaphore/package.json +6 -0
  96. package/Pipeable/package.json +6 -0
  97. package/Pool/package.json +6 -0
  98. package/Predicate/package.json +6 -0
  99. package/Pretty/package.json +6 -0
  100. package/PrimaryKey/package.json +6 -0
  101. package/PubSub/package.json +6 -0
  102. package/Queue/package.json +6 -0
  103. package/README.md +32 -0
  104. package/Random/package.json +6 -0
  105. package/RateLimiter/package.json +6 -0
  106. package/RcMap/package.json +6 -0
  107. package/RcRef/package.json +6 -0
  108. package/Readable/package.json +6 -0
  109. package/Record/package.json +6 -0
  110. package/RedBlackTree/package.json +6 -0
  111. package/Redacted/package.json +6 -0
  112. package/Ref/package.json +6 -0
  113. package/RegExp/package.json +6 -0
  114. package/Reloadable/package.json +6 -0
  115. package/Request/package.json +6 -0
  116. package/RequestBlock/package.json +6 -0
  117. package/RequestResolver/package.json +6 -0
  118. package/Resource/package.json +6 -0
  119. package/Runtime/package.json +6 -0
  120. package/RuntimeFlags/package.json +6 -0
  121. package/RuntimeFlagsPatch/package.json +6 -0
  122. package/STM/package.json +6 -0
  123. package/Schedule/package.json +6 -0
  124. package/ScheduleDecision/package.json +6 -0
  125. package/ScheduleInterval/package.json +6 -0
  126. package/ScheduleIntervals/package.json +6 -0
  127. package/Scheduler/package.json +6 -0
  128. package/Schema/package.json +6 -0
  129. package/SchemaAST/package.json +6 -0
  130. package/Scope/package.json +6 -0
  131. package/ScopedCache/package.json +6 -0
  132. package/ScopedRef/package.json +6 -0
  133. package/Secret/package.json +6 -0
  134. package/SingleProducerAsyncInput/package.json +6 -0
  135. package/Sink/package.json +6 -0
  136. package/SortedMap/package.json +6 -0
  137. package/SortedSet/package.json +6 -0
  138. package/Stream/package.json +6 -0
  139. package/StreamEmit/package.json +6 -0
  140. package/StreamHaltStrategy/package.json +6 -0
  141. package/Streamable/package.json +6 -0
  142. package/String/package.json +6 -0
  143. package/Struct/package.json +6 -0
  144. package/Subscribable/package.json +6 -0
  145. package/SubscriptionRef/package.json +6 -0
  146. package/Supervisor/package.json +6 -0
  147. package/Symbol/package.json +6 -0
  148. package/SynchronizedRef/package.json +6 -0
  149. package/TArray/package.json +6 -0
  150. package/TDeferred/package.json +6 -0
  151. package/TMap/package.json +6 -0
  152. package/TPriorityQueue/package.json +6 -0
  153. package/TPubSub/package.json +6 -0
  154. package/TQueue/package.json +6 -0
  155. package/TRandom/package.json +6 -0
  156. package/TReentrantLock/package.json +6 -0
  157. package/TRef/package.json +6 -0
  158. package/TSemaphore/package.json +6 -0
  159. package/TSet/package.json +6 -0
  160. package/TSubscriptionRef/package.json +6 -0
  161. package/Take/package.json +6 -0
  162. package/TestAnnotation/package.json +6 -0
  163. package/TestAnnotationMap/package.json +6 -0
  164. package/TestAnnotations/package.json +6 -0
  165. package/TestClock/package.json +6 -0
  166. package/TestConfig/package.json +6 -0
  167. package/TestContext/package.json +6 -0
  168. package/TestLive/package.json +6 -0
  169. package/TestServices/package.json +6 -0
  170. package/TestSized/package.json +6 -0
  171. package/Tracer/package.json +6 -0
  172. package/Trie/package.json +6 -0
  173. package/Tuple/package.json +6 -0
  174. package/Types/package.json +6 -0
  175. package/Unify/package.json +6 -0
  176. package/UpstreamPullRequest/package.json +6 -0
  177. package/UpstreamPullStrategy/package.json +6 -0
  178. package/Utils/package.json +6 -0
  179. package/changes.json +14 -0
  180. package/dist/cjs/Arbitrary.js +813 -0
  181. package/dist/cjs/Arbitrary.js.map +1 -0
  182. package/dist/cjs/Array.js +2695 -0
  183. package/dist/cjs/Array.js.map +1 -0
  184. package/dist/cjs/BigDecimal.js +1116 -0
  185. package/dist/cjs/BigDecimal.js.map +1 -0
  186. package/dist/cjs/BigInt.js +567 -0
  187. package/dist/cjs/BigInt.js.map +1 -0
  188. package/dist/cjs/Boolean.js +251 -0
  189. package/dist/cjs/Boolean.js.map +1 -0
  190. package/dist/cjs/Brand.js +175 -0
  191. package/dist/cjs/Brand.js.map +1 -0
  192. package/dist/cjs/Cache.js +50 -0
  193. package/dist/cjs/Cache.js.map +1 -0
  194. package/dist/cjs/Cause.js +1011 -0
  195. package/dist/cjs/Cause.js.map +1 -0
  196. package/dist/cjs/Channel.js +889 -0
  197. package/dist/cjs/Channel.js.map +1 -0
  198. package/dist/cjs/ChildExecutorDecision.js +72 -0
  199. package/dist/cjs/ChildExecutorDecision.js.map +1 -0
  200. package/dist/cjs/Chunk.js +1114 -0
  201. package/dist/cjs/Chunk.js.map +1 -0
  202. package/dist/cjs/Clock.js +45 -0
  203. package/dist/cjs/Clock.js.map +1 -0
  204. package/dist/cjs/Config.js +328 -0
  205. package/dist/cjs/Config.js.map +1 -0
  206. package/dist/cjs/ConfigError.js +114 -0
  207. package/dist/cjs/ConfigError.js.map +1 -0
  208. package/dist/cjs/ConfigProvider.js +173 -0
  209. package/dist/cjs/ConfigProvider.js.map +1 -0
  210. package/dist/cjs/ConfigProviderPathPatch.js +38 -0
  211. package/dist/cjs/ConfigProviderPathPatch.js.map +1 -0
  212. package/dist/cjs/Console.js +125 -0
  213. package/dist/cjs/Console.js.map +1 -0
  214. package/dist/cjs/Context.js +367 -0
  215. package/dist/cjs/Context.js.map +1 -0
  216. package/dist/cjs/Cron.js +583 -0
  217. package/dist/cjs/Cron.js.map +1 -0
  218. package/dist/cjs/Data.js +291 -0
  219. package/dist/cjs/Data.js.map +1 -0
  220. package/dist/cjs/DateTime.js +1084 -0
  221. package/dist/cjs/DateTime.js.map +1 -0
  222. package/dist/cjs/DefaultServices.js +19 -0
  223. package/dist/cjs/DefaultServices.js.map +1 -0
  224. package/dist/cjs/Deferred.js +167 -0
  225. package/dist/cjs/Deferred.js.map +1 -0
  226. package/dist/cjs/Differ.js +140 -0
  227. package/dist/cjs/Differ.js.map +1 -0
  228. package/dist/cjs/Duration.js +737 -0
  229. package/dist/cjs/Duration.js.map +1 -0
  230. package/dist/cjs/Effect.js +10717 -0
  231. package/dist/cjs/Effect.js.map +1 -0
  232. package/dist/cjs/Effectable.js +58 -0
  233. package/dist/cjs/Effectable.js.map +1 -0
  234. package/dist/cjs/Either.js +654 -0
  235. package/dist/cjs/Either.js.map +1 -0
  236. package/dist/cjs/Encoding.js +155 -0
  237. package/dist/cjs/Encoding.js.map +1 -0
  238. package/dist/cjs/Equal.js +81 -0
  239. package/dist/cjs/Equal.js.map +1 -0
  240. package/dist/cjs/Equivalence.js +181 -0
  241. package/dist/cjs/Equivalence.js.map +1 -0
  242. package/dist/cjs/ExecutionPlan.js +108 -0
  243. package/dist/cjs/ExecutionPlan.js.map +1 -0
  244. package/dist/cjs/ExecutionStrategy.js +62 -0
  245. package/dist/cjs/ExecutionStrategy.js.map +1 -0
  246. package/dist/cjs/Exit.js +256 -0
  247. package/dist/cjs/Exit.js.map +1 -0
  248. package/dist/cjs/FastCheck.js +17 -0
  249. package/dist/cjs/FastCheck.js.map +1 -0
  250. package/dist/cjs/Fiber.js +340 -0
  251. package/dist/cjs/Fiber.js.map +1 -0
  252. package/dist/cjs/FiberHandle.js +335 -0
  253. package/dist/cjs/FiberHandle.js.map +1 -0
  254. package/dist/cjs/FiberId.js +122 -0
  255. package/dist/cjs/FiberId.js.map +1 -0
  256. package/dist/cjs/FiberMap.js +374 -0
  257. package/dist/cjs/FiberMap.js.map +1 -0
  258. package/dist/cjs/FiberRef.js +243 -0
  259. package/dist/cjs/FiberRef.js.map +1 -0
  260. package/dist/cjs/FiberRefs.js +91 -0
  261. package/dist/cjs/FiberRefs.js.map +1 -0
  262. package/dist/cjs/FiberRefsPatch.js +39 -0
  263. package/dist/cjs/FiberRefsPatch.js.map +1 -0
  264. package/dist/cjs/FiberSet.js +308 -0
  265. package/dist/cjs/FiberSet.js.map +1 -0
  266. package/dist/cjs/FiberStatus.js +59 -0
  267. package/dist/cjs/FiberStatus.js.map +1 -0
  268. package/dist/cjs/Function.js +488 -0
  269. package/dist/cjs/Function.js.map +1 -0
  270. package/dist/cjs/GlobalValue.js +59 -0
  271. package/dist/cjs/GlobalValue.js.map +1 -0
  272. package/dist/cjs/Graph.js +3080 -0
  273. package/dist/cjs/Graph.js.map +1 -0
  274. package/dist/cjs/GroupBy.js +47 -0
  275. package/dist/cjs/GroupBy.js.map +1 -0
  276. package/dist/cjs/HKT.js +6 -0
  277. package/dist/cjs/HKT.js.map +1 -0
  278. package/dist/cjs/Hash.js +184 -0
  279. package/dist/cjs/Hash.js.map +1 -0
  280. package/dist/cjs/HashMap.js +322 -0
  281. package/dist/cjs/HashMap.js.map +1 -0
  282. package/dist/cjs/HashRing.js +257 -0
  283. package/dist/cjs/HashRing.js.map +1 -0
  284. package/dist/cjs/HashSet.js +1262 -0
  285. package/dist/cjs/HashSet.js.map +1 -0
  286. package/dist/cjs/Inspectable.js +213 -0
  287. package/dist/cjs/Inspectable.js.map +1 -0
  288. package/dist/cjs/Iterable.js +1009 -0
  289. package/dist/cjs/Iterable.js.map +1 -0
  290. package/dist/cjs/JSONSchema.js +727 -0
  291. package/dist/cjs/JSONSchema.js.map +1 -0
  292. package/dist/cjs/KeyedPool.js +83 -0
  293. package/dist/cjs/KeyedPool.js.map +1 -0
  294. package/dist/cjs/Layer.js +651 -0
  295. package/dist/cjs/Layer.js.map +1 -0
  296. package/dist/cjs/LayerMap.js +212 -0
  297. package/dist/cjs/LayerMap.js.map +1 -0
  298. package/dist/cjs/List.js +784 -0
  299. package/dist/cjs/List.js.map +1 -0
  300. package/dist/cjs/LogLevel.js +143 -0
  301. package/dist/cjs/LogLevel.js.map +1 -0
  302. package/dist/cjs/LogSpan.js +23 -0
  303. package/dist/cjs/LogSpan.js.map +1 -0
  304. package/dist/cjs/Logger.js +497 -0
  305. package/dist/cjs/Logger.js.map +1 -0
  306. package/dist/cjs/Mailbox.js +105 -0
  307. package/dist/cjs/Mailbox.js.map +1 -0
  308. package/dist/cjs/ManagedRuntime.js +49 -0
  309. package/dist/cjs/ManagedRuntime.js.map +1 -0
  310. package/dist/cjs/Match.js +819 -0
  311. package/dist/cjs/Match.js.map +1 -0
  312. package/dist/cjs/MergeDecision.js +42 -0
  313. package/dist/cjs/MergeDecision.js.map +1 -0
  314. package/dist/cjs/MergeState.js +65 -0
  315. package/dist/cjs/MergeState.js.map +1 -0
  316. package/dist/cjs/MergeStrategy.js +59 -0
  317. package/dist/cjs/MergeStrategy.js.map +1 -0
  318. package/dist/cjs/Metric.js +415 -0
  319. package/dist/cjs/Metric.js.map +1 -0
  320. package/dist/cjs/MetricBoundaries.js +40 -0
  321. package/dist/cjs/MetricBoundaries.js.map +1 -0
  322. package/dist/cjs/MetricHook.js +54 -0
  323. package/dist/cjs/MetricHook.js.map +1 -0
  324. package/dist/cjs/MetricKey.js +70 -0
  325. package/dist/cjs/MetricKey.js.map +1 -0
  326. package/dist/cjs/MetricKeyType.js +94 -0
  327. package/dist/cjs/MetricKeyType.js.map +1 -0
  328. package/dist/cjs/MetricLabel.js +24 -0
  329. package/dist/cjs/MetricLabel.js.map +1 -0
  330. package/dist/cjs/MetricPair.js +28 -0
  331. package/dist/cjs/MetricPair.js.map +1 -0
  332. package/dist/cjs/MetricPolling.js +66 -0
  333. package/dist/cjs/MetricPolling.js.map +1 -0
  334. package/dist/cjs/MetricRegistry.js +23 -0
  335. package/dist/cjs/MetricRegistry.js.map +1 -0
  336. package/dist/cjs/MetricState.js +94 -0
  337. package/dist/cjs/MetricState.js.map +1 -0
  338. package/dist/cjs/Micro.js +2582 -0
  339. package/dist/cjs/Micro.js.map +1 -0
  340. package/dist/cjs/ModuleVersion.js +25 -0
  341. package/dist/cjs/ModuleVersion.js.map +1 -0
  342. package/dist/cjs/MutableHashMap.js +314 -0
  343. package/dist/cjs/MutableHashMap.js.map +1 -0
  344. package/dist/cjs/MutableHashSet.js +524 -0
  345. package/dist/cjs/MutableHashSet.js.map +1 -0
  346. package/dist/cjs/MutableList.js +258 -0
  347. package/dist/cjs/MutableList.js.map +1 -0
  348. package/dist/cjs/MutableQueue.js +173 -0
  349. package/dist/cjs/MutableQueue.js.map +1 -0
  350. package/dist/cjs/MutableRef.js +144 -0
  351. package/dist/cjs/MutableRef.js.map +1 -0
  352. package/dist/cjs/NonEmptyIterable.js +23 -0
  353. package/dist/cjs/NonEmptyIterable.js.map +1 -0
  354. package/dist/cjs/Number.js +903 -0
  355. package/dist/cjs/Number.js.map +1 -0
  356. package/dist/cjs/Option.js +1769 -0
  357. package/dist/cjs/Option.js.map +1 -0
  358. package/dist/cjs/Order.js +275 -0
  359. package/dist/cjs/Order.js.map +1 -0
  360. package/dist/cjs/Ordering.js +80 -0
  361. package/dist/cjs/Ordering.js.map +1 -0
  362. package/dist/cjs/ParseResult.js +1594 -0
  363. package/dist/cjs/ParseResult.js.map +1 -0
  364. package/dist/cjs/PartitionedSemaphore.js +147 -0
  365. package/dist/cjs/PartitionedSemaphore.js.map +1 -0
  366. package/dist/cjs/Pipeable.js +70 -0
  367. package/dist/cjs/Pipeable.js.map +1 -0
  368. package/dist/cjs/Pool.js +107 -0
  369. package/dist/cjs/Pool.js.map +1 -0
  370. package/dist/cjs/Predicate.js +1159 -0
  371. package/dist/cjs/Predicate.js.map +1 -0
  372. package/dist/cjs/Pretty.js +183 -0
  373. package/dist/cjs/Pretty.js.map +1 -0
  374. package/dist/cjs/PrimaryKey.js +21 -0
  375. package/dist/cjs/PrimaryKey.js.map +1 -0
  376. package/dist/cjs/PubSub.js +127 -0
  377. package/dist/cjs/PubSub.js.map +1 -0
  378. package/dist/cjs/Queue.js +255 -0
  379. package/dist/cjs/Queue.js.map +1 -0
  380. package/dist/cjs/Random.js +145 -0
  381. package/dist/cjs/Random.js.map +1 -0
  382. package/dist/cjs/RateLimiter.js +84 -0
  383. package/dist/cjs/RateLimiter.js.map +1 -0
  384. package/dist/cjs/RcMap.js +76 -0
  385. package/dist/cjs/RcMap.js.map +1 -0
  386. package/dist/cjs/RcRef.js +58 -0
  387. package/dist/cjs/RcRef.js.map +1 -0
  388. package/dist/cjs/Readable.js +55 -0
  389. package/dist/cjs/Readable.js.map +1 -0
  390. package/dist/cjs/Record.js +865 -0
  391. package/dist/cjs/Record.js.map +1 -0
  392. package/dist/cjs/RedBlackTree.js +266 -0
  393. package/dist/cjs/RedBlackTree.js.map +1 -0
  394. package/dist/cjs/Redacted.js +101 -0
  395. package/dist/cjs/Redacted.js.map +1 -0
  396. package/dist/cjs/Ref.js +84 -0
  397. package/dist/cjs/Ref.js.map +1 -0
  398. package/dist/cjs/RegExp.js +46 -0
  399. package/dist/cjs/RegExp.js.map +1 -0
  400. package/dist/cjs/Reloadable.js +66 -0
  401. package/dist/cjs/Reloadable.js.map +1 -0
  402. package/dist/cjs/Request.js +148 -0
  403. package/dist/cjs/Request.js.map +1 -0
  404. package/dist/cjs/RequestBlock.js +43 -0
  405. package/dist/cjs/RequestBlock.js.map +1 -0
  406. package/dist/cjs/RequestResolver.js +185 -0
  407. package/dist/cjs/RequestResolver.js.map +1 -0
  408. package/dist/cjs/Resource.js +51 -0
  409. package/dist/cjs/Resource.js.map +1 -0
  410. package/dist/cjs/Runtime.js +188 -0
  411. package/dist/cjs/Runtime.js.map +1 -0
  412. package/dist/cjs/RuntimeFlags.js +259 -0
  413. package/dist/cjs/RuntimeFlags.js.map +1 -0
  414. package/dist/cjs/RuntimeFlagsPatch.js +142 -0
  415. package/dist/cjs/RuntimeFlagsPatch.js.map +1 -0
  416. package/dist/cjs/STM.js +981 -0
  417. package/dist/cjs/STM.js.map +1 -0
  418. package/dist/cjs/Schedule.js +1603 -0
  419. package/dist/cjs/Schedule.js.map +1 -0
  420. package/dist/cjs/ScheduleDecision.js +34 -0
  421. package/dist/cjs/ScheduleDecision.js.map +1 -0
  422. package/dist/cjs/ScheduleInterval.js +107 -0
  423. package/dist/cjs/ScheduleInterval.js.map +1 -0
  424. package/dist/cjs/ScheduleIntervals.js +85 -0
  425. package/dist/cjs/ScheduleIntervals.js.map +1 -0
  426. package/dist/cjs/Scheduler.js +308 -0
  427. package/dist/cjs/Scheduler.js.map +1 -0
  428. package/dist/cjs/Schema.js +6254 -0
  429. package/dist/cjs/Schema.js.map +1 -0
  430. package/dist/cjs/SchemaAST.js +2552 -0
  431. package/dist/cjs/SchemaAST.js.map +1 -0
  432. package/dist/cjs/Scope.js +102 -0
  433. package/dist/cjs/Scope.js.map +1 -0
  434. package/dist/cjs/ScopedCache.js +31 -0
  435. package/dist/cjs/ScopedCache.js.map +1 -0
  436. package/dist/cjs/ScopedRef.js +49 -0
  437. package/dist/cjs/ScopedRef.js.map +1 -0
  438. package/dist/cjs/Secret.js +51 -0
  439. package/dist/cjs/Secret.js.map +1 -0
  440. package/dist/cjs/SingleProducerAsyncInput.js +14 -0
  441. package/dist/cjs/SingleProducerAsyncInput.js.map +1 -0
  442. package/dist/cjs/Sink.js +872 -0
  443. package/dist/cjs/Sink.js.map +1 -0
  444. package/dist/cjs/SortedMap.js +189 -0
  445. package/dist/cjs/SortedMap.js.map +1 -0
  446. package/dist/cjs/SortedSet.js +251 -0
  447. package/dist/cjs/SortedSet.js.map +1 -0
  448. package/dist/cjs/Stream.js +4112 -0
  449. package/dist/cjs/Stream.js.map +1 -0
  450. package/dist/cjs/StreamEmit.js +6 -0
  451. package/dist/cjs/StreamEmit.js.map +1 -0
  452. package/dist/cjs/StreamHaltStrategy.js +65 -0
  453. package/dist/cjs/StreamHaltStrategy.js.map +1 -0
  454. package/dist/cjs/Streamable.js +45 -0
  455. package/dist/cjs/Streamable.js.map +1 -0
  456. package/dist/cjs/String.js +680 -0
  457. package/dist/cjs/String.js.map +1 -0
  458. package/dist/cjs/Struct.js +202 -0
  459. package/dist/cjs/Struct.js.map +1 -0
  460. package/dist/cjs/Subscribable.js +67 -0
  461. package/dist/cjs/Subscribable.js.map +1 -0
  462. package/dist/cjs/SubscriptionRef.js +123 -0
  463. package/dist/cjs/SubscriptionRef.js.map +1 -0
  464. package/dist/cjs/Supervisor.js +115 -0
  465. package/dist/cjs/Supervisor.js.map +1 -0
  466. package/dist/cjs/Symbol.js +35 -0
  467. package/dist/cjs/Symbol.js.map +1 -0
  468. package/dist/cjs/SynchronizedRef.js +126 -0
  469. package/dist/cjs/SynchronizedRef.js.map +1 -0
  470. package/dist/cjs/TArray.js +314 -0
  471. package/dist/cjs/TArray.js.map +1 -0
  472. package/dist/cjs/TDeferred.js +40 -0
  473. package/dist/cjs/TDeferred.js.map +1 -0
  474. package/dist/cjs/TMap.js +286 -0
  475. package/dist/cjs/TMap.js.map +1 -0
  476. package/dist/cjs/TPriorityQueue.js +143 -0
  477. package/dist/cjs/TPriorityQueue.js.map +1 -0
  478. package/dist/cjs/TPubSub.js +138 -0
  479. package/dist/cjs/TPubSub.js.map +1 -0
  480. package/dist/cjs/TQueue.js +237 -0
  481. package/dist/cjs/TQueue.js.map +1 -0
  482. package/dist/cjs/TRandom.js +72 -0
  483. package/dist/cjs/TRandom.js.map +1 -0
  484. package/dist/cjs/TReentrantLock.js +149 -0
  485. package/dist/cjs/TReentrantLock.js.map +1 -0
  486. package/dist/cjs/TRef.js +83 -0
  487. package/dist/cjs/TRef.js.map +1 -0
  488. package/dist/cjs/TSemaphore.js +73 -0
  489. package/dist/cjs/TSemaphore.js.map +1 -0
  490. package/dist/cjs/TSet.js +208 -0
  491. package/dist/cjs/TSet.js.map +1 -0
  492. package/dist/cjs/TSubscriptionRef.js +95 -0
  493. package/dist/cjs/TSubscriptionRef.js.map +1 -0
  494. package/dist/cjs/Take.js +155 -0
  495. package/dist/cjs/Take.js.map +1 -0
  496. package/dist/cjs/TestAnnotation.js +105 -0
  497. package/dist/cjs/TestAnnotation.js.map +1 -0
  498. package/dist/cjs/TestAnnotationMap.js +91 -0
  499. package/dist/cjs/TestAnnotationMap.js.map +1 -0
  500. package/dist/cjs/TestAnnotations.js +71 -0
  501. package/dist/cjs/TestAnnotations.js.map +1 -0
  502. package/dist/cjs/TestClock.js +372 -0
  503. package/dist/cjs/TestClock.js.map +1 -0
  504. package/dist/cjs/TestConfig.js +22 -0
  505. package/dist/cjs/TestConfig.js.map +1 -0
  506. package/dist/cjs/TestContext.js +28 -0
  507. package/dist/cjs/TestContext.js.map +1 -0
  508. package/dist/cjs/TestLive.js +39 -0
  509. package/dist/cjs/TestLive.js.map +1 -0
  510. package/dist/cjs/TestServices.js +255 -0
  511. package/dist/cjs/TestServices.js.map +1 -0
  512. package/dist/cjs/TestSized.js +46 -0
  513. package/dist/cjs/TestSized.js.map +1 -0
  514. package/dist/cjs/Tracer.js +44 -0
  515. package/dist/cjs/Tracer.js.map +1 -0
  516. package/dist/cjs/Trie.js +724 -0
  517. package/dist/cjs/Trie.js.map +1 -0
  518. package/dist/cjs/Tuple.js +210 -0
  519. package/dist/cjs/Tuple.js.map +1 -0
  520. package/dist/cjs/Types.js +6 -0
  521. package/dist/cjs/Types.js.map +1 -0
  522. package/dist/cjs/Unify.js +16 -0
  523. package/dist/cjs/Unify.js.map +1 -0
  524. package/dist/cjs/UpstreamPullRequest.js +59 -0
  525. package/dist/cjs/UpstreamPullRequest.js.map +1 -0
  526. package/dist/cjs/UpstreamPullStrategy.js +59 -0
  527. package/dist/cjs/UpstreamPullStrategy.js.map +1 -0
  528. package/dist/cjs/Utils.js +374 -0
  529. package/dist/cjs/Utils.js.map +1 -0
  530. package/dist/cjs/index.js +395 -0
  531. package/dist/cjs/index.js.map +1 -0
  532. package/dist/cjs/internal/array.js +13 -0
  533. package/dist/cjs/internal/array.js.map +1 -0
  534. package/dist/cjs/internal/blockedRequests.js +369 -0
  535. package/dist/cjs/internal/blockedRequests.js.map +1 -0
  536. package/dist/cjs/internal/cache.js +500 -0
  537. package/dist/cjs/internal/cache.js.map +1 -0
  538. package/dist/cjs/internal/cause.js +867 -0
  539. package/dist/cjs/internal/cause.js.map +1 -0
  540. package/dist/cjs/internal/channel/channelExecutor.js +697 -0
  541. package/dist/cjs/internal/channel/channelExecutor.js.map +1 -0
  542. package/dist/cjs/internal/channel/channelState.js +77 -0
  543. package/dist/cjs/internal/channel/channelState.js.map +1 -0
  544. package/dist/cjs/internal/channel/childExecutorDecision.js +74 -0
  545. package/dist/cjs/internal/channel/childExecutorDecision.js.map +1 -0
  546. package/dist/cjs/internal/channel/continuation.js +57 -0
  547. package/dist/cjs/internal/channel/continuation.js.map +1 -0
  548. package/dist/cjs/internal/channel/mergeDecision.js +60 -0
  549. package/dist/cjs/internal/channel/mergeDecision.js.map +1 -0
  550. package/dist/cjs/internal/channel/mergeState.js +83 -0
  551. package/dist/cjs/internal/channel/mergeState.js.map +1 -0
  552. package/dist/cjs/internal/channel/mergeStrategy.js +58 -0
  553. package/dist/cjs/internal/channel/mergeStrategy.js.map +1 -0
  554. package/dist/cjs/internal/channel/singleProducerAsyncInput.js +171 -0
  555. package/dist/cjs/internal/channel/singleProducerAsyncInput.js.map +1 -0
  556. package/dist/cjs/internal/channel/subexecutor.js +163 -0
  557. package/dist/cjs/internal/channel/subexecutor.js.map +1 -0
  558. package/dist/cjs/internal/channel/upstreamPullRequest.js +64 -0
  559. package/dist/cjs/internal/channel/upstreamPullRequest.js.map +1 -0
  560. package/dist/cjs/internal/channel/upstreamPullStrategy.js +64 -0
  561. package/dist/cjs/internal/channel/upstreamPullStrategy.js.map +1 -0
  562. package/dist/cjs/internal/channel.js +738 -0
  563. package/dist/cjs/internal/channel.js.map +1 -0
  564. package/dist/cjs/internal/clock.js +85 -0
  565. package/dist/cjs/internal/clock.js.map +1 -0
  566. package/dist/cjs/internal/completedRequestMap.js +11 -0
  567. package/dist/cjs/internal/completedRequestMap.js.map +1 -0
  568. package/dist/cjs/internal/concurrency.js +37 -0
  569. package/dist/cjs/internal/concurrency.js.map +1 -0
  570. package/dist/cjs/internal/config.js +397 -0
  571. package/dist/cjs/internal/config.js.map +1 -0
  572. package/dist/cjs/internal/configError.js +284 -0
  573. package/dist/cjs/internal/configError.js.map +1 -0
  574. package/dist/cjs/internal/configProvider/pathPatch.js +83 -0
  575. package/dist/cjs/internal/configProvider/pathPatch.js.map +1 -0
  576. package/dist/cjs/internal/configProvider.js +443 -0
  577. package/dist/cjs/internal/configProvider.js.map +1 -0
  578. package/dist/cjs/internal/console.js +79 -0
  579. package/dist/cjs/internal/console.js.map +1 -0
  580. package/dist/cjs/internal/context.js +273 -0
  581. package/dist/cjs/internal/context.js.map +1 -0
  582. package/dist/cjs/internal/core-effect.js +872 -0
  583. package/dist/cjs/internal/core-effect.js.map +1 -0
  584. package/dist/cjs/internal/core-stream.js +258 -0
  585. package/dist/cjs/internal/core-stream.js.map +1 -0
  586. package/dist/cjs/internal/core.js +1713 -0
  587. package/dist/cjs/internal/core.js.map +1 -0
  588. package/dist/cjs/internal/data.js +37 -0
  589. package/dist/cjs/internal/data.js.map +1 -0
  590. package/dist/cjs/internal/dataSource.js +107 -0
  591. package/dist/cjs/internal/dataSource.js.map +1 -0
  592. package/dist/cjs/internal/dateTime.js +839 -0
  593. package/dist/cjs/internal/dateTime.js.map +1 -0
  594. package/dist/cjs/internal/defaultServices/console.js +99 -0
  595. package/dist/cjs/internal/defaultServices/console.js.map +1 -0
  596. package/dist/cjs/internal/defaultServices.js +92 -0
  597. package/dist/cjs/internal/defaultServices.js.map +1 -0
  598. package/dist/cjs/internal/deferred.js +36 -0
  599. package/dist/cjs/internal/deferred.js.map +1 -0
  600. package/dist/cjs/internal/differ/chunkPatch.js +139 -0
  601. package/dist/cjs/internal/differ/chunkPatch.js.map +1 -0
  602. package/dist/cjs/internal/differ/contextPatch.js +152 -0
  603. package/dist/cjs/internal/differ/contextPatch.js.map +1 -0
  604. package/dist/cjs/internal/differ/hashMapPatch.js +139 -0
  605. package/dist/cjs/internal/differ/hashMapPatch.js.map +1 -0
  606. package/dist/cjs/internal/differ/hashSetPatch.js +113 -0
  607. package/dist/cjs/internal/differ/hashSetPatch.js.map +1 -0
  608. package/dist/cjs/internal/differ/orPatch.js +184 -0
  609. package/dist/cjs/internal/differ/orPatch.js.map +1 -0
  610. package/dist/cjs/internal/differ/readonlyArrayPatch.js +138 -0
  611. package/dist/cjs/internal/differ/readonlyArrayPatch.js.map +1 -0
  612. package/dist/cjs/internal/differ.js +149 -0
  613. package/dist/cjs/internal/differ.js.map +1 -0
  614. package/dist/cjs/internal/doNotation.js +25 -0
  615. package/dist/cjs/internal/doNotation.js.map +1 -0
  616. package/dist/cjs/internal/effect/circular.js +420 -0
  617. package/dist/cjs/internal/effect/circular.js.map +1 -0
  618. package/dist/cjs/internal/effectable.js +120 -0
  619. package/dist/cjs/internal/effectable.js.map +1 -0
  620. package/dist/cjs/internal/either.js +100 -0
  621. package/dist/cjs/internal/either.js.map +1 -0
  622. package/dist/cjs/internal/encoding/base64.js +81 -0
  623. package/dist/cjs/internal/encoding/base64.js.map +1 -0
  624. package/dist/cjs/internal/encoding/base64Url.js +30 -0
  625. package/dist/cjs/internal/encoding/base64Url.js.map +1 -0
  626. package/dist/cjs/internal/encoding/common.js +48 -0
  627. package/dist/cjs/internal/encoding/common.js.map +1 -0
  628. package/dist/cjs/internal/encoding/hex.js +57 -0
  629. package/dist/cjs/internal/encoding/hex.js.map +1 -0
  630. package/dist/cjs/internal/errors.js +13 -0
  631. package/dist/cjs/internal/errors.js.map +1 -0
  632. package/dist/cjs/internal/executionPlan.js +68 -0
  633. package/dist/cjs/internal/executionPlan.js.map +1 -0
  634. package/dist/cjs/internal/executionStrategy.js +54 -0
  635. package/dist/cjs/internal/executionStrategy.js.map +1 -0
  636. package/dist/cjs/internal/fiber.js +279 -0
  637. package/dist/cjs/internal/fiber.js.map +1 -0
  638. package/dist/cjs/internal/fiberId.js +239 -0
  639. package/dist/cjs/internal/fiberId.js.map +1 -0
  640. package/dist/cjs/internal/fiberMessage.js +38 -0
  641. package/dist/cjs/internal/fiberMessage.js.map +1 -0
  642. package/dist/cjs/internal/fiberRefs/patch.js +115 -0
  643. package/dist/cjs/internal/fiberRefs/patch.js.map +1 -0
  644. package/dist/cjs/internal/fiberRefs.js +203 -0
  645. package/dist/cjs/internal/fiberRefs.js.map +1 -0
  646. package/dist/cjs/internal/fiberRuntime.js +2207 -0
  647. package/dist/cjs/internal/fiberRuntime.js.map +1 -0
  648. package/dist/cjs/internal/fiberScope.js +52 -0
  649. package/dist/cjs/internal/fiberScope.js.map +1 -0
  650. package/dist/cjs/internal/fiberStatus.js +85 -0
  651. package/dist/cjs/internal/fiberStatus.js.map +1 -0
  652. package/dist/cjs/internal/groupBy.js +222 -0
  653. package/dist/cjs/internal/groupBy.js.map +1 -0
  654. package/dist/cjs/internal/hashMap/array.js +56 -0
  655. package/dist/cjs/internal/hashMap/array.js.map +1 -0
  656. package/dist/cjs/internal/hashMap/bitwise.js +38 -0
  657. package/dist/cjs/internal/hashMap/bitwise.js.map +1 -0
  658. package/dist/cjs/internal/hashMap/config.js +17 -0
  659. package/dist/cjs/internal/hashMap/config.js.map +1 -0
  660. package/dist/cjs/internal/hashMap/keySet.js +12 -0
  661. package/dist/cjs/internal/hashMap/keySet.js.map +1 -0
  662. package/dist/cjs/internal/hashMap/node.js +268 -0
  663. package/dist/cjs/internal/hashMap/node.js.map +1 -0
  664. package/dist/cjs/internal/hashMap.js +379 -0
  665. package/dist/cjs/internal/hashMap.js.map +1 -0
  666. package/dist/cjs/internal/hashSet.js +198 -0
  667. package/dist/cjs/internal/hashSet.js.map +1 -0
  668. package/dist/cjs/internal/keyedPool.js +170 -0
  669. package/dist/cjs/internal/keyedPool.js.map +1 -0
  670. package/dist/cjs/internal/layer/circular.js +80 -0
  671. package/dist/cjs/internal/layer/circular.js.map +1 -0
  672. package/dist/cjs/internal/layer.js +595 -0
  673. package/dist/cjs/internal/layer.js.map +1 -0
  674. package/dist/cjs/internal/logSpan.js +26 -0
  675. package/dist/cjs/internal/logSpan.js.map +1 -0
  676. package/dist/cjs/internal/logger-circular.js +26 -0
  677. package/dist/cjs/internal/logger-circular.js.map +1 -0
  678. package/dist/cjs/internal/logger.js +381 -0
  679. package/dist/cjs/internal/logger.js.map +1 -0
  680. package/dist/cjs/internal/mailbox.js +462 -0
  681. package/dist/cjs/internal/mailbox.js.map +1 -0
  682. package/dist/cjs/internal/managedRuntime/circular.js +10 -0
  683. package/dist/cjs/internal/managedRuntime/circular.js.map +1 -0
  684. package/dist/cjs/internal/managedRuntime.js +95 -0
  685. package/dist/cjs/internal/managedRuntime.js.map +1 -0
  686. package/dist/cjs/internal/matcher.js +320 -0
  687. package/dist/cjs/internal/matcher.js.map +1 -0
  688. package/dist/cjs/internal/metric/boundaries.js +53 -0
  689. package/dist/cjs/internal/metric/boundaries.js.map +1 -0
  690. package/dist/cjs/internal/metric/hook.js +388 -0
  691. package/dist/cjs/internal/metric/hook.js.map +1 -0
  692. package/dist/cjs/internal/metric/key.js +73 -0
  693. package/dist/cjs/internal/metric/key.js.map +1 -0
  694. package/dist/cjs/internal/metric/keyType.js +188 -0
  695. package/dist/cjs/internal/metric/keyType.js.map +1 -0
  696. package/dist/cjs/internal/metric/label.js +45 -0
  697. package/dist/cjs/internal/metric/label.js.map +1 -0
  698. package/dist/cjs/internal/metric/pair.js +40 -0
  699. package/dist/cjs/internal/metric/pair.js.map +1 -0
  700. package/dist/cjs/internal/metric/polling.js +80 -0
  701. package/dist/cjs/internal/metric/polling.js.map +1 -0
  702. package/dist/cjs/internal/metric/registry.js +113 -0
  703. package/dist/cjs/internal/metric/registry.js.map +1 -0
  704. package/dist/cjs/internal/metric/state.js +201 -0
  705. package/dist/cjs/internal/metric/state.js.map +1 -0
  706. package/dist/cjs/internal/metric.js +204 -0
  707. package/dist/cjs/internal/metric.js.map +1 -0
  708. package/dist/cjs/internal/opCodes/cause.js +19 -0
  709. package/dist/cjs/internal/opCodes/cause.js.map +1 -0
  710. package/dist/cjs/internal/opCodes/channel.js +35 -0
  711. package/dist/cjs/internal/opCodes/channel.js.map +1 -0
  712. package/dist/cjs/internal/opCodes/channelChildExecutorDecision.js +13 -0
  713. package/dist/cjs/internal/opCodes/channelChildExecutorDecision.js.map +1 -0
  714. package/dist/cjs/internal/opCodes/channelMergeDecision.js +11 -0
  715. package/dist/cjs/internal/opCodes/channelMergeDecision.js.map +1 -0
  716. package/dist/cjs/internal/opCodes/channelMergeState.js +13 -0
  717. package/dist/cjs/internal/opCodes/channelMergeState.js.map +1 -0
  718. package/dist/cjs/internal/opCodes/channelMergeStrategy.js +11 -0
  719. package/dist/cjs/internal/opCodes/channelMergeStrategy.js.map +1 -0
  720. package/dist/cjs/internal/opCodes/channelState.js +15 -0
  721. package/dist/cjs/internal/opCodes/channelState.js.map +1 -0
  722. package/dist/cjs/internal/opCodes/channelUpstreamPullRequest.js +11 -0
  723. package/dist/cjs/internal/opCodes/channelUpstreamPullRequest.js.map +1 -0
  724. package/dist/cjs/internal/opCodes/channelUpstreamPullStrategy.js +11 -0
  725. package/dist/cjs/internal/opCodes/channelUpstreamPullStrategy.js.map +1 -0
  726. package/dist/cjs/internal/opCodes/config.js +29 -0
  727. package/dist/cjs/internal/opCodes/config.js.map +1 -0
  728. package/dist/cjs/internal/opCodes/configError.js +19 -0
  729. package/dist/cjs/internal/opCodes/configError.js.map +1 -0
  730. package/dist/cjs/internal/opCodes/continuation.js +11 -0
  731. package/dist/cjs/internal/opCodes/continuation.js.map +1 -0
  732. package/dist/cjs/internal/opCodes/deferred.js +11 -0
  733. package/dist/cjs/internal/opCodes/deferred.js.map +1 -0
  734. package/dist/cjs/internal/opCodes/effect.js +37 -0
  735. package/dist/cjs/internal/opCodes/effect.js.map +1 -0
  736. package/dist/cjs/internal/opCodes/layer.js +27 -0
  737. package/dist/cjs/internal/opCodes/layer.js.map +1 -0
  738. package/dist/cjs/internal/opCodes/streamHaltStrategy.js +15 -0
  739. package/dist/cjs/internal/opCodes/streamHaltStrategy.js.map +1 -0
  740. package/dist/cjs/internal/option.js +82 -0
  741. package/dist/cjs/internal/option.js.map +1 -0
  742. package/dist/cjs/internal/pool.js +288 -0
  743. package/dist/cjs/internal/pool.js.map +1 -0
  744. package/dist/cjs/internal/pubsub.js +1287 -0
  745. package/dist/cjs/internal/pubsub.js.map +1 -0
  746. package/dist/cjs/internal/query.js +102 -0
  747. package/dist/cjs/internal/query.js.map +1 -0
  748. package/dist/cjs/internal/queue.js +518 -0
  749. package/dist/cjs/internal/queue.js.map +1 -0
  750. package/dist/cjs/internal/random.js +128 -0
  751. package/dist/cjs/internal/random.js.map +1 -0
  752. package/dist/cjs/internal/rateLimiter.js +52 -0
  753. package/dist/cjs/internal/rateLimiter.js.map +1 -0
  754. package/dist/cjs/internal/rcMap.js +182 -0
  755. package/dist/cjs/internal/rcMap.js.map +1 -0
  756. package/dist/cjs/internal/rcRef.js +139 -0
  757. package/dist/cjs/internal/rcRef.js.map +1 -0
  758. package/dist/cjs/internal/redBlackTree/iterator.js +199 -0
  759. package/dist/cjs/internal/redBlackTree/iterator.js.map +1 -0
  760. package/dist/cjs/internal/redBlackTree/node.js +60 -0
  761. package/dist/cjs/internal/redBlackTree/node.js.map +1 -0
  762. package/dist/cjs/internal/redBlackTree.js +1088 -0
  763. package/dist/cjs/internal/redBlackTree.js.map +1 -0
  764. package/dist/cjs/internal/redacted.js +67 -0
  765. package/dist/cjs/internal/redacted.js.map +1 -0
  766. package/dist/cjs/internal/ref.js +121 -0
  767. package/dist/cjs/internal/ref.js.map +1 -0
  768. package/dist/cjs/internal/reloadable.js +56 -0
  769. package/dist/cjs/internal/reloadable.js.map +1 -0
  770. package/dist/cjs/internal/request.js +104 -0
  771. package/dist/cjs/internal/request.js.map +1 -0
  772. package/dist/cjs/internal/resource.js +49 -0
  773. package/dist/cjs/internal/resource.js.map +1 -0
  774. package/dist/cjs/internal/ringBuffer.js +64 -0
  775. package/dist/cjs/internal/ringBuffer.js.map +1 -0
  776. package/dist/cjs/internal/runtime.js +321 -0
  777. package/dist/cjs/internal/runtime.js.map +1 -0
  778. package/dist/cjs/internal/runtimeFlags.js +126 -0
  779. package/dist/cjs/internal/runtimeFlags.js.map +1 -0
  780. package/dist/cjs/internal/runtimeFlagsPatch.js +52 -0
  781. package/dist/cjs/internal/runtimeFlagsPatch.js.map +1 -0
  782. package/dist/cjs/internal/schedule/decision.js +44 -0
  783. package/dist/cjs/internal/schedule/decision.js.map +1 -0
  784. package/dist/cjs/internal/schedule/interval.js +83 -0
  785. package/dist/cjs/internal/schedule/interval.js.map +1 -0
  786. package/dist/cjs/internal/schedule/intervals.js +134 -0
  787. package/dist/cjs/internal/schedule/intervals.js.map +1 -0
  788. package/dist/cjs/internal/schedule.js +900 -0
  789. package/dist/cjs/internal/schedule.js.map +1 -0
  790. package/dist/cjs/internal/schema/errors.js +113 -0
  791. package/dist/cjs/internal/schema/errors.js.map +1 -0
  792. package/dist/cjs/internal/schema/schemaId.js +49 -0
  793. package/dist/cjs/internal/schema/schemaId.js.map +1 -0
  794. package/dist/cjs/internal/schema/util.js +48 -0
  795. package/dist/cjs/internal/schema/util.js.map +1 -0
  796. package/dist/cjs/internal/scopedCache.js +398 -0
  797. package/dist/cjs/internal/scopedCache.js.map +1 -0
  798. package/dist/cjs/internal/scopedRef.js +53 -0
  799. package/dist/cjs/internal/scopedRef.js.map +1 -0
  800. package/dist/cjs/internal/secret.js +90 -0
  801. package/dist/cjs/internal/secret.js.map +1 -0
  802. package/dist/cjs/internal/singleShotGen.js +37 -0
  803. package/dist/cjs/internal/singleShotGen.js.map +1 -0
  804. package/dist/cjs/internal/sink.js +883 -0
  805. package/dist/cjs/internal/sink.js.map +1 -0
  806. package/dist/cjs/internal/stack.js +12 -0
  807. package/dist/cjs/internal/stack.js.map +1 -0
  808. package/dist/cjs/internal/stm/core.js +525 -0
  809. package/dist/cjs/internal/stm/core.js.map +1 -0
  810. package/dist/cjs/internal/stm/entry.js +57 -0
  811. package/dist/cjs/internal/stm/entry.js.map +1 -0
  812. package/dist/cjs/internal/stm/journal.js +104 -0
  813. package/dist/cjs/internal/stm/journal.js.map +1 -0
  814. package/dist/cjs/internal/stm/opCodes/stm.js +31 -0
  815. package/dist/cjs/internal/stm/opCodes/stm.js.map +1 -0
  816. package/dist/cjs/internal/stm/opCodes/stmState.js +13 -0
  817. package/dist/cjs/internal/stm/opCodes/stmState.js.map +1 -0
  818. package/dist/cjs/internal/stm/opCodes/strategy.js +13 -0
  819. package/dist/cjs/internal/stm/opCodes/strategy.js.map +1 -0
  820. package/dist/cjs/internal/stm/opCodes/tExit.js +17 -0
  821. package/dist/cjs/internal/stm/opCodes/tExit.js.map +1 -0
  822. package/dist/cjs/internal/stm/opCodes/tryCommit.js +11 -0
  823. package/dist/cjs/internal/stm/opCodes/tryCommit.js.map +1 -0
  824. package/dist/cjs/internal/stm/stm.js +514 -0
  825. package/dist/cjs/internal/stm/stm.js.map +1 -0
  826. package/dist/cjs/internal/stm/stmState.js +102 -0
  827. package/dist/cjs/internal/stm/stmState.js.map +1 -0
  828. package/dist/cjs/internal/stm/tArray.js +258 -0
  829. package/dist/cjs/internal/stm/tArray.js.map +1 -0
  830. package/dist/cjs/internal/stm/tDeferred.js +51 -0
  831. package/dist/cjs/internal/stm/tDeferred.js.map +1 -0
  832. package/dist/cjs/internal/stm/tExit.js +116 -0
  833. package/dist/cjs/internal/stm/tExit.js.map +1 -0
  834. package/dist/cjs/internal/stm/tMap.js +448 -0
  835. package/dist/cjs/internal/stm/tMap.js.map +1 -0
  836. package/dist/cjs/internal/stm/tPriorityQueue.js +164 -0
  837. package/dist/cjs/internal/stm/tPriorityQueue.js.map +1 -0
  838. package/dist/cjs/internal/stm/tPubSub.js +397 -0
  839. package/dist/cjs/internal/stm/tPubSub.js.map +1 -0
  840. package/dist/cjs/internal/stm/tQueue.js +284 -0
  841. package/dist/cjs/internal/stm/tQueue.js.map +1 -0
  842. package/dist/cjs/internal/stm/tRandom.js +92 -0
  843. package/dist/cjs/internal/stm/tRandom.js.map +1 -0
  844. package/dist/cjs/internal/stm/tReentrantLock.js +215 -0
  845. package/dist/cjs/internal/stm/tReentrantLock.js.map +1 -0
  846. package/dist/cjs/internal/stm/tRef.js +110 -0
  847. package/dist/cjs/internal/stm/tRef.js.map +1 -0
  848. package/dist/cjs/internal/stm/tSemaphore.js +72 -0
  849. package/dist/cjs/internal/stm/tSemaphore.js.map +1 -0
  850. package/dist/cjs/internal/stm/tSet.js +104 -0
  851. package/dist/cjs/internal/stm/tSet.js.map +1 -0
  852. package/dist/cjs/internal/stm/tSubscriptionRef.js +177 -0
  853. package/dist/cjs/internal/stm/tSubscriptionRef.js.map +1 -0
  854. package/dist/cjs/internal/stm/tryCommit.js +25 -0
  855. package/dist/cjs/internal/stm/tryCommit.js.map +1 -0
  856. package/dist/cjs/internal/stm/txnId.js +18 -0
  857. package/dist/cjs/internal/stm/txnId.js.map +1 -0
  858. package/dist/cjs/internal/stm/versioned.js +15 -0
  859. package/dist/cjs/internal/stm/versioned.js.map +1 -0
  860. package/dist/cjs/internal/stream/debounceState.js +29 -0
  861. package/dist/cjs/internal/stream/debounceState.js.map +1 -0
  862. package/dist/cjs/internal/stream/emit.js +129 -0
  863. package/dist/cjs/internal/stream/emit.js.map +1 -0
  864. package/dist/cjs/internal/stream/haltStrategy.js +75 -0
  865. package/dist/cjs/internal/stream/haltStrategy.js.map +1 -0
  866. package/dist/cjs/internal/stream/handoff.js +65 -0
  867. package/dist/cjs/internal/stream/handoff.js.map +1 -0
  868. package/dist/cjs/internal/stream/handoffSignal.js +31 -0
  869. package/dist/cjs/internal/stream/handoffSignal.js.map +1 -0
  870. package/dist/cjs/internal/stream/pull.js +34 -0
  871. package/dist/cjs/internal/stream/pull.js.map +1 -0
  872. package/dist/cjs/internal/stream/sinkEndReason.js +19 -0
  873. package/dist/cjs/internal/stream/sinkEndReason.js.map +1 -0
  874. package/dist/cjs/internal/stream/zipAllState.js +41 -0
  875. package/dist/cjs/internal/stream/zipAllState.js.map +1 -0
  876. package/dist/cjs/internal/stream/zipChunksState.js +29 -0
  877. package/dist/cjs/internal/stream/zipChunksState.js.map +1 -0
  878. package/dist/cjs/internal/stream.js +2979 -0
  879. package/dist/cjs/internal/stream.js.map +1 -0
  880. package/dist/cjs/internal/string-utils.js +90 -0
  881. package/dist/cjs/internal/string-utils.js.map +1 -0
  882. package/dist/cjs/internal/subscriptionRef.js +72 -0
  883. package/dist/cjs/internal/subscriptionRef.js.map +1 -0
  884. package/dist/cjs/internal/supervisor/patch.js +135 -0
  885. package/dist/cjs/internal/supervisor/patch.js.map +1 -0
  886. package/dist/cjs/internal/supervisor.js +222 -0
  887. package/dist/cjs/internal/supervisor.js.map +1 -0
  888. package/dist/cjs/internal/synchronizedRef.js +51 -0
  889. package/dist/cjs/internal/synchronizedRef.js.map +1 -0
  890. package/dist/cjs/internal/take.js +130 -0
  891. package/dist/cjs/internal/take.js.map +1 -0
  892. package/dist/cjs/internal/testing/sleep.js +14 -0
  893. package/dist/cjs/internal/testing/sleep.js.map +1 -0
  894. package/dist/cjs/internal/testing/suspendedWarningData.js +58 -0
  895. package/dist/cjs/internal/testing/suspendedWarningData.js.map +1 -0
  896. package/dist/cjs/internal/testing/warningData.js +59 -0
  897. package/dist/cjs/internal/testing/warningData.js.map +1 -0
  898. package/dist/cjs/internal/tracer.js +134 -0
  899. package/dist/cjs/internal/tracer.js.map +1 -0
  900. package/dist/cjs/internal/trie.js +564 -0
  901. package/dist/cjs/internal/trie.js.map +1 -0
  902. package/dist/cjs/internal/version.js +14 -0
  903. package/dist/cjs/internal/version.js.map +1 -0
  904. package/dist/dts/Arbitrary.d.ts +69 -0
  905. package/dist/dts/Arbitrary.d.ts.map +1 -0
  906. package/dist/dts/Array.d.ts +5922 -0
  907. package/dist/dts/Array.d.ts.map +1 -0
  908. package/dist/dts/BigDecimal.d.ts +1483 -0
  909. package/dist/dts/BigDecimal.d.ts.map +1 -0
  910. package/dist/dts/BigInt.d.ts +1033 -0
  911. package/dist/dts/BigInt.d.ts.map +1 -0
  912. package/dist/dts/Boolean.d.ts +523 -0
  913. package/dist/dts/Boolean.d.ts.map +1 -0
  914. package/dist/dts/Brand.d.ts +234 -0
  915. package/dist/dts/Brand.d.ts.map +1 -0
  916. package/dist/dts/Cache.d.ts +241 -0
  917. package/dist/dts/Cache.d.ts.map +1 -0
  918. package/dist/dts/Cause.d.ts +1928 -0
  919. package/dist/dts/Cause.d.ts.map +1 -0
  920. package/dist/dts/Channel.d.ts +1989 -0
  921. package/dist/dts/Channel.d.ts.map +1 -0
  922. package/dist/dts/ChildExecutorDecision.d.ts +135 -0
  923. package/dist/dts/ChildExecutorDecision.d.ts.map +1 -0
  924. package/dist/dts/Chunk.d.ts +1709 -0
  925. package/dist/dts/Chunk.d.ts.map +1 -0
  926. package/dist/dts/Clock.d.ts +97 -0
  927. package/dist/dts/Clock.d.ts.map +1 -0
  928. package/dist/dts/Config.d.ts +667 -0
  929. package/dist/dts/Config.d.ts.map +1 -0
  930. package/dist/dts/ConfigError.d.ts +238 -0
  931. package/dist/dts/ConfigError.d.ts.map +1 -0
  932. package/dist/dts/ConfigProvider.d.ts +372 -0
  933. package/dist/dts/ConfigProvider.d.ts.map +1 -0
  934. package/dist/dts/ConfigProviderPathPatch.d.ts +118 -0
  935. package/dist/dts/ConfigProviderPathPatch.d.ts.map +1 -0
  936. package/dist/dts/Console.d.ts +224 -0
  937. package/dist/dts/Console.d.ts.map +1 -0
  938. package/dist/dts/Context.d.ts +823 -0
  939. package/dist/dts/Context.d.ts.map +1 -0
  940. package/dist/dts/Cron.d.ts +226 -0
  941. package/dist/dts/Cron.d.ts.map +1 -0
  942. package/dist/dts/Data.d.ts +613 -0
  943. package/dist/dts/Data.d.ts.map +1 -0
  944. package/dist/dts/DateTime.d.ts +2417 -0
  945. package/dist/dts/DateTime.d.ts.map +1 -0
  946. package/dist/dts/DefaultServices.d.ts +26 -0
  947. package/dist/dts/DefaultServices.d.ts.map +1 -0
  948. package/dist/dts/Deferred.d.ts +437 -0
  949. package/dist/dts/Deferred.d.ts.map +1 -0
  950. package/dist/dts/Differ.d.ts +420 -0
  951. package/dist/dts/Differ.d.ts.map +1 -0
  952. package/dist/dts/Duration.d.ts +557 -0
  953. package/dist/dts/Duration.d.ts.map +1 -0
  954. package/dist/dts/Effect.d.ts +26986 -0
  955. package/dist/dts/Effect.d.ts.map +1 -0
  956. package/dist/dts/Effectable.d.ts +93 -0
  957. package/dist/dts/Effectable.d.ts.map +1 -0
  958. package/dist/dts/Either.d.ts +1431 -0
  959. package/dist/dts/Either.d.ts.map +1 -0
  960. package/dist/dts/Encoding.d.ts +160 -0
  961. package/dist/dts/Encoding.d.ts.map +1 -0
  962. package/dist/dts/Equal.d.ts +34 -0
  963. package/dist/dts/Equal.d.ts.map +1 -0
  964. package/dist/dts/Equivalence.d.ts +158 -0
  965. package/dist/dts/Equivalence.d.ts.map +1 -0
  966. package/dist/dts/ExecutionPlan.d.ts +210 -0
  967. package/dist/dts/ExecutionPlan.d.ts.map +1 -0
  968. package/dist/dts/ExecutionStrategy.d.ts +122 -0
  969. package/dist/dts/ExecutionStrategy.d.ts.map +1 -0
  970. package/dist/dts/Exit.d.ts +663 -0
  971. package/dist/dts/Exit.d.ts.map +1 -0
  972. package/dist/dts/FastCheck.d.ts +9 -0
  973. package/dist/dts/FastCheck.d.ts.map +1 -0
  974. package/dist/dts/Fiber.d.ts +831 -0
  975. package/dist/dts/Fiber.d.ts.map +1 -0
  976. package/dist/dts/FiberHandle.d.ts +270 -0
  977. package/dist/dts/FiberHandle.d.ts.map +1 -0
  978. package/dist/dts/FiberId.d.ts +196 -0
  979. package/dist/dts/FiberId.d.ts.map +1 -0
  980. package/dist/dts/FiberMap.d.ts +368 -0
  981. package/dist/dts/FiberMap.d.ts.map +1 -0
  982. package/dist/dts/FiberRef.d.ts +422 -0
  983. package/dist/dts/FiberRef.d.ts.map +1 -0
  984. package/dist/dts/FiberRefs.d.ts +256 -0
  985. package/dist/dts/FiberRefs.d.ts.map +1 -0
  986. package/dist/dts/FiberRefsPatch.d.ts +125 -0
  987. package/dist/dts/FiberRefsPatch.d.ts.map +1 -0
  988. package/dist/dts/FiberSet.d.ts +236 -0
  989. package/dist/dts/FiberSet.d.ts.map +1 -0
  990. package/dist/dts/FiberStatus.d.ts +94 -0
  991. package/dist/dts/FiberStatus.d.ts.map +1 -0
  992. package/dist/dts/Function.d.ts +660 -0
  993. package/dist/dts/Function.d.ts.map +1 -0
  994. package/dist/dts/GlobalValue.d.ts +25 -0
  995. package/dist/dts/GlobalValue.d.ts.map +1 -0
  996. package/dist/dts/Graph.d.ts +1753 -0
  997. package/dist/dts/Graph.d.ts.map +1 -0
  998. package/dist/dts/GroupBy.d.ts +125 -0
  999. package/dist/dts/GroupBy.d.ts.map +1 -0
  1000. package/dist/dts/HKT.d.ts +41 -0
  1001. package/dist/dts/HKT.d.ts.map +1 -0
  1002. package/dist/dts/Hash.d.ts +79 -0
  1003. package/dist/dts/Hash.d.ts.map +1 -0
  1004. package/dist/dts/HashMap.d.ts +863 -0
  1005. package/dist/dts/HashMap.d.ts.map +1 -0
  1006. package/dist/dts/HashRing.d.ts +158 -0
  1007. package/dist/dts/HashRing.d.ts.map +1 -0
  1008. package/dist/dts/HashSet.d.ts +2271 -0
  1009. package/dist/dts/HashSet.d.ts.map +1 -0
  1010. package/dist/dts/Inspectable.d.ts +88 -0
  1011. package/dist/dts/Inspectable.d.ts.map +1 -0
  1012. package/dist/dts/Iterable.d.ts +1047 -0
  1013. package/dist/dts/Iterable.d.ts.map +1 -0
  1014. package/dist/dts/JSONSchema.d.ts +268 -0
  1015. package/dist/dts/JSONSchema.d.ts.map +1 -0
  1016. package/dist/dts/KeyedPool.d.ts +182 -0
  1017. package/dist/dts/KeyedPool.d.ts.map +1 -0
  1018. package/dist/dts/Layer.d.ts +1374 -0
  1019. package/dist/dts/Layer.d.ts.map +1 -0
  1020. package/dist/dts/LayerMap.d.ts +265 -0
  1021. package/dist/dts/LayerMap.d.ts.map +1 -0
  1022. package/dist/dts/List.d.ts +937 -0
  1023. package/dist/dts/List.d.ts.map +1 -0
  1024. package/dist/dts/LogLevel.d.ts +333 -0
  1025. package/dist/dts/LogLevel.d.ts.map +1 -0
  1026. package/dist/dts/LogSpan.d.ts +19 -0
  1027. package/dist/dts/LogSpan.d.ts.map +1 -0
  1028. package/dist/dts/Logger.d.ts +795 -0
  1029. package/dist/dts/Logger.d.ts.map +1 -0
  1030. package/dist/dts/Mailbox.d.ts +274 -0
  1031. package/dist/dts/Mailbox.d.ts.map +1 -0
  1032. package/dist/dts/ManagedRuntime.d.ts +154 -0
  1033. package/dist/dts/ManagedRuntime.d.ts.map +1 -0
  1034. package/dist/dts/Match.d.ts +1140 -0
  1035. package/dist/dts/Match.d.ts.map +1 -0
  1036. package/dist/dts/MergeDecision.d.ts +86 -0
  1037. package/dist/dts/MergeDecision.d.ts.map +1 -0
  1038. package/dist/dts/MergeState.d.ts +130 -0
  1039. package/dist/dts/MergeState.d.ts.map +1 -0
  1040. package/dist/dts/MergeStrategy.d.ts +104 -0
  1041. package/dist/dts/MergeStrategy.d.ts.map +1 -0
  1042. package/dist/dts/Metric.d.ts +1042 -0
  1043. package/dist/dts/Metric.d.ts.map +1 -0
  1044. package/dist/dts/MetricBoundaries.d.ts +58 -0
  1045. package/dist/dts/MetricBoundaries.d.ts.map +1 -0
  1046. package/dist/dts/MetricHook.d.ts +155 -0
  1047. package/dist/dts/MetricHook.d.ts.map +1 -0
  1048. package/dist/dts/MetricKey.d.ts +222 -0
  1049. package/dist/dts/MetricKey.d.ts.map +1 -0
  1050. package/dist/dts/MetricKeyType.d.ts +224 -0
  1051. package/dist/dts/MetricKeyType.d.ts.map +1 -0
  1052. package/dist/dts/MetricLabel.d.ts +42 -0
  1053. package/dist/dts/MetricLabel.d.ts.map +1 -0
  1054. package/dist/dts/MetricPair.d.ts +54 -0
  1055. package/dist/dts/MetricPair.d.ts.map +1 -0
  1056. package/dist/dts/MetricPolling.d.ts +151 -0
  1057. package/dist/dts/MetricPolling.d.ts.map +1 -0
  1058. package/dist/dts/MetricRegistry.d.ts +34 -0
  1059. package/dist/dts/MetricRegistry.d.ts.map +1 -0
  1060. package/dist/dts/MetricState.d.ts +238 -0
  1061. package/dist/dts/MetricState.d.ts.map +1 -0
  1062. package/dist/dts/Micro.d.ts +3440 -0
  1063. package/dist/dts/Micro.d.ts.map +1 -0
  1064. package/dist/dts/ModuleVersion.d.ts +11 -0
  1065. package/dist/dts/ModuleVersion.d.ts.map +1 -0
  1066. package/dist/dts/MutableHashMap.d.ts +170 -0
  1067. package/dist/dts/MutableHashMap.d.ts.map +1 -0
  1068. package/dist/dts/MutableHashSet.d.ts +547 -0
  1069. package/dist/dts/MutableHashSet.d.ts.map +1 -0
  1070. package/dist/dts/MutableList.d.ts +150 -0
  1071. package/dist/dts/MutableList.d.ts.map +1 -0
  1072. package/dist/dts/MutableQueue.d.ts +189 -0
  1073. package/dist/dts/MutableQueue.d.ts.map +1 -0
  1074. package/dist/dts/MutableRef.d.ts +175 -0
  1075. package/dist/dts/MutableRef.d.ts.map +1 -0
  1076. package/dist/dts/NonEmptyIterable.d.ts +21 -0
  1077. package/dist/dts/NonEmptyIterable.d.ts.map +1 -0
  1078. package/dist/dts/Number.d.ts +1361 -0
  1079. package/dist/dts/Number.d.ts.map +1 -0
  1080. package/dist/dts/Option.d.ts +3757 -0
  1081. package/dist/dts/Option.d.ts.map +1 -0
  1082. package/dist/dts/Order.d.ts +260 -0
  1083. package/dist/dts/Order.d.ts.map +1 -0
  1084. package/dist/dts/Ordering.d.ts +144 -0
  1085. package/dist/dts/Ordering.d.ts.map +1 -0
  1086. package/dist/dts/ParseResult.d.ts +560 -0
  1087. package/dist/dts/ParseResult.d.ts.map +1 -0
  1088. package/dist/dts/PartitionedSemaphore.d.ts +76 -0
  1089. package/dist/dts/PartitionedSemaphore.d.ts.map +1 -0
  1090. package/dist/dts/Pipeable.d.ts +65 -0
  1091. package/dist/dts/Pipeable.d.ts.map +1 -0
  1092. package/dist/dts/Pool.d.ts +201 -0
  1093. package/dist/dts/Pool.d.ts.map +1 -0
  1094. package/dist/dts/Predicate.d.ts +2197 -0
  1095. package/dist/dts/Predicate.d.ts.map +1 -0
  1096. package/dist/dts/Pretty.d.ts +26 -0
  1097. package/dist/dts/Pretty.d.ts.map +1 -0
  1098. package/dist/dts/PrimaryKey.d.ts +21 -0
  1099. package/dist/dts/PrimaryKey.d.ts.map +1 -0
  1100. package/dist/dts/PubSub.d.ts +197 -0
  1101. package/dist/dts/PubSub.d.ts.map +1 -0
  1102. package/dist/dts/Queue.d.ts +664 -0
  1103. package/dist/dts/Queue.d.ts.map +1 -0
  1104. package/dist/dts/Random.d.ts +183 -0
  1105. package/dist/dts/Random.d.ts.map +1 -0
  1106. package/dist/dts/RateLimiter.d.ts +134 -0
  1107. package/dist/dts/RateLimiter.d.ts.map +1 -0
  1108. package/dist/dts/RcMap.d.ts +231 -0
  1109. package/dist/dts/RcMap.d.ts.map +1 -0
  1110. package/dist/dts/RcRef.d.ts +111 -0
  1111. package/dist/dts/RcRef.d.ts.map +1 -0
  1112. package/dist/dts/Readable.d.ts +72 -0
  1113. package/dist/dts/Readable.d.ts.map +1 -0
  1114. package/dist/dts/Record.d.ts +1547 -0
  1115. package/dist/dts/Record.d.ts.map +1 -0
  1116. package/dist/dts/RedBlackTree.d.ts +676 -0
  1117. package/dist/dts/RedBlackTree.d.ts.map +1 -0
  1118. package/dist/dts/Redacted.d.ts +133 -0
  1119. package/dist/dts/Redacted.d.ts.map +1 -0
  1120. package/dist/dts/Ref.d.ts +250 -0
  1121. package/dist/dts/Ref.d.ts.map +1 -0
  1122. package/dist/dts/RegExp.d.ts +31 -0
  1123. package/dist/dts/RegExp.d.ts.map +1 -0
  1124. package/dist/dts/Reloadable.d.ts +102 -0
  1125. package/dist/dts/Reloadable.d.ts.map +1 -0
  1126. package/dist/dts/Request.d.ts +383 -0
  1127. package/dist/dts/Request.d.ts.map +1 -0
  1128. package/dist/dts/RequestBlock.d.ts +94 -0
  1129. package/dist/dts/RequestBlock.d.ts.map +1 -0
  1130. package/dist/dts/RequestResolver.d.ts +413 -0
  1131. package/dist/dts/RequestResolver.d.ts.map +1 -0
  1132. package/dist/dts/Resource.d.ts +99 -0
  1133. package/dist/dts/Resource.d.ts.map +1 -0
  1134. package/dist/dts/Runtime.d.ts +578 -0
  1135. package/dist/dts/Runtime.d.ts.map +1 -0
  1136. package/dist/dts/RuntimeFlags.d.ts +397 -0
  1137. package/dist/dts/RuntimeFlags.d.ts.map +1 -0
  1138. package/dist/dts/RuntimeFlagsPatch.d.ts +273 -0
  1139. package/dist/dts/RuntimeFlagsPatch.d.ts.map +1 -0
  1140. package/dist/dts/STM.d.ts +2645 -0
  1141. package/dist/dts/STM.d.ts.map +1 -0
  1142. package/dist/dts/Schedule.d.ts +3509 -0
  1143. package/dist/dts/Schedule.d.ts.map +1 -0
  1144. package/dist/dts/ScheduleDecision.d.ts +50 -0
  1145. package/dist/dts/ScheduleDecision.d.ts.map +1 -0
  1146. package/dist/dts/ScheduleInterval.d.ts +204 -0
  1147. package/dist/dts/ScheduleInterval.d.ts.map +1 -0
  1148. package/dist/dts/ScheduleIntervals.d.ts +159 -0
  1149. package/dist/dts/ScheduleIntervals.d.ts.map +1 -0
  1150. package/dist/dts/Scheduler.d.ts +161 -0
  1151. package/dist/dts/Scheduler.d.ts.map +1 -0
  1152. package/dist/dts/Schema.d.ts +5094 -0
  1153. package/dist/dts/Schema.d.ts.map +1 -0
  1154. package/dist/dts/SchemaAST.d.ts +1360 -0
  1155. package/dist/dts/SchemaAST.d.ts.map +1 -0
  1156. package/dist/dts/Scope.d.ts +194 -0
  1157. package/dist/dts/Scope.d.ts.map +1 -0
  1158. package/dist/dts/ScopedCache.d.ts +127 -0
  1159. package/dist/dts/ScopedCache.d.ts.map +1 -0
  1160. package/dist/dts/ScopedRef.d.ts +125 -0
  1161. package/dist/dts/ScopedRef.d.ts.map +1 -0
  1162. package/dist/dts/Secret.d.ts +76 -0
  1163. package/dist/dts/Secret.d.ts.map +1 -0
  1164. package/dist/dts/SingleProducerAsyncInput.d.ts +57 -0
  1165. package/dist/dts/SingleProducerAsyncInput.d.ts.map +1 -0
  1166. package/dist/dts/Sink.d.ts +1616 -0
  1167. package/dist/dts/Sink.d.ts.map +1 -0
  1168. package/dist/dts/SortedMap.d.ts +234 -0
  1169. package/dist/dts/SortedMap.d.ts.map +1 -0
  1170. package/dist/dts/SortedSet.d.ts +333 -0
  1171. package/dist/dts/SortedSet.d.ts.map +1 -0
  1172. package/dist/dts/Stream.d.ts +10803 -0
  1173. package/dist/dts/Stream.d.ts.map +1 -0
  1174. package/dist/dts/StreamEmit.d.ts +117 -0
  1175. package/dist/dts/StreamEmit.d.ts.map +1 -0
  1176. package/dist/dts/StreamHaltStrategy.d.ts +116 -0
  1177. package/dist/dts/StreamHaltStrategy.d.ts.map +1 -0
  1178. package/dist/dts/Streamable.d.ts +27 -0
  1179. package/dist/dts/Streamable.d.ts.map +1 -0
  1180. package/dist/dts/String.d.ts +848 -0
  1181. package/dist/dts/String.d.ts.map +1 -0
  1182. package/dist/dts/Struct.d.ts +295 -0
  1183. package/dist/dts/Struct.d.ts.map +1 -0
  1184. package/dist/dts/Subscribable.d.ts +76 -0
  1185. package/dist/dts/Subscribable.d.ts.map +1 -0
  1186. package/dist/dts/SubscriptionRef.d.ts +384 -0
  1187. package/dist/dts/SubscriptionRef.d.ts.map +1 -0
  1188. package/dist/dts/Supervisor.d.ts +171 -0
  1189. package/dist/dts/Supervisor.d.ts.map +1 -0
  1190. package/dist/dts/Symbol.d.ts +26 -0
  1191. package/dist/dts/Symbol.d.ts.map +1 -0
  1192. package/dist/dts/SynchronizedRef.d.ts +378 -0
  1193. package/dist/dts/SynchronizedRef.d.ts.map +1 -0
  1194. package/dist/dts/TArray.d.ts +857 -0
  1195. package/dist/dts/TArray.d.ts.map +1 -0
  1196. package/dist/dts/TDeferred.d.ts +104 -0
  1197. package/dist/dts/TDeferred.d.ts.map +1 -0
  1198. package/dist/dts/TMap.d.ts +780 -0
  1199. package/dist/dts/TMap.d.ts.map +1 -0
  1200. package/dist/dts/TPriorityQueue.d.ts +250 -0
  1201. package/dist/dts/TPriorityQueue.d.ts.map +1 -0
  1202. package/dist/dts/TPubSub.d.ts +186 -0
  1203. package/dist/dts/TPubSub.d.ts.map +1 -0
  1204. package/dist/dts/TQueue.d.ts +492 -0
  1205. package/dist/dts/TQueue.d.ts.map +1 -0
  1206. package/dist/dts/TRandom.d.ts +108 -0
  1207. package/dist/dts/TRandom.d.ts.map +1 -0
  1208. package/dist/dts/TReentrantLock.d.ts +230 -0
  1209. package/dist/dts/TReentrantLock.d.ts.map +1 -0
  1210. package/dist/dts/TRef.d.ts +235 -0
  1211. package/dist/dts/TRef.d.ts.map +1 -0
  1212. package/dist/dts/TSemaphore.d.ts +145 -0
  1213. package/dist/dts/TSemaphore.d.ts.map +1 -0
  1214. package/dist/dts/TSet.d.ts +564 -0
  1215. package/dist/dts/TSet.d.ts.map +1 -0
  1216. package/dist/dts/TSubscriptionRef.d.ts +251 -0
  1217. package/dist/dts/TSubscriptionRef.d.ts.map +1 -0
  1218. package/dist/dts/Take.d.ts +271 -0
  1219. package/dist/dts/Take.d.ts.map +1 -0
  1220. package/dist/dts/TestAnnotation.d.ts +71 -0
  1221. package/dist/dts/TestAnnotation.d.ts.map +1 -0
  1222. package/dist/dts/TestAnnotationMap.d.ts +56 -0
  1223. package/dist/dts/TestAnnotationMap.d.ts.map +1 -0
  1224. package/dist/dts/TestAnnotations.d.ts +59 -0
  1225. package/dist/dts/TestAnnotations.d.ts.map +1 -0
  1226. package/dist/dts/TestClock.d.ts +147 -0
  1227. package/dist/dts/TestClock.d.ts.map +1 -0
  1228. package/dist/dts/TestConfig.d.ts +45 -0
  1229. package/dist/dts/TestConfig.d.ts.map +1 -0
  1230. package/dist/dts/TestContext.d.ts +15 -0
  1231. package/dist/dts/TestContext.d.ts.map +1 -0
  1232. package/dist/dts/TestLive.d.ts +35 -0
  1233. package/dist/dts/TestLive.d.ts.map +1 -0
  1234. package/dist/dts/TestServices.d.ts +231 -0
  1235. package/dist/dts/TestServices.d.ts.map +1 -0
  1236. package/dist/dts/TestSized.d.ts +36 -0
  1237. package/dist/dts/TestSized.d.ts.map +1 -0
  1238. package/dist/dts/Tracer.d.ts +152 -0
  1239. package/dist/dts/Tracer.d.ts.map +1 -0
  1240. package/dist/dts/Trie.d.ts +1828 -0
  1241. package/dist/dts/Trie.d.ts.map +1 -0
  1242. package/dist/dts/Tuple.d.ts +446 -0
  1243. package/dist/dts/Tuple.d.ts.map +1 -0
  1244. package/dist/dts/Types.d.ts +330 -0
  1245. package/dist/dts/Types.d.ts.map +1 -0
  1246. package/dist/dts/Unify.d.ts +75 -0
  1247. package/dist/dts/Unify.d.ts.map +1 -0
  1248. package/dist/dts/UpstreamPullRequest.d.ts +109 -0
  1249. package/dist/dts/UpstreamPullRequest.d.ts.map +1 -0
  1250. package/dist/dts/UpstreamPullStrategy.d.ts +110 -0
  1251. package/dist/dts/UpstreamPullStrategy.d.ts.map +1 -0
  1252. package/dist/dts/Utils.d.ts +283 -0
  1253. package/dist/dts/Utils.d.ts.map +1 -0
  1254. package/dist/dts/index.d.ts +1385 -0
  1255. package/dist/dts/index.d.ts.map +1 -0
  1256. package/dist/dts/internal/array.d.ts +5 -0
  1257. package/dist/dts/internal/array.d.ts.map +1 -0
  1258. package/dist/dts/internal/blockedRequests.d.ts +2 -0
  1259. package/dist/dts/internal/blockedRequests.d.ts.map +1 -0
  1260. package/dist/dts/internal/cache.d.ts +2 -0
  1261. package/dist/dts/internal/cache.d.ts.map +1 -0
  1262. package/dist/dts/internal/cause.d.ts +2 -0
  1263. package/dist/dts/internal/cause.d.ts.map +1 -0
  1264. package/dist/dts/internal/channel/channelExecutor.d.ts +3 -0
  1265. package/dist/dts/internal/channel/channelExecutor.d.ts.map +1 -0
  1266. package/dist/dts/internal/channel/channelState.d.ts +2 -0
  1267. package/dist/dts/internal/channel/channelState.d.ts.map +1 -0
  1268. package/dist/dts/internal/channel/childExecutorDecision.d.ts +2 -0
  1269. package/dist/dts/internal/channel/childExecutorDecision.d.ts.map +1 -0
  1270. package/dist/dts/internal/channel/continuation.d.ts +2 -0
  1271. package/dist/dts/internal/channel/continuation.d.ts.map +1 -0
  1272. package/dist/dts/internal/channel/mergeDecision.d.ts +2 -0
  1273. package/dist/dts/internal/channel/mergeDecision.d.ts.map +1 -0
  1274. package/dist/dts/internal/channel/mergeState.d.ts +2 -0
  1275. package/dist/dts/internal/channel/mergeState.d.ts.map +1 -0
  1276. package/dist/dts/internal/channel/mergeStrategy.d.ts +2 -0
  1277. package/dist/dts/internal/channel/mergeStrategy.d.ts.map +1 -0
  1278. package/dist/dts/internal/channel/singleProducerAsyncInput.d.ts +2 -0
  1279. package/dist/dts/internal/channel/singleProducerAsyncInput.d.ts.map +1 -0
  1280. package/dist/dts/internal/channel/subexecutor.d.ts +2 -0
  1281. package/dist/dts/internal/channel/subexecutor.d.ts.map +1 -0
  1282. package/dist/dts/internal/channel/upstreamPullRequest.d.ts +2 -0
  1283. package/dist/dts/internal/channel/upstreamPullRequest.d.ts.map +1 -0
  1284. package/dist/dts/internal/channel/upstreamPullStrategy.d.ts +2 -0
  1285. package/dist/dts/internal/channel/upstreamPullStrategy.d.ts.map +1 -0
  1286. package/dist/dts/internal/channel.d.ts +2 -0
  1287. package/dist/dts/internal/channel.d.ts.map +1 -0
  1288. package/dist/dts/internal/clock.d.ts +2 -0
  1289. package/dist/dts/internal/clock.d.ts.map +1 -0
  1290. package/dist/dts/internal/completedRequestMap.d.ts +2 -0
  1291. package/dist/dts/internal/completedRequestMap.d.ts.map +1 -0
  1292. package/dist/dts/internal/concurrency.d.ts +2 -0
  1293. package/dist/dts/internal/concurrency.d.ts.map +1 -0
  1294. package/dist/dts/internal/config.d.ts +2 -0
  1295. package/dist/dts/internal/config.d.ts.map +1 -0
  1296. package/dist/dts/internal/configError.d.ts +2 -0
  1297. package/dist/dts/internal/configError.d.ts.map +1 -0
  1298. package/dist/dts/internal/configProvider/pathPatch.d.ts +2 -0
  1299. package/dist/dts/internal/configProvider/pathPatch.d.ts.map +1 -0
  1300. package/dist/dts/internal/configProvider.d.ts +2 -0
  1301. package/dist/dts/internal/configProvider.d.ts.map +1 -0
  1302. package/dist/dts/internal/console.d.ts +2 -0
  1303. package/dist/dts/internal/console.d.ts.map +1 -0
  1304. package/dist/dts/internal/context.d.ts +2 -0
  1305. package/dist/dts/internal/context.d.ts.map +1 -0
  1306. package/dist/dts/internal/core-effect.d.ts +8 -0
  1307. package/dist/dts/internal/core-effect.d.ts.map +1 -0
  1308. package/dist/dts/internal/core-stream.d.ts +9 -0
  1309. package/dist/dts/internal/core-stream.d.ts.map +1 -0
  1310. package/dist/dts/internal/core.d.ts +9 -0
  1311. package/dist/dts/internal/core.d.ts.map +1 -0
  1312. package/dist/dts/internal/data.d.ts +2 -0
  1313. package/dist/dts/internal/data.d.ts.map +1 -0
  1314. package/dist/dts/internal/dataSource.d.ts +2 -0
  1315. package/dist/dts/internal/dataSource.d.ts.map +1 -0
  1316. package/dist/dts/internal/dateTime.d.ts +2 -0
  1317. package/dist/dts/internal/dateTime.d.ts.map +1 -0
  1318. package/dist/dts/internal/defaultServices/console.d.ts +2 -0
  1319. package/dist/dts/internal/defaultServices/console.d.ts.map +1 -0
  1320. package/dist/dts/internal/defaultServices.d.ts +10 -0
  1321. package/dist/dts/internal/defaultServices.d.ts.map +1 -0
  1322. package/dist/dts/internal/deferred.d.ts +2 -0
  1323. package/dist/dts/internal/deferred.d.ts.map +1 -0
  1324. package/dist/dts/internal/differ/chunkPatch.d.ts +2 -0
  1325. package/dist/dts/internal/differ/chunkPatch.d.ts.map +1 -0
  1326. package/dist/dts/internal/differ/contextPatch.d.ts +2 -0
  1327. package/dist/dts/internal/differ/contextPatch.d.ts.map +1 -0
  1328. package/dist/dts/internal/differ/hashMapPatch.d.ts +2 -0
  1329. package/dist/dts/internal/differ/hashMapPatch.d.ts.map +1 -0
  1330. package/dist/dts/internal/differ/hashSetPatch.d.ts +2 -0
  1331. package/dist/dts/internal/differ/hashSetPatch.d.ts.map +1 -0
  1332. package/dist/dts/internal/differ/orPatch.d.ts +2 -0
  1333. package/dist/dts/internal/differ/orPatch.d.ts.map +1 -0
  1334. package/dist/dts/internal/differ/readonlyArrayPatch.d.ts +2 -0
  1335. package/dist/dts/internal/differ/readonlyArrayPatch.d.ts.map +1 -0
  1336. package/dist/dts/internal/differ.d.ts +2 -0
  1337. package/dist/dts/internal/differ.d.ts.map +1 -0
  1338. package/dist/dts/internal/doNotation.d.ts +2 -0
  1339. package/dist/dts/internal/doNotation.d.ts.map +1 -0
  1340. package/dist/dts/internal/effect/circular.d.ts +2 -0
  1341. package/dist/dts/internal/effect/circular.d.ts.map +1 -0
  1342. package/dist/dts/internal/effectable.d.ts +2 -0
  1343. package/dist/dts/internal/effectable.d.ts.map +1 -0
  1344. package/dist/dts/internal/either.d.ts +5 -0
  1345. package/dist/dts/internal/either.d.ts.map +1 -0
  1346. package/dist/dts/internal/encoding/base64.d.ts +2 -0
  1347. package/dist/dts/internal/encoding/base64.d.ts.map +1 -0
  1348. package/dist/dts/internal/encoding/base64Url.d.ts +2 -0
  1349. package/dist/dts/internal/encoding/base64Url.d.ts.map +1 -0
  1350. package/dist/dts/internal/encoding/common.d.ts +5 -0
  1351. package/dist/dts/internal/encoding/common.d.ts.map +1 -0
  1352. package/dist/dts/internal/encoding/hex.d.ts +2 -0
  1353. package/dist/dts/internal/encoding/hex.d.ts.map +1 -0
  1354. package/dist/dts/internal/errors.d.ts +5 -0
  1355. package/dist/dts/internal/errors.d.ts.map +1 -0
  1356. package/dist/dts/internal/executionPlan.d.ts +2 -0
  1357. package/dist/dts/internal/executionPlan.d.ts.map +1 -0
  1358. package/dist/dts/internal/executionStrategy.d.ts +2 -0
  1359. package/dist/dts/internal/executionStrategy.d.ts.map +1 -0
  1360. package/dist/dts/internal/fiber.d.ts +6 -0
  1361. package/dist/dts/internal/fiber.d.ts.map +1 -0
  1362. package/dist/dts/internal/fiberId.d.ts +2 -0
  1363. package/dist/dts/internal/fiberId.d.ts.map +1 -0
  1364. package/dist/dts/internal/fiberMessage.d.ts +2 -0
  1365. package/dist/dts/internal/fiberMessage.d.ts.map +1 -0
  1366. package/dist/dts/internal/fiberRefs/patch.d.ts +2 -0
  1367. package/dist/dts/internal/fiberRefs/patch.d.ts.map +1 -0
  1368. package/dist/dts/internal/fiberRefs.d.ts +2 -0
  1369. package/dist/dts/internal/fiberRefs.d.ts.map +1 -0
  1370. package/dist/dts/internal/fiberRuntime.d.ts +7 -0
  1371. package/dist/dts/internal/fiberRuntime.d.ts.map +1 -0
  1372. package/dist/dts/internal/fiberScope.d.ts +18 -0
  1373. package/dist/dts/internal/fiberScope.d.ts.map +1 -0
  1374. package/dist/dts/internal/fiberStatus.d.ts +2 -0
  1375. package/dist/dts/internal/fiberStatus.d.ts.map +1 -0
  1376. package/dist/dts/internal/groupBy.d.ts +2 -0
  1377. package/dist/dts/internal/groupBy.d.ts.map +1 -0
  1378. package/dist/dts/internal/hashMap/array.d.ts +2 -0
  1379. package/dist/dts/internal/hashMap/array.d.ts.map +1 -0
  1380. package/dist/dts/internal/hashMap/bitwise.d.ts +2 -0
  1381. package/dist/dts/internal/hashMap/bitwise.d.ts.map +1 -0
  1382. package/dist/dts/internal/hashMap/config.d.ts +2 -0
  1383. package/dist/dts/internal/hashMap/config.d.ts.map +1 -0
  1384. package/dist/dts/internal/hashMap/keySet.d.ts +2 -0
  1385. package/dist/dts/internal/hashMap/keySet.d.ts.map +1 -0
  1386. package/dist/dts/internal/hashMap/node.d.ts +2 -0
  1387. package/dist/dts/internal/hashMap/node.d.ts.map +1 -0
  1388. package/dist/dts/internal/hashMap.d.ts +9 -0
  1389. package/dist/dts/internal/hashMap.d.ts.map +1 -0
  1390. package/dist/dts/internal/hashSet.d.ts +2 -0
  1391. package/dist/dts/internal/hashSet.d.ts.map +1 -0
  1392. package/dist/dts/internal/keyedPool.d.ts +2 -0
  1393. package/dist/dts/internal/keyedPool.d.ts.map +1 -0
  1394. package/dist/dts/internal/layer/circular.d.ts +2 -0
  1395. package/dist/dts/internal/layer/circular.d.ts.map +1 -0
  1396. package/dist/dts/internal/layer.d.ts +16 -0
  1397. package/dist/dts/internal/layer.d.ts.map +1 -0
  1398. package/dist/dts/internal/logSpan.d.ts +2 -0
  1399. package/dist/dts/internal/logSpan.d.ts.map +1 -0
  1400. package/dist/dts/internal/logger-circular.d.ts +2 -0
  1401. package/dist/dts/internal/logger-circular.d.ts.map +1 -0
  1402. package/dist/dts/internal/logger.d.ts +2 -0
  1403. package/dist/dts/internal/logger.d.ts.map +1 -0
  1404. package/dist/dts/internal/mailbox.d.ts +2 -0
  1405. package/dist/dts/internal/mailbox.d.ts.map +1 -0
  1406. package/dist/dts/internal/managedRuntime/circular.d.ts +2 -0
  1407. package/dist/dts/internal/managedRuntime/circular.d.ts.map +1 -0
  1408. package/dist/dts/internal/managedRuntime.d.ts +2 -0
  1409. package/dist/dts/internal/managedRuntime.d.ts.map +1 -0
  1410. package/dist/dts/internal/matcher.d.ts +2 -0
  1411. package/dist/dts/internal/matcher.d.ts.map +1 -0
  1412. package/dist/dts/internal/metric/boundaries.d.ts +2 -0
  1413. package/dist/dts/internal/metric/boundaries.d.ts.map +1 -0
  1414. package/dist/dts/internal/metric/hook.d.ts +2 -0
  1415. package/dist/dts/internal/metric/hook.d.ts.map +1 -0
  1416. package/dist/dts/internal/metric/key.d.ts +2 -0
  1417. package/dist/dts/internal/metric/key.d.ts.map +1 -0
  1418. package/dist/dts/internal/metric/keyType.d.ts +2 -0
  1419. package/dist/dts/internal/metric/keyType.d.ts.map +1 -0
  1420. package/dist/dts/internal/metric/label.d.ts +2 -0
  1421. package/dist/dts/internal/metric/label.d.ts.map +1 -0
  1422. package/dist/dts/internal/metric/pair.d.ts +2 -0
  1423. package/dist/dts/internal/metric/pair.d.ts.map +1 -0
  1424. package/dist/dts/internal/metric/polling.d.ts +2 -0
  1425. package/dist/dts/internal/metric/polling.d.ts.map +1 -0
  1426. package/dist/dts/internal/metric/registry.d.ts +2 -0
  1427. package/dist/dts/internal/metric/registry.d.ts.map +1 -0
  1428. package/dist/dts/internal/metric/state.d.ts +22 -0
  1429. package/dist/dts/internal/metric/state.d.ts.map +1 -0
  1430. package/dist/dts/internal/metric.d.ts +2 -0
  1431. package/dist/dts/internal/metric.d.ts.map +1 -0
  1432. package/dist/dts/internal/opCodes/cause.d.ts +2 -0
  1433. package/dist/dts/internal/opCodes/cause.d.ts.map +1 -0
  1434. package/dist/dts/internal/opCodes/channel.d.ts +2 -0
  1435. package/dist/dts/internal/opCodes/channel.d.ts.map +1 -0
  1436. package/dist/dts/internal/opCodes/channelChildExecutorDecision.d.ts +2 -0
  1437. package/dist/dts/internal/opCodes/channelChildExecutorDecision.d.ts.map +1 -0
  1438. package/dist/dts/internal/opCodes/channelMergeDecision.d.ts +2 -0
  1439. package/dist/dts/internal/opCodes/channelMergeDecision.d.ts.map +1 -0
  1440. package/dist/dts/internal/opCodes/channelMergeState.d.ts +2 -0
  1441. package/dist/dts/internal/opCodes/channelMergeState.d.ts.map +1 -0
  1442. package/dist/dts/internal/opCodes/channelMergeStrategy.d.ts +2 -0
  1443. package/dist/dts/internal/opCodes/channelMergeStrategy.d.ts.map +1 -0
  1444. package/dist/dts/internal/opCodes/channelState.d.ts +2 -0
  1445. package/dist/dts/internal/opCodes/channelState.d.ts.map +1 -0
  1446. package/dist/dts/internal/opCodes/channelUpstreamPullRequest.d.ts +2 -0
  1447. package/dist/dts/internal/opCodes/channelUpstreamPullRequest.d.ts.map +1 -0
  1448. package/dist/dts/internal/opCodes/channelUpstreamPullStrategy.d.ts +2 -0
  1449. package/dist/dts/internal/opCodes/channelUpstreamPullStrategy.d.ts.map +1 -0
  1450. package/dist/dts/internal/opCodes/config.d.ts +2 -0
  1451. package/dist/dts/internal/opCodes/config.d.ts.map +1 -0
  1452. package/dist/dts/internal/opCodes/configError.d.ts +2 -0
  1453. package/dist/dts/internal/opCodes/configError.d.ts.map +1 -0
  1454. package/dist/dts/internal/opCodes/continuation.d.ts +2 -0
  1455. package/dist/dts/internal/opCodes/continuation.d.ts.map +1 -0
  1456. package/dist/dts/internal/opCodes/deferred.d.ts +2 -0
  1457. package/dist/dts/internal/opCodes/deferred.d.ts.map +1 -0
  1458. package/dist/dts/internal/opCodes/effect.d.ts +2 -0
  1459. package/dist/dts/internal/opCodes/effect.d.ts.map +1 -0
  1460. package/dist/dts/internal/opCodes/layer.d.ts +2 -0
  1461. package/dist/dts/internal/opCodes/layer.d.ts.map +1 -0
  1462. package/dist/dts/internal/opCodes/streamHaltStrategy.d.ts +2 -0
  1463. package/dist/dts/internal/opCodes/streamHaltStrategy.d.ts.map +1 -0
  1464. package/dist/dts/internal/option.d.ts +5 -0
  1465. package/dist/dts/internal/option.d.ts.map +1 -0
  1466. package/dist/dts/internal/pool.d.ts +2 -0
  1467. package/dist/dts/internal/pool.d.ts.map +1 -0
  1468. package/dist/dts/internal/pubsub.d.ts +2 -0
  1469. package/dist/dts/internal/pubsub.d.ts.map +1 -0
  1470. package/dist/dts/internal/query.d.ts +2 -0
  1471. package/dist/dts/internal/query.d.ts.map +1 -0
  1472. package/dist/dts/internal/queue.d.ts +2 -0
  1473. package/dist/dts/internal/queue.d.ts.map +1 -0
  1474. package/dist/dts/internal/random.d.ts +3 -0
  1475. package/dist/dts/internal/random.d.ts.map +1 -0
  1476. package/dist/dts/internal/rateLimiter.d.ts +2 -0
  1477. package/dist/dts/internal/rateLimiter.d.ts.map +1 -0
  1478. package/dist/dts/internal/rcMap.d.ts +2 -0
  1479. package/dist/dts/internal/rcMap.d.ts.map +1 -0
  1480. package/dist/dts/internal/rcRef.d.ts +2 -0
  1481. package/dist/dts/internal/rcRef.d.ts.map +1 -0
  1482. package/dist/dts/internal/redBlackTree/iterator.d.ts +2 -0
  1483. package/dist/dts/internal/redBlackTree/iterator.d.ts.map +1 -0
  1484. package/dist/dts/internal/redBlackTree/node.d.ts +14 -0
  1485. package/dist/dts/internal/redBlackTree/node.d.ts.map +1 -0
  1486. package/dist/dts/internal/redBlackTree.d.ts +2 -0
  1487. package/dist/dts/internal/redBlackTree.d.ts.map +1 -0
  1488. package/dist/dts/internal/redacted.d.ts +2 -0
  1489. package/dist/dts/internal/redacted.d.ts.map +1 -0
  1490. package/dist/dts/internal/ref.d.ts +2 -0
  1491. package/dist/dts/internal/ref.d.ts.map +1 -0
  1492. package/dist/dts/internal/reloadable.d.ts +2 -0
  1493. package/dist/dts/internal/reloadable.d.ts.map +1 -0
  1494. package/dist/dts/internal/request.d.ts +2 -0
  1495. package/dist/dts/internal/request.d.ts.map +1 -0
  1496. package/dist/dts/internal/resource.d.ts +2 -0
  1497. package/dist/dts/internal/resource.d.ts.map +1 -0
  1498. package/dist/dts/internal/ringBuffer.d.ts +2 -0
  1499. package/dist/dts/internal/ringBuffer.d.ts.map +1 -0
  1500. package/dist/dts/internal/runtime.d.ts +2 -0
  1501. package/dist/dts/internal/runtime.d.ts.map +1 -0
  1502. package/dist/dts/internal/runtimeFlags.d.ts +3 -0
  1503. package/dist/dts/internal/runtimeFlags.d.ts.map +1 -0
  1504. package/dist/dts/internal/runtimeFlagsPatch.d.ts +2 -0
  1505. package/dist/dts/internal/runtimeFlagsPatch.d.ts.map +1 -0
  1506. package/dist/dts/internal/schedule/decision.d.ts +2 -0
  1507. package/dist/dts/internal/schedule/decision.d.ts.map +1 -0
  1508. package/dist/dts/internal/schedule/interval.d.ts +2 -0
  1509. package/dist/dts/internal/schedule/interval.d.ts.map +1 -0
  1510. package/dist/dts/internal/schedule/intervals.d.ts +2 -0
  1511. package/dist/dts/internal/schedule/intervals.d.ts.map +1 -0
  1512. package/dist/dts/internal/schedule.d.ts +2 -0
  1513. package/dist/dts/internal/schedule.d.ts.map +1 -0
  1514. package/dist/dts/internal/schema/errors.d.ts +2 -0
  1515. package/dist/dts/internal/schema/errors.d.ts.map +1 -0
  1516. package/dist/dts/internal/schema/schemaId.d.ts +2 -0
  1517. package/dist/dts/internal/schema/schemaId.d.ts.map +1 -0
  1518. package/dist/dts/internal/schema/util.d.ts +2 -0
  1519. package/dist/dts/internal/schema/util.d.ts.map +1 -0
  1520. package/dist/dts/internal/scopedCache.d.ts +2 -0
  1521. package/dist/dts/internal/scopedCache.d.ts.map +1 -0
  1522. package/dist/dts/internal/scopedRef.d.ts +2 -0
  1523. package/dist/dts/internal/scopedRef.d.ts.map +1 -0
  1524. package/dist/dts/internal/secret.d.ts +2 -0
  1525. package/dist/dts/internal/secret.d.ts.map +1 -0
  1526. package/dist/dts/internal/singleShotGen.d.ts +2 -0
  1527. package/dist/dts/internal/singleShotGen.d.ts.map +1 -0
  1528. package/dist/dts/internal/sink.d.ts +2 -0
  1529. package/dist/dts/internal/sink.d.ts.map +1 -0
  1530. package/dist/dts/internal/stack.d.ts +2 -0
  1531. package/dist/dts/internal/stack.d.ts.map +1 -0
  1532. package/dist/dts/internal/stm/core.d.ts +2 -0
  1533. package/dist/dts/internal/stm/core.d.ts.map +1 -0
  1534. package/dist/dts/internal/stm/entry.d.ts +2 -0
  1535. package/dist/dts/internal/stm/entry.d.ts.map +1 -0
  1536. package/dist/dts/internal/stm/journal.d.ts +2 -0
  1537. package/dist/dts/internal/stm/journal.d.ts.map +1 -0
  1538. package/dist/dts/internal/stm/opCodes/stm.d.ts +2 -0
  1539. package/dist/dts/internal/stm/opCodes/stm.d.ts.map +1 -0
  1540. package/dist/dts/internal/stm/opCodes/stmState.d.ts +2 -0
  1541. package/dist/dts/internal/stm/opCodes/stmState.d.ts.map +1 -0
  1542. package/dist/dts/internal/stm/opCodes/strategy.d.ts +2 -0
  1543. package/dist/dts/internal/stm/opCodes/strategy.d.ts.map +1 -0
  1544. package/dist/dts/internal/stm/opCodes/tExit.d.ts +2 -0
  1545. package/dist/dts/internal/stm/opCodes/tExit.d.ts.map +1 -0
  1546. package/dist/dts/internal/stm/opCodes/tryCommit.d.ts +2 -0
  1547. package/dist/dts/internal/stm/opCodes/tryCommit.d.ts.map +1 -0
  1548. package/dist/dts/internal/stm/stm.d.ts +7 -0
  1549. package/dist/dts/internal/stm/stm.d.ts.map +1 -0
  1550. package/dist/dts/internal/stm/stmState.d.ts +2 -0
  1551. package/dist/dts/internal/stm/stmState.d.ts.map +1 -0
  1552. package/dist/dts/internal/stm/tArray.d.ts +2 -0
  1553. package/dist/dts/internal/stm/tArray.d.ts.map +1 -0
  1554. package/dist/dts/internal/stm/tDeferred.d.ts +2 -0
  1555. package/dist/dts/internal/stm/tDeferred.d.ts.map +1 -0
  1556. package/dist/dts/internal/stm/tExit.d.ts +5 -0
  1557. package/dist/dts/internal/stm/tExit.d.ts.map +1 -0
  1558. package/dist/dts/internal/stm/tMap.d.ts +2 -0
  1559. package/dist/dts/internal/stm/tMap.d.ts.map +1 -0
  1560. package/dist/dts/internal/stm/tPriorityQueue.d.ts +2 -0
  1561. package/dist/dts/internal/stm/tPriorityQueue.d.ts.map +1 -0
  1562. package/dist/dts/internal/stm/tPubSub.d.ts +2 -0
  1563. package/dist/dts/internal/stm/tPubSub.d.ts.map +1 -0
  1564. package/dist/dts/internal/stm/tQueue.d.ts +2 -0
  1565. package/dist/dts/internal/stm/tQueue.d.ts.map +1 -0
  1566. package/dist/dts/internal/stm/tRandom.d.ts +2 -0
  1567. package/dist/dts/internal/stm/tRandom.d.ts.map +1 -0
  1568. package/dist/dts/internal/stm/tReentrantLock.d.ts +2 -0
  1569. package/dist/dts/internal/stm/tReentrantLock.d.ts.map +1 -0
  1570. package/dist/dts/internal/stm/tRef.d.ts +4 -0
  1571. package/dist/dts/internal/stm/tRef.d.ts.map +1 -0
  1572. package/dist/dts/internal/stm/tSemaphore.d.ts +2 -0
  1573. package/dist/dts/internal/stm/tSemaphore.d.ts.map +1 -0
  1574. package/dist/dts/internal/stm/tSet.d.ts +2 -0
  1575. package/dist/dts/internal/stm/tSet.d.ts.map +1 -0
  1576. package/dist/dts/internal/stm/tSubscriptionRef.d.ts +2 -0
  1577. package/dist/dts/internal/stm/tSubscriptionRef.d.ts.map +1 -0
  1578. package/dist/dts/internal/stm/tryCommit.d.ts +2 -0
  1579. package/dist/dts/internal/stm/tryCommit.d.ts.map +1 -0
  1580. package/dist/dts/internal/stm/txnId.d.ts +2 -0
  1581. package/dist/dts/internal/stm/txnId.d.ts.map +1 -0
  1582. package/dist/dts/internal/stm/versioned.d.ts +2 -0
  1583. package/dist/dts/internal/stm/versioned.d.ts.map +1 -0
  1584. package/dist/dts/internal/stream/debounceState.d.ts +4 -0
  1585. package/dist/dts/internal/stream/debounceState.d.ts.map +1 -0
  1586. package/dist/dts/internal/stream/emit.d.ts +2 -0
  1587. package/dist/dts/internal/stream/emit.d.ts.map +1 -0
  1588. package/dist/dts/internal/stream/haltStrategy.d.ts +2 -0
  1589. package/dist/dts/internal/stream/haltStrategy.d.ts.map +1 -0
  1590. package/dist/dts/internal/stream/handoff.d.ts +2 -0
  1591. package/dist/dts/internal/stream/handoff.d.ts.map +1 -0
  1592. package/dist/dts/internal/stream/handoffSignal.d.ts +6 -0
  1593. package/dist/dts/internal/stream/handoffSignal.d.ts.map +1 -0
  1594. package/dist/dts/internal/stream/pull.d.ts +2 -0
  1595. package/dist/dts/internal/stream/pull.d.ts.map +1 -0
  1596. package/dist/dts/internal/stream/sinkEndReason.d.ts +2 -0
  1597. package/dist/dts/internal/stream/sinkEndReason.d.ts.map +1 -0
  1598. package/dist/dts/internal/stream/zipAllState.d.ts +2 -0
  1599. package/dist/dts/internal/stream/zipAllState.d.ts.map +1 -0
  1600. package/dist/dts/internal/stream/zipChunksState.d.ts +2 -0
  1601. package/dist/dts/internal/stream/zipChunksState.d.ts.map +1 -0
  1602. package/dist/dts/internal/stream.d.ts +29 -0
  1603. package/dist/dts/internal/stream.d.ts.map +1 -0
  1604. package/dist/dts/internal/string-utils.d.ts +7 -0
  1605. package/dist/dts/internal/string-utils.d.ts.map +1 -0
  1606. package/dist/dts/internal/subscriptionRef.d.ts +2 -0
  1607. package/dist/dts/internal/subscriptionRef.d.ts.map +1 -0
  1608. package/dist/dts/internal/supervisor/patch.d.ts +2 -0
  1609. package/dist/dts/internal/supervisor/patch.d.ts.map +1 -0
  1610. package/dist/dts/internal/supervisor.d.ts +2 -0
  1611. package/dist/dts/internal/supervisor.d.ts.map +1 -0
  1612. package/dist/dts/internal/synchronizedRef.d.ts +2 -0
  1613. package/dist/dts/internal/synchronizedRef.d.ts.map +1 -0
  1614. package/dist/dts/internal/take.d.ts +2 -0
  1615. package/dist/dts/internal/take.d.ts.map +1 -0
  1616. package/dist/dts/internal/testing/sleep.d.ts +2 -0
  1617. package/dist/dts/internal/testing/sleep.d.ts.map +1 -0
  1618. package/dist/dts/internal/testing/suspendedWarningData.d.ts +2 -0
  1619. package/dist/dts/internal/testing/suspendedWarningData.d.ts.map +1 -0
  1620. package/dist/dts/internal/testing/warningData.d.ts +2 -0
  1621. package/dist/dts/internal/testing/warningData.d.ts.map +1 -0
  1622. package/dist/dts/internal/tracer.d.ts +2 -0
  1623. package/dist/dts/internal/tracer.d.ts.map +1 -0
  1624. package/dist/dts/internal/trie.d.ts +2 -0
  1625. package/dist/dts/internal/trie.d.ts.map +1 -0
  1626. package/dist/dts/internal/version.d.ts +3 -0
  1627. package/dist/dts/internal/version.d.ts.map +1 -0
  1628. package/dist/esm/Arbitrary.js +798 -0
  1629. package/dist/esm/Arbitrary.js.map +1 -0
  1630. package/dist/esm/Array.js +2703 -0
  1631. package/dist/esm/Array.js.map +1 -0
  1632. package/dist/esm/BigDecimal.js +1087 -0
  1633. package/dist/esm/BigDecimal.js.map +1 -0
  1634. package/dist/esm/BigInt.js +548 -0
  1635. package/dist/esm/BigInt.js.map +1 -0
  1636. package/dist/esm/Boolean.js +240 -0
  1637. package/dist/esm/Boolean.js.map +1 -0
  1638. package/dist/esm/Brand.js +161 -0
  1639. package/dist/esm/Brand.js.map +1 -0
  1640. package/dist/esm/Cache.js +43 -0
  1641. package/dist/esm/Cache.js.map +1 -0
  1642. package/dist/esm/Cause.js +1004 -0
  1643. package/dist/esm/Cause.js.map +1 -0
  1644. package/dist/esm/Channel.js +887 -0
  1645. package/dist/esm/Channel.js.map +1 -0
  1646. package/dist/esm/ChildExecutorDecision.js +64 -0
  1647. package/dist/esm/ChildExecutorDecision.js.map +1 -0
  1648. package/dist/esm/Chunk.js +1083 -0
  1649. package/dist/esm/Chunk.js.map +1 -0
  1650. package/dist/esm/Clock.js +38 -0
  1651. package/dist/esm/Clock.js.map +1 -0
  1652. package/dist/esm/Config.js +321 -0
  1653. package/dist/esm/Config.js.map +1 -0
  1654. package/dist/esm/ConfigError.js +107 -0
  1655. package/dist/esm/ConfigError.js.map +1 -0
  1656. package/dist/esm/ConfigProvider.js +166 -0
  1657. package/dist/esm/ConfigProvider.js.map +1 -0
  1658. package/dist/esm/ConfigProviderPathPatch.js +30 -0
  1659. package/dist/esm/ConfigProviderPathPatch.js.map +1 -0
  1660. package/dist/esm/Console.js +118 -0
  1661. package/dist/esm/Console.js.map +1 -0
  1662. package/dist/esm/Context.js +360 -0
  1663. package/dist/esm/Context.js.map +1 -0
  1664. package/dist/esm/Cron.js +566 -0
  1665. package/dist/esm/Cron.js.map +1 -0
  1666. package/dist/esm/Data.js +305 -0
  1667. package/dist/esm/Data.js.map +1 -0
  1668. package/dist/esm/DateTime.js +1071 -0
  1669. package/dist/esm/DateTime.js.map +1 -0
  1670. package/dist/esm/DefaultServices.js +12 -0
  1671. package/dist/esm/DefaultServices.js.map +1 -0
  1672. package/dist/esm/Deferred.js +169 -0
  1673. package/dist/esm/Deferred.js.map +1 -0
  1674. package/dist/esm/Differ.js +132 -0
  1675. package/dist/esm/Differ.js.map +1 -0
  1676. package/dist/esm/Duration.js +702 -0
  1677. package/dist/esm/Duration.js.map +1 -0
  1678. package/dist/esm/Effect.js +10883 -0
  1679. package/dist/esm/Effect.js.map +1 -0
  1680. package/dist/esm/Effectable.js +49 -0
  1681. package/dist/esm/Effectable.js.map +1 -0
  1682. package/dist/esm/Either.js +688 -0
  1683. package/dist/esm/Either.js.map +1 -0
  1684. package/dist/esm/Encoding.js +136 -0
  1685. package/dist/esm/Encoding.js.map +1 -0
  1686. package/dist/esm/Equal.js +71 -0
  1687. package/dist/esm/Equal.js.map +1 -0
  1688. package/dist/esm/Equivalence.js +166 -0
  1689. package/dist/esm/Equivalence.js.map +1 -0
  1690. package/dist/esm/ExecutionPlan.js +99 -0
  1691. package/dist/esm/ExecutionPlan.js.map +1 -0
  1692. package/dist/esm/ExecutionStrategy.js +55 -0
  1693. package/dist/esm/ExecutionStrategy.js.map +1 -0
  1694. package/dist/esm/Exit.js +257 -0
  1695. package/dist/esm/Exit.js.map +1 -0
  1696. package/dist/esm/FastCheck.js +9 -0
  1697. package/dist/esm/FastCheck.js.map +1 -0
  1698. package/dist/esm/Fiber.js +350 -0
  1699. package/dist/esm/Fiber.js.map +1 -0
  1700. package/dist/esm/FiberHandle.js +316 -0
  1701. package/dist/esm/FiberHandle.js.map +1 -0
  1702. package/dist/esm/FiberId.js +115 -0
  1703. package/dist/esm/FiberId.js.map +1 -0
  1704. package/dist/esm/FiberMap.js +356 -0
  1705. package/dist/esm/FiberMap.js.map +1 -0
  1706. package/dist/esm/FiberRef.js +242 -0
  1707. package/dist/esm/FiberRef.js.map +1 -0
  1708. package/dist/esm/FiberRefs.js +92 -0
  1709. package/dist/esm/FiberRefs.js.map +1 -0
  1710. package/dist/esm/FiberRefsPatch.js +32 -0
  1711. package/dist/esm/FiberRefsPatch.js.map +1 -0
  1712. package/dist/esm/FiberSet.js +289 -0
  1713. package/dist/esm/FiberSet.js.map +1 -0
  1714. package/dist/esm/FiberStatus.js +52 -0
  1715. package/dist/esm/FiberStatus.js.map +1 -0
  1716. package/dist/esm/Function.js +467 -0
  1717. package/dist/esm/Function.js.map +1 -0
  1718. package/dist/esm/GlobalValue.js +52 -0
  1719. package/dist/esm/GlobalValue.js.map +1 -0
  1720. package/dist/esm/Graph.js +3019 -0
  1721. package/dist/esm/Graph.js.map +1 -0
  1722. package/dist/esm/GroupBy.js +39 -0
  1723. package/dist/esm/GroupBy.js.map +1 -0
  1724. package/dist/esm/HKT.js +2 -0
  1725. package/dist/esm/HKT.js.map +1 -0
  1726. package/dist/esm/Hash.js +166 -0
  1727. package/dist/esm/Hash.js.map +1 -0
  1728. package/dist/esm/HashMap.js +312 -0
  1729. package/dist/esm/HashMap.js.map +1 -0
  1730. package/dist/esm/HashRing.js +245 -0
  1731. package/dist/esm/HashRing.js.map +1 -0
  1732. package/dist/esm/HashSet.js +1253 -0
  1733. package/dist/esm/HashSet.js.map +1 -0
  1734. package/dist/esm/Inspectable.js +194 -0
  1735. package/dist/esm/Inspectable.js.map +1 -0
  1736. package/dist/esm/Iterable.js +987 -0
  1737. package/dist/esm/Iterable.js.map +1 -0
  1738. package/dist/esm/JSONSchema.js +715 -0
  1739. package/dist/esm/JSONSchema.js.map +1 -0
  1740. package/dist/esm/KeyedPool.js +76 -0
  1741. package/dist/esm/KeyedPool.js.map +1 -0
  1742. package/dist/esm/Layer.js +642 -0
  1743. package/dist/esm/Layer.js.map +1 -0
  1744. package/dist/esm/LayerMap.js +202 -0
  1745. package/dist/esm/LayerMap.js.map +1 -0
  1746. package/dist/esm/List.js +756 -0
  1747. package/dist/esm/List.js.map +1 -0
  1748. package/dist/esm/LogLevel.js +135 -0
  1749. package/dist/esm/LogLevel.js.map +1 -0
  1750. package/dist/esm/LogSpan.js +15 -0
  1751. package/dist/esm/LogSpan.js.map +1 -0
  1752. package/dist/esm/Logger.js +490 -0
  1753. package/dist/esm/Logger.js.map +1 -0
  1754. package/dist/esm/Mailbox.js +96 -0
  1755. package/dist/esm/Mailbox.js.map +1 -0
  1756. package/dist/esm/ManagedRuntime.js +42 -0
  1757. package/dist/esm/ManagedRuntime.js.map +1 -0
  1758. package/dist/esm/Match.js +828 -0
  1759. package/dist/esm/Match.js.map +1 -0
  1760. package/dist/esm/MergeDecision.js +35 -0
  1761. package/dist/esm/MergeDecision.js.map +1 -0
  1762. package/dist/esm/MergeState.js +58 -0
  1763. package/dist/esm/MergeState.js.map +1 -0
  1764. package/dist/esm/MergeStrategy.js +51 -0
  1765. package/dist/esm/MergeStrategy.js.map +1 -0
  1766. package/dist/esm/Metric.js +408 -0
  1767. package/dist/esm/Metric.js.map +1 -0
  1768. package/dist/esm/MetricBoundaries.js +33 -0
  1769. package/dist/esm/MetricBoundaries.js.map +1 -0
  1770. package/dist/esm/MetricHook.js +47 -0
  1771. package/dist/esm/MetricHook.js.map +1 -0
  1772. package/dist/esm/MetricKey.js +63 -0
  1773. package/dist/esm/MetricKey.js.map +1 -0
  1774. package/dist/esm/MetricKeyType.js +87 -0
  1775. package/dist/esm/MetricKeyType.js.map +1 -0
  1776. package/dist/esm/MetricLabel.js +17 -0
  1777. package/dist/esm/MetricLabel.js.map +1 -0
  1778. package/dist/esm/MetricPair.js +20 -0
  1779. package/dist/esm/MetricPair.js.map +1 -0
  1780. package/dist/esm/MetricPolling.js +59 -0
  1781. package/dist/esm/MetricPolling.js.map +1 -0
  1782. package/dist/esm/MetricRegistry.js +15 -0
  1783. package/dist/esm/MetricRegistry.js.map +1 -0
  1784. package/dist/esm/MetricState.js +87 -0
  1785. package/dist/esm/MetricState.js.map +1 -0
  1786. package/dist/esm/Micro.js +2528 -0
  1787. package/dist/esm/Micro.js.map +1 -0
  1788. package/dist/esm/ModuleVersion.js +17 -0
  1789. package/dist/esm/ModuleVersion.js.map +1 -0
  1790. package/dist/esm/MutableHashMap.js +299 -0
  1791. package/dist/esm/MutableHashMap.js.map +1 -0
  1792. package/dist/esm/MutableHashSet.js +511 -0
  1793. package/dist/esm/MutableHashSet.js.map +1 -0
  1794. package/dist/esm/MutableList.js +240 -0
  1795. package/dist/esm/MutableList.js.map +1 -0
  1796. package/dist/esm/MutableQueue.js +159 -0
  1797. package/dist/esm/MutableQueue.js.map +1 -0
  1798. package/dist/esm/MutableRef.js +127 -0
  1799. package/dist/esm/MutableRef.js.map +1 -0
  1800. package/dist/esm/NonEmptyIterable.js +16 -0
  1801. package/dist/esm/NonEmptyIterable.js.map +1 -0
  1802. package/dist/esm/Number.js +887 -0
  1803. package/dist/esm/Number.js.map +1 -0
  1804. package/dist/esm/Option.js +1785 -0
  1805. package/dist/esm/Option.js.map +1 -0
  1806. package/dist/esm/Order.js +252 -0
  1807. package/dist/esm/Order.js.map +1 -0
  1808. package/dist/esm/Ordering.js +72 -0
  1809. package/dist/esm/Ordering.js.map +1 -0
  1810. package/dist/esm/ParseResult.js +1556 -0
  1811. package/dist/esm/ParseResult.js.map +1 -0
  1812. package/dist/esm/PartitionedSemaphore.js +137 -0
  1813. package/dist/esm/PartitionedSemaphore.js.map +1 -0
  1814. package/dist/esm/Pipeable.js +62 -0
  1815. package/dist/esm/Pipeable.js.map +1 -0
  1816. package/dist/esm/Pool.js +100 -0
  1817. package/dist/esm/Pool.js.map +1 -0
  1818. package/dist/esm/Predicate.js +1117 -0
  1819. package/dist/esm/Predicate.js.map +1 -0
  1820. package/dist/esm/Pretty.js +174 -0
  1821. package/dist/esm/Pretty.js.map +1 -0
  1822. package/dist/esm/PrimaryKey.js +14 -0
  1823. package/dist/esm/PrimaryKey.js.map +1 -0
  1824. package/dist/esm/PubSub.js +120 -0
  1825. package/dist/esm/PubSub.js.map +1 -0
  1826. package/dist/esm/Queue.js +248 -0
  1827. package/dist/esm/Queue.js.map +1 -0
  1828. package/dist/esm/Random.js +138 -0
  1829. package/dist/esm/Random.js.map +1 -0
  1830. package/dist/esm/RateLimiter.js +77 -0
  1831. package/dist/esm/RateLimiter.js.map +1 -0
  1832. package/dist/esm/RcMap.js +69 -0
  1833. package/dist/esm/RcMap.js.map +1 -0
  1834. package/dist/esm/RcRef.js +51 -0
  1835. package/dist/esm/RcRef.js.map +1 -0
  1836. package/dist/esm/Readable.js +45 -0
  1837. package/dist/esm/Readable.js.map +1 -0
  1838. package/dist/esm/Record.js +846 -0
  1839. package/dist/esm/Record.js.map +1 -0
  1840. package/dist/esm/RedBlackTree.js +259 -0
  1841. package/dist/esm/RedBlackTree.js.map +1 -0
  1842. package/dist/esm/Redacted.js +93 -0
  1843. package/dist/esm/Redacted.js.map +1 -0
  1844. package/dist/esm/Ref.js +77 -0
  1845. package/dist/esm/Ref.js.map +1 -0
  1846. package/dist/esm/RegExp.js +37 -0
  1847. package/dist/esm/RegExp.js.map +1 -0
  1848. package/dist/esm/Reloadable.js +59 -0
  1849. package/dist/esm/Reloadable.js.map +1 -0
  1850. package/dist/esm/Request.js +140 -0
  1851. package/dist/esm/Request.js.map +1 -0
  1852. package/dist/esm/RequestBlock.js +35 -0
  1853. package/dist/esm/RequestBlock.js.map +1 -0
  1854. package/dist/esm/RequestResolver.js +175 -0
  1855. package/dist/esm/RequestResolver.js.map +1 -0
  1856. package/dist/esm/Resource.js +44 -0
  1857. package/dist/esm/Resource.js.map +1 -0
  1858. package/dist/esm/Runtime.js +181 -0
  1859. package/dist/esm/Runtime.js.map +1 -0
  1860. package/dist/esm/RuntimeFlags.js +251 -0
  1861. package/dist/esm/RuntimeFlags.js.map +1 -0
  1862. package/dist/esm/RuntimeFlagsPatch.js +134 -0
  1863. package/dist/esm/RuntimeFlagsPatch.js.map +1 -0
  1864. package/dist/esm/STM.js +1002 -0
  1865. package/dist/esm/STM.js.map +1 -0
  1866. package/dist/esm/Schedule.js +1595 -0
  1867. package/dist/esm/Schedule.js.map +1 -0
  1868. package/dist/esm/ScheduleDecision.js +32 -0
  1869. package/dist/esm/ScheduleDecision.js.map +1 -0
  1870. package/dist/esm/ScheduleInterval.js +100 -0
  1871. package/dist/esm/ScheduleInterval.js.map +1 -0
  1872. package/dist/esm/ScheduleIntervals.js +78 -0
  1873. package/dist/esm/ScheduleIntervals.js.map +1 -0
  1874. package/dist/esm/Scheduler.js +289 -0
  1875. package/dist/esm/Scheduler.js.map +1 -0
  1876. package/dist/esm/Schema.js +6035 -0
  1877. package/dist/esm/Schema.js.map +1 -0
  1878. package/dist/esm/SchemaAST.js +2485 -0
  1879. package/dist/esm/SchemaAST.js.map +1 -0
  1880. package/dist/esm/Scope.js +94 -0
  1881. package/dist/esm/Scope.js.map +1 -0
  1882. package/dist/esm/ScopedCache.js +24 -0
  1883. package/dist/esm/ScopedCache.js.map +1 -0
  1884. package/dist/esm/ScopedRef.js +42 -0
  1885. package/dist/esm/ScopedRef.js.map +1 -0
  1886. package/dist/esm/Secret.js +44 -0
  1887. package/dist/esm/Secret.js.map +1 -0
  1888. package/dist/esm/SingleProducerAsyncInput.js +7 -0
  1889. package/dist/esm/SingleProducerAsyncInput.js.map +1 -0
  1890. package/dist/esm/Sink.js +864 -0
  1891. package/dist/esm/Sink.js.map +1 -0
  1892. package/dist/esm/SortedMap.js +169 -0
  1893. package/dist/esm/SortedMap.js.map +1 -0
  1894. package/dist/esm/SortedSet.js +237 -0
  1895. package/dist/esm/SortedSet.js.map +1 -0
  1896. package/dist/esm/Stream.js +4192 -0
  1897. package/dist/esm/Stream.js.map +1 -0
  1898. package/dist/esm/StreamEmit.js +2 -0
  1899. package/dist/esm/StreamEmit.js.map +1 -0
  1900. package/dist/esm/StreamHaltStrategy.js +57 -0
  1901. package/dist/esm/StreamHaltStrategy.js.map +1 -0
  1902. package/dist/esm/Streamable.js +36 -0
  1903. package/dist/esm/Streamable.js.map +1 -0
  1904. package/dist/esm/String.js +635 -0
  1905. package/dist/esm/String.js.map +1 -0
  1906. package/dist/esm/Struct.js +191 -0
  1907. package/dist/esm/Struct.js.map +1 -0
  1908. package/dist/esm/Subscribable.js +56 -0
  1909. package/dist/esm/Subscribable.js.map +1 -0
  1910. package/dist/esm/SubscriptionRef.js +116 -0
  1911. package/dist/esm/SubscriptionRef.js.map +1 -0
  1912. package/dist/esm/Supervisor.js +107 -0
  1913. package/dist/esm/Supervisor.js.map +1 -0
  1914. package/dist/esm/Symbol.js +27 -0
  1915. package/dist/esm/Symbol.js.map +1 -0
  1916. package/dist/esm/SynchronizedRef.js +119 -0
  1917. package/dist/esm/SynchronizedRef.js.map +1 -0
  1918. package/dist/esm/TArray.js +306 -0
  1919. package/dist/esm/TArray.js.map +1 -0
  1920. package/dist/esm/TDeferred.js +39 -0
  1921. package/dist/esm/TDeferred.js.map +1 -0
  1922. package/dist/esm/TMap.js +279 -0
  1923. package/dist/esm/TMap.js.map +1 -0
  1924. package/dist/esm/TPriorityQueue.js +136 -0
  1925. package/dist/esm/TPriorityQueue.js.map +1 -0
  1926. package/dist/esm/TPubSub.js +131 -0
  1927. package/dist/esm/TPubSub.js.map +1 -0
  1928. package/dist/esm/TQueue.js +229 -0
  1929. package/dist/esm/TQueue.js.map +1 -0
  1930. package/dist/esm/TRandom.js +65 -0
  1931. package/dist/esm/TRandom.js.map +1 -0
  1932. package/dist/esm/TReentrantLock.js +142 -0
  1933. package/dist/esm/TReentrantLock.js.map +1 -0
  1934. package/dist/esm/TRef.js +75 -0
  1935. package/dist/esm/TRef.js.map +1 -0
  1936. package/dist/esm/TSemaphore.js +65 -0
  1937. package/dist/esm/TSemaphore.js.map +1 -0
  1938. package/dist/esm/TSet.js +201 -0
  1939. package/dist/esm/TSet.js.map +1 -0
  1940. package/dist/esm/TSubscriptionRef.js +87 -0
  1941. package/dist/esm/TSubscriptionRef.js.map +1 -0
  1942. package/dist/esm/Take.js +148 -0
  1943. package/dist/esm/Take.js.map +1 -0
  1944. package/dist/esm/TestAnnotation.js +94 -0
  1945. package/dist/esm/TestAnnotation.js.map +1 -0
  1946. package/dist/esm/TestAnnotationMap.js +80 -0
  1947. package/dist/esm/TestAnnotationMap.js.map +1 -0
  1948. package/dist/esm/TestAnnotations.js +61 -0
  1949. package/dist/esm/TestAnnotations.js.map +1 -0
  1950. package/dist/esm/TestClock.js +354 -0
  1951. package/dist/esm/TestClock.js.map +1 -0
  1952. package/dist/esm/TestConfig.js +13 -0
  1953. package/dist/esm/TestConfig.js.map +1 -0
  1954. package/dist/esm/TestContext.js +21 -0
  1955. package/dist/esm/TestContext.js.map +1 -0
  1956. package/dist/esm/TestLive.js +30 -0
  1957. package/dist/esm/TestLive.js.map +1 -0
  1958. package/dist/esm/TestServices.js +230 -0
  1959. package/dist/esm/TestServices.js.map +1 -0
  1960. package/dist/esm/TestSized.js +36 -0
  1961. package/dist/esm/TestSized.js.map +1 -0
  1962. package/dist/esm/Tracer.js +37 -0
  1963. package/dist/esm/Tracer.js.map +1 -0
  1964. package/dist/esm/Trie.js +716 -0
  1965. package/dist/esm/Trie.js.map +1 -0
  1966. package/dist/esm/Tuple.js +235 -0
  1967. package/dist/esm/Tuple.js.map +1 -0
  1968. package/dist/esm/Types.js +7 -0
  1969. package/dist/esm/Types.js.map +1 -0
  1970. package/dist/esm/Unify.js +9 -0
  1971. package/dist/esm/Unify.js.map +1 -0
  1972. package/dist/esm/UpstreamPullRequest.js +51 -0
  1973. package/dist/esm/UpstreamPullRequest.js.map +1 -0
  1974. package/dist/esm/UpstreamPullStrategy.js +51 -0
  1975. package/dist/esm/UpstreamPullStrategy.js.map +1 -0
  1976. package/dist/esm/Utils.js +357 -0
  1977. package/dist/esm/Utils.js.map +1 -0
  1978. package/dist/esm/index.js +1385 -0
  1979. package/dist/esm/index.js.map +1 -0
  1980. package/dist/esm/internal/array.js +6 -0
  1981. package/dist/esm/internal/array.js.map +1 -0
  1982. package/dist/esm/internal/blockedRequests.js +341 -0
  1983. package/dist/esm/internal/blockedRequests.js.map +1 -0
  1984. package/dist/esm/internal/cache.js +480 -0
  1985. package/dist/esm/internal/cache.js.map +1 -0
  1986. package/dist/esm/internal/cause.js +824 -0
  1987. package/dist/esm/internal/cause.js.map +1 -0
  1988. package/dist/esm/internal/channel/channelExecutor.js +688 -0
  1989. package/dist/esm/internal/channel/channelExecutor.js.map +1 -0
  1990. package/dist/esm/internal/channel/channelState.js +59 -0
  1991. package/dist/esm/internal/channel/channelState.js.map +1 -0
  1992. package/dist/esm/internal/channel/childExecutorDecision.js +60 -0
  1993. package/dist/esm/internal/channel/childExecutorDecision.js.map +1 -0
  1994. package/dist/esm/internal/channel/continuation.js +48 -0
  1995. package/dist/esm/internal/channel/continuation.js.map +1 -0
  1996. package/dist/esm/internal/channel/mergeDecision.js +49 -0
  1997. package/dist/esm/internal/channel/mergeDecision.js.map +1 -0
  1998. package/dist/esm/internal/channel/mergeState.js +69 -0
  1999. package/dist/esm/internal/channel/mergeState.js.map +1 -0
  2000. package/dist/esm/internal/channel/mergeStrategy.js +46 -0
  2001. package/dist/esm/internal/channel/mergeStrategy.js.map +1 -0
  2002. package/dist/esm/internal/channel/singleProducerAsyncInput.js +163 -0
  2003. package/dist/esm/internal/channel/singleProducerAsyncInput.js.map +1 -0
  2004. package/dist/esm/internal/channel/subexecutor.js +152 -0
  2005. package/dist/esm/internal/channel/subexecutor.js.map +1 -0
  2006. package/dist/esm/internal/channel/upstreamPullRequest.js +52 -0
  2007. package/dist/esm/internal/channel/upstreamPullRequest.js.map +1 -0
  2008. package/dist/esm/internal/channel/upstreamPullStrategy.js +52 -0
  2009. package/dist/esm/internal/channel/upstreamPullStrategy.js.map +1 -0
  2010. package/dist/esm/internal/channel.js +683 -0
  2011. package/dist/esm/internal/channel.js.map +1 -0
  2012. package/dist/esm/internal/clock.js +77 -0
  2013. package/dist/esm/internal/clock.js.map +1 -0
  2014. package/dist/esm/internal/completedRequestMap.js +5 -0
  2015. package/dist/esm/internal/completedRequestMap.js.map +1 -0
  2016. package/dist/esm/internal/concurrency.js +28 -0
  2017. package/dist/esm/internal/concurrency.js.map +1 -0
  2018. package/dist/esm/internal/config.js +363 -0
  2019. package/dist/esm/internal/config.js.map +1 -0
  2020. package/dist/esm/internal/configError.js +263 -0
  2021. package/dist/esm/internal/configError.js.map +1 -0
  2022. package/dist/esm/internal/configProvider/pathPatch.js +76 -0
  2023. package/dist/esm/internal/configProvider/pathPatch.js.map +1 -0
  2024. package/dist/esm/internal/configProvider.js +425 -0
  2025. package/dist/esm/internal/configProvider.js.map +1 -0
  2026. package/dist/esm/internal/console.js +54 -0
  2027. package/dist/esm/internal/console.js.map +1 -0
  2028. package/dist/esm/internal/context.js +253 -0
  2029. package/dist/esm/internal/context.js.map +1 -0
  2030. package/dist/esm/internal/core-effect.js +811 -0
  2031. package/dist/esm/internal/core-effect.js.map +1 -0
  2032. package/dist/esm/internal/core-stream.js +236 -0
  2033. package/dist/esm/internal/core-stream.js.map +1 -0
  2034. package/dist/esm/internal/core.js +1610 -0
  2035. package/dist/esm/internal/core.js.map +1 -0
  2036. package/dist/esm/internal/data.js +29 -0
  2037. package/dist/esm/internal/data.js.map +1 -0
  2038. package/dist/esm/internal/dataSource.js +93 -0
  2039. package/dist/esm/internal/dataSource.js.map +1 -0
  2040. package/dist/esm/internal/dateTime.js +796 -0
  2041. package/dist/esm/internal/dateTime.js.map +1 -0
  2042. package/dist/esm/internal/defaultServices/console.js +92 -0
  2043. package/dist/esm/internal/defaultServices/console.js.map +1 -0
  2044. package/dist/esm/internal/defaultServices.js +73 -0
  2045. package/dist/esm/internal/defaultServices.js.map +1 -0
  2046. package/dist/esm/internal/deferred.js +27 -0
  2047. package/dist/esm/internal/deferred.js.map +1 -0
  2048. package/dist/esm/internal/differ/chunkPatch.js +130 -0
  2049. package/dist/esm/internal/differ/chunkPatch.js.map +1 -0
  2050. package/dist/esm/internal/differ/contextPatch.js +143 -0
  2051. package/dist/esm/internal/differ/contextPatch.js.map +1 -0
  2052. package/dist/esm/internal/differ/hashMapPatch.js +130 -0
  2053. package/dist/esm/internal/differ/hashMapPatch.js.map +1 -0
  2054. package/dist/esm/internal/differ/hashSetPatch.js +101 -0
  2055. package/dist/esm/internal/differ/hashSetPatch.js.map +1 -0
  2056. package/dist/esm/internal/differ/orPatch.js +170 -0
  2057. package/dist/esm/internal/differ/orPatch.js.map +1 -0
  2058. package/dist/esm/internal/differ/readonlyArrayPatch.js +129 -0
  2059. package/dist/esm/internal/differ/readonlyArrayPatch.js.map +1 -0
  2060. package/dist/esm/internal/differ.js +134 -0
  2061. package/dist/esm/internal/differ.js.map +1 -0
  2062. package/dist/esm/internal/doNotation.js +16 -0
  2063. package/dist/esm/internal/doNotation.js.map +1 -0
  2064. package/dist/esm/internal/effect/circular.js +402 -0
  2065. package/dist/esm/internal/effect/circular.js.map +1 -0
  2066. package/dist/esm/internal/effectable.js +113 -0
  2067. package/dist/esm/internal/effectable.js.map +1 -0
  2068. package/dist/esm/internal/either.js +85 -0
  2069. package/dist/esm/internal/either.js.map +1 -0
  2070. package/dist/esm/internal/encoding/base64.js +71 -0
  2071. package/dist/esm/internal/encoding/base64.js.map +1 -0
  2072. package/dist/esm/internal/encoding/base64Url.js +21 -0
  2073. package/dist/esm/internal/encoding/base64Url.js.map +1 -0
  2074. package/dist/esm/internal/encoding/common.js +38 -0
  2075. package/dist/esm/internal/encoding/common.js.map +1 -0
  2076. package/dist/esm/internal/encoding/hex.js +48 -0
  2077. package/dist/esm/internal/encoding/hex.js.map +1 -0
  2078. package/dist/esm/internal/errors.js +6 -0
  2079. package/dist/esm/internal/errors.js.map +1 -0
  2080. package/dist/esm/internal/executionPlan.js +59 -0
  2081. package/dist/esm/internal/executionPlan.js.map +1 -0
  2082. package/dist/esm/internal/executionStrategy.js +44 -0
  2083. package/dist/esm/internal/executionStrategy.js.map +1 -0
  2084. package/dist/esm/internal/fiber.js +253 -0
  2085. package/dist/esm/internal/fiber.js.map +1 -0
  2086. package/dist/esm/internal/fiberId.js +219 -0
  2087. package/dist/esm/internal/fiberId.js.map +1 -0
  2088. package/dist/esm/internal/fiberMessage.js +28 -0
  2089. package/dist/esm/internal/fiberMessage.js.map +1 -0
  2090. package/dist/esm/internal/fiberRefs/patch.js +107 -0
  2091. package/dist/esm/internal/fiberRefs/patch.js.map +1 -0
  2092. package/dist/esm/internal/fiberRefs.js +189 -0
  2093. package/dist/esm/internal/fiberRefs.js.map +1 -0
  2094. package/dist/esm/internal/fiberRuntime.js +2148 -0
  2095. package/dist/esm/internal/fiberRuntime.js.map +1 -0
  2096. package/dist/esm/internal/fiberScope.js +44 -0
  2097. package/dist/esm/internal/fiberScope.js.map +1 -0
  2098. package/dist/esm/internal/fiberStatus.js +72 -0
  2099. package/dist/esm/internal/fiberStatus.js.map +1 -0
  2100. package/dist/esm/internal/groupBy.js +213 -0
  2101. package/dist/esm/internal/groupBy.js.map +1 -0
  2102. package/dist/esm/internal/hashMap/array.js +48 -0
  2103. package/dist/esm/internal/hashMap/array.js.map +1 -0
  2104. package/dist/esm/internal/hashMap/bitwise.js +29 -0
  2105. package/dist/esm/internal/hashMap/bitwise.js.map +1 -0
  2106. package/dist/esm/internal/hashMap/config.js +11 -0
  2107. package/dist/esm/internal/hashMap/config.js.map +1 -0
  2108. package/dist/esm/internal/hashMap/keySet.js +6 -0
  2109. package/dist/esm/internal/hashMap/keySet.js.map +1 -0
  2110. package/dist/esm/internal/hashMap/node.js +253 -0
  2111. package/dist/esm/internal/hashMap/node.js.map +1 -0
  2112. package/dist/esm/internal/hashMap.js +360 -0
  2113. package/dist/esm/internal/hashMap.js.map +1 -0
  2114. package/dist/esm/internal/hashSet.js +182 -0
  2115. package/dist/esm/internal/hashSet.js.map +1 -0
  2116. package/dist/esm/internal/keyedPool.js +159 -0
  2117. package/dist/esm/internal/keyedPool.js.map +1 -0
  2118. package/dist/esm/internal/layer/circular.js +63 -0
  2119. package/dist/esm/internal/layer/circular.js.map +1 -0
  2120. package/dist/esm/internal/layer.js +552 -0
  2121. package/dist/esm/internal/layer.js.map +1 -0
  2122. package/dist/esm/internal/logSpan.js +17 -0
  2123. package/dist/esm/internal/logSpan.js.map +1 -0
  2124. package/dist/esm/internal/logger-circular.js +19 -0
  2125. package/dist/esm/internal/logger-circular.js.map +1 -0
  2126. package/dist/esm/internal/logger.js +367 -0
  2127. package/dist/esm/internal/logger.js.map +1 -0
  2128. package/dist/esm/internal/mailbox.js +450 -0
  2129. package/dist/esm/internal/mailbox.js.map +1 -0
  2130. package/dist/esm/internal/managedRuntime/circular.js +4 -0
  2131. package/dist/esm/internal/managedRuntime/circular.js.map +1 -0
  2132. package/dist/esm/internal/managedRuntime.js +86 -0
  2133. package/dist/esm/internal/managedRuntime.js.map +1 -0
  2134. package/dist/esm/internal/matcher.js +291 -0
  2135. package/dist/esm/internal/matcher.js.map +1 -0
  2136. package/dist/esm/internal/metric/boundaries.js +42 -0
  2137. package/dist/esm/internal/metric/boundaries.js.map +1 -0
  2138. package/dist/esm/internal/metric/hook.js +375 -0
  2139. package/dist/esm/internal/metric/hook.js.map +1 -0
  2140. package/dist/esm/internal/metric/key.js +60 -0
  2141. package/dist/esm/internal/metric/key.js.map +1 -0
  2142. package/dist/esm/internal/metric/keyType.js +169 -0
  2143. package/dist/esm/internal/metric/keyType.js.map +1 -0
  2144. package/dist/esm/internal/metric/label.js +36 -0
  2145. package/dist/esm/internal/metric/label.js.map +1 -0
  2146. package/dist/esm/internal/metric/pair.js +32 -0
  2147. package/dist/esm/internal/metric/pair.js.map +1 -0
  2148. package/dist/esm/internal/metric/polling.js +69 -0
  2149. package/dist/esm/internal/metric/polling.js.map +1 -0
  2150. package/dist/esm/internal/metric/registry.js +105 -0
  2151. package/dist/esm/internal/metric/registry.js.map +1 -0
  2152. package/dist/esm/internal/metric/state.js +181 -0
  2153. package/dist/esm/internal/metric/state.js.map +1 -0
  2154. package/dist/esm/internal/metric.js +181 -0
  2155. package/dist/esm/internal/metric.js.map +1 -0
  2156. package/dist/esm/internal/opCodes/cause.js +13 -0
  2157. package/dist/esm/internal/opCodes/cause.js.map +1 -0
  2158. package/dist/esm/internal/opCodes/channel.js +29 -0
  2159. package/dist/esm/internal/opCodes/channel.js.map +1 -0
  2160. package/dist/esm/internal/opCodes/channelChildExecutorDecision.js +7 -0
  2161. package/dist/esm/internal/opCodes/channelChildExecutorDecision.js.map +1 -0
  2162. package/dist/esm/internal/opCodes/channelMergeDecision.js +5 -0
  2163. package/dist/esm/internal/opCodes/channelMergeDecision.js.map +1 -0
  2164. package/dist/esm/internal/opCodes/channelMergeState.js +7 -0
  2165. package/dist/esm/internal/opCodes/channelMergeState.js.map +1 -0
  2166. package/dist/esm/internal/opCodes/channelMergeStrategy.js +5 -0
  2167. package/dist/esm/internal/opCodes/channelMergeStrategy.js.map +1 -0
  2168. package/dist/esm/internal/opCodes/channelState.js +9 -0
  2169. package/dist/esm/internal/opCodes/channelState.js.map +1 -0
  2170. package/dist/esm/internal/opCodes/channelUpstreamPullRequest.js +5 -0
  2171. package/dist/esm/internal/opCodes/channelUpstreamPullRequest.js.map +1 -0
  2172. package/dist/esm/internal/opCodes/channelUpstreamPullStrategy.js +5 -0
  2173. package/dist/esm/internal/opCodes/channelUpstreamPullStrategy.js.map +1 -0
  2174. package/dist/esm/internal/opCodes/config.js +23 -0
  2175. package/dist/esm/internal/opCodes/config.js.map +1 -0
  2176. package/dist/esm/internal/opCodes/configError.js +13 -0
  2177. package/dist/esm/internal/opCodes/configError.js.map +1 -0
  2178. package/dist/esm/internal/opCodes/continuation.js +5 -0
  2179. package/dist/esm/internal/opCodes/continuation.js.map +1 -0
  2180. package/dist/esm/internal/opCodes/deferred.js +5 -0
  2181. package/dist/esm/internal/opCodes/deferred.js.map +1 -0
  2182. package/dist/esm/internal/opCodes/effect.js +31 -0
  2183. package/dist/esm/internal/opCodes/effect.js.map +1 -0
  2184. package/dist/esm/internal/opCodes/layer.js +21 -0
  2185. package/dist/esm/internal/opCodes/layer.js.map +1 -0
  2186. package/dist/esm/internal/opCodes/streamHaltStrategy.js +9 -0
  2187. package/dist/esm/internal/opCodes/streamHaltStrategy.js.map +1 -0
  2188. package/dist/esm/internal/option.js +70 -0
  2189. package/dist/esm/internal/option.js.map +1 -0
  2190. package/dist/esm/internal/pool.js +276 -0
  2191. package/dist/esm/internal/pool.js.map +1 -0
  2192. package/dist/esm/internal/pubsub.js +1263 -0
  2193. package/dist/esm/internal/pubsub.js.map +1 -0
  2194. package/dist/esm/internal/query.js +93 -0
  2195. package/dist/esm/internal/query.js.map +1 -0
  2196. package/dist/esm/internal/queue.js +486 -0
  2197. package/dist/esm/internal/queue.js.map +1 -0
  2198. package/dist/esm/internal/random.js +119 -0
  2199. package/dist/esm/internal/random.js.map +1 -0
  2200. package/dist/esm/internal/rateLimiter.js +43 -0
  2201. package/dist/esm/internal/rateLimiter.js.map +1 -0
  2202. package/dist/esm/internal/rcMap.js +173 -0
  2203. package/dist/esm/internal/rcMap.js.map +1 -0
  2204. package/dist/esm/internal/rcRef.js +129 -0
  2205. package/dist/esm/internal/rcRef.js.map +1 -0
  2206. package/dist/esm/internal/redBlackTree/iterator.js +191 -0
  2207. package/dist/esm/internal/redBlackTree/iterator.js.map +1 -0
  2208. package/dist/esm/internal/redBlackTree/node.js +50 -0
  2209. package/dist/esm/internal/redBlackTree/node.js.map +1 -0
  2210. package/dist/esm/internal/redBlackTree.js +1069 -0
  2211. package/dist/esm/internal/redBlackTree.js.map +1 -0
  2212. package/dist/esm/internal/redacted.js +56 -0
  2213. package/dist/esm/internal/redacted.js.map +1 -0
  2214. package/dist/esm/internal/ref.js +110 -0
  2215. package/dist/esm/internal/ref.js.map +1 -0
  2216. package/dist/esm/internal/reloadable.js +42 -0
  2217. package/dist/esm/internal/reloadable.js.map +1 -0
  2218. package/dist/esm/internal/request.js +91 -0
  2219. package/dist/esm/internal/request.js.map +1 -0
  2220. package/dist/esm/internal/resource.js +38 -0
  2221. package/dist/esm/internal/resource.js.map +1 -0
  2222. package/dist/esm/internal/ringBuffer.js +56 -0
  2223. package/dist/esm/internal/ringBuffer.js.map +1 -0
  2224. package/dist/esm/internal/runtime.js +307 -0
  2225. package/dist/esm/internal/runtime.js.map +1 -0
  2226. package/dist/esm/internal/runtimeFlags.js +107 -0
  2227. package/dist/esm/internal/runtimeFlags.js.map +1 -0
  2228. package/dist/esm/internal/runtimeFlagsPatch.js +38 -0
  2229. package/dist/esm/internal/runtimeFlagsPatch.js.map +1 -0
  2230. package/dist/esm/internal/schedule/decision.js +33 -0
  2231. package/dist/esm/internal/schedule/decision.js.map +1 -0
  2232. package/dist/esm/internal/schedule/interval.js +70 -0
  2233. package/dist/esm/internal/schedule/interval.js.map +1 -0
  2234. package/dist/esm/internal/schedule/intervals.js +122 -0
  2235. package/dist/esm/internal/schedule/intervals.js.map +1 -0
  2236. package/dist/esm/internal/schedule.js +832 -0
  2237. package/dist/esm/internal/schedule.js.map +1 -0
  2238. package/dist/esm/internal/schema/errors.js +86 -0
  2239. package/dist/esm/internal/schema/errors.js.map +1 -0
  2240. package/dist/esm/internal/schema/schemaId.js +43 -0
  2241. package/dist/esm/internal/schema/schemaId.js.map +1 -0
  2242. package/dist/esm/internal/schema/util.js +35 -0
  2243. package/dist/esm/internal/schema/util.js.map +1 -0
  2244. package/dist/esm/internal/scopedCache.js +382 -0
  2245. package/dist/esm/internal/scopedCache.js.map +1 -0
  2246. package/dist/esm/internal/scopedRef.js +43 -0
  2247. package/dist/esm/internal/scopedRef.js.map +1 -0
  2248. package/dist/esm/internal/secret.js +77 -0
  2249. package/dist/esm/internal/secret.js.map +1 -0
  2250. package/dist/esm/internal/singleShotGen.js +30 -0
  2251. package/dist/esm/internal/singleShotGen.js.map +1 -0
  2252. package/dist/esm/internal/sink.js +801 -0
  2253. package/dist/esm/internal/sink.js.map +1 -0
  2254. package/dist/esm/internal/stack.js +5 -0
  2255. package/dist/esm/internal/stack.js.map +1 -0
  2256. package/dist/esm/internal/stm/core.js +501 -0
  2257. package/dist/esm/internal/stm/core.js.map +1 -0
  2258. package/dist/esm/internal/stm/entry.js +42 -0
  2259. package/dist/esm/internal/stm/entry.js.map +1 -0
  2260. package/dist/esm/internal/stm/journal.js +89 -0
  2261. package/dist/esm/internal/stm/journal.js.map +1 -0
  2262. package/dist/esm/internal/stm/opCodes/stm.js +25 -0
  2263. package/dist/esm/internal/stm/opCodes/stm.js.map +1 -0
  2264. package/dist/esm/internal/stm/opCodes/stmState.js +7 -0
  2265. package/dist/esm/internal/stm/opCodes/stmState.js.map +1 -0
  2266. package/dist/esm/internal/stm/opCodes/strategy.js +7 -0
  2267. package/dist/esm/internal/stm/opCodes/strategy.js.map +1 -0
  2268. package/dist/esm/internal/stm/opCodes/tExit.js +11 -0
  2269. package/dist/esm/internal/stm/opCodes/tExit.js.map +1 -0
  2270. package/dist/esm/internal/stm/opCodes/tryCommit.js +5 -0
  2271. package/dist/esm/internal/stm/opCodes/tryCommit.js.map +1 -0
  2272. package/dist/esm/internal/stm/stm.js +478 -0
  2273. package/dist/esm/internal/stm/stm.js.map +1 -0
  2274. package/dist/esm/internal/stm/stmState.js +89 -0
  2275. package/dist/esm/internal/stm/stmState.js.map +1 -0
  2276. package/dist/esm/internal/stm/tArray.js +243 -0
  2277. package/dist/esm/internal/stm/tArray.js.map +1 -0
  2278. package/dist/esm/internal/stm/tDeferred.js +41 -0
  2279. package/dist/esm/internal/stm/tDeferred.js.map +1 -0
  2280. package/dist/esm/internal/stm/tExit.js +101 -0
  2281. package/dist/esm/internal/stm/tExit.js.map +1 -0
  2282. package/dist/esm/internal/stm/tMap.js +430 -0
  2283. package/dist/esm/internal/stm/tMap.js.map +1 -0
  2284. package/dist/esm/internal/stm/tPriorityQueue.js +143 -0
  2285. package/dist/esm/internal/stm/tPriorityQueue.js.map +1 -0
  2286. package/dist/esm/internal/stm/tPubSub.js +376 -0
  2287. package/dist/esm/internal/stm/tPubSub.js.map +1 -0
  2288. package/dist/esm/internal/stm/tQueue.js +258 -0
  2289. package/dist/esm/internal/stm/tQueue.js.map +1 -0
  2290. package/dist/esm/internal/stm/tRandom.js +82 -0
  2291. package/dist/esm/internal/stm/tRandom.js.map +1 -0
  2292. package/dist/esm/internal/stm/tReentrantLock.js +192 -0
  2293. package/dist/esm/internal/stm/tReentrantLock.js.map +1 -0
  2294. package/dist/esm/internal/stm/tRef.js +100 -0
  2295. package/dist/esm/internal/stm/tRef.js.map +1 -0
  2296. package/dist/esm/internal/stm/tSemaphore.js +59 -0
  2297. package/dist/esm/internal/stm/tSemaphore.js.map +1 -0
  2298. package/dist/esm/internal/stm/tSet.js +88 -0
  2299. package/dist/esm/internal/stm/tSet.js.map +1 -0
  2300. package/dist/esm/internal/stm/tSubscriptionRef.js +166 -0
  2301. package/dist/esm/internal/stm/tSubscriptionRef.js.map +1 -0
  2302. package/dist/esm/internal/stm/tryCommit.js +16 -0
  2303. package/dist/esm/internal/stm/tryCommit.js.map +1 -0
  2304. package/dist/esm/internal/stm/txnId.js +11 -0
  2305. package/dist/esm/internal/stm/txnId.js.map +1 -0
  2306. package/dist/esm/internal/stm/versioned.js +8 -0
  2307. package/dist/esm/internal/stm/versioned.js.map +1 -0
  2308. package/dist/esm/internal/stream/debounceState.js +21 -0
  2309. package/dist/esm/internal/stream/debounceState.js.map +1 -0
  2310. package/dist/esm/internal/stream/emit.js +120 -0
  2311. package/dist/esm/internal/stream/emit.js.map +1 -0
  2312. package/dist/esm/internal/stream/haltStrategy.js +63 -0
  2313. package/dist/esm/internal/stream/haltStrategy.js.map +1 -0
  2314. package/dist/esm/internal/stream/handoff.js +55 -0
  2315. package/dist/esm/internal/stream/handoff.js.map +1 -0
  2316. package/dist/esm/internal/stream/handoffSignal.js +22 -0
  2317. package/dist/esm/internal/stream/handoffSignal.js.map +1 -0
  2318. package/dist/esm/internal/stream/pull.js +20 -0
  2319. package/dist/esm/internal/stream/pull.js.map +1 -0
  2320. package/dist/esm/internal/stream/sinkEndReason.js +13 -0
  2321. package/dist/esm/internal/stream/sinkEndReason.js.map +1 -0
  2322. package/dist/esm/internal/stream/zipAllState.js +33 -0
  2323. package/dist/esm/internal/stream/zipAllState.js.map +1 -0
  2324. package/dist/esm/internal/stream/zipChunksState.js +21 -0
  2325. package/dist/esm/internal/stream/zipChunksState.js.map +1 -0
  2326. package/dist/esm/internal/stream.js +2867 -0
  2327. package/dist/esm/internal/stream.js.map +1 -0
  2328. package/dist/esm/internal/string-utils.js +77 -0
  2329. package/dist/esm/internal/string-utils.js.map +1 -0
  2330. package/dist/esm/internal/subscriptionRef.js +63 -0
  2331. package/dist/esm/internal/subscriptionRef.js.map +1 -0
  2332. package/dist/esm/internal/supervisor/patch.js +125 -0
  2333. package/dist/esm/internal/supervisor/patch.js.map +1 -0
  2334. package/dist/esm/internal/supervisor.js +207 -0
  2335. package/dist/esm/internal/supervisor.js.map +1 -0
  2336. package/dist/esm/internal/synchronizedRef.js +44 -0
  2337. package/dist/esm/internal/synchronizedRef.js.map +1 -0
  2338. package/dist/esm/internal/take.js +108 -0
  2339. package/dist/esm/internal/take.js.map +1 -0
  2340. package/dist/esm/internal/testing/sleep.js +7 -0
  2341. package/dist/esm/internal/testing/sleep.js.map +1 -0
  2342. package/dist/esm/internal/testing/suspendedWarningData.js +48 -0
  2343. package/dist/esm/internal/testing/suspendedWarningData.js.map +1 -0
  2344. package/dist/esm/internal/testing/warningData.js +49 -0
  2345. package/dist/esm/internal/testing/warningData.js.map +1 -0
  2346. package/dist/esm/internal/tracer.js +122 -0
  2347. package/dist/esm/internal/tracer.js.map +1 -0
  2348. package/dist/esm/internal/trie.js +547 -0
  2349. package/dist/esm/internal/trie.js.map +1 -0
  2350. package/dist/esm/internal/version.js +6 -0
  2351. package/dist/esm/internal/version.js.map +1 -0
  2352. package/dist/esm/package.json +4 -0
  2353. package/index/package.json +6 -0
  2354. package/package.json +1471 -0
  2355. package/src/Arbitrary.ts +1101 -0
  2356. package/src/Array.ts +6854 -0
  2357. package/src/BigDecimal.ts +2037 -0
  2358. package/src/BigInt.ts +1139 -0
  2359. package/src/Boolean.ts +560 -0
  2360. package/src/Brand.ts +360 -0
  2361. package/src/Cache.ts +281 -0
  2362. package/src/Cause.ts +2049 -0
  2363. package/src/Channel.ts +3051 -0
  2364. package/src/ChildExecutorDecision.ts +158 -0
  2365. package/src/Chunk.ts +2350 -0
  2366. package/src/Clock.ts +111 -0
  2367. package/src/Config.ts +743 -0
  2368. package/src/ConfigError.ts +286 -0
  2369. package/src/ConfigProvider.ts +421 -0
  2370. package/src/ConfigProviderPathPatch.ts +132 -0
  2371. package/src/Console.ts +255 -0
  2372. package/src/Context.ts +867 -0
  2373. package/src/Cron.ts +718 -0
  2374. package/src/Data.ts +765 -0
  2375. package/src/DateTime.ts +2715 -0
  2376. package/src/DefaultServices.ts +34 -0
  2377. package/src/Deferred.ts +471 -0
  2378. package/src/Differ.ts +512 -0
  2379. package/src/Duration.ts +1140 -0
  2380. package/src/Effect.ts +29096 -0
  2381. package/src/Effectable.ts +107 -0
  2382. package/src/Either.ts +1723 -0
  2383. package/src/Encoding.ts +195 -0
  2384. package/src/Equal.ts +98 -0
  2385. package/src/Equivalence.ts +259 -0
  2386. package/src/ExecutionPlan.ts +308 -0
  2387. package/src/ExecutionStrategy.ts +138 -0
  2388. package/src/Exit.ts +717 -0
  2389. package/src/FastCheck.ts +9 -0
  2390. package/src/Fiber.ts +926 -0
  2391. package/src/FiberHandle.ts +582 -0
  2392. package/src/FiberId.ts +219 -0
  2393. package/src/FiberMap.ts +779 -0
  2394. package/src/FiberRef.ts +511 -0
  2395. package/src/FiberRefs.ts +288 -0
  2396. package/src/FiberRefsPatch.ts +139 -0
  2397. package/src/FiberSet.ts +529 -0
  2398. package/src/FiberStatus.ts +108 -0
  2399. package/src/Function.ts +1378 -0
  2400. package/src/GlobalValue.ts +53 -0
  2401. package/src/Graph.ts +3764 -0
  2402. package/src/GroupBy.ts +141 -0
  2403. package/src/HKT.ts +45 -0
  2404. package/src/Hash.ts +203 -0
  2405. package/src/HashMap.ts +919 -0
  2406. package/src/HashRing.ts +387 -0
  2407. package/src/HashSet.ts +2346 -0
  2408. package/src/Inspectable.ts +287 -0
  2409. package/src/Iterable.ts +1606 -0
  2410. package/src/JSONSchema.ts +1044 -0
  2411. package/src/KeyedPool.ts +201 -0
  2412. package/src/Layer.ts +1671 -0
  2413. package/src/LayerMap.ts +436 -0
  2414. package/src/List.ts +1469 -0
  2415. package/src/LogLevel.ts +387 -0
  2416. package/src/LogSpan.ts +25 -0
  2417. package/src/Logger.ts +863 -0
  2418. package/src/Mailbox.ts +298 -0
  2419. package/src/ManagedRuntime.ts +180 -0
  2420. package/src/Match.ts +1493 -0
  2421. package/src/MergeDecision.ts +103 -0
  2422. package/src/MergeState.ts +180 -0
  2423. package/src/MergeStrategy.ts +124 -0
  2424. package/src/Metric.ts +1165 -0
  2425. package/src/MetricBoundaries.ts +69 -0
  2426. package/src/MetricHook.ts +175 -0
  2427. package/src/MetricKey.ts +266 -0
  2428. package/src/MetricKeyType.ts +262 -0
  2429. package/src/MetricLabel.ts +47 -0
  2430. package/src/MetricPair.ts +71 -0
  2431. package/src/MetricPolling.ts +182 -0
  2432. package/src/MetricRegistry.ts +48 -0
  2433. package/src/MetricState.ts +273 -0
  2434. package/src/Micro.ts +5556 -0
  2435. package/src/ModuleVersion.ts +18 -0
  2436. package/src/MutableHashMap.ts +518 -0
  2437. package/src/MutableHashSet.ts +706 -0
  2438. package/src/MutableList.ts +333 -0
  2439. package/src/MutableQueue.ts +289 -0
  2440. package/src/MutableRef.ts +258 -0
  2441. package/src/NonEmptyIterable.ts +32 -0
  2442. package/src/Number.ts +1440 -0
  2443. package/src/Option.ts +4028 -0
  2444. package/src/Order.ts +397 -0
  2445. package/src/Ordering.ts +173 -0
  2446. package/src/ParseResult.ts +2068 -0
  2447. package/src/PartitionedSemaphore.ts +200 -0
  2448. package/src/Pipeable.ts +574 -0
  2449. package/src/Pool.ts +220 -0
  2450. package/src/Predicate.ts +2344 -0
  2451. package/src/Pretty.ts +205 -0
  2452. package/src/PrimaryKey.ts +23 -0
  2453. package/src/PubSub.ts +210 -0
  2454. package/src/Queue.ts +748 -0
  2455. package/src/Random.ts +204 -0
  2456. package/src/RateLimiter.ts +138 -0
  2457. package/src/RcMap.ts +245 -0
  2458. package/src/RcRef.ts +122 -0
  2459. package/src/Readable.ts +104 -0
  2460. package/src/Record.ts +1990 -0
  2461. package/src/RedBlackTree.ts +725 -0
  2462. package/src/Redacted.ts +144 -0
  2463. package/src/Ref.ts +268 -0
  2464. package/src/RegExp.ts +38 -0
  2465. package/src/Reloadable.ts +127 -0
  2466. package/src/Request.ts +418 -0
  2467. package/src/RequestBlock.ts +118 -0
  2468. package/src/RequestResolver.ts +495 -0
  2469. package/src/Resource.ts +119 -0
  2470. package/src/Runtime.ts +631 -0
  2471. package/src/RuntimeFlags.ts +436 -0
  2472. package/src/RuntimeFlagsPatch.ts +295 -0
  2473. package/src/STM.ts +3091 -0
  2474. package/src/Schedule.ts +3740 -0
  2475. package/src/ScheduleDecision.ts +62 -0
  2476. package/src/ScheduleInterval.ts +219 -0
  2477. package/src/ScheduleIntervals.ts +172 -0
  2478. package/src/Scheduler.ts +364 -0
  2479. package/src/Schema.ts +11443 -0
  2480. package/src/SchemaAST.ts +3055 -0
  2481. package/src/Scope.ts +240 -0
  2482. package/src/ScopedCache.ts +151 -0
  2483. package/src/ScopedRef.ts +139 -0
  2484. package/src/Secret.ts +88 -0
  2485. package/src/SingleProducerAsyncInput.ts +67 -0
  2486. package/src/Sink.ts +1877 -0
  2487. package/src/SortedMap.ts +361 -0
  2488. package/src/SortedSet.ts +530 -0
  2489. package/src/Stream.ts +11561 -0
  2490. package/src/StreamEmit.ts +136 -0
  2491. package/src/StreamHaltStrategy.ts +140 -0
  2492. package/src/Streamable.ts +45 -0
  2493. package/src/String.ts +1026 -0
  2494. package/src/Struct.ts +335 -0
  2495. package/src/Subscribable.ts +114 -0
  2496. package/src/SubscriptionRef.ts +444 -0
  2497. package/src/Supervisor.ts +240 -0
  2498. package/src/Symbol.ts +29 -0
  2499. package/src/SynchronizedRef.ts +429 -0
  2500. package/src/TArray.ts +922 -0
  2501. package/src/TDeferred.ts +124 -0
  2502. package/src/TMap.ts +875 -0
  2503. package/src/TPriorityQueue.ts +283 -0
  2504. package/src/TPubSub.ts +228 -0
  2505. package/src/TQueue.ts +540 -0
  2506. package/src/TRandom.ts +129 -0
  2507. package/src/TReentrantLock.ts +260 -0
  2508. package/src/TRef.ts +266 -0
  2509. package/src/TSemaphore.ts +169 -0
  2510. package/src/TSet.ts +633 -0
  2511. package/src/TSubscriptionRef.ts +284 -0
  2512. package/src/Take.ts +309 -0
  2513. package/src/TestAnnotation.ts +158 -0
  2514. package/src/TestAnnotationMap.ts +163 -0
  2515. package/src/TestAnnotations.ts +117 -0
  2516. package/src/TestClock.ts +562 -0
  2517. package/src/TestConfig.ts +47 -0
  2518. package/src/TestContext.ts +36 -0
  2519. package/src/TestLive.ts +53 -0
  2520. package/src/TestServices.ts +454 -0
  2521. package/src/TestSized.ts +55 -0
  2522. package/src/Tracer.ts +182 -0
  2523. package/src/Trie.ts +1860 -0
  2524. package/src/Tuple.ts +483 -0
  2525. package/src/Types.ts +361 -0
  2526. package/src/Unify.ts +127 -0
  2527. package/src/UpstreamPullRequest.ts +129 -0
  2528. package/src/UpstreamPullStrategy.ts +133 -0
  2529. package/src/Utils.ts +809 -0
  2530. package/src/index.ts +1561 -0
  2531. package/src/internal/array.ts +8 -0
  2532. package/src/internal/blockedRequests.ts +520 -0
  2533. package/src/internal/cache.ts +733 -0
  2534. package/src/internal/cause.ts +1050 -0
  2535. package/src/internal/channel/channelExecutor.ts +1200 -0
  2536. package/src/internal/channel/channelState.ts +134 -0
  2537. package/src/internal/channel/childExecutorDecision.ts +96 -0
  2538. package/src/internal/channel/continuation.ts +200 -0
  2539. package/src/internal/channel/mergeDecision.ts +113 -0
  2540. package/src/internal/channel/mergeState.ts +120 -0
  2541. package/src/internal/channel/mergeStrategy.ts +72 -0
  2542. package/src/internal/channel/singleProducerAsyncInput.ts +259 -0
  2543. package/src/internal/channel/subexecutor.ts +229 -0
  2544. package/src/internal/channel/upstreamPullRequest.ts +84 -0
  2545. package/src/internal/channel/upstreamPullStrategy.ts +87 -0
  2546. package/src/internal/channel.ts +2603 -0
  2547. package/src/internal/clock.ts +95 -0
  2548. package/src/internal/completedRequestMap.ts +9 -0
  2549. package/src/internal/concurrency.ts +54 -0
  2550. package/src/internal/config.ts +716 -0
  2551. package/src/internal/configError.ts +304 -0
  2552. package/src/internal/configProvider/pathPatch.ts +97 -0
  2553. package/src/internal/configProvider.ts +799 -0
  2554. package/src/internal/console.ts +153 -0
  2555. package/src/internal/context.ts +337 -0
  2556. package/src/internal/core-effect.ts +2293 -0
  2557. package/src/internal/core-stream.ts +998 -0
  2558. package/src/internal/core.ts +3166 -0
  2559. package/src/internal/data.ts +36 -0
  2560. package/src/internal/dataSource.ts +327 -0
  2561. package/src/internal/dateTime.ts +1277 -0
  2562. package/src/internal/defaultServices/console.ts +100 -0
  2563. package/src/internal/defaultServices.ts +163 -0
  2564. package/src/internal/deferred.ts +46 -0
  2565. package/src/internal/differ/chunkPatch.ts +211 -0
  2566. package/src/internal/differ/contextPatch.ts +232 -0
  2567. package/src/internal/differ/hashMapPatch.ts +220 -0
  2568. package/src/internal/differ/hashSetPatch.ts +176 -0
  2569. package/src/internal/differ/orPatch.ts +311 -0
  2570. package/src/internal/differ/readonlyArrayPatch.ts +210 -0
  2571. package/src/internal/differ.ts +200 -0
  2572. package/src/internal/doNotation.ts +80 -0
  2573. package/src/internal/effect/circular.ts +903 -0
  2574. package/src/internal/effectable.ts +131 -0
  2575. package/src/internal/either.ts +110 -0
  2576. package/src/internal/encoding/base64.ts +286 -0
  2577. package/src/internal/encoding/base64Url.ts +29 -0
  2578. package/src/internal/encoding/common.ts +51 -0
  2579. package/src/internal/encoding/hex.ts +315 -0
  2580. package/src/internal/errors.ts +7 -0
  2581. package/src/internal/executionPlan.ts +114 -0
  2582. package/src/internal/executionStrategy.ts +74 -0
  2583. package/src/internal/fiber.ts +388 -0
  2584. package/src/internal/fiberId.ts +267 -0
  2585. package/src/internal/fiberMessage.ts +82 -0
  2586. package/src/internal/fiberRefs/patch.ts +144 -0
  2587. package/src/internal/fiberRefs.ts +297 -0
  2588. package/src/internal/fiberRuntime.ts +3859 -0
  2589. package/src/internal/fiberScope.ts +71 -0
  2590. package/src/internal/fiberStatus.ts +119 -0
  2591. package/src/internal/groupBy.ts +530 -0
  2592. package/src/internal/hashMap/array.ts +49 -0
  2593. package/src/internal/hashMap/bitwise.ts +32 -0
  2594. package/src/internal/hashMap/config.ts +14 -0
  2595. package/src/internal/hashMap/keySet.ts +8 -0
  2596. package/src/internal/hashMap/node.ts +391 -0
  2597. package/src/internal/hashMap.ts +586 -0
  2598. package/src/internal/hashSet.ts +323 -0
  2599. package/src/internal/keyedPool.ts +244 -0
  2600. package/src/internal/layer/circular.ts +214 -0
  2601. package/src/internal/layer.ts +1483 -0
  2602. package/src/internal/logSpan.ts +20 -0
  2603. package/src/internal/logger-circular.ts +24 -0
  2604. package/src/internal/logger.ts +485 -0
  2605. package/src/internal/mailbox.ts +561 -0
  2606. package/src/internal/managedRuntime/circular.ts +6 -0
  2607. package/src/internal/managedRuntime.ts +137 -0
  2608. package/src/internal/matcher.ts +652 -0
  2609. package/src/internal/metric/boundaries.ts +75 -0
  2610. package/src/internal/metric/hook.ts +483 -0
  2611. package/src/internal/metric/key.ts +167 -0
  2612. package/src/internal/metric/keyType.ts +238 -0
  2613. package/src/internal/metric/label.ts +41 -0
  2614. package/src/internal/metric/pair.ts +48 -0
  2615. package/src/internal/metric/polling.ts +149 -0
  2616. package/src/internal/metric/registry.ts +187 -0
  2617. package/src/internal/metric/state.ts +290 -0
  2618. package/src/internal/metric.ts +577 -0
  2619. package/src/internal/opCodes/cause.ts +35 -0
  2620. package/src/internal/opCodes/channel.ts +83 -0
  2621. package/src/internal/opCodes/channelChildExecutorDecision.ts +17 -0
  2622. package/src/internal/opCodes/channelMergeDecision.ts +11 -0
  2623. package/src/internal/opCodes/channelMergeState.ts +17 -0
  2624. package/src/internal/opCodes/channelMergeStrategy.ts +11 -0
  2625. package/src/internal/opCodes/channelState.ts +23 -0
  2626. package/src/internal/opCodes/channelUpstreamPullRequest.ts +11 -0
  2627. package/src/internal/opCodes/channelUpstreamPullStrategy.ts +11 -0
  2628. package/src/internal/opCodes/config.ts +65 -0
  2629. package/src/internal/opCodes/configError.ts +35 -0
  2630. package/src/internal/opCodes/continuation.ts +11 -0
  2631. package/src/internal/opCodes/deferred.ts +11 -0
  2632. package/src/internal/opCodes/effect.ts +89 -0
  2633. package/src/internal/opCodes/layer.ts +59 -0
  2634. package/src/internal/opCodes/streamHaltStrategy.ts +23 -0
  2635. package/src/internal/option.ts +80 -0
  2636. package/src/internal/pool.ts +432 -0
  2637. package/src/internal/pubsub.ts +1762 -0
  2638. package/src/internal/query.ts +204 -0
  2639. package/src/internal/queue.ts +766 -0
  2640. package/src/internal/random.ts +161 -0
  2641. package/src/internal/rateLimiter.ts +93 -0
  2642. package/src/internal/rcMap.ts +285 -0
  2643. package/src/internal/rcRef.ts +192 -0
  2644. package/src/internal/redBlackTree/iterator.ts +200 -0
  2645. package/src/internal/redBlackTree/node.ts +68 -0
  2646. package/src/internal/redBlackTree.ts +1245 -0
  2647. package/src/internal/redacted.ts +73 -0
  2648. package/src/internal/ref.ts +171 -0
  2649. package/src/internal/reloadable.ts +140 -0
  2650. package/src/internal/request.ts +177 -0
  2651. package/src/internal/resource.ts +76 -0
  2652. package/src/internal/ringBuffer.ts +68 -0
  2653. package/src/internal/runtime.ts +558 -0
  2654. package/src/internal/runtimeFlags.ts +178 -0
  2655. package/src/internal/runtimeFlagsPatch.ts +103 -0
  2656. package/src/internal/schedule/decision.ts +47 -0
  2657. package/src/internal/schedule/interval.ts +101 -0
  2658. package/src/internal/schedule/intervals.ts +180 -0
  2659. package/src/internal/schedule.ts +2199 -0
  2660. package/src/internal/schema/errors.ts +191 -0
  2661. package/src/internal/schema/schemaId.ts +106 -0
  2662. package/src/internal/schema/util.ts +50 -0
  2663. package/src/internal/scopedCache.ts +644 -0
  2664. package/src/internal/scopedRef.ts +118 -0
  2665. package/src/internal/secret.ts +89 -0
  2666. package/src/internal/singleShotGen.ts +35 -0
  2667. package/src/internal/sink.ts +2120 -0
  2668. package/src/internal/stack.ts +10 -0
  2669. package/src/internal/stm/core.ts +817 -0
  2670. package/src/internal/stm/entry.ts +59 -0
  2671. package/src/internal/stm/journal.ts +123 -0
  2672. package/src/internal/stm/opCodes/stm.ts +71 -0
  2673. package/src/internal/stm/opCodes/stmState.ts +17 -0
  2674. package/src/internal/stm/opCodes/strategy.ts +17 -0
  2675. package/src/internal/stm/opCodes/tExit.ts +29 -0
  2676. package/src/internal/stm/opCodes/tryCommit.ts +11 -0
  2677. package/src/internal/stm/stm.ts +1453 -0
  2678. package/src/internal/stm/stmState.ts +136 -0
  2679. package/src/internal/stm/tArray.ts +550 -0
  2680. package/src/internal/stm/tDeferred.ts +81 -0
  2681. package/src/internal/stm/tExit.ts +190 -0
  2682. package/src/internal/stm/tMap.ts +824 -0
  2683. package/src/internal/stm/tPriorityQueue.ts +267 -0
  2684. package/src/internal/stm/tPubSub.ts +551 -0
  2685. package/src/internal/stm/tQueue.ts +393 -0
  2686. package/src/internal/stm/tRandom.ts +140 -0
  2687. package/src/internal/stm/tReentrantLock.ts +352 -0
  2688. package/src/internal/stm/tRef.ts +195 -0
  2689. package/src/internal/stm/tSemaphore.ts +113 -0
  2690. package/src/internal/stm/tSet.ts +259 -0
  2691. package/src/internal/stm/tSubscriptionRef.ts +286 -0
  2692. package/src/internal/stm/tryCommit.ts +34 -0
  2693. package/src/internal/stm/txnId.ts +14 -0
  2694. package/src/internal/stm/versioned.ts +4 -0
  2695. package/src/internal/stream/debounceState.ts +57 -0
  2696. package/src/internal/stream/emit.ts +123 -0
  2697. package/src/internal/stream/haltStrategy.ts +94 -0
  2698. package/src/internal/stream/handoff.ts +187 -0
  2699. package/src/internal/stream/handoffSignal.ts +59 -0
  2700. package/src/internal/stream/pull.ts +34 -0
  2701. package/src/internal/stream/sinkEndReason.ts +30 -0
  2702. package/src/internal/stream/zipAllState.ts +88 -0
  2703. package/src/internal/stream/zipChunksState.ts +56 -0
  2704. package/src/internal/stream.ts +8802 -0
  2705. package/src/internal/string-utils.ts +107 -0
  2706. package/src/internal/subscriptionRef.ts +138 -0
  2707. package/src/internal/supervisor/patch.ts +190 -0
  2708. package/src/internal/supervisor.ts +303 -0
  2709. package/src/internal/synchronizedRef.ts +114 -0
  2710. package/src/internal/take.ts +199 -0
  2711. package/src/internal/testing/sleep.ts +27 -0
  2712. package/src/internal/testing/suspendedWarningData.ts +85 -0
  2713. package/src/internal/testing/warningData.ts +94 -0
  2714. package/src/internal/tracer.ts +150 -0
  2715. package/src/internal/trie.ts +722 -0
  2716. package/src/internal/version.ts +7 -0
@@ -0,0 +1,3080 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.values = exports.updateNode = exports.updateEdge = exports.undirected = exports.topo = exports.toMermaid = exports.toGraphViz = exports.stronglyConnectedComponents = exports.reverse = exports.removeNode = exports.removeEdge = exports.nodes = exports.nodeCount = exports.neighborsDirected = exports.neighbors = exports.mutate = exports.mapNodes = exports.mapEdges = exports.isGraph = exports.isBipartite = exports.isAcyclic = exports.indices = exports.hasNode = exports.hasEdge = exports.getNode = exports.getEdge = exports.floydWarshall = exports.findNodes = exports.findNode = exports.findEdges = exports.findEdge = exports.filterNodes = exports.filterMapNodes = exports.filterMapEdges = exports.filterEdges = exports.externals = exports.entries = exports.endMutation = exports.edges = exports.edgeCount = exports.directed = exports.dijkstra = exports.dfsPostOrder = exports.dfs = exports.connectedComponents = exports.bfs = exports.bellmanFord = exports.beginMutation = exports.astar = exports.addNode = exports.addEdge = exports.Walker = exports.TypeId = exports.GraphError = exports.Edge = void 0;
7
+ var Data = _interopRequireWildcard(require("./Data.js"));
8
+ var Equal = _interopRequireWildcard(require("./Equal.js"));
9
+ var _Function = require("./Function.js");
10
+ var Hash = _interopRequireWildcard(require("./Hash.js"));
11
+ var _Inspectable = require("./Inspectable.js");
12
+ var Option = _interopRequireWildcard(require("./Option.js"));
13
+ var _Pipeable = require("./Pipeable.js");
14
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
15
+ /**
16
+ * @experimental
17
+ * @since 3.18.0
18
+ */
19
+
20
+ /**
21
+ * Unique identifier for Graph instances.
22
+ *
23
+ * @since 3.18.0
24
+ * @category symbol
25
+ */
26
+ const TypeId = exports.TypeId = "~effect/Graph";
27
+ /**
28
+ * Edge data containing source, target, and user data.
29
+ *
30
+ * @since 3.18.0
31
+ * @category models
32
+ */
33
+ class Edge extends Data.Class {}
34
+ // =============================================================================
35
+ // Proto Objects
36
+ // =============================================================================
37
+ /** @internal */
38
+ exports.Edge = Edge;
39
+ const ProtoGraph = {
40
+ [TypeId]: TypeId,
41
+ [Symbol.iterator]() {
42
+ return this.nodes[Symbol.iterator]();
43
+ },
44
+ [_Inspectable.NodeInspectSymbol]() {
45
+ return this.toJSON();
46
+ },
47
+ [Equal.symbol](that) {
48
+ if (isGraph(that)) {
49
+ if (this.nodes.size !== that.nodes.size || this.edges.size !== that.edges.size || this.type !== that.type) {
50
+ return false;
51
+ }
52
+ // Compare nodes
53
+ for (const [nodeIndex, nodeData] of this.nodes) {
54
+ if (!that.nodes.has(nodeIndex)) {
55
+ return false;
56
+ }
57
+ const otherNodeData = that.nodes.get(nodeIndex);
58
+ if (!Equal.equals(nodeData, otherNodeData)) {
59
+ return false;
60
+ }
61
+ }
62
+ // Compare edges
63
+ for (const [edgeIndex, edgeData] of this.edges) {
64
+ if (!that.edges.has(edgeIndex)) {
65
+ return false;
66
+ }
67
+ const otherEdge = that.edges.get(edgeIndex);
68
+ if (!Equal.equals(edgeData, otherEdge)) {
69
+ return false;
70
+ }
71
+ }
72
+ return true;
73
+ }
74
+ return false;
75
+ },
76
+ [Hash.symbol]() {
77
+ let hash = Hash.string("Graph");
78
+ hash = hash ^ Hash.string(this.type);
79
+ hash = hash ^ Hash.number(this.nodes.size);
80
+ hash = hash ^ Hash.number(this.edges.size);
81
+ for (const [nodeIndex, nodeData] of this.nodes) {
82
+ hash = hash ^ Hash.hash(nodeIndex) + Hash.hash(nodeData);
83
+ }
84
+ for (const [edgeIndex, edgeData] of this.edges) {
85
+ hash = hash ^ Hash.hash(edgeIndex) + Hash.hash(edgeData);
86
+ }
87
+ return hash;
88
+ },
89
+ toJSON() {
90
+ return {
91
+ _id: "Graph",
92
+ nodeCount: this.nodes.size,
93
+ edgeCount: this.edges.size,
94
+ type: this.type
95
+ };
96
+ },
97
+ toString() {
98
+ return (0, _Inspectable.format)(this);
99
+ },
100
+ pipe() {
101
+ return (0, _Pipeable.pipeArguments)(this, arguments);
102
+ }
103
+ };
104
+ // =============================================================================
105
+ // Errors
106
+ // =============================================================================
107
+ /**
108
+ * Error thrown when a graph operation fails.
109
+ *
110
+ * @since 3.18.0
111
+ * @category errors
112
+ */
113
+ class GraphError extends /*#__PURE__*/Data.TaggedError("GraphError") {}
114
+ /** @internal */
115
+ exports.GraphError = GraphError;
116
+ const missingNode = node => new GraphError({
117
+ message: `Node ${node} does not exist`
118
+ });
119
+ // =============================================================================
120
+ // Constructors
121
+ // =============================================================================
122
+ /** @internal */
123
+ const isGraph = u => typeof u === "object" && u !== null && TypeId in u;
124
+ /**
125
+ * Creates a directed graph, optionally with initial mutations.
126
+ *
127
+ * @example
128
+ * ```ts
129
+ * import { Graph } from "effect"
130
+ *
131
+ * // Directed graph with initial nodes and edges
132
+ * const graph = Graph.directed<string, string>((mutable) => {
133
+ * const a = Graph.addNode(mutable, "A")
134
+ * const b = Graph.addNode(mutable, "B")
135
+ * const c = Graph.addNode(mutable, "C")
136
+ * Graph.addEdge(mutable, a, b, "A->B")
137
+ * Graph.addEdge(mutable, b, c, "B->C")
138
+ * })
139
+ * ```
140
+ *
141
+ * @since 3.18.0
142
+ * @category constructors
143
+ */
144
+ exports.isGraph = isGraph;
145
+ const directed = mutate => {
146
+ const graph = Object.create(ProtoGraph);
147
+ graph.type = "directed";
148
+ graph.nodes = new Map();
149
+ graph.edges = new Map();
150
+ graph.adjacency = new Map();
151
+ graph.reverseAdjacency = new Map();
152
+ graph.nextNodeIndex = 0;
153
+ graph.nextEdgeIndex = 0;
154
+ graph.isAcyclic = Option.some(true);
155
+ graph.mutable = false;
156
+ if (mutate) {
157
+ const mutable = beginMutation(graph);
158
+ mutate(mutable);
159
+ return endMutation(mutable);
160
+ }
161
+ return graph;
162
+ };
163
+ /**
164
+ * Creates an undirected graph, optionally with initial mutations.
165
+ *
166
+ * @example
167
+ * ```ts
168
+ * import { Graph } from "effect"
169
+ *
170
+ * // Undirected graph with initial nodes and edges
171
+ * const graph = Graph.undirected<string, string>((mutable) => {
172
+ * const a = Graph.addNode(mutable, "A")
173
+ * const b = Graph.addNode(mutable, "B")
174
+ * const c = Graph.addNode(mutable, "C")
175
+ * Graph.addEdge(mutable, a, b, "A-B")
176
+ * Graph.addEdge(mutable, b, c, "B-C")
177
+ * })
178
+ * ```
179
+ *
180
+ * @since 3.18.0
181
+ * @category constructors
182
+ */
183
+ exports.directed = directed;
184
+ const undirected = mutate => {
185
+ const graph = Object.create(ProtoGraph);
186
+ graph.type = "undirected";
187
+ graph.nodes = new Map();
188
+ graph.edges = new Map();
189
+ graph.adjacency = new Map();
190
+ graph.reverseAdjacency = new Map();
191
+ graph.nextNodeIndex = 0;
192
+ graph.nextEdgeIndex = 0;
193
+ graph.isAcyclic = Option.some(true);
194
+ graph.mutable = false;
195
+ if (mutate) {
196
+ const mutable = beginMutation(graph);
197
+ mutate(mutable);
198
+ return endMutation(mutable);
199
+ }
200
+ return graph;
201
+ };
202
+ // =============================================================================
203
+ // Scoped Mutable API
204
+ // =============================================================================
205
+ /**
206
+ * Creates a mutable scope for safe graph mutations by copying the data structure.
207
+ *
208
+ * @example
209
+ * ```ts
210
+ * import { Graph } from "effect"
211
+ *
212
+ * const graph = Graph.directed<string, number>()
213
+ * const mutable = Graph.beginMutation(graph)
214
+ * // Now mutable can be safely modified without affecting original graph
215
+ * ```
216
+ *
217
+ * @since 3.18.0
218
+ * @category mutations
219
+ */
220
+ exports.undirected = undirected;
221
+ const beginMutation = graph => {
222
+ // Copy adjacency maps with deep cloned arrays
223
+ const adjacency = new Map();
224
+ const reverseAdjacency = new Map();
225
+ for (const [nodeIndex, edges] of graph.adjacency) {
226
+ adjacency.set(nodeIndex, [...edges]);
227
+ }
228
+ for (const [nodeIndex, edges] of graph.reverseAdjacency) {
229
+ reverseAdjacency.set(nodeIndex, [...edges]);
230
+ }
231
+ const mutable = Object.create(ProtoGraph);
232
+ mutable.type = graph.type;
233
+ mutable.nodes = new Map(graph.nodes);
234
+ mutable.edges = new Map(graph.edges);
235
+ mutable.adjacency = adjacency;
236
+ mutable.reverseAdjacency = reverseAdjacency;
237
+ mutable.nextNodeIndex = graph.nextNodeIndex;
238
+ mutable.nextEdgeIndex = graph.nextEdgeIndex;
239
+ mutable.isAcyclic = graph.isAcyclic;
240
+ mutable.mutable = true;
241
+ return mutable;
242
+ };
243
+ /**
244
+ * Converts a mutable graph back to an immutable graph, ending the mutation scope.
245
+ *
246
+ * @example
247
+ * ```ts
248
+ * import { Graph } from "effect"
249
+ *
250
+ * const graph = Graph.directed<string, number>()
251
+ * const mutable = Graph.beginMutation(graph)
252
+ * // ... perform mutations on mutable ...
253
+ * const newGraph = Graph.endMutation(mutable)
254
+ * ```
255
+ *
256
+ * @since 3.18.0
257
+ * @category mutations
258
+ */
259
+ exports.beginMutation = beginMutation;
260
+ const endMutation = mutable => {
261
+ const graph = Object.create(ProtoGraph);
262
+ graph.type = mutable.type;
263
+ graph.nodes = new Map(mutable.nodes);
264
+ graph.edges = new Map(mutable.edges);
265
+ graph.adjacency = mutable.adjacency;
266
+ graph.reverseAdjacency = mutable.reverseAdjacency;
267
+ graph.nextNodeIndex = mutable.nextNodeIndex;
268
+ graph.nextEdgeIndex = mutable.nextEdgeIndex;
269
+ graph.isAcyclic = mutable.isAcyclic;
270
+ graph.mutable = false;
271
+ return graph;
272
+ };
273
+ /**
274
+ * Performs scoped mutations on a graph, automatically managing the mutation lifecycle.
275
+ *
276
+ * @example
277
+ * ```ts
278
+ * import { Graph } from "effect"
279
+ *
280
+ * const graph = Graph.directed<string, number>()
281
+ * const newGraph = Graph.mutate(graph, (mutable) => {
282
+ * // Safe mutations go here
283
+ * // mutable gets automatically converted back to immutable
284
+ * })
285
+ * ```
286
+ *
287
+ * @since 3.18.0
288
+ * @category mutations
289
+ */
290
+ exports.endMutation = endMutation;
291
+ const mutate = exports.mutate = /*#__PURE__*/(0, _Function.dual)(2, (graph, f) => {
292
+ const mutable = beginMutation(graph);
293
+ f(mutable);
294
+ return endMutation(mutable);
295
+ });
296
+ // =============================================================================
297
+ // Basic Node Operations
298
+ // =============================================================================
299
+ /**
300
+ * Adds a new node to a mutable graph and returns its index.
301
+ *
302
+ * @example
303
+ * ```ts
304
+ * import { Graph } from "effect"
305
+ *
306
+ * const result = Graph.mutate(Graph.directed<string, number>(), (mutable) => {
307
+ * const nodeA = Graph.addNode(mutable, "Node A")
308
+ * const nodeB = Graph.addNode(mutable, "Node B")
309
+ * console.log(nodeA) // NodeIndex with value 0
310
+ * console.log(nodeB) // NodeIndex with value 1
311
+ * })
312
+ * ```
313
+ *
314
+ * @since 3.18.0
315
+ * @category mutations
316
+ */
317
+ const addNode = (mutable, data) => {
318
+ const nodeIndex = mutable.nextNodeIndex;
319
+ // Add node data
320
+ mutable.nodes.set(nodeIndex, data);
321
+ // Initialize empty adjacency lists
322
+ mutable.adjacency.set(nodeIndex, []);
323
+ mutable.reverseAdjacency.set(nodeIndex, []);
324
+ // Update graph allocators
325
+ mutable.nextNodeIndex = mutable.nextNodeIndex + 1;
326
+ return nodeIndex;
327
+ };
328
+ /**
329
+ * Gets the data associated with a node index, if it exists.
330
+ *
331
+ * @example
332
+ * ```ts
333
+ * import { Graph, Option } from "effect"
334
+ *
335
+ * const graph = Graph.mutate(Graph.directed<string, number>(), (mutable) => {
336
+ * Graph.addNode(mutable, "Node A")
337
+ * })
338
+ *
339
+ * const nodeIndex = 0
340
+ * const nodeData = Graph.getNode(graph, nodeIndex)
341
+ *
342
+ * if (Option.isSome(nodeData)) {
343
+ * console.log(nodeData.value) // "Node A"
344
+ * }
345
+ * ```
346
+ *
347
+ * @since 3.18.0
348
+ * @category getters
349
+ */
350
+ exports.addNode = addNode;
351
+ const getNode = (graph, nodeIndex) => graph.nodes.has(nodeIndex) ? Option.some(graph.nodes.get(nodeIndex)) : Option.none();
352
+ /**
353
+ * Checks if a node with the given index exists in the graph.
354
+ *
355
+ * @example
356
+ * ```ts
357
+ * import { Graph } from "effect"
358
+ *
359
+ * const graph = Graph.mutate(Graph.directed<string, number>(), (mutable) => {
360
+ * Graph.addNode(mutable, "Node A")
361
+ * })
362
+ *
363
+ * const nodeIndex = 0
364
+ * const exists = Graph.hasNode(graph, nodeIndex)
365
+ * console.log(exists) // true
366
+ *
367
+ * const nonExistentIndex = 999
368
+ * const notExists = Graph.hasNode(graph, nonExistentIndex)
369
+ * console.log(notExists) // false
370
+ * ```
371
+ *
372
+ * @since 3.18.0
373
+ * @category getters
374
+ */
375
+ exports.getNode = getNode;
376
+ const hasNode = (graph, nodeIndex) => graph.nodes.has(nodeIndex);
377
+ /**
378
+ * Returns the number of nodes in the graph.
379
+ *
380
+ * @example
381
+ * ```ts
382
+ * import { Graph } from "effect"
383
+ *
384
+ * const emptyGraph = Graph.directed<string, number>()
385
+ * console.log(Graph.nodeCount(emptyGraph)) // 0
386
+ *
387
+ * const graphWithNodes = Graph.mutate(emptyGraph, (mutable) => {
388
+ * Graph.addNode(mutable, "Node A")
389
+ * Graph.addNode(mutable, "Node B")
390
+ * Graph.addNode(mutable, "Node C")
391
+ * })
392
+ *
393
+ * console.log(Graph.nodeCount(graphWithNodes)) // 3
394
+ * ```
395
+ *
396
+ * @since 3.18.0
397
+ * @category getters
398
+ */
399
+ exports.hasNode = hasNode;
400
+ const nodeCount = graph => graph.nodes.size;
401
+ /**
402
+ * Finds the first node that matches the given predicate.
403
+ *
404
+ * @example
405
+ * ```ts
406
+ * import { Graph, Option } from "effect"
407
+ *
408
+ * const graph = Graph.mutate(Graph.directed<string, number>(), (mutable) => {
409
+ * Graph.addNode(mutable, "Node A")
410
+ * Graph.addNode(mutable, "Node B")
411
+ * Graph.addNode(mutable, "Node C")
412
+ * })
413
+ *
414
+ * const result = Graph.findNode(graph, (data) => data.startsWith("Node B"))
415
+ * console.log(result) // Option.some(1)
416
+ *
417
+ * const notFound = Graph.findNode(graph, (data) => data === "Node D")
418
+ * console.log(notFound) // Option.none()
419
+ * ```
420
+ *
421
+ * @since 3.18.0
422
+ * @category getters
423
+ */
424
+ exports.nodeCount = nodeCount;
425
+ const findNode = (graph, predicate) => {
426
+ for (const [index, data] of graph.nodes) {
427
+ if (predicate(data)) {
428
+ return Option.some(index);
429
+ }
430
+ }
431
+ return Option.none();
432
+ };
433
+ /**
434
+ * Finds all nodes that match the given predicate.
435
+ *
436
+ * @example
437
+ * ```ts
438
+ * import { Graph } from "effect"
439
+ *
440
+ * const graph = Graph.mutate(Graph.directed<string, number>(), (mutable) => {
441
+ * Graph.addNode(mutable, "Start A")
442
+ * Graph.addNode(mutable, "Node B")
443
+ * Graph.addNode(mutable, "Start C")
444
+ * })
445
+ *
446
+ * const result = Graph.findNodes(graph, (data) => data.startsWith("Start"))
447
+ * console.log(result) // [0, 2]
448
+ *
449
+ * const empty = Graph.findNodes(graph, (data) => data === "Not Found")
450
+ * console.log(empty) // []
451
+ * ```
452
+ *
453
+ * @since 3.18.0
454
+ * @category getters
455
+ */
456
+ exports.findNode = findNode;
457
+ const findNodes = (graph, predicate) => {
458
+ const results = [];
459
+ for (const [index, data] of graph.nodes) {
460
+ if (predicate(data)) {
461
+ results.push(index);
462
+ }
463
+ }
464
+ return results;
465
+ };
466
+ /**
467
+ * Finds the first edge that matches the given predicate.
468
+ *
469
+ * @example
470
+ * ```ts
471
+ * import { Graph, Option } from "effect"
472
+ *
473
+ * const graph = Graph.mutate(Graph.directed<string, number>(), (mutable) => {
474
+ * const nodeA = Graph.addNode(mutable, "Node A")
475
+ * const nodeB = Graph.addNode(mutable, "Node B")
476
+ * const nodeC = Graph.addNode(mutable, "Node C")
477
+ * Graph.addEdge(mutable, nodeA, nodeB, 10)
478
+ * Graph.addEdge(mutable, nodeB, nodeC, 20)
479
+ * })
480
+ *
481
+ * const result = Graph.findEdge(graph, (data) => data > 15)
482
+ * console.log(result) // Option.some(1)
483
+ *
484
+ * const notFound = Graph.findEdge(graph, (data) => data > 100)
485
+ * console.log(notFound) // Option.none()
486
+ * ```
487
+ *
488
+ * @since 3.18.0
489
+ * @category getters
490
+ */
491
+ exports.findNodes = findNodes;
492
+ const findEdge = (graph, predicate) => {
493
+ for (const [edgeIndex, edgeData] of graph.edges) {
494
+ if (predicate(edgeData.data, edgeData.source, edgeData.target)) {
495
+ return Option.some(edgeIndex);
496
+ }
497
+ }
498
+ return Option.none();
499
+ };
500
+ /**
501
+ * Finds all edges that match the given predicate.
502
+ *
503
+ * @example
504
+ * ```ts
505
+ * import { Graph } from "effect"
506
+ *
507
+ * const graph = Graph.mutate(Graph.directed<string, number>(), (mutable) => {
508
+ * const nodeA = Graph.addNode(mutable, "Node A")
509
+ * const nodeB = Graph.addNode(mutable, "Node B")
510
+ * const nodeC = Graph.addNode(mutable, "Node C")
511
+ * Graph.addEdge(mutable, nodeA, nodeB, 10)
512
+ * Graph.addEdge(mutable, nodeB, nodeC, 20)
513
+ * Graph.addEdge(mutable, nodeC, nodeA, 30)
514
+ * })
515
+ *
516
+ * const result = Graph.findEdges(graph, (data) => data >= 20)
517
+ * console.log(result) // [1, 2]
518
+ *
519
+ * const empty = Graph.findEdges(graph, (data) => data > 100)
520
+ * console.log(empty) // []
521
+ * ```
522
+ *
523
+ * @since 3.18.0
524
+ * @category getters
525
+ */
526
+ exports.findEdge = findEdge;
527
+ const findEdges = (graph, predicate) => {
528
+ const results = [];
529
+ for (const [edgeIndex, edgeData] of graph.edges) {
530
+ if (predicate(edgeData.data, edgeData.source, edgeData.target)) {
531
+ results.push(edgeIndex);
532
+ }
533
+ }
534
+ return results;
535
+ };
536
+ /**
537
+ * Updates a single node's data by applying a transformation function.
538
+ *
539
+ * @example
540
+ * ```ts
541
+ * import { Graph } from "effect"
542
+ *
543
+ * const graph = Graph.directed<string, number>((mutable) => {
544
+ * Graph.addNode(mutable, "Node A")
545
+ * Graph.addNode(mutable, "Node B")
546
+ * Graph.updateNode(mutable, 0, (data) => data.toUpperCase())
547
+ * })
548
+ *
549
+ * const nodeData = Graph.getNode(graph, 0)
550
+ * console.log(nodeData) // Option.some("NODE A")
551
+ * ```
552
+ *
553
+ * @since 3.18.0
554
+ * @category transformations
555
+ */
556
+ exports.findEdges = findEdges;
557
+ const updateNode = (mutable, index, f) => {
558
+ if (!mutable.nodes.has(index)) {
559
+ return;
560
+ }
561
+ const currentData = mutable.nodes.get(index);
562
+ const newData = f(currentData);
563
+ mutable.nodes.set(index, newData);
564
+ };
565
+ /**
566
+ * Updates a single edge's data by applying a transformation function.
567
+ *
568
+ * @example
569
+ * ```ts
570
+ * import { Graph } from "effect"
571
+ *
572
+ * const result = Graph.mutate(Graph.directed<string, number>(), (mutable) => {
573
+ * const nodeA = Graph.addNode(mutable, "Node A")
574
+ * const nodeB = Graph.addNode(mutable, "Node B")
575
+ * const edgeIndex = Graph.addEdge(mutable, nodeA, nodeB, 10)
576
+ * Graph.updateEdge(mutable, edgeIndex, (data) => data * 2)
577
+ * })
578
+ *
579
+ * const edgeData = Graph.getEdge(result, 0)
580
+ * console.log(edgeData) // Option.some({ source: 0, target: 1, data: 20 })
581
+ * ```
582
+ *
583
+ * @since 3.18.0
584
+ * @category mutations
585
+ */
586
+ exports.updateNode = updateNode;
587
+ const updateEdge = (mutable, edgeIndex, f) => {
588
+ if (!mutable.edges.has(edgeIndex)) {
589
+ return;
590
+ }
591
+ const currentEdge = mutable.edges.get(edgeIndex);
592
+ const newData = f(currentEdge.data);
593
+ mutable.edges.set(edgeIndex, {
594
+ ...currentEdge,
595
+ data: newData
596
+ });
597
+ };
598
+ /**
599
+ * Creates a new graph with transformed node data using the provided mapping function.
600
+ *
601
+ * @example
602
+ * ```ts
603
+ * import { Graph } from "effect"
604
+ *
605
+ * const graph = Graph.directed<string, number>((mutable) => {
606
+ * Graph.addNode(mutable, "node a")
607
+ * Graph.addNode(mutable, "node b")
608
+ * Graph.addNode(mutable, "node c")
609
+ * Graph.mapNodes(mutable, (data) => data.toUpperCase())
610
+ * })
611
+ *
612
+ * const nodeData = Graph.getNode(graph, 0)
613
+ * console.log(nodeData) // Option.some("NODE A")
614
+ * ```
615
+ *
616
+ * @since 3.18.0
617
+ * @category transformations
618
+ */
619
+ exports.updateEdge = updateEdge;
620
+ const mapNodes = (mutable, f) => {
621
+ // Transform existing node data in place
622
+ for (const [index, data] of mutable.nodes) {
623
+ const newData = f(data);
624
+ mutable.nodes.set(index, newData);
625
+ }
626
+ };
627
+ /**
628
+ * Transforms all edge data in a mutable graph using the provided mapping function.
629
+ *
630
+ * @example
631
+ * ```ts
632
+ * import { Graph } from "effect"
633
+ *
634
+ * const graph = Graph.directed<string, number>((mutable) => {
635
+ * const a = Graph.addNode(mutable, "A")
636
+ * const b = Graph.addNode(mutable, "B")
637
+ * const c = Graph.addNode(mutable, "C")
638
+ * Graph.addEdge(mutable, a, b, 10)
639
+ * Graph.addEdge(mutable, b, c, 20)
640
+ * Graph.mapEdges(mutable, (data) => data * 2)
641
+ * })
642
+ *
643
+ * const edgeData = Graph.getEdge(graph, 0)
644
+ * console.log(edgeData) // Option.some({ source: 0, target: 1, data: 20 })
645
+ * ```
646
+ *
647
+ * @since 3.18.0
648
+ * @category transformations
649
+ */
650
+ exports.mapNodes = mapNodes;
651
+ const mapEdges = (mutable, f) => {
652
+ // Transform existing edge data in place
653
+ for (const [index, edgeData] of mutable.edges) {
654
+ const newData = f(edgeData.data);
655
+ mutable.edges.set(index, {
656
+ ...edgeData,
657
+ data: newData
658
+ });
659
+ }
660
+ };
661
+ /**
662
+ * Reverses all edge directions in a mutable graph by swapping source and target nodes.
663
+ *
664
+ * @example
665
+ * ```ts
666
+ * import { Graph } from "effect"
667
+ *
668
+ * const graph = Graph.directed<string, number>((mutable) => {
669
+ * const a = Graph.addNode(mutable, "A")
670
+ * const b = Graph.addNode(mutable, "B")
671
+ * const c = Graph.addNode(mutable, "C")
672
+ * Graph.addEdge(mutable, a, b, 1) // A -> B
673
+ * Graph.addEdge(mutable, b, c, 2) // B -> C
674
+ * Graph.reverse(mutable) // Now B -> A, C -> B
675
+ * })
676
+ *
677
+ * const edge0 = Graph.getEdge(graph, 0)
678
+ * console.log(edge0) // Option.some({ source: 1, target: 0, data: 1 }) - B -> A
679
+ * ```
680
+ *
681
+ * @since 3.18.0
682
+ * @category transformations
683
+ */
684
+ exports.mapEdges = mapEdges;
685
+ const reverse = mutable => {
686
+ // Reverse all edges by swapping source and target
687
+ for (const [index, edgeData] of mutable.edges) {
688
+ mutable.edges.set(index, {
689
+ source: edgeData.target,
690
+ target: edgeData.source,
691
+ data: edgeData.data
692
+ });
693
+ }
694
+ // Clear and rebuild adjacency lists with reversed directions
695
+ mutable.adjacency.clear();
696
+ mutable.reverseAdjacency.clear();
697
+ // Rebuild adjacency lists with reversed directions
698
+ for (const [edgeIndex, edgeData] of mutable.edges) {
699
+ // Add to forward adjacency (source -> target)
700
+ const sourceEdges = mutable.adjacency.get(edgeData.source) || [];
701
+ sourceEdges.push(edgeIndex);
702
+ mutable.adjacency.set(edgeData.source, sourceEdges);
703
+ // Add to reverse adjacency (target <- source)
704
+ const targetEdges = mutable.reverseAdjacency.get(edgeData.target) || [];
705
+ targetEdges.push(edgeIndex);
706
+ mutable.reverseAdjacency.set(edgeData.target, targetEdges);
707
+ }
708
+ // Invalidate cycle flag since edge directions changed
709
+ mutable.isAcyclic = Option.none();
710
+ };
711
+ /**
712
+ * Filters and optionally transforms nodes in a mutable graph using a predicate function.
713
+ * Nodes that return Option.none are removed along with all their connected edges.
714
+ *
715
+ * @example
716
+ * ```ts
717
+ * import { Graph, Option } from "effect"
718
+ *
719
+ * const graph = Graph.directed<string, number>((mutable) => {
720
+ * const a = Graph.addNode(mutable, "active")
721
+ * const b = Graph.addNode(mutable, "inactive")
722
+ * const c = Graph.addNode(mutable, "active")
723
+ * Graph.addEdge(mutable, a, b, 1)
724
+ * Graph.addEdge(mutable, b, c, 2)
725
+ *
726
+ * // Keep only "active" nodes and transform to uppercase
727
+ * Graph.filterMapNodes(mutable, (data) =>
728
+ * data === "active" ? Option.some(data.toUpperCase()) : Option.none()
729
+ * )
730
+ * })
731
+ *
732
+ * console.log(Graph.nodeCount(graph)) // 2 (only "active" nodes remain)
733
+ * ```
734
+ *
735
+ * @since 3.18.0
736
+ * @category transformations
737
+ */
738
+ exports.reverse = reverse;
739
+ const filterMapNodes = (mutable, f) => {
740
+ const nodesToRemove = [];
741
+ // First pass: identify nodes to remove and transform data for nodes to keep
742
+ for (const [index, data] of mutable.nodes) {
743
+ const result = f(data);
744
+ if (Option.isSome(result)) {
745
+ // Transform node data
746
+ mutable.nodes.set(index, result.value);
747
+ } else {
748
+ // Mark for removal
749
+ nodesToRemove.push(index);
750
+ }
751
+ }
752
+ // Second pass: remove filtered out nodes and their edges
753
+ for (const nodeIndex of nodesToRemove) {
754
+ removeNode(mutable, nodeIndex);
755
+ }
756
+ };
757
+ /**
758
+ * Filters and optionally transforms edges in a mutable graph using a predicate function.
759
+ * Edges that return Option.none are removed from the graph.
760
+ *
761
+ * @example
762
+ * ```ts
763
+ * import { Graph, Option } from "effect"
764
+ *
765
+ * const graph = Graph.directed<string, number>((mutable) => {
766
+ * const a = Graph.addNode(mutable, "A")
767
+ * const b = Graph.addNode(mutable, "B")
768
+ * const c = Graph.addNode(mutable, "C")
769
+ * Graph.addEdge(mutable, a, b, 5)
770
+ * Graph.addEdge(mutable, b, c, 15)
771
+ * Graph.addEdge(mutable, c, a, 25)
772
+ *
773
+ * // Keep only edges with weight >= 10 and double their weight
774
+ * Graph.filterMapEdges(mutable, (data) =>
775
+ * data >= 10 ? Option.some(data * 2) : Option.none()
776
+ * )
777
+ * })
778
+ *
779
+ * console.log(Graph.edgeCount(graph)) // 2 (edges with weight 5 removed)
780
+ * ```
781
+ *
782
+ * @since 3.18.0
783
+ * @category transformations
784
+ */
785
+ exports.filterMapNodes = filterMapNodes;
786
+ const filterMapEdges = (mutable, f) => {
787
+ const edgesToRemove = [];
788
+ // First pass: identify edges to remove and transform data for edges to keep
789
+ for (const [index, edgeData] of mutable.edges) {
790
+ const result = f(edgeData.data);
791
+ if (Option.isSome(result)) {
792
+ // Transform edge data
793
+ mutable.edges.set(index, {
794
+ ...edgeData,
795
+ data: result.value
796
+ });
797
+ } else {
798
+ // Mark for removal
799
+ edgesToRemove.push(index);
800
+ }
801
+ }
802
+ // Second pass: remove filtered out edges
803
+ for (const edgeIndex of edgesToRemove) {
804
+ removeEdge(mutable, edgeIndex);
805
+ }
806
+ };
807
+ /**
808
+ * Filters nodes by removing those that don't match the predicate.
809
+ * This function modifies the mutable graph in place.
810
+ *
811
+ * @example
812
+ * ```ts
813
+ * import { Graph } from "effect"
814
+ *
815
+ * const graph = Graph.directed<string, number>((mutable) => {
816
+ * Graph.addNode(mutable, "active")
817
+ * Graph.addNode(mutable, "inactive")
818
+ * Graph.addNode(mutable, "pending")
819
+ * Graph.addNode(mutable, "active")
820
+ *
821
+ * // Keep only "active" nodes
822
+ * Graph.filterNodes(mutable, (data) => data === "active")
823
+ * })
824
+ *
825
+ * console.log(Graph.nodeCount(graph)) // 2 (only "active" nodes remain)
826
+ * ```
827
+ *
828
+ * @since 3.18.0
829
+ * @category transformations
830
+ */
831
+ exports.filterMapEdges = filterMapEdges;
832
+ const filterNodes = (mutable, predicate) => {
833
+ const nodesToRemove = [];
834
+ // Identify nodes to remove
835
+ for (const [index, data] of mutable.nodes) {
836
+ if (!predicate(data)) {
837
+ nodesToRemove.push(index);
838
+ }
839
+ }
840
+ // Remove filtered out nodes (this also removes connected edges)
841
+ for (const nodeIndex of nodesToRemove) {
842
+ removeNode(mutable, nodeIndex);
843
+ }
844
+ };
845
+ /**
846
+ * Filters edges by removing those that don't match the predicate.
847
+ * This function modifies the mutable graph in place.
848
+ *
849
+ * @example
850
+ * ```ts
851
+ * import { Graph } from "effect"
852
+ *
853
+ * const graph = Graph.directed<string, number>((mutable) => {
854
+ * const a = Graph.addNode(mutable, "A")
855
+ * const b = Graph.addNode(mutable, "B")
856
+ * const c = Graph.addNode(mutable, "C")
857
+ *
858
+ * Graph.addEdge(mutable, a, b, 5)
859
+ * Graph.addEdge(mutable, b, c, 15)
860
+ * Graph.addEdge(mutable, c, a, 25)
861
+ *
862
+ * // Keep only edges with weight >= 10
863
+ * Graph.filterEdges(mutable, (data) => data >= 10)
864
+ * })
865
+ *
866
+ * console.log(Graph.edgeCount(graph)) // 2 (edge with weight 5 removed)
867
+ * ```
868
+ *
869
+ * @since 3.18.0
870
+ * @category transformations
871
+ */
872
+ exports.filterNodes = filterNodes;
873
+ const filterEdges = (mutable, predicate) => {
874
+ const edgesToRemove = [];
875
+ // Identify edges to remove
876
+ for (const [index, edgeData] of mutable.edges) {
877
+ if (!predicate(edgeData.data)) {
878
+ edgesToRemove.push(index);
879
+ }
880
+ }
881
+ // Remove filtered out edges
882
+ for (const edgeIndex of edgesToRemove) {
883
+ removeEdge(mutable, edgeIndex);
884
+ }
885
+ };
886
+ // =============================================================================
887
+ // Cycle Flag Management (Internal)
888
+ // =============================================================================
889
+ /** @internal */
890
+ exports.filterEdges = filterEdges;
891
+ const invalidateCycleFlagOnRemoval = mutable => {
892
+ // Only invalidate if the graph had cycles (removing edges/nodes cannot introduce cycles in acyclic graphs)
893
+ // If already unknown (null) or acyclic (true), no need to change
894
+ if (Option.isSome(mutable.isAcyclic) && mutable.isAcyclic.value === false) {
895
+ mutable.isAcyclic = Option.none();
896
+ }
897
+ };
898
+ /** @internal */
899
+ const invalidateCycleFlagOnAddition = mutable => {
900
+ // Only invalidate if the graph was acyclic (adding edges cannot remove cycles from cyclic graphs)
901
+ // If already unknown (null) or cyclic (false), no need to change
902
+ if (Option.isSome(mutable.isAcyclic) && mutable.isAcyclic.value === true) {
903
+ mutable.isAcyclic = Option.none();
904
+ }
905
+ };
906
+ // =============================================================================
907
+ // Edge Operations
908
+ // =============================================================================
909
+ /**
910
+ * Adds a new edge to a mutable graph and returns its index.
911
+ *
912
+ * @example
913
+ * ```ts
914
+ * import { Graph } from "effect"
915
+ *
916
+ * const result = Graph.mutate(Graph.directed<string, number>(), (mutable) => {
917
+ * const nodeA = Graph.addNode(mutable, "Node A")
918
+ * const nodeB = Graph.addNode(mutable, "Node B")
919
+ * const edge = Graph.addEdge(mutable, nodeA, nodeB, 42)
920
+ * console.log(edge) // EdgeIndex with value 0
921
+ * })
922
+ * ```
923
+ *
924
+ * @since 3.18.0
925
+ * @category mutations
926
+ */
927
+ const addEdge = (mutable, source, target, data) => {
928
+ // Validate that both nodes exist
929
+ if (!mutable.nodes.has(source)) {
930
+ throw missingNode(source);
931
+ }
932
+ if (!mutable.nodes.has(target)) {
933
+ throw missingNode(target);
934
+ }
935
+ const edgeIndex = mutable.nextEdgeIndex;
936
+ // Create edge data
937
+ const edgeData = new Edge({
938
+ source,
939
+ target,
940
+ data
941
+ });
942
+ mutable.edges.set(edgeIndex, edgeData);
943
+ // Update adjacency lists
944
+ const sourceAdjacency = mutable.adjacency.get(source);
945
+ if (sourceAdjacency !== undefined) {
946
+ sourceAdjacency.push(edgeIndex);
947
+ }
948
+ const targetReverseAdjacency = mutable.reverseAdjacency.get(target);
949
+ if (targetReverseAdjacency !== undefined) {
950
+ targetReverseAdjacency.push(edgeIndex);
951
+ }
952
+ // For undirected graphs, add reverse connections
953
+ if (mutable.type === "undirected") {
954
+ const targetAdjacency = mutable.adjacency.get(target);
955
+ if (targetAdjacency !== undefined) {
956
+ targetAdjacency.push(edgeIndex);
957
+ }
958
+ const sourceReverseAdjacency = mutable.reverseAdjacency.get(source);
959
+ if (sourceReverseAdjacency !== undefined) {
960
+ sourceReverseAdjacency.push(edgeIndex);
961
+ }
962
+ }
963
+ // Update allocators
964
+ mutable.nextEdgeIndex = mutable.nextEdgeIndex + 1;
965
+ // Only invalidate cycle flag if the graph was acyclic
966
+ // Adding edges cannot remove cycles from cyclic graphs
967
+ invalidateCycleFlagOnAddition(mutable);
968
+ return edgeIndex;
969
+ };
970
+ /**
971
+ * Removes a node and all its incident edges from a mutable graph.
972
+ *
973
+ * @example
974
+ * ```ts
975
+ * import { Graph } from "effect"
976
+ *
977
+ * const result = Graph.mutate(Graph.directed<string, number>(), (mutable) => {
978
+ * const nodeA = Graph.addNode(mutable, "Node A")
979
+ * const nodeB = Graph.addNode(mutable, "Node B")
980
+ * Graph.addEdge(mutable, nodeA, nodeB, 42)
981
+ *
982
+ * // Remove nodeA and all edges connected to it
983
+ * Graph.removeNode(mutable, nodeA)
984
+ * })
985
+ * ```
986
+ *
987
+ * @since 3.18.0
988
+ * @category mutations
989
+ */
990
+ exports.addEdge = addEdge;
991
+ const removeNode = (mutable, nodeIndex) => {
992
+ // Check if node exists
993
+ if (!mutable.nodes.has(nodeIndex)) {
994
+ return; // Node doesn't exist, nothing to remove
995
+ }
996
+ // Collect all incident edges for removal
997
+ const edgesToRemove = [];
998
+ // Get outgoing edges
999
+ const outgoingEdges = mutable.adjacency.get(nodeIndex);
1000
+ if (outgoingEdges !== undefined) {
1001
+ for (const edge of outgoingEdges) {
1002
+ edgesToRemove.push(edge);
1003
+ }
1004
+ }
1005
+ // Get incoming edges
1006
+ const incomingEdges = mutable.reverseAdjacency.get(nodeIndex);
1007
+ if (incomingEdges !== undefined) {
1008
+ for (const edge of incomingEdges) {
1009
+ edgesToRemove.push(edge);
1010
+ }
1011
+ }
1012
+ // Remove all incident edges
1013
+ for (const edgeIndex of edgesToRemove) {
1014
+ removeEdgeInternal(mutable, edgeIndex);
1015
+ }
1016
+ // Remove the node itself
1017
+ mutable.nodes.delete(nodeIndex);
1018
+ mutable.adjacency.delete(nodeIndex);
1019
+ mutable.reverseAdjacency.delete(nodeIndex);
1020
+ // Only invalidate cycle flag if the graph wasn't already known to be acyclic
1021
+ // Removing nodes cannot introduce cycles in an acyclic graph
1022
+ invalidateCycleFlagOnRemoval(mutable);
1023
+ };
1024
+ /**
1025
+ * Removes an edge from a mutable graph.
1026
+ *
1027
+ * @example
1028
+ * ```ts
1029
+ * import { Graph } from "effect"
1030
+ *
1031
+ * const result = Graph.mutate(Graph.directed<string, number>(), (mutable) => {
1032
+ * const nodeA = Graph.addNode(mutable, "Node A")
1033
+ * const nodeB = Graph.addNode(mutable, "Node B")
1034
+ * const edge = Graph.addEdge(mutable, nodeA, nodeB, 42)
1035
+ *
1036
+ * // Remove the edge
1037
+ * Graph.removeEdge(mutable, edge)
1038
+ * })
1039
+ * ```
1040
+ *
1041
+ * @since 3.18.0
1042
+ * @category mutations
1043
+ */
1044
+ exports.removeNode = removeNode;
1045
+ const removeEdge = (mutable, edgeIndex) => {
1046
+ const wasRemoved = removeEdgeInternal(mutable, edgeIndex);
1047
+ // Only invalidate cycle flag if an edge was actually removed
1048
+ // and only if the graph wasn't already known to be acyclic
1049
+ if (wasRemoved) {
1050
+ invalidateCycleFlagOnRemoval(mutable);
1051
+ }
1052
+ };
1053
+ /** @internal */
1054
+ exports.removeEdge = removeEdge;
1055
+ const removeEdgeInternal = (mutable, edgeIndex) => {
1056
+ // Get edge data
1057
+ const edge = mutable.edges.get(edgeIndex);
1058
+ if (edge === undefined) {
1059
+ return false; // Edge doesn't exist, no mutation occurred
1060
+ }
1061
+ const {
1062
+ source,
1063
+ target
1064
+ } = edge;
1065
+ // Remove from adjacency lists
1066
+ const sourceAdjacency = mutable.adjacency.get(source);
1067
+ if (sourceAdjacency !== undefined) {
1068
+ const index = sourceAdjacency.indexOf(edgeIndex);
1069
+ if (index !== -1) {
1070
+ sourceAdjacency.splice(index, 1);
1071
+ }
1072
+ }
1073
+ const targetReverseAdjacency = mutable.reverseAdjacency.get(target);
1074
+ if (targetReverseAdjacency !== undefined) {
1075
+ const index = targetReverseAdjacency.indexOf(edgeIndex);
1076
+ if (index !== -1) {
1077
+ targetReverseAdjacency.splice(index, 1);
1078
+ }
1079
+ }
1080
+ // For undirected graphs, remove reverse connections
1081
+ if (mutable.type === "undirected") {
1082
+ const targetAdjacency = mutable.adjacency.get(target);
1083
+ if (targetAdjacency !== undefined) {
1084
+ const index = targetAdjacency.indexOf(edgeIndex);
1085
+ if (index !== -1) {
1086
+ targetAdjacency.splice(index, 1);
1087
+ }
1088
+ }
1089
+ const sourceReverseAdjacency = mutable.reverseAdjacency.get(source);
1090
+ if (sourceReverseAdjacency !== undefined) {
1091
+ const index = sourceReverseAdjacency.indexOf(edgeIndex);
1092
+ if (index !== -1) {
1093
+ sourceReverseAdjacency.splice(index, 1);
1094
+ }
1095
+ }
1096
+ }
1097
+ // Remove edge data
1098
+ mutable.edges.delete(edgeIndex);
1099
+ return true; // Edge was successfully removed
1100
+ };
1101
+ // =============================================================================
1102
+ // Edge Query Operations
1103
+ // =============================================================================
1104
+ /**
1105
+ * Gets the edge data associated with an edge index, if it exists.
1106
+ *
1107
+ * @example
1108
+ * ```ts
1109
+ * import { Graph, Option } from "effect"
1110
+ *
1111
+ * const graph = Graph.mutate(Graph.directed<string, number>(), (mutable) => {
1112
+ * const nodeA = Graph.addNode(mutable, "Node A")
1113
+ * const nodeB = Graph.addNode(mutable, "Node B")
1114
+ * Graph.addEdge(mutable, nodeA, nodeB, 42)
1115
+ * })
1116
+ *
1117
+ * const edgeIndex = 0
1118
+ * const edgeData = Graph.getEdge(graph, edgeIndex)
1119
+ *
1120
+ * if (Option.isSome(edgeData)) {
1121
+ * console.log(edgeData.value.data) // 42
1122
+ * console.log(edgeData.value.source) // NodeIndex(0)
1123
+ * console.log(edgeData.value.target) // NodeIndex(1)
1124
+ * }
1125
+ * ```
1126
+ *
1127
+ * @since 3.18.0
1128
+ * @category getters
1129
+ */
1130
+ const getEdge = (graph, edgeIndex) => graph.edges.has(edgeIndex) ? Option.some(graph.edges.get(edgeIndex)) : Option.none();
1131
+ /**
1132
+ * Checks if an edge exists between two nodes in the graph.
1133
+ *
1134
+ * @example
1135
+ * ```ts
1136
+ * import { Graph } from "effect"
1137
+ *
1138
+ * const graph = Graph.mutate(Graph.directed<string, number>(), (mutable) => {
1139
+ * const nodeA = Graph.addNode(mutable, "Node A")
1140
+ * const nodeB = Graph.addNode(mutable, "Node B")
1141
+ * const nodeC = Graph.addNode(mutable, "Node C")
1142
+ * Graph.addEdge(mutable, nodeA, nodeB, 42)
1143
+ * })
1144
+ *
1145
+ * const nodeA = 0
1146
+ * const nodeB = 1
1147
+ * const nodeC = 2
1148
+ *
1149
+ * const hasAB = Graph.hasEdge(graph, nodeA, nodeB)
1150
+ * console.log(hasAB) // true
1151
+ *
1152
+ * const hasAC = Graph.hasEdge(graph, nodeA, nodeC)
1153
+ * console.log(hasAC) // false
1154
+ * ```
1155
+ *
1156
+ * @since 3.18.0
1157
+ * @category getters
1158
+ */
1159
+ exports.getEdge = getEdge;
1160
+ const hasEdge = (graph, source, target) => {
1161
+ const adjacencyList = graph.adjacency.get(source);
1162
+ if (adjacencyList === undefined) {
1163
+ return false;
1164
+ }
1165
+ // Check if any edge in the adjacency list connects to the target
1166
+ for (const edgeIndex of adjacencyList) {
1167
+ const edge = graph.edges.get(edgeIndex);
1168
+ if (edge !== undefined && edge.target === target) {
1169
+ return true;
1170
+ }
1171
+ }
1172
+ return false;
1173
+ };
1174
+ /**
1175
+ * Returns the number of edges in the graph.
1176
+ *
1177
+ * @example
1178
+ * ```ts
1179
+ * import { Graph } from "effect"
1180
+ *
1181
+ * const emptyGraph = Graph.directed<string, number>()
1182
+ * console.log(Graph.edgeCount(emptyGraph)) // 0
1183
+ *
1184
+ * const graphWithEdges = Graph.mutate(emptyGraph, (mutable) => {
1185
+ * const nodeA = Graph.addNode(mutable, "Node A")
1186
+ * const nodeB = Graph.addNode(mutable, "Node B")
1187
+ * const nodeC = Graph.addNode(mutable, "Node C")
1188
+ * Graph.addEdge(mutable, nodeA, nodeB, 1)
1189
+ * Graph.addEdge(mutable, nodeB, nodeC, 2)
1190
+ * Graph.addEdge(mutable, nodeC, nodeA, 3)
1191
+ * })
1192
+ *
1193
+ * console.log(Graph.edgeCount(graphWithEdges)) // 3
1194
+ * ```
1195
+ *
1196
+ * @since 3.18.0
1197
+ * @category getters
1198
+ */
1199
+ exports.hasEdge = hasEdge;
1200
+ const edgeCount = graph => graph.edges.size;
1201
+ /**
1202
+ * Returns the neighboring nodes (targets of outgoing edges) for a given node.
1203
+ *
1204
+ * @example
1205
+ * ```ts
1206
+ * import { Graph } from "effect"
1207
+ *
1208
+ * const graph = Graph.mutate(Graph.directed<string, number>(), (mutable) => {
1209
+ * const nodeA = Graph.addNode(mutable, "Node A")
1210
+ * const nodeB = Graph.addNode(mutable, "Node B")
1211
+ * const nodeC = Graph.addNode(mutable, "Node C")
1212
+ * Graph.addEdge(mutable, nodeA, nodeB, 1)
1213
+ * Graph.addEdge(mutable, nodeA, nodeC, 2)
1214
+ * })
1215
+ *
1216
+ * const nodeA = 0
1217
+ * const nodeB = 1
1218
+ * const nodeC = 2
1219
+ *
1220
+ * const neighborsA = Graph.neighbors(graph, nodeA)
1221
+ * console.log(neighborsA) // [NodeIndex(1), NodeIndex(2)]
1222
+ *
1223
+ * const neighborsB = Graph.neighbors(graph, nodeB)
1224
+ * console.log(neighborsB) // []
1225
+ * ```
1226
+ *
1227
+ * @since 3.18.0
1228
+ * @category getters
1229
+ */
1230
+ exports.edgeCount = edgeCount;
1231
+ const neighbors = (graph, nodeIndex) => {
1232
+ // For undirected graphs, use the specialized helper that returns the other endpoint
1233
+ if (graph.type === "undirected") {
1234
+ return getUndirectedNeighbors(graph, nodeIndex);
1235
+ }
1236
+ const adjacencyList = graph.adjacency.get(nodeIndex);
1237
+ if (adjacencyList === undefined) {
1238
+ return [];
1239
+ }
1240
+ const result = [];
1241
+ for (const edgeIndex of adjacencyList) {
1242
+ const edge = graph.edges.get(edgeIndex);
1243
+ if (edge !== undefined) {
1244
+ result.push(edge.target);
1245
+ }
1246
+ }
1247
+ return result;
1248
+ };
1249
+ /**
1250
+ * Get neighbors of a node in a specific direction for bidirectional traversal.
1251
+ *
1252
+ * @example
1253
+ * ```ts
1254
+ * import { Graph } from "effect"
1255
+ *
1256
+ * const graph = Graph.directed<string, string>((mutable) => {
1257
+ * const a = Graph.addNode(mutable, "A")
1258
+ * const b = Graph.addNode(mutable, "B")
1259
+ * Graph.addEdge(mutable, a, b, "A->B")
1260
+ * })
1261
+ *
1262
+ * const nodeA = 0
1263
+ * const nodeB = 1
1264
+ *
1265
+ * // Get outgoing neighbors (nodes that nodeA points to)
1266
+ * const outgoing = Graph.neighborsDirected(graph, nodeA, "outgoing")
1267
+ *
1268
+ * // Get incoming neighbors (nodes that point to nodeB)
1269
+ * const incoming = Graph.neighborsDirected(graph, nodeB, "incoming")
1270
+ * ```
1271
+ *
1272
+ * @since 3.18.0
1273
+ * @category queries
1274
+ */
1275
+ exports.neighbors = neighbors;
1276
+ const neighborsDirected = (graph, nodeIndex, direction) => {
1277
+ const adjacencyMap = direction === "incoming" ? graph.reverseAdjacency : graph.adjacency;
1278
+ const adjacencyList = adjacencyMap.get(nodeIndex);
1279
+ if (adjacencyList === undefined) {
1280
+ return [];
1281
+ }
1282
+ const result = [];
1283
+ for (const edgeIndex of adjacencyList) {
1284
+ const edge = graph.edges.get(edgeIndex);
1285
+ if (edge !== undefined) {
1286
+ // For incoming direction, we want the source node instead of target
1287
+ const neighborNode = direction === "incoming" ? edge.source : edge.target;
1288
+ result.push(neighborNode);
1289
+ }
1290
+ }
1291
+ return result;
1292
+ };
1293
+ /**
1294
+ * Exports a graph to GraphViz DOT format for visualization.
1295
+ *
1296
+ * @example
1297
+ * ```ts
1298
+ * import { Graph } from "effect"
1299
+ *
1300
+ * const graph = Graph.mutate(Graph.directed<string, number>(), (mutable) => {
1301
+ * const nodeA = Graph.addNode(mutable, "Node A")
1302
+ * const nodeB = Graph.addNode(mutable, "Node B")
1303
+ * const nodeC = Graph.addNode(mutable, "Node C")
1304
+ * Graph.addEdge(mutable, nodeA, nodeB, 1)
1305
+ * Graph.addEdge(mutable, nodeB, nodeC, 2)
1306
+ * Graph.addEdge(mutable, nodeC, nodeA, 3)
1307
+ * })
1308
+ *
1309
+ * const dot = Graph.toGraphViz(graph)
1310
+ * console.log(dot)
1311
+ * // digraph G {
1312
+ * // "0" [label="Node A"];
1313
+ * // "1" [label="Node B"];
1314
+ * // "2" [label="Node C"];
1315
+ * // "0" -> "1" [label="1"];
1316
+ * // "1" -> "2" [label="2"];
1317
+ * // "2" -> "0" [label="3"];
1318
+ * // }
1319
+ * ```
1320
+ *
1321
+ * @since 3.18.0
1322
+ * @category utils
1323
+ */
1324
+ exports.neighborsDirected = neighborsDirected;
1325
+ const toGraphViz = (graph, options) => {
1326
+ const {
1327
+ edgeLabel = data => String(data),
1328
+ graphName = "G",
1329
+ nodeLabel = data => String(data)
1330
+ } = options ?? {};
1331
+ const isDirected = graph.type === "directed";
1332
+ const graphType = isDirected ? "digraph" : "graph";
1333
+ const edgeOperator = isDirected ? "->" : "--";
1334
+ const lines = [];
1335
+ lines.push(`${graphType} ${graphName} {`);
1336
+ // Add nodes
1337
+ for (const [nodeIndex, nodeData] of graph.nodes) {
1338
+ const label = nodeLabel(nodeData).replace(/"/g, "\\\"");
1339
+ lines.push(` "${nodeIndex}" [label="${label}"];`);
1340
+ }
1341
+ // Add edges
1342
+ for (const [, edgeData] of graph.edges) {
1343
+ const label = edgeLabel(edgeData.data).replace(/"/g, "\\\"");
1344
+ lines.push(` "${edgeData.source}" ${edgeOperator} "${edgeData.target}" [label="${label}"];`);
1345
+ }
1346
+ lines.push("}");
1347
+ return lines.join("\n");
1348
+ };
1349
+ /** @internal */
1350
+ exports.toGraphViz = toGraphViz;
1351
+ const escapeMermaidLabel = label => {
1352
+ // Escape special characters for Mermaid using HTML entity codes
1353
+ // According to: https://mermaid.js.org/syntax/flowchart.html#special-characters-that-break-syntax
1354
+ return label.replace(/#/g, "#35;").replace(/"/g, "#quot;").replace(/</g, "#lt;").replace(/>/g, "#gt;").replace(/&/g, "#amp;").replace(/\[/g, "#91;").replace(/\]/g, "#93;").replace(/\{/g, "#123;").replace(/\}/g, "#125;").replace(/\(/g, "#40;").replace(/\)/g, "#41;").replace(/\|/g, "#124;").replace(/\\/g, "#92;").replace(/\n/g, "<br/>");
1355
+ };
1356
+ /** @internal */
1357
+ const formatMermaidNode = (nodeId, label, shape) => {
1358
+ switch (shape) {
1359
+ case "rectangle":
1360
+ return `${nodeId}["${label}"]`;
1361
+ case "rounded":
1362
+ return `${nodeId}("${label}")`;
1363
+ case "circle":
1364
+ return `${nodeId}(("${label}"))`;
1365
+ case "diamond":
1366
+ return `${nodeId}{"${label}"}`;
1367
+ case "hexagon":
1368
+ return `${nodeId}{{"${label}"}}`;
1369
+ case "stadium":
1370
+ return `${nodeId}(["${label}"])`;
1371
+ case "subroutine":
1372
+ return `${nodeId}[["${label}"]]`;
1373
+ case "cylindrical":
1374
+ return `${nodeId}[("${label}")]`;
1375
+ }
1376
+ };
1377
+ /**
1378
+ * Exports a graph to Mermaid diagram format for visualization.
1379
+ *
1380
+ * @example
1381
+ * ```ts
1382
+ * import { Graph } from "effect"
1383
+ *
1384
+ * const graph = Graph.mutate(Graph.directed<string, number>(), (mutable) => {
1385
+ * const app = Graph.addNode(mutable, "App")
1386
+ * const db = Graph.addNode(mutable, "Database")
1387
+ * const cache = Graph.addNode(mutable, "Cache")
1388
+ * Graph.addEdge(mutable, app, db, 1)
1389
+ * Graph.addEdge(mutable, app, cache, 2)
1390
+ * })
1391
+ *
1392
+ * const mermaid = Graph.toMermaid(graph)
1393
+ * console.log(mermaid)
1394
+ * // flowchart TD
1395
+ * // 0["App"]
1396
+ * // 1["Database"]
1397
+ * // 2["Cache"]
1398
+ * // 0 -->|"1"| 1
1399
+ * // 0 -->|"2"| 2
1400
+ * ```
1401
+ *
1402
+ * @since 3.18.0
1403
+ * @category utils
1404
+ */
1405
+ const toMermaid = (graph, options) => {
1406
+ // Extract and validate options with defaults
1407
+ const {
1408
+ diagramType,
1409
+ direction = "TD",
1410
+ edgeLabel = data => String(data),
1411
+ nodeLabel = data => String(data),
1412
+ nodeShape = () => "rectangle"
1413
+ } = options ?? {};
1414
+ // Auto-detect diagram type if not specified
1415
+ const finalDiagramType = diagramType ?? (graph.type === "directed" ? "flowchart" : "graph");
1416
+ // Generate diagram header
1417
+ const lines = [];
1418
+ lines.push(`${finalDiagramType} ${direction}`);
1419
+ // Add nodes
1420
+ for (const [nodeIndex, nodeData] of graph.nodes) {
1421
+ const nodeId = String(nodeIndex);
1422
+ const label = escapeMermaidLabel(nodeLabel(nodeData));
1423
+ const shape = nodeShape(nodeData);
1424
+ const formattedNode = formatMermaidNode(nodeId, label, shape);
1425
+ lines.push(` ${formattedNode}`);
1426
+ }
1427
+ // Add edges
1428
+ const edgeOperator = finalDiagramType === "flowchart" ? "-->" : "---";
1429
+ for (const [, edgeData] of graph.edges) {
1430
+ const sourceId = String(edgeData.source);
1431
+ const targetId = String(edgeData.target);
1432
+ const label = escapeMermaidLabel(edgeLabel(edgeData.data));
1433
+ if (label) {
1434
+ lines.push(` ${sourceId} ${edgeOperator}|"${label}"| ${targetId}`);
1435
+ } else {
1436
+ lines.push(` ${sourceId} ${edgeOperator} ${targetId}`);
1437
+ }
1438
+ }
1439
+ return lines.join("\n");
1440
+ };
1441
+ // =============================================================================
1442
+ // =============================================================================
1443
+ // Graph Structure Analysis Algorithms (Phase 5A)
1444
+ // =============================================================================
1445
+ /**
1446
+ * Checks if the graph is acyclic (contains no cycles).
1447
+ *
1448
+ * Uses depth-first search to detect back edges, which indicate cycles.
1449
+ * For directed graphs, any back edge creates a cycle. For undirected graphs,
1450
+ * a back edge that doesn't go to the immediate parent creates a cycle.
1451
+ *
1452
+ * @example
1453
+ * ```ts
1454
+ * import { Graph } from "effect"
1455
+ *
1456
+ * // Acyclic directed graph (DAG)
1457
+ * const dag = Graph.directed<string, string>((mutable) => {
1458
+ * const a = Graph.addNode(mutable, "A")
1459
+ * const b = Graph.addNode(mutable, "B")
1460
+ * const c = Graph.addNode(mutable, "C")
1461
+ * Graph.addEdge(mutable, a, b, "A->B")
1462
+ * Graph.addEdge(mutable, b, c, "B->C")
1463
+ * })
1464
+ * console.log(Graph.isAcyclic(dag)) // true
1465
+ *
1466
+ * // Cyclic directed graph
1467
+ * const cyclic = Graph.directed<string, string>((mutable) => {
1468
+ * const a = Graph.addNode(mutable, "A")
1469
+ * const b = Graph.addNode(mutable, "B")
1470
+ * Graph.addEdge(mutable, a, b, "A->B")
1471
+ * Graph.addEdge(mutable, b, a, "B->A") // Creates cycle
1472
+ * })
1473
+ * console.log(Graph.isAcyclic(cyclic)) // false
1474
+ * ```
1475
+ *
1476
+ * @since 3.18.0
1477
+ * @category algorithms
1478
+ */
1479
+ exports.toMermaid = toMermaid;
1480
+ const isAcyclic = graph => {
1481
+ // Use existing cycle flag if available
1482
+ if (Option.isSome(graph.isAcyclic)) {
1483
+ return graph.isAcyclic.value;
1484
+ }
1485
+ // Stack-safe DFS cycle detection using iterative approach
1486
+ const visited = new Set();
1487
+ const recursionStack = new Set();
1488
+ // Get all nodes to handle disconnected components
1489
+ for (const startNode of graph.nodes.keys()) {
1490
+ if (visited.has(startNode)) {
1491
+ continue; // Already processed this component
1492
+ }
1493
+ // Iterative DFS with explicit stack
1494
+ const stack = [[startNode, [], 0, true]];
1495
+ while (stack.length > 0) {
1496
+ const [node, neighbors, neighborIndex, isFirstVisit] = stack[stack.length - 1];
1497
+ // First visit to this node
1498
+ if (isFirstVisit) {
1499
+ if (recursionStack.has(node)) {
1500
+ // Back edge found - cycle detected
1501
+ graph.isAcyclic = Option.some(false);
1502
+ return false;
1503
+ }
1504
+ if (visited.has(node)) {
1505
+ stack.pop();
1506
+ continue;
1507
+ }
1508
+ visited.add(node);
1509
+ recursionStack.add(node);
1510
+ // Get neighbors for this node
1511
+ const nodeNeighbors = Array.from(neighborsDirected(graph, node, "outgoing"));
1512
+ stack[stack.length - 1] = [node, nodeNeighbors, 0, false];
1513
+ continue;
1514
+ }
1515
+ // Process next neighbor
1516
+ if (neighborIndex < neighbors.length) {
1517
+ const neighbor = neighbors[neighborIndex];
1518
+ stack[stack.length - 1] = [node, neighbors, neighborIndex + 1, false];
1519
+ if (recursionStack.has(neighbor)) {
1520
+ // Back edge found - cycle detected
1521
+ graph.isAcyclic = Option.some(false);
1522
+ return false;
1523
+ }
1524
+ if (!visited.has(neighbor)) {
1525
+ stack.push([neighbor, [], 0, true]);
1526
+ }
1527
+ } else {
1528
+ // Done with this node - backtrack
1529
+ recursionStack.delete(node);
1530
+ stack.pop();
1531
+ }
1532
+ }
1533
+ }
1534
+ // Cache the result
1535
+ graph.isAcyclic = Option.some(true);
1536
+ return true;
1537
+ };
1538
+ /**
1539
+ * Checks if an undirected graph is bipartite.
1540
+ *
1541
+ * A bipartite graph is one whose vertices can be divided into two disjoint sets
1542
+ * such that no two vertices within the same set are adjacent. Uses BFS coloring
1543
+ * to determine bipartiteness.
1544
+ *
1545
+ * @example
1546
+ * ```ts
1547
+ * import { Graph } from "effect"
1548
+ *
1549
+ * // Bipartite graph (alternating coloring possible)
1550
+ * const bipartite = Graph.undirected<string, string>((mutable) => {
1551
+ * const a = Graph.addNode(mutable, "A")
1552
+ * const b = Graph.addNode(mutable, "B")
1553
+ * const c = Graph.addNode(mutable, "C")
1554
+ * const d = Graph.addNode(mutable, "D")
1555
+ * Graph.addEdge(mutable, a, b, "edge") // Set 1: {A, C}, Set 2: {B, D}
1556
+ * Graph.addEdge(mutable, b, c, "edge")
1557
+ * Graph.addEdge(mutable, c, d, "edge")
1558
+ * })
1559
+ * console.log(Graph.isBipartite(bipartite)) // true
1560
+ *
1561
+ * // Non-bipartite graph (odd cycle)
1562
+ * const triangle = Graph.undirected<string, string>((mutable) => {
1563
+ * const a = Graph.addNode(mutable, "A")
1564
+ * const b = Graph.addNode(mutable, "B")
1565
+ * const c = Graph.addNode(mutable, "C")
1566
+ * Graph.addEdge(mutable, a, b, "edge")
1567
+ * Graph.addEdge(mutable, b, c, "edge")
1568
+ * Graph.addEdge(mutable, c, a, "edge") // Triangle (3-cycle)
1569
+ * })
1570
+ * console.log(Graph.isBipartite(triangle)) // false
1571
+ * ```
1572
+ *
1573
+ * @since 3.18.0
1574
+ * @category algorithms
1575
+ */
1576
+ exports.isAcyclic = isAcyclic;
1577
+ const isBipartite = graph => {
1578
+ const coloring = new Map();
1579
+ const discovered = new Set();
1580
+ let isBipartiteGraph = true;
1581
+ // Get all nodes to handle disconnected components
1582
+ for (const startNode of graph.nodes.keys()) {
1583
+ if (!discovered.has(startNode)) {
1584
+ // Start BFS coloring from this component
1585
+ const queue = [startNode];
1586
+ coloring.set(startNode, 0); // Color start node with 0
1587
+ discovered.add(startNode);
1588
+ while (queue.length > 0 && isBipartiteGraph) {
1589
+ const current = queue.shift();
1590
+ const currentColor = coloring.get(current);
1591
+ const neighborColor = currentColor === 0 ? 1 : 0;
1592
+ // Get all neighbors for undirected graph
1593
+ const nodeNeighbors = getUndirectedNeighbors(graph, current);
1594
+ for (const neighbor of nodeNeighbors) {
1595
+ if (!discovered.has(neighbor)) {
1596
+ // Color unvisited neighbor with opposite color
1597
+ coloring.set(neighbor, neighborColor);
1598
+ discovered.add(neighbor);
1599
+ queue.push(neighbor);
1600
+ } else {
1601
+ // Check if neighbor has the same color (conflict)
1602
+ if (coloring.get(neighbor) === currentColor) {
1603
+ isBipartiteGraph = false;
1604
+ break;
1605
+ }
1606
+ }
1607
+ }
1608
+ }
1609
+ // Early exit if not bipartite
1610
+ if (!isBipartiteGraph) {
1611
+ break;
1612
+ }
1613
+ }
1614
+ }
1615
+ return isBipartiteGraph;
1616
+ };
1617
+ /**
1618
+ * Get neighbors for undirected graphs by checking both adjacency and reverse adjacency.
1619
+ * For undirected graphs, we need to find the other endpoint of each edge incident to the node.
1620
+ */
1621
+ exports.isBipartite = isBipartite;
1622
+ const getUndirectedNeighbors = (graph, nodeIndex) => {
1623
+ const neighbors = new Set();
1624
+ // Check edges where this node is the source
1625
+ const adjacencyList = graph.adjacency.get(nodeIndex);
1626
+ if (adjacencyList !== undefined) {
1627
+ for (const edgeIndex of adjacencyList) {
1628
+ const edge = graph.edges.get(edgeIndex);
1629
+ if (edge !== undefined) {
1630
+ // For undirected graphs, the neighbor is the other endpoint
1631
+ const otherNode = edge.source === nodeIndex ? edge.target : edge.source;
1632
+ neighbors.add(otherNode);
1633
+ }
1634
+ }
1635
+ }
1636
+ return Array.from(neighbors);
1637
+ };
1638
+ /**
1639
+ * Find connected components in an undirected graph.
1640
+ * Each component is represented as an array of node indices.
1641
+ *
1642
+ * @example
1643
+ * ```ts
1644
+ * import { Graph } from "effect"
1645
+ *
1646
+ * const graph = Graph.undirected<string, string>((mutable) => {
1647
+ * const a = Graph.addNode(mutable, "A")
1648
+ * const b = Graph.addNode(mutable, "B")
1649
+ * const c = Graph.addNode(mutable, "C")
1650
+ * const d = Graph.addNode(mutable, "D")
1651
+ * Graph.addEdge(mutable, a, b, "edge") // Component 1: A-B
1652
+ * Graph.addEdge(mutable, c, d, "edge") // Component 2: C-D
1653
+ * })
1654
+ *
1655
+ * const components = Graph.connectedComponents(graph)
1656
+ * console.log(components) // [[0, 1], [2, 3]]
1657
+ * ```
1658
+ *
1659
+ * @since 3.18.0
1660
+ * @category algorithms
1661
+ */
1662
+ const connectedComponents = graph => {
1663
+ const visited = new Set();
1664
+ const components = [];
1665
+ for (const startNode of graph.nodes.keys()) {
1666
+ if (!visited.has(startNode)) {
1667
+ // DFS to find all nodes in this component
1668
+ const component = [];
1669
+ const stack = [startNode];
1670
+ while (stack.length > 0) {
1671
+ const current = stack.pop();
1672
+ if (!visited.has(current)) {
1673
+ visited.add(current);
1674
+ component.push(current);
1675
+ // Add all unvisited neighbors to stack
1676
+ const nodeNeighbors = getUndirectedNeighbors(graph, current);
1677
+ for (const neighbor of nodeNeighbors) {
1678
+ if (!visited.has(neighbor)) {
1679
+ stack.push(neighbor);
1680
+ }
1681
+ }
1682
+ }
1683
+ }
1684
+ components.push(component);
1685
+ }
1686
+ }
1687
+ return components;
1688
+ };
1689
+ /**
1690
+ * Find strongly connected components in a directed graph using Kosaraju's algorithm.
1691
+ * Each SCC is represented as an array of node indices.
1692
+ *
1693
+ * @example
1694
+ * ```ts
1695
+ * import { Graph } from "effect"
1696
+ *
1697
+ * const graph = Graph.directed<string, string>((mutable) => {
1698
+ * const a = Graph.addNode(mutable, "A")
1699
+ * const b = Graph.addNode(mutable, "B")
1700
+ * const c = Graph.addNode(mutable, "C")
1701
+ * Graph.addEdge(mutable, a, b, "A->B")
1702
+ * Graph.addEdge(mutable, b, c, "B->C")
1703
+ * Graph.addEdge(mutable, c, a, "C->A") // Creates SCC: A-B-C
1704
+ * })
1705
+ *
1706
+ * const sccs = Graph.stronglyConnectedComponents(graph)
1707
+ * console.log(sccs) // [[0, 1, 2]]
1708
+ * ```
1709
+ *
1710
+ * @since 3.18.0
1711
+ * @category algorithms
1712
+ */
1713
+ exports.connectedComponents = connectedComponents;
1714
+ const stronglyConnectedComponents = graph => {
1715
+ const visited = new Set();
1716
+ const finishOrder = [];
1717
+ for (const startNode of graph.nodes.keys()) {
1718
+ if (visited.has(startNode)) {
1719
+ continue;
1720
+ }
1721
+ const stack = [[startNode, [], 0, true]];
1722
+ while (stack.length > 0) {
1723
+ const [node, nodeNeighbors, neighborIndex, isFirstVisit] = stack[stack.length - 1];
1724
+ if (isFirstVisit) {
1725
+ if (visited.has(node)) {
1726
+ stack.pop();
1727
+ continue;
1728
+ }
1729
+ visited.add(node);
1730
+ const nodeNeighborsList = neighbors(graph, node);
1731
+ stack[stack.length - 1] = [node, nodeNeighborsList, 0, false];
1732
+ continue;
1733
+ }
1734
+ // Process next neighbor
1735
+ if (neighborIndex < nodeNeighbors.length) {
1736
+ const neighbor = nodeNeighbors[neighborIndex];
1737
+ stack[stack.length - 1] = [node, nodeNeighbors, neighborIndex + 1, false];
1738
+ if (!visited.has(neighbor)) {
1739
+ stack.push([neighbor, [], 0, true]);
1740
+ }
1741
+ } else {
1742
+ // Done with this node - add to finish order (post-order)
1743
+ finishOrder.push(node);
1744
+ stack.pop();
1745
+ }
1746
+ }
1747
+ }
1748
+ // Step 2: Stack-safe DFS on transpose graph in reverse finish order
1749
+ visited.clear();
1750
+ const sccs = [];
1751
+ for (let i = finishOrder.length - 1; i >= 0; i--) {
1752
+ const startNode = finishOrder[i];
1753
+ if (visited.has(startNode)) {
1754
+ continue;
1755
+ }
1756
+ const scc = [];
1757
+ const stack = [startNode];
1758
+ while (stack.length > 0) {
1759
+ const node = stack.pop();
1760
+ if (visited.has(node)) {
1761
+ continue;
1762
+ }
1763
+ visited.add(node);
1764
+ scc.push(node);
1765
+ // Use reverse adjacency (transpose graph)
1766
+ const reverseAdjacency = graph.reverseAdjacency.get(node);
1767
+ if (reverseAdjacency !== undefined) {
1768
+ for (const edgeIndex of reverseAdjacency) {
1769
+ const edge = graph.edges.get(edgeIndex);
1770
+ if (edge !== undefined) {
1771
+ const predecessor = edge.source;
1772
+ if (!visited.has(predecessor)) {
1773
+ stack.push(predecessor);
1774
+ }
1775
+ }
1776
+ }
1777
+ }
1778
+ }
1779
+ sccs.push(scc);
1780
+ }
1781
+ return sccs;
1782
+ };
1783
+ /**
1784
+ * Find the shortest path between two nodes using Dijkstra's algorithm.
1785
+ *
1786
+ * Dijkstra's algorithm works with non-negative edge weights and finds the shortest
1787
+ * path from a source node to a target node in O((V + E) log V) time complexity.
1788
+ *
1789
+ * @example
1790
+ * ```ts
1791
+ * import { Graph, Option } from "effect"
1792
+ *
1793
+ * const graph = Graph.directed<string, number>((mutable) => {
1794
+ * const a = Graph.addNode(mutable, "A")
1795
+ * const b = Graph.addNode(mutable, "B")
1796
+ * const c = Graph.addNode(mutable, "C")
1797
+ * Graph.addEdge(mutable, a, b, 5)
1798
+ * Graph.addEdge(mutable, a, c, 10)
1799
+ * Graph.addEdge(mutable, b, c, 2)
1800
+ * })
1801
+ *
1802
+ * const result = Graph.dijkstra(graph, { source: 0, target: 2, cost: (edgeData) => edgeData })
1803
+ * if (Option.isSome(result)) {
1804
+ * console.log(result.value.path) // [0, 1, 2] - shortest path A->B->C
1805
+ * console.log(result.value.distance) // 7 - total distance
1806
+ * }
1807
+ * ```
1808
+ *
1809
+ * @since 3.18.0
1810
+ * @category algorithms
1811
+ */
1812
+ exports.stronglyConnectedComponents = stronglyConnectedComponents;
1813
+ const dijkstra = (graph, config) => {
1814
+ const {
1815
+ cost,
1816
+ source,
1817
+ target
1818
+ } = config;
1819
+ // Validate that source and target nodes exist
1820
+ if (!graph.nodes.has(source)) {
1821
+ throw missingNode(source);
1822
+ }
1823
+ if (!graph.nodes.has(target)) {
1824
+ throw missingNode(target);
1825
+ }
1826
+ // Early return if source equals target
1827
+ if (source === target) {
1828
+ return Option.some({
1829
+ path: [source],
1830
+ distance: 0,
1831
+ costs: []
1832
+ });
1833
+ }
1834
+ // Distance tracking and priority queue simulation
1835
+ const distances = new Map();
1836
+ const previous = new Map();
1837
+ const visited = new Set();
1838
+ // Initialize distances
1839
+ // Iterate directly over node keys
1840
+ for (const node of graph.nodes.keys()) {
1841
+ distances.set(node, node === source ? 0 : Infinity);
1842
+ previous.set(node, null);
1843
+ }
1844
+ // Simple priority queue using array (can be optimized with proper heap)
1845
+ const priorityQueue = [{
1846
+ node: source,
1847
+ distance: 0
1848
+ }];
1849
+ while (priorityQueue.length > 0) {
1850
+ // Find minimum distance node (priority queue extract-min)
1851
+ let minIndex = 0;
1852
+ for (let i = 1; i < priorityQueue.length; i++) {
1853
+ if (priorityQueue[i].distance < priorityQueue[minIndex].distance) {
1854
+ minIndex = i;
1855
+ }
1856
+ }
1857
+ const current = priorityQueue.splice(minIndex, 1)[0];
1858
+ const currentNode = current.node;
1859
+ // Skip if already visited (can happen with duplicate entries)
1860
+ if (visited.has(currentNode)) {
1861
+ continue;
1862
+ }
1863
+ visited.add(currentNode);
1864
+ // Early termination if we reached the target
1865
+ if (currentNode === target) {
1866
+ break;
1867
+ }
1868
+ // Get current distance
1869
+ const currentDistance = distances.get(currentNode);
1870
+ // Examine all outgoing edges
1871
+ const adjacencyList = graph.adjacency.get(currentNode);
1872
+ if (adjacencyList !== undefined) {
1873
+ for (const edgeIndex of adjacencyList) {
1874
+ const edge = graph.edges.get(edgeIndex);
1875
+ if (edge !== undefined) {
1876
+ const neighbor = edge.target;
1877
+ const weight = cost(edge.data);
1878
+ // Validate non-negative weights
1879
+ if (weight < 0) {
1880
+ throw new Error(`Dijkstra's algorithm requires non-negative edge weights, found ${weight}`);
1881
+ }
1882
+ const newDistance = currentDistance + weight;
1883
+ const neighborDistance = distances.get(neighbor);
1884
+ // Relaxation step
1885
+ if (newDistance < neighborDistance) {
1886
+ distances.set(neighbor, newDistance);
1887
+ previous.set(neighbor, {
1888
+ node: currentNode,
1889
+ edgeData: edge.data
1890
+ });
1891
+ // Add to priority queue if not visited
1892
+ if (!visited.has(neighbor)) {
1893
+ priorityQueue.push({
1894
+ node: neighbor,
1895
+ distance: newDistance
1896
+ });
1897
+ }
1898
+ }
1899
+ }
1900
+ }
1901
+ }
1902
+ }
1903
+ // Check if target is reachable
1904
+ const targetDistance = distances.get(target);
1905
+ if (targetDistance === Infinity) {
1906
+ return Option.none(); // No path exists
1907
+ }
1908
+ // Reconstruct path
1909
+ const path = [];
1910
+ const costs = [];
1911
+ let currentNode = target;
1912
+ while (currentNode !== null) {
1913
+ path.unshift(currentNode);
1914
+ const prev = previous.get(currentNode);
1915
+ if (prev !== null) {
1916
+ costs.unshift(prev.edgeData);
1917
+ currentNode = prev.node;
1918
+ } else {
1919
+ currentNode = null;
1920
+ }
1921
+ }
1922
+ return Option.some({
1923
+ path,
1924
+ distance: targetDistance,
1925
+ costs
1926
+ });
1927
+ };
1928
+ /**
1929
+ * Find shortest paths between all pairs of nodes using Floyd-Warshall algorithm.
1930
+ *
1931
+ * Floyd-Warshall algorithm computes shortest paths between all pairs of nodes in O(V³) time.
1932
+ * It can handle negative edge weights and detect negative cycles.
1933
+ *
1934
+ * @example
1935
+ * ```ts
1936
+ * import { Graph } from "effect"
1937
+ *
1938
+ * const graph = Graph.directed<string, number>((mutable) => {
1939
+ * const a = Graph.addNode(mutable, "A")
1940
+ * const b = Graph.addNode(mutable, "B")
1941
+ * const c = Graph.addNode(mutable, "C")
1942
+ * Graph.addEdge(mutable, a, b, 3)
1943
+ * Graph.addEdge(mutable, b, c, 2)
1944
+ * Graph.addEdge(mutable, a, c, 7)
1945
+ * })
1946
+ *
1947
+ * const result = Graph.floydWarshall(graph, (edgeData) => edgeData)
1948
+ * const distanceAToC = result.distances.get(0)?.get(2) // 5 (A->B->C)
1949
+ * const pathAToC = result.paths.get(0)?.get(2) // [0, 1, 2]
1950
+ * ```
1951
+ *
1952
+ * @since 3.18.0
1953
+ * @category algorithms
1954
+ */
1955
+ exports.dijkstra = dijkstra;
1956
+ const floydWarshall = (graph, cost) => {
1957
+ // Get all nodes for Floyd-Warshall algorithm (needs array for nested iteration)
1958
+ const allNodes = Array.from(graph.nodes.keys());
1959
+ // Initialize distance matrix
1960
+ const dist = new Map();
1961
+ const next = new Map();
1962
+ const edgeMatrix = new Map();
1963
+ // Initialize with infinity for all pairs
1964
+ for (const i of allNodes) {
1965
+ dist.set(i, new Map());
1966
+ next.set(i, new Map());
1967
+ edgeMatrix.set(i, new Map());
1968
+ for (const j of allNodes) {
1969
+ dist.get(i).set(j, i === j ? 0 : Infinity);
1970
+ next.get(i).set(j, null);
1971
+ edgeMatrix.get(i).set(j, null);
1972
+ }
1973
+ }
1974
+ // Set edge weights
1975
+ for (const [, edgeData] of graph.edges) {
1976
+ const weight = cost(edgeData.data);
1977
+ const i = edgeData.source;
1978
+ const j = edgeData.target;
1979
+ // Use minimum weight if multiple edges exist
1980
+ const currentWeight = dist.get(i).get(j);
1981
+ if (weight < currentWeight) {
1982
+ dist.get(i).set(j, weight);
1983
+ next.get(i).set(j, j);
1984
+ edgeMatrix.get(i).set(j, edgeData.data);
1985
+ }
1986
+ }
1987
+ // Floyd-Warshall main loop
1988
+ for (const k of allNodes) {
1989
+ for (const i of allNodes) {
1990
+ for (const j of allNodes) {
1991
+ const distIK = dist.get(i).get(k);
1992
+ const distKJ = dist.get(k).get(j);
1993
+ const distIJ = dist.get(i).get(j);
1994
+ if (distIK !== Infinity && distKJ !== Infinity && distIK + distKJ < distIJ) {
1995
+ dist.get(i).set(j, distIK + distKJ);
1996
+ next.get(i).set(j, next.get(i).get(k));
1997
+ }
1998
+ }
1999
+ }
2000
+ }
2001
+ // Check for negative cycles
2002
+ for (const i of allNodes) {
2003
+ if (dist.get(i).get(i) < 0) {
2004
+ throw new Error(`Negative cycle detected involving node ${i}`);
2005
+ }
2006
+ }
2007
+ // Build result paths and edge weights
2008
+ const paths = new Map();
2009
+ const resultCosts = new Map();
2010
+ for (const i of allNodes) {
2011
+ paths.set(i, new Map());
2012
+ resultCosts.set(i, new Map());
2013
+ for (const j of allNodes) {
2014
+ if (i === j) {
2015
+ paths.get(i).set(j, [i]);
2016
+ resultCosts.get(i).set(j, []);
2017
+ } else if (dist.get(i).get(j) === Infinity) {
2018
+ paths.get(i).set(j, null);
2019
+ resultCosts.get(i).set(j, []);
2020
+ } else {
2021
+ // Reconstruct path iteratively
2022
+ const path = [];
2023
+ const weights = [];
2024
+ let current = i;
2025
+ path.push(current);
2026
+ while (current !== j) {
2027
+ const nextNode = next.get(current).get(j);
2028
+ if (nextNode === null) break;
2029
+ const edgeData = edgeMatrix.get(current).get(nextNode);
2030
+ if (edgeData !== null) {
2031
+ weights.push(edgeData);
2032
+ }
2033
+ current = nextNode;
2034
+ path.push(current);
2035
+ }
2036
+ paths.get(i).set(j, path);
2037
+ resultCosts.get(i).set(j, weights);
2038
+ }
2039
+ }
2040
+ }
2041
+ return {
2042
+ distances: dist,
2043
+ paths,
2044
+ costs: resultCosts
2045
+ };
2046
+ };
2047
+ /**
2048
+ * Find the shortest path between two nodes using A* pathfinding algorithm.
2049
+ *
2050
+ * A* is an extension of Dijkstra's algorithm that uses a heuristic function to guide
2051
+ * the search towards the target, potentially finding paths faster than Dijkstra's.
2052
+ * The heuristic must be admissible (never overestimate the actual cost).
2053
+ *
2054
+ * @example
2055
+ * ```ts
2056
+ * import { Graph, Option } from "effect"
2057
+ *
2058
+ * const graph = Graph.directed<{x: number, y: number}, number>((mutable) => {
2059
+ * const a = Graph.addNode(mutable, {x: 0, y: 0})
2060
+ * const b = Graph.addNode(mutable, {x: 1, y: 0})
2061
+ * const c = Graph.addNode(mutable, {x: 2, y: 0})
2062
+ * Graph.addEdge(mutable, a, b, 1)
2063
+ * Graph.addEdge(mutable, b, c, 1)
2064
+ * })
2065
+ *
2066
+ * // Manhattan distance heuristic
2067
+ * const heuristic = (nodeData: {x: number, y: number}, targetData: {x: number, y: number}) =>
2068
+ * Math.abs(nodeData.x - targetData.x) + Math.abs(nodeData.y - targetData.y)
2069
+ *
2070
+ * const result = Graph.astar(graph, { source: 0, target: 2, cost: (edgeData) => edgeData, heuristic })
2071
+ * if (Option.isSome(result)) {
2072
+ * console.log(result.value.path) // [0, 1, 2] - shortest path
2073
+ * console.log(result.value.distance) // 2 - total distance
2074
+ * }
2075
+ * ```
2076
+ *
2077
+ * @since 3.18.0
2078
+ * @category algorithms
2079
+ */
2080
+ exports.floydWarshall = floydWarshall;
2081
+ const astar = (graph, config) => {
2082
+ const {
2083
+ cost,
2084
+ heuristic,
2085
+ source,
2086
+ target
2087
+ } = config;
2088
+ // Validate that source and target nodes exist
2089
+ if (!graph.nodes.has(source)) {
2090
+ throw missingNode(source);
2091
+ }
2092
+ if (!graph.nodes.has(target)) {
2093
+ throw missingNode(target);
2094
+ }
2095
+ // Early return if source equals target
2096
+ if (source === target) {
2097
+ return Option.some({
2098
+ path: [source],
2099
+ distance: 0,
2100
+ costs: []
2101
+ });
2102
+ }
2103
+ // Get target node data for heuristic calculations
2104
+ const targetNodeData = graph.nodes.get(target);
2105
+ if (targetNodeData === undefined) {
2106
+ throw new Error(`Target node ${target} data not found`);
2107
+ }
2108
+ // Distance tracking (g-score) and f-score (g + h)
2109
+ const gScore = new Map();
2110
+ const fScore = new Map();
2111
+ const previous = new Map();
2112
+ const visited = new Set();
2113
+ // Initialize scores
2114
+ // Iterate directly over node keys
2115
+ for (const node of graph.nodes.keys()) {
2116
+ gScore.set(node, node === source ? 0 : Infinity);
2117
+ fScore.set(node, Infinity);
2118
+ previous.set(node, null);
2119
+ }
2120
+ // Calculate initial f-score for source
2121
+ const sourceNodeData = graph.nodes.get(source);
2122
+ if (sourceNodeData !== undefined) {
2123
+ const h = heuristic(sourceNodeData, targetNodeData);
2124
+ fScore.set(source, h);
2125
+ }
2126
+ // Priority queue using f-score (total estimated cost)
2127
+ const openSet = [{
2128
+ node: source,
2129
+ fScore: fScore.get(source)
2130
+ }];
2131
+ while (openSet.length > 0) {
2132
+ // Find node with lowest f-score
2133
+ let minIndex = 0;
2134
+ for (let i = 1; i < openSet.length; i++) {
2135
+ if (openSet[i].fScore < openSet[minIndex].fScore) {
2136
+ minIndex = i;
2137
+ }
2138
+ }
2139
+ const current = openSet.splice(minIndex, 1)[0];
2140
+ const currentNode = current.node;
2141
+ // Skip if already visited
2142
+ if (visited.has(currentNode)) {
2143
+ continue;
2144
+ }
2145
+ visited.add(currentNode);
2146
+ // Early termination if we reached the target
2147
+ if (currentNode === target) {
2148
+ break;
2149
+ }
2150
+ // Get current g-score
2151
+ const currentGScore = gScore.get(currentNode);
2152
+ // Examine all outgoing edges
2153
+ const adjacencyList = graph.adjacency.get(currentNode);
2154
+ if (adjacencyList !== undefined) {
2155
+ for (const edgeIndex of adjacencyList) {
2156
+ const edge = graph.edges.get(edgeIndex);
2157
+ if (edge !== undefined) {
2158
+ const neighbor = edge.target;
2159
+ const weight = cost(edge.data);
2160
+ // Validate non-negative weights
2161
+ if (weight < 0) {
2162
+ throw new Error(`A* algorithm requires non-negative edge weights, found ${weight}`);
2163
+ }
2164
+ const tentativeGScore = currentGScore + weight;
2165
+ const neighborGScore = gScore.get(neighbor);
2166
+ // If this path to neighbor is better than any previous one
2167
+ if (tentativeGScore < neighborGScore) {
2168
+ // Update g-score and previous
2169
+ gScore.set(neighbor, tentativeGScore);
2170
+ previous.set(neighbor, {
2171
+ node: currentNode,
2172
+ edgeData: edge.data
2173
+ });
2174
+ // Calculate f-score using heuristic
2175
+ const neighborNodeData = graph.nodes.get(neighbor);
2176
+ if (neighborNodeData !== undefined) {
2177
+ const h = heuristic(neighborNodeData, targetNodeData);
2178
+ const f = tentativeGScore + h;
2179
+ fScore.set(neighbor, f);
2180
+ // Add to open set if not visited
2181
+ if (!visited.has(neighbor)) {
2182
+ openSet.push({
2183
+ node: neighbor,
2184
+ fScore: f
2185
+ });
2186
+ }
2187
+ }
2188
+ }
2189
+ }
2190
+ }
2191
+ }
2192
+ }
2193
+ // Check if target is reachable
2194
+ const targetGScore = gScore.get(target);
2195
+ if (targetGScore === Infinity) {
2196
+ return Option.none(); // No path exists
2197
+ }
2198
+ // Reconstruct path
2199
+ const path = [];
2200
+ const costs = [];
2201
+ let currentNode = target;
2202
+ while (currentNode !== null) {
2203
+ path.unshift(currentNode);
2204
+ const prev = previous.get(currentNode);
2205
+ if (prev !== null) {
2206
+ costs.unshift(prev.edgeData);
2207
+ currentNode = prev.node;
2208
+ } else {
2209
+ currentNode = null;
2210
+ }
2211
+ }
2212
+ return Option.some({
2213
+ path,
2214
+ distance: targetGScore,
2215
+ costs
2216
+ });
2217
+ };
2218
+ /**
2219
+ * Find the shortest path between two nodes using Bellman-Ford algorithm.
2220
+ *
2221
+ * Bellman-Ford algorithm can handle negative edge weights and detects negative cycles.
2222
+ * It has O(VE) time complexity, slower than Dijkstra's but more versatile.
2223
+ * Returns Option.none() if a negative cycle is detected that affects the path.
2224
+ *
2225
+ * @example
2226
+ * ```ts
2227
+ * import { Graph, Option } from "effect"
2228
+ *
2229
+ * const graph = Graph.directed<string, number>((mutable) => {
2230
+ * const a = Graph.addNode(mutable, "A")
2231
+ * const b = Graph.addNode(mutable, "B")
2232
+ * const c = Graph.addNode(mutable, "C")
2233
+ * Graph.addEdge(mutable, a, b, -1) // Negative weight allowed
2234
+ * Graph.addEdge(mutable, b, c, 3)
2235
+ * Graph.addEdge(mutable, a, c, 5)
2236
+ * })
2237
+ *
2238
+ * const result = Graph.bellmanFord(graph, { source: 0, target: 2, cost: (edgeData) => edgeData })
2239
+ * if (Option.isSome(result)) {
2240
+ * console.log(result.value.path) // [0, 1, 2] - shortest path A->B->C
2241
+ * console.log(result.value.distance) // 2 - total distance
2242
+ * }
2243
+ * ```
2244
+ *
2245
+ * @since 3.18.0
2246
+ * @category algorithms
2247
+ */
2248
+ exports.astar = astar;
2249
+ const bellmanFord = (graph, config) => {
2250
+ const {
2251
+ cost,
2252
+ source,
2253
+ target
2254
+ } = config;
2255
+ // Validate that source and target nodes exist
2256
+ if (!graph.nodes.has(source)) {
2257
+ throw missingNode(source);
2258
+ }
2259
+ if (!graph.nodes.has(target)) {
2260
+ throw missingNode(target);
2261
+ }
2262
+ // Early return if source equals target
2263
+ if (source === target) {
2264
+ return Option.some({
2265
+ path: [source],
2266
+ distance: 0,
2267
+ costs: []
2268
+ });
2269
+ }
2270
+ // Initialize distances and predecessors
2271
+ const distances = new Map();
2272
+ const previous = new Map();
2273
+ // Iterate directly over node keys
2274
+ for (const node of graph.nodes.keys()) {
2275
+ distances.set(node, node === source ? 0 : Infinity);
2276
+ previous.set(node, null);
2277
+ }
2278
+ // Collect all edges for relaxation
2279
+ const edges = [];
2280
+ for (const [, edgeData] of graph.edges) {
2281
+ const weight = cost(edgeData.data);
2282
+ edges.push({
2283
+ source: edgeData.source,
2284
+ target: edgeData.target,
2285
+ weight,
2286
+ edgeData: edgeData.data
2287
+ });
2288
+ }
2289
+ // Relax edges up to V-1 times
2290
+ const nodeCount = graph.nodes.size;
2291
+ for (let i = 0; i < nodeCount - 1; i++) {
2292
+ let hasUpdate = false;
2293
+ for (const edge of edges) {
2294
+ const sourceDistance = distances.get(edge.source);
2295
+ const targetDistance = distances.get(edge.target);
2296
+ // Relaxation step
2297
+ if (sourceDistance !== Infinity && sourceDistance + edge.weight < targetDistance) {
2298
+ distances.set(edge.target, sourceDistance + edge.weight);
2299
+ previous.set(edge.target, {
2300
+ node: edge.source,
2301
+ edgeData: edge.edgeData
2302
+ });
2303
+ hasUpdate = true;
2304
+ }
2305
+ }
2306
+ // Early termination if no updates
2307
+ if (!hasUpdate) {
2308
+ break;
2309
+ }
2310
+ }
2311
+ // Check for negative cycles
2312
+ for (const edge of edges) {
2313
+ const sourceDistance = distances.get(edge.source);
2314
+ const targetDistance = distances.get(edge.target);
2315
+ if (sourceDistance !== Infinity && sourceDistance + edge.weight < targetDistance) {
2316
+ // Negative cycle detected - check if it affects the path to target
2317
+ const affectedNodes = new Set();
2318
+ const queue = [edge.target];
2319
+ while (queue.length > 0) {
2320
+ const node = queue.shift();
2321
+ if (affectedNodes.has(node)) continue;
2322
+ affectedNodes.add(node);
2323
+ // Add all nodes reachable from this node
2324
+ const adjacencyList = graph.adjacency.get(node);
2325
+ if (adjacencyList !== undefined) {
2326
+ for (const edgeIndex of adjacencyList) {
2327
+ const edge = graph.edges.get(edgeIndex);
2328
+ if (edge !== undefined) {
2329
+ queue.push(edge.target);
2330
+ }
2331
+ }
2332
+ }
2333
+ }
2334
+ // If target is affected by negative cycle, return null
2335
+ if (affectedNodes.has(target)) {
2336
+ return Option.none();
2337
+ }
2338
+ }
2339
+ }
2340
+ // Check if target is reachable
2341
+ const targetDistance = distances.get(target);
2342
+ if (targetDistance === Infinity) {
2343
+ return Option.none(); // No path exists
2344
+ }
2345
+ // Reconstruct path
2346
+ const path = [];
2347
+ const costs = [];
2348
+ let currentNode = target;
2349
+ while (currentNode !== null) {
2350
+ path.unshift(currentNode);
2351
+ const prev = previous.get(currentNode);
2352
+ if (prev !== null) {
2353
+ costs.unshift(prev.edgeData);
2354
+ currentNode = prev.node;
2355
+ } else {
2356
+ currentNode = null;
2357
+ }
2358
+ }
2359
+ return Option.some({
2360
+ path,
2361
+ distance: targetDistance,
2362
+ costs
2363
+ });
2364
+ };
2365
+ /**
2366
+ * Concrete class for iterables that produce [NodeIndex, NodeData] tuples.
2367
+ *
2368
+ * This class provides a common abstraction for all iterables that return node data,
2369
+ * including traversal iterators (DFS, BFS, etc.) and element iterators (nodes, externals).
2370
+ * It uses a mapEntry function pattern for flexible iteration and transformation.
2371
+ *
2372
+ * @example
2373
+ * ```ts
2374
+ * import { Graph } from "effect"
2375
+ *
2376
+ * const graph = Graph.directed<string, number>((mutable) => {
2377
+ * const a = Graph.addNode(mutable, "A")
2378
+ * const b = Graph.addNode(mutable, "B")
2379
+ * Graph.addEdge(mutable, a, b, 1)
2380
+ * })
2381
+ *
2382
+ * // Both traversal and element iterators return NodeWalker
2383
+ * const dfsNodes: Graph.NodeWalker<string> = Graph.dfs(graph, { start: [0] })
2384
+ * const allNodes: Graph.NodeWalker<string> = Graph.nodes(graph)
2385
+ *
2386
+ * // Common interface for working with node iterables
2387
+ * function processNodes<N>(nodeIterable: Graph.NodeWalker<N>): Array<number> {
2388
+ * return Array.from(Graph.indices(nodeIterable))
2389
+ * }
2390
+ *
2391
+ * // Access node data using values() or entries()
2392
+ * const nodeData = Array.from(Graph.values(dfsNodes)) // ["A", "B"]
2393
+ * const nodeEntries = Array.from(Graph.entries(allNodes)) // [[0, "A"], [1, "B"]]
2394
+ * ```
2395
+ *
2396
+ * @since 3.18.0
2397
+ * @category models
2398
+ */
2399
+ exports.bellmanFord = bellmanFord;
2400
+ class Walker {
2401
+ /**
2402
+ * @since 3.18.0
2403
+ */
2404
+ // @ts-ignore
2405
+ [Symbol.iterator];
2406
+ /**
2407
+ * Visits each element and maps it to a value using the provided function.
2408
+ *
2409
+ * Takes a function that receives the index and data,
2410
+ * and returns an iterable of the mapped values. Skips elements that
2411
+ * no longer exist in the graph.
2412
+ *
2413
+ * @example
2414
+ * ```ts
2415
+ * import { Graph } from "effect"
2416
+ *
2417
+ * const graph = Graph.directed<string, number>((mutable) => {
2418
+ * const a = Graph.addNode(mutable, "A")
2419
+ * const b = Graph.addNode(mutable, "B")
2420
+ * Graph.addEdge(mutable, a, b, 1)
2421
+ * })
2422
+ *
2423
+ * const dfs = Graph.dfs(graph, { start: [0] })
2424
+ *
2425
+ * // Map to just the node data
2426
+ * const values = Array.from(dfs.visit((index, data) => data))
2427
+ * console.log(values) // ["A", "B"]
2428
+ *
2429
+ * // Map to custom objects
2430
+ * const custom = Array.from(dfs.visit((index, data) => ({ id: index, name: data })))
2431
+ * console.log(custom) // [{ id: 0, name: "A" }, { id: 1, name: "B" }]
2432
+ * ```
2433
+ *
2434
+ * @since 3.18.0
2435
+ * @category iterators
2436
+ */
2437
+ visit;
2438
+ constructor(
2439
+ /**
2440
+ * Visits each element and maps it to a value using the provided function.
2441
+ *
2442
+ * Takes a function that receives the index and data,
2443
+ * and returns an iterable of the mapped values. Skips elements that
2444
+ * no longer exist in the graph.
2445
+ *
2446
+ * @example
2447
+ * ```ts
2448
+ * import { Graph } from "effect"
2449
+ *
2450
+ * const graph = Graph.directed<string, number>((mutable) => {
2451
+ * const a = Graph.addNode(mutable, "A")
2452
+ * const b = Graph.addNode(mutable, "B")
2453
+ * Graph.addEdge(mutable, a, b, 1)
2454
+ * })
2455
+ *
2456
+ * const dfs = Graph.dfs(graph, { start: [0] })
2457
+ *
2458
+ * // Map to just the node data
2459
+ * const values = Array.from(dfs.visit((index, data) => data))
2460
+ * console.log(values) // ["A", "B"]
2461
+ *
2462
+ * // Map to custom objects
2463
+ * const custom = Array.from(dfs.visit((index, data) => ({ id: index, name: data })))
2464
+ * console.log(custom) // [{ id: 0, name: "A" }, { id: 1, name: "B" }]
2465
+ * ```
2466
+ *
2467
+ * @since 3.18.0
2468
+ * @category iterators
2469
+ */
2470
+ visit) {
2471
+ this.visit = visit;
2472
+ this[Symbol.iterator] = visit((index, data) => [index, data])[Symbol.iterator];
2473
+ }
2474
+ }
2475
+ /**
2476
+ * Returns an iterator over the indices in the walker.
2477
+ *
2478
+ * @example
2479
+ * ```ts
2480
+ * import { Graph } from "effect"
2481
+ *
2482
+ * const graph = Graph.directed<string, number>((mutable) => {
2483
+ * const a = Graph.addNode(mutable, "A")
2484
+ * const b = Graph.addNode(mutable, "B")
2485
+ * Graph.addEdge(mutable, a, b, 1)
2486
+ * })
2487
+ *
2488
+ * const dfs = Graph.dfs(graph, { start: [0] })
2489
+ * const indices = Array.from(Graph.indices(dfs))
2490
+ * console.log(indices) // [0, 1]
2491
+ * ```
2492
+ *
2493
+ * @since 3.18.0
2494
+ * @category utilities
2495
+ */
2496
+ exports.Walker = Walker;
2497
+ const indices = walker => walker.visit((index, _) => index);
2498
+ /**
2499
+ * Returns an iterator over the values (data) in the walker.
2500
+ *
2501
+ * @example
2502
+ * ```ts
2503
+ * import { Graph } from "effect"
2504
+ *
2505
+ * const graph = Graph.directed<string, number>((mutable) => {
2506
+ * const a = Graph.addNode(mutable, "A")
2507
+ * const b = Graph.addNode(mutable, "B")
2508
+ * Graph.addEdge(mutable, a, b, 1)
2509
+ * })
2510
+ *
2511
+ * const dfs = Graph.dfs(graph, { start: [0] })
2512
+ * const values = Array.from(Graph.values(dfs))
2513
+ * console.log(values) // ["A", "B"]
2514
+ * ```
2515
+ *
2516
+ * @since 3.18.0
2517
+ * @category utilities
2518
+ */
2519
+ exports.indices = indices;
2520
+ const values = walker => walker.visit((_, data) => data);
2521
+ /**
2522
+ * Returns an iterator over [index, data] entries in the walker.
2523
+ *
2524
+ * @example
2525
+ * ```ts
2526
+ * import { Graph } from "effect"
2527
+ *
2528
+ * const graph = Graph.directed<string, number>((mutable) => {
2529
+ * const a = Graph.addNode(mutable, "A")
2530
+ * const b = Graph.addNode(mutable, "B")
2531
+ * Graph.addEdge(mutable, a, b, 1)
2532
+ * })
2533
+ *
2534
+ * const dfs = Graph.dfs(graph, { start: [0] })
2535
+ * const entries = Array.from(Graph.entries(dfs))
2536
+ * console.log(entries) // [[0, "A"], [1, "B"]]
2537
+ * ```
2538
+ *
2539
+ * @since 3.18.0
2540
+ * @category utilities
2541
+ */
2542
+ exports.values = values;
2543
+ const entries = walker => walker.visit((index, data) => [index, data]);
2544
+ /**
2545
+ * Creates a new DFS iterator with optional configuration.
2546
+ *
2547
+ * The iterator maintains a stack of nodes to visit and tracks discovered nodes.
2548
+ * It provides lazy evaluation of the depth-first search.
2549
+ *
2550
+ * @example
2551
+ * ```ts
2552
+ * import { Graph } from "effect"
2553
+ *
2554
+ * const graph = Graph.directed<string, number>((mutable) => {
2555
+ * const a = Graph.addNode(mutable, "A")
2556
+ * const b = Graph.addNode(mutable, "B")
2557
+ * const c = Graph.addNode(mutable, "C")
2558
+ * Graph.addEdge(mutable, a, b, 1)
2559
+ * Graph.addEdge(mutable, b, c, 1)
2560
+ * })
2561
+ *
2562
+ * // Start from a specific node
2563
+ * const dfs1 = Graph.dfs(graph, { start: [0] })
2564
+ * for (const nodeIndex of Graph.indices(dfs1)) {
2565
+ * console.log(nodeIndex) // Traverses in DFS order: 0, 1, 2
2566
+ * }
2567
+ *
2568
+ * // Empty iterator (no starting nodes)
2569
+ * const dfs2 = Graph.dfs(graph)
2570
+ * // Can be used programmatically
2571
+ * ```
2572
+ *
2573
+ * @since 3.18.0
2574
+ * @category iterators
2575
+ */
2576
+ exports.entries = entries;
2577
+ const dfs = (graph, config = {}) => {
2578
+ const start = config.start ?? [];
2579
+ const direction = config.direction ?? "outgoing";
2580
+ // Validate that all start nodes exist
2581
+ for (const nodeIndex of start) {
2582
+ if (!hasNode(graph, nodeIndex)) {
2583
+ throw missingNode(nodeIndex);
2584
+ }
2585
+ }
2586
+ return new Walker(f => ({
2587
+ [Symbol.iterator]: () => {
2588
+ const stack = [...start];
2589
+ const discovered = new Set();
2590
+ const nextMapped = () => {
2591
+ while (stack.length > 0) {
2592
+ const current = stack.pop();
2593
+ if (discovered.has(current)) {
2594
+ continue;
2595
+ }
2596
+ discovered.add(current);
2597
+ const nodeDataOption = graph.nodes.get(current);
2598
+ if (nodeDataOption === undefined) {
2599
+ continue;
2600
+ }
2601
+ const neighbors = neighborsDirected(graph, current, direction);
2602
+ for (let i = neighbors.length - 1; i >= 0; i--) {
2603
+ const neighbor = neighbors[i];
2604
+ if (!discovered.has(neighbor)) {
2605
+ stack.push(neighbor);
2606
+ }
2607
+ }
2608
+ return {
2609
+ done: false,
2610
+ value: f(current, nodeDataOption)
2611
+ };
2612
+ }
2613
+ return {
2614
+ done: true,
2615
+ value: undefined
2616
+ };
2617
+ };
2618
+ return {
2619
+ next: nextMapped
2620
+ };
2621
+ }
2622
+ }));
2623
+ };
2624
+ /**
2625
+ * Creates a new BFS iterator with optional configuration.
2626
+ *
2627
+ * The iterator maintains a queue of nodes to visit and tracks discovered nodes.
2628
+ * It provides lazy evaluation of the breadth-first search.
2629
+ *
2630
+ * @example
2631
+ * ```ts
2632
+ * import { Graph } from "effect"
2633
+ *
2634
+ * const graph = Graph.directed<string, number>((mutable) => {
2635
+ * const a = Graph.addNode(mutable, "A")
2636
+ * const b = Graph.addNode(mutable, "B")
2637
+ * const c = Graph.addNode(mutable, "C")
2638
+ * Graph.addEdge(mutable, a, b, 1)
2639
+ * Graph.addEdge(mutable, b, c, 1)
2640
+ * })
2641
+ *
2642
+ * // Start from a specific node
2643
+ * const bfs1 = Graph.bfs(graph, { start: [0] })
2644
+ * for (const nodeIndex of Graph.indices(bfs1)) {
2645
+ * console.log(nodeIndex) // Traverses in BFS order: 0, 1, 2
2646
+ * }
2647
+ *
2648
+ * // Empty iterator (no starting nodes)
2649
+ * const bfs2 = Graph.bfs(graph)
2650
+ * // Can be used programmatically
2651
+ * ```
2652
+ *
2653
+ * @since 3.18.0
2654
+ * @category iterators
2655
+ */
2656
+ exports.dfs = dfs;
2657
+ const bfs = (graph, config = {}) => {
2658
+ const start = config.start ?? [];
2659
+ const direction = config.direction ?? "outgoing";
2660
+ // Validate that all start nodes exist
2661
+ for (const nodeIndex of start) {
2662
+ if (!hasNode(graph, nodeIndex)) {
2663
+ throw missingNode(nodeIndex);
2664
+ }
2665
+ }
2666
+ return new Walker(f => ({
2667
+ [Symbol.iterator]: () => {
2668
+ const queue = [...start];
2669
+ const discovered = new Set();
2670
+ const nextMapped = () => {
2671
+ while (queue.length > 0) {
2672
+ const current = queue.shift();
2673
+ if (!discovered.has(current)) {
2674
+ discovered.add(current);
2675
+ const neighbors = neighborsDirected(graph, current, direction);
2676
+ for (const neighbor of neighbors) {
2677
+ if (!discovered.has(neighbor)) {
2678
+ queue.push(neighbor);
2679
+ }
2680
+ }
2681
+ const nodeData = getNode(graph, current);
2682
+ if (Option.isSome(nodeData)) {
2683
+ return {
2684
+ done: false,
2685
+ value: f(current, nodeData.value)
2686
+ };
2687
+ }
2688
+ return nextMapped();
2689
+ }
2690
+ }
2691
+ return {
2692
+ done: true,
2693
+ value: undefined
2694
+ };
2695
+ };
2696
+ return {
2697
+ next: nextMapped
2698
+ };
2699
+ }
2700
+ }));
2701
+ };
2702
+ /**
2703
+ * Creates a new topological sort iterator with optional configuration.
2704
+ *
2705
+ * The iterator uses Kahn's algorithm to lazily produce nodes in topological order.
2706
+ * Throws an error if the graph contains cycles.
2707
+ *
2708
+ * @example
2709
+ * ```ts
2710
+ * import { Graph } from "effect"
2711
+ *
2712
+ * const graph = Graph.directed<string, number>((mutable) => {
2713
+ * const a = Graph.addNode(mutable, "A")
2714
+ * const b = Graph.addNode(mutable, "B")
2715
+ * const c = Graph.addNode(mutable, "C")
2716
+ * Graph.addEdge(mutable, a, b, 1)
2717
+ * Graph.addEdge(mutable, b, c, 1)
2718
+ * })
2719
+ *
2720
+ * // Standard topological sort
2721
+ * const topo1 = Graph.topo(graph)
2722
+ * for (const nodeIndex of Graph.indices(topo1)) {
2723
+ * console.log(nodeIndex) // 0, 1, 2 (topological order)
2724
+ * }
2725
+ *
2726
+ * // With initial nodes
2727
+ * const topo2 = Graph.topo(graph, { initials: [0] })
2728
+ *
2729
+ * // Throws error for cyclic graph
2730
+ * const cyclicGraph = Graph.directed<string, number>((mutable) => {
2731
+ * const a = Graph.addNode(mutable, "A")
2732
+ * const b = Graph.addNode(mutable, "B")
2733
+ * Graph.addEdge(mutable, a, b, 1)
2734
+ * Graph.addEdge(mutable, b, a, 2) // Creates cycle
2735
+ * })
2736
+ *
2737
+ * try {
2738
+ * Graph.topo(cyclicGraph) // Throws: "Cannot perform topological sort on cyclic graph"
2739
+ * } catch (error) {
2740
+ * console.log((error as Error).message)
2741
+ * }
2742
+ * ```
2743
+ *
2744
+ * @since 3.18.0
2745
+ * @category iterators
2746
+ */
2747
+ exports.bfs = bfs;
2748
+ const topo = (graph, config = {}) => {
2749
+ // Check if graph is acyclic first
2750
+ if (!isAcyclic(graph)) {
2751
+ throw new Error("Cannot perform topological sort on cyclic graph");
2752
+ }
2753
+ const initials = config.initials ?? [];
2754
+ // Validate that all initial nodes exist
2755
+ for (const nodeIndex of initials) {
2756
+ if (!hasNode(graph, nodeIndex)) {
2757
+ throw missingNode(nodeIndex);
2758
+ }
2759
+ }
2760
+ return new Walker(f => ({
2761
+ [Symbol.iterator]: () => {
2762
+ const inDegree = new Map();
2763
+ const remaining = new Set();
2764
+ const queue = [...initials];
2765
+ // Initialize in-degree counts
2766
+ for (const [nodeIndex] of graph.nodes) {
2767
+ inDegree.set(nodeIndex, 0);
2768
+ remaining.add(nodeIndex);
2769
+ }
2770
+ // Calculate in-degrees
2771
+ for (const [, edgeData] of graph.edges) {
2772
+ const currentInDegree = inDegree.get(edgeData.target) || 0;
2773
+ inDegree.set(edgeData.target, currentInDegree + 1);
2774
+ }
2775
+ // Add nodes with zero in-degree to queue if no initials provided
2776
+ if (initials.length === 0) {
2777
+ for (const [nodeIndex, degree] of inDegree) {
2778
+ if (degree === 0) {
2779
+ queue.push(nodeIndex);
2780
+ }
2781
+ }
2782
+ }
2783
+ const nextMapped = () => {
2784
+ while (queue.length > 0) {
2785
+ const current = queue.shift();
2786
+ if (remaining.has(current)) {
2787
+ remaining.delete(current);
2788
+ // Process outgoing edges, reducing in-degree of targets
2789
+ const neighbors = neighborsDirected(graph, current, "outgoing");
2790
+ for (const neighbor of neighbors) {
2791
+ if (remaining.has(neighbor)) {
2792
+ const currentInDegree = inDegree.get(neighbor) || 0;
2793
+ const newInDegree = currentInDegree - 1;
2794
+ inDegree.set(neighbor, newInDegree);
2795
+ // If in-degree becomes 0, add to queue
2796
+ if (newInDegree === 0) {
2797
+ queue.push(neighbor);
2798
+ }
2799
+ }
2800
+ }
2801
+ const nodeData = getNode(graph, current);
2802
+ if (Option.isSome(nodeData)) {
2803
+ return {
2804
+ done: false,
2805
+ value: f(current, nodeData.value)
2806
+ };
2807
+ }
2808
+ return nextMapped();
2809
+ }
2810
+ }
2811
+ return {
2812
+ done: true,
2813
+ value: undefined
2814
+ };
2815
+ };
2816
+ return {
2817
+ next: nextMapped
2818
+ };
2819
+ }
2820
+ }));
2821
+ };
2822
+ /**
2823
+ * Creates a new DFS postorder iterator with optional configuration.
2824
+ *
2825
+ * The iterator maintains a stack with visit state tracking and emits nodes
2826
+ * in postorder (after all descendants have been processed). Essential for
2827
+ * dependency resolution and tree destruction algorithms.
2828
+ *
2829
+ * @example
2830
+ * ```ts
2831
+ * import { Graph } from "effect"
2832
+ *
2833
+ * const graph = Graph.directed<string, number>((mutable) => {
2834
+ * const root = Graph.addNode(mutable, "root")
2835
+ * const child1 = Graph.addNode(mutable, "child1")
2836
+ * const child2 = Graph.addNode(mutable, "child2")
2837
+ * Graph.addEdge(mutable, root, child1, 1)
2838
+ * Graph.addEdge(mutable, root, child2, 1)
2839
+ * })
2840
+ *
2841
+ * // Postorder: children before parents
2842
+ * const postOrder = Graph.dfsPostOrder(graph, { start: [0] })
2843
+ * for (const node of postOrder) {
2844
+ * console.log(node) // 1, 2, 0
2845
+ * }
2846
+ * ```
2847
+ *
2848
+ * @since 3.18.0
2849
+ * @category iterators
2850
+ */
2851
+ exports.topo = topo;
2852
+ const dfsPostOrder = (graph, config = {}) => {
2853
+ const start = config.start ?? [];
2854
+ const direction = config.direction ?? "outgoing";
2855
+ // Validate that all start nodes exist
2856
+ for (const nodeIndex of start) {
2857
+ if (!hasNode(graph, nodeIndex)) {
2858
+ throw missingNode(nodeIndex);
2859
+ }
2860
+ }
2861
+ return new Walker(f => ({
2862
+ [Symbol.iterator]: () => {
2863
+ const stack = [];
2864
+ const discovered = new Set();
2865
+ const finished = new Set();
2866
+ // Initialize stack with start nodes
2867
+ for (let i = start.length - 1; i >= 0; i--) {
2868
+ stack.push({
2869
+ node: start[i],
2870
+ visitedChildren: false
2871
+ });
2872
+ }
2873
+ const nextMapped = () => {
2874
+ while (stack.length > 0) {
2875
+ const current = stack[stack.length - 1];
2876
+ if (!discovered.has(current.node)) {
2877
+ discovered.add(current.node);
2878
+ current.visitedChildren = false;
2879
+ }
2880
+ if (!current.visitedChildren) {
2881
+ current.visitedChildren = true;
2882
+ const neighbors = neighborsDirected(graph, current.node, direction);
2883
+ for (let i = neighbors.length - 1; i >= 0; i--) {
2884
+ const neighbor = neighbors[i];
2885
+ if (!discovered.has(neighbor) && !finished.has(neighbor)) {
2886
+ stack.push({
2887
+ node: neighbor,
2888
+ visitedChildren: false
2889
+ });
2890
+ }
2891
+ }
2892
+ } else {
2893
+ const nodeToEmit = stack.pop().node;
2894
+ if (!finished.has(nodeToEmit)) {
2895
+ finished.add(nodeToEmit);
2896
+ const nodeData = getNode(graph, nodeToEmit);
2897
+ if (Option.isSome(nodeData)) {
2898
+ return {
2899
+ done: false,
2900
+ value: f(nodeToEmit, nodeData.value)
2901
+ };
2902
+ }
2903
+ return nextMapped();
2904
+ }
2905
+ }
2906
+ }
2907
+ return {
2908
+ done: true,
2909
+ value: undefined
2910
+ };
2911
+ };
2912
+ return {
2913
+ next: nextMapped
2914
+ };
2915
+ }
2916
+ }));
2917
+ };
2918
+ /**
2919
+ * Creates an iterator over all node indices in the graph.
2920
+ *
2921
+ * The iterator produces node indices in the order they were added to the graph.
2922
+ * This provides access to all nodes regardless of connectivity.
2923
+ *
2924
+ * @example
2925
+ * ```ts
2926
+ * import { Graph } from "effect"
2927
+ *
2928
+ * const graph = Graph.directed<string, number>((mutable) => {
2929
+ * const a = Graph.addNode(mutable, "A")
2930
+ * const b = Graph.addNode(mutable, "B")
2931
+ * const c = Graph.addNode(mutable, "C")
2932
+ * Graph.addEdge(mutable, a, b, 1)
2933
+ * })
2934
+ *
2935
+ * const indices = Array.from(Graph.indices(Graph.nodes(graph)))
2936
+ * console.log(indices) // [0, 1, 2]
2937
+ * ```
2938
+ *
2939
+ * @since 3.18.0
2940
+ * @category iterators
2941
+ */
2942
+ exports.dfsPostOrder = dfsPostOrder;
2943
+ const nodes = graph => new Walker(f => ({
2944
+ [Symbol.iterator]() {
2945
+ const nodeMap = graph.nodes;
2946
+ const iterator = nodeMap.entries();
2947
+ return {
2948
+ next() {
2949
+ const result = iterator.next();
2950
+ if (result.done) {
2951
+ return {
2952
+ done: true,
2953
+ value: undefined
2954
+ };
2955
+ }
2956
+ const [nodeIndex, nodeData] = result.value;
2957
+ return {
2958
+ done: false,
2959
+ value: f(nodeIndex, nodeData)
2960
+ };
2961
+ }
2962
+ };
2963
+ }
2964
+ }));
2965
+ /**
2966
+ * Creates an iterator over all edge indices in the graph.
2967
+ *
2968
+ * The iterator produces edge indices in the order they were added to the graph.
2969
+ * This provides access to all edges regardless of connectivity.
2970
+ *
2971
+ * @example
2972
+ * ```ts
2973
+ * import { Graph } from "effect"
2974
+ *
2975
+ * const graph = Graph.directed<string, number>((mutable) => {
2976
+ * const a = Graph.addNode(mutable, "A")
2977
+ * const b = Graph.addNode(mutable, "B")
2978
+ * const c = Graph.addNode(mutable, "C")
2979
+ * Graph.addEdge(mutable, a, b, 1)
2980
+ * Graph.addEdge(mutable, b, c, 2)
2981
+ * })
2982
+ *
2983
+ * const indices = Array.from(Graph.indices(Graph.edges(graph)))
2984
+ * console.log(indices) // [0, 1]
2985
+ * ```
2986
+ *
2987
+ * @since 3.18.0
2988
+ * @category iterators
2989
+ */
2990
+ exports.nodes = nodes;
2991
+ const edges = graph => new Walker(f => ({
2992
+ [Symbol.iterator]() {
2993
+ const edgeMap = graph.edges;
2994
+ const iterator = edgeMap.entries();
2995
+ return {
2996
+ next() {
2997
+ const result = iterator.next();
2998
+ if (result.done) {
2999
+ return {
3000
+ done: true,
3001
+ value: undefined
3002
+ };
3003
+ }
3004
+ const [edgeIndex, edgeData] = result.value;
3005
+ return {
3006
+ done: false,
3007
+ value: f(edgeIndex, edgeData)
3008
+ };
3009
+ }
3010
+ };
3011
+ }
3012
+ }));
3013
+ /**
3014
+ * Creates an iterator over external nodes (nodes without edges in specified direction).
3015
+ *
3016
+ * External nodes are nodes that have no outgoing edges (direction="outgoing") or
3017
+ * no incoming edges (direction="incoming"). These are useful for finding
3018
+ * sources, sinks, or isolated nodes.
3019
+ *
3020
+ * @example
3021
+ * ```ts
3022
+ * import { Graph } from "effect"
3023
+ *
3024
+ * const graph = Graph.directed<string, number>((mutable) => {
3025
+ * const source = Graph.addNode(mutable, "source") // 0 - no incoming
3026
+ * const middle = Graph.addNode(mutable, "middle") // 1 - has both
3027
+ * const sink = Graph.addNode(mutable, "sink") // 2 - no outgoing
3028
+ * const isolated = Graph.addNode(mutable, "isolated") // 3 - no edges
3029
+ *
3030
+ * Graph.addEdge(mutable, source, middle, 1)
3031
+ * Graph.addEdge(mutable, middle, sink, 2)
3032
+ * })
3033
+ *
3034
+ * // Nodes with no outgoing edges (sinks + isolated)
3035
+ * const sinks = Array.from(Graph.indices(Graph.externals(graph, { direction: "outgoing" })))
3036
+ * console.log(sinks) // [2, 3]
3037
+ *
3038
+ * // Nodes with no incoming edges (sources + isolated)
3039
+ * const sources = Array.from(Graph.indices(Graph.externals(graph, { direction: "incoming" })))
3040
+ * console.log(sources) // [0, 3]
3041
+ * ```
3042
+ *
3043
+ * @since 3.18.0
3044
+ * @category iterators
3045
+ */
3046
+ exports.edges = edges;
3047
+ const externals = (graph, config = {}) => {
3048
+ const direction = config.direction ?? "outgoing";
3049
+ return new Walker(f => ({
3050
+ [Symbol.iterator]: () => {
3051
+ const nodeMap = graph.nodes;
3052
+ const adjacencyMap = direction === "incoming" ? graph.reverseAdjacency : graph.adjacency;
3053
+ const nodeIterator = nodeMap.entries();
3054
+ const nextMapped = () => {
3055
+ let current = nodeIterator.next();
3056
+ while (!current.done) {
3057
+ const [nodeIndex, nodeData] = current.value;
3058
+ const adjacencyList = adjacencyMap.get(nodeIndex);
3059
+ // Node is external if it has no edges in the specified direction
3060
+ if (adjacencyList === undefined || adjacencyList.length === 0) {
3061
+ return {
3062
+ done: false,
3063
+ value: f(nodeIndex, nodeData)
3064
+ };
3065
+ }
3066
+ current = nodeIterator.next();
3067
+ }
3068
+ return {
3069
+ done: true,
3070
+ value: undefined
3071
+ };
3072
+ };
3073
+ return {
3074
+ next: nextMapped
3075
+ };
3076
+ }
3077
+ }));
3078
+ };
3079
+ exports.externals = externals;
3080
+ //# sourceMappingURL=Graph.js.map