@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
package/src/Clock.ts ADDED
@@ -0,0 +1,111 @@
1
+ /**
2
+ * @since 2.0.0
3
+ */
4
+ import type * as Context from "./Context.js"
5
+ import type * as Duration from "./Duration.js"
6
+ import type * as Effect from "./Effect.js"
7
+ import * as internal from "./internal/clock.js"
8
+ import * as defaultServices from "./internal/defaultServices.js"
9
+
10
+ /**
11
+ * @since 2.0.0
12
+ * @category symbols
13
+ */
14
+ export const ClockTypeId: unique symbol = internal.ClockTypeId
15
+
16
+ /**
17
+ * @since 2.0.0
18
+ * @category symbols
19
+ */
20
+ export type ClockTypeId = typeof ClockTypeId
21
+
22
+ /**
23
+ * Represents a time-based clock which provides functionality related to time
24
+ * and scheduling.
25
+ *
26
+ * @since 2.0.0
27
+ * @category models
28
+ */
29
+ export interface Clock {
30
+ readonly [ClockTypeId]: ClockTypeId
31
+ /**
32
+ * Unsafely returns the current time in milliseconds.
33
+ */
34
+ unsafeCurrentTimeMillis(): number
35
+ /**
36
+ * Returns the current time in milliseconds.
37
+ */
38
+ readonly currentTimeMillis: Effect.Effect<number>
39
+ /**
40
+ * Unsafely returns the current time in nanoseconds.
41
+ */
42
+ unsafeCurrentTimeNanos(): bigint
43
+ /**
44
+ * Returns the current time in nanoseconds.
45
+ */
46
+ readonly currentTimeNanos: Effect.Effect<bigint>
47
+ /**
48
+ * Asynchronously sleeps for the specified duration.
49
+ */
50
+ sleep(duration: Duration.Duration): Effect.Effect<void>
51
+ }
52
+
53
+ /**
54
+ * @since 2.0.0
55
+ * @category models
56
+ */
57
+ export type CancelToken = () => boolean
58
+
59
+ /**
60
+ * @since 2.0.0
61
+ * @category models
62
+ */
63
+ export type Task = () => void
64
+
65
+ /**
66
+ * @since 2.0.0
67
+ * @category models
68
+ */
69
+ export interface ClockScheduler {
70
+ /**
71
+ * Unsafely schedules the specified task for the specified duration.
72
+ */
73
+ unsafeSchedule(task: Task, duration: Duration.Duration): CancelToken
74
+ }
75
+
76
+ /**
77
+ * @since 2.0.0
78
+ * @category constructors
79
+ */
80
+ export const make: (_: void) => Clock = internal.make
81
+
82
+ /**
83
+ * @since 2.0.0
84
+ * @category constructors
85
+ */
86
+ export const sleep: (duration: Duration.DurationInput) => Effect.Effect<void> = defaultServices.sleep
87
+
88
+ /**
89
+ * @since 2.0.0
90
+ * @category constructors
91
+ */
92
+ export const currentTimeMillis: Effect.Effect<number> = defaultServices.currentTimeMillis
93
+
94
+ /**
95
+ * @since 2.0.0
96
+ * @category constructors
97
+ */
98
+ export const currentTimeNanos: Effect.Effect<bigint> = defaultServices.currentTimeNanos
99
+
100
+ /**
101
+ * @since 2.0.0
102
+ * @category constructors
103
+ */
104
+ export const clockWith: <A, E, R>(f: (clock: Clock) => Effect.Effect<A, E, R>) => Effect.Effect<A, E, R> =
105
+ defaultServices.clockWith
106
+
107
+ /**
108
+ * @since 2.0.0
109
+ * @category context
110
+ */
111
+ export const Clock: Context.Tag<Clock, Clock> = internal.clockTag
package/src/Config.ts ADDED
@@ -0,0 +1,542 @@
1
+ /**
2
+ * @since 2.0.0
3
+ */
4
+ import type * as Brand from "./Brand.js"
5
+ import type * as Chunk from "./Chunk.js"
6
+ import type * as ConfigError from "./ConfigError.js"
7
+ import type * as Duration from "./Duration.js"
8
+ import type * as Effect from "./Effect.js"
9
+ import type * as Either from "./Either.js"
10
+ import type { LazyArg } from "./Function.js"
11
+ import type * as HashMap from "./HashMap.js"
12
+ import type * as HashSet from "./HashSet.js"
13
+ import * as internal from "./internal/config.js"
14
+ import type * as LogLevel from "./LogLevel.js"
15
+ import type * as Option from "./Option.js"
16
+ import type { Predicate, Refinement } from "./Predicate.js"
17
+ import type * as Redacted from "./Redacted.js"
18
+ import type * as Secret from "./Secret.js"
19
+ import type * as Types from "./Types.js"
20
+
21
+ /**
22
+ * @since 2.0.0
23
+ * @category symbols
24
+ */
25
+ export const ConfigTypeId: unique symbol = internal.ConfigTypeId
26
+
27
+ /**
28
+ * @since 2.0.0
29
+ * @category symbols
30
+ */
31
+ export type ConfigTypeId = typeof ConfigTypeId
32
+
33
+ /**
34
+ * A `Config` describes the structure of some configuration data.
35
+ *
36
+ * @since 2.0.0
37
+ * @category models
38
+ */
39
+ export interface Config<out A> extends Config.Variance<A>, Effect.Effect<A, ConfigError.ConfigError> {}
40
+
41
+ /**
42
+ * @since 2.0.0
43
+ */
44
+ export declare namespace Config {
45
+ /**
46
+ * @since 2.0.0
47
+ * @category models
48
+ */
49
+ export interface Variance<out A> {
50
+ readonly [ConfigTypeId]: {
51
+ readonly _A: Types.Covariant<A>
52
+ }
53
+ }
54
+
55
+ /**
56
+ * @since 2.5.0
57
+ * @category models
58
+ */
59
+ export type Success<T extends Config<any>> = [T] extends [Config<infer _A>] ? _A : never
60
+
61
+ /**
62
+ * @since 2.0.0
63
+ * @category models
64
+ */
65
+ export interface Primitive<out A> extends Config<A> {
66
+ readonly description: string
67
+ parse(text: string): Either.Either<A, ConfigError.ConfigError>
68
+ }
69
+
70
+ /**
71
+ * Wraps a nested structure, converting all primitives to a `Config`.
72
+ *
73
+ * `Config.Wrap<{ key: string }>` becomes `{ key: Config<string> }`
74
+ *
75
+ * To create the resulting config, use the `unwrap` constructor.
76
+ *
77
+ * @since 2.0.0
78
+ * @category models
79
+ */
80
+ export type Wrap<A> = [NonNullable<A>] extends [infer T] ? [IsPlainObject<T>] extends [true] ?
81
+ | { readonly [K in keyof A]: Wrap<A[K]> }
82
+ | Config<A>
83
+ : Config<A>
84
+ : Config<A>
85
+
86
+ type IsPlainObject<A> = [A] extends [Record<string, any>]
87
+ ? [keyof A] extends [never] ? false : [keyof A] extends [string] ? true : false
88
+ : false
89
+ }
90
+
91
+ /**
92
+ * @since 2.0.0
93
+ * @category models
94
+ */
95
+ export type LiteralValue = string | number | boolean | null | bigint
96
+
97
+ /**
98
+ * Constructs a config from a tuple / struct / arguments of configs.
99
+ *
100
+ * @since 2.0.0
101
+ * @category constructors
102
+ */
103
+ export const all: <const Arg extends Iterable<Config<any>> | Record<string, Config<any>>>(
104
+ arg: Arg
105
+ ) => Config<
106
+ [Arg] extends [ReadonlyArray<Config<any>>] ? {
107
+ -readonly [K in keyof Arg]: [Arg[K]] extends [Config<infer A>] ? A : never
108
+ }
109
+ : [Arg] extends [Iterable<Config<infer A>>] ? Array<A>
110
+ : [Arg] extends [Record<string, Config<any>>] ? {
111
+ -readonly [K in keyof Arg]: [Arg[K]] extends [Config<infer A>] ? A : never
112
+ }
113
+ : never
114
+ > = internal.all
115
+
116
+ /**
117
+ * Constructs a config for an array of values.
118
+ *
119
+ * @since 2.0.0
120
+ * @category constructors
121
+ */
122
+ export const array: <A>(config: Config<A>, name?: string) => Config<Array<A>> = internal.array
123
+
124
+ /**
125
+ * Constructs a config for a boolean value.
126
+ *
127
+ * @since 2.0.0
128
+ * @category constructors
129
+ */
130
+ export const boolean: (name?: string) => Config<boolean> = internal.boolean
131
+
132
+ /**
133
+ * Constructs a config for a network port [1, 65535].
134
+ *
135
+ * @since 3.16.0
136
+ * @category constructors
137
+ */
138
+ export const port: (name?: string) => Config<number> = internal.port
139
+
140
+ /**
141
+ * Constructs a config for an URL value.
142
+ *
143
+ * @since 3.11.0
144
+ * @category constructors
145
+ */
146
+ export const url: (name?: string) => Config<URL> = internal.url
147
+
148
+ /**
149
+ * Constructs a config for a sequence of values.
150
+ *
151
+ * @since 2.0.0
152
+ * @category constructors
153
+ */
154
+ export const chunk: <A>(config: Config<A>, name?: string) => Config<Chunk.Chunk<A>> = internal.chunk
155
+
156
+ /**
157
+ * Constructs a config for a date value.
158
+ *
159
+ * @since 2.0.0
160
+ * @category constructors
161
+ */
162
+ export const date: (name?: string) => Config<Date> = internal.date
163
+
164
+ /**
165
+ * Constructs a config that fails with the specified message.
166
+ *
167
+ * @since 2.0.0
168
+ * @category constructors
169
+ */
170
+ export const fail: (message: string) => Config<never> = internal.fail
171
+
172
+ /**
173
+ * Constructs a config for a float value.
174
+ *
175
+ * @since 2.0.0
176
+ * @category constructors
177
+ */
178
+ export const number: (name?: string) => Config<number> = internal.number
179
+
180
+ /**
181
+ * Constructs a config for a integer value.
182
+ *
183
+ * @since 2.0.0
184
+ * @category constructors
185
+ */
186
+ export const integer: (name?: string) => Config<number> = internal.integer
187
+
188
+ /**
189
+ * Constructs a config for a literal value.
190
+ *
191
+ * **Example**
192
+ *
193
+ * ```ts
194
+ * import { Config } from "effect"
195
+ *
196
+ * const config = Config.literal("http", "https")("PROTOCOL")
197
+ * ```
198
+ *
199
+ * @since 2.0.0
200
+ * @category constructors
201
+ */
202
+ export const literal: <Literals extends ReadonlyArray<LiteralValue>>(...literals: Literals) => (
203
+ name?: string
204
+ ) => Config<Literals[number]> = internal.literal
205
+
206
+ /**
207
+ * Constructs a config for a `LogLevel` value.
208
+ *
209
+ * @since 2.0.0
210
+ * @category constructors
211
+ */
212
+ export const logLevel: (name?: string) => Config<LogLevel.LogLevel> = internal.logLevel
213
+
214
+ /**
215
+ * Constructs a config for a duration value.
216
+ *
217
+ * @since 2.5.0
218
+ * @category constructors
219
+ */
220
+ export const duration: (name?: string) => Config<Duration.Duration> = internal.duration
221
+
222
+ /**
223
+ * This function returns `true` if the specified value is an `Config` value,
224
+ * `false` otherwise.
225
+ *
226
+ * This function can be useful for checking the type of a value before
227
+ * attempting to operate on it as an `Config` value. For example, you could
228
+ * use `isConfig` to check the type of a value before using it as an
229
+ * argument to a function that expects an `Config` value.
230
+ *
231
+ * @since 2.0.0
232
+ * @category refinements
233
+ */
234
+ export const isConfig: (u: unknown) => u is Config<unknown> = internal.isConfig
235
+
236
+ /**
237
+ * Returns a config whose structure is the same as this one, but which produces
238
+ * a different value, constructed using the specified function.
239
+ *
240
+ * @since 2.0.0
241
+ * @category mapping
242
+ */
243
+ export const map: {
244
+ <A, B>(f: (a: A) => B): (self: Config<A>) => Config<B>
245
+ <A, B>(self: Config<A>, f: (a: A) => B): Config<B>
246
+ } = internal.map
247
+
248
+ /**
249
+ * Returns a config whose structure is the same as this one, but which may
250
+ * produce a different value, constructed using the specified function, which
251
+ * may throw exceptions that will be translated into validation errors.
252
+ *
253
+ * @since 2.0.0
254
+ * @category utils
255
+ */
256
+ export const mapAttempt: {
257
+ <A, B>(f: (a: A) => B): (self: Config<A>) => Config<B>
258
+ <A, B>(self: Config<A>, f: (a: A) => B): Config<B>
259
+ } = internal.mapAttempt
260
+
261
+ /**
262
+ * Returns a new config whose structure is the samea as this one, but which
263
+ * may produce a different value, constructed using the specified fallible
264
+ * function.
265
+ *
266
+ * @since 2.0.0
267
+ * @category utils
268
+ */
269
+ export const mapOrFail: {
270
+ <A, B>(f: (a: A) => Either.Either<B, ConfigError.ConfigError>): (self: Config<A>) => Config<B>
271
+ <A, B>(self: Config<A>, f: (a: A) => Either.Either<B, ConfigError.ConfigError>): Config<B>
272
+ } = internal.mapOrFail
273
+
274
+ /**
275
+ * Returns a config that has this configuration nested as a property of the
276
+ * specified name.
277
+ *
278
+ * @since 2.0.0
279
+ * @category utils
280
+ */
281
+ export const nested: {
282
+ (name: string): <A>(self: Config<A>) => Config<A>
283
+ <A>(self: Config<A>, name: string): Config<A>
284
+ } = internal.nested
285
+
286
+ /**
287
+ * Returns a config whose structure is preferentially described by this
288
+ * config, but which falls back to the specified config if there is an issue
289
+ * reading from this config.
290
+ *
291
+ * @since 2.0.0
292
+ * @category utils
293
+ */
294
+ export const orElse: {
295
+ <A2>(that: LazyArg<Config<A2>>): <A>(self: Config<A>) => Config<A2 | A>
296
+ <A, A2>(self: Config<A>, that: LazyArg<Config<A2>>): Config<A | A2>
297
+ } = internal.orElse
298
+
299
+ /**
300
+ * Returns configuration which reads from this configuration, but which falls
301
+ * back to the specified configuration if reading from this configuration
302
+ * fails with an error satisfying the specified predicate.
303
+ *
304
+ * @since 2.0.0
305
+ * @category utils
306
+ */
307
+ export const orElseIf: {
308
+ <A2>(
309
+ options: {
310
+ readonly if: Predicate<ConfigError.ConfigError>
311
+ readonly orElse: LazyArg<Config<A2>>
312
+ }
313
+ ): <A>(self: Config<A>) => Config<A | A2>
314
+ <A, A2>(
315
+ self: Config<A>,
316
+ options: {
317
+ readonly if: Predicate<ConfigError.ConfigError>
318
+ readonly orElse: LazyArg<Config<A2>>
319
+ }
320
+ ): Config<A | A2>
321
+ } = internal.orElseIf
322
+
323
+ /**
324
+ * Returns an optional version of this config, which will be `None` if the
325
+ * data is missing from configuration, and `Some` otherwise.
326
+ *
327
+ * @since 2.0.0
328
+ * @category utils
329
+ */
330
+ export const option: <A>(self: Config<A>) => Config<Option.Option<A>> = internal.option
331
+
332
+ /**
333
+ * Constructs a new primitive config.
334
+ *
335
+ * @since 2.0.0
336
+ * @category constructors
337
+ */
338
+ export const primitive: <A>(
339
+ description: string,
340
+ parse: (text: string) => Either.Either<A, ConfigError.ConfigError>
341
+ ) => Config<A> = internal.primitive
342
+
343
+ /**
344
+ * Returns a config that describes a sequence of values, each of which has the
345
+ * structure of this config.
346
+ *
347
+ * @since 2.0.0
348
+ * @category utils
349
+ */
350
+ export const repeat: <A>(self: Config<A>) => Config<Array<A>> = internal.repeat
351
+
352
+ /**
353
+ * Constructs a config for a secret value.
354
+ *
355
+ * @since 2.0.0
356
+ * @category constructors
357
+ * @deprecated
358
+ */
359
+ export const secret: (name?: string) => Config<Secret.Secret> = internal.secret
360
+
361
+ /**
362
+ * Constructs a config for a redacted value.
363
+ *
364
+ * @since 2.0.0
365
+ * @category constructors
366
+ */
367
+ export const redacted: {
368
+ (name?: string): Config<Redacted.Redacted>
369
+ <A>(config: Config<A>): Config<Redacted.Redacted<A>>
370
+ } = internal.redacted
371
+
372
+ /**
373
+ * Constructs a config for a branded value.
374
+ *
375
+ * @since 3.16.0
376
+ * @category constructors
377
+ */
378
+ export const branded: {
379
+ <A, B extends Brand.Branded<A, any>>(
380
+ constructor: Brand.Brand.Constructor<B>
381
+ ): (config: Config<A>) => Config<B>
382
+ <B extends Brand.Branded<string, any>>(
383
+ name: string | undefined,
384
+ constructor: Brand.Brand.Constructor<B>
385
+ ): Config<B>
386
+ <A, B extends Brand.Branded<A, any>>(
387
+ config: Config<A>,
388
+ constructor: Brand.Brand.Constructor<B>
389
+ ): Config<B>
390
+ } = internal.branded
391
+
392
+ /**
393
+ * Constructs a config for a sequence of values.
394
+ *
395
+ * @since 2.0.0
396
+ * @category constructors
397
+ */
398
+ export const hashSet: <A>(config: Config<A>, name?: string) => Config<HashSet.HashSet<A>> = internal.hashSet
399
+
400
+ /**
401
+ * Constructs a config for a string value.
402
+ *
403
+ * @since 2.0.0
404
+ * @category constructors
405
+ */
406
+ export const string: (name?: string) => Config<string> = internal.string
407
+
408
+ /**
409
+ * Constructs a config for a non-empty string value.
410
+ *
411
+ * @since 3.7.0
412
+ * @category constructors
413
+ */
414
+ export const nonEmptyString: (name?: string) => Config<string> = internal.nonEmptyString
415
+
416
+ /**
417
+ * Constructs a config which contains the specified value.
418
+ *
419
+ * @since 2.0.0
420
+ * @category constructors
421
+ */
422
+ export const succeed: <A>(value: A) => Config<A> = internal.succeed
423
+
424
+ /**
425
+ * Lazily constructs a config.
426
+ *
427
+ * @since 2.0.0
428
+ * @category constructors
429
+ */
430
+ export const suspend: <A>(config: LazyArg<Config<A>>) => Config<A> = internal.suspend
431
+
432
+ /**
433
+ * Constructs a config which contains the specified lazy value.
434
+ *
435
+ * @since 2.0.0
436
+ * @category constructors
437
+ */
438
+ export const sync: <A>(value: LazyArg<A>) => Config<A> = internal.sync
439
+
440
+ /**
441
+ * Constructs a config for a sequence of values.
442
+ *
443
+ * @since 2.0.0
444
+ * @category constructors
445
+ */
446
+ export const hashMap: <A>(config: Config<A>, name?: string) => Config<HashMap.HashMap<string, A>> = internal.hashMap
447
+
448
+ /**
449
+ * Constructs a config from some configuration wrapped with the `Wrap<A>` utility type.
450
+ *
451
+ * For example:
452
+ *
453
+ * ```
454
+ * import { Config, unwrap } from "./Config"
455
+ *
456
+ * interface Options { key: string }
457
+ *
458
+ * const makeConfig = (config: Config.Wrap<Options>): Config<Options> => unwrap(config)
459
+ * ```
460
+ *
461
+ * @since 2.0.0
462
+ * @category constructors
463
+ */
464
+ export const unwrap: <A>(wrapped: Config.Wrap<A>) => Config<A> = internal.unwrap
465
+
466
+ /**
467
+ * Returns a config that describes the same structure as this one, but which
468
+ * performs validation during loading.
469
+ *
470
+ * @since 2.0.0
471
+ * @category utils
472
+ */
473
+ export const validate: {
474
+ <A, B extends A>(
475
+ options: {
476
+ readonly message: string
477
+ readonly validation: Refinement<A, B>
478
+ }
479
+ ): (self: Config<A>) => Config<B>
480
+ <A>(options: {
481
+ readonly message: string
482
+ readonly validation: Predicate<A>
483
+ }): (self: Config<A>) => Config<A>
484
+ <A, B extends A>(
485
+ self: Config<A>,
486
+ options: {
487
+ readonly message: string
488
+ readonly validation: Refinement<A, B>
489
+ }
490
+ ): Config<B>
491
+ <A>(self: Config<A>, options: {
492
+ readonly message: string
493
+ readonly validation: Predicate<A>
494
+ }): Config<A>
495
+ } = internal.validate
496
+
497
+ /**
498
+ * Returns a config that describes the same structure as this one, but has the
499
+ * specified default value in case the information cannot be found.
500
+ *
501
+ * @since 2.0.0
502
+ * @category utils
503
+ */
504
+ export const withDefault: {
505
+ <const A2>(def: A2): <A>(self: Config<A>) => Config<A2 | A>
506
+ <A, const A2>(self: Config<A>, def: A2): Config<A | A2>
507
+ } = internal.withDefault
508
+
509
+ /**
510
+ * Adds a description to this configuration, which is intended for humans.
511
+ *
512
+ * @since 2.0.0
513
+ * @category utils
514
+ */
515
+ export const withDescription: {
516
+ (description: string): <A>(self: Config<A>) => Config<A>
517
+ <A>(self: Config<A>, description: string): Config<A>
518
+ } = internal.withDescription
519
+
520
+ /**
521
+ * Returns a config that is the composition of this config and the specified
522
+ * config.
523
+ *
524
+ * @since 2.0.0
525
+ * @category zipping
526
+ */
527
+ export const zip: {
528
+ <B>(that: Config<B>): <A>(self: Config<A>) => Config<[A, B]>
529
+ <A, B>(self: Config<A>, that: Config<B>): Config<[A, B]>
530
+ } = internal.zip
531
+
532
+ /**
533
+ * Returns a config that is the composes this config and the specified config
534
+ * using the provided function.
535
+ *
536
+ * @since 2.0.0
537
+ * @category zipping
538
+ */
539
+ export const zipWith: {
540
+ <B, A, C>(that: Config<B>, f: (a: A, b: B) => C): (self: Config<A>) => Config<C>
541
+ <A, B, C>(self: Config<A>, that: Config<B>, f: (a: A, b: B) => C): Config<C>
542
+ } = internal.zipWith