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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (452) hide show
  1. package/SourceLocation/package.json +6 -0
  2. package/dist/cjs/Effect.js +2 -28
  3. package/dist/cjs/Effect.js.map +1 -1
  4. package/dist/cjs/FiberRef.js +12 -1
  5. package/dist/cjs/FiberRef.js.map +1 -1
  6. package/dist/cjs/Layer.js +2 -24
  7. package/dist/cjs/Layer.js.map +1 -1
  8. package/dist/cjs/RuntimeFlags.js +1 -29
  9. package/dist/cjs/RuntimeFlags.js.map +1 -1
  10. package/dist/cjs/SourceLocation.js +60 -0
  11. package/dist/cjs/SourceLocation.js.map +1 -0
  12. package/dist/cjs/Tracer.js +1 -15
  13. package/dist/cjs/Tracer.js.map +1 -1
  14. package/dist/cjs/Utils.js +1 -1
  15. package/dist/cjs/Utils.js.map +1 -1
  16. package/dist/cjs/index.js +3 -1
  17. package/dist/cjs/index.js.map +1 -1
  18. package/dist/cjs/internal/clock.js +1 -1
  19. package/dist/cjs/internal/clock.js.map +1 -1
  20. package/dist/cjs/internal/core.js +17 -50
  21. package/dist/cjs/internal/core.js.map +1 -1
  22. package/dist/cjs/internal/effect/circular.js +18 -30
  23. package/dist/cjs/internal/effect/circular.js.map +1 -1
  24. package/dist/cjs/internal/fiberRuntime.js +16 -65
  25. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  26. package/dist/cjs/internal/layer/circular.js +1 -5
  27. package/dist/cjs/internal/layer/circular.js.map +1 -1
  28. package/dist/cjs/internal/layer.js +1 -3
  29. package/dist/cjs/internal/layer.js.map +1 -1
  30. package/dist/cjs/internal/logger.js +25 -2
  31. package/dist/cjs/internal/logger.js.map +1 -1
  32. package/dist/cjs/internal/runtimeFlags.js +2 -11
  33. package/dist/cjs/internal/runtimeFlags.js.map +1 -1
  34. package/dist/cjs/internal/tracer.js +1 -114
  35. package/dist/cjs/internal/tracer.js.map +1 -1
  36. package/dist/dts/Config.d.ts +2 -2
  37. package/dist/dts/Config.d.ts.map +1 -1
  38. package/dist/dts/Effect.d.ts +8 -29
  39. package/dist/dts/Effect.d.ts.map +1 -1
  40. package/dist/dts/FiberRef.d.ts +12 -0
  41. package/dist/dts/FiberRef.d.ts.map +1 -1
  42. package/dist/dts/Layer.d.ts +0 -22
  43. package/dist/dts/Layer.d.ts.map +1 -1
  44. package/dist/dts/RuntimeFlags.d.ts +0 -28
  45. package/dist/dts/RuntimeFlags.d.ts.map +1 -1
  46. package/dist/dts/SourceLocation.d.ts +88 -0
  47. package/dist/dts/SourceLocation.d.ts.map +1 -0
  48. package/dist/dts/Tracer.d.ts +0 -15
  49. package/dist/dts/Tracer.d.ts.map +1 -1
  50. package/dist/dts/index.d.ts +6 -0
  51. package/dist/dts/index.d.ts.map +1 -1
  52. package/dist/dts/internal/core.d.ts.map +1 -1
  53. package/dist/dts/internal/layer.d.ts.map +1 -1
  54. package/dist/dts/internal/runtimeFlags.d.ts.map +1 -1
  55. package/dist/esm/Effect.js +0 -26
  56. package/dist/esm/Effect.js.map +1 -1
  57. package/dist/esm/FiberRef.js +11 -0
  58. package/dist/esm/FiberRef.js.map +1 -1
  59. package/dist/esm/Layer.js +0 -22
  60. package/dist/esm/Layer.js.map +1 -1
  61. package/dist/esm/RuntimeFlags.js +0 -28
  62. package/dist/esm/RuntimeFlags.js.map +1 -1
  63. package/dist/esm/SourceLocation.js +51 -0
  64. package/dist/esm/SourceLocation.js.map +1 -0
  65. package/dist/esm/Tracer.js +0 -14
  66. package/dist/esm/Tracer.js.map +1 -1
  67. package/dist/esm/Utils.js +1 -1
  68. package/dist/esm/Utils.js.map +1 -1
  69. package/dist/esm/index.js +6 -0
  70. package/dist/esm/index.js.map +1 -1
  71. package/dist/esm/internal/clock.js +1 -1
  72. package/dist/esm/internal/clock.js.map +1 -1
  73. package/dist/esm/internal/core.js +12 -45
  74. package/dist/esm/internal/core.js.map +1 -1
  75. package/dist/esm/internal/effect/circular.js +18 -30
  76. package/dist/esm/internal/effect/circular.js.map +1 -1
  77. package/dist/esm/internal/fiberRuntime.js +13 -60
  78. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  79. package/dist/esm/internal/layer/circular.js +0 -4
  80. package/dist/esm/internal/layer/circular.js.map +1 -1
  81. package/dist/esm/internal/layer.js +0 -2
  82. package/dist/esm/internal/layer.js.map +1 -1
  83. package/dist/esm/internal/logger.js +25 -2
  84. package/dist/esm/internal/logger.js.map +1 -1
  85. package/dist/esm/internal/runtimeFlags.js +1 -9
  86. package/dist/esm/internal/runtimeFlags.js.map +1 -1
  87. package/dist/esm/internal/tracer.js +0 -111
  88. package/dist/esm/internal/tracer.js.map +1 -1
  89. package/package.json +12 -1
  90. package/src/Arbitrary.ts +1101 -0
  91. package/src/Array.ts +3589 -0
  92. package/src/BigDecimal.ts +1349 -0
  93. package/src/BigInt.ts +643 -0
  94. package/src/Boolean.ts +287 -0
  95. package/src/Brand.ts +360 -0
  96. package/src/Cache.ts +281 -0
  97. package/src/Cause.ts +1555 -0
  98. package/src/Channel.ts +2355 -0
  99. package/src/ChildExecutorDecision.ts +146 -0
  100. package/src/Chunk.ts +1495 -0
  101. package/src/Clock.ts +111 -0
  102. package/src/Config.ts +542 -0
  103. package/src/ConfigError.ts +270 -0
  104. package/src/ConfigProvider.ts +333 -0
  105. package/src/ConfigProviderPathPatch.ts +100 -0
  106. package/src/Console.ts +226 -0
  107. package/src/Context.ts +585 -0
  108. package/src/Cron.ts +706 -0
  109. package/src/Data.ts +596 -0
  110. package/src/DateTime.ts +1686 -0
  111. package/src/DefaultServices.ts +34 -0
  112. package/src/Deferred.ts +301 -0
  113. package/src/Differ.ts +450 -0
  114. package/src/Duration.ts +1000 -0
  115. package/src/Effect.ts +14817 -0
  116. package/src/Effectable.ts +107 -0
  117. package/src/Either.ts +1040 -0
  118. package/src/Encoding.ts +195 -0
  119. package/src/Equal.ts +98 -0
  120. package/src/Equivalence.ts +235 -0
  121. package/src/ExecutionPlan.ts +308 -0
  122. package/src/ExecutionStrategy.ts +119 -0
  123. package/src/Exit.ts +467 -0
  124. package/src/FastCheck.ts +9 -0
  125. package/src/Fiber.ts +744 -0
  126. package/src/FiberHandle.ts +540 -0
  127. package/src/FiberId.ts +195 -0
  128. package/src/FiberMap.ts +656 -0
  129. package/src/FiberRef.ts +444 -0
  130. package/src/FiberRefs.ts +204 -0
  131. package/src/FiberRefsPatch.ts +105 -0
  132. package/src/FiberSet.ts +491 -0
  133. package/src/FiberStatus.ts +108 -0
  134. package/src/Function.ts +1222 -0
  135. package/src/GlobalValue.ts +53 -0
  136. package/src/Graph.ts +3732 -0
  137. package/src/GroupBy.ts +103 -0
  138. package/src/HKT.ts +45 -0
  139. package/src/Hash.ts +195 -0
  140. package/src/HashMap.ts +519 -0
  141. package/src/HashRing.ts +317 -0
  142. package/src/HashSet.ts +2346 -0
  143. package/src/Inspectable.ts +287 -0
  144. package/src/Iterable.ts +1119 -0
  145. package/src/JSONSchema.ts +1044 -0
  146. package/src/KeyedPool.ts +167 -0
  147. package/src/Layer.ts +1228 -0
  148. package/src/LayerMap.ts +436 -0
  149. package/src/List.ts +977 -0
  150. package/src/LogLevel.ts +285 -0
  151. package/src/LogSpan.ts +25 -0
  152. package/src/Logger.ts +702 -0
  153. package/src/Mailbox.ts +268 -0
  154. package/src/ManagedRuntime.ts +180 -0
  155. package/src/Match.ts +1477 -0
  156. package/src/MergeDecision.ts +95 -0
  157. package/src/MergeState.ts +172 -0
  158. package/src/MergeStrategy.ts +107 -0
  159. package/src/Metric.ts +780 -0
  160. package/src/MetricBoundaries.ts +69 -0
  161. package/src/MetricHook.ts +151 -0
  162. package/src/MetricKey.ts +224 -0
  163. package/src/MetricKeyType.ts +262 -0
  164. package/src/MetricLabel.ts +47 -0
  165. package/src/MetricPair.ts +71 -0
  166. package/src/MetricPolling.ts +148 -0
  167. package/src/MetricRegistry.ts +48 -0
  168. package/src/MetricState.ts +257 -0
  169. package/src/Micro.ts +4405 -0
  170. package/src/ModuleVersion.ts +18 -0
  171. package/src/MutableHashMap.ts +411 -0
  172. package/src/MutableHashSet.ts +706 -0
  173. package/src/MutableList.ts +297 -0
  174. package/src/MutableQueue.ts +227 -0
  175. package/src/MutableRef.ts +202 -0
  176. package/src/NonEmptyIterable.ts +32 -0
  177. package/src/Number.ts +1071 -0
  178. package/src/Option.ts +2170 -0
  179. package/src/Order.ts +373 -0
  180. package/src/Ordering.ts +111 -0
  181. package/src/ParseResult.ts +2031 -0
  182. package/src/PartitionedSemaphore.ts +200 -0
  183. package/src/Pipeable.ts +566 -0
  184. package/src/Pool.ts +204 -0
  185. package/src/Predicate.ts +1405 -0
  186. package/src/Pretty.ts +205 -0
  187. package/src/PrimaryKey.ts +23 -0
  188. package/src/PubSub.ts +182 -0
  189. package/src/Queue.ts +644 -0
  190. package/src/Random.ts +204 -0
  191. package/src/RateLimiter.ts +138 -0
  192. package/src/RcMap.ts +141 -0
  193. package/src/RcRef.ts +122 -0
  194. package/src/Readable.ts +93 -0
  195. package/src/Record.ts +1274 -0
  196. package/src/RedBlackTree.ts +421 -0
  197. package/src/Redacted.ts +144 -0
  198. package/src/Ref.ts +180 -0
  199. package/src/RegExp.ts +38 -0
  200. package/src/Reloadable.ts +127 -0
  201. package/src/Request.ts +347 -0
  202. package/src/RequestBlock.ts +118 -0
  203. package/src/RequestResolver.ts +366 -0
  204. package/src/Resource.ts +119 -0
  205. package/src/Runtime.ts +383 -0
  206. package/src/RuntimeFlags.ts +336 -0
  207. package/src/RuntimeFlagsPatch.ts +183 -0
  208. package/src/STM.ts +2045 -0
  209. package/src/Schedule.ts +2219 -0
  210. package/src/ScheduleDecision.ts +62 -0
  211. package/src/ScheduleInterval.ts +151 -0
  212. package/src/ScheduleIntervals.ts +122 -0
  213. package/src/Scheduler.ts +353 -0
  214. package/src/Schema.ts +10914 -0
  215. package/src/SchemaAST.ts +3043 -0
  216. package/src/Scope.ts +204 -0
  217. package/src/ScopedCache.ts +151 -0
  218. package/src/ScopedRef.ts +117 -0
  219. package/src/Secret.ts +88 -0
  220. package/src/SingleProducerAsyncInput.ts +67 -0
  221. package/src/Sink.ts +1461 -0
  222. package/src/SortedMap.ts +287 -0
  223. package/src/SortedSet.ts +390 -0
  224. package/src/SourceLocation.ts +108 -0
  225. package/src/Stream.ts +6468 -0
  226. package/src/StreamEmit.ts +136 -0
  227. package/src/StreamHaltStrategy.ts +123 -0
  228. package/src/Streamable.ts +45 -0
  229. package/src/String.ts +778 -0
  230. package/src/Struct.ts +243 -0
  231. package/src/Subscribable.ts +100 -0
  232. package/src/SubscriptionRef.ts +298 -0
  233. package/src/Supervisor.ts +240 -0
  234. package/src/Symbol.ts +29 -0
  235. package/src/SynchronizedRef.ts +270 -0
  236. package/src/TArray.ts +495 -0
  237. package/src/TDeferred.ts +100 -0
  238. package/src/TMap.ts +515 -0
  239. package/src/TPriorityQueue.ts +223 -0
  240. package/src/TPubSub.ts +200 -0
  241. package/src/TQueue.ts +432 -0
  242. package/src/TRandom.ts +129 -0
  243. package/src/TReentrantLock.ts +224 -0
  244. package/src/TRef.ts +178 -0
  245. package/src/TSemaphore.ts +129 -0
  246. package/src/TSet.ts +365 -0
  247. package/src/TSubscriptionRef.ts +192 -0
  248. package/src/Take.ts +258 -0
  249. package/src/TestAnnotation.ts +158 -0
  250. package/src/TestAnnotationMap.ts +119 -0
  251. package/src/TestAnnotations.ts +117 -0
  252. package/src/TestClock.ts +556 -0
  253. package/src/TestConfig.ts +47 -0
  254. package/src/TestContext.ts +36 -0
  255. package/src/TestLive.ts +53 -0
  256. package/src/TestServices.ts +390 -0
  257. package/src/TestSized.ts +55 -0
  258. package/src/Tracer.ts +182 -0
  259. package/src/Trie.ts +840 -0
  260. package/src/Tuple.ts +305 -0
  261. package/src/Types.ts +353 -0
  262. package/src/Unify.ts +113 -0
  263. package/src/UpstreamPullRequest.ts +117 -0
  264. package/src/UpstreamPullStrategy.ts +121 -0
  265. package/src/Utils.ts +809 -0
  266. package/src/index.ts +1568 -0
  267. package/src/internal/array.ts +8 -0
  268. package/src/internal/blockedRequests.ts +520 -0
  269. package/src/internal/cache.ts +733 -0
  270. package/src/internal/cause.ts +1050 -0
  271. package/src/internal/channel/channelExecutor.ts +1200 -0
  272. package/src/internal/channel/channelState.ts +134 -0
  273. package/src/internal/channel/childExecutorDecision.ts +96 -0
  274. package/src/internal/channel/continuation.ts +200 -0
  275. package/src/internal/channel/mergeDecision.ts +113 -0
  276. package/src/internal/channel/mergeState.ts +120 -0
  277. package/src/internal/channel/mergeStrategy.ts +72 -0
  278. package/src/internal/channel/singleProducerAsyncInput.ts +259 -0
  279. package/src/internal/channel/subexecutor.ts +229 -0
  280. package/src/internal/channel/upstreamPullRequest.ts +84 -0
  281. package/src/internal/channel/upstreamPullStrategy.ts +87 -0
  282. package/src/internal/channel.ts +2603 -0
  283. package/src/internal/clock.ts +95 -0
  284. package/src/internal/completedRequestMap.ts +9 -0
  285. package/src/internal/concurrency.ts +54 -0
  286. package/src/internal/config.ts +716 -0
  287. package/src/internal/configError.ts +304 -0
  288. package/src/internal/configProvider/pathPatch.ts +97 -0
  289. package/src/internal/configProvider.ts +799 -0
  290. package/src/internal/console.ts +153 -0
  291. package/src/internal/context.ts +337 -0
  292. package/src/internal/core-effect.ts +2293 -0
  293. package/src/internal/core-stream.ts +998 -0
  294. package/src/internal/core.ts +3189 -0
  295. package/src/internal/data.ts +36 -0
  296. package/src/internal/dataSource.ts +327 -0
  297. package/src/internal/dateTime.ts +1277 -0
  298. package/src/internal/defaultServices/console.ts +100 -0
  299. package/src/internal/defaultServices.ts +163 -0
  300. package/src/internal/deferred.ts +46 -0
  301. package/src/internal/differ/chunkPatch.ts +211 -0
  302. package/src/internal/differ/contextPatch.ts +232 -0
  303. package/src/internal/differ/hashMapPatch.ts +220 -0
  304. package/src/internal/differ/hashSetPatch.ts +176 -0
  305. package/src/internal/differ/orPatch.ts +311 -0
  306. package/src/internal/differ/readonlyArrayPatch.ts +210 -0
  307. package/src/internal/differ.ts +200 -0
  308. package/src/internal/doNotation.ts +80 -0
  309. package/src/internal/effect/circular.ts +895 -0
  310. package/src/internal/effectable.ts +131 -0
  311. package/src/internal/either.ts +110 -0
  312. package/src/internal/encoding/base64.ts +286 -0
  313. package/src/internal/encoding/base64Url.ts +29 -0
  314. package/src/internal/encoding/common.ts +51 -0
  315. package/src/internal/encoding/hex.ts +315 -0
  316. package/src/internal/errors.ts +7 -0
  317. package/src/internal/executionPlan.ts +114 -0
  318. package/src/internal/executionStrategy.ts +74 -0
  319. package/src/internal/fiber.ts +388 -0
  320. package/src/internal/fiberId.ts +267 -0
  321. package/src/internal/fiberMessage.ts +82 -0
  322. package/src/internal/fiberRefs/patch.ts +144 -0
  323. package/src/internal/fiberRefs.ts +297 -0
  324. package/src/internal/fiberRuntime.ts +3842 -0
  325. package/src/internal/fiberScope.ts +71 -0
  326. package/src/internal/fiberStatus.ts +119 -0
  327. package/src/internal/groupBy.ts +530 -0
  328. package/src/internal/hashMap/array.ts +49 -0
  329. package/src/internal/hashMap/bitwise.ts +32 -0
  330. package/src/internal/hashMap/config.ts +14 -0
  331. package/src/internal/hashMap/keySet.ts +8 -0
  332. package/src/internal/hashMap/node.ts +391 -0
  333. package/src/internal/hashMap.ts +586 -0
  334. package/src/internal/hashSet.ts +323 -0
  335. package/src/internal/keyedPool.ts +244 -0
  336. package/src/internal/layer/circular.ts +214 -0
  337. package/src/internal/layer.ts +1483 -0
  338. package/src/internal/logSpan.ts +20 -0
  339. package/src/internal/logger-circular.ts +24 -0
  340. package/src/internal/logger.ts +522 -0
  341. package/src/internal/mailbox.ts +561 -0
  342. package/src/internal/managedRuntime/circular.ts +6 -0
  343. package/src/internal/managedRuntime.ts +134 -0
  344. package/src/internal/matcher.ts +652 -0
  345. package/src/internal/metric/boundaries.ts +75 -0
  346. package/src/internal/metric/hook.ts +483 -0
  347. package/src/internal/metric/key.ts +167 -0
  348. package/src/internal/metric/keyType.ts +238 -0
  349. package/src/internal/metric/label.ts +41 -0
  350. package/src/internal/metric/pair.ts +48 -0
  351. package/src/internal/metric/polling.ts +149 -0
  352. package/src/internal/metric/registry.ts +187 -0
  353. package/src/internal/metric/state.ts +290 -0
  354. package/src/internal/metric.ts +577 -0
  355. package/src/internal/opCodes/cause.ts +35 -0
  356. package/src/internal/opCodes/channel.ts +83 -0
  357. package/src/internal/opCodes/channelChildExecutorDecision.ts +17 -0
  358. package/src/internal/opCodes/channelMergeDecision.ts +11 -0
  359. package/src/internal/opCodes/channelMergeState.ts +17 -0
  360. package/src/internal/opCodes/channelMergeStrategy.ts +11 -0
  361. package/src/internal/opCodes/channelState.ts +23 -0
  362. package/src/internal/opCodes/channelUpstreamPullRequest.ts +11 -0
  363. package/src/internal/opCodes/channelUpstreamPullStrategy.ts +11 -0
  364. package/src/internal/opCodes/config.ts +65 -0
  365. package/src/internal/opCodes/configError.ts +35 -0
  366. package/src/internal/opCodes/continuation.ts +11 -0
  367. package/src/internal/opCodes/deferred.ts +11 -0
  368. package/src/internal/opCodes/effect.ts +89 -0
  369. package/src/internal/opCodes/layer.ts +59 -0
  370. package/src/internal/opCodes/streamHaltStrategy.ts +23 -0
  371. package/src/internal/option.ts +80 -0
  372. package/src/internal/pool.ts +432 -0
  373. package/src/internal/pubsub.ts +1762 -0
  374. package/src/internal/query.ts +204 -0
  375. package/src/internal/queue.ts +766 -0
  376. package/src/internal/random.ts +161 -0
  377. package/src/internal/rateLimiter.ts +93 -0
  378. package/src/internal/rcMap.ts +285 -0
  379. package/src/internal/rcRef.ts +192 -0
  380. package/src/internal/redBlackTree/iterator.ts +200 -0
  381. package/src/internal/redBlackTree/node.ts +68 -0
  382. package/src/internal/redBlackTree.ts +1245 -0
  383. package/src/internal/redacted.ts +73 -0
  384. package/src/internal/ref.ts +171 -0
  385. package/src/internal/reloadable.ts +140 -0
  386. package/src/internal/request.ts +177 -0
  387. package/src/internal/resource.ts +76 -0
  388. package/src/internal/ringBuffer.ts +68 -0
  389. package/src/internal/runtime.ts +558 -0
  390. package/src/internal/runtimeFlags.ts +178 -0
  391. package/src/internal/runtimeFlagsPatch.ts +103 -0
  392. package/src/internal/schedule/decision.ts +47 -0
  393. package/src/internal/schedule/interval.ts +101 -0
  394. package/src/internal/schedule/intervals.ts +180 -0
  395. package/src/internal/schedule.ts +2199 -0
  396. package/src/internal/schema/errors.ts +191 -0
  397. package/src/internal/schema/schemaId.ts +106 -0
  398. package/src/internal/schema/util.ts +50 -0
  399. package/src/internal/scopedCache.ts +644 -0
  400. package/src/internal/scopedRef.ts +118 -0
  401. package/src/internal/secret.ts +89 -0
  402. package/src/internal/singleShotGen.ts +35 -0
  403. package/src/internal/sink.ts +2120 -0
  404. package/src/internal/stack.ts +10 -0
  405. package/src/internal/stm/core.ts +817 -0
  406. package/src/internal/stm/entry.ts +59 -0
  407. package/src/internal/stm/journal.ts +123 -0
  408. package/src/internal/stm/opCodes/stm.ts +71 -0
  409. package/src/internal/stm/opCodes/stmState.ts +17 -0
  410. package/src/internal/stm/opCodes/strategy.ts +17 -0
  411. package/src/internal/stm/opCodes/tExit.ts +29 -0
  412. package/src/internal/stm/opCodes/tryCommit.ts +11 -0
  413. package/src/internal/stm/stm.ts +1453 -0
  414. package/src/internal/stm/stmState.ts +136 -0
  415. package/src/internal/stm/tArray.ts +550 -0
  416. package/src/internal/stm/tDeferred.ts +81 -0
  417. package/src/internal/stm/tExit.ts +190 -0
  418. package/src/internal/stm/tMap.ts +824 -0
  419. package/src/internal/stm/tPriorityQueue.ts +267 -0
  420. package/src/internal/stm/tPubSub.ts +551 -0
  421. package/src/internal/stm/tQueue.ts +393 -0
  422. package/src/internal/stm/tRandom.ts +140 -0
  423. package/src/internal/stm/tReentrantLock.ts +352 -0
  424. package/src/internal/stm/tRef.ts +195 -0
  425. package/src/internal/stm/tSemaphore.ts +113 -0
  426. package/src/internal/stm/tSet.ts +259 -0
  427. package/src/internal/stm/tSubscriptionRef.ts +286 -0
  428. package/src/internal/stm/tryCommit.ts +34 -0
  429. package/src/internal/stm/txnId.ts +14 -0
  430. package/src/internal/stm/versioned.ts +4 -0
  431. package/src/internal/stream/debounceState.ts +57 -0
  432. package/src/internal/stream/emit.ts +123 -0
  433. package/src/internal/stream/haltStrategy.ts +94 -0
  434. package/src/internal/stream/handoff.ts +187 -0
  435. package/src/internal/stream/handoffSignal.ts +59 -0
  436. package/src/internal/stream/pull.ts +34 -0
  437. package/src/internal/stream/sinkEndReason.ts +30 -0
  438. package/src/internal/stream/zipAllState.ts +88 -0
  439. package/src/internal/stream/zipChunksState.ts +56 -0
  440. package/src/internal/stream.ts +8801 -0
  441. package/src/internal/string-utils.ts +107 -0
  442. package/src/internal/subscriptionRef.ts +138 -0
  443. package/src/internal/supervisor/patch.ts +190 -0
  444. package/src/internal/supervisor.ts +303 -0
  445. package/src/internal/synchronizedRef.ts +114 -0
  446. package/src/internal/take.ts +199 -0
  447. package/src/internal/testing/sleep.ts +27 -0
  448. package/src/internal/testing/suspendedWarningData.ts +85 -0
  449. package/src/internal/testing/warningData.ts +94 -0
  450. package/src/internal/tracer.ts +150 -0
  451. package/src/internal/trie.ts +722 -0
  452. package/src/internal/version.ts +7 -0
