@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
@@ -0,0 +1,195 @@
1
+ /**
2
+ * This module provides encoding & decoding functionality for:
3
+ *
4
+ * - base64 (RFC4648)
5
+ * - base64 (URL)
6
+ * - hex
7
+ *
8
+ * @since 2.0.0
9
+ */
10
+ import * as Either from "./Either.js"
11
+ import * as Base64 from "./internal/encoding/base64.js"
12
+ import * as Base64Url from "./internal/encoding/base64Url.js"
13
+ import * as Common from "./internal/encoding/common.js"
14
+ import * as Hex from "./internal/encoding/hex.js"
15
+
16
+ /**
17
+ * Encodes the given value into a base64 (RFC4648) `string`.
18
+ *
19
+ * @category encoding
20
+ * @since 2.0.0
21
+ */
22
+ export const encodeBase64: (input: Uint8Array | string) => string = (input) =>
23
+ typeof input === "string" ? Base64.encode(Common.encoder.encode(input)) : Base64.encode(input)
24
+
25
+ /**
26
+ * Decodes a base64 (RFC4648) encoded `string` into a `Uint8Array`.
27
+ *
28
+ * @category decoding
29
+ * @since 2.0.0
30
+ */
31
+ export const decodeBase64 = (str: string): Either.Either<Uint8Array, DecodeException> => Base64.decode(str)
32
+
33
+ /**
34
+ * Decodes a base64 (RFC4648) encoded `string` into a UTF-8 `string`.
35
+ *
36
+ * @category decoding
37
+ * @since 2.0.0
38
+ */
39
+ export const decodeBase64String = (str: string) => Either.map(decodeBase64(str), (_) => Common.decoder.decode(_))
40
+
41
+ /**
42
+ * Encodes the given value into a base64 (URL) `string`.
43
+ *
44
+ * @category encoding
45
+ * @since 2.0.0
46
+ */
47
+ export const encodeBase64Url: (input: Uint8Array | string) => string = (input) =>
48
+ typeof input === "string" ? Base64Url.encode(Common.encoder.encode(input)) : Base64Url.encode(input)
49
+
50
+ /**
51
+ * Decodes a base64 (URL) encoded `string` into a `Uint8Array`.
52
+ *
53
+ * @category decoding
54
+ * @since 2.0.0
55
+ */
56
+ export const decodeBase64Url = (str: string): Either.Either<Uint8Array, DecodeException> => Base64Url.decode(str)
57
+
58
+ /**
59
+ * Decodes a base64 (URL) encoded `string` into a UTF-8 `string`.
60
+ *
61
+ * @category decoding
62
+ * @since 2.0.0
63
+ */
64
+ export const decodeBase64UrlString = (str: string) => Either.map(decodeBase64Url(str), (_) => Common.decoder.decode(_))
65
+
66
+ /**
67
+ * Encodes the given value into a hex `string`.
68
+ *
69
+ * @category encoding
70
+ * @since 2.0.0
71
+ */
72
+ export const encodeHex: (input: Uint8Array | string) => string = (input) =>
73
+ typeof input === "string" ? Hex.encode(Common.encoder.encode(input)) : Hex.encode(input)
74
+
75
+ /**
76
+ * Decodes a hex encoded `string` into a `Uint8Array`.
77
+ *
78
+ * @category decoding
79
+ * @since 2.0.0
80
+ */
81
+ export const decodeHex = (str: string): Either.Either<Uint8Array, DecodeException> => Hex.decode(str)
82
+
83
+ /**
84
+ * Decodes a hex encoded `string` into a UTF-8 `string`.
85
+ *
86
+ * @category decoding
87
+ * @since 2.0.0
88
+ */
89
+ export const decodeHexString = (str: string) => Either.map(decodeHex(str), (_) => Common.decoder.decode(_))
90
+
91
+ /**
92
+ * Encodes a UTF-8 `string` into a URI component `string`.
93
+ *
94
+ * @category encoding
95
+ * @since 3.12.0
96
+ */
97
+ export const encodeUriComponent = (str: string): Either.Either<string, EncodeException> =>
98
+ Either.try({
99
+ try: () => encodeURIComponent(str),
100
+ catch: (e) => EncodeException(str, e instanceof Error ? e.message : "Invalid input")
101
+ })
102
+
103
+ /**
104
+ * Decodes a URI component `string` into a UTF-8 `string`.
105
+ *
106
+ * @category decoding
107
+ * @since 3.12.0
108
+ */
109
+ export const decodeUriComponent = (str: string): Either.Either<string, DecodeException> =>
110
+ Either.try({
111
+ try: () => decodeURIComponent(str),
112
+ catch: (e) => DecodeException(str, e instanceof Error ? e.message : "Invalid input")
113
+ })
114
+
115
+ /**
116
+ * @since 2.0.0
117
+ * @category symbols
118
+ */
119
+ export const DecodeExceptionTypeId: unique symbol = Common.DecodeExceptionTypeId
120
+
121
+ /**
122
+ * @since 2.0.0
123
+ * @category symbols
124
+ */
125
+ export type DecodeExceptionTypeId = typeof DecodeExceptionTypeId
126
+
127
+ /**
128
+ * Represents a checked exception which occurs when decoding fails.
129
+ *
130
+ * @since 2.0.0
131
+ * @category models
132
+ */
133
+ export interface DecodeException {
134
+ readonly _tag: "DecodeException"
135
+ readonly [DecodeExceptionTypeId]: DecodeExceptionTypeId
136
+ readonly input: string
137
+ readonly message?: string
138
+ }
139
+
140
+ /**
141
+ * Creates a checked exception which occurs when decoding fails.
142
+ *
143
+ * @since 2.0.0
144
+ * @category errors
145
+ */
146
+ export const DecodeException: (input: string, message?: string) => DecodeException = Common.DecodeException
147
+
148
+ /**
149
+ * Returns `true` if the specified value is an `DecodeException`, `false` otherwise.
150
+ *
151
+ * @since 2.0.0
152
+ * @category refinements
153
+ */
154
+ export const isDecodeException: (u: unknown) => u is DecodeException = Common.isDecodeException
155
+
156
+ /**
157
+ * @since 3.12.0
158
+ * @category symbols
159
+ */
160
+ export const EncodeExceptionTypeId: unique symbol = Common.EncodeExceptionTypeId
161
+
162
+ /**
163
+ * @since 3.12.0
164
+ * @category symbols
165
+ */
166
+ export type EncodeExceptionTypeId = typeof EncodeExceptionTypeId
167
+
168
+ /**
169
+ * Represents a checked exception which occurs when encoding fails.
170
+ *
171
+ * @since 3.12.0
172
+ * @category models
173
+ */
174
+ export interface EncodeException {
175
+ readonly _tag: "EncodeException"
176
+ readonly [EncodeExceptionTypeId]: EncodeExceptionTypeId
177
+ readonly input: string
178
+ readonly message?: string
179
+ }
180
+
181
+ /**
182
+ * Creates a checked exception which occurs when encoding fails.
183
+ *
184
+ * @since 3.12.0
185
+ * @category errors
186
+ */
187
+ export const EncodeException: (input: string, message?: string) => EncodeException = Common.EncodeException
188
+
189
+ /**
190
+ * Returns `true` if the specified value is an `EncodeException`, `false` otherwise.
191
+ *
192
+ * @since 3.12.0
193
+ * @category refinements
194
+ */
195
+ export const isEncodeException: (u: unknown) => u is EncodeException = Common.isEncodeException
package/src/Equal.ts ADDED
@@ -0,0 +1,98 @@
1
+ /**
2
+ * @since 2.0.0
3
+ */
4
+ import type { Equivalence } from "./Equivalence.js"
5
+ import * as Hash from "./Hash.js"
6
+ import { hasProperty } from "./Predicate.js"
7
+ import { structuralRegionState } from "./Utils.js"
8
+
9
+ /**
10
+ * @since 2.0.0
11
+ * @category symbols
12
+ */
13
+ export const symbol: unique symbol = Symbol.for("effect/Equal")
14
+
15
+ /**
16
+ * @since 2.0.0
17
+ * @category models
18
+ */
19
+ export interface Equal extends Hash.Hash {
20
+ [symbol](that: Equal): boolean
21
+ }
22
+
23
+ /**
24
+ * @since 2.0.0
25
+ * @category equality
26
+ */
27
+ export function equals<B>(that: B): <A>(self: A) => boolean
28
+ export function equals<A, B>(self: A, that: B): boolean
29
+ export function equals(): any {
30
+ if (arguments.length === 1) {
31
+ return (self: unknown) => compareBoth(self, arguments[0])
32
+ }
33
+ return compareBoth(arguments[0], arguments[1])
34
+ }
35
+
36
+ function compareBoth(self: unknown, that: unknown): boolean {
37
+ if (self === that) {
38
+ return true
39
+ }
40
+ const selfType = typeof self
41
+ if (selfType !== typeof that) {
42
+ return false
43
+ }
44
+ if (selfType === "object" || selfType === "function") {
45
+ if (self !== null && that !== null) {
46
+ if (isEqual(self) && isEqual(that)) {
47
+ if (Hash.hash(self) === Hash.hash(that) && self[symbol](that)) {
48
+ return true
49
+ } else {
50
+ return structuralRegionState.enabled && structuralRegionState.tester
51
+ ? structuralRegionState.tester(self, that)
52
+ : false
53
+ }
54
+ } else if (self instanceof Date && that instanceof Date) {
55
+ const t1 = self.getTime()
56
+ const t2 = that.getTime()
57
+ return t1 === t2 || (Number.isNaN(t1) && Number.isNaN(t2))
58
+ } else if (self instanceof URL && that instanceof URL) {
59
+ return self.href === that.href
60
+ }
61
+ }
62
+ if (structuralRegionState.enabled) {
63
+ if (Array.isArray(self) && Array.isArray(that)) {
64
+ return self.length === that.length && self.every((v, i) => compareBoth(v, that[i]))
65
+ }
66
+ if (Object.getPrototypeOf(self) === Object.prototype && Object.getPrototypeOf(self) === Object.prototype) {
67
+ const keysSelf = Object.keys(self as any)
68
+ const keysThat = Object.keys(that as any)
69
+ if (keysSelf.length === keysThat.length) {
70
+ for (const key of keysSelf) {
71
+ // @ts-expect-error
72
+ if (!(key in that && compareBoth(self[key], that[key]))) {
73
+ return structuralRegionState.tester ? structuralRegionState.tester(self, that) : false
74
+ }
75
+ }
76
+ return true
77
+ }
78
+ }
79
+ return structuralRegionState.tester ? structuralRegionState.tester(self, that) : false
80
+ }
81
+ }
82
+
83
+ return structuralRegionState.enabled && structuralRegionState.tester
84
+ ? structuralRegionState.tester(self, that)
85
+ : false
86
+ }
87
+
88
+ /**
89
+ * @since 2.0.0
90
+ * @category guards
91
+ */
92
+ export const isEqual = (u: unknown): u is Equal => hasProperty(u, symbol)
93
+
94
+ /**
95
+ * @since 2.0.0
96
+ * @category instances
97
+ */
98
+ export const equivalence: <A>() => Equivalence<A> = () => equals
@@ -0,0 +1,235 @@
1
+ /**
2
+ * This module provides an implementation of the `Equivalence` type class, which defines a binary relation
3
+ * that is reflexive, symmetric, and transitive. In other words, it defines a notion of equivalence between values of a certain type.
4
+ * These properties are also known in mathematics as an "equivalence relation".
5
+ *
6
+ * @since 2.0.0
7
+ */
8
+ import { dual } from "./Function.js"
9
+ import type { TypeLambda } from "./HKT.js"
10
+
11
+ /**
12
+ * @category type class
13
+ * @since 2.0.0
14
+ */
15
+ export interface Equivalence<in A> {
16
+ (self: A, that: A): boolean
17
+ }
18
+
19
+ /**
20
+ * @category type lambdas
21
+ * @since 2.0.0
22
+ */
23
+ export interface EquivalenceTypeLambda extends TypeLambda {
24
+ readonly type: Equivalence<this["Target"]>
25
+ }
26
+
27
+ /**
28
+ * @category constructors
29
+ * @since 2.0.0
30
+ */
31
+ export const make = <A>(isEquivalent: (self: A, that: A) => boolean): Equivalence<A> => (self: A, that: A): boolean =>
32
+ self === that || isEquivalent(self, that)
33
+
34
+ const isStrictEquivalent = (x: unknown, y: unknown) => x === y
35
+
36
+ /**
37
+ * Return an `Equivalence` that uses strict equality (===) to compare values.
38
+ *
39
+ * @since 2.0.0
40
+ * @category constructors
41
+ */
42
+ export const strict: <A>() => Equivalence<A> = () => isStrictEquivalent
43
+
44
+ /**
45
+ * @category instances
46
+ * @since 2.0.0
47
+ */
48
+ export const string: Equivalence<string> = strict()
49
+
50
+ /**
51
+ * @category instances
52
+ * @since 2.0.0
53
+ */
54
+ export const number: Equivalence<number> = strict()
55
+
56
+ /**
57
+ * @category instances
58
+ * @since 2.0.0
59
+ */
60
+ export const boolean: Equivalence<boolean> = strict()
61
+
62
+ /**
63
+ * @category instances
64
+ * @since 2.0.0
65
+ */
66
+ export const bigint: Equivalence<bigint> = strict()
67
+
68
+ /**
69
+ * @category instances
70
+ * @since 2.0.0
71
+ */
72
+ export const symbol: Equivalence<symbol> = strict()
73
+
74
+ /**
75
+ * @category combining
76
+ * @since 2.0.0
77
+ */
78
+ export const combine: {
79
+ <A>(that: Equivalence<A>): (self: Equivalence<A>) => Equivalence<A>
80
+ <A>(self: Equivalence<A>, that: Equivalence<A>): Equivalence<A>
81
+ } = dual(2, <A>(self: Equivalence<A>, that: Equivalence<A>): Equivalence<A> => make((x, y) => self(x, y) && that(x, y)))
82
+
83
+ /**
84
+ * @category combining
85
+ * @since 2.0.0
86
+ */
87
+ export const combineMany: {
88
+ <A>(collection: Iterable<Equivalence<A>>): (self: Equivalence<A>) => Equivalence<A>
89
+ <A>(self: Equivalence<A>, collection: Iterable<Equivalence<A>>): Equivalence<A>
90
+ } = dual(2, <A>(self: Equivalence<A>, collection: Iterable<Equivalence<A>>): Equivalence<A> =>
91
+ make((x, y) => {
92
+ if (!self(x, y)) {
93
+ return false
94
+ }
95
+ for (const equivalence of collection) {
96
+ if (!equivalence(x, y)) {
97
+ return false
98
+ }
99
+ }
100
+ return true
101
+ }))
102
+
103
+ const isAlwaysEquivalent: Equivalence<unknown> = (_x, _y) => true
104
+
105
+ /**
106
+ * @category combining
107
+ * @since 2.0.0
108
+ */
109
+ export const combineAll = <A>(collection: Iterable<Equivalence<A>>): Equivalence<A> =>
110
+ combineMany(isAlwaysEquivalent, collection)
111
+
112
+ /**
113
+ * @category mapping
114
+ * @since 2.0.0
115
+ */
116
+ export const mapInput: {
117
+ <B, A>(f: (b: B) => A): (self: Equivalence<A>) => Equivalence<B>
118
+ <A, B>(self: Equivalence<A>, f: (b: B) => A): Equivalence<B>
119
+ } = dual(
120
+ 2,
121
+ <A, B>(self: Equivalence<A>, f: (b: B) => A): Equivalence<B> => make((x, y) => self(f(x), f(y)))
122
+ )
123
+
124
+ /**
125
+ * @category instances
126
+ * @since 2.0.0
127
+ */
128
+ export const Date: Equivalence<Date> = mapInput(number, (date) => date.getTime())
129
+
130
+ /**
131
+ * @category combining
132
+ * @since 2.0.0
133
+ */
134
+ export const product: {
135
+ <B>(that: Equivalence<B>): <A>(self: Equivalence<A>) => Equivalence<readonly [A, B]> // readonly because invariant
136
+ <A, B>(self: Equivalence<A>, that: Equivalence<B>): Equivalence<readonly [A, B]> // readonly because invariant
137
+ } = dual(
138
+ 2,
139
+ <A, B>(self: Equivalence<A>, that: Equivalence<B>): Equivalence<readonly [A, B]> =>
140
+ make(([xa, xb], [ya, yb]) => self(xa, ya) && that(xb, yb))
141
+ )
142
+
143
+ /**
144
+ * @category combining
145
+ * @since 2.0.0
146
+ */
147
+ export const all = <A>(collection: Iterable<Equivalence<A>>): Equivalence<ReadonlyArray<A>> => {
148
+ return make((x, y) => {
149
+ const len = Math.min(x.length, y.length)
150
+
151
+ let collectionLength = 0
152
+ for (const equivalence of collection) {
153
+ if (collectionLength >= len) {
154
+ break
155
+ }
156
+ if (!equivalence(x[collectionLength], y[collectionLength])) {
157
+ return false
158
+ }
159
+ collectionLength++
160
+ }
161
+ return true
162
+ })
163
+ }
164
+
165
+ /**
166
+ * @category combining
167
+ * @since 2.0.0
168
+ */
169
+ export const productMany = <A>(
170
+ self: Equivalence<A>,
171
+ collection: Iterable<Equivalence<A>>
172
+ ): Equivalence<readonly [A, ...Array<A>]> /* readonly because invariant */ => {
173
+ const equivalence = all(collection)
174
+ return make((x, y) => !self(x[0], y[0]) ? false : equivalence(x.slice(1), y.slice(1)))
175
+ }
176
+
177
+ /**
178
+ * Similar to `Promise.all` but operates on `Equivalence`s.
179
+ *
180
+ * ```ts skip-type-checking
181
+ * [Equivalence<A>, Equivalence<B>, ...] -> Equivalence<[A, B, ...]>
182
+ * ```
183
+ *
184
+ * Given a tuple of `Equivalence`s returns a new `Equivalence` that compares values of a tuple
185
+ * by applying each `Equivalence` to the corresponding element of the tuple.
186
+ *
187
+ * @category combinators
188
+ * @since 2.0.0
189
+ */
190
+ export const tuple = <T extends ReadonlyArray<Equivalence<any>>>(
191
+ ...elements: T
192
+ ): Equivalence<Readonly<{ [I in keyof T]: [T[I]] extends [Equivalence<infer A>] ? A : never }>> => all(elements) as any
193
+
194
+ /**
195
+ * Creates a new `Equivalence` for an array of values based on a given `Equivalence` for the elements of the array.
196
+ *
197
+ * @category combinators
198
+ * @since 2.0.0
199
+ */
200
+ export const array = <A>(item: Equivalence<A>): Equivalence<ReadonlyArray<A>> =>
201
+ make((self, that) => {
202
+ if (self.length !== that.length) {
203
+ return false
204
+ }
205
+
206
+ for (let i = 0; i < self.length; i++) {
207
+ const isEq = item(self[i], that[i])
208
+ if (!isEq) {
209
+ return false
210
+ }
211
+ }
212
+
213
+ return true
214
+ })
215
+
216
+ /**
217
+ * Given a struct of `Equivalence`s returns a new `Equivalence` that compares values of a struct
218
+ * by applying each `Equivalence` to the corresponding property of the struct.
219
+ *
220
+ * @category combinators
221
+ * @since 2.0.0
222
+ */
223
+ export const struct = <R extends Record<string, Equivalence<any>>>(
224
+ fields: R
225
+ ): Equivalence<{ readonly [K in keyof R]: [R[K]] extends [Equivalence<infer A>] ? A : never }> => {
226
+ const keys = Object.keys(fields)
227
+ return make((self, that) => {
228
+ for (const key of keys) {
229
+ if (!fields[key](self[key], that[key])) {
230
+ return false
231
+ }
232
+ }
233
+ return true
234
+ })
235
+ }