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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (452) hide show
  1. package/SourceLocation/package.json +6 -0
  2. package/dist/cjs/Effect.js +2 -28
  3. package/dist/cjs/Effect.js.map +1 -1
  4. package/dist/cjs/FiberRef.js +12 -1
  5. package/dist/cjs/FiberRef.js.map +1 -1
  6. package/dist/cjs/Layer.js +2 -24
  7. package/dist/cjs/Layer.js.map +1 -1
  8. package/dist/cjs/RuntimeFlags.js +1 -29
  9. package/dist/cjs/RuntimeFlags.js.map +1 -1
  10. package/dist/cjs/SourceLocation.js +60 -0
  11. package/dist/cjs/SourceLocation.js.map +1 -0
  12. package/dist/cjs/Tracer.js +1 -15
  13. package/dist/cjs/Tracer.js.map +1 -1
  14. package/dist/cjs/Utils.js +1 -1
  15. package/dist/cjs/Utils.js.map +1 -1
  16. package/dist/cjs/index.js +3 -1
  17. package/dist/cjs/index.js.map +1 -1
  18. package/dist/cjs/internal/clock.js +1 -1
  19. package/dist/cjs/internal/clock.js.map +1 -1
  20. package/dist/cjs/internal/core.js +17 -50
  21. package/dist/cjs/internal/core.js.map +1 -1
  22. package/dist/cjs/internal/effect/circular.js +18 -30
  23. package/dist/cjs/internal/effect/circular.js.map +1 -1
  24. package/dist/cjs/internal/fiberRuntime.js +16 -65
  25. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  26. package/dist/cjs/internal/layer/circular.js +1 -5
  27. package/dist/cjs/internal/layer/circular.js.map +1 -1
  28. package/dist/cjs/internal/layer.js +1 -3
  29. package/dist/cjs/internal/layer.js.map +1 -1
  30. package/dist/cjs/internal/logger.js +25 -2
  31. package/dist/cjs/internal/logger.js.map +1 -1
  32. package/dist/cjs/internal/runtimeFlags.js +2 -11
  33. package/dist/cjs/internal/runtimeFlags.js.map +1 -1
  34. package/dist/cjs/internal/tracer.js +1 -114
  35. package/dist/cjs/internal/tracer.js.map +1 -1
  36. package/dist/dts/Config.d.ts +2 -2
  37. package/dist/dts/Config.d.ts.map +1 -1
  38. package/dist/dts/Effect.d.ts +8 -29
  39. package/dist/dts/Effect.d.ts.map +1 -1
  40. package/dist/dts/FiberRef.d.ts +12 -0
  41. package/dist/dts/FiberRef.d.ts.map +1 -1
  42. package/dist/dts/Layer.d.ts +0 -22
  43. package/dist/dts/Layer.d.ts.map +1 -1
  44. package/dist/dts/RuntimeFlags.d.ts +0 -28
  45. package/dist/dts/RuntimeFlags.d.ts.map +1 -1
  46. package/dist/dts/SourceLocation.d.ts +88 -0
  47. package/dist/dts/SourceLocation.d.ts.map +1 -0
  48. package/dist/dts/Tracer.d.ts +0 -15
  49. package/dist/dts/Tracer.d.ts.map +1 -1
  50. package/dist/dts/index.d.ts +6 -0
  51. package/dist/dts/index.d.ts.map +1 -1
  52. package/dist/dts/internal/core.d.ts.map +1 -1
  53. package/dist/dts/internal/layer.d.ts.map +1 -1
  54. package/dist/dts/internal/runtimeFlags.d.ts.map +1 -1
  55. package/dist/esm/Effect.js +0 -26
  56. package/dist/esm/Effect.js.map +1 -1
  57. package/dist/esm/FiberRef.js +11 -0
  58. package/dist/esm/FiberRef.js.map +1 -1
  59. package/dist/esm/Layer.js +0 -22
  60. package/dist/esm/Layer.js.map +1 -1
  61. package/dist/esm/RuntimeFlags.js +0 -28
  62. package/dist/esm/RuntimeFlags.js.map +1 -1
  63. package/dist/esm/SourceLocation.js +51 -0
  64. package/dist/esm/SourceLocation.js.map +1 -0
  65. package/dist/esm/Tracer.js +0 -14
  66. package/dist/esm/Tracer.js.map +1 -1
  67. package/dist/esm/Utils.js +1 -1
  68. package/dist/esm/Utils.js.map +1 -1
  69. package/dist/esm/index.js +6 -0
  70. package/dist/esm/index.js.map +1 -1
  71. package/dist/esm/internal/clock.js +1 -1
  72. package/dist/esm/internal/clock.js.map +1 -1
  73. package/dist/esm/internal/core.js +12 -45
  74. package/dist/esm/internal/core.js.map +1 -1
  75. package/dist/esm/internal/effect/circular.js +18 -30
  76. package/dist/esm/internal/effect/circular.js.map +1 -1
  77. package/dist/esm/internal/fiberRuntime.js +13 -60
  78. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  79. package/dist/esm/internal/layer/circular.js +0 -4
  80. package/dist/esm/internal/layer/circular.js.map +1 -1
  81. package/dist/esm/internal/layer.js +0 -2
  82. package/dist/esm/internal/layer.js.map +1 -1
  83. package/dist/esm/internal/logger.js +25 -2
  84. package/dist/esm/internal/logger.js.map +1 -1
  85. package/dist/esm/internal/runtimeFlags.js +1 -9
  86. package/dist/esm/internal/runtimeFlags.js.map +1 -1
  87. package/dist/esm/internal/tracer.js +0 -111
  88. package/dist/esm/internal/tracer.js.map +1 -1
  89. package/package.json +12 -1
  90. package/src/Arbitrary.ts +1101 -0
  91. package/src/Array.ts +3589 -0
  92. package/src/BigDecimal.ts +1349 -0
  93. package/src/BigInt.ts +643 -0
  94. package/src/Boolean.ts +287 -0
  95. package/src/Brand.ts +360 -0
  96. package/src/Cache.ts +281 -0
  97. package/src/Cause.ts +1555 -0
  98. package/src/Channel.ts +2355 -0
  99. package/src/ChildExecutorDecision.ts +146 -0
  100. package/src/Chunk.ts +1495 -0
  101. package/src/Clock.ts +111 -0
  102. package/src/Config.ts +542 -0
  103. package/src/ConfigError.ts +270 -0
  104. package/src/ConfigProvider.ts +333 -0
  105. package/src/ConfigProviderPathPatch.ts +100 -0
  106. package/src/Console.ts +226 -0
  107. package/src/Context.ts +585 -0
  108. package/src/Cron.ts +706 -0
  109. package/src/Data.ts +596 -0
  110. package/src/DateTime.ts +1686 -0
  111. package/src/DefaultServices.ts +34 -0
  112. package/src/Deferred.ts +301 -0
  113. package/src/Differ.ts +450 -0
  114. package/src/Duration.ts +1000 -0
  115. package/src/Effect.ts +14817 -0
  116. package/src/Effectable.ts +107 -0
  117. package/src/Either.ts +1040 -0
  118. package/src/Encoding.ts +195 -0
  119. package/src/Equal.ts +98 -0
  120. package/src/Equivalence.ts +235 -0
  121. package/src/ExecutionPlan.ts +308 -0
  122. package/src/ExecutionStrategy.ts +119 -0
  123. package/src/Exit.ts +467 -0
  124. package/src/FastCheck.ts +9 -0
  125. package/src/Fiber.ts +744 -0
  126. package/src/FiberHandle.ts +540 -0
  127. package/src/FiberId.ts +195 -0
  128. package/src/FiberMap.ts +656 -0
  129. package/src/FiberRef.ts +444 -0
  130. package/src/FiberRefs.ts +204 -0
  131. package/src/FiberRefsPatch.ts +105 -0
  132. package/src/FiberSet.ts +491 -0
  133. package/src/FiberStatus.ts +108 -0
  134. package/src/Function.ts +1222 -0
  135. package/src/GlobalValue.ts +53 -0
  136. package/src/Graph.ts +3732 -0
  137. package/src/GroupBy.ts +103 -0
  138. package/src/HKT.ts +45 -0
  139. package/src/Hash.ts +195 -0
  140. package/src/HashMap.ts +519 -0
  141. package/src/HashRing.ts +317 -0
  142. package/src/HashSet.ts +2346 -0
  143. package/src/Inspectable.ts +287 -0
  144. package/src/Iterable.ts +1119 -0
  145. package/src/JSONSchema.ts +1044 -0
  146. package/src/KeyedPool.ts +167 -0
  147. package/src/Layer.ts +1228 -0
  148. package/src/LayerMap.ts +436 -0
  149. package/src/List.ts +977 -0
  150. package/src/LogLevel.ts +285 -0
  151. package/src/LogSpan.ts +25 -0
  152. package/src/Logger.ts +702 -0
  153. package/src/Mailbox.ts +268 -0
  154. package/src/ManagedRuntime.ts +180 -0
  155. package/src/Match.ts +1477 -0
  156. package/src/MergeDecision.ts +95 -0
  157. package/src/MergeState.ts +172 -0
  158. package/src/MergeStrategy.ts +107 -0
  159. package/src/Metric.ts +780 -0
  160. package/src/MetricBoundaries.ts +69 -0
  161. package/src/MetricHook.ts +151 -0
  162. package/src/MetricKey.ts +224 -0
  163. package/src/MetricKeyType.ts +262 -0
  164. package/src/MetricLabel.ts +47 -0
  165. package/src/MetricPair.ts +71 -0
  166. package/src/MetricPolling.ts +148 -0
  167. package/src/MetricRegistry.ts +48 -0
  168. package/src/MetricState.ts +257 -0
  169. package/src/Micro.ts +4405 -0
  170. package/src/ModuleVersion.ts +18 -0
  171. package/src/MutableHashMap.ts +411 -0
  172. package/src/MutableHashSet.ts +706 -0
  173. package/src/MutableList.ts +297 -0
  174. package/src/MutableQueue.ts +227 -0
  175. package/src/MutableRef.ts +202 -0
  176. package/src/NonEmptyIterable.ts +32 -0
  177. package/src/Number.ts +1071 -0
  178. package/src/Option.ts +2170 -0
  179. package/src/Order.ts +373 -0
  180. package/src/Ordering.ts +111 -0
  181. package/src/ParseResult.ts +2031 -0
  182. package/src/PartitionedSemaphore.ts +200 -0
  183. package/src/Pipeable.ts +566 -0
  184. package/src/Pool.ts +204 -0
  185. package/src/Predicate.ts +1405 -0
  186. package/src/Pretty.ts +205 -0
  187. package/src/PrimaryKey.ts +23 -0
  188. package/src/PubSub.ts +182 -0
  189. package/src/Queue.ts +644 -0
  190. package/src/Random.ts +204 -0
  191. package/src/RateLimiter.ts +138 -0
  192. package/src/RcMap.ts +141 -0
  193. package/src/RcRef.ts +122 -0
  194. package/src/Readable.ts +93 -0
  195. package/src/Record.ts +1274 -0
  196. package/src/RedBlackTree.ts +421 -0
  197. package/src/Redacted.ts +144 -0
  198. package/src/Ref.ts +180 -0
  199. package/src/RegExp.ts +38 -0
  200. package/src/Reloadable.ts +127 -0
  201. package/src/Request.ts +347 -0
  202. package/src/RequestBlock.ts +118 -0
  203. package/src/RequestResolver.ts +366 -0
  204. package/src/Resource.ts +119 -0
  205. package/src/Runtime.ts +383 -0
  206. package/src/RuntimeFlags.ts +336 -0
  207. package/src/RuntimeFlagsPatch.ts +183 -0
  208. package/src/STM.ts +2045 -0
  209. package/src/Schedule.ts +2219 -0
  210. package/src/ScheduleDecision.ts +62 -0
  211. package/src/ScheduleInterval.ts +151 -0
  212. package/src/ScheduleIntervals.ts +122 -0
  213. package/src/Scheduler.ts +353 -0
  214. package/src/Schema.ts +10914 -0
  215. package/src/SchemaAST.ts +3043 -0
  216. package/src/Scope.ts +204 -0
  217. package/src/ScopedCache.ts +151 -0
  218. package/src/ScopedRef.ts +117 -0
  219. package/src/Secret.ts +88 -0
  220. package/src/SingleProducerAsyncInput.ts +67 -0
  221. package/src/Sink.ts +1461 -0
  222. package/src/SortedMap.ts +287 -0
  223. package/src/SortedSet.ts +390 -0
  224. package/src/SourceLocation.ts +108 -0
  225. package/src/Stream.ts +6468 -0
  226. package/src/StreamEmit.ts +136 -0
  227. package/src/StreamHaltStrategy.ts +123 -0
  228. package/src/Streamable.ts +45 -0
  229. package/src/String.ts +778 -0
  230. package/src/Struct.ts +243 -0
  231. package/src/Subscribable.ts +100 -0
  232. package/src/SubscriptionRef.ts +298 -0
  233. package/src/Supervisor.ts +240 -0
  234. package/src/Symbol.ts +29 -0
  235. package/src/SynchronizedRef.ts +270 -0
  236. package/src/TArray.ts +495 -0
  237. package/src/TDeferred.ts +100 -0
  238. package/src/TMap.ts +515 -0
  239. package/src/TPriorityQueue.ts +223 -0
  240. package/src/TPubSub.ts +200 -0
  241. package/src/TQueue.ts +432 -0
  242. package/src/TRandom.ts +129 -0
  243. package/src/TReentrantLock.ts +224 -0
  244. package/src/TRef.ts +178 -0
  245. package/src/TSemaphore.ts +129 -0
  246. package/src/TSet.ts +365 -0
  247. package/src/TSubscriptionRef.ts +192 -0
  248. package/src/Take.ts +258 -0
  249. package/src/TestAnnotation.ts +158 -0
  250. package/src/TestAnnotationMap.ts +119 -0
  251. package/src/TestAnnotations.ts +117 -0
  252. package/src/TestClock.ts +556 -0
  253. package/src/TestConfig.ts +47 -0
  254. package/src/TestContext.ts +36 -0
  255. package/src/TestLive.ts +53 -0
  256. package/src/TestServices.ts +390 -0
  257. package/src/TestSized.ts +55 -0
  258. package/src/Tracer.ts +182 -0
  259. package/src/Trie.ts +840 -0
  260. package/src/Tuple.ts +305 -0
  261. package/src/Types.ts +353 -0
  262. package/src/Unify.ts +113 -0
  263. package/src/UpstreamPullRequest.ts +117 -0
  264. package/src/UpstreamPullStrategy.ts +121 -0
  265. package/src/Utils.ts +809 -0
  266. package/src/index.ts +1568 -0
  267. package/src/internal/array.ts +8 -0
  268. package/src/internal/blockedRequests.ts +520 -0
  269. package/src/internal/cache.ts +733 -0
  270. package/src/internal/cause.ts +1050 -0
  271. package/src/internal/channel/channelExecutor.ts +1200 -0
  272. package/src/internal/channel/channelState.ts +134 -0
  273. package/src/internal/channel/childExecutorDecision.ts +96 -0
  274. package/src/internal/channel/continuation.ts +200 -0
  275. package/src/internal/channel/mergeDecision.ts +113 -0
  276. package/src/internal/channel/mergeState.ts +120 -0
  277. package/src/internal/channel/mergeStrategy.ts +72 -0
  278. package/src/internal/channel/singleProducerAsyncInput.ts +259 -0
  279. package/src/internal/channel/subexecutor.ts +229 -0
  280. package/src/internal/channel/upstreamPullRequest.ts +84 -0
  281. package/src/internal/channel/upstreamPullStrategy.ts +87 -0
  282. package/src/internal/channel.ts +2603 -0
  283. package/src/internal/clock.ts +95 -0
  284. package/src/internal/completedRequestMap.ts +9 -0
  285. package/src/internal/concurrency.ts +54 -0
  286. package/src/internal/config.ts +716 -0
  287. package/src/internal/configError.ts +304 -0
  288. package/src/internal/configProvider/pathPatch.ts +97 -0
  289. package/src/internal/configProvider.ts +799 -0
  290. package/src/internal/console.ts +153 -0
  291. package/src/internal/context.ts +337 -0
  292. package/src/internal/core-effect.ts +2293 -0
  293. package/src/internal/core-stream.ts +998 -0
  294. package/src/internal/core.ts +3189 -0
  295. package/src/internal/data.ts +36 -0
  296. package/src/internal/dataSource.ts +327 -0
  297. package/src/internal/dateTime.ts +1277 -0
  298. package/src/internal/defaultServices/console.ts +100 -0
  299. package/src/internal/defaultServices.ts +163 -0
  300. package/src/internal/deferred.ts +46 -0
  301. package/src/internal/differ/chunkPatch.ts +211 -0
  302. package/src/internal/differ/contextPatch.ts +232 -0
  303. package/src/internal/differ/hashMapPatch.ts +220 -0
  304. package/src/internal/differ/hashSetPatch.ts +176 -0
  305. package/src/internal/differ/orPatch.ts +311 -0
  306. package/src/internal/differ/readonlyArrayPatch.ts +210 -0
  307. package/src/internal/differ.ts +200 -0
  308. package/src/internal/doNotation.ts +80 -0
  309. package/src/internal/effect/circular.ts +895 -0
  310. package/src/internal/effectable.ts +131 -0
  311. package/src/internal/either.ts +110 -0
  312. package/src/internal/encoding/base64.ts +286 -0
  313. package/src/internal/encoding/base64Url.ts +29 -0
  314. package/src/internal/encoding/common.ts +51 -0
  315. package/src/internal/encoding/hex.ts +315 -0
  316. package/src/internal/errors.ts +7 -0
  317. package/src/internal/executionPlan.ts +114 -0
  318. package/src/internal/executionStrategy.ts +74 -0
  319. package/src/internal/fiber.ts +388 -0
  320. package/src/internal/fiberId.ts +267 -0
  321. package/src/internal/fiberMessage.ts +82 -0
  322. package/src/internal/fiberRefs/patch.ts +144 -0
  323. package/src/internal/fiberRefs.ts +297 -0
  324. package/src/internal/fiberRuntime.ts +3842 -0
  325. package/src/internal/fiberScope.ts +71 -0
  326. package/src/internal/fiberStatus.ts +119 -0
  327. package/src/internal/groupBy.ts +530 -0
  328. package/src/internal/hashMap/array.ts +49 -0
  329. package/src/internal/hashMap/bitwise.ts +32 -0
  330. package/src/internal/hashMap/config.ts +14 -0
  331. package/src/internal/hashMap/keySet.ts +8 -0
  332. package/src/internal/hashMap/node.ts +391 -0
  333. package/src/internal/hashMap.ts +586 -0
  334. package/src/internal/hashSet.ts +323 -0
  335. package/src/internal/keyedPool.ts +244 -0
  336. package/src/internal/layer/circular.ts +214 -0
  337. package/src/internal/layer.ts +1483 -0
  338. package/src/internal/logSpan.ts +20 -0
  339. package/src/internal/logger-circular.ts +24 -0
  340. package/src/internal/logger.ts +522 -0
  341. package/src/internal/mailbox.ts +561 -0
  342. package/src/internal/managedRuntime/circular.ts +6 -0
  343. package/src/internal/managedRuntime.ts +134 -0
  344. package/src/internal/matcher.ts +652 -0
  345. package/src/internal/metric/boundaries.ts +75 -0
  346. package/src/internal/metric/hook.ts +483 -0
  347. package/src/internal/metric/key.ts +167 -0
  348. package/src/internal/metric/keyType.ts +238 -0
  349. package/src/internal/metric/label.ts +41 -0
  350. package/src/internal/metric/pair.ts +48 -0
  351. package/src/internal/metric/polling.ts +149 -0
  352. package/src/internal/metric/registry.ts +187 -0
  353. package/src/internal/metric/state.ts +290 -0
  354. package/src/internal/metric.ts +577 -0
  355. package/src/internal/opCodes/cause.ts +35 -0
  356. package/src/internal/opCodes/channel.ts +83 -0
  357. package/src/internal/opCodes/channelChildExecutorDecision.ts +17 -0
  358. package/src/internal/opCodes/channelMergeDecision.ts +11 -0
  359. package/src/internal/opCodes/channelMergeState.ts +17 -0
  360. package/src/internal/opCodes/channelMergeStrategy.ts +11 -0
  361. package/src/internal/opCodes/channelState.ts +23 -0
  362. package/src/internal/opCodes/channelUpstreamPullRequest.ts +11 -0
  363. package/src/internal/opCodes/channelUpstreamPullStrategy.ts +11 -0
  364. package/src/internal/opCodes/config.ts +65 -0
  365. package/src/internal/opCodes/configError.ts +35 -0
  366. package/src/internal/opCodes/continuation.ts +11 -0
  367. package/src/internal/opCodes/deferred.ts +11 -0
  368. package/src/internal/opCodes/effect.ts +89 -0
  369. package/src/internal/opCodes/layer.ts +59 -0
  370. package/src/internal/opCodes/streamHaltStrategy.ts +23 -0
  371. package/src/internal/option.ts +80 -0
  372. package/src/internal/pool.ts +432 -0
  373. package/src/internal/pubsub.ts +1762 -0
  374. package/src/internal/query.ts +204 -0
  375. package/src/internal/queue.ts +766 -0
  376. package/src/internal/random.ts +161 -0
  377. package/src/internal/rateLimiter.ts +93 -0
  378. package/src/internal/rcMap.ts +285 -0
  379. package/src/internal/rcRef.ts +192 -0
  380. package/src/internal/redBlackTree/iterator.ts +200 -0
  381. package/src/internal/redBlackTree/node.ts +68 -0
  382. package/src/internal/redBlackTree.ts +1245 -0
  383. package/src/internal/redacted.ts +73 -0
  384. package/src/internal/ref.ts +171 -0
  385. package/src/internal/reloadable.ts +140 -0
  386. package/src/internal/request.ts +177 -0
  387. package/src/internal/resource.ts +76 -0
  388. package/src/internal/ringBuffer.ts +68 -0
  389. package/src/internal/runtime.ts +558 -0
  390. package/src/internal/runtimeFlags.ts +178 -0
  391. package/src/internal/runtimeFlagsPatch.ts +103 -0
  392. package/src/internal/schedule/decision.ts +47 -0
  393. package/src/internal/schedule/interval.ts +101 -0
  394. package/src/internal/schedule/intervals.ts +180 -0
  395. package/src/internal/schedule.ts +2199 -0
  396. package/src/internal/schema/errors.ts +191 -0
  397. package/src/internal/schema/schemaId.ts +106 -0
  398. package/src/internal/schema/util.ts +50 -0
  399. package/src/internal/scopedCache.ts +644 -0
  400. package/src/internal/scopedRef.ts +118 -0
  401. package/src/internal/secret.ts +89 -0
  402. package/src/internal/singleShotGen.ts +35 -0
  403. package/src/internal/sink.ts +2120 -0
  404. package/src/internal/stack.ts +10 -0
  405. package/src/internal/stm/core.ts +817 -0
  406. package/src/internal/stm/entry.ts +59 -0
  407. package/src/internal/stm/journal.ts +123 -0
  408. package/src/internal/stm/opCodes/stm.ts +71 -0
  409. package/src/internal/stm/opCodes/stmState.ts +17 -0
  410. package/src/internal/stm/opCodes/strategy.ts +17 -0
  411. package/src/internal/stm/opCodes/tExit.ts +29 -0
  412. package/src/internal/stm/opCodes/tryCommit.ts +11 -0
  413. package/src/internal/stm/stm.ts +1453 -0
  414. package/src/internal/stm/stmState.ts +136 -0
  415. package/src/internal/stm/tArray.ts +550 -0
  416. package/src/internal/stm/tDeferred.ts +81 -0
  417. package/src/internal/stm/tExit.ts +190 -0
  418. package/src/internal/stm/tMap.ts +824 -0
  419. package/src/internal/stm/tPriorityQueue.ts +267 -0
  420. package/src/internal/stm/tPubSub.ts +551 -0
  421. package/src/internal/stm/tQueue.ts +393 -0
  422. package/src/internal/stm/tRandom.ts +140 -0
  423. package/src/internal/stm/tReentrantLock.ts +352 -0
  424. package/src/internal/stm/tRef.ts +195 -0
  425. package/src/internal/stm/tSemaphore.ts +113 -0
  426. package/src/internal/stm/tSet.ts +259 -0
  427. package/src/internal/stm/tSubscriptionRef.ts +286 -0
  428. package/src/internal/stm/tryCommit.ts +34 -0
  429. package/src/internal/stm/txnId.ts +14 -0
  430. package/src/internal/stm/versioned.ts +4 -0
  431. package/src/internal/stream/debounceState.ts +57 -0
  432. package/src/internal/stream/emit.ts +123 -0
  433. package/src/internal/stream/haltStrategy.ts +94 -0
  434. package/src/internal/stream/handoff.ts +187 -0
  435. package/src/internal/stream/handoffSignal.ts +59 -0
  436. package/src/internal/stream/pull.ts +34 -0
  437. package/src/internal/stream/sinkEndReason.ts +30 -0
  438. package/src/internal/stream/zipAllState.ts +88 -0
  439. package/src/internal/stream/zipChunksState.ts +56 -0
  440. package/src/internal/stream.ts +8801 -0
  441. package/src/internal/string-utils.ts +107 -0
  442. package/src/internal/subscriptionRef.ts +138 -0
  443. package/src/internal/supervisor/patch.ts +190 -0
  444. package/src/internal/supervisor.ts +303 -0
  445. package/src/internal/synchronizedRef.ts +114 -0
  446. package/src/internal/take.ts +199 -0
  447. package/src/internal/testing/sleep.ts +27 -0
  448. package/src/internal/testing/suspendedWarningData.ts +85 -0
  449. package/src/internal/testing/warningData.ts +94 -0
  450. package/src/internal/tracer.ts +150 -0
  451. package/src/internal/trie.ts +722 -0
  452. package/src/internal/version.ts +7 -0
