@clayroach/effect 3.19.14-source-capture.8 → 3.19.14-source-trace.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (452) hide show
  1. package/SourceLocation/package.json +6 -0
  2. package/dist/cjs/Effect.js +2 -28
  3. package/dist/cjs/Effect.js.map +1 -1
  4. package/dist/cjs/FiberRef.js +12 -1
  5. package/dist/cjs/FiberRef.js.map +1 -1
  6. package/dist/cjs/Layer.js +2 -24
  7. package/dist/cjs/Layer.js.map +1 -1
  8. package/dist/cjs/RuntimeFlags.js +1 -29
  9. package/dist/cjs/RuntimeFlags.js.map +1 -1
  10. package/dist/cjs/SourceLocation.js +60 -0
  11. package/dist/cjs/SourceLocation.js.map +1 -0
  12. package/dist/cjs/Tracer.js +1 -15
  13. package/dist/cjs/Tracer.js.map +1 -1
  14. package/dist/cjs/Utils.js +1 -1
  15. package/dist/cjs/Utils.js.map +1 -1
  16. package/dist/cjs/index.js +3 -1
  17. package/dist/cjs/index.js.map +1 -1
  18. package/dist/cjs/internal/clock.js +1 -1
  19. package/dist/cjs/internal/clock.js.map +1 -1
  20. package/dist/cjs/internal/core.js +17 -50
  21. package/dist/cjs/internal/core.js.map +1 -1
  22. package/dist/cjs/internal/effect/circular.js +18 -30
  23. package/dist/cjs/internal/effect/circular.js.map +1 -1
  24. package/dist/cjs/internal/fiberRuntime.js +16 -65
  25. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  26. package/dist/cjs/internal/layer/circular.js +1 -5
  27. package/dist/cjs/internal/layer/circular.js.map +1 -1
  28. package/dist/cjs/internal/layer.js +1 -3
  29. package/dist/cjs/internal/layer.js.map +1 -1
  30. package/dist/cjs/internal/logger.js +25 -2
  31. package/dist/cjs/internal/logger.js.map +1 -1
  32. package/dist/cjs/internal/runtimeFlags.js +2 -11
  33. package/dist/cjs/internal/runtimeFlags.js.map +1 -1
  34. package/dist/cjs/internal/tracer.js +1 -114
  35. package/dist/cjs/internal/tracer.js.map +1 -1
  36. package/dist/dts/Config.d.ts +2 -2
  37. package/dist/dts/Config.d.ts.map +1 -1
  38. package/dist/dts/Effect.d.ts +8 -29
  39. package/dist/dts/Effect.d.ts.map +1 -1
  40. package/dist/dts/FiberRef.d.ts +12 -0
  41. package/dist/dts/FiberRef.d.ts.map +1 -1
  42. package/dist/dts/Layer.d.ts +0 -22
  43. package/dist/dts/Layer.d.ts.map +1 -1
  44. package/dist/dts/RuntimeFlags.d.ts +0 -28
  45. package/dist/dts/RuntimeFlags.d.ts.map +1 -1
  46. package/dist/dts/SourceLocation.d.ts +88 -0
  47. package/dist/dts/SourceLocation.d.ts.map +1 -0
  48. package/dist/dts/Tracer.d.ts +0 -15
  49. package/dist/dts/Tracer.d.ts.map +1 -1
  50. package/dist/dts/index.d.ts +6 -0
  51. package/dist/dts/index.d.ts.map +1 -1
  52. package/dist/dts/internal/core.d.ts.map +1 -1
  53. package/dist/dts/internal/layer.d.ts.map +1 -1
  54. package/dist/dts/internal/runtimeFlags.d.ts.map +1 -1
  55. package/dist/esm/Effect.js +0 -26
  56. package/dist/esm/Effect.js.map +1 -1
  57. package/dist/esm/FiberRef.js +11 -0
  58. package/dist/esm/FiberRef.js.map +1 -1
  59. package/dist/esm/Layer.js +0 -22
  60. package/dist/esm/Layer.js.map +1 -1
  61. package/dist/esm/RuntimeFlags.js +0 -28
  62. package/dist/esm/RuntimeFlags.js.map +1 -1
  63. package/dist/esm/SourceLocation.js +51 -0
  64. package/dist/esm/SourceLocation.js.map +1 -0
  65. package/dist/esm/Tracer.js +0 -14
  66. package/dist/esm/Tracer.js.map +1 -1
  67. package/dist/esm/Utils.js +1 -1
  68. package/dist/esm/Utils.js.map +1 -1
  69. package/dist/esm/index.js +6 -0
  70. package/dist/esm/index.js.map +1 -1
  71. package/dist/esm/internal/clock.js +1 -1
  72. package/dist/esm/internal/clock.js.map +1 -1
  73. package/dist/esm/internal/core.js +12 -45
  74. package/dist/esm/internal/core.js.map +1 -1
  75. package/dist/esm/internal/effect/circular.js +18 -30
  76. package/dist/esm/internal/effect/circular.js.map +1 -1
  77. package/dist/esm/internal/fiberRuntime.js +13 -60
  78. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  79. package/dist/esm/internal/layer/circular.js +0 -4
  80. package/dist/esm/internal/layer/circular.js.map +1 -1
  81. package/dist/esm/internal/layer.js +0 -2
  82. package/dist/esm/internal/layer.js.map +1 -1
  83. package/dist/esm/internal/logger.js +25 -2
  84. package/dist/esm/internal/logger.js.map +1 -1
  85. package/dist/esm/internal/runtimeFlags.js +1 -9
  86. package/dist/esm/internal/runtimeFlags.js.map +1 -1
  87. package/dist/esm/internal/tracer.js +0 -111
  88. package/dist/esm/internal/tracer.js.map +1 -1
  89. package/package.json +12 -1
  90. package/src/Arbitrary.ts +1101 -0
  91. package/src/Array.ts +3589 -0
  92. package/src/BigDecimal.ts +1349 -0
  93. package/src/BigInt.ts +643 -0
  94. package/src/Boolean.ts +287 -0
  95. package/src/Brand.ts +360 -0
  96. package/src/Cache.ts +281 -0
  97. package/src/Cause.ts +1555 -0
  98. package/src/Channel.ts +2355 -0
  99. package/src/ChildExecutorDecision.ts +146 -0
  100. package/src/Chunk.ts +1495 -0
  101. package/src/Clock.ts +111 -0
  102. package/src/Config.ts +542 -0
  103. package/src/ConfigError.ts +270 -0
  104. package/src/ConfigProvider.ts +333 -0
  105. package/src/ConfigProviderPathPatch.ts +100 -0
  106. package/src/Console.ts +226 -0
  107. package/src/Context.ts +585 -0
  108. package/src/Cron.ts +706 -0
  109. package/src/Data.ts +596 -0
  110. package/src/DateTime.ts +1686 -0
  111. package/src/DefaultServices.ts +34 -0
  112. package/src/Deferred.ts +301 -0
  113. package/src/Differ.ts +450 -0
  114. package/src/Duration.ts +1000 -0
  115. package/src/Effect.ts +14817 -0
  116. package/src/Effectable.ts +107 -0
  117. package/src/Either.ts +1040 -0
  118. package/src/Encoding.ts +195 -0
  119. package/src/Equal.ts +98 -0
  120. package/src/Equivalence.ts +235 -0
  121. package/src/ExecutionPlan.ts +308 -0
  122. package/src/ExecutionStrategy.ts +119 -0
  123. package/src/Exit.ts +467 -0
  124. package/src/FastCheck.ts +9 -0
  125. package/src/Fiber.ts +744 -0
  126. package/src/FiberHandle.ts +540 -0
  127. package/src/FiberId.ts +195 -0
  128. package/src/FiberMap.ts +656 -0
  129. package/src/FiberRef.ts +444 -0
  130. package/src/FiberRefs.ts +204 -0
  131. package/src/FiberRefsPatch.ts +105 -0
  132. package/src/FiberSet.ts +491 -0
  133. package/src/FiberStatus.ts +108 -0
  134. package/src/Function.ts +1222 -0
  135. package/src/GlobalValue.ts +53 -0
  136. package/src/Graph.ts +3732 -0
  137. package/src/GroupBy.ts +103 -0
  138. package/src/HKT.ts +45 -0
  139. package/src/Hash.ts +195 -0
  140. package/src/HashMap.ts +519 -0
  141. package/src/HashRing.ts +317 -0
  142. package/src/HashSet.ts +2346 -0
  143. package/src/Inspectable.ts +287 -0
  144. package/src/Iterable.ts +1119 -0
  145. package/src/JSONSchema.ts +1044 -0
  146. package/src/KeyedPool.ts +167 -0
  147. package/src/Layer.ts +1228 -0
  148. package/src/LayerMap.ts +436 -0
  149. package/src/List.ts +977 -0
  150. package/src/LogLevel.ts +285 -0
  151. package/src/LogSpan.ts +25 -0
  152. package/src/Logger.ts +702 -0
  153. package/src/Mailbox.ts +268 -0
  154. package/src/ManagedRuntime.ts +180 -0
  155. package/src/Match.ts +1477 -0
  156. package/src/MergeDecision.ts +95 -0
  157. package/src/MergeState.ts +172 -0
  158. package/src/MergeStrategy.ts +107 -0
  159. package/src/Metric.ts +780 -0
  160. package/src/MetricBoundaries.ts +69 -0
  161. package/src/MetricHook.ts +151 -0
  162. package/src/MetricKey.ts +224 -0
  163. package/src/MetricKeyType.ts +262 -0
  164. package/src/MetricLabel.ts +47 -0
  165. package/src/MetricPair.ts +71 -0
  166. package/src/MetricPolling.ts +148 -0
  167. package/src/MetricRegistry.ts +48 -0
  168. package/src/MetricState.ts +257 -0
  169. package/src/Micro.ts +4405 -0
  170. package/src/ModuleVersion.ts +18 -0
  171. package/src/MutableHashMap.ts +411 -0
  172. package/src/MutableHashSet.ts +706 -0
  173. package/src/MutableList.ts +297 -0
  174. package/src/MutableQueue.ts +227 -0
  175. package/src/MutableRef.ts +202 -0
  176. package/src/NonEmptyIterable.ts +32 -0
  177. package/src/Number.ts +1071 -0
  178. package/src/Option.ts +2170 -0
  179. package/src/Order.ts +373 -0
  180. package/src/Ordering.ts +111 -0
  181. package/src/ParseResult.ts +2031 -0
  182. package/src/PartitionedSemaphore.ts +200 -0
  183. package/src/Pipeable.ts +566 -0
  184. package/src/Pool.ts +204 -0
  185. package/src/Predicate.ts +1405 -0
  186. package/src/Pretty.ts +205 -0
  187. package/src/PrimaryKey.ts +23 -0
  188. package/src/PubSub.ts +182 -0
  189. package/src/Queue.ts +644 -0
  190. package/src/Random.ts +204 -0
  191. package/src/RateLimiter.ts +138 -0
  192. package/src/RcMap.ts +141 -0
  193. package/src/RcRef.ts +122 -0
  194. package/src/Readable.ts +93 -0
  195. package/src/Record.ts +1274 -0
  196. package/src/RedBlackTree.ts +421 -0
  197. package/src/Redacted.ts +144 -0
  198. package/src/Ref.ts +180 -0
  199. package/src/RegExp.ts +38 -0
  200. package/src/Reloadable.ts +127 -0
  201. package/src/Request.ts +347 -0
  202. package/src/RequestBlock.ts +118 -0
  203. package/src/RequestResolver.ts +366 -0
  204. package/src/Resource.ts +119 -0
  205. package/src/Runtime.ts +383 -0
  206. package/src/RuntimeFlags.ts +336 -0
  207. package/src/RuntimeFlagsPatch.ts +183 -0
  208. package/src/STM.ts +2045 -0
  209. package/src/Schedule.ts +2219 -0
  210. package/src/ScheduleDecision.ts +62 -0
  211. package/src/ScheduleInterval.ts +151 -0
  212. package/src/ScheduleIntervals.ts +122 -0
  213. package/src/Scheduler.ts +353 -0
  214. package/src/Schema.ts +10914 -0
  215. package/src/SchemaAST.ts +3043 -0
  216. package/src/Scope.ts +204 -0
  217. package/src/ScopedCache.ts +151 -0
  218. package/src/ScopedRef.ts +117 -0
  219. package/src/Secret.ts +88 -0
  220. package/src/SingleProducerAsyncInput.ts +67 -0
  221. package/src/Sink.ts +1461 -0
  222. package/src/SortedMap.ts +287 -0
  223. package/src/SortedSet.ts +390 -0
  224. package/src/SourceLocation.ts +108 -0
  225. package/src/Stream.ts +6468 -0
  226. package/src/StreamEmit.ts +136 -0
  227. package/src/StreamHaltStrategy.ts +123 -0
  228. package/src/Streamable.ts +45 -0
  229. package/src/String.ts +778 -0
  230. package/src/Struct.ts +243 -0
  231. package/src/Subscribable.ts +100 -0
  232. package/src/SubscriptionRef.ts +298 -0
  233. package/src/Supervisor.ts +240 -0
  234. package/src/Symbol.ts +29 -0
  235. package/src/SynchronizedRef.ts +270 -0
  236. package/src/TArray.ts +495 -0
  237. package/src/TDeferred.ts +100 -0
  238. package/src/TMap.ts +515 -0
  239. package/src/TPriorityQueue.ts +223 -0
  240. package/src/TPubSub.ts +200 -0
  241. package/src/TQueue.ts +432 -0
  242. package/src/TRandom.ts +129 -0
  243. package/src/TReentrantLock.ts +224 -0
  244. package/src/TRef.ts +178 -0
  245. package/src/TSemaphore.ts +129 -0
  246. package/src/TSet.ts +365 -0
  247. package/src/TSubscriptionRef.ts +192 -0
  248. package/src/Take.ts +258 -0
  249. package/src/TestAnnotation.ts +158 -0
  250. package/src/TestAnnotationMap.ts +119 -0
  251. package/src/TestAnnotations.ts +117 -0
  252. package/src/TestClock.ts +556 -0
  253. package/src/TestConfig.ts +47 -0
  254. package/src/TestContext.ts +36 -0
  255. package/src/TestLive.ts +53 -0
  256. package/src/TestServices.ts +390 -0
  257. package/src/TestSized.ts +55 -0
  258. package/src/Tracer.ts +182 -0
  259. package/src/Trie.ts +840 -0
  260. package/src/Tuple.ts +305 -0
  261. package/src/Types.ts +353 -0
  262. package/src/Unify.ts +113 -0
  263. package/src/UpstreamPullRequest.ts +117 -0
  264. package/src/UpstreamPullStrategy.ts +121 -0
  265. package/src/Utils.ts +809 -0
  266. package/src/index.ts +1568 -0
  267. package/src/internal/array.ts +8 -0
  268. package/src/internal/blockedRequests.ts +520 -0
  269. package/src/internal/cache.ts +733 -0
  270. package/src/internal/cause.ts +1050 -0
  271. package/src/internal/channel/channelExecutor.ts +1200 -0
  272. package/src/internal/channel/channelState.ts +134 -0
  273. package/src/internal/channel/childExecutorDecision.ts +96 -0
  274. package/src/internal/channel/continuation.ts +200 -0
  275. package/src/internal/channel/mergeDecision.ts +113 -0
  276. package/src/internal/channel/mergeState.ts +120 -0
  277. package/src/internal/channel/mergeStrategy.ts +72 -0
  278. package/src/internal/channel/singleProducerAsyncInput.ts +259 -0
  279. package/src/internal/channel/subexecutor.ts +229 -0
  280. package/src/internal/channel/upstreamPullRequest.ts +84 -0
  281. package/src/internal/channel/upstreamPullStrategy.ts +87 -0
  282. package/src/internal/channel.ts +2603 -0
  283. package/src/internal/clock.ts +95 -0
  284. package/src/internal/completedRequestMap.ts +9 -0
  285. package/src/internal/concurrency.ts +54 -0
  286. package/src/internal/config.ts +716 -0
  287. package/src/internal/configError.ts +304 -0
  288. package/src/internal/configProvider/pathPatch.ts +97 -0
  289. package/src/internal/configProvider.ts +799 -0
  290. package/src/internal/console.ts +153 -0
  291. package/src/internal/context.ts +337 -0
  292. package/src/internal/core-effect.ts +2293 -0
  293. package/src/internal/core-stream.ts +998 -0
  294. package/src/internal/core.ts +3189 -0
  295. package/src/internal/data.ts +36 -0
  296. package/src/internal/dataSource.ts +327 -0
  297. package/src/internal/dateTime.ts +1277 -0
  298. package/src/internal/defaultServices/console.ts +100 -0
  299. package/src/internal/defaultServices.ts +163 -0
  300. package/src/internal/deferred.ts +46 -0
  301. package/src/internal/differ/chunkPatch.ts +211 -0
  302. package/src/internal/differ/contextPatch.ts +232 -0
  303. package/src/internal/differ/hashMapPatch.ts +220 -0
  304. package/src/internal/differ/hashSetPatch.ts +176 -0
  305. package/src/internal/differ/orPatch.ts +311 -0
  306. package/src/internal/differ/readonlyArrayPatch.ts +210 -0
  307. package/src/internal/differ.ts +200 -0
  308. package/src/internal/doNotation.ts +80 -0
  309. package/src/internal/effect/circular.ts +895 -0
  310. package/src/internal/effectable.ts +131 -0
  311. package/src/internal/either.ts +110 -0
  312. package/src/internal/encoding/base64.ts +286 -0
  313. package/src/internal/encoding/base64Url.ts +29 -0
  314. package/src/internal/encoding/common.ts +51 -0
  315. package/src/internal/encoding/hex.ts +315 -0
  316. package/src/internal/errors.ts +7 -0
  317. package/src/internal/executionPlan.ts +114 -0
  318. package/src/internal/executionStrategy.ts +74 -0
  319. package/src/internal/fiber.ts +388 -0
  320. package/src/internal/fiberId.ts +267 -0
  321. package/src/internal/fiberMessage.ts +82 -0
  322. package/src/internal/fiberRefs/patch.ts +144 -0
  323. package/src/internal/fiberRefs.ts +297 -0
  324. package/src/internal/fiberRuntime.ts +3842 -0
  325. package/src/internal/fiberScope.ts +71 -0
  326. package/src/internal/fiberStatus.ts +119 -0
  327. package/src/internal/groupBy.ts +530 -0
  328. package/src/internal/hashMap/array.ts +49 -0
  329. package/src/internal/hashMap/bitwise.ts +32 -0
  330. package/src/internal/hashMap/config.ts +14 -0
  331. package/src/internal/hashMap/keySet.ts +8 -0
  332. package/src/internal/hashMap/node.ts +391 -0
  333. package/src/internal/hashMap.ts +586 -0
  334. package/src/internal/hashSet.ts +323 -0
  335. package/src/internal/keyedPool.ts +244 -0
  336. package/src/internal/layer/circular.ts +214 -0
  337. package/src/internal/layer.ts +1483 -0
  338. package/src/internal/logSpan.ts +20 -0
  339. package/src/internal/logger-circular.ts +24 -0
  340. package/src/internal/logger.ts +522 -0
  341. package/src/internal/mailbox.ts +561 -0
  342. package/src/internal/managedRuntime/circular.ts +6 -0
  343. package/src/internal/managedRuntime.ts +134 -0
  344. package/src/internal/matcher.ts +652 -0
  345. package/src/internal/metric/boundaries.ts +75 -0
  346. package/src/internal/metric/hook.ts +483 -0
  347. package/src/internal/metric/key.ts +167 -0
  348. package/src/internal/metric/keyType.ts +238 -0
  349. package/src/internal/metric/label.ts +41 -0
  350. package/src/internal/metric/pair.ts +48 -0
  351. package/src/internal/metric/polling.ts +149 -0
  352. package/src/internal/metric/registry.ts +187 -0
  353. package/src/internal/metric/state.ts +290 -0
  354. package/src/internal/metric.ts +577 -0
  355. package/src/internal/opCodes/cause.ts +35 -0
  356. package/src/internal/opCodes/channel.ts +83 -0
  357. package/src/internal/opCodes/channelChildExecutorDecision.ts +17 -0
  358. package/src/internal/opCodes/channelMergeDecision.ts +11 -0
  359. package/src/internal/opCodes/channelMergeState.ts +17 -0
  360. package/src/internal/opCodes/channelMergeStrategy.ts +11 -0
  361. package/src/internal/opCodes/channelState.ts +23 -0
  362. package/src/internal/opCodes/channelUpstreamPullRequest.ts +11 -0
  363. package/src/internal/opCodes/channelUpstreamPullStrategy.ts +11 -0
  364. package/src/internal/opCodes/config.ts +65 -0
  365. package/src/internal/opCodes/configError.ts +35 -0
  366. package/src/internal/opCodes/continuation.ts +11 -0
  367. package/src/internal/opCodes/deferred.ts +11 -0
  368. package/src/internal/opCodes/effect.ts +89 -0
  369. package/src/internal/opCodes/layer.ts +59 -0
  370. package/src/internal/opCodes/streamHaltStrategy.ts +23 -0
  371. package/src/internal/option.ts +80 -0
  372. package/src/internal/pool.ts +432 -0
  373. package/src/internal/pubsub.ts +1762 -0
  374. package/src/internal/query.ts +204 -0
  375. package/src/internal/queue.ts +766 -0
  376. package/src/internal/random.ts +161 -0
  377. package/src/internal/rateLimiter.ts +93 -0
  378. package/src/internal/rcMap.ts +285 -0
  379. package/src/internal/rcRef.ts +192 -0
  380. package/src/internal/redBlackTree/iterator.ts +200 -0
  381. package/src/internal/redBlackTree/node.ts +68 -0
  382. package/src/internal/redBlackTree.ts +1245 -0
  383. package/src/internal/redacted.ts +73 -0
  384. package/src/internal/ref.ts +171 -0
  385. package/src/internal/reloadable.ts +140 -0
  386. package/src/internal/request.ts +177 -0
  387. package/src/internal/resource.ts +76 -0
  388. package/src/internal/ringBuffer.ts +68 -0
  389. package/src/internal/runtime.ts +558 -0
  390. package/src/internal/runtimeFlags.ts +178 -0
  391. package/src/internal/runtimeFlagsPatch.ts +103 -0
  392. package/src/internal/schedule/decision.ts +47 -0
  393. package/src/internal/schedule/interval.ts +101 -0
  394. package/src/internal/schedule/intervals.ts +180 -0
  395. package/src/internal/schedule.ts +2199 -0
  396. package/src/internal/schema/errors.ts +191 -0
  397. package/src/internal/schema/schemaId.ts +106 -0
  398. package/src/internal/schema/util.ts +50 -0
  399. package/src/internal/scopedCache.ts +644 -0
  400. package/src/internal/scopedRef.ts +118 -0
  401. package/src/internal/secret.ts +89 -0
  402. package/src/internal/singleShotGen.ts +35 -0
  403. package/src/internal/sink.ts +2120 -0
  404. package/src/internal/stack.ts +10 -0
  405. package/src/internal/stm/core.ts +817 -0
  406. package/src/internal/stm/entry.ts +59 -0
  407. package/src/internal/stm/journal.ts +123 -0
  408. package/src/internal/stm/opCodes/stm.ts +71 -0
  409. package/src/internal/stm/opCodes/stmState.ts +17 -0
  410. package/src/internal/stm/opCodes/strategy.ts +17 -0
  411. package/src/internal/stm/opCodes/tExit.ts +29 -0
  412. package/src/internal/stm/opCodes/tryCommit.ts +11 -0
  413. package/src/internal/stm/stm.ts +1453 -0
  414. package/src/internal/stm/stmState.ts +136 -0
  415. package/src/internal/stm/tArray.ts +550 -0
  416. package/src/internal/stm/tDeferred.ts +81 -0
  417. package/src/internal/stm/tExit.ts +190 -0
  418. package/src/internal/stm/tMap.ts +824 -0
  419. package/src/internal/stm/tPriorityQueue.ts +267 -0
  420. package/src/internal/stm/tPubSub.ts +551 -0
  421. package/src/internal/stm/tQueue.ts +393 -0
  422. package/src/internal/stm/tRandom.ts +140 -0
  423. package/src/internal/stm/tReentrantLock.ts +352 -0
  424. package/src/internal/stm/tRef.ts +195 -0
  425. package/src/internal/stm/tSemaphore.ts +113 -0
  426. package/src/internal/stm/tSet.ts +259 -0
  427. package/src/internal/stm/tSubscriptionRef.ts +286 -0
  428. package/src/internal/stm/tryCommit.ts +34 -0
  429. package/src/internal/stm/txnId.ts +14 -0
  430. package/src/internal/stm/versioned.ts +4 -0
  431. package/src/internal/stream/debounceState.ts +57 -0
  432. package/src/internal/stream/emit.ts +123 -0
  433. package/src/internal/stream/haltStrategy.ts +94 -0
  434. package/src/internal/stream/handoff.ts +187 -0
  435. package/src/internal/stream/handoffSignal.ts +59 -0
  436. package/src/internal/stream/pull.ts +34 -0
  437. package/src/internal/stream/sinkEndReason.ts +30 -0
  438. package/src/internal/stream/zipAllState.ts +88 -0
  439. package/src/internal/stream/zipChunksState.ts +56 -0
  440. package/src/internal/stream.ts +8801 -0
  441. package/src/internal/string-utils.ts +107 -0
  442. package/src/internal/subscriptionRef.ts +138 -0
  443. package/src/internal/supervisor/patch.ts +190 -0
  444. package/src/internal/supervisor.ts +303 -0
  445. package/src/internal/synchronizedRef.ts +114 -0
  446. package/src/internal/take.ts +199 -0
  447. package/src/internal/testing/sleep.ts +27 -0
  448. package/src/internal/testing/suspendedWarningData.ts +85 -0
  449. package/src/internal/testing/warningData.ts +94 -0
  450. package/src/internal/tracer.ts +150 -0
  451. package/src/internal/trie.ts +722 -0
  452. package/src/internal/version.ts +7 -0