package/src/Order.ts ADDED
@@ -0,0 +1,373 @@
1
+ /**
2
+ * This module provides an implementation of the `Order` type class which is used to define a total ordering on some type `A`.
3
+ * An order is defined by a relation `<=`, which obeys the following laws:
4
+ *
5
+ * - either `x <= y` or `y <= x` (totality)
6
+ * - if `x <= y` and `y <= x`, then `x == y` (antisymmetry)
7
+ * - if `x <= y` and `y <= z`, then `x <= z` (transitivity)
8
+ *
9
+ * The truth table for compare is defined as follows:
10
+ *
11
+ * | `x <= y` | `x >= y` | Ordering | |
12
+ * | -------- | -------- | -------- | --------------------- |
13
+ * | `true` | `true` | `0` | corresponds to x == y |
14
+ * | `true` | `false` | `< 0` | corresponds to x < y |
15
+ * | `false` | `true` | `> 0` | corresponds to x > y |
16
+ *
17
+ * @since 2.0.0
18
+ */
19
+ import { dual } from "./Function.js"
20
+ import type { TypeLambda } from "./HKT.js"
21
+
22
+ /**
23
+ * @category type class
24
+ * @since 2.0.0
25
+ */
26
+ export interface Order<in A> {
27
+ (self: A, that: A): -1 | 0 | 1
28
+ }
29
+
30
+ /**
31
+ * @category type lambdas
32
+ * @since 2.0.0
33
+ */
34
+ export interface OrderTypeLambda extends TypeLambda {
35
+ readonly type: Order<this["Target"]>
36
+ }
37
+
38
+ /**
39
+ * @category constructors
40
+ * @since 2.0.0
41
+ */
42
+ export const make = <A>(
43
+ compare: (self: A, that: A) => -1 | 0 | 1
44
+ ): Order<A> =>
45
+ (self, that) => self === that ? 0 : compare(self, that)
46
+
47
+ /**
48
+ * @category instances
49
+ * @since 2.0.0
50
+ */
51
+ export const string: Order<string> = make((self, that) => self < that ? -1 : 1)
52
+
53
+ /**
54
+ * @category instances
55
+ * @since 2.0.0
56
+ */
57
+ export const number: Order<number> = make((self, that) => self < that ? -1 : 1)
58
+
59
+ /**
60
+ * @category instances
61
+ * @since 2.0.0
62
+ */
63
+ export const boolean: Order<boolean> = make((self, that) => self < that ? -1 : 1)
64
+
65
+ /**
66
+ * @category instances
67
+ * @since 2.0.0
68
+ */
69
+ export const bigint: Order<bigint> = make((self, that) => self < that ? -1 : 1)
70
+
71
+ /**
72
+ * @since 2.0.0
73
+ */
74
+ export const reverse = <A>(O: Order<A>): Order<A> => make((self, that) => O(that, self))
75
+
76
+ /**
77
+ * @category combining
78
+ * @since 2.0.0
79
+ */
80
+ export const combine: {
81
+ <A>(that: Order<A>): (self: Order<A>) => Order<A>
82
+ <A>(self: Order<A>, that: Order<A>): Order<A>
83
+ } = dual(2, <A>(self: Order<A>, that: Order<A>): Order<A> =>
84
+ make((a1, a2) => {
85
+ const out = self(a1, a2)
86
+ if (out !== 0) {
87
+ return out
88
+ }
89
+ return that(a1, a2)
90
+ }))
91
+
92
+ /**
93
+ * @category combining
94
+ * @since 2.0.0
95
+ */
96
+ export const combineMany: {
97
+ <A>(collection: Iterable<Order<A>>): (self: Order<A>) => Order<A>
98
+ <A>(self: Order<A>, collection: Iterable<Order<A>>): Order<A>
99
+ } = dual(2, <A>(self: Order<A>, collection: Iterable<Order<A>>): Order<A> =>
100
+ make((a1, a2) => {
101
+ let out = self(a1, a2)
102
+ if (out !== 0) {
103
+ return out
104
+ }
105
+ for (const O of collection) {
106
+ out = O(a1, a2)
107
+ if (out !== 0) {
108
+ return out
109
+ }
110
+ }
111
+ return out
112
+ }))
113
+
114
+ /**
115
+ * @since 2.0.0
116
+ */
117
+ export const empty = <A>(): Order<A> => make(() => 0)
118
+
119
+ /**
120
+ * @category combining
121
+ * @since 2.0.0
122
+ */
123
+ export const combineAll = <A>(collection: Iterable<Order<A>>): Order<A> => combineMany(empty(), collection)
124
+
125
+ /**
126
+ * @category mapping
127
+ * @since 2.0.0
128
+ */
129
+ export const mapInput: {
130
+ <B, A>(f: (b: B) => A): (self: Order<A>) => Order<B>
131
+ <A, B>(self: Order<A>, f: (b: B) => A): Order<B>
132
+ } = dual(
133
+ 2,
134
+ <A, B>(self: Order<A>, f: (b: B) => A): Order<B> => make((b1, b2) => self(f(b1), f(b2)))
135
+ )
136
+
137
+ /**
138
+ * @category instances
139
+ * @since 2.0.0
140
+ */
141
+ export const Date: Order<Date> = mapInput(number, (date) => date.getTime())
142
+
143
+ /**
144
+ * @category combining
145
+ * @since 2.0.0
146
+ */
147
+ export const product: {
148
+ <B>(that: Order<B>): <A>(self: Order<A>) => Order<readonly [A, B]> // readonly because invariant
149
+ <A, B>(self: Order<A>, that: Order<B>): Order<readonly [A, B]> // readonly because invariant
150
+ } = dual(2, <A, B>(self: Order<A>, that: Order<B>): Order<readonly [A, B]> =>
151
+ make(([xa, xb], [ya, yb]) => {
152
+ const o = self(xa, ya)
153
+ return o !== 0 ? o : that(xb, yb)
154
+ }))
155
+
156
+ /**
157
+ * @category combining
158
+ * @since 2.0.0
159
+ */
160
+ export const all = <A>(collection: Iterable<Order<A>>): Order<ReadonlyArray<A>> => {
161
+ return make((x, y) => {
162
+ const len = Math.min(x.length, y.length)
163
+ let collectionLength = 0
164
+ for (const O of collection) {
165
+ if (collectionLength >= len) {
166
+ break
167
+ }
168
+ const o = O(x[collectionLength], y[collectionLength])
169
+ if (o !== 0) {
170
+ return o
171
+ }
172
+ collectionLength++
173
+ }
174
+ return 0
175
+ })
176
+ }
177
+
178
+ /**
179
+ * @category combining
180
+ * @since 2.0.0
181
+ */
182
+ export const productMany: {
183
+ <A>(collection: Iterable<Order<A>>): (self: Order<A>) => Order<readonly [A, ...Array<A>]> // readonly because invariant
184
+ <A>(self: Order<A>, collection: Iterable<Order<A>>): Order<readonly [A, ...Array<A>]> // readonly because invariant
185
+ } = dual(2, <A>(self: Order<A>, collection: Iterable<Order<A>>): Order<readonly [A, ...Array<A>]> => {
186
+ const O = all(collection)
187
+ return make((x, y) => {
188
+ const o = self(x[0], y[0])
189
+ return o !== 0 ? o : O(x.slice(1), y.slice(1))
190
+ })
191
+ })
192
+
193
+ /**
194
+ * Similar to `Promise.all` but operates on `Order`s.
195
+ *
196
+ * ```
197
+ * [Order<A>, Order<B>, ...] -> Order<[A, B, ...]>
198
+ * ```
199
+ *
200
+ * This function creates and returns a new `Order` for a tuple of values based on the given `Order`s for each element in the tuple.
201
+ * The returned `Order` compares two tuples of the same type by applying the corresponding `Order` to each element in the tuple.
202
+ * It is useful when you need to compare two tuples of the same type and you have a specific way of comparing each element
203
+ * of the tuple.
204
+ *
205
+ * @category combinators
206
+ * @since 2.0.0
207
+ */
208
+ export const tuple = <T extends ReadonlyArray<Order<any>>>(
209
+ ...elements: T
210
+ ): Order<Readonly<{ [I in keyof T]: [T[I]] extends [Order<infer A>] ? A : never }>> => all(elements) as any
211
+
212
+ /**
213
+ * This function creates and returns a new `Order` for an array of values based on a given `Order` for the elements of the array.
214
+ * The returned `Order` compares two arrays by applying the given `Order` to each element in the arrays.
215
+ * If all elements are equal, the arrays are then compared based on their length.
216
+ * It is useful when you need to compare two arrays of the same type and you have a specific way of comparing each element of the array.
217
+ *
218
+ * @category combinators
219
+ * @since 2.0.0
220
+ */
221
+ export const array = <A>(O: Order<A>): Order<ReadonlyArray<A>> =>
222
+ make((self, that) => {
223
+ const aLen = self.length
224
+ const bLen = that.length
225
+ const len = Math.min(aLen, bLen)
226
+ for (let i = 0; i < len; i++) {
227
+ const o = O(self[i], that[i])
228
+ if (o !== 0) {
229
+ return o
230
+ }
231
+ }
232
+ return number(aLen, bLen)
233
+ })
234
+
235
+ /**
236
+ * This function creates and returns a new `Order` for a struct of values based on the given `Order`s
237
+ * for each property in the struct.
238
+ *
239
+ * @category combinators
240
+ * @since 2.0.0
241
+ */
242
+ export const struct = <R extends { readonly [x: string]: Order<any> }>(
243
+ fields: R
244
+ ): Order<{ [K in keyof R]: [R[K]] extends [Order<infer A>] ? A : never }> => {
245
+ const keys = Object.keys(fields)
246
+ return make((self, that) => {
247
+ for (const key of keys) {
248
+ const o = fields[key](self[key], that[key])
249
+ if (o !== 0) {
250
+ return o
251
+ }
252
+ }
253
+ return 0
254
+ })
255
+ }
256
+
257
+ /**
258
+ * Test whether one value is _strictly less than_ another.
259
+ *
260
+ * @since 2.0.0
261
+ */
262
+ export const lessThan = <A>(O: Order<A>): {
263
+ (that: A): (self: A) => boolean
264
+ (self: A, that: A): boolean
265
+ } => dual(2, (self: A, that: A) => O(self, that) === -1)
266
+
267
+ /**
268
+ * Test whether one value is _strictly greater than_ another.
269
+ *
270
+ * @since 2.0.0
271
+ */
272
+ export const greaterThan = <A>(O: Order<A>): {
273
+ (that: A): (self: A) => boolean
274
+ (self: A, that: A): boolean
275
+ } => dual(2, (self: A, that: A) => O(self, that) === 1)
276
+
277
+ /**
278
+ * Test whether one value is _non-strictly less than_ another.
279
+ *
280
+ * @since 2.0.0
281
+ */
282
+ export const lessThanOrEqualTo = <A>(O: Order<A>): {
283
+ (that: A): (self: A) => boolean
284
+ (self: A, that: A): boolean
285
+ } => dual(2, (self: A, that: A) => O(self, that) !== 1)
286
+
287
+ /**
288
+ * Test whether one value is _non-strictly greater than_ another.
289
+ *
290
+ * @since 2.0.0
291
+ */
292
+ export const greaterThanOrEqualTo = <A>(O: Order<A>): {
293
+ (that: A): (self: A) => boolean
294
+ (self: A, that: A): boolean
295
+ } => dual(2, (self: A, that: A) => O(self, that) !== -1)
296
+
297
+ /**
298
+ * Take the minimum of two values. If they are considered equal, the first argument is chosen.
299
+ *
300
+ * @since 2.0.0
301
+ */
302
+ export const min = <A>(O: Order<A>): {
303
+ (that: A): (self: A) => A
304
+ (self: A, that: A): A
305
+ } => dual(2, (self: A, that: A) => self === that || O(self, that) < 1 ? self : that)
306
+
307
+ /**
308
+ * Take the maximum of two values. If they are considered equal, the first argument is chosen.
309
+ *
310
+ * @since 2.0.0
311
+ */
312
+ export const max = <A>(O: Order<A>): {
313
+ (that: A): (self: A) => A
314
+ (self: A, that: A): A
315
+ } => dual(2, (self: A, that: A) => self === that || O(self, that) > -1 ? self : that)
316
+
317
+ /**
318
+ * Clamp a value between a minimum and a maximum.
319
+ *
320
+ * @example
321
+ * ```ts
322
+ * import * as assert from "node:assert"
323
+ * import { Order, Number } from "effect"
324
+ *
325
+ * const clamp = Order.clamp(Number.Order)({ minimum: 1, maximum: 5 })
326
+ *
327
+ * assert.equal(clamp(3), 3)
328
+ * assert.equal(clamp(0), 1)
329
+ * assert.equal(clamp(6), 5)
330
+ * ```
331
+ *
332
+ * @since 2.0.0
333
+ */
334
+ export const clamp = <A>(O: Order<A>): {
335
+ (options: {
336
+ minimum: A
337
+ maximum: A
338
+ }): (self: A) => A
339
+ (self: A, options: {
340
+ minimum: A
341
+ maximum: A
342
+ }): A
343
+ } =>
344
+ dual(
345
+ 2,
346
+ (self: A, options: {
347
+ minimum: A
348
+ maximum: A
349
+ }): A => min(O)(options.maximum, max(O)(options.minimum, self))
350
+ )
351
+
352
+ /**
353
+ * Test whether a value is between a minimum and a maximum (inclusive).
354
+ *
355
+ * @since 2.0.0
356
+ */
357
+ export const between = <A>(O: Order<A>): {
358
+ (options: {
359
+ minimum: A
360
+ maximum: A
361
+ }): (self: A) => boolean
362
+ (self: A, options: {
363
+ minimum: A
364
+ maximum: A
365
+ }): boolean
366
+ } =>
367
+ dual(
368
+ 2,
369
+ (self: A, options: {
370
+ minimum: A
371
+ maximum: A
372
+ }): boolean => !lessThan(O)(self, options.minimum) && !greaterThan(O)(self, options.maximum)
373
+ )
@@ -0,0 +1,111 @@
1
+ /**
2
+ * @since 2.0.0
3
+ */
4
+ import type { LazyArg } from "./Function.js"
5
+ import { dual } from "./Function.js"
6
+
7
+ /**
8
+ * @category model
9
+ * @since 2.0.0
10
+ */
11
+ export type Ordering = -1 | 0 | 1
12
+
13
+ /**
14
+ * Inverts the ordering of the input `Ordering`.
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * import * as assert from "node:assert"
19
+ * import { reverse } from "effect/Ordering"
20
+ *
21
+ * assert.deepStrictEqual(reverse(1), -1)
22
+ * assert.deepStrictEqual(reverse(-1), 1)
23
+ * assert.deepStrictEqual(reverse(0), 0)
24
+ * ```
25
+ *
26
+ * @since 2.0.0
27
+ */
28
+ export const reverse = (o: Ordering): Ordering => (o === -1 ? 1 : o === 1 ? -1 : 0)
29
+
30
+ /**
31
+ * Depending on the `Ordering` parameter given to it, returns a value produced by one of the 3 functions provided as parameters.
32
+ *
33
+ * @example
34
+ * ```ts
35
+ * import * as assert from "node:assert"
36
+ * import { Ordering } from "effect"
37
+ * import { constant } from "effect/Function"
38
+ *
39
+ * const toMessage = Ordering.match({
40
+ * onLessThan: constant('less than'),
41
+ * onEqual: constant('equal'),
42
+ * onGreaterThan: constant('greater than')
43
+ * })
44
+ *
45
+ * assert.deepStrictEqual(toMessage(-1), "less than")
46
+ * assert.deepStrictEqual(toMessage(0), "equal")
47
+ * assert.deepStrictEqual(toMessage(1), "greater than")
48
+ * ```
49
+ *
50
+ * @category pattern matching
51
+ * @since 2.0.0
52
+ */
53
+ export const match: {
54
+ <A, B, C = B>(
55
+ options: {
56
+ readonly onLessThan: LazyArg<A>
57
+ readonly onEqual: LazyArg<B>
58
+ readonly onGreaterThan: LazyArg<C>
59
+ }
60
+ ): (self: Ordering) => A | B | C
61
+ <A, B, C = B>(
62
+ o: Ordering,
63
+ options: {
64
+ readonly onLessThan: LazyArg<A>
65
+ readonly onEqual: LazyArg<B>
66
+ readonly onGreaterThan: LazyArg<C>
67
+ }
68
+ ): A | B | C
69
+ } = dual(2, <A, B, C = B>(
70
+ self: Ordering,
71
+ { onEqual, onGreaterThan, onLessThan }: {
72
+ readonly onLessThan: LazyArg<A>
73
+ readonly onEqual: LazyArg<B>
74
+ readonly onGreaterThan: LazyArg<C>
75
+ }
76
+ ): A | B | C => self === -1 ? onLessThan() : self === 0 ? onEqual() : onGreaterThan())
77
+
78
+ /**
79
+ * @category combining
80
+ * @since 2.0.0
81
+ */
82
+ export const combine: {
83
+ (that: Ordering): (self: Ordering) => Ordering
84
+ (self: Ordering, that: Ordering): Ordering
85
+ } = dual(2, (self: Ordering, that: Ordering): Ordering => self !== 0 ? self : that)
86
+
87
+ /**
88
+ * @category combining
89
+ * @since 2.0.0
90
+ */
91
+ export const combineMany: {
92
+ (collection: Iterable<Ordering>): (self: Ordering) => Ordering
93
+ (self: Ordering, collection: Iterable<Ordering>): Ordering
94
+ } = dual(2, (self: Ordering, collection: Iterable<Ordering>): Ordering => {
95
+ let ordering = self
96
+ if (ordering !== 0) {
97
+ return ordering
98
+ }
99
+ for (ordering of collection) {
100
+ if (ordering !== 0) {
101
+ return ordering
102
+ }
103
+ }
104
+ return ordering
105
+ })
106
+
107
+ /**
108
+ * @category combining
109
+ * @since 2.0.0
110
+ */
111
+ export const combineAll = (collection: Iterable<Ordering>): Ordering => combineMany(0, collection)