package/src/Pretty.ts ADDED
@@ -0,0 +1,205 @@
1
+ /**
2
+ * @since 3.10.0
3
+ */
4
+ import * as Arr from "./Array.js"
5
+ import * as Inspectable from "./Inspectable.js"
6
+ import * as errors_ from "./internal/schema/errors.js"
7
+ import * as util_ from "./internal/schema/util.js"
8
+ import * as Option from "./Option.js"
9
+ import * as ParseResult from "./ParseResult.js"
10
+ import type * as Schema from "./Schema.js"
11
+ import * as AST from "./SchemaAST.js"
12
+
13
+ /**
14
+ * @category model
15
+ * @since 3.10.0
16
+ */
17
+ export interface Pretty<To> {
18
+ (a: To): string
19
+ }
20
+
21
+ /**
22
+ * @category annotations
23
+ * @since 3.10.0
24
+ */
25
+ export type PrettyAnnotation<A, TypeParameters extends ReadonlyArray<any> = readonly []> = (
26
+ ...pretties: { readonly [K in keyof TypeParameters]: Pretty<TypeParameters[K]> }
27
+ ) => Pretty<A>
28
+
29
+ /**
30
+ * @category prettify
31
+ * @since 3.10.0
32
+ */
33
+ export const make = <A, I, R>(schema: Schema.Schema<A, I, R>): (a: A) => string => compile(schema.ast, [])
34
+
35
+ const getPrettyAnnotation = AST.getAnnotation<PrettyAnnotation<any, any>>(AST.PrettyAnnotationId)
36
+
37
+ const getMatcher = (defaultPretty: Pretty<any>) => (ast: AST.AST): Pretty<any> =>
38
+ Option.match(getPrettyAnnotation(ast), {
39
+ onNone: () => defaultPretty,
40
+ onSome: (handler) => handler()
41
+ })
42
+
43
+ const toString = getMatcher((a) => String(a))
44
+
45
+ const stringify = getMatcher((a) => JSON.stringify(a))
46
+
47
+ const formatUnknown = getMatcher(Inspectable.formatUnknown)
48
+
49
+ /**
50
+ * @since 3.10.0
51
+ */
52
+ export const match: AST.Match<Pretty<any>> = {
53
+ "Declaration": (ast, go, path) => {
54
+ const annotation = getPrettyAnnotation(ast)
55
+ if (Option.isSome(annotation)) {
56
+ return annotation.value(...ast.typeParameters.map((tp) => go(tp, path)))
57
+ }
58
+ throw new Error(errors_.getPrettyMissingAnnotationErrorMessage(path, ast))
59
+ },
60
+ "VoidKeyword": getMatcher(() => "void(0)"),
61
+ "NeverKeyword": getMatcher(() => {
62
+ throw new Error(errors_.getPrettyNeverErrorMessage)
63
+ }),
64
+ "Literal": getMatcher((literal: AST.LiteralValue): string =>
65
+ typeof literal === "bigint" ?
66
+ `${String(literal)}n` :
67
+ JSON.stringify(literal)
68
+ ),
69
+ "SymbolKeyword": toString,
70
+ "UniqueSymbol": toString,
71
+ "TemplateLiteral": stringify,
72
+ "UndefinedKeyword": toString,
73
+ "UnknownKeyword": formatUnknown,
74
+ "AnyKeyword": formatUnknown,
75
+ "ObjectKeyword": formatUnknown,
76
+ "StringKeyword": stringify,
77
+ "NumberKeyword": toString,
78
+ "BooleanKeyword": toString,
79
+ "BigIntKeyword": getMatcher((a) => `${String(a)}n`),
80
+ "Enums": stringify,
81
+ "TupleType": (ast, go, path) => {
82
+ const hook = getPrettyAnnotation(ast)
83
+ if (Option.isSome(hook)) {
84
+ return hook.value()
85
+ }
86
+ const elements = ast.elements.map((e, i) => go(e.type, path.concat(i)))
87
+ const rest = ast.rest.map((annotatedAST) => go(annotatedAST.type, path))
88
+ return (input: ReadonlyArray<unknown>) => {
89
+ const output: Array<string> = []
90
+ let i = 0
91
+ // ---------------------------------------------
92
+ // handle elements
93
+ // ---------------------------------------------
94
+ for (; i < elements.length; i++) {
95
+ if (input.length < i + 1) {
96
+ if (ast.elements[i].isOptional) {
97
+ continue
98
+ }
99
+ } else {
100
+ output.push(elements[i](input[i]))
101
+ }
102
+ }
103
+ // ---------------------------------------------
104
+ // handle rest element
105
+ // ---------------------------------------------
106
+ if (Arr.isNonEmptyReadonlyArray(rest)) {
107
+ const [head, ...tail] = rest
108
+ for (; i < input.length - tail.length; i++) {
109
+ output.push(head(input[i]))
110
+ }
111
+ // ---------------------------------------------
112
+ // handle post rest elements
113
+ // ---------------------------------------------
114
+ for (let j = 0; j < tail.length; j++) {
115
+ i += j
116
+ output.push(tail[j](input[i]))
117
+ }
118
+ }
119
+
120
+ return "[" + output.join(", ") + "]"
121
+ }
122
+ },
123
+ "TypeLiteral": (ast, go, path) => {
124
+ const hook = getPrettyAnnotation(ast)
125
+ if (Option.isSome(hook)) {
126
+ return hook.value()
127
+ }
128
+ const propertySignaturesTypes = ast.propertySignatures.map((ps) => go(ps.type, path.concat(ps.name)))
129
+ const indexSignatureTypes = ast.indexSignatures.map((is) => go(is.type, path))
130
+ const expectedKeys: any = {}
131
+ for (let i = 0; i < propertySignaturesTypes.length; i++) {
132
+ expectedKeys[ast.propertySignatures[i].name] = null
133
+ }
134
+ return (input: { readonly [x: PropertyKey]: unknown }) => {
135
+ const output: Array<string> = []
136
+ // ---------------------------------------------
137
+ // handle property signatures
138
+ // ---------------------------------------------
139
+ for (let i = 0; i < propertySignaturesTypes.length; i++) {
140
+ const ps = ast.propertySignatures[i]
141
+ const name = ps.name
142
+ if (ps.isOptional && !Object.prototype.hasOwnProperty.call(input, name)) {
143
+ continue
144
+ }
145
+ output.push(
146
+ `${Inspectable.formatPropertyKey(name)}: ${propertySignaturesTypes[i](input[name])}`
147
+ )
148
+ }
149
+ // ---------------------------------------------
150
+ // handle index signatures
151
+ // ---------------------------------------------
152
+ if (indexSignatureTypes.length > 0) {
153
+ for (let i = 0; i < indexSignatureTypes.length; i++) {
154
+ const type = indexSignatureTypes[i]
155
+ const keys = util_.getKeysForIndexSignature(input, ast.indexSignatures[i].parameter)
156
+ for (const key of keys) {
157
+ if (Object.prototype.hasOwnProperty.call(expectedKeys, key)) {
158
+ continue
159
+ }
160
+ output.push(`${Inspectable.formatPropertyKey(key)}: ${type(input[key])}`)
161
+ }
162
+ }
163
+ }
164
+
165
+ return Arr.isNonEmptyReadonlyArray(output) ? "{ " + output.join(", ") + " }" : "{}"
166
+ }
167
+ },
168
+ "Union": (ast, go, path) => {
169
+ const hook = getPrettyAnnotation(ast)
170
+ if (Option.isSome(hook)) {
171
+ return hook.value()
172
+ }
173
+ const types = ast.types.map((ast) => [ParseResult.is({ ast } as any), go(ast, path)] as const)
174
+ return (a) => {
175
+ const index = types.findIndex(([is]) => is(a))
176
+ if (index === -1) {
177
+ throw new Error(errors_.getPrettyNoMatchingSchemaErrorMessage(a, path, ast))
178
+ }
179
+ return types[index][1](a)
180
+ }
181
+ },
182
+ "Suspend": (ast, go, path) => {
183
+ return Option.match(getPrettyAnnotation(ast), {
184
+ onNone: () => {
185
+ const get = util_.memoizeThunk(() => go(ast.f(), path))
186
+ return (a) => get()(a)
187
+ },
188
+ onSome: (handler) => handler()
189
+ })
190
+ },
191
+ "Refinement": (ast, go, path) => {
192
+ return Option.match(getPrettyAnnotation(ast), {
193
+ onNone: () => go(ast.from, path),
194
+ onSome: (handler) => handler()
195
+ })
196
+ },
197
+ "Transformation": (ast, go, path) => {
198
+ return Option.match(getPrettyAnnotation(ast), {
199
+ onNone: () => go(ast.to, path),
200
+ onSome: (handler) => handler()
201
+ })
202
+ }
203
+ }
204
+
205
+ const compile = AST.getCompiler(match)
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @since 2.0.0
3
+ */
4
+
5
+ /**
6
+ * @since 2.0.0
7
+ * @category symbols
8
+ */
9
+ export const symbol: unique symbol = Symbol.for("effect/PrimaryKey")
10
+
11
+ /**
12
+ * @since 2.0.0
13
+ * @category models
14
+ */
15
+ export interface PrimaryKey {
16
+ [symbol](): string
17
+ }
18
+
19
+ /**
20
+ * @since 2.0.0
21
+ * @category accessors
22
+ */
23
+ export const value = (self: PrimaryKey): string => self[symbol]()
package/src/PubSub.ts ADDED
@@ -0,0 +1,182 @@
1
+ /**
2
+ * @since 2.0.0
3
+ */
4
+ import type * as Effect from "./Effect.js"
5
+ import * as internal from "./internal/pubsub.js"
6
+ import type { Pipeable } from "./Pipeable.js"
7
+ import type * as Queue from "./Queue.js"
8
+ import type * as Scope from "./Scope.js"
9
+
10
+ /**
11
+ * A `PubSub<A>` is an asynchronous message hub into which publishers can publish
12
+ * messages of type `A` and subscribers can subscribe to take messages of type
13
+ * `A`.
14
+ *
15
+ * @since 2.0.0
16
+ * @category models
17
+ */
18
+ export interface PubSub<in out A> extends Queue.Enqueue<A>, Pipeable {
19
+ /**
20
+ * Publishes a message to the `PubSub`, returning whether the message was published
21
+ * to the `PubSub`.
22
+ */
23
+ publish(value: A): Effect.Effect<boolean>
24
+
25
+ /**
26
+ * Publishes all of the specified messages to the `PubSub`, returning whether they
27
+ * were published to the `PubSub`.
28
+ */
29
+ publishAll(elements: Iterable<A>): Effect.Effect<boolean>
30
+
31
+ /**
32
+ * Subscribes to receive messages from the `PubSub`. The resulting subscription can
33
+ * be evaluated multiple times within the scope to take a message from the `PubSub`
34
+ * each time.
35
+ */
36
+ readonly subscribe: Effect.Effect<Queue.Dequeue<A>, never, Scope.Scope>
37
+ }
38
+
39
+ /**
40
+ * Creates a bounded `PubSub` with the back pressure strategy. The `PubSub` will retain
41
+ * messages until they have been taken by all subscribers, applying back
42
+ * pressure to publishers if the `PubSub` is at capacity.
43
+ *
44
+ * For best performance use capacities that are powers of two.
45
+ *
46
+ * @since 2.0.0
47
+ * @category constructors
48
+ */
49
+ export const bounded: <A>(
50
+ capacity: number | { readonly capacity: number; readonly replay?: number | undefined }
51
+ ) => Effect.Effect<PubSub<A>> = internal.bounded
52
+
53
+ /**
54
+ * Creates a bounded `PubSub` with the dropping strategy. The `PubSub` will drop new
55
+ * messages if the `PubSub` is at capacity.
56
+ *
57
+ * For best performance use capacities that are powers of two.
58
+ *
59
+ * @since 2.0.0
60
+ * @category constructors
61
+ */
62
+ export const dropping: <A>(
63
+ capacity: number | { readonly capacity: number; readonly replay?: number | undefined }
64
+ ) => Effect.Effect<PubSub<A>> = internal.dropping
65
+
66
+ /**
67
+ * Creates a bounded `PubSub` with the sliding strategy. The `PubSub` will add new
68
+ * messages and drop old messages if the `PubSub` is at capacity.
69
+ *
70
+ * For best performance use capacities that are powers of two.
71
+ *
72
+ * @since 2.0.0
73
+ * @category constructors
74
+ */
75
+ export const sliding: <A>(
76
+ capacity: number | { readonly capacity: number; readonly replay?: number | undefined }
77
+ ) => Effect.Effect<PubSub<A>> = internal.sliding
78
+
79
+ /**
80
+ * Creates an unbounded `PubSub`.
81
+ *
82
+ * @since 2.0.0
83
+ * @category constructors
84
+ */
85
+ export const unbounded: <A>(options?: { readonly replay?: number | undefined }) => Effect.Effect<PubSub<A>> =
86
+ internal.unbounded
87
+
88
+ /**
89
+ * Returns the number of elements the queue can hold.
90
+ *
91
+ * @since 2.0.0
92
+ * @category getters
93
+ */
94
+ export const capacity: <A>(self: PubSub<A>) => number = internal.capacity
95
+
96
+ /**
97
+ * Retrieves the size of the queue, which is equal to the number of elements
98
+ * in the queue. This may be negative if fibers are suspended waiting for
99
+ * elements to be added to the queue.
100
+ *
101
+ * @since 2.0.0
102
+ * @category getters
103
+ */
104
+ export const size: <A>(self: PubSub<A>) => Effect.Effect<number> = internal.size
105
+
106
+ /**
107
+ * Returns `true` if the `Queue` contains at least one element, `false`
108
+ * otherwise.
109
+ *
110
+ * @since 2.0.0
111
+ * @category getters
112
+ */
113
+ export const isFull: <A>(self: PubSub<A>) => Effect.Effect<boolean> = internal.isFull
114
+
115
+ /**
116
+ * Returns `true` if the `Queue` contains zero elements, `false` otherwise.
117
+ *
118
+ * @since 2.0.0
119
+ * @category getters
120
+ */
121
+ export const isEmpty: <A>(self: PubSub<A>) => Effect.Effect<boolean> = internal.isEmpty
122
+
123
+ /**
124
+ * Interrupts any fibers that are suspended on `offer` or `take`. Future calls
125
+ * to `offer*` and `take*` will be interrupted immediately.
126
+ *
127
+ * @since 2.0.0
128
+ * @category utils
129
+ */
130
+ export const shutdown: <A>(self: PubSub<A>) => Effect.Effect<void> = internal.shutdown
131
+
132
+ /**
133
+ * Returns `true` if `shutdown` has been called, otherwise returns `false`.
134
+ *
135
+ * @since 2.0.0
136
+ * @category getters
137
+ */
138
+ export const isShutdown: <A>(self: PubSub<A>) => Effect.Effect<boolean> = internal.isShutdown
139
+
140
+ /**
141
+ * Waits until the queue is shutdown. The `Effect` returned by this method will
142
+ * not resume until the queue has been shutdown. If the queue is already
143
+ * shutdown, the `Effect` will resume right away.
144
+ *
145
+ * @since 2.0.0
146
+ * @category utils
147
+ */
148
+ export const awaitShutdown: <A>(self: PubSub<A>) => Effect.Effect<void> = internal.awaitShutdown
149
+
150
+ /**
151
+ * Publishes a message to the `PubSub`, returning whether the message was published
152
+ * to the `PubSub`.
153
+ *
154
+ * @since 2.0.0
155
+ * @category utils
156
+ */
157
+ export const publish: {
158
+ <A>(value: A): (self: PubSub<A>) => Effect.Effect<boolean>
159
+ <A>(self: PubSub<A>, value: A): Effect.Effect<boolean>
160
+ } = internal.publish
161
+
162
+ /**
163
+ * Publishes all of the specified messages to the `PubSub`, returning whether they
164
+ * were published to the `PubSub`.
165
+ *
166
+ * @since 2.0.0
167
+ * @category utils
168
+ */
169
+ export const publishAll: {
170
+ <A>(elements: Iterable<A>): (self: PubSub<A>) => Effect.Effect<boolean>
171
+ <A>(self: PubSub<A>, elements: Iterable<A>): Effect.Effect<boolean>
172
+ } = internal.publishAll
173
+
174
+ /**
175
+ * Subscribes to receive messages from the `PubSub`. The resulting subscription can
176
+ * be evaluated multiple times within the scope to take a message from the `PubSub`
177
+ * each time.
178
+ *
179
+ * @since 2.0.0
180
+ * @category utils
181
+ */
182
+ export const subscribe: <A>(self: PubSub<A>) => Effect.Effect<Queue.Dequeue<A>, never, Scope.Scope> = internal.subscribe