@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
@@ -0,0 +1,390 @@
1
+ /**
2
+ * @since 2.0.0
3
+ */
4
+ import * as Context from "./Context.js"
5
+ import type * as DefaultServices from "./DefaultServices.js"
6
+ import * as Effect from "./Effect.js"
7
+ import type * as Fiber from "./Fiber.js"
8
+ import type * as FiberRef from "./FiberRef.js"
9
+ import { dual, pipe } from "./Function.js"
10
+ import * as core from "./internal/core.js"
11
+ import * as defaultServices from "./internal/defaultServices.js"
12
+ import * as fiberRuntime from "./internal/fiberRuntime.js"
13
+ import * as layer from "./internal/layer.js"
14
+ import * as ref from "./internal/ref.js"
15
+ import type * as Layer from "./Layer.js"
16
+ import type * as Scope from "./Scope.js"
17
+ import type * as SortedSet from "./SortedSet.js"
18
+ import type * as TestAnnotation from "./TestAnnotation.js"
19
+ import * as TestAnnotationMap from "./TestAnnotationMap.js"
20
+ import * as Annotations from "./TestAnnotations.js"
21
+ import * as TestConfig from "./TestConfig.js"
22
+ import * as Live from "./TestLive.js"
23
+ import * as Sized from "./TestSized.js"
24
+
25
+ /**
26
+ * @since 2.0.0
27
+ */
28
+ export type TestServices =
29
+ | Annotations.TestAnnotations
30
+ | Live.TestLive
31
+ | Sized.TestSized
32
+ | TestConfig.TestConfig
33
+
34
+ /**
35
+ * The default Effect test services.
36
+ *
37
+ * @since 2.0.0
38
+ */
39
+ export const liveServices: Context.Context<TestServices> = pipe(
40
+ Context.make(Annotations.TestAnnotations, Annotations.make(ref.unsafeMake(TestAnnotationMap.empty()))),
41
+ Context.add(Live.TestLive, Live.make(defaultServices.liveServices)),
42
+ Context.add(Sized.TestSized, Sized.make(100)),
43
+ Context.add(TestConfig.TestConfig, TestConfig.make({ repeats: 100, retries: 100, samples: 200, shrinks: 1000 }))
44
+ )
45
+
46
+ /**
47
+ * @since 2.0.0
48
+ */
49
+ export const currentServices: FiberRef.FiberRef<Context.Context<TestServices>> = core.fiberRefUnsafeMakeContext(
50
+ liveServices
51
+ )
52
+
53
+ /**
54
+ * Retrieves the `Annotations` service for this test.
55
+ *
56
+ * @since 2.0.0
57
+ */
58
+ export const annotations = (): Effect.Effect<Annotations.TestAnnotations> => annotationsWith(core.succeed)
59
+
60
+ /**
61
+ * Retrieves the `Annotations` service for this test and uses it to run the
62
+ * specified workflow.
63
+ *
64
+ * @since 2.0.0
65
+ */
66
+ export const annotationsWith = <A, E, R>(
67
+ f: (annotations: Annotations.TestAnnotations) => Effect.Effect<A, E, R>
68
+ ): Effect.Effect<A, E, R> =>
69
+ core.fiberRefGetWith(
70
+ currentServices,
71
+ (services) => f(Context.get(services, Annotations.TestAnnotations))
72
+ )
73
+
74
+ /**
75
+ * Executes the specified workflow with the specified implementation of the
76
+ * annotations service.
77
+ *
78
+ * @since 2.0.0
79
+ */
80
+ export const withAnnotations = dual<
81
+ (annotations: Annotations.TestAnnotations) => <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>,
82
+ <A, E, R>(effect: Effect.Effect<A, E, R>, annotations: Annotations.TestAnnotations) => Effect.Effect<A, E, R>
83
+ >(2, (effect, annotations) =>
84
+ core.fiberRefLocallyWith(
85
+ currentServices,
86
+ Context.add(Annotations.TestAnnotations, annotations)
87
+ )(effect))
88
+
89
+ /**
90
+ * Sets the implementation of the annotations service to the specified value
91
+ * and restores it to its original value when the scope is closed.
92
+ *
93
+ * @since 2.0.0
94
+ */
95
+ export const withAnnotationsScoped = (
96
+ annotations: Annotations.TestAnnotations
97
+ ): Effect.Effect<void, never, Scope.Scope> =>
98
+ fiberRuntime.fiberRefLocallyScopedWith(
99
+ currentServices,
100
+ Context.add(Annotations.TestAnnotations, annotations)
101
+ )
102
+
103
+ /**
104
+ * Constructs a new `Annotations` service wrapped in a layer.
105
+ *
106
+ * @since 2.0.0
107
+ */
108
+ export const annotationsLayer = (): Layer.Layer<Annotations.TestAnnotations> =>
109
+ layer.scoped(
110
+ Annotations.TestAnnotations,
111
+ pipe(
112
+ core.sync(() => ref.unsafeMake(TestAnnotationMap.empty())),
113
+ core.map(Annotations.make),
114
+ core.tap(withAnnotationsScoped)
115
+ )
116
+ )
117
+
118
+ /**
119
+ * Accesses an `Annotations` instance in the context and retrieves the
120
+ * annotation of the specified type, or its default value if there is none.
121
+ *
122
+ * @since 2.0.0
123
+ */
124
+ export const get = <A>(key: TestAnnotation.TestAnnotation<A>): Effect.Effect<A> =>
125
+ annotationsWith((annotations) => annotations.get(key))
126
+
127
+ /**
128
+ * Accesses an `Annotations` instance in the context and appends the
129
+ * specified annotation to the annotation map.
130
+ *
131
+ * @since 2.0.0
132
+ */
133
+ export const annotate = <A>(key: TestAnnotation.TestAnnotation<A>, value: A): Effect.Effect<void> =>
134
+ annotationsWith((annotations) => annotations.annotate(key, value))
135
+
136
+ /**
137
+ * Returns the set of all fibers in this test.
138
+ *
139
+ * @since 2.0.0
140
+ */
141
+ export const supervisedFibers = (): Effect.Effect<
142
+ SortedSet.SortedSet<Fiber.RuntimeFiber<unknown, unknown>>
143
+ > => annotationsWith((annotations) => annotations.supervisedFibers)
144
+
145
+ /**
146
+ * Retrieves the `Live` service for this test and uses it to run the specified
147
+ * workflow.
148
+ *
149
+ * @since 2.0.0
150
+ */
151
+ export const liveWith = <A, E, R>(f: (live: Live.TestLive) => Effect.Effect<A, E, R>): Effect.Effect<A, E, R> =>
152
+ core.fiberRefGetWith(currentServices, (services) => f(Context.get(services, Live.TestLive)))
153
+
154
+ /**
155
+ * Retrieves the `Live` service for this test.
156
+ *
157
+ * @since 2.0.0
158
+ */
159
+ export const live: Effect.Effect<Live.TestLive> = liveWith(core.succeed)
160
+
161
+ /**
162
+ * Executes the specified workflow with the specified implementation of the
163
+ * live service.
164
+ *
165
+ * @since 2.0.0
166
+ */
167
+ export const withLive = dual<
168
+ (live: Live.TestLive) => <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>,
169
+ <A, E, R>(effect: Effect.Effect<A, E, R>, live: Live.TestLive) => Effect.Effect<A, E, R>
170
+ >(2, (effect, live) =>
171
+ core.fiberRefLocallyWith(
172
+ currentServices,
173
+ Context.add(Live.TestLive, live)
174
+ )(effect))
175
+
176
+ /**
177
+ * Sets the implementation of the live service to the specified value and
178
+ * restores it to its original value when the scope is closed.
179
+ *
180
+ * @since 2.0.0
181
+ */
182
+ export const withLiveScoped = (live: Live.TestLive): Effect.Effect<void, never, Scope.Scope> =>
183
+ fiberRuntime.fiberRefLocallyScopedWith(currentServices, Context.add(Live.TestLive, live))
184
+
185
+ /**
186
+ * Constructs a new `Live` service wrapped in a layer.
187
+ *
188
+ * @since 2.0.0
189
+ */
190
+ export const liveLayer = (): Layer.Layer<Live.TestLive, never, DefaultServices.DefaultServices> =>
191
+ layer.scoped(
192
+ Live.TestLive,
193
+ pipe(
194
+ core.context<DefaultServices.DefaultServices>(),
195
+ core.map(Live.make),
196
+ core.tap(withLiveScoped)
197
+ )
198
+ )
199
+
200
+ /**
201
+ * Provides a workflow with the "live" default Effect services.
202
+ *
203
+ * @since 2.0.0
204
+ */
205
+ export const provideLive = <A, E, R>(effect: Effect.Effect<A, E, R>): Effect.Effect<A, E, R> =>
206
+ liveWith((live) => live.provide(effect))
207
+
208
+ /**
209
+ * Runs a transformation function with the live default Effect services while
210
+ * ensuring that the workflow itself is run with the test services.
211
+ *
212
+ * @since 2.0.0
213
+ */
214
+ export const provideWithLive = dual<
215
+ <A, E, R, A2, E2, R2>(
216
+ f: (effect: Effect.Effect<A, E, R>) => Effect.Effect<A2, E2, R2>
217
+ ) => (self: Effect.Effect<A, E, R>) => Effect.Effect<A2, E | E2, R | R2>,
218
+ <A, E, R, A2, E2, R2>(
219
+ self: Effect.Effect<A, E, R>,
220
+ f: (effect: Effect.Effect<A, E, R>) => Effect.Effect<A2, E2, R2>
221
+ ) => Effect.Effect<A2, E | E2, R | R2>
222
+ >(2, (self, f) =>
223
+ core.fiberRefGetWith(
224
+ defaultServices.currentServices,
225
+ (services) => provideLive(f(core.fiberRefLocally(defaultServices.currentServices, services)(self)))
226
+ ))
227
+
228
+ /**
229
+ * Retrieves the `Sized` service for this test and uses it to run the
230
+ * specified workflow.
231
+ *
232
+ * @since 2.0.0
233
+ */
234
+ export const sizedWith = <A, E, R>(f: (sized: Sized.TestSized) => Effect.Effect<A, E, R>): Effect.Effect<A, E, R> =>
235
+ core.fiberRefGetWith(
236
+ currentServices,
237
+ (services) => f(Context.get(services, Sized.TestSized))
238
+ )
239
+
240
+ /**
241
+ * Retrieves the `Sized` service for this test.
242
+ *
243
+ * @since 2.0.0
244
+ */
245
+ export const sized: Effect.Effect<Sized.TestSized> = sizedWith(core.succeed)
246
+
247
+ /**
248
+ * Executes the specified workflow with the specified implementation of the
249
+ * sized service.
250
+ *
251
+ * @since 2.0.0
252
+ */
253
+ export const withSized = dual<
254
+ (sized: Sized.TestSized) => <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>,
255
+ <A, E, R>(effect: Effect.Effect<A, E, R>, sized: Sized.TestSized) => Effect.Effect<A, E, R>
256
+ >(2, (effect, sized) =>
257
+ core.fiberRefLocallyWith(
258
+ currentServices,
259
+ Context.add(Sized.TestSized, sized)
260
+ )(effect))
261
+
262
+ /**
263
+ * Sets the implementation of the sized service to the specified value and
264
+ * restores it to its original value when the scope is closed.
265
+ *
266
+ * @since 2.0.0
267
+ */
268
+ export const withSizedScoped = (sized: Sized.TestSized): Effect.Effect<void, never, Scope.Scope> =>
269
+ fiberRuntime.fiberRefLocallyScopedWith(currentServices, Context.add(Sized.TestSized, sized))
270
+
271
+ /**
272
+ * @since 2.0.0
273
+ */
274
+ export const sizedLayer = (size: number): Layer.Layer<Sized.TestSized> =>
275
+ layer.scoped(
276
+ Sized.TestSized,
277
+ pipe(
278
+ fiberRuntime.fiberRefMake(size),
279
+ core.map(Sized.fromFiberRef),
280
+ core.tap(withSizedScoped)
281
+ )
282
+ )
283
+
284
+ /**
285
+ * @since 2.0.0
286
+ */
287
+ export const size: Effect.Effect<number> = sizedWith((sized) => sized.size)
288
+
289
+ /**
290
+ * @since 2.0.0
291
+ */
292
+ export const withSize = dual<
293
+ (size: number) => <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>,
294
+ <A, E, R>(effect: Effect.Effect<A, E, R>, size: number) => Effect.Effect<A, E, R>
295
+ >(2, (effect, size) => sizedWith((sized) => sized.withSize(size)(effect)))
296
+
297
+ /**
298
+ * Retrieves the `TestConfig` service for this test and uses it to run the
299
+ * specified workflow.
300
+ *
301
+ * @since 2.0.0
302
+ */
303
+ export const testConfigWith = <A, E, R>(
304
+ f: (config: TestConfig.TestConfig) => Effect.Effect<A, E, R>
305
+ ): Effect.Effect<A, E, R> =>
306
+ core.fiberRefGetWith(
307
+ currentServices,
308
+ (services) => f(Context.get(services, TestConfig.TestConfig))
309
+ )
310
+
311
+ /**
312
+ * Retrieves the `TestConfig` service for this test.
313
+ *
314
+ * @since 2.0.0
315
+ */
316
+ export const testConfig: Effect.Effect<TestConfig.TestConfig> = testConfigWith(core.succeed)
317
+
318
+ /**
319
+ * Executes the specified workflow with the specified implementation of the
320
+ * config service.
321
+ *
322
+ * @since 2.0.0
323
+ */
324
+ export const withTestConfig = dual<
325
+ (config: TestConfig.TestConfig) => <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>,
326
+ <A, E, R>(effect: Effect.Effect<A, E, R>, config: TestConfig.TestConfig) => Effect.Effect<A, E, R>
327
+ >(2, (effect, config) =>
328
+ core.fiberRefLocallyWith(
329
+ currentServices,
330
+ Context.add(TestConfig.TestConfig, config)
331
+ )(effect))
332
+
333
+ /**
334
+ * Sets the implementation of the config service to the specified value and
335
+ * restores it to its original value when the scope is closed.
336
+ *
337
+ * @since 2.0.0
338
+ */
339
+ export const withTestConfigScoped = (config: TestConfig.TestConfig): Effect.Effect<void, never, Scope.Scope> =>
340
+ fiberRuntime.fiberRefLocallyScopedWith(currentServices, Context.add(TestConfig.TestConfig, config))
341
+
342
+ /**
343
+ * Constructs a new `TestConfig` service with the specified settings.
344
+ *
345
+ * @since 2.0.0
346
+ */
347
+ export const testConfigLayer = (params: {
348
+ readonly repeats: number
349
+ readonly retries: number
350
+ readonly samples: number
351
+ readonly shrinks: number
352
+ }): Layer.Layer<TestConfig.TestConfig> =>
353
+ layer.scoped(
354
+ TestConfig.TestConfig,
355
+ Effect.suspend(() => {
356
+ const testConfig = TestConfig.make(params)
357
+ return pipe(
358
+ withTestConfigScoped(testConfig),
359
+ core.as(testConfig)
360
+ )
361
+ })
362
+ )
363
+
364
+ /**
365
+ * The number of times to repeat tests to ensure they are stable.
366
+ *
367
+ * @since 2.0.0
368
+ */
369
+ export const repeats: Effect.Effect<number> = testConfigWith((config) => core.succeed(config.repeats))
370
+
371
+ /**
372
+ * The number of times to retry flaky tests.
373
+ *
374
+ * @since 2.0.0
375
+ */
376
+ export const retries: Effect.Effect<number> = testConfigWith((config) => core.succeed(config.retries))
377
+
378
+ /**
379
+ * The number of sufficient samples to check for a random variable.
380
+ *
381
+ * @since 2.0.0
382
+ */
383
+ export const samples: Effect.Effect<number> = testConfigWith((config) => core.succeed(config.samples))
384
+
385
+ /**
386
+ * The maximum number of shrinkings to minimize large failures.
387
+ *
388
+ * @since 2.0.0
389
+ */
390
+ export const shrinks: Effect.Effect<number> = testConfigWith((config) => core.succeed(config.shrinks))
@@ -0,0 +1,55 @@
1
+ /**
2
+ * @since 2.0.0
3
+ */
4
+ import * as Context from "./Context.js"
5
+ import type * as Effect from "./Effect.js"
6
+ import type * as FiberRef from "./FiberRef.js"
7
+ import * as core from "./internal/core.js"
8
+
9
+ /**
10
+ * @since 2.0.0
11
+ */
12
+ export const TestSizedTypeId: unique symbol = Symbol.for("effect/TestSized")
13
+
14
+ /**
15
+ * @since 2.0.0
16
+ */
17
+ export type TestSizedTypeId = typeof TestSizedTypeId
18
+
19
+ /**
20
+ * @since 2.0.0
21
+ */
22
+ export interface TestSized {
23
+ readonly [TestSizedTypeId]: TestSizedTypeId
24
+ readonly fiberRef: FiberRef.FiberRef<number>
25
+ readonly size: Effect.Effect<number>
26
+ withSize(size: number): <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>
27
+ }
28
+
29
+ /**
30
+ * @since 2.0.0
31
+ */
32
+ export const TestSized: Context.Tag<TestSized, TestSized> = Context.GenericTag("effect/TestSized")
33
+
34
+ /** @internal */
35
+ class SizedImpl implements TestSized {
36
+ readonly [TestSizedTypeId]: TestSizedTypeId = TestSizedTypeId
37
+ constructor(readonly fiberRef: FiberRef.FiberRef<number>) {}
38
+ get size(): Effect.Effect<number> {
39
+ return core.fiberRefGet(this.fiberRef)
40
+ }
41
+ withSize(size: number) {
42
+ return <A, E, R>(effect: Effect.Effect<A, E, R>): Effect.Effect<A, E, R> =>
43
+ core.fiberRefLocally(this.fiberRef, size)(effect)
44
+ }
45
+ }
46
+
47
+ /**
48
+ * @since 2.0.0
49
+ */
50
+ export const make = (size: number): TestSized => new SizedImpl(core.fiberRefUnsafeMake(size))
51
+
52
+ /**
53
+ * @since 2.0.0
54
+ */
55
+ export const fromFiberRef = (fiberRef: FiberRef.FiberRef<number>): TestSized => new SizedImpl(fiberRef)
package/src/Tracer.ts ADDED
@@ -0,0 +1,182 @@
1
+ /**
2
+ * @since 2.0.0
3
+ */
4
+ import type * as Context from "./Context.js"
5
+ import type * as Effect from "./Effect.js"
6
+ import type * as Exit from "./Exit.js"
7
+ import type * as Fiber from "./Fiber.js"
8
+ import type { LazyArg } from "./Function.js"
9
+ import * as defaultServices from "./internal/defaultServices.js"
10
+ import * as internal from "./internal/tracer.js"
11
+ import type * as Option from "./Option.js"
12
+
13
+ /**
14
+ * @since 2.0.0
15
+ */
16
+ export const TracerTypeId: unique symbol = internal.TracerTypeId
17
+
18
+ /**
19
+ * @since 2.0.0
20
+ */
21
+ export type TracerTypeId = typeof TracerTypeId
22
+
23
+ /**
24
+ * @since 2.0.0
25
+ */
26
+ export interface Tracer {
27
+ readonly [TracerTypeId]: TracerTypeId
28
+ span(
29
+ name: string,
30
+ parent: Option.Option<AnySpan>,
31
+ context: Context.Context<never>,
32
+ links: ReadonlyArray<SpanLink>,
33
+ startTime: bigint,
34
+ kind: SpanKind,
35
+ options?: SpanOptions
36
+ ): Span
37
+ context<X>(f: () => X, fiber: Fiber.RuntimeFiber<any, any>): X
38
+ }
39
+
40
+ /**
41
+ * @since 2.0.0
42
+ * @category models
43
+ */
44
+ export type SpanStatus = {
45
+ _tag: "Started"
46
+ startTime: bigint
47
+ } | {
48
+ _tag: "Ended"
49
+ startTime: bigint
50
+ endTime: bigint
51
+ exit: Exit.Exit<unknown, unknown>
52
+ }
53
+
54
+ /**
55
+ * @since 2.0.0
56
+ * @category models
57
+ */
58
+ export type AnySpan = Span | ExternalSpan
59
+
60
+ /**
61
+ * @since 2.0.0
62
+ * @category tags
63
+ */
64
+ export interface ParentSpan {
65
+ readonly _: unique symbol
66
+ }
67
+
68
+ /**
69
+ * @since 2.0.0
70
+ * @category tags
71
+ */
72
+ export const ParentSpan: Context.Tag<ParentSpan, AnySpan> = internal.spanTag
73
+
74
+ /**
75
+ * @since 2.0.0
76
+ * @category models
77
+ */
78
+ export interface ExternalSpan {
79
+ readonly _tag: "ExternalSpan"
80
+ readonly spanId: string
81
+ readonly traceId: string
82
+ readonly sampled: boolean
83
+ readonly context: Context.Context<never>
84
+ }
85
+
86
+ /**
87
+ * @since 3.1.0
88
+ * @category models
89
+ */
90
+ export interface SpanOptions {
91
+ readonly attributes?: Record<string, unknown> | undefined
92
+ readonly links?: ReadonlyArray<SpanLink> | undefined
93
+ readonly parent?: AnySpan | undefined
94
+ readonly root?: boolean | undefined
95
+ readonly context?: Context.Context<never> | undefined
96
+ readonly kind?: SpanKind | undefined
97
+ readonly captureStackTrace?: boolean | LazyArg<string | undefined> | undefined
98
+ }
99
+
100
+ /**
101
+ * @since 3.1.0
102
+ * @category models
103
+ */
104
+ export type SpanKind = "internal" | "server" | "client" | "producer" | "consumer"
105
+
106
+ /**
107
+ * @since 2.0.0
108
+ * @category models
109
+ */
110
+ export interface Span {
111
+ readonly _tag: "Span"
112
+ readonly name: string
113
+ readonly spanId: string
114
+ readonly traceId: string
115
+ readonly parent: Option.Option<AnySpan>
116
+ readonly context: Context.Context<never>
117
+ readonly status: SpanStatus
118
+ readonly attributes: ReadonlyMap<string, unknown>
119
+ readonly links: ReadonlyArray<SpanLink>
120
+ readonly sampled: boolean
121
+ readonly kind: SpanKind
122
+ end(endTime: bigint, exit: Exit.Exit<unknown, unknown>): void
123
+ attribute(key: string, value: unknown): void
124
+ event(name: string, startTime: bigint, attributes?: Record<string, unknown>): void
125
+ addLinks(links: ReadonlyArray<SpanLink>): void
126
+ }
127
+
128
+ /**
129
+ * @since 2.0.0
130
+ * @category models
131
+ */
132
+ export interface SpanLink {
133
+ readonly _tag: "SpanLink"
134
+ readonly span: AnySpan
135
+ readonly attributes: Readonly<Record<string, unknown>>
136
+ }
137
+
138
+ /**
139
+ * @since 2.0.0
140
+ * @category tags
141
+ */
142
+ export const Tracer: Context.Tag<Tracer, Tracer> = internal.tracerTag
143
+
144
+ /**
145
+ * @since 2.0.0
146
+ * @category constructors
147
+ */
148
+ export const make: (options: Omit<Tracer, typeof TracerTypeId>) => Tracer = internal.make
149
+
150
+ /**
151
+ * @since 2.0.0
152
+ * @category constructors
153
+ */
154
+ export const externalSpan: (
155
+ options: {
156
+ readonly spanId: string
157
+ readonly traceId: string
158
+ readonly sampled?: boolean | undefined
159
+ readonly context?: Context.Context<never> | undefined
160
+ }
161
+ ) => ExternalSpan = internal.externalSpan
162
+
163
+ /**
164
+ * @since 2.0.0
165
+ * @category constructors
166
+ */
167
+ export const tracerWith: <A, E, R>(f: (tracer: Tracer) => Effect.Effect<A, E, R>) => Effect.Effect<A, E, R> =
168
+ defaultServices.tracerWith
169
+
170
+ /**
171
+ * @since 3.12.0
172
+ * @category annotations
173
+ */
174
+ export interface DisablePropagation {
175
+ readonly _: unique symbol
176
+ }
177
+
178
+ /**
179
+ * @since 3.12.0
180
+ * @category annotations
181
+ */
182
+ export const DisablePropagation: Context.Reference<DisablePropagation, boolean> = internal.DisablePropagation