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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (452) hide show
  1. package/SourceLocation/package.json +6 -0
  2. package/dist/cjs/Effect.js +2 -28
  3. package/dist/cjs/Effect.js.map +1 -1
  4. package/dist/cjs/FiberRef.js +12 -1
  5. package/dist/cjs/FiberRef.js.map +1 -1
  6. package/dist/cjs/Layer.js +2 -24
  7. package/dist/cjs/Layer.js.map +1 -1
  8. package/dist/cjs/RuntimeFlags.js +1 -29
  9. package/dist/cjs/RuntimeFlags.js.map +1 -1
  10. package/dist/cjs/SourceLocation.js +60 -0
  11. package/dist/cjs/SourceLocation.js.map +1 -0
  12. package/dist/cjs/Tracer.js +1 -15
  13. package/dist/cjs/Tracer.js.map +1 -1
  14. package/dist/cjs/Utils.js +1 -1
  15. package/dist/cjs/Utils.js.map +1 -1
  16. package/dist/cjs/index.js +3 -1
  17. package/dist/cjs/index.js.map +1 -1
  18. package/dist/cjs/internal/clock.js +1 -1
  19. package/dist/cjs/internal/clock.js.map +1 -1
  20. package/dist/cjs/internal/core.js +17 -50
  21. package/dist/cjs/internal/core.js.map +1 -1
  22. package/dist/cjs/internal/effect/circular.js +18 -30
  23. package/dist/cjs/internal/effect/circular.js.map +1 -1
  24. package/dist/cjs/internal/fiberRuntime.js +16 -65
  25. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  26. package/dist/cjs/internal/layer/circular.js +1 -5
  27. package/dist/cjs/internal/layer/circular.js.map +1 -1
  28. package/dist/cjs/internal/layer.js +1 -3
  29. package/dist/cjs/internal/layer.js.map +1 -1
  30. package/dist/cjs/internal/logger.js +25 -2
  31. package/dist/cjs/internal/logger.js.map +1 -1
  32. package/dist/cjs/internal/runtimeFlags.js +2 -11
  33. package/dist/cjs/internal/runtimeFlags.js.map +1 -1
  34. package/dist/cjs/internal/tracer.js +1 -114
  35. package/dist/cjs/internal/tracer.js.map +1 -1
  36. package/dist/dts/Config.d.ts +2 -2
  37. package/dist/dts/Config.d.ts.map +1 -1
  38. package/dist/dts/Effect.d.ts +8 -29
  39. package/dist/dts/Effect.d.ts.map +1 -1
  40. package/dist/dts/FiberRef.d.ts +12 -0
  41. package/dist/dts/FiberRef.d.ts.map +1 -1
  42. package/dist/dts/Layer.d.ts +0 -22
  43. package/dist/dts/Layer.d.ts.map +1 -1
  44. package/dist/dts/RuntimeFlags.d.ts +0 -28
  45. package/dist/dts/RuntimeFlags.d.ts.map +1 -1
  46. package/dist/dts/SourceLocation.d.ts +88 -0
  47. package/dist/dts/SourceLocation.d.ts.map +1 -0
  48. package/dist/dts/Tracer.d.ts +0 -15
  49. package/dist/dts/Tracer.d.ts.map +1 -1
  50. package/dist/dts/index.d.ts +6 -0
  51. package/dist/dts/index.d.ts.map +1 -1
  52. package/dist/dts/internal/core.d.ts.map +1 -1
  53. package/dist/dts/internal/layer.d.ts.map +1 -1
  54. package/dist/dts/internal/runtimeFlags.d.ts.map +1 -1
  55. package/dist/esm/Effect.js +0 -26
  56. package/dist/esm/Effect.js.map +1 -1
  57. package/dist/esm/FiberRef.js +11 -0
  58. package/dist/esm/FiberRef.js.map +1 -1
  59. package/dist/esm/Layer.js +0 -22
  60. package/dist/esm/Layer.js.map +1 -1
  61. package/dist/esm/RuntimeFlags.js +0 -28
  62. package/dist/esm/RuntimeFlags.js.map +1 -1
  63. package/dist/esm/SourceLocation.js +51 -0
  64. package/dist/esm/SourceLocation.js.map +1 -0
  65. package/dist/esm/Tracer.js +0 -14
  66. package/dist/esm/Tracer.js.map +1 -1
  67. package/dist/esm/Utils.js +1 -1
  68. package/dist/esm/Utils.js.map +1 -1
  69. package/dist/esm/index.js +6 -0
  70. package/dist/esm/index.js.map +1 -1
  71. package/dist/esm/internal/clock.js +1 -1
  72. package/dist/esm/internal/clock.js.map +1 -1
  73. package/dist/esm/internal/core.js +12 -45
  74. package/dist/esm/internal/core.js.map +1 -1
  75. package/dist/esm/internal/effect/circular.js +18 -30
  76. package/dist/esm/internal/effect/circular.js.map +1 -1
  77. package/dist/esm/internal/fiberRuntime.js +13 -60
  78. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  79. package/dist/esm/internal/layer/circular.js +0 -4
  80. package/dist/esm/internal/layer/circular.js.map +1 -1
  81. package/dist/esm/internal/layer.js +0 -2
  82. package/dist/esm/internal/layer.js.map +1 -1
  83. package/dist/esm/internal/logger.js +25 -2
  84. package/dist/esm/internal/logger.js.map +1 -1
  85. package/dist/esm/internal/runtimeFlags.js +1 -9
  86. package/dist/esm/internal/runtimeFlags.js.map +1 -1
  87. package/dist/esm/internal/tracer.js +0 -111
  88. package/dist/esm/internal/tracer.js.map +1 -1
  89. package/package.json +12 -1
  90. package/src/Arbitrary.ts +1101 -0
  91. package/src/Array.ts +3589 -0
  92. package/src/BigDecimal.ts +1349 -0
  93. package/src/BigInt.ts +643 -0
  94. package/src/Boolean.ts +287 -0
  95. package/src/Brand.ts +360 -0
  96. package/src/Cache.ts +281 -0
  97. package/src/Cause.ts +1555 -0
  98. package/src/Channel.ts +2355 -0
  99. package/src/ChildExecutorDecision.ts +146 -0
  100. package/src/Chunk.ts +1495 -0
  101. package/src/Clock.ts +111 -0
  102. package/src/Config.ts +542 -0
  103. package/src/ConfigError.ts +270 -0
  104. package/src/ConfigProvider.ts +333 -0
  105. package/src/ConfigProviderPathPatch.ts +100 -0
  106. package/src/Console.ts +226 -0
  107. package/src/Context.ts +585 -0
  108. package/src/Cron.ts +706 -0
  109. package/src/Data.ts +596 -0
  110. package/src/DateTime.ts +1686 -0
  111. package/src/DefaultServices.ts +34 -0
  112. package/src/Deferred.ts +301 -0
  113. package/src/Differ.ts +450 -0
  114. package/src/Duration.ts +1000 -0
  115. package/src/Effect.ts +14817 -0
  116. package/src/Effectable.ts +107 -0
  117. package/src/Either.ts +1040 -0
  118. package/src/Encoding.ts +195 -0
  119. package/src/Equal.ts +98 -0
  120. package/src/Equivalence.ts +235 -0
  121. package/src/ExecutionPlan.ts +308 -0
  122. package/src/ExecutionStrategy.ts +119 -0
  123. package/src/Exit.ts +467 -0
  124. package/src/FastCheck.ts +9 -0
  125. package/src/Fiber.ts +744 -0
  126. package/src/FiberHandle.ts +540 -0
  127. package/src/FiberId.ts +195 -0
  128. package/src/FiberMap.ts +656 -0
  129. package/src/FiberRef.ts +444 -0
  130. package/src/FiberRefs.ts +204 -0
  131. package/src/FiberRefsPatch.ts +105 -0
  132. package/src/FiberSet.ts +491 -0
  133. package/src/FiberStatus.ts +108 -0
  134. package/src/Function.ts +1222 -0
  135. package/src/GlobalValue.ts +53 -0
  136. package/src/Graph.ts +3732 -0
  137. package/src/GroupBy.ts +103 -0
  138. package/src/HKT.ts +45 -0
  139. package/src/Hash.ts +195 -0
  140. package/src/HashMap.ts +519 -0
  141. package/src/HashRing.ts +317 -0
  142. package/src/HashSet.ts +2346 -0
  143. package/src/Inspectable.ts +287 -0
  144. package/src/Iterable.ts +1119 -0
  145. package/src/JSONSchema.ts +1044 -0
  146. package/src/KeyedPool.ts +167 -0
  147. package/src/Layer.ts +1228 -0
  148. package/src/LayerMap.ts +436 -0
  149. package/src/List.ts +977 -0
  150. package/src/LogLevel.ts +285 -0
  151. package/src/LogSpan.ts +25 -0
  152. package/src/Logger.ts +702 -0
  153. package/src/Mailbox.ts +268 -0
  154. package/src/ManagedRuntime.ts +180 -0
  155. package/src/Match.ts +1477 -0
  156. package/src/MergeDecision.ts +95 -0
  157. package/src/MergeState.ts +172 -0
  158. package/src/MergeStrategy.ts +107 -0
  159. package/src/Metric.ts +780 -0
  160. package/src/MetricBoundaries.ts +69 -0
  161. package/src/MetricHook.ts +151 -0
  162. package/src/MetricKey.ts +224 -0
  163. package/src/MetricKeyType.ts +262 -0
  164. package/src/MetricLabel.ts +47 -0
  165. package/src/MetricPair.ts +71 -0
  166. package/src/MetricPolling.ts +148 -0
  167. package/src/MetricRegistry.ts +48 -0
  168. package/src/MetricState.ts +257 -0
  169. package/src/Micro.ts +4405 -0
  170. package/src/ModuleVersion.ts +18 -0
  171. package/src/MutableHashMap.ts +411 -0
  172. package/src/MutableHashSet.ts +706 -0
  173. package/src/MutableList.ts +297 -0
  174. package/src/MutableQueue.ts +227 -0
  175. package/src/MutableRef.ts +202 -0
  176. package/src/NonEmptyIterable.ts +32 -0
  177. package/src/Number.ts +1071 -0
  178. package/src/Option.ts +2170 -0
  179. package/src/Order.ts +373 -0
  180. package/src/Ordering.ts +111 -0
  181. package/src/ParseResult.ts +2031 -0
  182. package/src/PartitionedSemaphore.ts +200 -0
  183. package/src/Pipeable.ts +566 -0
  184. package/src/Pool.ts +204 -0
  185. package/src/Predicate.ts +1405 -0
  186. package/src/Pretty.ts +205 -0
  187. package/src/PrimaryKey.ts +23 -0
  188. package/src/PubSub.ts +182 -0
  189. package/src/Queue.ts +644 -0
  190. package/src/Random.ts +204 -0
  191. package/src/RateLimiter.ts +138 -0
  192. package/src/RcMap.ts +141 -0
  193. package/src/RcRef.ts +122 -0
  194. package/src/Readable.ts +93 -0
  195. package/src/Record.ts +1274 -0
  196. package/src/RedBlackTree.ts +421 -0
  197. package/src/Redacted.ts +144 -0
  198. package/src/Ref.ts +180 -0
  199. package/src/RegExp.ts +38 -0
  200. package/src/Reloadable.ts +127 -0
  201. package/src/Request.ts +347 -0
  202. package/src/RequestBlock.ts +118 -0
  203. package/src/RequestResolver.ts +366 -0
  204. package/src/Resource.ts +119 -0
  205. package/src/Runtime.ts +383 -0
  206. package/src/RuntimeFlags.ts +336 -0
  207. package/src/RuntimeFlagsPatch.ts +183 -0
  208. package/src/STM.ts +2045 -0
  209. package/src/Schedule.ts +2219 -0
  210. package/src/ScheduleDecision.ts +62 -0
  211. package/src/ScheduleInterval.ts +151 -0
  212. package/src/ScheduleIntervals.ts +122 -0
  213. package/src/Scheduler.ts +353 -0
  214. package/src/Schema.ts +10914 -0
  215. package/src/SchemaAST.ts +3043 -0
  216. package/src/Scope.ts +204 -0
  217. package/src/ScopedCache.ts +151 -0
  218. package/src/ScopedRef.ts +117 -0
  219. package/src/Secret.ts +88 -0
  220. package/src/SingleProducerAsyncInput.ts +67 -0
  221. package/src/Sink.ts +1461 -0
  222. package/src/SortedMap.ts +287 -0
  223. package/src/SortedSet.ts +390 -0
  224. package/src/SourceLocation.ts +108 -0
  225. package/src/Stream.ts +6468 -0
  226. package/src/StreamEmit.ts +136 -0
  227. package/src/StreamHaltStrategy.ts +123 -0
  228. package/src/Streamable.ts +45 -0
  229. package/src/String.ts +778 -0
  230. package/src/Struct.ts +243 -0
  231. package/src/Subscribable.ts +100 -0
  232. package/src/SubscriptionRef.ts +298 -0
  233. package/src/Supervisor.ts +240 -0
  234. package/src/Symbol.ts +29 -0
  235. package/src/SynchronizedRef.ts +270 -0
  236. package/src/TArray.ts +495 -0
  237. package/src/TDeferred.ts +100 -0
  238. package/src/TMap.ts +515 -0
  239. package/src/TPriorityQueue.ts +223 -0
  240. package/src/TPubSub.ts +200 -0
  241. package/src/TQueue.ts +432 -0
  242. package/src/TRandom.ts +129 -0
  243. package/src/TReentrantLock.ts +224 -0
  244. package/src/TRef.ts +178 -0
  245. package/src/TSemaphore.ts +129 -0
  246. package/src/TSet.ts +365 -0
  247. package/src/TSubscriptionRef.ts +192 -0
  248. package/src/Take.ts +258 -0
  249. package/src/TestAnnotation.ts +158 -0
  250. package/src/TestAnnotationMap.ts +119 -0
  251. package/src/TestAnnotations.ts +117 -0
  252. package/src/TestClock.ts +556 -0
  253. package/src/TestConfig.ts +47 -0
  254. package/src/TestContext.ts +36 -0
  255. package/src/TestLive.ts +53 -0
  256. package/src/TestServices.ts +390 -0
  257. package/src/TestSized.ts +55 -0
  258. package/src/Tracer.ts +182 -0
  259. package/src/Trie.ts +840 -0
  260. package/src/Tuple.ts +305 -0
  261. package/src/Types.ts +353 -0
  262. package/src/Unify.ts +113 -0
  263. package/src/UpstreamPullRequest.ts +117 -0
  264. package/src/UpstreamPullStrategy.ts +121 -0
  265. package/src/Utils.ts +809 -0
  266. package/src/index.ts +1568 -0
  267. package/src/internal/array.ts +8 -0
  268. package/src/internal/blockedRequests.ts +520 -0
  269. package/src/internal/cache.ts +733 -0
  270. package/src/internal/cause.ts +1050 -0
  271. package/src/internal/channel/channelExecutor.ts +1200 -0
  272. package/src/internal/channel/channelState.ts +134 -0
  273. package/src/internal/channel/childExecutorDecision.ts +96 -0
  274. package/src/internal/channel/continuation.ts +200 -0
  275. package/src/internal/channel/mergeDecision.ts +113 -0
  276. package/src/internal/channel/mergeState.ts +120 -0
  277. package/src/internal/channel/mergeStrategy.ts +72 -0
  278. package/src/internal/channel/singleProducerAsyncInput.ts +259 -0
  279. package/src/internal/channel/subexecutor.ts +229 -0
  280. package/src/internal/channel/upstreamPullRequest.ts +84 -0
  281. package/src/internal/channel/upstreamPullStrategy.ts +87 -0
  282. package/src/internal/channel.ts +2603 -0
  283. package/src/internal/clock.ts +95 -0
  284. package/src/internal/completedRequestMap.ts +9 -0
  285. package/src/internal/concurrency.ts +54 -0
  286. package/src/internal/config.ts +716 -0
  287. package/src/internal/configError.ts +304 -0
  288. package/src/internal/configProvider/pathPatch.ts +97 -0
  289. package/src/internal/configProvider.ts +799 -0
  290. package/src/internal/console.ts +153 -0
  291. package/src/internal/context.ts +337 -0
  292. package/src/internal/core-effect.ts +2293 -0
  293. package/src/internal/core-stream.ts +998 -0
  294. package/src/internal/core.ts +3189 -0
  295. package/src/internal/data.ts +36 -0
  296. package/src/internal/dataSource.ts +327 -0
  297. package/src/internal/dateTime.ts +1277 -0
  298. package/src/internal/defaultServices/console.ts +100 -0
  299. package/src/internal/defaultServices.ts +163 -0
  300. package/src/internal/deferred.ts +46 -0
  301. package/src/internal/differ/chunkPatch.ts +211 -0
  302. package/src/internal/differ/contextPatch.ts +232 -0
  303. package/src/internal/differ/hashMapPatch.ts +220 -0
  304. package/src/internal/differ/hashSetPatch.ts +176 -0
  305. package/src/internal/differ/orPatch.ts +311 -0
  306. package/src/internal/differ/readonlyArrayPatch.ts +210 -0
  307. package/src/internal/differ.ts +200 -0
  308. package/src/internal/doNotation.ts +80 -0
  309. package/src/internal/effect/circular.ts +895 -0
  310. package/src/internal/effectable.ts +131 -0
  311. package/src/internal/either.ts +110 -0
  312. package/src/internal/encoding/base64.ts +286 -0
  313. package/src/internal/encoding/base64Url.ts +29 -0
  314. package/src/internal/encoding/common.ts +51 -0
  315. package/src/internal/encoding/hex.ts +315 -0
  316. package/src/internal/errors.ts +7 -0
  317. package/src/internal/executionPlan.ts +114 -0
  318. package/src/internal/executionStrategy.ts +74 -0
  319. package/src/internal/fiber.ts +388 -0
  320. package/src/internal/fiberId.ts +267 -0
  321. package/src/internal/fiberMessage.ts +82 -0
  322. package/src/internal/fiberRefs/patch.ts +144 -0
  323. package/src/internal/fiberRefs.ts +297 -0
  324. package/src/internal/fiberRuntime.ts +3842 -0
  325. package/src/internal/fiberScope.ts +71 -0
  326. package/src/internal/fiberStatus.ts +119 -0
  327. package/src/internal/groupBy.ts +530 -0
  328. package/src/internal/hashMap/array.ts +49 -0
  329. package/src/internal/hashMap/bitwise.ts +32 -0
  330. package/src/internal/hashMap/config.ts +14 -0
  331. package/src/internal/hashMap/keySet.ts +8 -0
  332. package/src/internal/hashMap/node.ts +391 -0
  333. package/src/internal/hashMap.ts +586 -0
  334. package/src/internal/hashSet.ts +323 -0
  335. package/src/internal/keyedPool.ts +244 -0
  336. package/src/internal/layer/circular.ts +214 -0
  337. package/src/internal/layer.ts +1483 -0
  338. package/src/internal/logSpan.ts +20 -0
  339. package/src/internal/logger-circular.ts +24 -0
  340. package/src/internal/logger.ts +522 -0
  341. package/src/internal/mailbox.ts +561 -0
  342. package/src/internal/managedRuntime/circular.ts +6 -0
  343. package/src/internal/managedRuntime.ts +134 -0
  344. package/src/internal/matcher.ts +652 -0
  345. package/src/internal/metric/boundaries.ts +75 -0
  346. package/src/internal/metric/hook.ts +483 -0
  347. package/src/internal/metric/key.ts +167 -0
  348. package/src/internal/metric/keyType.ts +238 -0
  349. package/src/internal/metric/label.ts +41 -0
  350. package/src/internal/metric/pair.ts +48 -0
  351. package/src/internal/metric/polling.ts +149 -0
  352. package/src/internal/metric/registry.ts +187 -0
  353. package/src/internal/metric/state.ts +290 -0
  354. package/src/internal/metric.ts +577 -0
  355. package/src/internal/opCodes/cause.ts +35 -0
  356. package/src/internal/opCodes/channel.ts +83 -0
  357. package/src/internal/opCodes/channelChildExecutorDecision.ts +17 -0
  358. package/src/internal/opCodes/channelMergeDecision.ts +11 -0
  359. package/src/internal/opCodes/channelMergeState.ts +17 -0
  360. package/src/internal/opCodes/channelMergeStrategy.ts +11 -0
  361. package/src/internal/opCodes/channelState.ts +23 -0
  362. package/src/internal/opCodes/channelUpstreamPullRequest.ts +11 -0
  363. package/src/internal/opCodes/channelUpstreamPullStrategy.ts +11 -0
  364. package/src/internal/opCodes/config.ts +65 -0
  365. package/src/internal/opCodes/configError.ts +35 -0
  366. package/src/internal/opCodes/continuation.ts +11 -0
  367. package/src/internal/opCodes/deferred.ts +11 -0
  368. package/src/internal/opCodes/effect.ts +89 -0
  369. package/src/internal/opCodes/layer.ts +59 -0
  370. package/src/internal/opCodes/streamHaltStrategy.ts +23 -0
  371. package/src/internal/option.ts +80 -0
  372. package/src/internal/pool.ts +432 -0
  373. package/src/internal/pubsub.ts +1762 -0
  374. package/src/internal/query.ts +204 -0
  375. package/src/internal/queue.ts +766 -0
  376. package/src/internal/random.ts +161 -0
  377. package/src/internal/rateLimiter.ts +93 -0
  378. package/src/internal/rcMap.ts +285 -0
  379. package/src/internal/rcRef.ts +192 -0
  380. package/src/internal/redBlackTree/iterator.ts +200 -0
  381. package/src/internal/redBlackTree/node.ts +68 -0
  382. package/src/internal/redBlackTree.ts +1245 -0
  383. package/src/internal/redacted.ts +73 -0
  384. package/src/internal/ref.ts +171 -0
  385. package/src/internal/reloadable.ts +140 -0
  386. package/src/internal/request.ts +177 -0
  387. package/src/internal/resource.ts +76 -0
  388. package/src/internal/ringBuffer.ts +68 -0
  389. package/src/internal/runtime.ts +558 -0
  390. package/src/internal/runtimeFlags.ts +178 -0
  391. package/src/internal/runtimeFlagsPatch.ts +103 -0
  392. package/src/internal/schedule/decision.ts +47 -0
  393. package/src/internal/schedule/interval.ts +101 -0
  394. package/src/internal/schedule/intervals.ts +180 -0
  395. package/src/internal/schedule.ts +2199 -0
  396. package/src/internal/schema/errors.ts +191 -0
  397. package/src/internal/schema/schemaId.ts +106 -0
  398. package/src/internal/schema/util.ts +50 -0
  399. package/src/internal/scopedCache.ts +644 -0
  400. package/src/internal/scopedRef.ts +118 -0
  401. package/src/internal/secret.ts +89 -0
  402. package/src/internal/singleShotGen.ts +35 -0
  403. package/src/internal/sink.ts +2120 -0
  404. package/src/internal/stack.ts +10 -0
  405. package/src/internal/stm/core.ts +817 -0
  406. package/src/internal/stm/entry.ts +59 -0
  407. package/src/internal/stm/journal.ts +123 -0
  408. package/src/internal/stm/opCodes/stm.ts +71 -0
  409. package/src/internal/stm/opCodes/stmState.ts +17 -0
  410. package/src/internal/stm/opCodes/strategy.ts +17 -0
  411. package/src/internal/stm/opCodes/tExit.ts +29 -0
  412. package/src/internal/stm/opCodes/tryCommit.ts +11 -0
  413. package/src/internal/stm/stm.ts +1453 -0
  414. package/src/internal/stm/stmState.ts +136 -0
  415. package/src/internal/stm/tArray.ts +550 -0
  416. package/src/internal/stm/tDeferred.ts +81 -0
  417. package/src/internal/stm/tExit.ts +190 -0
  418. package/src/internal/stm/tMap.ts +824 -0
  419. package/src/internal/stm/tPriorityQueue.ts +267 -0
  420. package/src/internal/stm/tPubSub.ts +551 -0
  421. package/src/internal/stm/tQueue.ts +393 -0
  422. package/src/internal/stm/tRandom.ts +140 -0
  423. package/src/internal/stm/tReentrantLock.ts +352 -0
  424. package/src/internal/stm/tRef.ts +195 -0
  425. package/src/internal/stm/tSemaphore.ts +113 -0
  426. package/src/internal/stm/tSet.ts +259 -0
  427. package/src/internal/stm/tSubscriptionRef.ts +286 -0
  428. package/src/internal/stm/tryCommit.ts +34 -0
  429. package/src/internal/stm/txnId.ts +14 -0
  430. package/src/internal/stm/versioned.ts +4 -0
  431. package/src/internal/stream/debounceState.ts +57 -0
  432. package/src/internal/stream/emit.ts +123 -0
  433. package/src/internal/stream/haltStrategy.ts +94 -0
  434. package/src/internal/stream/handoff.ts +187 -0
  435. package/src/internal/stream/handoffSignal.ts +59 -0
  436. package/src/internal/stream/pull.ts +34 -0
  437. package/src/internal/stream/sinkEndReason.ts +30 -0
  438. package/src/internal/stream/zipAllState.ts +88 -0
  439. package/src/internal/stream/zipChunksState.ts +56 -0
  440. package/src/internal/stream.ts +8801 -0
  441. package/src/internal/string-utils.ts +107 -0
  442. package/src/internal/subscriptionRef.ts +138 -0
  443. package/src/internal/supervisor/patch.ts +190 -0
  444. package/src/internal/supervisor.ts +303 -0
  445. package/src/internal/synchronizedRef.ts +114 -0
  446. package/src/internal/take.ts +199 -0
  447. package/src/internal/testing/sleep.ts +27 -0
  448. package/src/internal/testing/suspendedWarningData.ts +85 -0
  449. package/src/internal/testing/warningData.ts +94 -0
  450. package/src/internal/tracer.ts +150 -0
  451. package/src/internal/trie.ts +722 -0
  452. package/src/internal/version.ts +7 -0