package/src/HashMap.ts ADDED
@@ -0,0 +1,519 @@
1
+ /**
2
+ * @since 2.0.0
3
+ */
4
+
5
+ import type { Equal } from "./Equal.js"
6
+ import type { HashSet } from "./HashSet.js"
7
+ import type { Inspectable } from "./Inspectable.js"
8
+ import * as HM from "./internal/hashMap.js"
9
+ import * as keySet_ from "./internal/hashMap/keySet.js"
10
+ import type { Option } from "./Option.js"
11
+ import type { Pipeable } from "./Pipeable.js"
12
+ import type { NoInfer } from "./Types.js"
13
+
14
+ const TypeId: unique symbol = HM.HashMapTypeId as TypeId
15
+
16
+ /**
17
+ * @since 2.0.0
18
+ * @category symbol
19
+ */
20
+ export type TypeId = typeof TypeId
21
+
22
+ /**
23
+ * @since 2.0.0
24
+ * @category models
25
+ */
26
+ export interface HashMap<out Key, out Value> extends Iterable<[Key, Value]>, Equal, Pipeable, Inspectable {
27
+ readonly [TypeId]: TypeId
28
+ }
29
+
30
+ /**
31
+ * @since 2.0.0
32
+ */
33
+ export declare namespace HashMap {
34
+ /**
35
+ * @since 2.0.0
36
+ * @category models
37
+ */
38
+ export type UpdateFn<V> = (option: Option<V>) => Option<V>
39
+ /**
40
+ * This type-level utility extracts the key type `K` from a `HashMap<K, V>` type.
41
+ *
42
+ * @example
43
+ * ```ts
44
+ * import { HashMap } from "effect"
45
+ *
46
+ * declare const hm: HashMap.HashMap<string, number>
47
+ *
48
+ * // $ExpectType string
49
+ * type K = HashMap.HashMap.Key<typeof hm>
50
+ *
51
+ * ```
52
+ * @since 2.0.0
53
+ * @category type-level
54
+ */
55
+ export type Key<T extends HashMap<any, any>> = [T] extends [HashMap<infer _K, infer _V>] ? _K : never
56
+ /**
57
+ * This type-level utility extracts the value type `V` from a `HashMap<K, V>` type.
58
+ *
59
+ * @example
60
+ * ```ts
61
+ * import { HashMap } from "effect"
62
+ *
63
+ * declare const hm: HashMap.HashMap<string, number>
64
+ *
65
+ * // $ExpectType number
66
+ * type V = HashMap.HashMap.Value<typeof hm>
67
+ *
68
+ * ```
69
+ * @since 2.0.0
70
+ * @category type-level
71
+ */
72
+ export type Value<T extends HashMap<any, any>> = [T] extends [HashMap<infer _K, infer _V>] ? _V : never
73
+
74
+ /**
75
+ * This type-level utility extracts the entry type `[K, V]` from a `HashMap<K, V>` type.
76
+ *
77
+ * @example
78
+ * ```ts
79
+ * import { HashMap } from "effect"
80
+ *
81
+ * declare const hm: HashMap.HashMap<string, number>
82
+ *
83
+ * // $ExpectType [string, number]
84
+ * type V = HashMap.HashMap.Entry<typeof hm>
85
+ *
86
+ * ```
87
+ * @since 3.9.0
88
+ * @category type-level
89
+ */
90
+ export type Entry<T extends HashMap<any, any>> = [Key<T>, Value<T>]
91
+ }
92
+
93
+ /**
94
+ * @since 2.0.0
95
+ * @category refinements
96
+ */
97
+ export const isHashMap: {
98
+ <K, V>(u: Iterable<readonly [K, V]>): u is HashMap<K, V>
99
+ (u: unknown): u is HashMap<unknown, unknown>
100
+ } = HM.isHashMap
101
+
102
+ /**
103
+ * Creates a new `HashMap`.
104
+ *
105
+ * @since 2.0.0
106
+ * @category constructors
107
+ */
108
+ export const empty: <K = never, V = never>() => HashMap<K, V> = HM.empty
109
+
110
+ /**
111
+ * Constructs a new `HashMap` from an array of key/value pairs.
112
+ *
113
+ * @since 2.0.0
114
+ * @category constructors
115
+ */
116
+ export const make: <Entries extends ReadonlyArray<readonly [any, any]>>(
117
+ ...entries: Entries
118
+ ) => HashMap<
119
+ Entries[number] extends readonly [infer K, any] ? K : never,
120
+ Entries[number] extends readonly [any, infer V] ? V : never
121
+ > = HM.make
122
+
123
+ /**
124
+ * Creates a new `HashMap` from an iterable collection of key/value pairs.
125
+ *
126
+ * @since 2.0.0
127
+ * @category constructors
128
+ */
129
+ export const fromIterable: <K, V>(entries: Iterable<readonly [K, V]>) => HashMap<K, V> = HM.fromIterable
130
+
131
+ /**
132
+ * Checks if the `HashMap` contains any entries.
133
+ *
134
+ * @since 2.0.0
135
+ * @category elements
136
+ */
137
+ export const isEmpty: <K, V>(self: HashMap<K, V>) => boolean = HM.isEmpty
138
+
139
+ /**
140
+ * Safely lookup the value for the specified key in the `HashMap` using the
141
+ * internal hashing function.
142
+ *
143
+ * @since 2.0.0
144
+ * @category elements
145
+ */
146
+ export const get: {
147
+ <K1 extends K, K>(key: K1): <V>(self: HashMap<K, V>) => Option<V>
148
+ <K1 extends K, K, V>(self: HashMap<K, V>, key: K1): Option<V>
149
+ } = HM.get
150
+
151
+ /**
152
+ * Lookup the value for the specified key in the `HashMap` using a custom hash.
153
+ *
154
+ * @since 2.0.0
155
+ * @category elements
156
+ */
157
+ export const getHash: {
158
+ <K1 extends K, K>(key: K1, hash: number): <V>(self: HashMap<K, V>) => Option<V>
159
+ <K1 extends K, K, V>(self: HashMap<K, V>, key: K1, hash: number): Option<V>
160
+ } = HM.getHash
161
+
162
+ /**
163
+ * Unsafely lookup the value for the specified key in the `HashMap` using the
164
+ * internal hashing function.
165
+ *
166
+ * @since 2.0.0
167
+ * @category unsafe
168
+ */
169
+ export const unsafeGet: {
170
+ <K1 extends K, K>(key: K1): <V>(self: HashMap<K, V>) => V
171
+ <K1 extends K, K, V>(self: HashMap<K, V>, key: K1): V
172
+ } = HM.unsafeGet
173
+
174
+ /**
175
+ * Checks if the specified key has an entry in the `HashMap`.
176
+ *
177
+ * @since 2.0.0
178
+ * @category elements
179
+ */
180
+ export const has: {
181
+ <K1 extends K, K>(key: K1): <K, V>(self: HashMap<K, V>) => boolean
182
+ <K1 extends K, K, V>(self: HashMap<K, V>, key: K1): boolean
183
+ } = HM.has
184
+
185
+ /**
186
+ * Checks if the specified key has an entry in the `HashMap` using a custom
187
+ * hash.
188
+ *
189
+ * @since 2.0.0
190
+ * @category elements
191
+ */
192
+ export const hasHash: {
193
+ <K1 extends K, K>(key: K1, hash: number): <V>(self: HashMap<K, V>) => boolean
194
+ <K1 extends K, K, V>(self: HashMap<K, V>, key: K1, hash: number): boolean
195
+ } = HM.hasHash
196
+
197
+ /**
198
+ * Checks if an element matching the given predicate exists in the given `HashMap`.
199
+ *
200
+ * @example
201
+ * ```ts
202
+ * import { HashMap } from "effect"
203
+ *
204
+ * const hm = HashMap.make([1, 'a'])
205
+ * HashMap.hasBy(hm, (value, key) => value === 'a' && key === 1); // -> true
206
+ * HashMap.hasBy(hm, (value) => value === 'b'); // -> false
207
+ *
208
+ * ```
209
+ *
210
+ * @since 3.16.0
211
+ * @category elements
212
+ */
213
+ export const hasBy: {
214
+ <K, V>(predicate: (value: NoInfer<V>, key: NoInfer<K>) => boolean): (self: HashMap<K, V>) => boolean
215
+ <K, V>(self: HashMap<K, V>, predicate: (value: NoInfer<V>, key: NoInfer<K>) => boolean): boolean
216
+ } = HM.hasBy
217
+
218
+ /**
219
+ * Sets the specified key to the specified value using the internal hashing
220
+ * function.
221
+ *
222
+ * @since 2.0.0
223
+ */
224
+ export const set: {
225
+ <K, V>(key: K, value: V): (self: HashMap<K, V>) => HashMap<K, V>
226
+ <K, V>(self: HashMap<K, V>, key: K, value: V): HashMap<K, V>
227
+ } = HM.set
228
+
229
+ /**
230
+ * Returns an `IterableIterator` of the keys within the `HashMap`.
231
+ *
232
+ * @since 2.0.0
233
+ * @category getters
234
+ */
235
+ export const keys: <K, V>(self: HashMap<K, V>) => IterableIterator<K> = HM.keys
236
+
237
+ /**
238
+ * Returns a `HashSet` of keys within the `HashMap`.
239
+ *
240
+ * @since 2.0.0
241
+ * @category getter
242
+ */
243
+ export const keySet: <K, V>(self: HashMap<K, V>) => HashSet<K> = keySet_.keySet
244
+
245
+ /**
246
+ * Returns an `IterableIterator` of the values within the `HashMap`.
247
+ *
248
+ * @since 2.0.0
249
+ * @category getters
250
+ */
251
+ export const values: <K, V>(self: HashMap<K, V>) => IterableIterator<V> = HM.values
252
+
253
+ /**
254
+ * Returns an `Array` of the values within the `HashMap`.
255
+ *
256
+ * @since 3.13.0
257
+ * @category getters
258
+ */
259
+ export const toValues = <K, V>(self: HashMap<K, V>): Array<V> => Array.from(values(self))
260
+
261
+ /**
262
+ * Returns an `IterableIterator` of the entries within the `HashMap`.
263
+ *
264
+ * @since 2.0.0
265
+ * @category getters
266
+ */
267
+ export const entries: <K, V>(self: HashMap<K, V>) => IterableIterator<[K, V]> = HM.entries
268
+
269
+ /**
270
+ * Returns an `Array<[K, V]>` of the entries within the `HashMap`.
271
+ *
272
+ * @since 2.0.0
273
+ * @category getters
274
+ */
275
+ export const toEntries = <K, V>(self: HashMap<K, V>): Array<[K, V]> => Array.from(entries(self))
276
+
277
+ /**
278
+ * Returns the number of entries within the `HashMap`.
279
+ *
280
+ * @since 2.0.0
281
+ * @category getters
282
+ */
283
+ export const size: <K, V>(self: HashMap<K, V>) => number = HM.size
284
+
285
+ /**
286
+ * Counts all the element of the given HashMap that pass the given predicate
287
+ *
288
+ * **Example**
289
+ *
290
+ * ```ts
291
+ * import { HashMap } from "effect"
292
+ *
293
+ * const map = HashMap.make([1, "a"], [2, "b"], [3, "c"])
294
+ * const result = HashMap.countBy(map, (_v, key) => key % 2 === 1)
295
+ * console.log(result) // 2
296
+ * ```
297
+ *
298
+ * @since 3.17.0
299
+ * @category folding
300
+ */
301
+ export const countBy: {
302
+ <K, V>(predicate: (value: NoInfer<V>, key: NoInfer<K>) => boolean): (self: HashMap<K, V>) => number
303
+ <K, V>(self: HashMap<K, V>, predicate: (value: NoInfer<V>, key: NoInfer<K>) => boolean): number
304
+ } = HM.countBy
305
+
306
+ /**
307
+ * Marks the `HashMap` as mutable.
308
+ *
309
+ * @since 2.0.0
310
+ */
311
+ export const beginMutation: <K, V>(self: HashMap<K, V>) => HashMap<K, V> = HM.beginMutation
312
+
313
+ /**
314
+ * Marks the `HashMap` as immutable.
315
+ *
316
+ * @since 2.0.0
317
+ */
318
+ export const endMutation: <K, V>(self: HashMap<K, V>) => HashMap<K, V> = HM.endMutation
319
+
320
+ /**
321
+ * Mutates the `HashMap` within the context of the provided function.
322
+ *
323
+ * @since 2.0.0
324
+ */
325
+ export const mutate: {
326
+ <K, V>(f: (self: HashMap<K, V>) => void): (self: HashMap<K, V>) => HashMap<K, V>
327
+ <K, V>(self: HashMap<K, V>, f: (self: HashMap<K, V>) => void): HashMap<K, V>
328
+ } = HM.mutate
329
+
330
+ /**
331
+ * Set or remove the specified key in the `HashMap` using the specified
332
+ * update function. The value of the specified key will be computed using the
333
+ * provided hash.
334
+ *
335
+ * The update function will be invoked with the current value of the key if it
336
+ * exists, or `None` if no such value exists.
337
+ *
338
+ * @since 2.0.0
339
+ */
340
+ export const modifyAt: {
341
+ <K, V>(key: K, f: HashMap.UpdateFn<V>): (self: HashMap<K, V>) => HashMap<K, V>
342
+ <K, V>(self: HashMap<K, V>, key: K, f: HashMap.UpdateFn<V>): HashMap<K, V>
343
+ } = HM.modifyAt
344
+
345
+ /**
346
+ * Alter the value of the specified key in the `HashMap` using the specified
347
+ * update function. The value of the specified key will be computed using the
348
+ * provided hash.
349
+ *
350
+ * The update function will be invoked with the current value of the key if it
351
+ * exists, or `None` if no such value exists.
352
+ *
353
+ * This function will always either update or insert a value into the `HashMap`.
354
+ *
355
+ * @since 2.0.0
356
+ */
357
+ export const modifyHash: {
358
+ <K, V>(key: K, hash: number, f: HashMap.UpdateFn<V>): (self: HashMap<K, V>) => HashMap<K, V>
359
+ <K, V>(self: HashMap<K, V>, key: K, hash: number, f: HashMap.UpdateFn<V>): HashMap<K, V>
360
+ } = HM.modifyHash
361
+
362
+ /**
363
+ * Updates the value of the specified key within the `HashMap` if it exists.
364
+ *
365
+ * @since 2.0.0
366
+ */
367
+ export const modify: {
368
+ <K, V>(key: K, f: (v: V) => V): (self: HashMap<K, V>) => HashMap<K, V>
369
+ <K, V>(self: HashMap<K, V>, key: K, f: (v: V) => V): HashMap<K, V>
370
+ } = HM.modify
371
+
372
+ /**
373
+ * Performs a union of this `HashMap` and that `HashMap`.
374
+ *
375
+ * @since 2.0.0
376
+ */
377
+ export const union: {
378
+ <K1, V1>(that: HashMap<K1, V1>): <K0, V0>(self: HashMap<K0, V0>) => HashMap<K1 | K0, V1 | V0>
379
+ <K0, V0, K1, V1>(self: HashMap<K0, V0>, that: HashMap<K1, V1>): HashMap<K0 | K1, V0 | V1>
380
+ } = HM.union
381
+
382
+ /**
383
+ * Remove the entry for the specified key in the `HashMap` using the internal
384
+ * hashing function.
385
+ *
386
+ * @since 2.0.0
387
+ */
388
+ export const remove: {
389
+ <K>(key: K): <V>(self: HashMap<K, V>) => HashMap<K, V>
390
+ <K, V>(self: HashMap<K, V>, key: K): HashMap<K, V>
391
+ } = HM.remove
392
+
393
+ /**
394
+ * Removes all entries in the `HashMap` which have the specified keys.
395
+ *
396
+ * @since 2.0.0
397
+ */
398
+ export const removeMany: {
399
+ <K>(keys: Iterable<K>): <V>(self: HashMap<K, V>) => HashMap<K, V>
400
+ <K, V>(self: HashMap<K, V>, keys: Iterable<K>): HashMap<K, V>
401
+ } = HM.removeMany
402
+
403
+ /**
404
+ * Maps over the entries of the `HashMap` using the specified function.
405
+ *
406
+ * @since 2.0.0
407
+ * @category mapping
408
+ */
409
+ export const map: {
410
+ <A, V, K>(f: (value: V, key: K) => A): (self: HashMap<K, V>) => HashMap<K, A>
411
+ <K, V, A>(self: HashMap<K, V>, f: (value: V, key: K) => A): HashMap<K, A>
412
+ } = HM.map
413
+
414
+ /**
415
+ * Chains over the entries of the `HashMap` using the specified function.
416
+ *
417
+ * **NOTE**: the hash and equal of both maps have to be the same.
418
+ *
419
+ * @since 2.0.0
420
+ * @category sequencing
421
+ */
422
+ export const flatMap: {
423
+ <A, K, B>(f: (value: A, key: K) => HashMap<K, B>): (self: HashMap<K, A>) => HashMap<K, B>
424
+ <K, A, B>(self: HashMap<K, A>, f: (value: A, key: K) => HashMap<K, B>): HashMap<K, B>
425
+ } = HM.flatMap
426
+
427
+ /**
428
+ * Applies the specified function to the entries of the `HashMap`.
429
+ *
430
+ * @since 2.0.0
431
+ * @category traversing
432
+ */
433
+ export const forEach: {
434
+ <V, K>(f: (value: V, key: K) => void): (self: HashMap<K, V>) => void
435
+ <V, K>(self: HashMap<K, V>, f: (value: V, key: K) => void): void
436
+ } = HM.forEach
437
+
438
+ /**
439
+ * Reduces the specified state over the entries of the `HashMap`.
440
+ *
441
+ * @since 2.0.0
442
+ * @category folding
443
+ */
444
+ export const reduce: {
445
+ <Z, V, K>(zero: Z, f: (accumulator: Z, value: V, key: K) => Z): (self: HashMap<K, V>) => Z
446
+ <K, V, Z>(self: HashMap<K, V>, zero: Z, f: (accumulator: Z, value: V, key: K) => Z): Z
447
+ } = HM.reduce
448
+
449
+ /**
450
+ * Filters entries out of a `HashMap` using the specified predicate.
451
+ *
452
+ * @since 2.0.0
453
+ * @category filtering
454
+ */
455
+ export const filter: {
456
+ <K, A, B extends A>(f: (a: NoInfer<A>, k: K) => a is B): (self: HashMap<K, A>) => HashMap<K, B>
457
+ <K, A>(f: (a: NoInfer<A>, k: K) => boolean): (self: HashMap<K, A>) => HashMap<K, A>
458
+ <K, A, B extends A>(self: HashMap<K, A>, f: (a: A, k: K) => a is B): HashMap<K, B>
459
+ <K, A>(self: HashMap<K, A>, f: (a: A, k: K) => boolean): HashMap<K, A>
460
+ } = HM.filter
461
+
462
+ /**
463
+ * Filters out `None` values from a `HashMap` of `Options`s.
464
+ *
465
+ * @since 2.0.0
466
+ * @category filtering
467
+ */
468
+ export const compact: <K, A>(self: HashMap<K, Option<A>>) => HashMap<K, A> = HM.compact
469
+
470
+ /**
471
+ * Maps over the entries of the `HashMap` using the specified partial function
472
+ * and filters out `None` values.
473
+ *
474
+ * @since 2.0.0
475
+ * @category filtering
476
+ */
477
+ export const filterMap: {
478
+ <A, K, B>(f: (value: A, key: K) => Option<B>): (self: HashMap<K, A>) => HashMap<K, B>
479
+ <K, A, B>(self: HashMap<K, A>, f: (value: A, key: K) => Option<B>): HashMap<K, B>
480
+ } = HM.filterMap
481
+
482
+ /**
483
+ * Returns the first element that satisfies the specified
484
+ * predicate, or `None` if no such element exists.
485
+ *
486
+ * @category elements
487
+ * @since 2.0.0
488
+ */
489
+ export const findFirst: {
490
+ <K, A, B extends A>(predicate: (a: NoInfer<A>, k: K) => a is B): (self: HashMap<K, A>) => Option<[K, B]>
491
+ <K, A>(predicate: (a: NoInfer<A>, k: K) => boolean): (self: HashMap<K, A>) => Option<[K, A]>
492
+ <K, A, B extends A>(self: HashMap<K, A>, predicate: (a: A, k: K) => a is B): Option<[K, B]>
493
+ <K, A>(self: HashMap<K, A>, predicate: (a: A, k: K) => boolean): Option<[K, A]>
494
+ } = HM.findFirst
495
+
496
+ /**
497
+ * Checks if any entry in a hashmap meets a specific condition.
498
+ *
499
+ * @since 3.13.0
500
+ * @category elements
501
+ */
502
+ export const some: {
503
+ <K, A>(predicate: (a: NoInfer<A>, k: K) => boolean): (self: HashMap<K, A>) => boolean
504
+ <K, A>(self: HashMap<K, A>, predicate: (a: A, k: K) => boolean): boolean
505
+ } = HM.some
506
+
507
+ /**
508
+ * Checks if all entries in a hashmap meets a specific condition.
509
+ *
510
+ * @param self - The hashmap to check.
511
+ * @param predicate - The condition to test entries (value, key).
512
+ *
513
+ * @since 3.14.0
514
+ * @category elements
515
+ */
516
+ export const every: {
517
+ <K, A>(predicate: (a: NoInfer<A>, k: K) => boolean): (self: HashMap<K, A>) => boolean
518
+ <K, A>(self: HashMap<K, A>, predicate: (a: A, k: K) => boolean): boolean
519
+ } = HM.every