@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,107 @@
1
+ /**
2
+ * Adapted from the `change-case` library.
3
+ *
4
+ * Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com)
5
+ */
6
+
7
+ /** @internal */
8
+ export const lowerCase = (str: string) => str.toLowerCase()
9
+
10
+ /** @internal */
11
+ export const upperCase = (str: string) => str.toUpperCase()
12
+
13
+ interface Options {
14
+ splitRegexp?: RegExp | ReadonlyArray<RegExp>
15
+ stripRegexp?: RegExp | ReadonlyArray<RegExp>
16
+ delimiter?: string
17
+ transform?: (part: string, index: number, parts: ReadonlyArray<string>) => string
18
+ }
19
+
20
+ /**
21
+ * Replace `re` in the input string with the replacement value.
22
+ */
23
+ const replace = (input: string, re: RegExp | ReadonlyArray<RegExp>, value: string): string =>
24
+ re instanceof RegExp
25
+ ? input.replace(re, value)
26
+ : re.reduce((input, re) => input.replace(re, value), input)
27
+
28
+ // Support camel case ("camelCase" -> "camel Case" and "CAMELCase" -> "CAMEL Case").
29
+ const DEFAULT_SPLIT_REGEXP = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g]
30
+
31
+ // Remove all non-word characters.
32
+ const DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi
33
+
34
+ /**
35
+ * Normalize the string into something other libraries can manipulate easier.
36
+ */
37
+ const noCase = (input: string, options: Options = {}): string => {
38
+ const {
39
+ delimiter = " ",
40
+ splitRegexp = DEFAULT_SPLIT_REGEXP,
41
+ stripRegexp = DEFAULT_STRIP_REGEXP,
42
+ transform = lowerCase
43
+ } = options
44
+ const result = replace(replace(input, splitRegexp, "$1\0$2"), stripRegexp, "\0")
45
+ let start = 0
46
+ let end = result.length
47
+ // Trim the delimiter from around the output string.
48
+ while (result.charAt(start) === "\0") {
49
+ start++
50
+ }
51
+ while (result.charAt(end - 1) === "\0") {
52
+ end--
53
+ }
54
+ // Transform each token independently.
55
+ return result.slice(start, end).split("\0").map(transform).join(delimiter)
56
+ }
57
+
58
+ const pascalCaseTransform = (input: string, index: number): string => {
59
+ const firstChar = input.charAt(0)
60
+ const lowerChars = input.substring(1).toLowerCase()
61
+ if (index > 0 && firstChar >= "0" && firstChar <= "9") {
62
+ return `_${firstChar}${lowerChars}`
63
+ }
64
+ return `${firstChar.toUpperCase()}${lowerChars}`
65
+ }
66
+
67
+ /** @internal */
68
+ export const pascalCase = (input: string, options?: Options): string =>
69
+ noCase(input, {
70
+ delimiter: "",
71
+ transform: pascalCaseTransform,
72
+ ...options
73
+ })
74
+
75
+ const camelCaseTransform = (input: string, index: number): string =>
76
+ index === 0
77
+ ? input.toLowerCase()
78
+ : pascalCaseTransform(input, index)
79
+
80
+ /** @internal */
81
+ export const camelCase = (input: string, options?: Options): string =>
82
+ pascalCase(input, {
83
+ transform: camelCaseTransform,
84
+ ...options
85
+ })
86
+
87
+ /** @internal */
88
+ export const constantCase = (input: string, options?: Options): string =>
89
+ noCase(input, {
90
+ delimiter: "_",
91
+ transform: upperCase,
92
+ ...options
93
+ })
94
+
95
+ /** @internal */
96
+ export const kebabCase = (input: string, options?: Options) =>
97
+ noCase(input, {
98
+ delimiter: "-",
99
+ ...options
100
+ })
101
+
102
+ /** @internal */
103
+ export const snakeCase = (input: string, options?: Options) =>
104
+ noCase(input, {
105
+ delimiter: "_",
106
+ ...options
107
+ })
@@ -0,0 +1,138 @@
1
+ import * as Effect from "../Effect.js"
2
+ import * as Effectable from "../Effectable.js"
3
+ import { dual, pipe } from "../Function.js"
4
+ import * as PubSub from "../PubSub.js"
5
+ import * as Readable from "../Readable.js"
6
+ import * as Ref from "../Ref.js"
7
+ import type { Stream } from "../Stream.js"
8
+ import * as Subscribable from "../Subscribable.js"
9
+ import type * as SubscriptionRef from "../SubscriptionRef.js"
10
+ import * as Synchronized from "../SynchronizedRef.js"
11
+ import * as circular_ from "./effect/circular.js"
12
+ import * as ref_ from "./ref.js"
13
+ import * as stream from "./stream.js"
14
+
15
+ /** @internal */
16
+ const SubscriptionRefSymbolKey = "effect/SubscriptionRef"
17
+
18
+ /** @internal */
19
+ export const SubscriptionRefTypeId: SubscriptionRef.SubscriptionRefTypeId = Symbol.for(
20
+ SubscriptionRefSymbolKey
21
+ ) as SubscriptionRef.SubscriptionRefTypeId
22
+
23
+ const subscriptionRefVariance = {
24
+ /* c8 ignore next */
25
+ _A: (_: any) => _
26
+ }
27
+
28
+ /** @internal */
29
+ class SubscriptionRefImpl<in out A> extends Effectable.Class<A> implements SubscriptionRef.SubscriptionRef<A> {
30
+ readonly [Readable.TypeId]: Readable.TypeId = Readable.TypeId
31
+ readonly [Subscribable.TypeId]: Subscribable.TypeId = Subscribable.TypeId
32
+ readonly [Ref.RefTypeId] = ref_.refVariance
33
+ readonly [Synchronized.SynchronizedRefTypeId] = circular_.synchronizedVariance
34
+ readonly [SubscriptionRefTypeId] = subscriptionRefVariance
35
+ constructor(
36
+ readonly ref: Ref.Ref<A>,
37
+ readonly pubsub: PubSub.PubSub<A>,
38
+ readonly semaphore: Effect.Semaphore
39
+ ) {
40
+ super()
41
+ this.get = Ref.get(this.ref)
42
+ }
43
+ commit() {
44
+ return this.get
45
+ }
46
+ readonly get: Effect.Effect<A>
47
+ get changes(): Stream<A> {
48
+ return pipe(
49
+ Ref.get(this.ref),
50
+ Effect.flatMap((a) =>
51
+ Effect.map(
52
+ stream.fromPubSub(this.pubsub, { scoped: true }),
53
+ (s) =>
54
+ stream.concat(
55
+ stream.make(a),
56
+ s
57
+ )
58
+ )
59
+ ),
60
+ this.semaphore.withPermits(1),
61
+ stream.unwrapScoped
62
+ )
63
+ }
64
+ modify<B>(f: (a: A) => readonly [B, A]): Effect.Effect<B> {
65
+ return this.modifyEffect((a) => Effect.succeed(f(a)))
66
+ }
67
+ modifyEffect<B, E, R>(f: (a: A) => Effect.Effect<readonly [B, A], E, R>): Effect.Effect<B, E, R> {
68
+ return pipe(
69
+ Ref.get(this.ref),
70
+ Effect.flatMap(f),
71
+ Effect.flatMap(([b, a]) =>
72
+ pipe(
73
+ Ref.set(this.ref, a),
74
+ Effect.as(b),
75
+ Effect.zipLeft(PubSub.publish(this.pubsub, a))
76
+ )
77
+ ),
78
+ this.semaphore.withPermits(1)
79
+ )
80
+ }
81
+ }
82
+
83
+ /** @internal */
84
+ export const get = <A>(self: SubscriptionRef.SubscriptionRef<A>): Effect.Effect<A> => Ref.get(self.ref)
85
+
86
+ /** @internal */
87
+ export const make = <A>(value: A): Effect.Effect<SubscriptionRef.SubscriptionRef<A>> =>
88
+ pipe(
89
+ Effect.all([
90
+ PubSub.unbounded<A>(),
91
+ Ref.make(value),
92
+ Effect.makeSemaphore(1)
93
+ ]),
94
+ Effect.map(([pubsub, ref, semaphore]) => new SubscriptionRefImpl(ref, pubsub, semaphore))
95
+ )
96
+
97
+ /** @internal */
98
+ export const modify = dual<
99
+ <A, B>(f: (a: A) => readonly [B, A]) => (self: SubscriptionRef.SubscriptionRef<A>) => Effect.Effect<B>,
100
+ <A, B>(
101
+ self: SubscriptionRef.SubscriptionRef<A>,
102
+ f: (a: A) => readonly [B, A]
103
+ ) => Effect.Effect<B>
104
+ >(2, <A, B>(
105
+ self: SubscriptionRef.SubscriptionRef<A>,
106
+ f: (a: A) => readonly [B, A]
107
+ ): Effect.Effect<B> => self.modify(f))
108
+
109
+ /** @internal */
110
+ export const modifyEffect = dual<
111
+ <B, A, E, R>(
112
+ f: (a: A) => Effect.Effect<readonly [B, A], E, R>
113
+ ) => (self: SubscriptionRef.SubscriptionRef<A>) => Effect.Effect<B, E, R>,
114
+ <A, B, E, R>(
115
+ self: SubscriptionRef.SubscriptionRef<A>,
116
+ f: (a: A) => Effect.Effect<readonly [B, A], E, R>
117
+ ) => Effect.Effect<B, E, R>
118
+ >(2, <A, B, E, R>(
119
+ self: SubscriptionRef.SubscriptionRef<A>,
120
+ f: (a: A) => Effect.Effect<readonly [B, A], E, R>
121
+ ): Effect.Effect<B, E, R> => self.modifyEffect(f))
122
+
123
+ /** @internal */
124
+ export const set = dual<
125
+ <A>(value: A) => (self: SubscriptionRef.SubscriptionRef<A>) => Effect.Effect<void>,
126
+ <A>(
127
+ self: SubscriptionRef.SubscriptionRef<A>,
128
+ value: A
129
+ ) => Effect.Effect<void>
130
+ >(2, <A>(
131
+ self: SubscriptionRef.SubscriptionRef<A>,
132
+ value: A
133
+ ): Effect.Effect<void> =>
134
+ pipe(
135
+ Ref.set(self.ref, value),
136
+ Effect.zipLeft(PubSub.publish(self.pubsub, value)),
137
+ self.semaphore.withPermits(1)
138
+ ))
@@ -0,0 +1,190 @@
1
+ import * as Chunk from "../../Chunk.js"
2
+ import * as Differ from "../../Differ.js"
3
+ import * as Equal from "../../Equal.js"
4
+ import { pipe } from "../../Function.js"
5
+ import * as HashSet from "../../HashSet.js"
6
+ import type * as Supervisor from "../../Supervisor.js"
7
+ import * as supervisor from "../supervisor.js"
8
+
9
+ /** @internal */
10
+ export type SupervisorPatch = Empty | AddSupervisor | RemoveSupervisor | AndThen
11
+
12
+ /** @internal */
13
+ export const OP_EMPTY = "Empty" as const
14
+
15
+ /** @internal */
16
+ export type OP_EMPTY = typeof OP_EMPTY
17
+
18
+ /** @internal */
19
+ export const OP_ADD_SUPERVISOR = "AddSupervisor" as const
20
+
21
+ /** @internal */
22
+ export type OP_ADD_SUPERVISOR = typeof OP_ADD_SUPERVISOR
23
+
24
+ /** @internal */
25
+ export const OP_REMOVE_SUPERVISOR = "RemoveSupervisor" as const
26
+
27
+ /** @internal */
28
+ export type OP_REMOVE_SUPERVISOR = typeof OP_REMOVE_SUPERVISOR
29
+
30
+ /** @internal */
31
+ export const OP_AND_THEN = "AndThen" as const
32
+
33
+ /** @internal */
34
+ export type OP_AND_THEN = typeof OP_AND_THEN
35
+
36
+ /** @internal */
37
+ export interface Empty {
38
+ readonly _tag: OP_EMPTY
39
+ }
40
+
41
+ /** @internal */
42
+ export interface AddSupervisor {
43
+ readonly _tag: OP_ADD_SUPERVISOR
44
+ readonly supervisor: Supervisor.Supervisor<any>
45
+ }
46
+
47
+ /** @internal */
48
+ export interface RemoveSupervisor {
49
+ readonly _tag: OP_REMOVE_SUPERVISOR
50
+ readonly supervisor: Supervisor.Supervisor<any>
51
+ }
52
+
53
+ /** @internal */
54
+ export interface AndThen {
55
+ readonly _tag: OP_AND_THEN
56
+ readonly first: SupervisorPatch
57
+ readonly second: SupervisorPatch
58
+ }
59
+
60
+ /**
61
+ * The empty `SupervisorPatch`.
62
+ *
63
+ * @internal
64
+ */
65
+ export const empty: SupervisorPatch = { _tag: OP_EMPTY }
66
+
67
+ /**
68
+ * Combines two patches to produce a new patch that describes applying the
69
+ * updates from this patch and then the updates from the specified patch.
70
+ *
71
+ * @internal
72
+ */
73
+ export const combine = (self: SupervisorPatch, that: SupervisorPatch): SupervisorPatch => {
74
+ return {
75
+ _tag: OP_AND_THEN,
76
+ first: self,
77
+ second: that
78
+ }
79
+ }
80
+
81
+ /**
82
+ * Applies a `SupervisorPatch` to a `Supervisor` to produce a new `Supervisor`.
83
+ *
84
+ * @internal
85
+ */
86
+ export const patch = (
87
+ self: SupervisorPatch,
88
+ supervisor: Supervisor.Supervisor<any>
89
+ ): Supervisor.Supervisor<any> => {
90
+ return patchLoop(supervisor, Chunk.of(self))
91
+ }
92
+
93
+ /** @internal */
94
+ const patchLoop = (
95
+ _supervisor: Supervisor.Supervisor<any>,
96
+ _patches: Chunk.Chunk<SupervisorPatch>
97
+ ): Supervisor.Supervisor<any> => {
98
+ let supervisor = _supervisor
99
+ let patches = _patches
100
+ while (Chunk.isNonEmpty(patches)) {
101
+ const head = Chunk.headNonEmpty(patches)
102
+ switch (head._tag) {
103
+ case OP_EMPTY: {
104
+ patches = Chunk.tailNonEmpty(patches)
105
+ break
106
+ }
107
+ case OP_ADD_SUPERVISOR: {
108
+ supervisor = supervisor.zip(head.supervisor)
109
+ patches = Chunk.tailNonEmpty(patches)
110
+ break
111
+ }
112
+ case OP_REMOVE_SUPERVISOR: {
113
+ supervisor = removeSupervisor(supervisor, head.supervisor)
114
+ patches = Chunk.tailNonEmpty(patches)
115
+ break
116
+ }
117
+ case OP_AND_THEN: {
118
+ patches = Chunk.prepend(head.first)(Chunk.prepend(head.second)(Chunk.tailNonEmpty(patches)))
119
+ break
120
+ }
121
+ }
122
+ }
123
+ return supervisor
124
+ }
125
+
126
+ /** @internal */
127
+ const removeSupervisor = (
128
+ self: Supervisor.Supervisor<any>,
129
+ that: Supervisor.Supervisor<any>
130
+ ): Supervisor.Supervisor<any> => {
131
+ if (Equal.equals(self, that)) {
132
+ return supervisor.none
133
+ } else {
134
+ if (supervisor.isZip(self)) {
135
+ return removeSupervisor(self.left, that).zip(removeSupervisor(self.right, that))
136
+ } else {
137
+ return self
138
+ }
139
+ }
140
+ }
141
+
142
+ /** @internal */
143
+ const toSet = (self: Supervisor.Supervisor<any>): HashSet.HashSet<Supervisor.Supervisor<any>> => {
144
+ if (Equal.equals(self, supervisor.none)) {
145
+ return HashSet.empty()
146
+ } else {
147
+ if (supervisor.isZip(self)) {
148
+ return pipe(toSet(self.left), HashSet.union(toSet(self.right)))
149
+ } else {
150
+ return HashSet.make(self)
151
+ }
152
+ }
153
+ }
154
+
155
+ /** @internal */
156
+ export const diff = (
157
+ oldValue: Supervisor.Supervisor<any>,
158
+ newValue: Supervisor.Supervisor<any>
159
+ ): SupervisorPatch => {
160
+ if (Equal.equals(oldValue, newValue)) {
161
+ return empty
162
+ }
163
+ const oldSupervisors = toSet(oldValue)
164
+ const newSupervisors = toSet(newValue)
165
+ const added = pipe(
166
+ newSupervisors,
167
+ HashSet.difference(oldSupervisors),
168
+ HashSet.reduce(
169
+ empty as SupervisorPatch,
170
+ (patch, supervisor) => combine(patch, { _tag: OP_ADD_SUPERVISOR, supervisor })
171
+ )
172
+ )
173
+ const removed = pipe(
174
+ oldSupervisors,
175
+ HashSet.difference(newSupervisors),
176
+ HashSet.reduce(
177
+ empty as SupervisorPatch,
178
+ (patch, supervisor) => combine(patch, { _tag: OP_REMOVE_SUPERVISOR, supervisor })
179
+ )
180
+ )
181
+ return combine(added, removed)
182
+ }
183
+
184
+ /** @internal */
185
+ export const differ = Differ.make<Supervisor.Supervisor<any>, SupervisorPatch>({
186
+ empty,
187
+ patch,
188
+ combine,
189
+ diff
190
+ })