@@ -0,0 +1,187 @@
1
+ import { pipe } from "../../Function.js"
2
+ import type * as MetricHook from "../../MetricHook.js"
3
+ import type * as MetricKey from "../../MetricKey.js"
4
+ import type * as MetricKeyType from "../../MetricKeyType.js"
5
+ import type * as MetricPair from "../../MetricPair.js"
6
+ import type * as MetricRegistry from "../../MetricRegistry.js"
7
+ import * as MutableHashMap from "../../MutableHashMap.js"
8
+ import * as Option from "../../Option.js"
9
+ import * as metricHook from "./hook.js"
10
+ import * as metricKeyType from "./keyType.js"
11
+ import * as metricPair from "./pair.js"
12
+
13
+ /** @internal */
14
+ const MetricRegistrySymbolKey = "effect/MetricRegistry"
15
+
16
+ /** @internal */
17
+ export const MetricRegistryTypeId: MetricRegistry.MetricRegistryTypeId = Symbol.for(
18
+ MetricRegistrySymbolKey
19
+ ) as MetricRegistry.MetricRegistryTypeId
20
+
21
+ /** @internal */
22
+ class MetricRegistryImpl implements MetricRegistry.MetricRegistry {
23
+ readonly [MetricRegistryTypeId]: MetricRegistry.MetricRegistryTypeId = MetricRegistryTypeId
24
+
25
+ private map = MutableHashMap.empty<
26
+ MetricKey.MetricKey<MetricKeyType.MetricKeyType.Untyped>,
27
+ MetricHook.MetricHook.Root
28
+ >()
29
+
30
+ snapshot(): Array<MetricPair.MetricPair.Untyped> {
31
+ const result: Array<MetricPair.MetricPair.Untyped> = []
32
+ for (const [key, hook] of this.map) {
33
+ result.push(metricPair.unsafeMake(key, hook.get()))
34
+ }
35
+ return result
36
+ }
37
+
38
+ get<Type extends MetricKeyType.MetricKeyType<any, any>>(
39
+ key: MetricKey.MetricKey<Type>
40
+ ): MetricHook.MetricHook<
41
+ MetricKeyType.MetricKeyType.InType<typeof key["keyType"]>,
42
+ MetricKeyType.MetricKeyType.OutType<typeof key["keyType"]>
43
+ > {
44
+ const hook = pipe(
45
+ this.map,
46
+ MutableHashMap.get(key as MetricKey.MetricKey<MetricKeyType.MetricKeyType.Untyped>),
47
+ Option.getOrUndefined
48
+ )
49
+ if (hook == null) {
50
+ if (metricKeyType.isCounterKey(key.keyType)) {
51
+ return this.getCounter(key as unknown as MetricKey.MetricKey.Counter<any>) as any
52
+ }
53
+ if (metricKeyType.isGaugeKey(key.keyType)) {
54
+ return this.getGauge(key as unknown as MetricKey.MetricKey.Gauge<any>) as any
55
+ }
56
+ if (metricKeyType.isFrequencyKey(key.keyType)) {
57
+ return this.getFrequency(key as unknown as MetricKey.MetricKey.Frequency) as any
58
+ }
59
+ if (metricKeyType.isHistogramKey(key.keyType)) {
60
+ return this.getHistogram(key as unknown as MetricKey.MetricKey.Histogram) as any
61
+ }
62
+ if (metricKeyType.isSummaryKey(key.keyType)) {
63
+ return this.getSummary(key as unknown as MetricKey.MetricKey.Summary) as any
64
+ }
65
+ throw new Error(
66
+ "BUG: MetricRegistry.get - unknown MetricKeyType - please report an issue at https://github.com/Effect-TS/effect/issues"
67
+ )
68
+ } else {
69
+ return hook as any
70
+ }
71
+ }
72
+
73
+ getCounter<A extends (number | bigint)>(key: MetricKey.MetricKey.Counter<A>): MetricHook.MetricHook.Counter<A> {
74
+ let value = pipe(
75
+ this.map,
76
+ MutableHashMap.get(key as MetricKey.MetricKey<MetricKeyType.MetricKeyType.Untyped>),
77
+ Option.getOrUndefined
78
+ )
79
+ if (value == null) {
80
+ const counter = metricHook.counter(key)
81
+ if (!pipe(this.map, MutableHashMap.has(key as MetricKey.MetricKey<MetricKeyType.MetricKeyType.Untyped>))) {
82
+ pipe(
83
+ this.map,
84
+ MutableHashMap.set(
85
+ key as MetricKey.MetricKey<MetricKeyType.MetricKeyType.Untyped>,
86
+ counter as MetricHook.MetricHook.Root
87
+ )
88
+ )
89
+ }
90
+ value = counter
91
+ }
92
+ return value as MetricHook.MetricHook.Counter<A>
93
+ }
94
+
95
+ getFrequency(key: MetricKey.MetricKey.Frequency): MetricHook.MetricHook.Frequency {
96
+ let value = pipe(
97
+ this.map,
98
+ MutableHashMap.get(key as MetricKey.MetricKey<MetricKeyType.MetricKeyType.Untyped>),
99
+ Option.getOrUndefined
100
+ )
101
+ if (value == null) {
102
+ const frequency = metricHook.frequency(key)
103
+ if (!pipe(this.map, MutableHashMap.has(key as MetricKey.MetricKey<MetricKeyType.MetricKeyType.Untyped>))) {
104
+ pipe(
105
+ this.map,
106
+ MutableHashMap.set(
107
+ key as MetricKey.MetricKey<MetricKeyType.MetricKeyType.Untyped>,
108
+ frequency as MetricHook.MetricHook.Root
109
+ )
110
+ )
111
+ }
112
+ value = frequency
113
+ }
114
+ return value as MetricHook.MetricHook.Frequency
115
+ }
116
+
117
+ getGauge<A extends (number | bigint)>(key: MetricKey.MetricKey.Gauge<A>): MetricHook.MetricHook.Gauge<A> {
118
+ let value = pipe(
119
+ this.map,
120
+ MutableHashMap.get(key as MetricKey.MetricKey<MetricKeyType.MetricKeyType.Untyped>),
121
+ Option.getOrUndefined
122
+ )
123
+ if (value == null) {
124
+ const gauge = metricHook.gauge(key as any, key.keyType.bigint ? BigInt(0) as any : 0)
125
+ if (!pipe(this.map, MutableHashMap.has(key as MetricKey.MetricKey<MetricKeyType.MetricKeyType.Untyped>))) {
126
+ pipe(
127
+ this.map,
128
+ MutableHashMap.set(
129
+ key as MetricKey.MetricKey<MetricKeyType.MetricKeyType.Untyped>,
130
+ gauge as MetricHook.MetricHook.Root
131
+ )
132
+ )
133
+ }
134
+ value = gauge
135
+ }
136
+ return value as MetricHook.MetricHook.Gauge<A>
137
+ }
138
+
139
+ getHistogram(key: MetricKey.MetricKey.Histogram): MetricHook.MetricHook.Histogram {
140
+ let value = pipe(
141
+ this.map,
142
+ MutableHashMap.get(key as MetricKey.MetricKey<MetricKeyType.MetricKeyType.Untyped>),
143
+ Option.getOrUndefined
144
+ )
145
+ if (value == null) {
146
+ const histogram = metricHook.histogram(key)
147
+ if (!pipe(this.map, MutableHashMap.has(key as MetricKey.MetricKey<MetricKeyType.MetricKeyType.Untyped>))) {
148
+ pipe(
149
+ this.map,
150
+ MutableHashMap.set(
151
+ key as MetricKey.MetricKey<MetricKeyType.MetricKeyType.Untyped>,
152
+ histogram as MetricHook.MetricHook.Root
153
+ )
154
+ )
155
+ }
156
+ value = histogram
157
+ }
158
+ return value as MetricHook.MetricHook.Histogram
159
+ }
160
+
161
+ getSummary(key: MetricKey.MetricKey.Summary): MetricHook.MetricHook.Summary {
162
+ let value = pipe(
163
+ this.map,
164
+ MutableHashMap.get(key as MetricKey.MetricKey<MetricKeyType.MetricKeyType.Untyped>),
165
+ Option.getOrUndefined
166
+ )
167
+ if (value == null) {
168
+ const summary = metricHook.summary(key)
169
+ if (!pipe(this.map, MutableHashMap.has(key as MetricKey.MetricKey<MetricKeyType.MetricKeyType.Untyped>))) {
170
+ pipe(
171
+ this.map,
172
+ MutableHashMap.set(
173
+ key as MetricKey.MetricKey<MetricKeyType.MetricKeyType.Untyped>,
174
+ summary as MetricHook.MetricHook.Root
175
+ )
176
+ )
177
+ }
178
+ value = summary
179
+ }
180
+ return value as MetricHook.MetricHook.Summary
181
+ }
182
+ }
183
+
184
+ /** @internal */
185
+ export const make = (): MetricRegistry.MetricRegistry => {
186
+ return new MetricRegistryImpl()
187
+ }
@@ -0,0 +1,290 @@
1
+ import * as Arr from "../../Array.js"
2
+ import * as Equal from "../../Equal.js"
3
+ import { pipe } from "../../Function.js"
4
+ import * as Hash from "../../Hash.js"
5
+ import type * as MetricState from "../../MetricState.js"
6
+ import type * as Option from "../../Option.js"
7
+ import { pipeArguments } from "../../Pipeable.js"
8
+ import { hasProperty } from "../../Predicate.js"
9
+
10
+ /** @internal */
11
+ const MetricStateSymbolKey = "effect/MetricState"
12
+
13
+ /** @internal */
14
+ export const MetricStateTypeId: MetricState.MetricStateTypeId = Symbol.for(
15
+ MetricStateSymbolKey
16
+ ) as MetricState.MetricStateTypeId
17
+
18
+ /** @internal */
19
+ const CounterStateSymbolKey = "effect/MetricState/Counter"
20
+
21
+ /** @internal */
22
+ export const CounterStateTypeId: MetricState.CounterStateTypeId = Symbol.for(
23
+ CounterStateSymbolKey
24
+ ) as MetricState.CounterStateTypeId
25
+
26
+ /** @internal */
27
+ const FrequencyStateSymbolKey = "effect/MetricState/Frequency"
28
+
29
+ /** @internal */
30
+ export const FrequencyStateTypeId: MetricState.FrequencyStateTypeId = Symbol.for(
31
+ FrequencyStateSymbolKey
32
+ ) as MetricState.FrequencyStateTypeId
33
+
34
+ /** @internal */
35
+ const GaugeStateSymbolKey = "effect/MetricState/Gauge"
36
+
37
+ /** @internal */
38
+ export const GaugeStateTypeId: MetricState.GaugeStateTypeId = Symbol.for(
39
+ GaugeStateSymbolKey
40
+ ) as MetricState.GaugeStateTypeId
41
+
42
+ /** @internal */
43
+ const HistogramStateSymbolKey = "effect/MetricState/Histogram"
44
+
45
+ /** @internal */
46
+ export const HistogramStateTypeId: MetricState.HistogramStateTypeId = Symbol.for(
47
+ HistogramStateSymbolKey
48
+ ) as MetricState.HistogramStateTypeId
49
+
50
+ /** @internal */
51
+ const SummaryStateSymbolKey = "effect/MetricState/Summary"
52
+
53
+ /** @internal */
54
+ export const SummaryStateTypeId: MetricState.SummaryStateTypeId = Symbol.for(
55
+ SummaryStateSymbolKey
56
+ ) as MetricState.SummaryStateTypeId
57
+
58
+ const metricStateVariance = {
59
+ /* c8 ignore next */
60
+ _A: (_: unknown) => _
61
+ }
62
+
63
+ /** @internal */
64
+ class CounterState<A extends (number | bigint)> implements MetricState.MetricState.Counter<A> {
65
+ readonly [MetricStateTypeId] = metricStateVariance
66
+ readonly [CounterStateTypeId]: MetricState.CounterStateTypeId = CounterStateTypeId
67
+ constructor(readonly count: A) {}
68
+ [Hash.symbol](): number {
69
+ return pipe(
70
+ Hash.hash(CounterStateSymbolKey),
71
+ Hash.combine(Hash.hash(this.count)),
72
+ Hash.cached(this)
73
+ )
74
+ }
75
+ [Equal.symbol](that: unknown): boolean {
76
+ return isCounterState(that) && this.count === that.count
77
+ }
78
+ pipe() {
79
+ return pipeArguments(this, arguments)
80
+ }
81
+ }
82
+
83
+ const arrayEquals = Arr.getEquivalence(Equal.equals)
84
+
85
+ /** @internal */
86
+ class FrequencyState implements MetricState.MetricState.Frequency {
87
+ readonly [MetricStateTypeId] = metricStateVariance
88
+ readonly [FrequencyStateTypeId]: MetricState.FrequencyStateTypeId = FrequencyStateTypeId
89
+ constructor(readonly occurrences: ReadonlyMap<string, number>) {}
90
+ _hash: number | undefined;
91
+ [Hash.symbol](): number {
92
+ return pipe(
93
+ Hash.string(FrequencyStateSymbolKey),
94
+ Hash.combine(Hash.array(Arr.fromIterable(this.occurrences.entries()))),
95
+ Hash.cached(this)
96
+ )
97
+ }
98
+ [Equal.symbol](that: unknown): boolean {
99
+ return isFrequencyState(that) && arrayEquals(
100
+ Arr.fromIterable(this.occurrences.entries()),
101
+ Arr.fromIterable(that.occurrences.entries())
102
+ )
103
+ }
104
+ pipe() {
105
+ return pipeArguments(this, arguments)
106
+ }
107
+ }
108
+
109
+ /** @internal */
110
+ class GaugeState<A extends (number | bigint)> implements MetricState.MetricState.Gauge<A> {
111
+ readonly [MetricStateTypeId] = metricStateVariance
112
+ readonly [GaugeStateTypeId]: MetricState.GaugeStateTypeId = GaugeStateTypeId
113
+ constructor(readonly value: A) {}
114
+ [Hash.symbol](): number {
115
+ return pipe(
116
+ Hash.hash(GaugeStateSymbolKey),
117
+ Hash.combine(Hash.hash(this.value)),
118
+ Hash.cached(this)
119
+ )
120
+ }
121
+ [Equal.symbol](u: unknown): boolean {
122
+ return isGaugeState(u) && this.value === u.value
123
+ }
124
+ pipe() {
125
+ return pipeArguments(this, arguments)
126
+ }
127
+ }
128
+
129
+ /** @internal */
130
+ export class HistogramState implements MetricState.MetricState.Histogram {
131
+ readonly [MetricStateTypeId] = metricStateVariance
132
+ readonly [HistogramStateTypeId]: MetricState.HistogramStateTypeId = HistogramStateTypeId
133
+ constructor(
134
+ readonly buckets: ReadonlyArray<readonly [number, number]>,
135
+ readonly count: number,
136
+ readonly min: number,
137
+ readonly max: number,
138
+ readonly sum: number
139
+ ) {}
140
+ [Hash.symbol](): number {
141
+ return pipe(
142
+ Hash.hash(HistogramStateSymbolKey),
143
+ Hash.combine(Hash.hash(this.buckets)),
144
+ Hash.combine(Hash.hash(this.count)),
145
+ Hash.combine(Hash.hash(this.min)),
146
+ Hash.combine(Hash.hash(this.max)),
147
+ Hash.combine(Hash.hash(this.sum)),
148
+ Hash.cached(this)
149
+ )
150
+ }
151
+ [Equal.symbol](that: unknown): boolean {
152
+ return isHistogramState(that) &&
153
+ Equal.equals(this.buckets, that.buckets) &&
154
+ this.count === that.count &&
155
+ this.min === that.min &&
156
+ this.max === that.max &&
157
+ this.sum === that.sum
158
+ }
159
+ pipe() {
160
+ return pipeArguments(this, arguments)
161
+ }
162
+ }
163
+
164
+ /** @internal */
165
+ export class SummaryState implements MetricState.MetricState.Summary {
166
+ readonly [MetricStateTypeId] = metricStateVariance
167
+ readonly [SummaryStateTypeId]: MetricState.SummaryStateTypeId = SummaryStateTypeId
168
+ constructor(
169
+ readonly error: number,
170
+ readonly quantiles: ReadonlyArray<readonly [number, Option.Option<number>]>,
171
+ readonly count: number,
172
+ readonly min: number,
173
+ readonly max: number,
174
+ readonly sum: number
175
+ ) {}
176
+ [Hash.symbol](): number {
177
+ return pipe(
178
+ Hash.hash(SummaryStateSymbolKey),
179
+ Hash.combine(Hash.hash(this.error)),
180
+ Hash.combine(Hash.hash(this.quantiles)),
181
+ Hash.combine(Hash.hash(this.count)),
182
+ Hash.combine(Hash.hash(this.min)),
183
+ Hash.combine(Hash.hash(this.max)),
184
+ Hash.combine(Hash.hash(this.sum)),
185
+ Hash.cached(this)
186
+ )
187
+ }
188
+ [Equal.symbol](that: unknown): boolean {
189
+ return isSummaryState(that) &&
190
+ this.error === that.error &&
191
+ Equal.equals(this.quantiles, that.quantiles) &&
192
+ this.count === that.count &&
193
+ this.min === that.min &&
194
+ this.max === that.max &&
195
+ this.sum === that.sum
196
+ }
197
+ pipe() {
198
+ return pipeArguments(this, arguments)
199
+ }
200
+ }
201
+
202
+ /** @internal */
203
+ export const counter: {
204
+ (count: number): MetricState.MetricState.Counter<number>
205
+ (count: bigint): MetricState.MetricState.Counter<bigint>
206
+ } = (count) => new CounterState(count) as any
207
+
208
+ /** @internal */
209
+ export const frequency = (occurrences: ReadonlyMap<string, number>): MetricState.MetricState.Frequency => {
210
+ return new FrequencyState(occurrences)
211
+ }
212
+
213
+ /** @internal */
214
+ export const gauge: {
215
+ (count: number): MetricState.MetricState.Gauge<number>
216
+ (count: bigint): MetricState.MetricState.Gauge<bigint>
217
+ } = (count) => new GaugeState(count) as any
218
+
219
+ /** @internal */
220
+ export const histogram = (
221
+ options: {
222
+ readonly buckets: ReadonlyArray<readonly [number, number]>
223
+ readonly count: number
224
+ readonly min: number
225
+ readonly max: number
226
+ readonly sum: number
227
+ }
228
+ ): MetricState.MetricState.Histogram =>
229
+ new HistogramState(
230
+ options.buckets,
231
+ options.count,
232
+ options.min,
233
+ options.max,
234
+ options.sum
235
+ )
236
+
237
+ /** @internal */
238
+ export const summary = (
239
+ options: {
240
+ readonly error: number
241
+ readonly quantiles: ReadonlyArray<readonly [number, Option.Option<number>]>
242
+ readonly count: number
243
+ readonly min: number
244
+ readonly max: number
245
+ readonly sum: number
246
+ }
247
+ ): MetricState.MetricState.Summary =>
248
+ new SummaryState(
249
+ options.error,
250
+ options.quantiles,
251
+ options.count,
252
+ options.min,
253
+ options.max,
254
+ options.sum
255
+ )
256
+
257
+ /** @internal */
258
+ export const isMetricState = (u: unknown): u is MetricState.MetricState.Counter<number | bigint> =>
259
+ hasProperty(u, MetricStateTypeId)
260
+
261
+ /** @internal */
262
+ export const isCounterState = (u: unknown): u is MetricState.MetricState.Counter<number | bigint> =>
263
+ hasProperty(u, CounterStateTypeId)
264
+
265
+ /**
266
+ * @since 2.0.0
267
+ * @category refinements
268
+ */
269
+ export const isFrequencyState = (u: unknown): u is MetricState.MetricState.Frequency =>
270
+ hasProperty(u, FrequencyStateTypeId)
271
+
272
+ /**
273
+ * @since 2.0.0
274
+ * @category refinements
275
+ */
276
+ export const isGaugeState = (u: unknown): u is MetricState.MetricState.Gauge<number | bigint> =>
277
+ hasProperty(u, GaugeStateTypeId)
278
+
279
+ /**
280
+ * @since 2.0.0
281
+ * @category refinements
282
+ */
283
+ export const isHistogramState = (u: unknown): u is MetricState.MetricState.Histogram =>
284
+ hasProperty(u, HistogramStateTypeId)
285
+
286
+ /**
287
+ * @since 2.0.0
288
+ * @category refinements
289
+ */
290
+ export const isSummaryState = (u: unknown): u is MetricState.MetricState.Summary => hasProperty(u, SummaryStateTypeId)