@depup/effect 3.20.0-depup.0

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 (2716) hide show
  1. package/.index/package.json +6 -0
  2. package/Arbitrary/package.json +6 -0
  3. package/Array/package.json +6 -0
  4. package/BigDecimal/package.json +6 -0
  5. package/BigInt/package.json +6 -0
  6. package/Boolean/package.json +6 -0
  7. package/Brand/package.json +6 -0
  8. package/Cache/package.json +6 -0
  9. package/Cause/package.json +6 -0
  10. package/Channel/package.json +6 -0
  11. package/ChildExecutorDecision/package.json +6 -0
  12. package/Chunk/package.json +6 -0
  13. package/Clock/package.json +6 -0
  14. package/Config/package.json +6 -0
  15. package/ConfigError/package.json +6 -0
  16. package/ConfigProvider/package.json +6 -0
  17. package/ConfigProviderPathPatch/package.json +6 -0
  18. package/Console/package.json +6 -0
  19. package/Context/package.json +6 -0
  20. package/Cron/package.json +6 -0
  21. package/Data/package.json +6 -0
  22. package/DateTime/package.json +6 -0
  23. package/DefaultServices/package.json +6 -0
  24. package/Deferred/package.json +6 -0
  25. package/Differ/package.json +6 -0
  26. package/Duration/package.json +6 -0
  27. package/Effect/package.json +6 -0
  28. package/Effectable/package.json +6 -0
  29. package/Either/package.json +6 -0
  30. package/Encoding/package.json +6 -0
  31. package/Equal/package.json +6 -0
  32. package/Equivalence/package.json +6 -0
  33. package/ExecutionPlan/package.json +6 -0
  34. package/ExecutionStrategy/package.json +6 -0
  35. package/Exit/package.json +6 -0
  36. package/FastCheck/package.json +6 -0
  37. package/Fiber/package.json +6 -0
  38. package/FiberHandle/package.json +6 -0
  39. package/FiberId/package.json +6 -0
  40. package/FiberMap/package.json +6 -0
  41. package/FiberRef/package.json +6 -0
  42. package/FiberRefs/package.json +6 -0
  43. package/FiberRefsPatch/package.json +6 -0
  44. package/FiberSet/package.json +6 -0
  45. package/FiberStatus/package.json +6 -0
  46. package/Function/package.json +6 -0
  47. package/GlobalValue/package.json +6 -0
  48. package/Graph/package.json +6 -0
  49. package/GroupBy/package.json +6 -0
  50. package/HKT/package.json +6 -0
  51. package/Hash/package.json +6 -0
  52. package/HashMap/package.json +6 -0
  53. package/HashRing/package.json +6 -0
  54. package/HashSet/package.json +6 -0
  55. package/Inspectable/package.json +6 -0
  56. package/Iterable/package.json +6 -0
  57. package/JSONSchema/package.json +6 -0
  58. package/KeyedPool/package.json +6 -0
  59. package/LICENSE +21 -0
  60. package/Layer/package.json +6 -0
  61. package/LayerMap/package.json +6 -0
  62. package/List/package.json +6 -0
  63. package/LogLevel/package.json +6 -0
  64. package/LogSpan/package.json +6 -0
  65. package/Logger/package.json +6 -0
  66. package/Mailbox/package.json +6 -0
  67. package/ManagedRuntime/package.json +6 -0
  68. package/Match/package.json +6 -0
  69. package/MergeDecision/package.json +6 -0
  70. package/MergeState/package.json +6 -0
  71. package/MergeStrategy/package.json +6 -0
  72. package/Metric/package.json +6 -0
  73. package/MetricBoundaries/package.json +6 -0
  74. package/MetricHook/package.json +6 -0
  75. package/MetricKey/package.json +6 -0
  76. package/MetricKeyType/package.json +6 -0
  77. package/MetricLabel/package.json +6 -0
  78. package/MetricPair/package.json +6 -0
  79. package/MetricPolling/package.json +6 -0
  80. package/MetricRegistry/package.json +6 -0
  81. package/MetricState/package.json +6 -0
  82. package/Micro/package.json +6 -0
  83. package/ModuleVersion/package.json +6 -0
  84. package/MutableHashMap/package.json +6 -0
  85. package/MutableHashSet/package.json +6 -0
  86. package/MutableList/package.json +6 -0
  87. package/MutableQueue/package.json +6 -0
  88. package/MutableRef/package.json +6 -0
  89. package/NonEmptyIterable/package.json +6 -0
  90. package/Number/package.json +6 -0
  91. package/Option/package.json +6 -0
  92. package/Order/package.json +6 -0
  93. package/Ordering/package.json +6 -0
  94. package/ParseResult/package.json +6 -0
  95. package/PartitionedSemaphore/package.json +6 -0
  96. package/Pipeable/package.json +6 -0
  97. package/Pool/package.json +6 -0
  98. package/Predicate/package.json +6 -0
  99. package/Pretty/package.json +6 -0
  100. package/PrimaryKey/package.json +6 -0
  101. package/PubSub/package.json +6 -0
  102. package/Queue/package.json +6 -0
  103. package/README.md +32 -0
  104. package/Random/package.json +6 -0
  105. package/RateLimiter/package.json +6 -0
  106. package/RcMap/package.json +6 -0
  107. package/RcRef/package.json +6 -0
  108. package/Readable/package.json +6 -0
  109. package/Record/package.json +6 -0
  110. package/RedBlackTree/package.json +6 -0
  111. package/Redacted/package.json +6 -0
  112. package/Ref/package.json +6 -0
  113. package/RegExp/package.json +6 -0
  114. package/Reloadable/package.json +6 -0
  115. package/Request/package.json +6 -0
  116. package/RequestBlock/package.json +6 -0
  117. package/RequestResolver/package.json +6 -0
  118. package/Resource/package.json +6 -0
  119. package/Runtime/package.json +6 -0
  120. package/RuntimeFlags/package.json +6 -0
  121. package/RuntimeFlagsPatch/package.json +6 -0
  122. package/STM/package.json +6 -0
  123. package/Schedule/package.json +6 -0
  124. package/ScheduleDecision/package.json +6 -0
  125. package/ScheduleInterval/package.json +6 -0
  126. package/ScheduleIntervals/package.json +6 -0
  127. package/Scheduler/package.json +6 -0
  128. package/Schema/package.json +6 -0
  129. package/SchemaAST/package.json +6 -0
  130. package/Scope/package.json +6 -0
  131. package/ScopedCache/package.json +6 -0
  132. package/ScopedRef/package.json +6 -0
  133. package/Secret/package.json +6 -0
  134. package/SingleProducerAsyncInput/package.json +6 -0
  135. package/Sink/package.json +6 -0
  136. package/SortedMap/package.json +6 -0
  137. package/SortedSet/package.json +6 -0
  138. package/Stream/package.json +6 -0
  139. package/StreamEmit/package.json +6 -0
  140. package/StreamHaltStrategy/package.json +6 -0
  141. package/Streamable/package.json +6 -0
  142. package/String/package.json +6 -0
  143. package/Struct/package.json +6 -0
  144. package/Subscribable/package.json +6 -0
  145. package/SubscriptionRef/package.json +6 -0
  146. package/Supervisor/package.json +6 -0
  147. package/Symbol/package.json +6 -0
  148. package/SynchronizedRef/package.json +6 -0
  149. package/TArray/package.json +6 -0
  150. package/TDeferred/package.json +6 -0
  151. package/TMap/package.json +6 -0
  152. package/TPriorityQueue/package.json +6 -0
  153. package/TPubSub/package.json +6 -0
  154. package/TQueue/package.json +6 -0
  155. package/TRandom/package.json +6 -0
  156. package/TReentrantLock/package.json +6 -0
  157. package/TRef/package.json +6 -0
  158. package/TSemaphore/package.json +6 -0
  159. package/TSet/package.json +6 -0
  160. package/TSubscriptionRef/package.json +6 -0
  161. package/Take/package.json +6 -0
  162. package/TestAnnotation/package.json +6 -0
  163. package/TestAnnotationMap/package.json +6 -0
  164. package/TestAnnotations/package.json +6 -0
  165. package/TestClock/package.json +6 -0
  166. package/TestConfig/package.json +6 -0
  167. package/TestContext/package.json +6 -0
  168. package/TestLive/package.json +6 -0
  169. package/TestServices/package.json +6 -0
  170. package/TestSized/package.json +6 -0
  171. package/Tracer/package.json +6 -0
  172. package/Trie/package.json +6 -0
  173. package/Tuple/package.json +6 -0
  174. package/Types/package.json +6 -0
  175. package/Unify/package.json +6 -0
  176. package/UpstreamPullRequest/package.json +6 -0
  177. package/UpstreamPullStrategy/package.json +6 -0
  178. package/Utils/package.json +6 -0
  179. package/changes.json +14 -0
  180. package/dist/cjs/Arbitrary.js +813 -0
  181. package/dist/cjs/Arbitrary.js.map +1 -0
  182. package/dist/cjs/Array.js +2695 -0
  183. package/dist/cjs/Array.js.map +1 -0
  184. package/dist/cjs/BigDecimal.js +1116 -0
  185. package/dist/cjs/BigDecimal.js.map +1 -0
  186. package/dist/cjs/BigInt.js +567 -0
  187. package/dist/cjs/BigInt.js.map +1 -0
  188. package/dist/cjs/Boolean.js +251 -0
  189. package/dist/cjs/Boolean.js.map +1 -0
  190. package/dist/cjs/Brand.js +175 -0
  191. package/dist/cjs/Brand.js.map +1 -0
  192. package/dist/cjs/Cache.js +50 -0
  193. package/dist/cjs/Cache.js.map +1 -0
  194. package/dist/cjs/Cause.js +1011 -0
  195. package/dist/cjs/Cause.js.map +1 -0
  196. package/dist/cjs/Channel.js +889 -0
  197. package/dist/cjs/Channel.js.map +1 -0
  198. package/dist/cjs/ChildExecutorDecision.js +72 -0
  199. package/dist/cjs/ChildExecutorDecision.js.map +1 -0
  200. package/dist/cjs/Chunk.js +1114 -0
  201. package/dist/cjs/Chunk.js.map +1 -0
  202. package/dist/cjs/Clock.js +45 -0
  203. package/dist/cjs/Clock.js.map +1 -0
  204. package/dist/cjs/Config.js +328 -0
  205. package/dist/cjs/Config.js.map +1 -0
  206. package/dist/cjs/ConfigError.js +114 -0
  207. package/dist/cjs/ConfigError.js.map +1 -0
  208. package/dist/cjs/ConfigProvider.js +173 -0
  209. package/dist/cjs/ConfigProvider.js.map +1 -0
  210. package/dist/cjs/ConfigProviderPathPatch.js +38 -0
  211. package/dist/cjs/ConfigProviderPathPatch.js.map +1 -0
  212. package/dist/cjs/Console.js +125 -0
  213. package/dist/cjs/Console.js.map +1 -0
  214. package/dist/cjs/Context.js +367 -0
  215. package/dist/cjs/Context.js.map +1 -0
  216. package/dist/cjs/Cron.js +583 -0
  217. package/dist/cjs/Cron.js.map +1 -0
  218. package/dist/cjs/Data.js +291 -0
  219. package/dist/cjs/Data.js.map +1 -0
  220. package/dist/cjs/DateTime.js +1084 -0
  221. package/dist/cjs/DateTime.js.map +1 -0
  222. package/dist/cjs/DefaultServices.js +19 -0
  223. package/dist/cjs/DefaultServices.js.map +1 -0
  224. package/dist/cjs/Deferred.js +167 -0
  225. package/dist/cjs/Deferred.js.map +1 -0
  226. package/dist/cjs/Differ.js +140 -0
  227. package/dist/cjs/Differ.js.map +1 -0
  228. package/dist/cjs/Duration.js +737 -0
  229. package/dist/cjs/Duration.js.map +1 -0
  230. package/dist/cjs/Effect.js +10717 -0
  231. package/dist/cjs/Effect.js.map +1 -0
  232. package/dist/cjs/Effectable.js +58 -0
  233. package/dist/cjs/Effectable.js.map +1 -0
  234. package/dist/cjs/Either.js +654 -0
  235. package/dist/cjs/Either.js.map +1 -0
  236. package/dist/cjs/Encoding.js +155 -0
  237. package/dist/cjs/Encoding.js.map +1 -0
  238. package/dist/cjs/Equal.js +81 -0
  239. package/dist/cjs/Equal.js.map +1 -0
  240. package/dist/cjs/Equivalence.js +181 -0
  241. package/dist/cjs/Equivalence.js.map +1 -0
  242. package/dist/cjs/ExecutionPlan.js +108 -0
  243. package/dist/cjs/ExecutionPlan.js.map +1 -0
  244. package/dist/cjs/ExecutionStrategy.js +62 -0
  245. package/dist/cjs/ExecutionStrategy.js.map +1 -0
  246. package/dist/cjs/Exit.js +256 -0
  247. package/dist/cjs/Exit.js.map +1 -0
  248. package/dist/cjs/FastCheck.js +17 -0
  249. package/dist/cjs/FastCheck.js.map +1 -0
  250. package/dist/cjs/Fiber.js +340 -0
  251. package/dist/cjs/Fiber.js.map +1 -0
  252. package/dist/cjs/FiberHandle.js +335 -0
  253. package/dist/cjs/FiberHandle.js.map +1 -0
  254. package/dist/cjs/FiberId.js +122 -0
  255. package/dist/cjs/FiberId.js.map +1 -0
  256. package/dist/cjs/FiberMap.js +374 -0
  257. package/dist/cjs/FiberMap.js.map +1 -0
  258. package/dist/cjs/FiberRef.js +243 -0
  259. package/dist/cjs/FiberRef.js.map +1 -0
  260. package/dist/cjs/FiberRefs.js +91 -0
  261. package/dist/cjs/FiberRefs.js.map +1 -0
  262. package/dist/cjs/FiberRefsPatch.js +39 -0
  263. package/dist/cjs/FiberRefsPatch.js.map +1 -0
  264. package/dist/cjs/FiberSet.js +308 -0
  265. package/dist/cjs/FiberSet.js.map +1 -0
  266. package/dist/cjs/FiberStatus.js +59 -0
  267. package/dist/cjs/FiberStatus.js.map +1 -0
  268. package/dist/cjs/Function.js +488 -0
  269. package/dist/cjs/Function.js.map +1 -0
  270. package/dist/cjs/GlobalValue.js +59 -0
  271. package/dist/cjs/GlobalValue.js.map +1 -0
  272. package/dist/cjs/Graph.js +3080 -0
  273. package/dist/cjs/Graph.js.map +1 -0
  274. package/dist/cjs/GroupBy.js +47 -0
  275. package/dist/cjs/GroupBy.js.map +1 -0
  276. package/dist/cjs/HKT.js +6 -0
  277. package/dist/cjs/HKT.js.map +1 -0
  278. package/dist/cjs/Hash.js +184 -0
  279. package/dist/cjs/Hash.js.map +1 -0
  280. package/dist/cjs/HashMap.js +322 -0
  281. package/dist/cjs/HashMap.js.map +1 -0
  282. package/dist/cjs/HashRing.js +257 -0
  283. package/dist/cjs/HashRing.js.map +1 -0
  284. package/dist/cjs/HashSet.js +1262 -0
  285. package/dist/cjs/HashSet.js.map +1 -0
  286. package/dist/cjs/Inspectable.js +213 -0
  287. package/dist/cjs/Inspectable.js.map +1 -0
  288. package/dist/cjs/Iterable.js +1009 -0
  289. package/dist/cjs/Iterable.js.map +1 -0
  290. package/dist/cjs/JSONSchema.js +727 -0
  291. package/dist/cjs/JSONSchema.js.map +1 -0
  292. package/dist/cjs/KeyedPool.js +83 -0
  293. package/dist/cjs/KeyedPool.js.map +1 -0
  294. package/dist/cjs/Layer.js +651 -0
  295. package/dist/cjs/Layer.js.map +1 -0
  296. package/dist/cjs/LayerMap.js +212 -0
  297. package/dist/cjs/LayerMap.js.map +1 -0
  298. package/dist/cjs/List.js +784 -0
  299. package/dist/cjs/List.js.map +1 -0
  300. package/dist/cjs/LogLevel.js +143 -0
  301. package/dist/cjs/LogLevel.js.map +1 -0
  302. package/dist/cjs/LogSpan.js +23 -0
  303. package/dist/cjs/LogSpan.js.map +1 -0
  304. package/dist/cjs/Logger.js +497 -0
  305. package/dist/cjs/Logger.js.map +1 -0
  306. package/dist/cjs/Mailbox.js +105 -0
  307. package/dist/cjs/Mailbox.js.map +1 -0
  308. package/dist/cjs/ManagedRuntime.js +49 -0
  309. package/dist/cjs/ManagedRuntime.js.map +1 -0
  310. package/dist/cjs/Match.js +819 -0
  311. package/dist/cjs/Match.js.map +1 -0
  312. package/dist/cjs/MergeDecision.js +42 -0
  313. package/dist/cjs/MergeDecision.js.map +1 -0
  314. package/dist/cjs/MergeState.js +65 -0
  315. package/dist/cjs/MergeState.js.map +1 -0
  316. package/dist/cjs/MergeStrategy.js +59 -0
  317. package/dist/cjs/MergeStrategy.js.map +1 -0
  318. package/dist/cjs/Metric.js +415 -0
  319. package/dist/cjs/Metric.js.map +1 -0
  320. package/dist/cjs/MetricBoundaries.js +40 -0
  321. package/dist/cjs/MetricBoundaries.js.map +1 -0
  322. package/dist/cjs/MetricHook.js +54 -0
  323. package/dist/cjs/MetricHook.js.map +1 -0
  324. package/dist/cjs/MetricKey.js +70 -0
  325. package/dist/cjs/MetricKey.js.map +1 -0
  326. package/dist/cjs/MetricKeyType.js +94 -0
  327. package/dist/cjs/MetricKeyType.js.map +1 -0
  328. package/dist/cjs/MetricLabel.js +24 -0
  329. package/dist/cjs/MetricLabel.js.map +1 -0
  330. package/dist/cjs/MetricPair.js +28 -0
  331. package/dist/cjs/MetricPair.js.map +1 -0
  332. package/dist/cjs/MetricPolling.js +66 -0
  333. package/dist/cjs/MetricPolling.js.map +1 -0
  334. package/dist/cjs/MetricRegistry.js +23 -0
  335. package/dist/cjs/MetricRegistry.js.map +1 -0
  336. package/dist/cjs/MetricState.js +94 -0
  337. package/dist/cjs/MetricState.js.map +1 -0
  338. package/dist/cjs/Micro.js +2582 -0
  339. package/dist/cjs/Micro.js.map +1 -0
  340. package/dist/cjs/ModuleVersion.js +25 -0
  341. package/dist/cjs/ModuleVersion.js.map +1 -0
  342. package/dist/cjs/MutableHashMap.js +314 -0
  343. package/dist/cjs/MutableHashMap.js.map +1 -0
  344. package/dist/cjs/MutableHashSet.js +524 -0
  345. package/dist/cjs/MutableHashSet.js.map +1 -0
  346. package/dist/cjs/MutableList.js +258 -0
  347. package/dist/cjs/MutableList.js.map +1 -0
  348. package/dist/cjs/MutableQueue.js +173 -0
  349. package/dist/cjs/MutableQueue.js.map +1 -0
  350. package/dist/cjs/MutableRef.js +144 -0
  351. package/dist/cjs/MutableRef.js.map +1 -0
  352. package/dist/cjs/NonEmptyIterable.js +23 -0
  353. package/dist/cjs/NonEmptyIterable.js.map +1 -0
  354. package/dist/cjs/Number.js +903 -0
  355. package/dist/cjs/Number.js.map +1 -0
  356. package/dist/cjs/Option.js +1769 -0
  357. package/dist/cjs/Option.js.map +1 -0
  358. package/dist/cjs/Order.js +275 -0
  359. package/dist/cjs/Order.js.map +1 -0
  360. package/dist/cjs/Ordering.js +80 -0
  361. package/dist/cjs/Ordering.js.map +1 -0
  362. package/dist/cjs/ParseResult.js +1594 -0
  363. package/dist/cjs/ParseResult.js.map +1 -0
  364. package/dist/cjs/PartitionedSemaphore.js +147 -0
  365. package/dist/cjs/PartitionedSemaphore.js.map +1 -0
  366. package/dist/cjs/Pipeable.js +70 -0
  367. package/dist/cjs/Pipeable.js.map +1 -0
  368. package/dist/cjs/Pool.js +107 -0
  369. package/dist/cjs/Pool.js.map +1 -0
  370. package/dist/cjs/Predicate.js +1159 -0
  371. package/dist/cjs/Predicate.js.map +1 -0
  372. package/dist/cjs/Pretty.js +183 -0
  373. package/dist/cjs/Pretty.js.map +1 -0
  374. package/dist/cjs/PrimaryKey.js +21 -0
  375. package/dist/cjs/PrimaryKey.js.map +1 -0
  376. package/dist/cjs/PubSub.js +127 -0
  377. package/dist/cjs/PubSub.js.map +1 -0
  378. package/dist/cjs/Queue.js +255 -0
  379. package/dist/cjs/Queue.js.map +1 -0
  380. package/dist/cjs/Random.js +145 -0
  381. package/dist/cjs/Random.js.map +1 -0
  382. package/dist/cjs/RateLimiter.js +84 -0
  383. package/dist/cjs/RateLimiter.js.map +1 -0
  384. package/dist/cjs/RcMap.js +76 -0
  385. package/dist/cjs/RcMap.js.map +1 -0
  386. package/dist/cjs/RcRef.js +58 -0
  387. package/dist/cjs/RcRef.js.map +1 -0
  388. package/dist/cjs/Readable.js +55 -0
  389. package/dist/cjs/Readable.js.map +1 -0
  390. package/dist/cjs/Record.js +865 -0
  391. package/dist/cjs/Record.js.map +1 -0
  392. package/dist/cjs/RedBlackTree.js +266 -0
  393. package/dist/cjs/RedBlackTree.js.map +1 -0
  394. package/dist/cjs/Redacted.js +101 -0
  395. package/dist/cjs/Redacted.js.map +1 -0
  396. package/dist/cjs/Ref.js +84 -0
  397. package/dist/cjs/Ref.js.map +1 -0
  398. package/dist/cjs/RegExp.js +46 -0
  399. package/dist/cjs/RegExp.js.map +1 -0
  400. package/dist/cjs/Reloadable.js +66 -0
  401. package/dist/cjs/Reloadable.js.map +1 -0
  402. package/dist/cjs/Request.js +148 -0
  403. package/dist/cjs/Request.js.map +1 -0
  404. package/dist/cjs/RequestBlock.js +43 -0
  405. package/dist/cjs/RequestBlock.js.map +1 -0
  406. package/dist/cjs/RequestResolver.js +185 -0
  407. package/dist/cjs/RequestResolver.js.map +1 -0
  408. package/dist/cjs/Resource.js +51 -0
  409. package/dist/cjs/Resource.js.map +1 -0
  410. package/dist/cjs/Runtime.js +188 -0
  411. package/dist/cjs/Runtime.js.map +1 -0
  412. package/dist/cjs/RuntimeFlags.js +259 -0
  413. package/dist/cjs/RuntimeFlags.js.map +1 -0
  414. package/dist/cjs/RuntimeFlagsPatch.js +142 -0
  415. package/dist/cjs/RuntimeFlagsPatch.js.map +1 -0
  416. package/dist/cjs/STM.js +981 -0
  417. package/dist/cjs/STM.js.map +1 -0
  418. package/dist/cjs/Schedule.js +1603 -0
  419. package/dist/cjs/Schedule.js.map +1 -0
  420. package/dist/cjs/ScheduleDecision.js +34 -0
  421. package/dist/cjs/ScheduleDecision.js.map +1 -0
  422. package/dist/cjs/ScheduleInterval.js +107 -0
  423. package/dist/cjs/ScheduleInterval.js.map +1 -0
  424. package/dist/cjs/ScheduleIntervals.js +85 -0
  425. package/dist/cjs/ScheduleIntervals.js.map +1 -0
  426. package/dist/cjs/Scheduler.js +308 -0
  427. package/dist/cjs/Scheduler.js.map +1 -0
  428. package/dist/cjs/Schema.js +6254 -0
  429. package/dist/cjs/Schema.js.map +1 -0
  430. package/dist/cjs/SchemaAST.js +2552 -0
  431. package/dist/cjs/SchemaAST.js.map +1 -0
  432. package/dist/cjs/Scope.js +102 -0
  433. package/dist/cjs/Scope.js.map +1 -0
  434. package/dist/cjs/ScopedCache.js +31 -0
  435. package/dist/cjs/ScopedCache.js.map +1 -0
  436. package/dist/cjs/ScopedRef.js +49 -0
  437. package/dist/cjs/ScopedRef.js.map +1 -0
  438. package/dist/cjs/Secret.js +51 -0
  439. package/dist/cjs/Secret.js.map +1 -0
  440. package/dist/cjs/SingleProducerAsyncInput.js +14 -0
  441. package/dist/cjs/SingleProducerAsyncInput.js.map +1 -0
  442. package/dist/cjs/Sink.js +872 -0
  443. package/dist/cjs/Sink.js.map +1 -0
  444. package/dist/cjs/SortedMap.js +189 -0
  445. package/dist/cjs/SortedMap.js.map +1 -0
  446. package/dist/cjs/SortedSet.js +251 -0
  447. package/dist/cjs/SortedSet.js.map +1 -0
  448. package/dist/cjs/Stream.js +4112 -0
  449. package/dist/cjs/Stream.js.map +1 -0
  450. package/dist/cjs/StreamEmit.js +6 -0
  451. package/dist/cjs/StreamEmit.js.map +1 -0
  452. package/dist/cjs/StreamHaltStrategy.js +65 -0
  453. package/dist/cjs/StreamHaltStrategy.js.map +1 -0
  454. package/dist/cjs/Streamable.js +45 -0
  455. package/dist/cjs/Streamable.js.map +1 -0
  456. package/dist/cjs/String.js +680 -0
  457. package/dist/cjs/String.js.map +1 -0
  458. package/dist/cjs/Struct.js +202 -0
  459. package/dist/cjs/Struct.js.map +1 -0
  460. package/dist/cjs/Subscribable.js +67 -0
  461. package/dist/cjs/Subscribable.js.map +1 -0
  462. package/dist/cjs/SubscriptionRef.js +123 -0
  463. package/dist/cjs/SubscriptionRef.js.map +1 -0
  464. package/dist/cjs/Supervisor.js +115 -0
  465. package/dist/cjs/Supervisor.js.map +1 -0
  466. package/dist/cjs/Symbol.js +35 -0
  467. package/dist/cjs/Symbol.js.map +1 -0
  468. package/dist/cjs/SynchronizedRef.js +126 -0
  469. package/dist/cjs/SynchronizedRef.js.map +1 -0
  470. package/dist/cjs/TArray.js +314 -0
  471. package/dist/cjs/TArray.js.map +1 -0
  472. package/dist/cjs/TDeferred.js +40 -0
  473. package/dist/cjs/TDeferred.js.map +1 -0
  474. package/dist/cjs/TMap.js +286 -0
  475. package/dist/cjs/TMap.js.map +1 -0
  476. package/dist/cjs/TPriorityQueue.js +143 -0
  477. package/dist/cjs/TPriorityQueue.js.map +1 -0
  478. package/dist/cjs/TPubSub.js +138 -0
  479. package/dist/cjs/TPubSub.js.map +1 -0
  480. package/dist/cjs/TQueue.js +237 -0
  481. package/dist/cjs/TQueue.js.map +1 -0
  482. package/dist/cjs/TRandom.js +72 -0
  483. package/dist/cjs/TRandom.js.map +1 -0
  484. package/dist/cjs/TReentrantLock.js +149 -0
  485. package/dist/cjs/TReentrantLock.js.map +1 -0
  486. package/dist/cjs/TRef.js +83 -0
  487. package/dist/cjs/TRef.js.map +1 -0
  488. package/dist/cjs/TSemaphore.js +73 -0
  489. package/dist/cjs/TSemaphore.js.map +1 -0
  490. package/dist/cjs/TSet.js +208 -0
  491. package/dist/cjs/TSet.js.map +1 -0
  492. package/dist/cjs/TSubscriptionRef.js +95 -0
  493. package/dist/cjs/TSubscriptionRef.js.map +1 -0
  494. package/dist/cjs/Take.js +155 -0
  495. package/dist/cjs/Take.js.map +1 -0
  496. package/dist/cjs/TestAnnotation.js +105 -0
  497. package/dist/cjs/TestAnnotation.js.map +1 -0
  498. package/dist/cjs/TestAnnotationMap.js +91 -0
  499. package/dist/cjs/TestAnnotationMap.js.map +1 -0
  500. package/dist/cjs/TestAnnotations.js +71 -0
  501. package/dist/cjs/TestAnnotations.js.map +1 -0
  502. package/dist/cjs/TestClock.js +372 -0
  503. package/dist/cjs/TestClock.js.map +1 -0
  504. package/dist/cjs/TestConfig.js +22 -0
  505. package/dist/cjs/TestConfig.js.map +1 -0
  506. package/dist/cjs/TestContext.js +28 -0
  507. package/dist/cjs/TestContext.js.map +1 -0
  508. package/dist/cjs/TestLive.js +39 -0
  509. package/dist/cjs/TestLive.js.map +1 -0
  510. package/dist/cjs/TestServices.js +255 -0
  511. package/dist/cjs/TestServices.js.map +1 -0
  512. package/dist/cjs/TestSized.js +46 -0
  513. package/dist/cjs/TestSized.js.map +1 -0
  514. package/dist/cjs/Tracer.js +44 -0
  515. package/dist/cjs/Tracer.js.map +1 -0
  516. package/dist/cjs/Trie.js +724 -0
  517. package/dist/cjs/Trie.js.map +1 -0
  518. package/dist/cjs/Tuple.js +210 -0
  519. package/dist/cjs/Tuple.js.map +1 -0
  520. package/dist/cjs/Types.js +6 -0
  521. package/dist/cjs/Types.js.map +1 -0
  522. package/dist/cjs/Unify.js +16 -0
  523. package/dist/cjs/Unify.js.map +1 -0
  524. package/dist/cjs/UpstreamPullRequest.js +59 -0
  525. package/dist/cjs/UpstreamPullRequest.js.map +1 -0
  526. package/dist/cjs/UpstreamPullStrategy.js +59 -0
  527. package/dist/cjs/UpstreamPullStrategy.js.map +1 -0
  528. package/dist/cjs/Utils.js +374 -0
  529. package/dist/cjs/Utils.js.map +1 -0
  530. package/dist/cjs/index.js +395 -0
  531. package/dist/cjs/index.js.map +1 -0
  532. package/dist/cjs/internal/array.js +13 -0
  533. package/dist/cjs/internal/array.js.map +1 -0
  534. package/dist/cjs/internal/blockedRequests.js +369 -0
  535. package/dist/cjs/internal/blockedRequests.js.map +1 -0
  536. package/dist/cjs/internal/cache.js +500 -0
  537. package/dist/cjs/internal/cache.js.map +1 -0
  538. package/dist/cjs/internal/cause.js +867 -0
  539. package/dist/cjs/internal/cause.js.map +1 -0
  540. package/dist/cjs/internal/channel/channelExecutor.js +697 -0
  541. package/dist/cjs/internal/channel/channelExecutor.js.map +1 -0
  542. package/dist/cjs/internal/channel/channelState.js +77 -0
  543. package/dist/cjs/internal/channel/channelState.js.map +1 -0
  544. package/dist/cjs/internal/channel/childExecutorDecision.js +74 -0
  545. package/dist/cjs/internal/channel/childExecutorDecision.js.map +1 -0
  546. package/dist/cjs/internal/channel/continuation.js +57 -0
  547. package/dist/cjs/internal/channel/continuation.js.map +1 -0
  548. package/dist/cjs/internal/channel/mergeDecision.js +60 -0
  549. package/dist/cjs/internal/channel/mergeDecision.js.map +1 -0
  550. package/dist/cjs/internal/channel/mergeState.js +83 -0
  551. package/dist/cjs/internal/channel/mergeState.js.map +1 -0
  552. package/dist/cjs/internal/channel/mergeStrategy.js +58 -0
  553. package/dist/cjs/internal/channel/mergeStrategy.js.map +1 -0
  554. package/dist/cjs/internal/channel/singleProducerAsyncInput.js +171 -0
  555. package/dist/cjs/internal/channel/singleProducerAsyncInput.js.map +1 -0
  556. package/dist/cjs/internal/channel/subexecutor.js +163 -0
  557. package/dist/cjs/internal/channel/subexecutor.js.map +1 -0
  558. package/dist/cjs/internal/channel/upstreamPullRequest.js +64 -0
  559. package/dist/cjs/internal/channel/upstreamPullRequest.js.map +1 -0
  560. package/dist/cjs/internal/channel/upstreamPullStrategy.js +64 -0
  561. package/dist/cjs/internal/channel/upstreamPullStrategy.js.map +1 -0
  562. package/dist/cjs/internal/channel.js +738 -0
  563. package/dist/cjs/internal/channel.js.map +1 -0
  564. package/dist/cjs/internal/clock.js +85 -0
  565. package/dist/cjs/internal/clock.js.map +1 -0
  566. package/dist/cjs/internal/completedRequestMap.js +11 -0
  567. package/dist/cjs/internal/completedRequestMap.js.map +1 -0
  568. package/dist/cjs/internal/concurrency.js +37 -0
  569. package/dist/cjs/internal/concurrency.js.map +1 -0
  570. package/dist/cjs/internal/config.js +397 -0
  571. package/dist/cjs/internal/config.js.map +1 -0
  572. package/dist/cjs/internal/configError.js +284 -0
  573. package/dist/cjs/internal/configError.js.map +1 -0
  574. package/dist/cjs/internal/configProvider/pathPatch.js +83 -0
  575. package/dist/cjs/internal/configProvider/pathPatch.js.map +1 -0
  576. package/dist/cjs/internal/configProvider.js +443 -0
  577. package/dist/cjs/internal/configProvider.js.map +1 -0
  578. package/dist/cjs/internal/console.js +79 -0
  579. package/dist/cjs/internal/console.js.map +1 -0
  580. package/dist/cjs/internal/context.js +273 -0
  581. package/dist/cjs/internal/context.js.map +1 -0
  582. package/dist/cjs/internal/core-effect.js +872 -0
  583. package/dist/cjs/internal/core-effect.js.map +1 -0
  584. package/dist/cjs/internal/core-stream.js +258 -0
  585. package/dist/cjs/internal/core-stream.js.map +1 -0
  586. package/dist/cjs/internal/core.js +1713 -0
  587. package/dist/cjs/internal/core.js.map +1 -0
  588. package/dist/cjs/internal/data.js +37 -0
  589. package/dist/cjs/internal/data.js.map +1 -0
  590. package/dist/cjs/internal/dataSource.js +107 -0
  591. package/dist/cjs/internal/dataSource.js.map +1 -0
  592. package/dist/cjs/internal/dateTime.js +839 -0
  593. package/dist/cjs/internal/dateTime.js.map +1 -0
  594. package/dist/cjs/internal/defaultServices/console.js +99 -0
  595. package/dist/cjs/internal/defaultServices/console.js.map +1 -0
  596. package/dist/cjs/internal/defaultServices.js +92 -0
  597. package/dist/cjs/internal/defaultServices.js.map +1 -0
  598. package/dist/cjs/internal/deferred.js +36 -0
  599. package/dist/cjs/internal/deferred.js.map +1 -0
  600. package/dist/cjs/internal/differ/chunkPatch.js +139 -0
  601. package/dist/cjs/internal/differ/chunkPatch.js.map +1 -0
  602. package/dist/cjs/internal/differ/contextPatch.js +152 -0
  603. package/dist/cjs/internal/differ/contextPatch.js.map +1 -0
  604. package/dist/cjs/internal/differ/hashMapPatch.js +139 -0
  605. package/dist/cjs/internal/differ/hashMapPatch.js.map +1 -0
  606. package/dist/cjs/internal/differ/hashSetPatch.js +113 -0
  607. package/dist/cjs/internal/differ/hashSetPatch.js.map +1 -0
  608. package/dist/cjs/internal/differ/orPatch.js +184 -0
  609. package/dist/cjs/internal/differ/orPatch.js.map +1 -0
  610. package/dist/cjs/internal/differ/readonlyArrayPatch.js +138 -0
  611. package/dist/cjs/internal/differ/readonlyArrayPatch.js.map +1 -0
  612. package/dist/cjs/internal/differ.js +149 -0
  613. package/dist/cjs/internal/differ.js.map +1 -0
  614. package/dist/cjs/internal/doNotation.js +25 -0
  615. package/dist/cjs/internal/doNotation.js.map +1 -0
  616. package/dist/cjs/internal/effect/circular.js +420 -0
  617. package/dist/cjs/internal/effect/circular.js.map +1 -0
  618. package/dist/cjs/internal/effectable.js +120 -0
  619. package/dist/cjs/internal/effectable.js.map +1 -0
  620. package/dist/cjs/internal/either.js +100 -0
  621. package/dist/cjs/internal/either.js.map +1 -0
  622. package/dist/cjs/internal/encoding/base64.js +81 -0
  623. package/dist/cjs/internal/encoding/base64.js.map +1 -0
  624. package/dist/cjs/internal/encoding/base64Url.js +30 -0
  625. package/dist/cjs/internal/encoding/base64Url.js.map +1 -0
  626. package/dist/cjs/internal/encoding/common.js +48 -0
  627. package/dist/cjs/internal/encoding/common.js.map +1 -0
  628. package/dist/cjs/internal/encoding/hex.js +57 -0
  629. package/dist/cjs/internal/encoding/hex.js.map +1 -0
  630. package/dist/cjs/internal/errors.js +13 -0
  631. package/dist/cjs/internal/errors.js.map +1 -0
  632. package/dist/cjs/internal/executionPlan.js +68 -0
  633. package/dist/cjs/internal/executionPlan.js.map +1 -0
  634. package/dist/cjs/internal/executionStrategy.js +54 -0
  635. package/dist/cjs/internal/executionStrategy.js.map +1 -0
  636. package/dist/cjs/internal/fiber.js +279 -0
  637. package/dist/cjs/internal/fiber.js.map +1 -0
  638. package/dist/cjs/internal/fiberId.js +239 -0
  639. package/dist/cjs/internal/fiberId.js.map +1 -0
  640. package/dist/cjs/internal/fiberMessage.js +38 -0
  641. package/dist/cjs/internal/fiberMessage.js.map +1 -0
  642. package/dist/cjs/internal/fiberRefs/patch.js +115 -0
  643. package/dist/cjs/internal/fiberRefs/patch.js.map +1 -0
  644. package/dist/cjs/internal/fiberRefs.js +203 -0
  645. package/dist/cjs/internal/fiberRefs.js.map +1 -0
  646. package/dist/cjs/internal/fiberRuntime.js +2207 -0
  647. package/dist/cjs/internal/fiberRuntime.js.map +1 -0
  648. package/dist/cjs/internal/fiberScope.js +52 -0
  649. package/dist/cjs/internal/fiberScope.js.map +1 -0
  650. package/dist/cjs/internal/fiberStatus.js +85 -0
  651. package/dist/cjs/internal/fiberStatus.js.map +1 -0
  652. package/dist/cjs/internal/groupBy.js +222 -0
  653. package/dist/cjs/internal/groupBy.js.map +1 -0
  654. package/dist/cjs/internal/hashMap/array.js +56 -0
  655. package/dist/cjs/internal/hashMap/array.js.map +1 -0
  656. package/dist/cjs/internal/hashMap/bitwise.js +38 -0
  657. package/dist/cjs/internal/hashMap/bitwise.js.map +1 -0
  658. package/dist/cjs/internal/hashMap/config.js +17 -0
  659. package/dist/cjs/internal/hashMap/config.js.map +1 -0
  660. package/dist/cjs/internal/hashMap/keySet.js +12 -0
  661. package/dist/cjs/internal/hashMap/keySet.js.map +1 -0
  662. package/dist/cjs/internal/hashMap/node.js +268 -0
  663. package/dist/cjs/internal/hashMap/node.js.map +1 -0
  664. package/dist/cjs/internal/hashMap.js +379 -0
  665. package/dist/cjs/internal/hashMap.js.map +1 -0
  666. package/dist/cjs/internal/hashSet.js +198 -0
  667. package/dist/cjs/internal/hashSet.js.map +1 -0
  668. package/dist/cjs/internal/keyedPool.js +170 -0
  669. package/dist/cjs/internal/keyedPool.js.map +1 -0
  670. package/dist/cjs/internal/layer/circular.js +80 -0
  671. package/dist/cjs/internal/layer/circular.js.map +1 -0
  672. package/dist/cjs/internal/layer.js +595 -0
  673. package/dist/cjs/internal/layer.js.map +1 -0
  674. package/dist/cjs/internal/logSpan.js +26 -0
  675. package/dist/cjs/internal/logSpan.js.map +1 -0
  676. package/dist/cjs/internal/logger-circular.js +26 -0
  677. package/dist/cjs/internal/logger-circular.js.map +1 -0
  678. package/dist/cjs/internal/logger.js +381 -0
  679. package/dist/cjs/internal/logger.js.map +1 -0
  680. package/dist/cjs/internal/mailbox.js +462 -0
  681. package/dist/cjs/internal/mailbox.js.map +1 -0
  682. package/dist/cjs/internal/managedRuntime/circular.js +10 -0
  683. package/dist/cjs/internal/managedRuntime/circular.js.map +1 -0
  684. package/dist/cjs/internal/managedRuntime.js +95 -0
  685. package/dist/cjs/internal/managedRuntime.js.map +1 -0
  686. package/dist/cjs/internal/matcher.js +320 -0
  687. package/dist/cjs/internal/matcher.js.map +1 -0
  688. package/dist/cjs/internal/metric/boundaries.js +53 -0
  689. package/dist/cjs/internal/metric/boundaries.js.map +1 -0
  690. package/dist/cjs/internal/metric/hook.js +388 -0
  691. package/dist/cjs/internal/metric/hook.js.map +1 -0
  692. package/dist/cjs/internal/metric/key.js +73 -0
  693. package/dist/cjs/internal/metric/key.js.map +1 -0
  694. package/dist/cjs/internal/metric/keyType.js +188 -0
  695. package/dist/cjs/internal/metric/keyType.js.map +1 -0
  696. package/dist/cjs/internal/metric/label.js +45 -0
  697. package/dist/cjs/internal/metric/label.js.map +1 -0
  698. package/dist/cjs/internal/metric/pair.js +40 -0
  699. package/dist/cjs/internal/metric/pair.js.map +1 -0
  700. package/dist/cjs/internal/metric/polling.js +80 -0
  701. package/dist/cjs/internal/metric/polling.js.map +1 -0
  702. package/dist/cjs/internal/metric/registry.js +113 -0
  703. package/dist/cjs/internal/metric/registry.js.map +1 -0
  704. package/dist/cjs/internal/metric/state.js +201 -0
  705. package/dist/cjs/internal/metric/state.js.map +1 -0
  706. package/dist/cjs/internal/metric.js +204 -0
  707. package/dist/cjs/internal/metric.js.map +1 -0
  708. package/dist/cjs/internal/opCodes/cause.js +19 -0
  709. package/dist/cjs/internal/opCodes/cause.js.map +1 -0
  710. package/dist/cjs/internal/opCodes/channel.js +35 -0
  711. package/dist/cjs/internal/opCodes/channel.js.map +1 -0
  712. package/dist/cjs/internal/opCodes/channelChildExecutorDecision.js +13 -0
  713. package/dist/cjs/internal/opCodes/channelChildExecutorDecision.js.map +1 -0
  714. package/dist/cjs/internal/opCodes/channelMergeDecision.js +11 -0
  715. package/dist/cjs/internal/opCodes/channelMergeDecision.js.map +1 -0
  716. package/dist/cjs/internal/opCodes/channelMergeState.js +13 -0
  717. package/dist/cjs/internal/opCodes/channelMergeState.js.map +1 -0
  718. package/dist/cjs/internal/opCodes/channelMergeStrategy.js +11 -0
  719. package/dist/cjs/internal/opCodes/channelMergeStrategy.js.map +1 -0
  720. package/dist/cjs/internal/opCodes/channelState.js +15 -0
  721. package/dist/cjs/internal/opCodes/channelState.js.map +1 -0
  722. package/dist/cjs/internal/opCodes/channelUpstreamPullRequest.js +11 -0
  723. package/dist/cjs/internal/opCodes/channelUpstreamPullRequest.js.map +1 -0
  724. package/dist/cjs/internal/opCodes/channelUpstreamPullStrategy.js +11 -0
  725. package/dist/cjs/internal/opCodes/channelUpstreamPullStrategy.js.map +1 -0
  726. package/dist/cjs/internal/opCodes/config.js +29 -0
  727. package/dist/cjs/internal/opCodes/config.js.map +1 -0
  728. package/dist/cjs/internal/opCodes/configError.js +19 -0
  729. package/dist/cjs/internal/opCodes/configError.js.map +1 -0
  730. package/dist/cjs/internal/opCodes/continuation.js +11 -0
  731. package/dist/cjs/internal/opCodes/continuation.js.map +1 -0
  732. package/dist/cjs/internal/opCodes/deferred.js +11 -0
  733. package/dist/cjs/internal/opCodes/deferred.js.map +1 -0
  734. package/dist/cjs/internal/opCodes/effect.js +37 -0
  735. package/dist/cjs/internal/opCodes/effect.js.map +1 -0
  736. package/dist/cjs/internal/opCodes/layer.js +27 -0
  737. package/dist/cjs/internal/opCodes/layer.js.map +1 -0
  738. package/dist/cjs/internal/opCodes/streamHaltStrategy.js +15 -0
  739. package/dist/cjs/internal/opCodes/streamHaltStrategy.js.map +1 -0
  740. package/dist/cjs/internal/option.js +82 -0
  741. package/dist/cjs/internal/option.js.map +1 -0
  742. package/dist/cjs/internal/pool.js +288 -0
  743. package/dist/cjs/internal/pool.js.map +1 -0
  744. package/dist/cjs/internal/pubsub.js +1287 -0
  745. package/dist/cjs/internal/pubsub.js.map +1 -0
  746. package/dist/cjs/internal/query.js +102 -0
  747. package/dist/cjs/internal/query.js.map +1 -0
  748. package/dist/cjs/internal/queue.js +518 -0
  749. package/dist/cjs/internal/queue.js.map +1 -0
  750. package/dist/cjs/internal/random.js +128 -0
  751. package/dist/cjs/internal/random.js.map +1 -0
  752. package/dist/cjs/internal/rateLimiter.js +52 -0
  753. package/dist/cjs/internal/rateLimiter.js.map +1 -0
  754. package/dist/cjs/internal/rcMap.js +182 -0
  755. package/dist/cjs/internal/rcMap.js.map +1 -0
  756. package/dist/cjs/internal/rcRef.js +139 -0
  757. package/dist/cjs/internal/rcRef.js.map +1 -0
  758. package/dist/cjs/internal/redBlackTree/iterator.js +199 -0
  759. package/dist/cjs/internal/redBlackTree/iterator.js.map +1 -0
  760. package/dist/cjs/internal/redBlackTree/node.js +60 -0
  761. package/dist/cjs/internal/redBlackTree/node.js.map +1 -0
  762. package/dist/cjs/internal/redBlackTree.js +1088 -0
  763. package/dist/cjs/internal/redBlackTree.js.map +1 -0
  764. package/dist/cjs/internal/redacted.js +67 -0
  765. package/dist/cjs/internal/redacted.js.map +1 -0
  766. package/dist/cjs/internal/ref.js +121 -0
  767. package/dist/cjs/internal/ref.js.map +1 -0
  768. package/dist/cjs/internal/reloadable.js +56 -0
  769. package/dist/cjs/internal/reloadable.js.map +1 -0
  770. package/dist/cjs/internal/request.js +104 -0
  771. package/dist/cjs/internal/request.js.map +1 -0
  772. package/dist/cjs/internal/resource.js +49 -0
  773. package/dist/cjs/internal/resource.js.map +1 -0
  774. package/dist/cjs/internal/ringBuffer.js +64 -0
  775. package/dist/cjs/internal/ringBuffer.js.map +1 -0
  776. package/dist/cjs/internal/runtime.js +321 -0
  777. package/dist/cjs/internal/runtime.js.map +1 -0
  778. package/dist/cjs/internal/runtimeFlags.js +126 -0
  779. package/dist/cjs/internal/runtimeFlags.js.map +1 -0
  780. package/dist/cjs/internal/runtimeFlagsPatch.js +52 -0
  781. package/dist/cjs/internal/runtimeFlagsPatch.js.map +1 -0
  782. package/dist/cjs/internal/schedule/decision.js +44 -0
  783. package/dist/cjs/internal/schedule/decision.js.map +1 -0
  784. package/dist/cjs/internal/schedule/interval.js +83 -0
  785. package/dist/cjs/internal/schedule/interval.js.map +1 -0
  786. package/dist/cjs/internal/schedule/intervals.js +134 -0
  787. package/dist/cjs/internal/schedule/intervals.js.map +1 -0
  788. package/dist/cjs/internal/schedule.js +900 -0
  789. package/dist/cjs/internal/schedule.js.map +1 -0
  790. package/dist/cjs/internal/schema/errors.js +113 -0
  791. package/dist/cjs/internal/schema/errors.js.map +1 -0
  792. package/dist/cjs/internal/schema/schemaId.js +49 -0
  793. package/dist/cjs/internal/schema/schemaId.js.map +1 -0
  794. package/dist/cjs/internal/schema/util.js +48 -0
  795. package/dist/cjs/internal/schema/util.js.map +1 -0
  796. package/dist/cjs/internal/scopedCache.js +398 -0
  797. package/dist/cjs/internal/scopedCache.js.map +1 -0
  798. package/dist/cjs/internal/scopedRef.js +53 -0
  799. package/dist/cjs/internal/scopedRef.js.map +1 -0
  800. package/dist/cjs/internal/secret.js +90 -0
  801. package/dist/cjs/internal/secret.js.map +1 -0
  802. package/dist/cjs/internal/singleShotGen.js +37 -0
  803. package/dist/cjs/internal/singleShotGen.js.map +1 -0
  804. package/dist/cjs/internal/sink.js +883 -0
  805. package/dist/cjs/internal/sink.js.map +1 -0
  806. package/dist/cjs/internal/stack.js +12 -0
  807. package/dist/cjs/internal/stack.js.map +1 -0
  808. package/dist/cjs/internal/stm/core.js +525 -0
  809. package/dist/cjs/internal/stm/core.js.map +1 -0
  810. package/dist/cjs/internal/stm/entry.js +57 -0
  811. package/dist/cjs/internal/stm/entry.js.map +1 -0
  812. package/dist/cjs/internal/stm/journal.js +104 -0
  813. package/dist/cjs/internal/stm/journal.js.map +1 -0
  814. package/dist/cjs/internal/stm/opCodes/stm.js +31 -0
  815. package/dist/cjs/internal/stm/opCodes/stm.js.map +1 -0
  816. package/dist/cjs/internal/stm/opCodes/stmState.js +13 -0
  817. package/dist/cjs/internal/stm/opCodes/stmState.js.map +1 -0
  818. package/dist/cjs/internal/stm/opCodes/strategy.js +13 -0
  819. package/dist/cjs/internal/stm/opCodes/strategy.js.map +1 -0
  820. package/dist/cjs/internal/stm/opCodes/tExit.js +17 -0
  821. package/dist/cjs/internal/stm/opCodes/tExit.js.map +1 -0
  822. package/dist/cjs/internal/stm/opCodes/tryCommit.js +11 -0
  823. package/dist/cjs/internal/stm/opCodes/tryCommit.js.map +1 -0
  824. package/dist/cjs/internal/stm/stm.js +514 -0
  825. package/dist/cjs/internal/stm/stm.js.map +1 -0
  826. package/dist/cjs/internal/stm/stmState.js +102 -0
  827. package/dist/cjs/internal/stm/stmState.js.map +1 -0
  828. package/dist/cjs/internal/stm/tArray.js +258 -0
  829. package/dist/cjs/internal/stm/tArray.js.map +1 -0
  830. package/dist/cjs/internal/stm/tDeferred.js +51 -0
  831. package/dist/cjs/internal/stm/tDeferred.js.map +1 -0
  832. package/dist/cjs/internal/stm/tExit.js +116 -0
  833. package/dist/cjs/internal/stm/tExit.js.map +1 -0
  834. package/dist/cjs/internal/stm/tMap.js +448 -0
  835. package/dist/cjs/internal/stm/tMap.js.map +1 -0
  836. package/dist/cjs/internal/stm/tPriorityQueue.js +164 -0
  837. package/dist/cjs/internal/stm/tPriorityQueue.js.map +1 -0
  838. package/dist/cjs/internal/stm/tPubSub.js +397 -0
  839. package/dist/cjs/internal/stm/tPubSub.js.map +1 -0
  840. package/dist/cjs/internal/stm/tQueue.js +284 -0
  841. package/dist/cjs/internal/stm/tQueue.js.map +1 -0
  842. package/dist/cjs/internal/stm/tRandom.js +92 -0
  843. package/dist/cjs/internal/stm/tRandom.js.map +1 -0
  844. package/dist/cjs/internal/stm/tReentrantLock.js +215 -0
  845. package/dist/cjs/internal/stm/tReentrantLock.js.map +1 -0
  846. package/dist/cjs/internal/stm/tRef.js +110 -0
  847. package/dist/cjs/internal/stm/tRef.js.map +1 -0
  848. package/dist/cjs/internal/stm/tSemaphore.js +72 -0
  849. package/dist/cjs/internal/stm/tSemaphore.js.map +1 -0
  850. package/dist/cjs/internal/stm/tSet.js +104 -0
  851. package/dist/cjs/internal/stm/tSet.js.map +1 -0
  852. package/dist/cjs/internal/stm/tSubscriptionRef.js +177 -0
  853. package/dist/cjs/internal/stm/tSubscriptionRef.js.map +1 -0
  854. package/dist/cjs/internal/stm/tryCommit.js +25 -0
  855. package/dist/cjs/internal/stm/tryCommit.js.map +1 -0
  856. package/dist/cjs/internal/stm/txnId.js +18 -0
  857. package/dist/cjs/internal/stm/txnId.js.map +1 -0
  858. package/dist/cjs/internal/stm/versioned.js +15 -0
  859. package/dist/cjs/internal/stm/versioned.js.map +1 -0
  860. package/dist/cjs/internal/stream/debounceState.js +29 -0
  861. package/dist/cjs/internal/stream/debounceState.js.map +1 -0
  862. package/dist/cjs/internal/stream/emit.js +129 -0
  863. package/dist/cjs/internal/stream/emit.js.map +1 -0
  864. package/dist/cjs/internal/stream/haltStrategy.js +75 -0
  865. package/dist/cjs/internal/stream/haltStrategy.js.map +1 -0
  866. package/dist/cjs/internal/stream/handoff.js +65 -0
  867. package/dist/cjs/internal/stream/handoff.js.map +1 -0
  868. package/dist/cjs/internal/stream/handoffSignal.js +31 -0
  869. package/dist/cjs/internal/stream/handoffSignal.js.map +1 -0
  870. package/dist/cjs/internal/stream/pull.js +34 -0
  871. package/dist/cjs/internal/stream/pull.js.map +1 -0
  872. package/dist/cjs/internal/stream/sinkEndReason.js +19 -0
  873. package/dist/cjs/internal/stream/sinkEndReason.js.map +1 -0
  874. package/dist/cjs/internal/stream/zipAllState.js +41 -0
  875. package/dist/cjs/internal/stream/zipAllState.js.map +1 -0
  876. package/dist/cjs/internal/stream/zipChunksState.js +29 -0
  877. package/dist/cjs/internal/stream/zipChunksState.js.map +1 -0
  878. package/dist/cjs/internal/stream.js +2979 -0
  879. package/dist/cjs/internal/stream.js.map +1 -0
  880. package/dist/cjs/internal/string-utils.js +90 -0
  881. package/dist/cjs/internal/string-utils.js.map +1 -0
  882. package/dist/cjs/internal/subscriptionRef.js +72 -0
  883. package/dist/cjs/internal/subscriptionRef.js.map +1 -0
  884. package/dist/cjs/internal/supervisor/patch.js +135 -0
  885. package/dist/cjs/internal/supervisor/patch.js.map +1 -0
  886. package/dist/cjs/internal/supervisor.js +222 -0
  887. package/dist/cjs/internal/supervisor.js.map +1 -0
  888. package/dist/cjs/internal/synchronizedRef.js +51 -0
  889. package/dist/cjs/internal/synchronizedRef.js.map +1 -0
  890. package/dist/cjs/internal/take.js +130 -0
  891. package/dist/cjs/internal/take.js.map +1 -0
  892. package/dist/cjs/internal/testing/sleep.js +14 -0
  893. package/dist/cjs/internal/testing/sleep.js.map +1 -0
  894. package/dist/cjs/internal/testing/suspendedWarningData.js +58 -0
  895. package/dist/cjs/internal/testing/suspendedWarningData.js.map +1 -0
  896. package/dist/cjs/internal/testing/warningData.js +59 -0
  897. package/dist/cjs/internal/testing/warningData.js.map +1 -0
  898. package/dist/cjs/internal/tracer.js +134 -0
  899. package/dist/cjs/internal/tracer.js.map +1 -0
  900. package/dist/cjs/internal/trie.js +564 -0
  901. package/dist/cjs/internal/trie.js.map +1 -0
  902. package/dist/cjs/internal/version.js +14 -0
  903. package/dist/cjs/internal/version.js.map +1 -0
  904. package/dist/dts/Arbitrary.d.ts +69 -0
  905. package/dist/dts/Arbitrary.d.ts.map +1 -0
  906. package/dist/dts/Array.d.ts +5922 -0
  907. package/dist/dts/Array.d.ts.map +1 -0
  908. package/dist/dts/BigDecimal.d.ts +1483 -0
  909. package/dist/dts/BigDecimal.d.ts.map +1 -0
  910. package/dist/dts/BigInt.d.ts +1033 -0
  911. package/dist/dts/BigInt.d.ts.map +1 -0
  912. package/dist/dts/Boolean.d.ts +523 -0
  913. package/dist/dts/Boolean.d.ts.map +1 -0
  914. package/dist/dts/Brand.d.ts +234 -0
  915. package/dist/dts/Brand.d.ts.map +1 -0
  916. package/dist/dts/Cache.d.ts +241 -0
  917. package/dist/dts/Cache.d.ts.map +1 -0
  918. package/dist/dts/Cause.d.ts +1928 -0
  919. package/dist/dts/Cause.d.ts.map +1 -0
  920. package/dist/dts/Channel.d.ts +1989 -0
  921. package/dist/dts/Channel.d.ts.map +1 -0
  922. package/dist/dts/ChildExecutorDecision.d.ts +135 -0
  923. package/dist/dts/ChildExecutorDecision.d.ts.map +1 -0
  924. package/dist/dts/Chunk.d.ts +1709 -0
  925. package/dist/dts/Chunk.d.ts.map +1 -0
  926. package/dist/dts/Clock.d.ts +97 -0
  927. package/dist/dts/Clock.d.ts.map +1 -0
  928. package/dist/dts/Config.d.ts +667 -0
  929. package/dist/dts/Config.d.ts.map +1 -0
  930. package/dist/dts/ConfigError.d.ts +238 -0
  931. package/dist/dts/ConfigError.d.ts.map +1 -0
  932. package/dist/dts/ConfigProvider.d.ts +372 -0
  933. package/dist/dts/ConfigProvider.d.ts.map +1 -0
  934. package/dist/dts/ConfigProviderPathPatch.d.ts +118 -0
  935. package/dist/dts/ConfigProviderPathPatch.d.ts.map +1 -0
  936. package/dist/dts/Console.d.ts +224 -0
  937. package/dist/dts/Console.d.ts.map +1 -0
  938. package/dist/dts/Context.d.ts +823 -0
  939. package/dist/dts/Context.d.ts.map +1 -0
  940. package/dist/dts/Cron.d.ts +226 -0
  941. package/dist/dts/Cron.d.ts.map +1 -0
  942. package/dist/dts/Data.d.ts +613 -0
  943. package/dist/dts/Data.d.ts.map +1 -0
  944. package/dist/dts/DateTime.d.ts +2417 -0
  945. package/dist/dts/DateTime.d.ts.map +1 -0
  946. package/dist/dts/DefaultServices.d.ts +26 -0
  947. package/dist/dts/DefaultServices.d.ts.map +1 -0
  948. package/dist/dts/Deferred.d.ts +437 -0
  949. package/dist/dts/Deferred.d.ts.map +1 -0
  950. package/dist/dts/Differ.d.ts +420 -0
  951. package/dist/dts/Differ.d.ts.map +1 -0
  952. package/dist/dts/Duration.d.ts +557 -0
  953. package/dist/dts/Duration.d.ts.map +1 -0
  954. package/dist/dts/Effect.d.ts +26986 -0
  955. package/dist/dts/Effect.d.ts.map +1 -0
  956. package/dist/dts/Effectable.d.ts +93 -0
  957. package/dist/dts/Effectable.d.ts.map +1 -0
  958. package/dist/dts/Either.d.ts +1431 -0
  959. package/dist/dts/Either.d.ts.map +1 -0
  960. package/dist/dts/Encoding.d.ts +160 -0
  961. package/dist/dts/Encoding.d.ts.map +1 -0
  962. package/dist/dts/Equal.d.ts +34 -0
  963. package/dist/dts/Equal.d.ts.map +1 -0
  964. package/dist/dts/Equivalence.d.ts +158 -0
  965. package/dist/dts/Equivalence.d.ts.map +1 -0
  966. package/dist/dts/ExecutionPlan.d.ts +210 -0
  967. package/dist/dts/ExecutionPlan.d.ts.map +1 -0
  968. package/dist/dts/ExecutionStrategy.d.ts +122 -0
  969. package/dist/dts/ExecutionStrategy.d.ts.map +1 -0
  970. package/dist/dts/Exit.d.ts +663 -0
  971. package/dist/dts/Exit.d.ts.map +1 -0
  972. package/dist/dts/FastCheck.d.ts +9 -0
  973. package/dist/dts/FastCheck.d.ts.map +1 -0
  974. package/dist/dts/Fiber.d.ts +831 -0
  975. package/dist/dts/Fiber.d.ts.map +1 -0
  976. package/dist/dts/FiberHandle.d.ts +270 -0
  977. package/dist/dts/FiberHandle.d.ts.map +1 -0
  978. package/dist/dts/FiberId.d.ts +196 -0
  979. package/dist/dts/FiberId.d.ts.map +1 -0
  980. package/dist/dts/FiberMap.d.ts +368 -0
  981. package/dist/dts/FiberMap.d.ts.map +1 -0
  982. package/dist/dts/FiberRef.d.ts +422 -0
  983. package/dist/dts/FiberRef.d.ts.map +1 -0
  984. package/dist/dts/FiberRefs.d.ts +256 -0
  985. package/dist/dts/FiberRefs.d.ts.map +1 -0
  986. package/dist/dts/FiberRefsPatch.d.ts +125 -0
  987. package/dist/dts/FiberRefsPatch.d.ts.map +1 -0
  988. package/dist/dts/FiberSet.d.ts +236 -0
  989. package/dist/dts/FiberSet.d.ts.map +1 -0
  990. package/dist/dts/FiberStatus.d.ts +94 -0
  991. package/dist/dts/FiberStatus.d.ts.map +1 -0
  992. package/dist/dts/Function.d.ts +660 -0
  993. package/dist/dts/Function.d.ts.map +1 -0
  994. package/dist/dts/GlobalValue.d.ts +25 -0
  995. package/dist/dts/GlobalValue.d.ts.map +1 -0
  996. package/dist/dts/Graph.d.ts +1753 -0
  997. package/dist/dts/Graph.d.ts.map +1 -0
  998. package/dist/dts/GroupBy.d.ts +125 -0
  999. package/dist/dts/GroupBy.d.ts.map +1 -0
  1000. package/dist/dts/HKT.d.ts +41 -0
  1001. package/dist/dts/HKT.d.ts.map +1 -0
  1002. package/dist/dts/Hash.d.ts +79 -0
  1003. package/dist/dts/Hash.d.ts.map +1 -0
  1004. package/dist/dts/HashMap.d.ts +863 -0
  1005. package/dist/dts/HashMap.d.ts.map +1 -0
  1006. package/dist/dts/HashRing.d.ts +158 -0
  1007. package/dist/dts/HashRing.d.ts.map +1 -0
  1008. package/dist/dts/HashSet.d.ts +2271 -0
  1009. package/dist/dts/HashSet.d.ts.map +1 -0
  1010. package/dist/dts/Inspectable.d.ts +88 -0
  1011. package/dist/dts/Inspectable.d.ts.map +1 -0
  1012. package/dist/dts/Iterable.d.ts +1047 -0
  1013. package/dist/dts/Iterable.d.ts.map +1 -0
  1014. package/dist/dts/JSONSchema.d.ts +268 -0
  1015. package/dist/dts/JSONSchema.d.ts.map +1 -0
  1016. package/dist/dts/KeyedPool.d.ts +182 -0
  1017. package/dist/dts/KeyedPool.d.ts.map +1 -0
  1018. package/dist/dts/Layer.d.ts +1374 -0
  1019. package/dist/dts/Layer.d.ts.map +1 -0
  1020. package/dist/dts/LayerMap.d.ts +265 -0
  1021. package/dist/dts/LayerMap.d.ts.map +1 -0
  1022. package/dist/dts/List.d.ts +937 -0
  1023. package/dist/dts/List.d.ts.map +1 -0
  1024. package/dist/dts/LogLevel.d.ts +333 -0
  1025. package/dist/dts/LogLevel.d.ts.map +1 -0
  1026. package/dist/dts/LogSpan.d.ts +19 -0
  1027. package/dist/dts/LogSpan.d.ts.map +1 -0
  1028. package/dist/dts/Logger.d.ts +795 -0
  1029. package/dist/dts/Logger.d.ts.map +1 -0
  1030. package/dist/dts/Mailbox.d.ts +274 -0
  1031. package/dist/dts/Mailbox.d.ts.map +1 -0
  1032. package/dist/dts/ManagedRuntime.d.ts +154 -0
  1033. package/dist/dts/ManagedRuntime.d.ts.map +1 -0
  1034. package/dist/dts/Match.d.ts +1140 -0
  1035. package/dist/dts/Match.d.ts.map +1 -0
  1036. package/dist/dts/MergeDecision.d.ts +86 -0
  1037. package/dist/dts/MergeDecision.d.ts.map +1 -0
  1038. package/dist/dts/MergeState.d.ts +130 -0
  1039. package/dist/dts/MergeState.d.ts.map +1 -0
  1040. package/dist/dts/MergeStrategy.d.ts +104 -0
  1041. package/dist/dts/MergeStrategy.d.ts.map +1 -0
  1042. package/dist/dts/Metric.d.ts +1042 -0
  1043. package/dist/dts/Metric.d.ts.map +1 -0
  1044. package/dist/dts/MetricBoundaries.d.ts +58 -0
  1045. package/dist/dts/MetricBoundaries.d.ts.map +1 -0
  1046. package/dist/dts/MetricHook.d.ts +155 -0
  1047. package/dist/dts/MetricHook.d.ts.map +1 -0
  1048. package/dist/dts/MetricKey.d.ts +222 -0
  1049. package/dist/dts/MetricKey.d.ts.map +1 -0
  1050. package/dist/dts/MetricKeyType.d.ts +224 -0
  1051. package/dist/dts/MetricKeyType.d.ts.map +1 -0
  1052. package/dist/dts/MetricLabel.d.ts +42 -0
  1053. package/dist/dts/MetricLabel.d.ts.map +1 -0
  1054. package/dist/dts/MetricPair.d.ts +54 -0
  1055. package/dist/dts/MetricPair.d.ts.map +1 -0
  1056. package/dist/dts/MetricPolling.d.ts +151 -0
  1057. package/dist/dts/MetricPolling.d.ts.map +1 -0
  1058. package/dist/dts/MetricRegistry.d.ts +34 -0
  1059. package/dist/dts/MetricRegistry.d.ts.map +1 -0
  1060. package/dist/dts/MetricState.d.ts +238 -0
  1061. package/dist/dts/MetricState.d.ts.map +1 -0
  1062. package/dist/dts/Micro.d.ts +3440 -0
  1063. package/dist/dts/Micro.d.ts.map +1 -0
  1064. package/dist/dts/ModuleVersion.d.ts +11 -0
  1065. package/dist/dts/ModuleVersion.d.ts.map +1 -0
  1066. package/dist/dts/MutableHashMap.d.ts +170 -0
  1067. package/dist/dts/MutableHashMap.d.ts.map +1 -0
  1068. package/dist/dts/MutableHashSet.d.ts +547 -0
  1069. package/dist/dts/MutableHashSet.d.ts.map +1 -0
  1070. package/dist/dts/MutableList.d.ts +150 -0
  1071. package/dist/dts/MutableList.d.ts.map +1 -0
  1072. package/dist/dts/MutableQueue.d.ts +189 -0
  1073. package/dist/dts/MutableQueue.d.ts.map +1 -0
  1074. package/dist/dts/MutableRef.d.ts +175 -0
  1075. package/dist/dts/MutableRef.d.ts.map +1 -0
  1076. package/dist/dts/NonEmptyIterable.d.ts +21 -0
  1077. package/dist/dts/NonEmptyIterable.d.ts.map +1 -0
  1078. package/dist/dts/Number.d.ts +1361 -0
  1079. package/dist/dts/Number.d.ts.map +1 -0
  1080. package/dist/dts/Option.d.ts +3757 -0
  1081. package/dist/dts/Option.d.ts.map +1 -0
  1082. package/dist/dts/Order.d.ts +260 -0
  1083. package/dist/dts/Order.d.ts.map +1 -0
  1084. package/dist/dts/Ordering.d.ts +144 -0
  1085. package/dist/dts/Ordering.d.ts.map +1 -0
  1086. package/dist/dts/ParseResult.d.ts +560 -0
  1087. package/dist/dts/ParseResult.d.ts.map +1 -0
  1088. package/dist/dts/PartitionedSemaphore.d.ts +76 -0
  1089. package/dist/dts/PartitionedSemaphore.d.ts.map +1 -0
  1090. package/dist/dts/Pipeable.d.ts +65 -0
  1091. package/dist/dts/Pipeable.d.ts.map +1 -0
  1092. package/dist/dts/Pool.d.ts +201 -0
  1093. package/dist/dts/Pool.d.ts.map +1 -0
  1094. package/dist/dts/Predicate.d.ts +2197 -0
  1095. package/dist/dts/Predicate.d.ts.map +1 -0
  1096. package/dist/dts/Pretty.d.ts +26 -0
  1097. package/dist/dts/Pretty.d.ts.map +1 -0
  1098. package/dist/dts/PrimaryKey.d.ts +21 -0
  1099. package/dist/dts/PrimaryKey.d.ts.map +1 -0
  1100. package/dist/dts/PubSub.d.ts +197 -0
  1101. package/dist/dts/PubSub.d.ts.map +1 -0
  1102. package/dist/dts/Queue.d.ts +664 -0
  1103. package/dist/dts/Queue.d.ts.map +1 -0
  1104. package/dist/dts/Random.d.ts +183 -0
  1105. package/dist/dts/Random.d.ts.map +1 -0
  1106. package/dist/dts/RateLimiter.d.ts +134 -0
  1107. package/dist/dts/RateLimiter.d.ts.map +1 -0
  1108. package/dist/dts/RcMap.d.ts +231 -0
  1109. package/dist/dts/RcMap.d.ts.map +1 -0
  1110. package/dist/dts/RcRef.d.ts +111 -0
  1111. package/dist/dts/RcRef.d.ts.map +1 -0
  1112. package/dist/dts/Readable.d.ts +72 -0
  1113. package/dist/dts/Readable.d.ts.map +1 -0
  1114. package/dist/dts/Record.d.ts +1547 -0
  1115. package/dist/dts/Record.d.ts.map +1 -0
  1116. package/dist/dts/RedBlackTree.d.ts +676 -0
  1117. package/dist/dts/RedBlackTree.d.ts.map +1 -0
  1118. package/dist/dts/Redacted.d.ts +133 -0
  1119. package/dist/dts/Redacted.d.ts.map +1 -0
  1120. package/dist/dts/Ref.d.ts +250 -0
  1121. package/dist/dts/Ref.d.ts.map +1 -0
  1122. package/dist/dts/RegExp.d.ts +31 -0
  1123. package/dist/dts/RegExp.d.ts.map +1 -0
  1124. package/dist/dts/Reloadable.d.ts +102 -0
  1125. package/dist/dts/Reloadable.d.ts.map +1 -0
  1126. package/dist/dts/Request.d.ts +383 -0
  1127. package/dist/dts/Request.d.ts.map +1 -0
  1128. package/dist/dts/RequestBlock.d.ts +94 -0
  1129. package/dist/dts/RequestBlock.d.ts.map +1 -0
  1130. package/dist/dts/RequestResolver.d.ts +413 -0
  1131. package/dist/dts/RequestResolver.d.ts.map +1 -0
  1132. package/dist/dts/Resource.d.ts +99 -0
  1133. package/dist/dts/Resource.d.ts.map +1 -0
  1134. package/dist/dts/Runtime.d.ts +578 -0
  1135. package/dist/dts/Runtime.d.ts.map +1 -0
  1136. package/dist/dts/RuntimeFlags.d.ts +397 -0
  1137. package/dist/dts/RuntimeFlags.d.ts.map +1 -0
  1138. package/dist/dts/RuntimeFlagsPatch.d.ts +273 -0
  1139. package/dist/dts/RuntimeFlagsPatch.d.ts.map +1 -0
  1140. package/dist/dts/STM.d.ts +2645 -0
  1141. package/dist/dts/STM.d.ts.map +1 -0
  1142. package/dist/dts/Schedule.d.ts +3509 -0
  1143. package/dist/dts/Schedule.d.ts.map +1 -0
  1144. package/dist/dts/ScheduleDecision.d.ts +50 -0
  1145. package/dist/dts/ScheduleDecision.d.ts.map +1 -0
  1146. package/dist/dts/ScheduleInterval.d.ts +204 -0
  1147. package/dist/dts/ScheduleInterval.d.ts.map +1 -0
  1148. package/dist/dts/ScheduleIntervals.d.ts +159 -0
  1149. package/dist/dts/ScheduleIntervals.d.ts.map +1 -0
  1150. package/dist/dts/Scheduler.d.ts +161 -0
  1151. package/dist/dts/Scheduler.d.ts.map +1 -0
  1152. package/dist/dts/Schema.d.ts +5094 -0
  1153. package/dist/dts/Schema.d.ts.map +1 -0
  1154. package/dist/dts/SchemaAST.d.ts +1360 -0
  1155. package/dist/dts/SchemaAST.d.ts.map +1 -0
  1156. package/dist/dts/Scope.d.ts +194 -0
  1157. package/dist/dts/Scope.d.ts.map +1 -0
  1158. package/dist/dts/ScopedCache.d.ts +127 -0
  1159. package/dist/dts/ScopedCache.d.ts.map +1 -0
  1160. package/dist/dts/ScopedRef.d.ts +125 -0
  1161. package/dist/dts/ScopedRef.d.ts.map +1 -0
  1162. package/dist/dts/Secret.d.ts +76 -0
  1163. package/dist/dts/Secret.d.ts.map +1 -0
  1164. package/dist/dts/SingleProducerAsyncInput.d.ts +57 -0
  1165. package/dist/dts/SingleProducerAsyncInput.d.ts.map +1 -0
  1166. package/dist/dts/Sink.d.ts +1616 -0
  1167. package/dist/dts/Sink.d.ts.map +1 -0
  1168. package/dist/dts/SortedMap.d.ts +234 -0
  1169. package/dist/dts/SortedMap.d.ts.map +1 -0
  1170. package/dist/dts/SortedSet.d.ts +333 -0
  1171. package/dist/dts/SortedSet.d.ts.map +1 -0
  1172. package/dist/dts/Stream.d.ts +10803 -0
  1173. package/dist/dts/Stream.d.ts.map +1 -0
  1174. package/dist/dts/StreamEmit.d.ts +117 -0
  1175. package/dist/dts/StreamEmit.d.ts.map +1 -0
  1176. package/dist/dts/StreamHaltStrategy.d.ts +116 -0
  1177. package/dist/dts/StreamHaltStrategy.d.ts.map +1 -0
  1178. package/dist/dts/Streamable.d.ts +27 -0
  1179. package/dist/dts/Streamable.d.ts.map +1 -0
  1180. package/dist/dts/String.d.ts +848 -0
  1181. package/dist/dts/String.d.ts.map +1 -0
  1182. package/dist/dts/Struct.d.ts +295 -0
  1183. package/dist/dts/Struct.d.ts.map +1 -0
  1184. package/dist/dts/Subscribable.d.ts +76 -0
  1185. package/dist/dts/Subscribable.d.ts.map +1 -0
  1186. package/dist/dts/SubscriptionRef.d.ts +384 -0
  1187. package/dist/dts/SubscriptionRef.d.ts.map +1 -0
  1188. package/dist/dts/Supervisor.d.ts +171 -0
  1189. package/dist/dts/Supervisor.d.ts.map +1 -0
  1190. package/dist/dts/Symbol.d.ts +26 -0
  1191. package/dist/dts/Symbol.d.ts.map +1 -0
  1192. package/dist/dts/SynchronizedRef.d.ts +378 -0
  1193. package/dist/dts/SynchronizedRef.d.ts.map +1 -0
  1194. package/dist/dts/TArray.d.ts +857 -0
  1195. package/dist/dts/TArray.d.ts.map +1 -0
  1196. package/dist/dts/TDeferred.d.ts +104 -0
  1197. package/dist/dts/TDeferred.d.ts.map +1 -0
  1198. package/dist/dts/TMap.d.ts +780 -0
  1199. package/dist/dts/TMap.d.ts.map +1 -0
  1200. package/dist/dts/TPriorityQueue.d.ts +250 -0
  1201. package/dist/dts/TPriorityQueue.d.ts.map +1 -0
  1202. package/dist/dts/TPubSub.d.ts +186 -0
  1203. package/dist/dts/TPubSub.d.ts.map +1 -0
  1204. package/dist/dts/TQueue.d.ts +492 -0
  1205. package/dist/dts/TQueue.d.ts.map +1 -0
  1206. package/dist/dts/TRandom.d.ts +108 -0
  1207. package/dist/dts/TRandom.d.ts.map +1 -0
  1208. package/dist/dts/TReentrantLock.d.ts +230 -0
  1209. package/dist/dts/TReentrantLock.d.ts.map +1 -0
  1210. package/dist/dts/TRef.d.ts +235 -0
  1211. package/dist/dts/TRef.d.ts.map +1 -0
  1212. package/dist/dts/TSemaphore.d.ts +145 -0
  1213. package/dist/dts/TSemaphore.d.ts.map +1 -0
  1214. package/dist/dts/TSet.d.ts +564 -0
  1215. package/dist/dts/TSet.d.ts.map +1 -0
  1216. package/dist/dts/TSubscriptionRef.d.ts +251 -0
  1217. package/dist/dts/TSubscriptionRef.d.ts.map +1 -0
  1218. package/dist/dts/Take.d.ts +271 -0
  1219. package/dist/dts/Take.d.ts.map +1 -0
  1220. package/dist/dts/TestAnnotation.d.ts +71 -0
  1221. package/dist/dts/TestAnnotation.d.ts.map +1 -0
  1222. package/dist/dts/TestAnnotationMap.d.ts +56 -0
  1223. package/dist/dts/TestAnnotationMap.d.ts.map +1 -0
  1224. package/dist/dts/TestAnnotations.d.ts +59 -0
  1225. package/dist/dts/TestAnnotations.d.ts.map +1 -0
  1226. package/dist/dts/TestClock.d.ts +147 -0
  1227. package/dist/dts/TestClock.d.ts.map +1 -0
  1228. package/dist/dts/TestConfig.d.ts +45 -0
  1229. package/dist/dts/TestConfig.d.ts.map +1 -0
  1230. package/dist/dts/TestContext.d.ts +15 -0
  1231. package/dist/dts/TestContext.d.ts.map +1 -0
  1232. package/dist/dts/TestLive.d.ts +35 -0
  1233. package/dist/dts/TestLive.d.ts.map +1 -0
  1234. package/dist/dts/TestServices.d.ts +231 -0
  1235. package/dist/dts/TestServices.d.ts.map +1 -0
  1236. package/dist/dts/TestSized.d.ts +36 -0
  1237. package/dist/dts/TestSized.d.ts.map +1 -0
  1238. package/dist/dts/Tracer.d.ts +152 -0
  1239. package/dist/dts/Tracer.d.ts.map +1 -0
  1240. package/dist/dts/Trie.d.ts +1828 -0
  1241. package/dist/dts/Trie.d.ts.map +1 -0
  1242. package/dist/dts/Tuple.d.ts +446 -0
  1243. package/dist/dts/Tuple.d.ts.map +1 -0
  1244. package/dist/dts/Types.d.ts +330 -0
  1245. package/dist/dts/Types.d.ts.map +1 -0
  1246. package/dist/dts/Unify.d.ts +75 -0
  1247. package/dist/dts/Unify.d.ts.map +1 -0
  1248. package/dist/dts/UpstreamPullRequest.d.ts +109 -0
  1249. package/dist/dts/UpstreamPullRequest.d.ts.map +1 -0
  1250. package/dist/dts/UpstreamPullStrategy.d.ts +110 -0
  1251. package/dist/dts/UpstreamPullStrategy.d.ts.map +1 -0
  1252. package/dist/dts/Utils.d.ts +283 -0
  1253. package/dist/dts/Utils.d.ts.map +1 -0
  1254. package/dist/dts/index.d.ts +1385 -0
  1255. package/dist/dts/index.d.ts.map +1 -0
  1256. package/dist/dts/internal/array.d.ts +5 -0
  1257. package/dist/dts/internal/array.d.ts.map +1 -0
  1258. package/dist/dts/internal/blockedRequests.d.ts +2 -0
  1259. package/dist/dts/internal/blockedRequests.d.ts.map +1 -0
  1260. package/dist/dts/internal/cache.d.ts +2 -0
  1261. package/dist/dts/internal/cache.d.ts.map +1 -0
  1262. package/dist/dts/internal/cause.d.ts +2 -0
  1263. package/dist/dts/internal/cause.d.ts.map +1 -0
  1264. package/dist/dts/internal/channel/channelExecutor.d.ts +3 -0
  1265. package/dist/dts/internal/channel/channelExecutor.d.ts.map +1 -0
  1266. package/dist/dts/internal/channel/channelState.d.ts +2 -0
  1267. package/dist/dts/internal/channel/channelState.d.ts.map +1 -0
  1268. package/dist/dts/internal/channel/childExecutorDecision.d.ts +2 -0
  1269. package/dist/dts/internal/channel/childExecutorDecision.d.ts.map +1 -0
  1270. package/dist/dts/internal/channel/continuation.d.ts +2 -0
  1271. package/dist/dts/internal/channel/continuation.d.ts.map +1 -0
  1272. package/dist/dts/internal/channel/mergeDecision.d.ts +2 -0
  1273. package/dist/dts/internal/channel/mergeDecision.d.ts.map +1 -0
  1274. package/dist/dts/internal/channel/mergeState.d.ts +2 -0
  1275. package/dist/dts/internal/channel/mergeState.d.ts.map +1 -0
  1276. package/dist/dts/internal/channel/mergeStrategy.d.ts +2 -0
  1277. package/dist/dts/internal/channel/mergeStrategy.d.ts.map +1 -0
  1278. package/dist/dts/internal/channel/singleProducerAsyncInput.d.ts +2 -0
  1279. package/dist/dts/internal/channel/singleProducerAsyncInput.d.ts.map +1 -0
  1280. package/dist/dts/internal/channel/subexecutor.d.ts +2 -0
  1281. package/dist/dts/internal/channel/subexecutor.d.ts.map +1 -0
  1282. package/dist/dts/internal/channel/upstreamPullRequest.d.ts +2 -0
  1283. package/dist/dts/internal/channel/upstreamPullRequest.d.ts.map +1 -0
  1284. package/dist/dts/internal/channel/upstreamPullStrategy.d.ts +2 -0
  1285. package/dist/dts/internal/channel/upstreamPullStrategy.d.ts.map +1 -0
  1286. package/dist/dts/internal/channel.d.ts +2 -0
  1287. package/dist/dts/internal/channel.d.ts.map +1 -0
  1288. package/dist/dts/internal/clock.d.ts +2 -0
  1289. package/dist/dts/internal/clock.d.ts.map +1 -0
  1290. package/dist/dts/internal/completedRequestMap.d.ts +2 -0
  1291. package/dist/dts/internal/completedRequestMap.d.ts.map +1 -0
  1292. package/dist/dts/internal/concurrency.d.ts +2 -0
  1293. package/dist/dts/internal/concurrency.d.ts.map +1 -0
  1294. package/dist/dts/internal/config.d.ts +2 -0
  1295. package/dist/dts/internal/config.d.ts.map +1 -0
  1296. package/dist/dts/internal/configError.d.ts +2 -0
  1297. package/dist/dts/internal/configError.d.ts.map +1 -0
  1298. package/dist/dts/internal/configProvider/pathPatch.d.ts +2 -0
  1299. package/dist/dts/internal/configProvider/pathPatch.d.ts.map +1 -0
  1300. package/dist/dts/internal/configProvider.d.ts +2 -0
  1301. package/dist/dts/internal/configProvider.d.ts.map +1 -0
  1302. package/dist/dts/internal/console.d.ts +2 -0
  1303. package/dist/dts/internal/console.d.ts.map +1 -0
  1304. package/dist/dts/internal/context.d.ts +2 -0
  1305. package/dist/dts/internal/context.d.ts.map +1 -0
  1306. package/dist/dts/internal/core-effect.d.ts +8 -0
  1307. package/dist/dts/internal/core-effect.d.ts.map +1 -0
  1308. package/dist/dts/internal/core-stream.d.ts +9 -0
  1309. package/dist/dts/internal/core-stream.d.ts.map +1 -0
  1310. package/dist/dts/internal/core.d.ts +9 -0
  1311. package/dist/dts/internal/core.d.ts.map +1 -0
  1312. package/dist/dts/internal/data.d.ts +2 -0
  1313. package/dist/dts/internal/data.d.ts.map +1 -0
  1314. package/dist/dts/internal/dataSource.d.ts +2 -0
  1315. package/dist/dts/internal/dataSource.d.ts.map +1 -0
  1316. package/dist/dts/internal/dateTime.d.ts +2 -0
  1317. package/dist/dts/internal/dateTime.d.ts.map +1 -0
  1318. package/dist/dts/internal/defaultServices/console.d.ts +2 -0
  1319. package/dist/dts/internal/defaultServices/console.d.ts.map +1 -0
  1320. package/dist/dts/internal/defaultServices.d.ts +10 -0
  1321. package/dist/dts/internal/defaultServices.d.ts.map +1 -0
  1322. package/dist/dts/internal/deferred.d.ts +2 -0
  1323. package/dist/dts/internal/deferred.d.ts.map +1 -0
  1324. package/dist/dts/internal/differ/chunkPatch.d.ts +2 -0
  1325. package/dist/dts/internal/differ/chunkPatch.d.ts.map +1 -0
  1326. package/dist/dts/internal/differ/contextPatch.d.ts +2 -0
  1327. package/dist/dts/internal/differ/contextPatch.d.ts.map +1 -0
  1328. package/dist/dts/internal/differ/hashMapPatch.d.ts +2 -0
  1329. package/dist/dts/internal/differ/hashMapPatch.d.ts.map +1 -0
  1330. package/dist/dts/internal/differ/hashSetPatch.d.ts +2 -0
  1331. package/dist/dts/internal/differ/hashSetPatch.d.ts.map +1 -0
  1332. package/dist/dts/internal/differ/orPatch.d.ts +2 -0
  1333. package/dist/dts/internal/differ/orPatch.d.ts.map +1 -0
  1334. package/dist/dts/internal/differ/readonlyArrayPatch.d.ts +2 -0
  1335. package/dist/dts/internal/differ/readonlyArrayPatch.d.ts.map +1 -0
  1336. package/dist/dts/internal/differ.d.ts +2 -0
  1337. package/dist/dts/internal/differ.d.ts.map +1 -0
  1338. package/dist/dts/internal/doNotation.d.ts +2 -0
  1339. package/dist/dts/internal/doNotation.d.ts.map +1 -0
  1340. package/dist/dts/internal/effect/circular.d.ts +2 -0
  1341. package/dist/dts/internal/effect/circular.d.ts.map +1 -0
  1342. package/dist/dts/internal/effectable.d.ts +2 -0
  1343. package/dist/dts/internal/effectable.d.ts.map +1 -0
  1344. package/dist/dts/internal/either.d.ts +5 -0
  1345. package/dist/dts/internal/either.d.ts.map +1 -0
  1346. package/dist/dts/internal/encoding/base64.d.ts +2 -0
  1347. package/dist/dts/internal/encoding/base64.d.ts.map +1 -0
  1348. package/dist/dts/internal/encoding/base64Url.d.ts +2 -0
  1349. package/dist/dts/internal/encoding/base64Url.d.ts.map +1 -0
  1350. package/dist/dts/internal/encoding/common.d.ts +5 -0
  1351. package/dist/dts/internal/encoding/common.d.ts.map +1 -0
  1352. package/dist/dts/internal/encoding/hex.d.ts +2 -0
  1353. package/dist/dts/internal/encoding/hex.d.ts.map +1 -0
  1354. package/dist/dts/internal/errors.d.ts +5 -0
  1355. package/dist/dts/internal/errors.d.ts.map +1 -0
  1356. package/dist/dts/internal/executionPlan.d.ts +2 -0
  1357. package/dist/dts/internal/executionPlan.d.ts.map +1 -0
  1358. package/dist/dts/internal/executionStrategy.d.ts +2 -0
  1359. package/dist/dts/internal/executionStrategy.d.ts.map +1 -0
  1360. package/dist/dts/internal/fiber.d.ts +6 -0
  1361. package/dist/dts/internal/fiber.d.ts.map +1 -0
  1362. package/dist/dts/internal/fiberId.d.ts +2 -0
  1363. package/dist/dts/internal/fiberId.d.ts.map +1 -0
  1364. package/dist/dts/internal/fiberMessage.d.ts +2 -0
  1365. package/dist/dts/internal/fiberMessage.d.ts.map +1 -0
  1366. package/dist/dts/internal/fiberRefs/patch.d.ts +2 -0
  1367. package/dist/dts/internal/fiberRefs/patch.d.ts.map +1 -0
  1368. package/dist/dts/internal/fiberRefs.d.ts +2 -0
  1369. package/dist/dts/internal/fiberRefs.d.ts.map +1 -0
  1370. package/dist/dts/internal/fiberRuntime.d.ts +7 -0
  1371. package/dist/dts/internal/fiberRuntime.d.ts.map +1 -0
  1372. package/dist/dts/internal/fiberScope.d.ts +18 -0
  1373. package/dist/dts/internal/fiberScope.d.ts.map +1 -0
  1374. package/dist/dts/internal/fiberStatus.d.ts +2 -0
  1375. package/dist/dts/internal/fiberStatus.d.ts.map +1 -0
  1376. package/dist/dts/internal/groupBy.d.ts +2 -0
  1377. package/dist/dts/internal/groupBy.d.ts.map +1 -0
  1378. package/dist/dts/internal/hashMap/array.d.ts +2 -0
  1379. package/dist/dts/internal/hashMap/array.d.ts.map +1 -0
  1380. package/dist/dts/internal/hashMap/bitwise.d.ts +2 -0
  1381. package/dist/dts/internal/hashMap/bitwise.d.ts.map +1 -0
  1382. package/dist/dts/internal/hashMap/config.d.ts +2 -0
  1383. package/dist/dts/internal/hashMap/config.d.ts.map +1 -0
  1384. package/dist/dts/internal/hashMap/keySet.d.ts +2 -0
  1385. package/dist/dts/internal/hashMap/keySet.d.ts.map +1 -0
  1386. package/dist/dts/internal/hashMap/node.d.ts +2 -0
  1387. package/dist/dts/internal/hashMap/node.d.ts.map +1 -0
  1388. package/dist/dts/internal/hashMap.d.ts +9 -0
  1389. package/dist/dts/internal/hashMap.d.ts.map +1 -0
  1390. package/dist/dts/internal/hashSet.d.ts +2 -0
  1391. package/dist/dts/internal/hashSet.d.ts.map +1 -0
  1392. package/dist/dts/internal/keyedPool.d.ts +2 -0
  1393. package/dist/dts/internal/keyedPool.d.ts.map +1 -0
  1394. package/dist/dts/internal/layer/circular.d.ts +2 -0
  1395. package/dist/dts/internal/layer/circular.d.ts.map +1 -0
  1396. package/dist/dts/internal/layer.d.ts +16 -0
  1397. package/dist/dts/internal/layer.d.ts.map +1 -0
  1398. package/dist/dts/internal/logSpan.d.ts +2 -0
  1399. package/dist/dts/internal/logSpan.d.ts.map +1 -0
  1400. package/dist/dts/internal/logger-circular.d.ts +2 -0
  1401. package/dist/dts/internal/logger-circular.d.ts.map +1 -0
  1402. package/dist/dts/internal/logger.d.ts +2 -0
  1403. package/dist/dts/internal/logger.d.ts.map +1 -0
  1404. package/dist/dts/internal/mailbox.d.ts +2 -0
  1405. package/dist/dts/internal/mailbox.d.ts.map +1 -0
  1406. package/dist/dts/internal/managedRuntime/circular.d.ts +2 -0
  1407. package/dist/dts/internal/managedRuntime/circular.d.ts.map +1 -0
  1408. package/dist/dts/internal/managedRuntime.d.ts +2 -0
  1409. package/dist/dts/internal/managedRuntime.d.ts.map +1 -0
  1410. package/dist/dts/internal/matcher.d.ts +2 -0
  1411. package/dist/dts/internal/matcher.d.ts.map +1 -0
  1412. package/dist/dts/internal/metric/boundaries.d.ts +2 -0
  1413. package/dist/dts/internal/metric/boundaries.d.ts.map +1 -0
  1414. package/dist/dts/internal/metric/hook.d.ts +2 -0
  1415. package/dist/dts/internal/metric/hook.d.ts.map +1 -0
  1416. package/dist/dts/internal/metric/key.d.ts +2 -0
  1417. package/dist/dts/internal/metric/key.d.ts.map +1 -0
  1418. package/dist/dts/internal/metric/keyType.d.ts +2 -0
  1419. package/dist/dts/internal/metric/keyType.d.ts.map +1 -0
  1420. package/dist/dts/internal/metric/label.d.ts +2 -0
  1421. package/dist/dts/internal/metric/label.d.ts.map +1 -0
  1422. package/dist/dts/internal/metric/pair.d.ts +2 -0
  1423. package/dist/dts/internal/metric/pair.d.ts.map +1 -0
  1424. package/dist/dts/internal/metric/polling.d.ts +2 -0
  1425. package/dist/dts/internal/metric/polling.d.ts.map +1 -0
  1426. package/dist/dts/internal/metric/registry.d.ts +2 -0
  1427. package/dist/dts/internal/metric/registry.d.ts.map +1 -0
  1428. package/dist/dts/internal/metric/state.d.ts +22 -0
  1429. package/dist/dts/internal/metric/state.d.ts.map +1 -0
  1430. package/dist/dts/internal/metric.d.ts +2 -0
  1431. package/dist/dts/internal/metric.d.ts.map +1 -0
  1432. package/dist/dts/internal/opCodes/cause.d.ts +2 -0
  1433. package/dist/dts/internal/opCodes/cause.d.ts.map +1 -0
  1434. package/dist/dts/internal/opCodes/channel.d.ts +2 -0
  1435. package/dist/dts/internal/opCodes/channel.d.ts.map +1 -0
  1436. package/dist/dts/internal/opCodes/channelChildExecutorDecision.d.ts +2 -0
  1437. package/dist/dts/internal/opCodes/channelChildExecutorDecision.d.ts.map +1 -0
  1438. package/dist/dts/internal/opCodes/channelMergeDecision.d.ts +2 -0
  1439. package/dist/dts/internal/opCodes/channelMergeDecision.d.ts.map +1 -0
  1440. package/dist/dts/internal/opCodes/channelMergeState.d.ts +2 -0
  1441. package/dist/dts/internal/opCodes/channelMergeState.d.ts.map +1 -0
  1442. package/dist/dts/internal/opCodes/channelMergeStrategy.d.ts +2 -0
  1443. package/dist/dts/internal/opCodes/channelMergeStrategy.d.ts.map +1 -0
  1444. package/dist/dts/internal/opCodes/channelState.d.ts +2 -0
  1445. package/dist/dts/internal/opCodes/channelState.d.ts.map +1 -0
  1446. package/dist/dts/internal/opCodes/channelUpstreamPullRequest.d.ts +2 -0
  1447. package/dist/dts/internal/opCodes/channelUpstreamPullRequest.d.ts.map +1 -0
  1448. package/dist/dts/internal/opCodes/channelUpstreamPullStrategy.d.ts +2 -0
  1449. package/dist/dts/internal/opCodes/channelUpstreamPullStrategy.d.ts.map +1 -0
  1450. package/dist/dts/internal/opCodes/config.d.ts +2 -0
  1451. package/dist/dts/internal/opCodes/config.d.ts.map +1 -0
  1452. package/dist/dts/internal/opCodes/configError.d.ts +2 -0
  1453. package/dist/dts/internal/opCodes/configError.d.ts.map +1 -0
  1454. package/dist/dts/internal/opCodes/continuation.d.ts +2 -0
  1455. package/dist/dts/internal/opCodes/continuation.d.ts.map +1 -0
  1456. package/dist/dts/internal/opCodes/deferred.d.ts +2 -0
  1457. package/dist/dts/internal/opCodes/deferred.d.ts.map +1 -0
  1458. package/dist/dts/internal/opCodes/effect.d.ts +2 -0
  1459. package/dist/dts/internal/opCodes/effect.d.ts.map +1 -0
  1460. package/dist/dts/internal/opCodes/layer.d.ts +2 -0
  1461. package/dist/dts/internal/opCodes/layer.d.ts.map +1 -0
  1462. package/dist/dts/internal/opCodes/streamHaltStrategy.d.ts +2 -0
  1463. package/dist/dts/internal/opCodes/streamHaltStrategy.d.ts.map +1 -0
  1464. package/dist/dts/internal/option.d.ts +5 -0
  1465. package/dist/dts/internal/option.d.ts.map +1 -0
  1466. package/dist/dts/internal/pool.d.ts +2 -0
  1467. package/dist/dts/internal/pool.d.ts.map +1 -0
  1468. package/dist/dts/internal/pubsub.d.ts +2 -0
  1469. package/dist/dts/internal/pubsub.d.ts.map +1 -0
  1470. package/dist/dts/internal/query.d.ts +2 -0
  1471. package/dist/dts/internal/query.d.ts.map +1 -0
  1472. package/dist/dts/internal/queue.d.ts +2 -0
  1473. package/dist/dts/internal/queue.d.ts.map +1 -0
  1474. package/dist/dts/internal/random.d.ts +3 -0
  1475. package/dist/dts/internal/random.d.ts.map +1 -0
  1476. package/dist/dts/internal/rateLimiter.d.ts +2 -0
  1477. package/dist/dts/internal/rateLimiter.d.ts.map +1 -0
  1478. package/dist/dts/internal/rcMap.d.ts +2 -0
  1479. package/dist/dts/internal/rcMap.d.ts.map +1 -0
  1480. package/dist/dts/internal/rcRef.d.ts +2 -0
  1481. package/dist/dts/internal/rcRef.d.ts.map +1 -0
  1482. package/dist/dts/internal/redBlackTree/iterator.d.ts +2 -0
  1483. package/dist/dts/internal/redBlackTree/iterator.d.ts.map +1 -0
  1484. package/dist/dts/internal/redBlackTree/node.d.ts +14 -0
  1485. package/dist/dts/internal/redBlackTree/node.d.ts.map +1 -0
  1486. package/dist/dts/internal/redBlackTree.d.ts +2 -0
  1487. package/dist/dts/internal/redBlackTree.d.ts.map +1 -0
  1488. package/dist/dts/internal/redacted.d.ts +2 -0
  1489. package/dist/dts/internal/redacted.d.ts.map +1 -0
  1490. package/dist/dts/internal/ref.d.ts +2 -0
  1491. package/dist/dts/internal/ref.d.ts.map +1 -0
  1492. package/dist/dts/internal/reloadable.d.ts +2 -0
  1493. package/dist/dts/internal/reloadable.d.ts.map +1 -0
  1494. package/dist/dts/internal/request.d.ts +2 -0
  1495. package/dist/dts/internal/request.d.ts.map +1 -0
  1496. package/dist/dts/internal/resource.d.ts +2 -0
  1497. package/dist/dts/internal/resource.d.ts.map +1 -0
  1498. package/dist/dts/internal/ringBuffer.d.ts +2 -0
  1499. package/dist/dts/internal/ringBuffer.d.ts.map +1 -0
  1500. package/dist/dts/internal/runtime.d.ts +2 -0
  1501. package/dist/dts/internal/runtime.d.ts.map +1 -0
  1502. package/dist/dts/internal/runtimeFlags.d.ts +3 -0
  1503. package/dist/dts/internal/runtimeFlags.d.ts.map +1 -0
  1504. package/dist/dts/internal/runtimeFlagsPatch.d.ts +2 -0
  1505. package/dist/dts/internal/runtimeFlagsPatch.d.ts.map +1 -0
  1506. package/dist/dts/internal/schedule/decision.d.ts +2 -0
  1507. package/dist/dts/internal/schedule/decision.d.ts.map +1 -0
  1508. package/dist/dts/internal/schedule/interval.d.ts +2 -0
  1509. package/dist/dts/internal/schedule/interval.d.ts.map +1 -0
  1510. package/dist/dts/internal/schedule/intervals.d.ts +2 -0
  1511. package/dist/dts/internal/schedule/intervals.d.ts.map +1 -0
  1512. package/dist/dts/internal/schedule.d.ts +2 -0
  1513. package/dist/dts/internal/schedule.d.ts.map +1 -0
  1514. package/dist/dts/internal/schema/errors.d.ts +2 -0
  1515. package/dist/dts/internal/schema/errors.d.ts.map +1 -0
  1516. package/dist/dts/internal/schema/schemaId.d.ts +2 -0
  1517. package/dist/dts/internal/schema/schemaId.d.ts.map +1 -0
  1518. package/dist/dts/internal/schema/util.d.ts +2 -0
  1519. package/dist/dts/internal/schema/util.d.ts.map +1 -0
  1520. package/dist/dts/internal/scopedCache.d.ts +2 -0
  1521. package/dist/dts/internal/scopedCache.d.ts.map +1 -0
  1522. package/dist/dts/internal/scopedRef.d.ts +2 -0
  1523. package/dist/dts/internal/scopedRef.d.ts.map +1 -0
  1524. package/dist/dts/internal/secret.d.ts +2 -0
  1525. package/dist/dts/internal/secret.d.ts.map +1 -0
  1526. package/dist/dts/internal/singleShotGen.d.ts +2 -0
  1527. package/dist/dts/internal/singleShotGen.d.ts.map +1 -0
  1528. package/dist/dts/internal/sink.d.ts +2 -0
  1529. package/dist/dts/internal/sink.d.ts.map +1 -0
  1530. package/dist/dts/internal/stack.d.ts +2 -0
  1531. package/dist/dts/internal/stack.d.ts.map +1 -0
  1532. package/dist/dts/internal/stm/core.d.ts +2 -0
  1533. package/dist/dts/internal/stm/core.d.ts.map +1 -0
  1534. package/dist/dts/internal/stm/entry.d.ts +2 -0
  1535. package/dist/dts/internal/stm/entry.d.ts.map +1 -0
  1536. package/dist/dts/internal/stm/journal.d.ts +2 -0
  1537. package/dist/dts/internal/stm/journal.d.ts.map +1 -0
  1538. package/dist/dts/internal/stm/opCodes/stm.d.ts +2 -0
  1539. package/dist/dts/internal/stm/opCodes/stm.d.ts.map +1 -0
  1540. package/dist/dts/internal/stm/opCodes/stmState.d.ts +2 -0
  1541. package/dist/dts/internal/stm/opCodes/stmState.d.ts.map +1 -0
  1542. package/dist/dts/internal/stm/opCodes/strategy.d.ts +2 -0
  1543. package/dist/dts/internal/stm/opCodes/strategy.d.ts.map +1 -0
  1544. package/dist/dts/internal/stm/opCodes/tExit.d.ts +2 -0
  1545. package/dist/dts/internal/stm/opCodes/tExit.d.ts.map +1 -0
  1546. package/dist/dts/internal/stm/opCodes/tryCommit.d.ts +2 -0
  1547. package/dist/dts/internal/stm/opCodes/tryCommit.d.ts.map +1 -0
  1548. package/dist/dts/internal/stm/stm.d.ts +7 -0
  1549. package/dist/dts/internal/stm/stm.d.ts.map +1 -0
  1550. package/dist/dts/internal/stm/stmState.d.ts +2 -0
  1551. package/dist/dts/internal/stm/stmState.d.ts.map +1 -0
  1552. package/dist/dts/internal/stm/tArray.d.ts +2 -0
  1553. package/dist/dts/internal/stm/tArray.d.ts.map +1 -0
  1554. package/dist/dts/internal/stm/tDeferred.d.ts +2 -0
  1555. package/dist/dts/internal/stm/tDeferred.d.ts.map +1 -0
  1556. package/dist/dts/internal/stm/tExit.d.ts +5 -0
  1557. package/dist/dts/internal/stm/tExit.d.ts.map +1 -0
  1558. package/dist/dts/internal/stm/tMap.d.ts +2 -0
  1559. package/dist/dts/internal/stm/tMap.d.ts.map +1 -0
  1560. package/dist/dts/internal/stm/tPriorityQueue.d.ts +2 -0
  1561. package/dist/dts/internal/stm/tPriorityQueue.d.ts.map +1 -0
  1562. package/dist/dts/internal/stm/tPubSub.d.ts +2 -0
  1563. package/dist/dts/internal/stm/tPubSub.d.ts.map +1 -0
  1564. package/dist/dts/internal/stm/tQueue.d.ts +2 -0
  1565. package/dist/dts/internal/stm/tQueue.d.ts.map +1 -0
  1566. package/dist/dts/internal/stm/tRandom.d.ts +2 -0
  1567. package/dist/dts/internal/stm/tRandom.d.ts.map +1 -0
  1568. package/dist/dts/internal/stm/tReentrantLock.d.ts +2 -0
  1569. package/dist/dts/internal/stm/tReentrantLock.d.ts.map +1 -0
  1570. package/dist/dts/internal/stm/tRef.d.ts +4 -0
  1571. package/dist/dts/internal/stm/tRef.d.ts.map +1 -0
  1572. package/dist/dts/internal/stm/tSemaphore.d.ts +2 -0
  1573. package/dist/dts/internal/stm/tSemaphore.d.ts.map +1 -0
  1574. package/dist/dts/internal/stm/tSet.d.ts +2 -0
  1575. package/dist/dts/internal/stm/tSet.d.ts.map +1 -0
  1576. package/dist/dts/internal/stm/tSubscriptionRef.d.ts +2 -0
  1577. package/dist/dts/internal/stm/tSubscriptionRef.d.ts.map +1 -0
  1578. package/dist/dts/internal/stm/tryCommit.d.ts +2 -0
  1579. package/dist/dts/internal/stm/tryCommit.d.ts.map +1 -0
  1580. package/dist/dts/internal/stm/txnId.d.ts +2 -0
  1581. package/dist/dts/internal/stm/txnId.d.ts.map +1 -0
  1582. package/dist/dts/internal/stm/versioned.d.ts +2 -0
  1583. package/dist/dts/internal/stm/versioned.d.ts.map +1 -0
  1584. package/dist/dts/internal/stream/debounceState.d.ts +4 -0
  1585. package/dist/dts/internal/stream/debounceState.d.ts.map +1 -0
  1586. package/dist/dts/internal/stream/emit.d.ts +2 -0
  1587. package/dist/dts/internal/stream/emit.d.ts.map +1 -0
  1588. package/dist/dts/internal/stream/haltStrategy.d.ts +2 -0
  1589. package/dist/dts/internal/stream/haltStrategy.d.ts.map +1 -0
  1590. package/dist/dts/internal/stream/handoff.d.ts +2 -0
  1591. package/dist/dts/internal/stream/handoff.d.ts.map +1 -0
  1592. package/dist/dts/internal/stream/handoffSignal.d.ts +6 -0
  1593. package/dist/dts/internal/stream/handoffSignal.d.ts.map +1 -0
  1594. package/dist/dts/internal/stream/pull.d.ts +2 -0
  1595. package/dist/dts/internal/stream/pull.d.ts.map +1 -0
  1596. package/dist/dts/internal/stream/sinkEndReason.d.ts +2 -0
  1597. package/dist/dts/internal/stream/sinkEndReason.d.ts.map +1 -0
  1598. package/dist/dts/internal/stream/zipAllState.d.ts +2 -0
  1599. package/dist/dts/internal/stream/zipAllState.d.ts.map +1 -0
  1600. package/dist/dts/internal/stream/zipChunksState.d.ts +2 -0
  1601. package/dist/dts/internal/stream/zipChunksState.d.ts.map +1 -0
  1602. package/dist/dts/internal/stream.d.ts +29 -0
  1603. package/dist/dts/internal/stream.d.ts.map +1 -0
  1604. package/dist/dts/internal/string-utils.d.ts +7 -0
  1605. package/dist/dts/internal/string-utils.d.ts.map +1 -0
  1606. package/dist/dts/internal/subscriptionRef.d.ts +2 -0
  1607. package/dist/dts/internal/subscriptionRef.d.ts.map +1 -0
  1608. package/dist/dts/internal/supervisor/patch.d.ts +2 -0
  1609. package/dist/dts/internal/supervisor/patch.d.ts.map +1 -0
  1610. package/dist/dts/internal/supervisor.d.ts +2 -0
  1611. package/dist/dts/internal/supervisor.d.ts.map +1 -0
  1612. package/dist/dts/internal/synchronizedRef.d.ts +2 -0
  1613. package/dist/dts/internal/synchronizedRef.d.ts.map +1 -0
  1614. package/dist/dts/internal/take.d.ts +2 -0
  1615. package/dist/dts/internal/take.d.ts.map +1 -0
  1616. package/dist/dts/internal/testing/sleep.d.ts +2 -0
  1617. package/dist/dts/internal/testing/sleep.d.ts.map +1 -0
  1618. package/dist/dts/internal/testing/suspendedWarningData.d.ts +2 -0
  1619. package/dist/dts/internal/testing/suspendedWarningData.d.ts.map +1 -0
  1620. package/dist/dts/internal/testing/warningData.d.ts +2 -0
  1621. package/dist/dts/internal/testing/warningData.d.ts.map +1 -0
  1622. package/dist/dts/internal/tracer.d.ts +2 -0
  1623. package/dist/dts/internal/tracer.d.ts.map +1 -0
  1624. package/dist/dts/internal/trie.d.ts +2 -0
  1625. package/dist/dts/internal/trie.d.ts.map +1 -0
  1626. package/dist/dts/internal/version.d.ts +3 -0
  1627. package/dist/dts/internal/version.d.ts.map +1 -0
  1628. package/dist/esm/Arbitrary.js +798 -0
  1629. package/dist/esm/Arbitrary.js.map +1 -0
  1630. package/dist/esm/Array.js +2703 -0
  1631. package/dist/esm/Array.js.map +1 -0
  1632. package/dist/esm/BigDecimal.js +1087 -0
  1633. package/dist/esm/BigDecimal.js.map +1 -0
  1634. package/dist/esm/BigInt.js +548 -0
  1635. package/dist/esm/BigInt.js.map +1 -0
  1636. package/dist/esm/Boolean.js +240 -0
  1637. package/dist/esm/Boolean.js.map +1 -0
  1638. package/dist/esm/Brand.js +161 -0
  1639. package/dist/esm/Brand.js.map +1 -0
  1640. package/dist/esm/Cache.js +43 -0
  1641. package/dist/esm/Cache.js.map +1 -0
  1642. package/dist/esm/Cause.js +1004 -0
  1643. package/dist/esm/Cause.js.map +1 -0
  1644. package/dist/esm/Channel.js +887 -0
  1645. package/dist/esm/Channel.js.map +1 -0
  1646. package/dist/esm/ChildExecutorDecision.js +64 -0
  1647. package/dist/esm/ChildExecutorDecision.js.map +1 -0
  1648. package/dist/esm/Chunk.js +1083 -0
  1649. package/dist/esm/Chunk.js.map +1 -0
  1650. package/dist/esm/Clock.js +38 -0
  1651. package/dist/esm/Clock.js.map +1 -0
  1652. package/dist/esm/Config.js +321 -0
  1653. package/dist/esm/Config.js.map +1 -0
  1654. package/dist/esm/ConfigError.js +107 -0
  1655. package/dist/esm/ConfigError.js.map +1 -0
  1656. package/dist/esm/ConfigProvider.js +166 -0
  1657. package/dist/esm/ConfigProvider.js.map +1 -0
  1658. package/dist/esm/ConfigProviderPathPatch.js +30 -0
  1659. package/dist/esm/ConfigProviderPathPatch.js.map +1 -0
  1660. package/dist/esm/Console.js +118 -0
  1661. package/dist/esm/Console.js.map +1 -0
  1662. package/dist/esm/Context.js +360 -0
  1663. package/dist/esm/Context.js.map +1 -0
  1664. package/dist/esm/Cron.js +566 -0
  1665. package/dist/esm/Cron.js.map +1 -0
  1666. package/dist/esm/Data.js +305 -0
  1667. package/dist/esm/Data.js.map +1 -0
  1668. package/dist/esm/DateTime.js +1071 -0
  1669. package/dist/esm/DateTime.js.map +1 -0
  1670. package/dist/esm/DefaultServices.js +12 -0
  1671. package/dist/esm/DefaultServices.js.map +1 -0
  1672. package/dist/esm/Deferred.js +169 -0
  1673. package/dist/esm/Deferred.js.map +1 -0
  1674. package/dist/esm/Differ.js +132 -0
  1675. package/dist/esm/Differ.js.map +1 -0
  1676. package/dist/esm/Duration.js +702 -0
  1677. package/dist/esm/Duration.js.map +1 -0
  1678. package/dist/esm/Effect.js +10883 -0
  1679. package/dist/esm/Effect.js.map +1 -0
  1680. package/dist/esm/Effectable.js +49 -0
  1681. package/dist/esm/Effectable.js.map +1 -0
  1682. package/dist/esm/Either.js +688 -0
  1683. package/dist/esm/Either.js.map +1 -0
  1684. package/dist/esm/Encoding.js +136 -0
  1685. package/dist/esm/Encoding.js.map +1 -0
  1686. package/dist/esm/Equal.js +71 -0
  1687. package/dist/esm/Equal.js.map +1 -0
  1688. package/dist/esm/Equivalence.js +166 -0
  1689. package/dist/esm/Equivalence.js.map +1 -0
  1690. package/dist/esm/ExecutionPlan.js +99 -0
  1691. package/dist/esm/ExecutionPlan.js.map +1 -0
  1692. package/dist/esm/ExecutionStrategy.js +55 -0
  1693. package/dist/esm/ExecutionStrategy.js.map +1 -0
  1694. package/dist/esm/Exit.js +257 -0
  1695. package/dist/esm/Exit.js.map +1 -0
  1696. package/dist/esm/FastCheck.js +9 -0
  1697. package/dist/esm/FastCheck.js.map +1 -0
  1698. package/dist/esm/Fiber.js +350 -0
  1699. package/dist/esm/Fiber.js.map +1 -0
  1700. package/dist/esm/FiberHandle.js +316 -0
  1701. package/dist/esm/FiberHandle.js.map +1 -0
  1702. package/dist/esm/FiberId.js +115 -0
  1703. package/dist/esm/FiberId.js.map +1 -0
  1704. package/dist/esm/FiberMap.js +356 -0
  1705. package/dist/esm/FiberMap.js.map +1 -0
  1706. package/dist/esm/FiberRef.js +242 -0
  1707. package/dist/esm/FiberRef.js.map +1 -0
  1708. package/dist/esm/FiberRefs.js +92 -0
  1709. package/dist/esm/FiberRefs.js.map +1 -0
  1710. package/dist/esm/FiberRefsPatch.js +32 -0
  1711. package/dist/esm/FiberRefsPatch.js.map +1 -0
  1712. package/dist/esm/FiberSet.js +289 -0
  1713. package/dist/esm/FiberSet.js.map +1 -0
  1714. package/dist/esm/FiberStatus.js +52 -0
  1715. package/dist/esm/FiberStatus.js.map +1 -0
  1716. package/dist/esm/Function.js +467 -0
  1717. package/dist/esm/Function.js.map +1 -0
  1718. package/dist/esm/GlobalValue.js +52 -0
  1719. package/dist/esm/GlobalValue.js.map +1 -0
  1720. package/dist/esm/Graph.js +3019 -0
  1721. package/dist/esm/Graph.js.map +1 -0
  1722. package/dist/esm/GroupBy.js +39 -0
  1723. package/dist/esm/GroupBy.js.map +1 -0
  1724. package/dist/esm/HKT.js +2 -0
  1725. package/dist/esm/HKT.js.map +1 -0
  1726. package/dist/esm/Hash.js +166 -0
  1727. package/dist/esm/Hash.js.map +1 -0
  1728. package/dist/esm/HashMap.js +312 -0
  1729. package/dist/esm/HashMap.js.map +1 -0
  1730. package/dist/esm/HashRing.js +245 -0
  1731. package/dist/esm/HashRing.js.map +1 -0
  1732. package/dist/esm/HashSet.js +1253 -0
  1733. package/dist/esm/HashSet.js.map +1 -0
  1734. package/dist/esm/Inspectable.js +194 -0
  1735. package/dist/esm/Inspectable.js.map +1 -0
  1736. package/dist/esm/Iterable.js +987 -0
  1737. package/dist/esm/Iterable.js.map +1 -0
  1738. package/dist/esm/JSONSchema.js +715 -0
  1739. package/dist/esm/JSONSchema.js.map +1 -0
  1740. package/dist/esm/KeyedPool.js +76 -0
  1741. package/dist/esm/KeyedPool.js.map +1 -0
  1742. package/dist/esm/Layer.js +642 -0
  1743. package/dist/esm/Layer.js.map +1 -0
  1744. package/dist/esm/LayerMap.js +202 -0
  1745. package/dist/esm/LayerMap.js.map +1 -0
  1746. package/dist/esm/List.js +756 -0
  1747. package/dist/esm/List.js.map +1 -0
  1748. package/dist/esm/LogLevel.js +135 -0
  1749. package/dist/esm/LogLevel.js.map +1 -0
  1750. package/dist/esm/LogSpan.js +15 -0
  1751. package/dist/esm/LogSpan.js.map +1 -0
  1752. package/dist/esm/Logger.js +490 -0
  1753. package/dist/esm/Logger.js.map +1 -0
  1754. package/dist/esm/Mailbox.js +96 -0
  1755. package/dist/esm/Mailbox.js.map +1 -0
  1756. package/dist/esm/ManagedRuntime.js +42 -0
  1757. package/dist/esm/ManagedRuntime.js.map +1 -0
  1758. package/dist/esm/Match.js +828 -0
  1759. package/dist/esm/Match.js.map +1 -0
  1760. package/dist/esm/MergeDecision.js +35 -0
  1761. package/dist/esm/MergeDecision.js.map +1 -0
  1762. package/dist/esm/MergeState.js +58 -0
  1763. package/dist/esm/MergeState.js.map +1 -0
  1764. package/dist/esm/MergeStrategy.js +51 -0
  1765. package/dist/esm/MergeStrategy.js.map +1 -0
  1766. package/dist/esm/Metric.js +408 -0
  1767. package/dist/esm/Metric.js.map +1 -0
  1768. package/dist/esm/MetricBoundaries.js +33 -0
  1769. package/dist/esm/MetricBoundaries.js.map +1 -0
  1770. package/dist/esm/MetricHook.js +47 -0
  1771. package/dist/esm/MetricHook.js.map +1 -0
  1772. package/dist/esm/MetricKey.js +63 -0
  1773. package/dist/esm/MetricKey.js.map +1 -0
  1774. package/dist/esm/MetricKeyType.js +87 -0
  1775. package/dist/esm/MetricKeyType.js.map +1 -0
  1776. package/dist/esm/MetricLabel.js +17 -0
  1777. package/dist/esm/MetricLabel.js.map +1 -0
  1778. package/dist/esm/MetricPair.js +20 -0
  1779. package/dist/esm/MetricPair.js.map +1 -0
  1780. package/dist/esm/MetricPolling.js +59 -0
  1781. package/dist/esm/MetricPolling.js.map +1 -0
  1782. package/dist/esm/MetricRegistry.js +15 -0
  1783. package/dist/esm/MetricRegistry.js.map +1 -0
  1784. package/dist/esm/MetricState.js +87 -0
  1785. package/dist/esm/MetricState.js.map +1 -0
  1786. package/dist/esm/Micro.js +2528 -0
  1787. package/dist/esm/Micro.js.map +1 -0
  1788. package/dist/esm/ModuleVersion.js +17 -0
  1789. package/dist/esm/ModuleVersion.js.map +1 -0
  1790. package/dist/esm/MutableHashMap.js +299 -0
  1791. package/dist/esm/MutableHashMap.js.map +1 -0
  1792. package/dist/esm/MutableHashSet.js +511 -0
  1793. package/dist/esm/MutableHashSet.js.map +1 -0
  1794. package/dist/esm/MutableList.js +240 -0
  1795. package/dist/esm/MutableList.js.map +1 -0
  1796. package/dist/esm/MutableQueue.js +159 -0
  1797. package/dist/esm/MutableQueue.js.map +1 -0
  1798. package/dist/esm/MutableRef.js +127 -0
  1799. package/dist/esm/MutableRef.js.map +1 -0
  1800. package/dist/esm/NonEmptyIterable.js +16 -0
  1801. package/dist/esm/NonEmptyIterable.js.map +1 -0
  1802. package/dist/esm/Number.js +887 -0
  1803. package/dist/esm/Number.js.map +1 -0
  1804. package/dist/esm/Option.js +1785 -0
  1805. package/dist/esm/Option.js.map +1 -0
  1806. package/dist/esm/Order.js +252 -0
  1807. package/dist/esm/Order.js.map +1 -0
  1808. package/dist/esm/Ordering.js +72 -0
  1809. package/dist/esm/Ordering.js.map +1 -0
  1810. package/dist/esm/ParseResult.js +1556 -0
  1811. package/dist/esm/ParseResult.js.map +1 -0
  1812. package/dist/esm/PartitionedSemaphore.js +137 -0
  1813. package/dist/esm/PartitionedSemaphore.js.map +1 -0
  1814. package/dist/esm/Pipeable.js +62 -0
  1815. package/dist/esm/Pipeable.js.map +1 -0
  1816. package/dist/esm/Pool.js +100 -0
  1817. package/dist/esm/Pool.js.map +1 -0
  1818. package/dist/esm/Predicate.js +1117 -0
  1819. package/dist/esm/Predicate.js.map +1 -0
  1820. package/dist/esm/Pretty.js +174 -0
  1821. package/dist/esm/Pretty.js.map +1 -0
  1822. package/dist/esm/PrimaryKey.js +14 -0
  1823. package/dist/esm/PrimaryKey.js.map +1 -0
  1824. package/dist/esm/PubSub.js +120 -0
  1825. package/dist/esm/PubSub.js.map +1 -0
  1826. package/dist/esm/Queue.js +248 -0
  1827. package/dist/esm/Queue.js.map +1 -0
  1828. package/dist/esm/Random.js +138 -0
  1829. package/dist/esm/Random.js.map +1 -0
  1830. package/dist/esm/RateLimiter.js +77 -0
  1831. package/dist/esm/RateLimiter.js.map +1 -0
  1832. package/dist/esm/RcMap.js +69 -0
  1833. package/dist/esm/RcMap.js.map +1 -0
  1834. package/dist/esm/RcRef.js +51 -0
  1835. package/dist/esm/RcRef.js.map +1 -0
  1836. package/dist/esm/Readable.js +45 -0
  1837. package/dist/esm/Readable.js.map +1 -0
  1838. package/dist/esm/Record.js +846 -0
  1839. package/dist/esm/Record.js.map +1 -0
  1840. package/dist/esm/RedBlackTree.js +259 -0
  1841. package/dist/esm/RedBlackTree.js.map +1 -0
  1842. package/dist/esm/Redacted.js +93 -0
  1843. package/dist/esm/Redacted.js.map +1 -0
  1844. package/dist/esm/Ref.js +77 -0
  1845. package/dist/esm/Ref.js.map +1 -0
  1846. package/dist/esm/RegExp.js +37 -0
  1847. package/dist/esm/RegExp.js.map +1 -0
  1848. package/dist/esm/Reloadable.js +59 -0
  1849. package/dist/esm/Reloadable.js.map +1 -0
  1850. package/dist/esm/Request.js +140 -0
  1851. package/dist/esm/Request.js.map +1 -0
  1852. package/dist/esm/RequestBlock.js +35 -0
  1853. package/dist/esm/RequestBlock.js.map +1 -0
  1854. package/dist/esm/RequestResolver.js +175 -0
  1855. package/dist/esm/RequestResolver.js.map +1 -0
  1856. package/dist/esm/Resource.js +44 -0
  1857. package/dist/esm/Resource.js.map +1 -0
  1858. package/dist/esm/Runtime.js +181 -0
  1859. package/dist/esm/Runtime.js.map +1 -0
  1860. package/dist/esm/RuntimeFlags.js +251 -0
  1861. package/dist/esm/RuntimeFlags.js.map +1 -0
  1862. package/dist/esm/RuntimeFlagsPatch.js +134 -0
  1863. package/dist/esm/RuntimeFlagsPatch.js.map +1 -0
  1864. package/dist/esm/STM.js +1002 -0
  1865. package/dist/esm/STM.js.map +1 -0
  1866. package/dist/esm/Schedule.js +1595 -0
  1867. package/dist/esm/Schedule.js.map +1 -0
  1868. package/dist/esm/ScheduleDecision.js +32 -0
  1869. package/dist/esm/ScheduleDecision.js.map +1 -0
  1870. package/dist/esm/ScheduleInterval.js +100 -0
  1871. package/dist/esm/ScheduleInterval.js.map +1 -0
  1872. package/dist/esm/ScheduleIntervals.js +78 -0
  1873. package/dist/esm/ScheduleIntervals.js.map +1 -0
  1874. package/dist/esm/Scheduler.js +289 -0
  1875. package/dist/esm/Scheduler.js.map +1 -0
  1876. package/dist/esm/Schema.js +6035 -0
  1877. package/dist/esm/Schema.js.map +1 -0
  1878. package/dist/esm/SchemaAST.js +2485 -0
  1879. package/dist/esm/SchemaAST.js.map +1 -0
  1880. package/dist/esm/Scope.js +94 -0
  1881. package/dist/esm/Scope.js.map +1 -0
  1882. package/dist/esm/ScopedCache.js +24 -0
  1883. package/dist/esm/ScopedCache.js.map +1 -0
  1884. package/dist/esm/ScopedRef.js +42 -0
  1885. package/dist/esm/ScopedRef.js.map +1 -0
  1886. package/dist/esm/Secret.js +44 -0
  1887. package/dist/esm/Secret.js.map +1 -0
  1888. package/dist/esm/SingleProducerAsyncInput.js +7 -0
  1889. package/dist/esm/SingleProducerAsyncInput.js.map +1 -0
  1890. package/dist/esm/Sink.js +864 -0
  1891. package/dist/esm/Sink.js.map +1 -0
  1892. package/dist/esm/SortedMap.js +169 -0
  1893. package/dist/esm/SortedMap.js.map +1 -0
  1894. package/dist/esm/SortedSet.js +237 -0
  1895. package/dist/esm/SortedSet.js.map +1 -0
  1896. package/dist/esm/Stream.js +4192 -0
  1897. package/dist/esm/Stream.js.map +1 -0
  1898. package/dist/esm/StreamEmit.js +2 -0
  1899. package/dist/esm/StreamEmit.js.map +1 -0
  1900. package/dist/esm/StreamHaltStrategy.js +57 -0
  1901. package/dist/esm/StreamHaltStrategy.js.map +1 -0
  1902. package/dist/esm/Streamable.js +36 -0
  1903. package/dist/esm/Streamable.js.map +1 -0
  1904. package/dist/esm/String.js +635 -0
  1905. package/dist/esm/String.js.map +1 -0
  1906. package/dist/esm/Struct.js +191 -0
  1907. package/dist/esm/Struct.js.map +1 -0
  1908. package/dist/esm/Subscribable.js +56 -0
  1909. package/dist/esm/Subscribable.js.map +1 -0
  1910. package/dist/esm/SubscriptionRef.js +116 -0
  1911. package/dist/esm/SubscriptionRef.js.map +1 -0
  1912. package/dist/esm/Supervisor.js +107 -0
  1913. package/dist/esm/Supervisor.js.map +1 -0
  1914. package/dist/esm/Symbol.js +27 -0
  1915. package/dist/esm/Symbol.js.map +1 -0
  1916. package/dist/esm/SynchronizedRef.js +119 -0
  1917. package/dist/esm/SynchronizedRef.js.map +1 -0
  1918. package/dist/esm/TArray.js +306 -0
  1919. package/dist/esm/TArray.js.map +1 -0
  1920. package/dist/esm/TDeferred.js +39 -0
  1921. package/dist/esm/TDeferred.js.map +1 -0
  1922. package/dist/esm/TMap.js +279 -0
  1923. package/dist/esm/TMap.js.map +1 -0
  1924. package/dist/esm/TPriorityQueue.js +136 -0
  1925. package/dist/esm/TPriorityQueue.js.map +1 -0
  1926. package/dist/esm/TPubSub.js +131 -0
  1927. package/dist/esm/TPubSub.js.map +1 -0
  1928. package/dist/esm/TQueue.js +229 -0
  1929. package/dist/esm/TQueue.js.map +1 -0
  1930. package/dist/esm/TRandom.js +65 -0
  1931. package/dist/esm/TRandom.js.map +1 -0
  1932. package/dist/esm/TReentrantLock.js +142 -0
  1933. package/dist/esm/TReentrantLock.js.map +1 -0
  1934. package/dist/esm/TRef.js +75 -0
  1935. package/dist/esm/TRef.js.map +1 -0
  1936. package/dist/esm/TSemaphore.js +65 -0
  1937. package/dist/esm/TSemaphore.js.map +1 -0
  1938. package/dist/esm/TSet.js +201 -0
  1939. package/dist/esm/TSet.js.map +1 -0
  1940. package/dist/esm/TSubscriptionRef.js +87 -0
  1941. package/dist/esm/TSubscriptionRef.js.map +1 -0
  1942. package/dist/esm/Take.js +148 -0
  1943. package/dist/esm/Take.js.map +1 -0
  1944. package/dist/esm/TestAnnotation.js +94 -0
  1945. package/dist/esm/TestAnnotation.js.map +1 -0
  1946. package/dist/esm/TestAnnotationMap.js +80 -0
  1947. package/dist/esm/TestAnnotationMap.js.map +1 -0
  1948. package/dist/esm/TestAnnotations.js +61 -0
  1949. package/dist/esm/TestAnnotations.js.map +1 -0
  1950. package/dist/esm/TestClock.js +354 -0
  1951. package/dist/esm/TestClock.js.map +1 -0
  1952. package/dist/esm/TestConfig.js +13 -0
  1953. package/dist/esm/TestConfig.js.map +1 -0
  1954. package/dist/esm/TestContext.js +21 -0
  1955. package/dist/esm/TestContext.js.map +1 -0
  1956. package/dist/esm/TestLive.js +30 -0
  1957. package/dist/esm/TestLive.js.map +1 -0
  1958. package/dist/esm/TestServices.js +230 -0
  1959. package/dist/esm/TestServices.js.map +1 -0
  1960. package/dist/esm/TestSized.js +36 -0
  1961. package/dist/esm/TestSized.js.map +1 -0
  1962. package/dist/esm/Tracer.js +37 -0
  1963. package/dist/esm/Tracer.js.map +1 -0
  1964. package/dist/esm/Trie.js +716 -0
  1965. package/dist/esm/Trie.js.map +1 -0
  1966. package/dist/esm/Tuple.js +235 -0
  1967. package/dist/esm/Tuple.js.map +1 -0
  1968. package/dist/esm/Types.js +7 -0
  1969. package/dist/esm/Types.js.map +1 -0
  1970. package/dist/esm/Unify.js +9 -0
  1971. package/dist/esm/Unify.js.map +1 -0
  1972. package/dist/esm/UpstreamPullRequest.js +51 -0
  1973. package/dist/esm/UpstreamPullRequest.js.map +1 -0
  1974. package/dist/esm/UpstreamPullStrategy.js +51 -0
  1975. package/dist/esm/UpstreamPullStrategy.js.map +1 -0
  1976. package/dist/esm/Utils.js +357 -0
  1977. package/dist/esm/Utils.js.map +1 -0
  1978. package/dist/esm/index.js +1385 -0
  1979. package/dist/esm/index.js.map +1 -0
  1980. package/dist/esm/internal/array.js +6 -0
  1981. package/dist/esm/internal/array.js.map +1 -0
  1982. package/dist/esm/internal/blockedRequests.js +341 -0
  1983. package/dist/esm/internal/blockedRequests.js.map +1 -0
  1984. package/dist/esm/internal/cache.js +480 -0
  1985. package/dist/esm/internal/cache.js.map +1 -0
  1986. package/dist/esm/internal/cause.js +824 -0
  1987. package/dist/esm/internal/cause.js.map +1 -0
  1988. package/dist/esm/internal/channel/channelExecutor.js +688 -0
  1989. package/dist/esm/internal/channel/channelExecutor.js.map +1 -0
  1990. package/dist/esm/internal/channel/channelState.js +59 -0
  1991. package/dist/esm/internal/channel/channelState.js.map +1 -0
  1992. package/dist/esm/internal/channel/childExecutorDecision.js +60 -0
  1993. package/dist/esm/internal/channel/childExecutorDecision.js.map +1 -0
  1994. package/dist/esm/internal/channel/continuation.js +48 -0
  1995. package/dist/esm/internal/channel/continuation.js.map +1 -0
  1996. package/dist/esm/internal/channel/mergeDecision.js +49 -0
  1997. package/dist/esm/internal/channel/mergeDecision.js.map +1 -0
  1998. package/dist/esm/internal/channel/mergeState.js +69 -0
  1999. package/dist/esm/internal/channel/mergeState.js.map +1 -0
  2000. package/dist/esm/internal/channel/mergeStrategy.js +46 -0
  2001. package/dist/esm/internal/channel/mergeStrategy.js.map +1 -0
  2002. package/dist/esm/internal/channel/singleProducerAsyncInput.js +163 -0
  2003. package/dist/esm/internal/channel/singleProducerAsyncInput.js.map +1 -0
  2004. package/dist/esm/internal/channel/subexecutor.js +152 -0
  2005. package/dist/esm/internal/channel/subexecutor.js.map +1 -0
  2006. package/dist/esm/internal/channel/upstreamPullRequest.js +52 -0
  2007. package/dist/esm/internal/channel/upstreamPullRequest.js.map +1 -0
  2008. package/dist/esm/internal/channel/upstreamPullStrategy.js +52 -0
  2009. package/dist/esm/internal/channel/upstreamPullStrategy.js.map +1 -0
  2010. package/dist/esm/internal/channel.js +683 -0
  2011. package/dist/esm/internal/channel.js.map +1 -0
  2012. package/dist/esm/internal/clock.js +77 -0
  2013. package/dist/esm/internal/clock.js.map +1 -0
  2014. package/dist/esm/internal/completedRequestMap.js +5 -0
  2015. package/dist/esm/internal/completedRequestMap.js.map +1 -0
  2016. package/dist/esm/internal/concurrency.js +28 -0
  2017. package/dist/esm/internal/concurrency.js.map +1 -0
  2018. package/dist/esm/internal/config.js +363 -0
  2019. package/dist/esm/internal/config.js.map +1 -0
  2020. package/dist/esm/internal/configError.js +263 -0
  2021. package/dist/esm/internal/configError.js.map +1 -0
  2022. package/dist/esm/internal/configProvider/pathPatch.js +76 -0
  2023. package/dist/esm/internal/configProvider/pathPatch.js.map +1 -0
  2024. package/dist/esm/internal/configProvider.js +425 -0
  2025. package/dist/esm/internal/configProvider.js.map +1 -0
  2026. package/dist/esm/internal/console.js +54 -0
  2027. package/dist/esm/internal/console.js.map +1 -0
  2028. package/dist/esm/internal/context.js +253 -0
  2029. package/dist/esm/internal/context.js.map +1 -0
  2030. package/dist/esm/internal/core-effect.js +811 -0
  2031. package/dist/esm/internal/core-effect.js.map +1 -0
  2032. package/dist/esm/internal/core-stream.js +236 -0
  2033. package/dist/esm/internal/core-stream.js.map +1 -0
  2034. package/dist/esm/internal/core.js +1610 -0
  2035. package/dist/esm/internal/core.js.map +1 -0
  2036. package/dist/esm/internal/data.js +29 -0
  2037. package/dist/esm/internal/data.js.map +1 -0
  2038. package/dist/esm/internal/dataSource.js +93 -0
  2039. package/dist/esm/internal/dataSource.js.map +1 -0
  2040. package/dist/esm/internal/dateTime.js +796 -0
  2041. package/dist/esm/internal/dateTime.js.map +1 -0
  2042. package/dist/esm/internal/defaultServices/console.js +92 -0
  2043. package/dist/esm/internal/defaultServices/console.js.map +1 -0
  2044. package/dist/esm/internal/defaultServices.js +73 -0
  2045. package/dist/esm/internal/defaultServices.js.map +1 -0
  2046. package/dist/esm/internal/deferred.js +27 -0
  2047. package/dist/esm/internal/deferred.js.map +1 -0
  2048. package/dist/esm/internal/differ/chunkPatch.js +130 -0
  2049. package/dist/esm/internal/differ/chunkPatch.js.map +1 -0
  2050. package/dist/esm/internal/differ/contextPatch.js +143 -0
  2051. package/dist/esm/internal/differ/contextPatch.js.map +1 -0
  2052. package/dist/esm/internal/differ/hashMapPatch.js +130 -0
  2053. package/dist/esm/internal/differ/hashMapPatch.js.map +1 -0
  2054. package/dist/esm/internal/differ/hashSetPatch.js +101 -0
  2055. package/dist/esm/internal/differ/hashSetPatch.js.map +1 -0
  2056. package/dist/esm/internal/differ/orPatch.js +170 -0
  2057. package/dist/esm/internal/differ/orPatch.js.map +1 -0
  2058. package/dist/esm/internal/differ/readonlyArrayPatch.js +129 -0
  2059. package/dist/esm/internal/differ/readonlyArrayPatch.js.map +1 -0
  2060. package/dist/esm/internal/differ.js +134 -0
  2061. package/dist/esm/internal/differ.js.map +1 -0
  2062. package/dist/esm/internal/doNotation.js +16 -0
  2063. package/dist/esm/internal/doNotation.js.map +1 -0
  2064. package/dist/esm/internal/effect/circular.js +402 -0
  2065. package/dist/esm/internal/effect/circular.js.map +1 -0
  2066. package/dist/esm/internal/effectable.js +113 -0
  2067. package/dist/esm/internal/effectable.js.map +1 -0
  2068. package/dist/esm/internal/either.js +85 -0
  2069. package/dist/esm/internal/either.js.map +1 -0
  2070. package/dist/esm/internal/encoding/base64.js +71 -0
  2071. package/dist/esm/internal/encoding/base64.js.map +1 -0
  2072. package/dist/esm/internal/encoding/base64Url.js +21 -0
  2073. package/dist/esm/internal/encoding/base64Url.js.map +1 -0
  2074. package/dist/esm/internal/encoding/common.js +38 -0
  2075. package/dist/esm/internal/encoding/common.js.map +1 -0
  2076. package/dist/esm/internal/encoding/hex.js +48 -0
  2077. package/dist/esm/internal/encoding/hex.js.map +1 -0
  2078. package/dist/esm/internal/errors.js +6 -0
  2079. package/dist/esm/internal/errors.js.map +1 -0
  2080. package/dist/esm/internal/executionPlan.js +59 -0
  2081. package/dist/esm/internal/executionPlan.js.map +1 -0
  2082. package/dist/esm/internal/executionStrategy.js +44 -0
  2083. package/dist/esm/internal/executionStrategy.js.map +1 -0
  2084. package/dist/esm/internal/fiber.js +253 -0
  2085. package/dist/esm/internal/fiber.js.map +1 -0
  2086. package/dist/esm/internal/fiberId.js +219 -0
  2087. package/dist/esm/internal/fiberId.js.map +1 -0
  2088. package/dist/esm/internal/fiberMessage.js +28 -0
  2089. package/dist/esm/internal/fiberMessage.js.map +1 -0
  2090. package/dist/esm/internal/fiberRefs/patch.js +107 -0
  2091. package/dist/esm/internal/fiberRefs/patch.js.map +1 -0
  2092. package/dist/esm/internal/fiberRefs.js +189 -0
  2093. package/dist/esm/internal/fiberRefs.js.map +1 -0
  2094. package/dist/esm/internal/fiberRuntime.js +2148 -0
  2095. package/dist/esm/internal/fiberRuntime.js.map +1 -0
  2096. package/dist/esm/internal/fiberScope.js +44 -0
  2097. package/dist/esm/internal/fiberScope.js.map +1 -0
  2098. package/dist/esm/internal/fiberStatus.js +72 -0
  2099. package/dist/esm/internal/fiberStatus.js.map +1 -0
  2100. package/dist/esm/internal/groupBy.js +213 -0
  2101. package/dist/esm/internal/groupBy.js.map +1 -0
  2102. package/dist/esm/internal/hashMap/array.js +48 -0
  2103. package/dist/esm/internal/hashMap/array.js.map +1 -0
  2104. package/dist/esm/internal/hashMap/bitwise.js +29 -0
  2105. package/dist/esm/internal/hashMap/bitwise.js.map +1 -0
  2106. package/dist/esm/internal/hashMap/config.js +11 -0
  2107. package/dist/esm/internal/hashMap/config.js.map +1 -0
  2108. package/dist/esm/internal/hashMap/keySet.js +6 -0
  2109. package/dist/esm/internal/hashMap/keySet.js.map +1 -0
  2110. package/dist/esm/internal/hashMap/node.js +253 -0
  2111. package/dist/esm/internal/hashMap/node.js.map +1 -0
  2112. package/dist/esm/internal/hashMap.js +360 -0
  2113. package/dist/esm/internal/hashMap.js.map +1 -0
  2114. package/dist/esm/internal/hashSet.js +182 -0
  2115. package/dist/esm/internal/hashSet.js.map +1 -0
  2116. package/dist/esm/internal/keyedPool.js +159 -0
  2117. package/dist/esm/internal/keyedPool.js.map +1 -0
  2118. package/dist/esm/internal/layer/circular.js +63 -0
  2119. package/dist/esm/internal/layer/circular.js.map +1 -0
  2120. package/dist/esm/internal/layer.js +552 -0
  2121. package/dist/esm/internal/layer.js.map +1 -0
  2122. package/dist/esm/internal/logSpan.js +17 -0
  2123. package/dist/esm/internal/logSpan.js.map +1 -0
  2124. package/dist/esm/internal/logger-circular.js +19 -0
  2125. package/dist/esm/internal/logger-circular.js.map +1 -0
  2126. package/dist/esm/internal/logger.js +367 -0
  2127. package/dist/esm/internal/logger.js.map +1 -0
  2128. package/dist/esm/internal/mailbox.js +450 -0
  2129. package/dist/esm/internal/mailbox.js.map +1 -0
  2130. package/dist/esm/internal/managedRuntime/circular.js +4 -0
  2131. package/dist/esm/internal/managedRuntime/circular.js.map +1 -0
  2132. package/dist/esm/internal/managedRuntime.js +86 -0
  2133. package/dist/esm/internal/managedRuntime.js.map +1 -0
  2134. package/dist/esm/internal/matcher.js +291 -0
  2135. package/dist/esm/internal/matcher.js.map +1 -0
  2136. package/dist/esm/internal/metric/boundaries.js +42 -0
  2137. package/dist/esm/internal/metric/boundaries.js.map +1 -0
  2138. package/dist/esm/internal/metric/hook.js +375 -0
  2139. package/dist/esm/internal/metric/hook.js.map +1 -0
  2140. package/dist/esm/internal/metric/key.js +60 -0
  2141. package/dist/esm/internal/metric/key.js.map +1 -0
  2142. package/dist/esm/internal/metric/keyType.js +169 -0
  2143. package/dist/esm/internal/metric/keyType.js.map +1 -0
  2144. package/dist/esm/internal/metric/label.js +36 -0
  2145. package/dist/esm/internal/metric/label.js.map +1 -0
  2146. package/dist/esm/internal/metric/pair.js +32 -0
  2147. package/dist/esm/internal/metric/pair.js.map +1 -0
  2148. package/dist/esm/internal/metric/polling.js +69 -0
  2149. package/dist/esm/internal/metric/polling.js.map +1 -0
  2150. package/dist/esm/internal/metric/registry.js +105 -0
  2151. package/dist/esm/internal/metric/registry.js.map +1 -0
  2152. package/dist/esm/internal/metric/state.js +181 -0
  2153. package/dist/esm/internal/metric/state.js.map +1 -0
  2154. package/dist/esm/internal/metric.js +181 -0
  2155. package/dist/esm/internal/metric.js.map +1 -0
  2156. package/dist/esm/internal/opCodes/cause.js +13 -0
  2157. package/dist/esm/internal/opCodes/cause.js.map +1 -0
  2158. package/dist/esm/internal/opCodes/channel.js +29 -0
  2159. package/dist/esm/internal/opCodes/channel.js.map +1 -0
  2160. package/dist/esm/internal/opCodes/channelChildExecutorDecision.js +7 -0
  2161. package/dist/esm/internal/opCodes/channelChildExecutorDecision.js.map +1 -0
  2162. package/dist/esm/internal/opCodes/channelMergeDecision.js +5 -0
  2163. package/dist/esm/internal/opCodes/channelMergeDecision.js.map +1 -0
  2164. package/dist/esm/internal/opCodes/channelMergeState.js +7 -0
  2165. package/dist/esm/internal/opCodes/channelMergeState.js.map +1 -0
  2166. package/dist/esm/internal/opCodes/channelMergeStrategy.js +5 -0
  2167. package/dist/esm/internal/opCodes/channelMergeStrategy.js.map +1 -0
  2168. package/dist/esm/internal/opCodes/channelState.js +9 -0
  2169. package/dist/esm/internal/opCodes/channelState.js.map +1 -0
  2170. package/dist/esm/internal/opCodes/channelUpstreamPullRequest.js +5 -0
  2171. package/dist/esm/internal/opCodes/channelUpstreamPullRequest.js.map +1 -0
  2172. package/dist/esm/internal/opCodes/channelUpstreamPullStrategy.js +5 -0
  2173. package/dist/esm/internal/opCodes/channelUpstreamPullStrategy.js.map +1 -0
  2174. package/dist/esm/internal/opCodes/config.js +23 -0
  2175. package/dist/esm/internal/opCodes/config.js.map +1 -0
  2176. package/dist/esm/internal/opCodes/configError.js +13 -0
  2177. package/dist/esm/internal/opCodes/configError.js.map +1 -0
  2178. package/dist/esm/internal/opCodes/continuation.js +5 -0
  2179. package/dist/esm/internal/opCodes/continuation.js.map +1 -0
  2180. package/dist/esm/internal/opCodes/deferred.js +5 -0
  2181. package/dist/esm/internal/opCodes/deferred.js.map +1 -0
  2182. package/dist/esm/internal/opCodes/effect.js +31 -0
  2183. package/dist/esm/internal/opCodes/effect.js.map +1 -0
  2184. package/dist/esm/internal/opCodes/layer.js +21 -0
  2185. package/dist/esm/internal/opCodes/layer.js.map +1 -0
  2186. package/dist/esm/internal/opCodes/streamHaltStrategy.js +9 -0
  2187. package/dist/esm/internal/opCodes/streamHaltStrategy.js.map +1 -0
  2188. package/dist/esm/internal/option.js +70 -0
  2189. package/dist/esm/internal/option.js.map +1 -0
  2190. package/dist/esm/internal/pool.js +276 -0
  2191. package/dist/esm/internal/pool.js.map +1 -0
  2192. package/dist/esm/internal/pubsub.js +1263 -0
  2193. package/dist/esm/internal/pubsub.js.map +1 -0
  2194. package/dist/esm/internal/query.js +93 -0
  2195. package/dist/esm/internal/query.js.map +1 -0
  2196. package/dist/esm/internal/queue.js +486 -0
  2197. package/dist/esm/internal/queue.js.map +1 -0
  2198. package/dist/esm/internal/random.js +119 -0
  2199. package/dist/esm/internal/random.js.map +1 -0
  2200. package/dist/esm/internal/rateLimiter.js +43 -0
  2201. package/dist/esm/internal/rateLimiter.js.map +1 -0
  2202. package/dist/esm/internal/rcMap.js +173 -0
  2203. package/dist/esm/internal/rcMap.js.map +1 -0
  2204. package/dist/esm/internal/rcRef.js +129 -0
  2205. package/dist/esm/internal/rcRef.js.map +1 -0
  2206. package/dist/esm/internal/redBlackTree/iterator.js +191 -0
  2207. package/dist/esm/internal/redBlackTree/iterator.js.map +1 -0
  2208. package/dist/esm/internal/redBlackTree/node.js +50 -0
  2209. package/dist/esm/internal/redBlackTree/node.js.map +1 -0
  2210. package/dist/esm/internal/redBlackTree.js +1069 -0
  2211. package/dist/esm/internal/redBlackTree.js.map +1 -0
  2212. package/dist/esm/internal/redacted.js +56 -0
  2213. package/dist/esm/internal/redacted.js.map +1 -0
  2214. package/dist/esm/internal/ref.js +110 -0
  2215. package/dist/esm/internal/ref.js.map +1 -0
  2216. package/dist/esm/internal/reloadable.js +42 -0
  2217. package/dist/esm/internal/reloadable.js.map +1 -0
  2218. package/dist/esm/internal/request.js +91 -0
  2219. package/dist/esm/internal/request.js.map +1 -0
  2220. package/dist/esm/internal/resource.js +38 -0
  2221. package/dist/esm/internal/resource.js.map +1 -0
  2222. package/dist/esm/internal/ringBuffer.js +56 -0
  2223. package/dist/esm/internal/ringBuffer.js.map +1 -0
  2224. package/dist/esm/internal/runtime.js +307 -0
  2225. package/dist/esm/internal/runtime.js.map +1 -0
  2226. package/dist/esm/internal/runtimeFlags.js +107 -0
  2227. package/dist/esm/internal/runtimeFlags.js.map +1 -0
  2228. package/dist/esm/internal/runtimeFlagsPatch.js +38 -0
  2229. package/dist/esm/internal/runtimeFlagsPatch.js.map +1 -0
  2230. package/dist/esm/internal/schedule/decision.js +33 -0
  2231. package/dist/esm/internal/schedule/decision.js.map +1 -0
  2232. package/dist/esm/internal/schedule/interval.js +70 -0
  2233. package/dist/esm/internal/schedule/interval.js.map +1 -0
  2234. package/dist/esm/internal/schedule/intervals.js +122 -0
  2235. package/dist/esm/internal/schedule/intervals.js.map +1 -0
  2236. package/dist/esm/internal/schedule.js +832 -0
  2237. package/dist/esm/internal/schedule.js.map +1 -0
  2238. package/dist/esm/internal/schema/errors.js +86 -0
  2239. package/dist/esm/internal/schema/errors.js.map +1 -0
  2240. package/dist/esm/internal/schema/schemaId.js +43 -0
  2241. package/dist/esm/internal/schema/schemaId.js.map +1 -0
  2242. package/dist/esm/internal/schema/util.js +35 -0
  2243. package/dist/esm/internal/schema/util.js.map +1 -0
  2244. package/dist/esm/internal/scopedCache.js +382 -0
  2245. package/dist/esm/internal/scopedCache.js.map +1 -0
  2246. package/dist/esm/internal/scopedRef.js +43 -0
  2247. package/dist/esm/internal/scopedRef.js.map +1 -0
  2248. package/dist/esm/internal/secret.js +77 -0
  2249. package/dist/esm/internal/secret.js.map +1 -0
  2250. package/dist/esm/internal/singleShotGen.js +30 -0
  2251. package/dist/esm/internal/singleShotGen.js.map +1 -0
  2252. package/dist/esm/internal/sink.js +801 -0
  2253. package/dist/esm/internal/sink.js.map +1 -0
  2254. package/dist/esm/internal/stack.js +5 -0
  2255. package/dist/esm/internal/stack.js.map +1 -0
  2256. package/dist/esm/internal/stm/core.js +501 -0
  2257. package/dist/esm/internal/stm/core.js.map +1 -0
  2258. package/dist/esm/internal/stm/entry.js +42 -0
  2259. package/dist/esm/internal/stm/entry.js.map +1 -0
  2260. package/dist/esm/internal/stm/journal.js +89 -0
  2261. package/dist/esm/internal/stm/journal.js.map +1 -0
  2262. package/dist/esm/internal/stm/opCodes/stm.js +25 -0
  2263. package/dist/esm/internal/stm/opCodes/stm.js.map +1 -0
  2264. package/dist/esm/internal/stm/opCodes/stmState.js +7 -0
  2265. package/dist/esm/internal/stm/opCodes/stmState.js.map +1 -0
  2266. package/dist/esm/internal/stm/opCodes/strategy.js +7 -0
  2267. package/dist/esm/internal/stm/opCodes/strategy.js.map +1 -0
  2268. package/dist/esm/internal/stm/opCodes/tExit.js +11 -0
  2269. package/dist/esm/internal/stm/opCodes/tExit.js.map +1 -0
  2270. package/dist/esm/internal/stm/opCodes/tryCommit.js +5 -0
  2271. package/dist/esm/internal/stm/opCodes/tryCommit.js.map +1 -0
  2272. package/dist/esm/internal/stm/stm.js +478 -0
  2273. package/dist/esm/internal/stm/stm.js.map +1 -0
  2274. package/dist/esm/internal/stm/stmState.js +89 -0
  2275. package/dist/esm/internal/stm/stmState.js.map +1 -0
  2276. package/dist/esm/internal/stm/tArray.js +243 -0
  2277. package/dist/esm/internal/stm/tArray.js.map +1 -0
  2278. package/dist/esm/internal/stm/tDeferred.js +41 -0
  2279. package/dist/esm/internal/stm/tDeferred.js.map +1 -0
  2280. package/dist/esm/internal/stm/tExit.js +101 -0
  2281. package/dist/esm/internal/stm/tExit.js.map +1 -0
  2282. package/dist/esm/internal/stm/tMap.js +430 -0
  2283. package/dist/esm/internal/stm/tMap.js.map +1 -0
  2284. package/dist/esm/internal/stm/tPriorityQueue.js +143 -0
  2285. package/dist/esm/internal/stm/tPriorityQueue.js.map +1 -0
  2286. package/dist/esm/internal/stm/tPubSub.js +376 -0
  2287. package/dist/esm/internal/stm/tPubSub.js.map +1 -0
  2288. package/dist/esm/internal/stm/tQueue.js +258 -0
  2289. package/dist/esm/internal/stm/tQueue.js.map +1 -0
  2290. package/dist/esm/internal/stm/tRandom.js +82 -0
  2291. package/dist/esm/internal/stm/tRandom.js.map +1 -0
  2292. package/dist/esm/internal/stm/tReentrantLock.js +192 -0
  2293. package/dist/esm/internal/stm/tReentrantLock.js.map +1 -0
  2294. package/dist/esm/internal/stm/tRef.js +100 -0
  2295. package/dist/esm/internal/stm/tRef.js.map +1 -0
  2296. package/dist/esm/internal/stm/tSemaphore.js +59 -0
  2297. package/dist/esm/internal/stm/tSemaphore.js.map +1 -0
  2298. package/dist/esm/internal/stm/tSet.js +88 -0
  2299. package/dist/esm/internal/stm/tSet.js.map +1 -0
  2300. package/dist/esm/internal/stm/tSubscriptionRef.js +166 -0
  2301. package/dist/esm/internal/stm/tSubscriptionRef.js.map +1 -0
  2302. package/dist/esm/internal/stm/tryCommit.js +16 -0
  2303. package/dist/esm/internal/stm/tryCommit.js.map +1 -0
  2304. package/dist/esm/internal/stm/txnId.js +11 -0
  2305. package/dist/esm/internal/stm/txnId.js.map +1 -0
  2306. package/dist/esm/internal/stm/versioned.js +8 -0
  2307. package/dist/esm/internal/stm/versioned.js.map +1 -0
  2308. package/dist/esm/internal/stream/debounceState.js +21 -0
  2309. package/dist/esm/internal/stream/debounceState.js.map +1 -0
  2310. package/dist/esm/internal/stream/emit.js +120 -0
  2311. package/dist/esm/internal/stream/emit.js.map +1 -0
  2312. package/dist/esm/internal/stream/haltStrategy.js +63 -0
  2313. package/dist/esm/internal/stream/haltStrategy.js.map +1 -0
  2314. package/dist/esm/internal/stream/handoff.js +55 -0
  2315. package/dist/esm/internal/stream/handoff.js.map +1 -0
  2316. package/dist/esm/internal/stream/handoffSignal.js +22 -0
  2317. package/dist/esm/internal/stream/handoffSignal.js.map +1 -0
  2318. package/dist/esm/internal/stream/pull.js +20 -0
  2319. package/dist/esm/internal/stream/pull.js.map +1 -0
  2320. package/dist/esm/internal/stream/sinkEndReason.js +13 -0
  2321. package/dist/esm/internal/stream/sinkEndReason.js.map +1 -0
  2322. package/dist/esm/internal/stream/zipAllState.js +33 -0
  2323. package/dist/esm/internal/stream/zipAllState.js.map +1 -0
  2324. package/dist/esm/internal/stream/zipChunksState.js +21 -0
  2325. package/dist/esm/internal/stream/zipChunksState.js.map +1 -0
  2326. package/dist/esm/internal/stream.js +2867 -0
  2327. package/dist/esm/internal/stream.js.map +1 -0
  2328. package/dist/esm/internal/string-utils.js +77 -0
  2329. package/dist/esm/internal/string-utils.js.map +1 -0
  2330. package/dist/esm/internal/subscriptionRef.js +63 -0
  2331. package/dist/esm/internal/subscriptionRef.js.map +1 -0
  2332. package/dist/esm/internal/supervisor/patch.js +125 -0
  2333. package/dist/esm/internal/supervisor/patch.js.map +1 -0
  2334. package/dist/esm/internal/supervisor.js +207 -0
  2335. package/dist/esm/internal/supervisor.js.map +1 -0
  2336. package/dist/esm/internal/synchronizedRef.js +44 -0
  2337. package/dist/esm/internal/synchronizedRef.js.map +1 -0
  2338. package/dist/esm/internal/take.js +108 -0
  2339. package/dist/esm/internal/take.js.map +1 -0
  2340. package/dist/esm/internal/testing/sleep.js +7 -0
  2341. package/dist/esm/internal/testing/sleep.js.map +1 -0
  2342. package/dist/esm/internal/testing/suspendedWarningData.js +48 -0
  2343. package/dist/esm/internal/testing/suspendedWarningData.js.map +1 -0
  2344. package/dist/esm/internal/testing/warningData.js +49 -0
  2345. package/dist/esm/internal/testing/warningData.js.map +1 -0
  2346. package/dist/esm/internal/tracer.js +122 -0
  2347. package/dist/esm/internal/tracer.js.map +1 -0
  2348. package/dist/esm/internal/trie.js +547 -0
  2349. package/dist/esm/internal/trie.js.map +1 -0
  2350. package/dist/esm/internal/version.js +6 -0
  2351. package/dist/esm/internal/version.js.map +1 -0
  2352. package/dist/esm/package.json +4 -0
  2353. package/index/package.json +6 -0
  2354. package/package.json +1471 -0
  2355. package/src/Arbitrary.ts +1101 -0
  2356. package/src/Array.ts +6854 -0
  2357. package/src/BigDecimal.ts +2037 -0
  2358. package/src/BigInt.ts +1139 -0
  2359. package/src/Boolean.ts +560 -0
  2360. package/src/Brand.ts +360 -0
  2361. package/src/Cache.ts +281 -0
  2362. package/src/Cause.ts +2049 -0
  2363. package/src/Channel.ts +3051 -0
  2364. package/src/ChildExecutorDecision.ts +158 -0
  2365. package/src/Chunk.ts +2350 -0
  2366. package/src/Clock.ts +111 -0
  2367. package/src/Config.ts +743 -0
  2368. package/src/ConfigError.ts +286 -0
  2369. package/src/ConfigProvider.ts +421 -0
  2370. package/src/ConfigProviderPathPatch.ts +132 -0
  2371. package/src/Console.ts +255 -0
  2372. package/src/Context.ts +867 -0
  2373. package/src/Cron.ts +718 -0
  2374. package/src/Data.ts +765 -0
  2375. package/src/DateTime.ts +2715 -0
  2376. package/src/DefaultServices.ts +34 -0
  2377. package/src/Deferred.ts +471 -0
  2378. package/src/Differ.ts +512 -0
  2379. package/src/Duration.ts +1140 -0
  2380. package/src/Effect.ts +29096 -0
  2381. package/src/Effectable.ts +107 -0
  2382. package/src/Either.ts +1723 -0
  2383. package/src/Encoding.ts +195 -0
  2384. package/src/Equal.ts +98 -0
  2385. package/src/Equivalence.ts +259 -0
  2386. package/src/ExecutionPlan.ts +308 -0
  2387. package/src/ExecutionStrategy.ts +138 -0
  2388. package/src/Exit.ts +717 -0
  2389. package/src/FastCheck.ts +9 -0
  2390. package/src/Fiber.ts +926 -0
  2391. package/src/FiberHandle.ts +582 -0
  2392. package/src/FiberId.ts +219 -0
  2393. package/src/FiberMap.ts +779 -0
  2394. package/src/FiberRef.ts +511 -0
  2395. package/src/FiberRefs.ts +288 -0
  2396. package/src/FiberRefsPatch.ts +139 -0
  2397. package/src/FiberSet.ts +529 -0
  2398. package/src/FiberStatus.ts +108 -0
  2399. package/src/Function.ts +1378 -0
  2400. package/src/GlobalValue.ts +53 -0
  2401. package/src/Graph.ts +3764 -0
  2402. package/src/GroupBy.ts +141 -0
  2403. package/src/HKT.ts +45 -0
  2404. package/src/Hash.ts +203 -0
  2405. package/src/HashMap.ts +919 -0
  2406. package/src/HashRing.ts +387 -0
  2407. package/src/HashSet.ts +2346 -0
  2408. package/src/Inspectable.ts +287 -0
  2409. package/src/Iterable.ts +1606 -0
  2410. package/src/JSONSchema.ts +1044 -0
  2411. package/src/KeyedPool.ts +201 -0
  2412. package/src/Layer.ts +1671 -0
  2413. package/src/LayerMap.ts +436 -0
  2414. package/src/List.ts +1469 -0
  2415. package/src/LogLevel.ts +387 -0
  2416. package/src/LogSpan.ts +25 -0
  2417. package/src/Logger.ts +863 -0
  2418. package/src/Mailbox.ts +298 -0
  2419. package/src/ManagedRuntime.ts +180 -0
  2420. package/src/Match.ts +1493 -0
  2421. package/src/MergeDecision.ts +103 -0
  2422. package/src/MergeState.ts +180 -0
  2423. package/src/MergeStrategy.ts +124 -0
  2424. package/src/Metric.ts +1165 -0
  2425. package/src/MetricBoundaries.ts +69 -0
  2426. package/src/MetricHook.ts +175 -0
  2427. package/src/MetricKey.ts +266 -0
  2428. package/src/MetricKeyType.ts +262 -0
  2429. package/src/MetricLabel.ts +47 -0
  2430. package/src/MetricPair.ts +71 -0
  2431. package/src/MetricPolling.ts +182 -0
  2432. package/src/MetricRegistry.ts +48 -0
  2433. package/src/MetricState.ts +273 -0
  2434. package/src/Micro.ts +5556 -0
  2435. package/src/ModuleVersion.ts +18 -0
  2436. package/src/MutableHashMap.ts +518 -0
  2437. package/src/MutableHashSet.ts +706 -0
  2438. package/src/MutableList.ts +333 -0
  2439. package/src/MutableQueue.ts +289 -0
  2440. package/src/MutableRef.ts +258 -0
  2441. package/src/NonEmptyIterable.ts +32 -0
  2442. package/src/Number.ts +1440 -0
  2443. package/src/Option.ts +4028 -0
  2444. package/src/Order.ts +397 -0
  2445. package/src/Ordering.ts +173 -0
  2446. package/src/ParseResult.ts +2068 -0
  2447. package/src/PartitionedSemaphore.ts +200 -0
  2448. package/src/Pipeable.ts +574 -0
  2449. package/src/Pool.ts +220 -0
  2450. package/src/Predicate.ts +2344 -0
  2451. package/src/Pretty.ts +205 -0
  2452. package/src/PrimaryKey.ts +23 -0
  2453. package/src/PubSub.ts +210 -0
  2454. package/src/Queue.ts +748 -0
  2455. package/src/Random.ts +204 -0
  2456. package/src/RateLimiter.ts +138 -0
  2457. package/src/RcMap.ts +245 -0
  2458. package/src/RcRef.ts +122 -0
  2459. package/src/Readable.ts +104 -0
  2460. package/src/Record.ts +1990 -0
  2461. package/src/RedBlackTree.ts +725 -0
  2462. package/src/Redacted.ts +144 -0
  2463. package/src/Ref.ts +268 -0
  2464. package/src/RegExp.ts +38 -0
  2465. package/src/Reloadable.ts +127 -0
  2466. package/src/Request.ts +418 -0
  2467. package/src/RequestBlock.ts +118 -0
  2468. package/src/RequestResolver.ts +495 -0
  2469. package/src/Resource.ts +119 -0
  2470. package/src/Runtime.ts +631 -0
  2471. package/src/RuntimeFlags.ts +436 -0
  2472. package/src/RuntimeFlagsPatch.ts +295 -0
  2473. package/src/STM.ts +3091 -0
  2474. package/src/Schedule.ts +3740 -0
  2475. package/src/ScheduleDecision.ts +62 -0
  2476. package/src/ScheduleInterval.ts +219 -0
  2477. package/src/ScheduleIntervals.ts +172 -0
  2478. package/src/Scheduler.ts +364 -0
  2479. package/src/Schema.ts +11443 -0
  2480. package/src/SchemaAST.ts +3055 -0
  2481. package/src/Scope.ts +240 -0
  2482. package/src/ScopedCache.ts +151 -0
  2483. package/src/ScopedRef.ts +139 -0
  2484. package/src/Secret.ts +88 -0
  2485. package/src/SingleProducerAsyncInput.ts +67 -0
  2486. package/src/Sink.ts +1877 -0
  2487. package/src/SortedMap.ts +361 -0
  2488. package/src/SortedSet.ts +530 -0
  2489. package/src/Stream.ts +11561 -0
  2490. package/src/StreamEmit.ts +136 -0
  2491. package/src/StreamHaltStrategy.ts +140 -0
  2492. package/src/Streamable.ts +45 -0
  2493. package/src/String.ts +1026 -0
  2494. package/src/Struct.ts +335 -0
  2495. package/src/Subscribable.ts +114 -0
  2496. package/src/SubscriptionRef.ts +444 -0
  2497. package/src/Supervisor.ts +240 -0
  2498. package/src/Symbol.ts +29 -0
  2499. package/src/SynchronizedRef.ts +429 -0
  2500. package/src/TArray.ts +922 -0
  2501. package/src/TDeferred.ts +124 -0
  2502. package/src/TMap.ts +875 -0
  2503. package/src/TPriorityQueue.ts +283 -0
  2504. package/src/TPubSub.ts +228 -0
  2505. package/src/TQueue.ts +540 -0
  2506. package/src/TRandom.ts +129 -0
  2507. package/src/TReentrantLock.ts +260 -0
  2508. package/src/TRef.ts +266 -0
  2509. package/src/TSemaphore.ts +169 -0
  2510. package/src/TSet.ts +633 -0
  2511. package/src/TSubscriptionRef.ts +284 -0
  2512. package/src/Take.ts +309 -0
  2513. package/src/TestAnnotation.ts +158 -0
  2514. package/src/TestAnnotationMap.ts +163 -0
  2515. package/src/TestAnnotations.ts +117 -0
  2516. package/src/TestClock.ts +562 -0
  2517. package/src/TestConfig.ts +47 -0
  2518. package/src/TestContext.ts +36 -0
  2519. package/src/TestLive.ts +53 -0
  2520. package/src/TestServices.ts +454 -0
  2521. package/src/TestSized.ts +55 -0
  2522. package/src/Tracer.ts +182 -0
  2523. package/src/Trie.ts +1860 -0
  2524. package/src/Tuple.ts +483 -0
  2525. package/src/Types.ts +361 -0
  2526. package/src/Unify.ts +127 -0
  2527. package/src/UpstreamPullRequest.ts +129 -0
  2528. package/src/UpstreamPullStrategy.ts +133 -0
  2529. package/src/Utils.ts +809 -0
  2530. package/src/index.ts +1561 -0
  2531. package/src/internal/array.ts +8 -0
  2532. package/src/internal/blockedRequests.ts +520 -0
  2533. package/src/internal/cache.ts +733 -0
  2534. package/src/internal/cause.ts +1050 -0
  2535. package/src/internal/channel/channelExecutor.ts +1200 -0
  2536. package/src/internal/channel/channelState.ts +134 -0
  2537. package/src/internal/channel/childExecutorDecision.ts +96 -0
  2538. package/src/internal/channel/continuation.ts +200 -0
  2539. package/src/internal/channel/mergeDecision.ts +113 -0
  2540. package/src/internal/channel/mergeState.ts +120 -0
  2541. package/src/internal/channel/mergeStrategy.ts +72 -0
  2542. package/src/internal/channel/singleProducerAsyncInput.ts +259 -0
  2543. package/src/internal/channel/subexecutor.ts +229 -0
  2544. package/src/internal/channel/upstreamPullRequest.ts +84 -0
  2545. package/src/internal/channel/upstreamPullStrategy.ts +87 -0
  2546. package/src/internal/channel.ts +2603 -0
  2547. package/src/internal/clock.ts +95 -0
  2548. package/src/internal/completedRequestMap.ts +9 -0
  2549. package/src/internal/concurrency.ts +54 -0
  2550. package/src/internal/config.ts +716 -0
  2551. package/src/internal/configError.ts +304 -0
  2552. package/src/internal/configProvider/pathPatch.ts +97 -0
  2553. package/src/internal/configProvider.ts +799 -0
  2554. package/src/internal/console.ts +153 -0
  2555. package/src/internal/context.ts +337 -0
  2556. package/src/internal/core-effect.ts +2293 -0
  2557. package/src/internal/core-stream.ts +998 -0
  2558. package/src/internal/core.ts +3166 -0
  2559. package/src/internal/data.ts +36 -0
  2560. package/src/internal/dataSource.ts +327 -0
  2561. package/src/internal/dateTime.ts +1277 -0
  2562. package/src/internal/defaultServices/console.ts +100 -0
  2563. package/src/internal/defaultServices.ts +163 -0
  2564. package/src/internal/deferred.ts +46 -0
  2565. package/src/internal/differ/chunkPatch.ts +211 -0
  2566. package/src/internal/differ/contextPatch.ts +232 -0
  2567. package/src/internal/differ/hashMapPatch.ts +220 -0
  2568. package/src/internal/differ/hashSetPatch.ts +176 -0
  2569. package/src/internal/differ/orPatch.ts +311 -0
  2570. package/src/internal/differ/readonlyArrayPatch.ts +210 -0
  2571. package/src/internal/differ.ts +200 -0
  2572. package/src/internal/doNotation.ts +80 -0
  2573. package/src/internal/effect/circular.ts +903 -0
  2574. package/src/internal/effectable.ts +131 -0
  2575. package/src/internal/either.ts +110 -0
  2576. package/src/internal/encoding/base64.ts +286 -0
  2577. package/src/internal/encoding/base64Url.ts +29 -0
  2578. package/src/internal/encoding/common.ts +51 -0
  2579. package/src/internal/encoding/hex.ts +315 -0
  2580. package/src/internal/errors.ts +7 -0
  2581. package/src/internal/executionPlan.ts +114 -0
  2582. package/src/internal/executionStrategy.ts +74 -0
  2583. package/src/internal/fiber.ts +388 -0
  2584. package/src/internal/fiberId.ts +267 -0
  2585. package/src/internal/fiberMessage.ts +82 -0
  2586. package/src/internal/fiberRefs/patch.ts +144 -0
  2587. package/src/internal/fiberRefs.ts +297 -0
  2588. package/src/internal/fiberRuntime.ts +3859 -0
  2589. package/src/internal/fiberScope.ts +71 -0
  2590. package/src/internal/fiberStatus.ts +119 -0
  2591. package/src/internal/groupBy.ts +530 -0
  2592. package/src/internal/hashMap/array.ts +49 -0
  2593. package/src/internal/hashMap/bitwise.ts +32 -0
  2594. package/src/internal/hashMap/config.ts +14 -0
  2595. package/src/internal/hashMap/keySet.ts +8 -0
  2596. package/src/internal/hashMap/node.ts +391 -0
  2597. package/src/internal/hashMap.ts +586 -0
  2598. package/src/internal/hashSet.ts +323 -0
  2599. package/src/internal/keyedPool.ts +244 -0
  2600. package/src/internal/layer/circular.ts +214 -0
  2601. package/src/internal/layer.ts +1483 -0
  2602. package/src/internal/logSpan.ts +20 -0
  2603. package/src/internal/logger-circular.ts +24 -0
  2604. package/src/internal/logger.ts +485 -0
  2605. package/src/internal/mailbox.ts +561 -0
  2606. package/src/internal/managedRuntime/circular.ts +6 -0
  2607. package/src/internal/managedRuntime.ts +137 -0
  2608. package/src/internal/matcher.ts +652 -0
  2609. package/src/internal/metric/boundaries.ts +75 -0
  2610. package/src/internal/metric/hook.ts +483 -0
  2611. package/src/internal/metric/key.ts +167 -0
  2612. package/src/internal/metric/keyType.ts +238 -0
  2613. package/src/internal/metric/label.ts +41 -0
  2614. package/src/internal/metric/pair.ts +48 -0
  2615. package/src/internal/metric/polling.ts +149 -0
  2616. package/src/internal/metric/registry.ts +187 -0
  2617. package/src/internal/metric/state.ts +290 -0
  2618. package/src/internal/metric.ts +577 -0
  2619. package/src/internal/opCodes/cause.ts +35 -0
  2620. package/src/internal/opCodes/channel.ts +83 -0
  2621. package/src/internal/opCodes/channelChildExecutorDecision.ts +17 -0
  2622. package/src/internal/opCodes/channelMergeDecision.ts +11 -0
  2623. package/src/internal/opCodes/channelMergeState.ts +17 -0
  2624. package/src/internal/opCodes/channelMergeStrategy.ts +11 -0
  2625. package/src/internal/opCodes/channelState.ts +23 -0
  2626. package/src/internal/opCodes/channelUpstreamPullRequest.ts +11 -0
  2627. package/src/internal/opCodes/channelUpstreamPullStrategy.ts +11 -0
  2628. package/src/internal/opCodes/config.ts +65 -0
  2629. package/src/internal/opCodes/configError.ts +35 -0
  2630. package/src/internal/opCodes/continuation.ts +11 -0
  2631. package/src/internal/opCodes/deferred.ts +11 -0
  2632. package/src/internal/opCodes/effect.ts +89 -0
  2633. package/src/internal/opCodes/layer.ts +59 -0
  2634. package/src/internal/opCodes/streamHaltStrategy.ts +23 -0
  2635. package/src/internal/option.ts +80 -0
  2636. package/src/internal/pool.ts +432 -0
  2637. package/src/internal/pubsub.ts +1762 -0
  2638. package/src/internal/query.ts +204 -0
  2639. package/src/internal/queue.ts +766 -0
  2640. package/src/internal/random.ts +161 -0
  2641. package/src/internal/rateLimiter.ts +93 -0
  2642. package/src/internal/rcMap.ts +285 -0
  2643. package/src/internal/rcRef.ts +192 -0
  2644. package/src/internal/redBlackTree/iterator.ts +200 -0
  2645. package/src/internal/redBlackTree/node.ts +68 -0
  2646. package/src/internal/redBlackTree.ts +1245 -0
  2647. package/src/internal/redacted.ts +73 -0
  2648. package/src/internal/ref.ts +171 -0
  2649. package/src/internal/reloadable.ts +140 -0
  2650. package/src/internal/request.ts +177 -0
  2651. package/src/internal/resource.ts +76 -0
  2652. package/src/internal/ringBuffer.ts +68 -0
  2653. package/src/internal/runtime.ts +558 -0
  2654. package/src/internal/runtimeFlags.ts +178 -0
  2655. package/src/internal/runtimeFlagsPatch.ts +103 -0
  2656. package/src/internal/schedule/decision.ts +47 -0
  2657. package/src/internal/schedule/interval.ts +101 -0
  2658. package/src/internal/schedule/intervals.ts +180 -0
  2659. package/src/internal/schedule.ts +2199 -0
  2660. package/src/internal/schema/errors.ts +191 -0
  2661. package/src/internal/schema/schemaId.ts +106 -0
  2662. package/src/internal/schema/util.ts +50 -0
  2663. package/src/internal/scopedCache.ts +644 -0
  2664. package/src/internal/scopedRef.ts +118 -0
  2665. package/src/internal/secret.ts +89 -0
  2666. package/src/internal/singleShotGen.ts +35 -0
  2667. package/src/internal/sink.ts +2120 -0
  2668. package/src/internal/stack.ts +10 -0
  2669. package/src/internal/stm/core.ts +817 -0
  2670. package/src/internal/stm/entry.ts +59 -0
  2671. package/src/internal/stm/journal.ts +123 -0
  2672. package/src/internal/stm/opCodes/stm.ts +71 -0
  2673. package/src/internal/stm/opCodes/stmState.ts +17 -0
  2674. package/src/internal/stm/opCodes/strategy.ts +17 -0
  2675. package/src/internal/stm/opCodes/tExit.ts +29 -0
  2676. package/src/internal/stm/opCodes/tryCommit.ts +11 -0
  2677. package/src/internal/stm/stm.ts +1453 -0
  2678. package/src/internal/stm/stmState.ts +136 -0
  2679. package/src/internal/stm/tArray.ts +550 -0
  2680. package/src/internal/stm/tDeferred.ts +81 -0
  2681. package/src/internal/stm/tExit.ts +190 -0
  2682. package/src/internal/stm/tMap.ts +824 -0
  2683. package/src/internal/stm/tPriorityQueue.ts +267 -0
  2684. package/src/internal/stm/tPubSub.ts +551 -0
  2685. package/src/internal/stm/tQueue.ts +393 -0
  2686. package/src/internal/stm/tRandom.ts +140 -0
  2687. package/src/internal/stm/tReentrantLock.ts +352 -0
  2688. package/src/internal/stm/tRef.ts +195 -0
  2689. package/src/internal/stm/tSemaphore.ts +113 -0
  2690. package/src/internal/stm/tSet.ts +259 -0
  2691. package/src/internal/stm/tSubscriptionRef.ts +286 -0
  2692. package/src/internal/stm/tryCommit.ts +34 -0
  2693. package/src/internal/stm/txnId.ts +14 -0
  2694. package/src/internal/stm/versioned.ts +4 -0
  2695. package/src/internal/stream/debounceState.ts +57 -0
  2696. package/src/internal/stream/emit.ts +123 -0
  2697. package/src/internal/stream/haltStrategy.ts +94 -0
  2698. package/src/internal/stream/handoff.ts +187 -0
  2699. package/src/internal/stream/handoffSignal.ts +59 -0
  2700. package/src/internal/stream/pull.ts +34 -0
  2701. package/src/internal/stream/sinkEndReason.ts +30 -0
  2702. package/src/internal/stream/zipAllState.ts +88 -0
  2703. package/src/internal/stream/zipChunksState.ts +56 -0
  2704. package/src/internal/stream.ts +8802 -0
  2705. package/src/internal/string-utils.ts +107 -0
  2706. package/src/internal/subscriptionRef.ts +138 -0
  2707. package/src/internal/supervisor/patch.ts +190 -0
  2708. package/src/internal/supervisor.ts +303 -0
  2709. package/src/internal/synchronizedRef.ts +114 -0
  2710. package/src/internal/take.ts +199 -0
  2711. package/src/internal/testing/sleep.ts +27 -0
  2712. package/src/internal/testing/suspendedWarningData.ts +85 -0
  2713. package/src/internal/testing/warningData.ts +94 -0
  2714. package/src/internal/tracer.ts +150 -0
  2715. package/src/internal/trie.ts +722 -0
  2716. package/src/internal/version.ts +7 -0
@@ -0,0 +1,2344 @@
1
+ /**
2
+ * This module provides a collection of functions for working with predicates and refinements.
3
+ *
4
+ * A `Predicate<A>` is a function that takes a value of type `A` and returns a boolean.
5
+ * It is used to check if a value satisfies a certain condition.
6
+ *
7
+ * A `Refinement<A, B>` is a special type of predicate that not only checks a condition
8
+ * but also provides a type guard, allowing TypeScript to narrow the type of the input
9
+ * value from `A` to a more specific type `B` within a conditional block.
10
+ *
11
+ * The module includes:
12
+ * - Basic predicates and refinements for common types (e.g., `isString`, `isNumber`).
13
+ * - Combinators to create new predicates from existing ones (e.g., `and`, `or`, `not`).
14
+ * - Advanced combinators for working with data structures (e.g., `tuple`, `struct`).
15
+ * - Type-level utilities for inspecting predicate and refinement types.
16
+ *
17
+ * @since 2.0.0
18
+ */
19
+ import { dual, isFunction as isFunction_ } from "./Function.js"
20
+ import type { TypeLambda } from "./HKT.js"
21
+ import type { TupleOf, TupleOfAtLeast } from "./Types.js"
22
+
23
+ /**
24
+ * Represents a function that takes a value of type `A` and returns `true` if the value
25
+ * satisfies some condition, `false` otherwise.
26
+ *
27
+ * @example
28
+ * ```ts
29
+ * import { Predicate } from "effect"
30
+ * import * as assert from "node:assert"
31
+ *
32
+ * const isEven: Predicate.Predicate<number> = (n) => n % 2 === 0
33
+ *
34
+ * assert.strictEqual(isEven(2), true)
35
+ * assert.strictEqual(isEven(3), false)
36
+ * ```
37
+ *
38
+ * @category models
39
+ * @since 2.0.0
40
+ */
41
+ export interface Predicate<in A> {
42
+ (a: A): boolean
43
+ }
44
+
45
+ /**
46
+ * A `TypeLambda` for `Predicate`. This is used to support higher-kinded types
47
+ * and allows `Predicate` to be used in generic contexts within the `effect` ecosystem.
48
+ *
49
+ * @category type lambdas
50
+ * @since 2.0.0
51
+ */
52
+ export interface PredicateTypeLambda extends TypeLambda {
53
+ readonly type: Predicate<this["Target"]>
54
+ }
55
+
56
+ /**
57
+ * Represents a function that serves as a type guard.
58
+ *
59
+ * A `Refinement<A, B>` is a function that takes a value of type `A` and returns a
60
+ * type predicate `a is B`, where `B` is a subtype of `A`. If the function returns
61
+ * `true`, TypeScript will narrow the type of the input variable to `B`.
62
+ *
63
+ * @example
64
+ * ```ts
65
+ * import { Predicate } from "effect"
66
+ * import * as assert from "node:assert"
67
+ *
68
+ * const isString: Predicate.Refinement<unknown, string> = (u): u is string => typeof u === "string"
69
+ *
70
+ * const value: unknown = "hello"
71
+ *
72
+ * if (isString(value)) {
73
+ * // value is now known to be a string
74
+ * assert.strictEqual(value.toUpperCase(), "HELLO")
75
+ * }
76
+ * ```
77
+ *
78
+ * @category models
79
+ * @since 2.0.0
80
+ */
81
+ export interface Refinement<in A, out B extends A> {
82
+ (a: A): a is B
83
+ }
84
+
85
+ /**
86
+ * A namespace for type-level utilities for `Predicate`.
87
+ *
88
+ * @since 3.6.0
89
+ * @category type-level
90
+ */
91
+ export declare namespace Predicate {
92
+ /**
93
+ * Extracts the input type `A` from a `Predicate<A>`.
94
+ *
95
+ * @example
96
+ * ```ts
97
+ * import { type Predicate } from "effect"
98
+ *
99
+ * type T = Predicate.Predicate.In<Predicate.Predicate<string>> // T is string
100
+ * ```
101
+ *
102
+ * @since 3.6.0
103
+ * @category type-level
104
+ */
105
+ export type In<T extends Any> = [T] extends [Predicate<infer _A>] ? _A : never
106
+ /**
107
+ * A type representing any `Predicate`.
108
+ *
109
+ * @since 3.6.0
110
+ * @category type-level
111
+ */
112
+ export type Any = Predicate<never>
113
+ }
114
+
115
+ /**
116
+ * A namespace for type-level utilities for `Refinement`.
117
+ *
118
+ * @since 3.6.0
119
+ * @category type-level
120
+ */
121
+ export declare namespace Refinement {
122
+ /**
123
+ * Extracts the input type `A` from a `Refinement<A, B>`.
124
+ *
125
+ * @example
126
+ * ```ts
127
+ * import { type Predicate } from "effect"
128
+ *
129
+ * type IsString = Predicate.Refinement<unknown, string>
130
+ * type T = Predicate.Refinement.In<IsString> // T is unknown
131
+ * ```
132
+ *
133
+ * @since 3.6.0
134
+ * @category type-level
135
+ */
136
+ export type In<T extends Any> = [T] extends [Refinement<infer _A, infer _>] ? _A : never
137
+ /**
138
+ * Extracts the output (refined) type `B` from a `Refinement<A, B>`.
139
+ *
140
+ * @example
141
+ * ```ts
142
+ * import { type Predicate } from "effect"
143
+ *
144
+ * type IsString = Predicate.Refinement<unknown, string>
145
+ * type T = Predicate.Refinement.Out<IsString> // T is string
146
+ * ```
147
+ *
148
+ * @since 3.6.0
149
+ * @category type-level
150
+ */
151
+ export type Out<T extends Any> = [T] extends [Refinement<infer _, infer _B>] ? _B : never
152
+ /**
153
+ * A type representing any `Refinement`.
154
+ *
155
+ * @since 3.6.0
156
+ * @category type-level
157
+ */
158
+ export type Any = Refinement<any, any>
159
+ }
160
+
161
+ /**
162
+ * Transforms a `Predicate<A>` into a `Predicate<B>` by applying a function `(b: B) => A`
163
+ * to the input before passing it to the predicate. This is also known as "contramap" or
164
+ * "pre-composition".
165
+ *
166
+ * @example
167
+ * ```ts
168
+ * import { Predicate, Number } from "effect"
169
+ * import * as assert from "node:assert"
170
+ *
171
+ * // A predicate on numbers
172
+ * const isPositive: Predicate.Predicate<number> = Number.greaterThan(0)
173
+ *
174
+ * // A function from `string` to `number`
175
+ * const stringLength = (s: string): number => s.length
176
+ *
177
+ * // Create a new predicate on strings by mapping the input
178
+ * const hasPositiveLength = Predicate.mapInput(isPositive, stringLength)
179
+ *
180
+ * assert.strictEqual(hasPositiveLength("hello"), true)
181
+ * assert.strictEqual(hasPositiveLength(""), false)
182
+ * ```
183
+ *
184
+ * @category combinators
185
+ * @since 2.0.0
186
+ */
187
+ export const mapInput: {
188
+ /**
189
+ * Transforms a `Predicate<A>` into a `Predicate<B>` by applying a function `(b: B) => A`
190
+ * to the input before passing it to the predicate. This is also known as "contramap" or
191
+ * "pre-composition".
192
+ *
193
+ * @example
194
+ * ```ts
195
+ * import { Predicate, Number } from "effect"
196
+ * import * as assert from "node:assert"
197
+ *
198
+ * // A predicate on numbers
199
+ * const isPositive: Predicate.Predicate<number> = Number.greaterThan(0)
200
+ *
201
+ * // A function from `string` to `number`
202
+ * const stringLength = (s: string): number => s.length
203
+ *
204
+ * // Create a new predicate on strings by mapping the input
205
+ * const hasPositiveLength = Predicate.mapInput(isPositive, stringLength)
206
+ *
207
+ * assert.strictEqual(hasPositiveLength("hello"), true)
208
+ * assert.strictEqual(hasPositiveLength(""), false)
209
+ * ```
210
+ *
211
+ * @category combinators
212
+ * @since 2.0.0
213
+ */
214
+ <B, A>(f: (b: B) => A): (self: Predicate<A>) => Predicate<B>
215
+ /**
216
+ * Transforms a `Predicate<A>` into a `Predicate<B>` by applying a function `(b: B) => A`
217
+ * to the input before passing it to the predicate. This is also known as "contramap" or
218
+ * "pre-composition".
219
+ *
220
+ * @example
221
+ * ```ts
222
+ * import { Predicate, Number } from "effect"
223
+ * import * as assert from "node:assert"
224
+ *
225
+ * // A predicate on numbers
226
+ * const isPositive: Predicate.Predicate<number> = Number.greaterThan(0)
227
+ *
228
+ * // A function from `string` to `number`
229
+ * const stringLength = (s: string): number => s.length
230
+ *
231
+ * // Create a new predicate on strings by mapping the input
232
+ * const hasPositiveLength = Predicate.mapInput(isPositive, stringLength)
233
+ *
234
+ * assert.strictEqual(hasPositiveLength("hello"), true)
235
+ * assert.strictEqual(hasPositiveLength(""), false)
236
+ * ```
237
+ *
238
+ * @category combinators
239
+ * @since 2.0.0
240
+ */
241
+ <A, B>(self: Predicate<A>, f: (b: B) => A): Predicate<B>
242
+ } = dual(2, <A, B>(self: Predicate<A>, f: (b: B) => A): Predicate<B> => (b) => self(f(b)))
243
+
244
+ /**
245
+ * A refinement that checks if a `ReadonlyArray<T>` is a tuple with exactly `N` elements.
246
+ * If the check is successful, the type is narrowed to `TupleOf<N, T>`.
247
+ *
248
+ * @example
249
+ * ```ts
250
+ * import * as assert from "node:assert"
251
+ * import { isTupleOf } from "effect/Predicate"
252
+ *
253
+ * const isTupleOf3 = isTupleOf(3)
254
+ *
255
+ * assert.strictEqual(isTupleOf3([1, 2, 3]), true);
256
+ * assert.strictEqual(isTupleOf3([1, 2]), false);
257
+ *
258
+ * const arr: number[] = [1, 2, 3];
259
+ * if (isTupleOf(arr, 3)) {
260
+ * // The type of arr is now [number, number, number]
261
+ * const [a, b, c] = arr;
262
+ * assert.deepStrictEqual([a, b, c], [1, 2, 3])
263
+ * }
264
+ * ```
265
+ *
266
+ * @category guards
267
+ * @since 3.3.0
268
+ */
269
+ export const isTupleOf: {
270
+ /**
271
+ * A refinement that checks if a `ReadonlyArray<T>` is a tuple with exactly `N` elements.
272
+ * If the check is successful, the type is narrowed to `TupleOf<N, T>`.
273
+ *
274
+ * @example
275
+ * ```ts
276
+ * import * as assert from "node:assert"
277
+ * import { isTupleOf } from "effect/Predicate"
278
+ *
279
+ * const isTupleOf3 = isTupleOf(3)
280
+ *
281
+ * assert.strictEqual(isTupleOf3([1, 2, 3]), true);
282
+ * assert.strictEqual(isTupleOf3([1, 2]), false);
283
+ *
284
+ * const arr: number[] = [1, 2, 3];
285
+ * if (isTupleOf(arr, 3)) {
286
+ * // The type of arr is now [number, number, number]
287
+ * const [a, b, c] = arr;
288
+ * assert.deepStrictEqual([a, b, c], [1, 2, 3])
289
+ * }
290
+ * ```
291
+ *
292
+ * @category guards
293
+ * @since 3.3.0
294
+ */
295
+ <N extends number>(n: N): <T>(self: ReadonlyArray<T>) => self is TupleOf<N, T>
296
+ /**
297
+ * A refinement that checks if a `ReadonlyArray<T>` is a tuple with exactly `N` elements.
298
+ * If the check is successful, the type is narrowed to `TupleOf<N, T>`.
299
+ *
300
+ * @example
301
+ * ```ts
302
+ * import * as assert from "node:assert"
303
+ * import { isTupleOf } from "effect/Predicate"
304
+ *
305
+ * const isTupleOf3 = isTupleOf(3)
306
+ *
307
+ * assert.strictEqual(isTupleOf3([1, 2, 3]), true);
308
+ * assert.strictEqual(isTupleOf3([1, 2]), false);
309
+ *
310
+ * const arr: number[] = [1, 2, 3];
311
+ * if (isTupleOf(arr, 3)) {
312
+ * // The type of arr is now [number, number, number]
313
+ * const [a, b, c] = arr;
314
+ * assert.deepStrictEqual([a, b, c], [1, 2, 3])
315
+ * }
316
+ * ```
317
+ *
318
+ * @category guards
319
+ * @since 3.3.0
320
+ */
321
+ <T, N extends number>(self: ReadonlyArray<T>, n: N): self is TupleOf<N, T>
322
+ } = dual(2, <T, N extends number>(self: ReadonlyArray<T>, n: N): self is TupleOf<N, T> => self.length === n)
323
+
324
+ /**
325
+ * A refinement that checks if a `ReadonlyArray<T>` is a tuple with at least `N` elements.
326
+ * If the check is successful, the type is narrowed to `TupleOfAtLeast<N, T>`.
327
+ *
328
+ * @example
329
+ * ```ts
330
+ * import * as assert from "node:assert"
331
+ * import { isTupleOfAtLeast } from "effect/Predicate"
332
+ *
333
+ * const isTupleOfAtLeast3 = isTupleOfAtLeast(3)
334
+ *
335
+ * assert.strictEqual(isTupleOfAtLeast3([1, 2, 3]), true);
336
+ * assert.strictEqual(isTupleOfAtLeast3([1, 2, 3, 4]), true);
337
+ * assert.strictEqual(isTupleOfAtLeast3([1, 2]), false);
338
+ *
339
+ * const arr: number[] = [1, 2, 3, 4];
340
+ * if (isTupleOfAtLeast(arr, 3)) {
341
+ * // The type of arr is now [number, number, number, ...number[]]
342
+ * const [a, b, c] = arr;
343
+ * assert.deepStrictEqual([a, b, c], [1, 2, 3])
344
+ * }
345
+ * ```
346
+ *
347
+ * @category guards
348
+ * @since 3.3.0
349
+ */
350
+ export const isTupleOfAtLeast: {
351
+ /**
352
+ * A refinement that checks if a `ReadonlyArray<T>` is a tuple with at least `N` elements.
353
+ * If the check is successful, the type is narrowed to `TupleOfAtLeast<N, T>`.
354
+ *
355
+ * @example
356
+ * ```ts
357
+ * import * as assert from "node:assert"
358
+ * import { isTupleOfAtLeast } from "effect/Predicate"
359
+ *
360
+ * const isTupleOfAtLeast3 = isTupleOfAtLeast(3)
361
+ *
362
+ * assert.strictEqual(isTupleOfAtLeast3([1, 2, 3]), true);
363
+ * assert.strictEqual(isTupleOfAtLeast3([1, 2, 3, 4]), true);
364
+ * assert.strictEqual(isTupleOfAtLeast3([1, 2]), false);
365
+ *
366
+ * const arr: number[] = [1, 2, 3, 4];
367
+ * if (isTupleOfAtLeast(arr, 3)) {
368
+ * // The type of arr is now [number, number, number, ...number[]]
369
+ * const [a, b, c] = arr;
370
+ * assert.deepStrictEqual([a, b, c], [1, 2, 3])
371
+ * }
372
+ * ```
373
+ *
374
+ * @category guards
375
+ * @since 3.3.0
376
+ */
377
+ <N extends number>(n: N): <T>(self: ReadonlyArray<T>) => self is TupleOfAtLeast<N, T>
378
+ /**
379
+ * A refinement that checks if a `ReadonlyArray<T>` is a tuple with at least `N` elements.
380
+ * If the check is successful, the type is narrowed to `TupleOfAtLeast<N, T>`.
381
+ *
382
+ * @example
383
+ * ```ts
384
+ * import * as assert from "node:assert"
385
+ * import { isTupleOfAtLeast } from "effect/Predicate"
386
+ *
387
+ * const isTupleOfAtLeast3 = isTupleOfAtLeast(3)
388
+ *
389
+ * assert.strictEqual(isTupleOfAtLeast3([1, 2, 3]), true);
390
+ * assert.strictEqual(isTupleOfAtLeast3([1, 2, 3, 4]), true);
391
+ * assert.strictEqual(isTupleOfAtLeast3([1, 2]), false);
392
+ *
393
+ * const arr: number[] = [1, 2, 3, 4];
394
+ * if (isTupleOfAtLeast(arr, 3)) {
395
+ * // The type of arr is now [number, number, number, ...number[]]
396
+ * const [a, b, c] = arr;
397
+ * assert.deepStrictEqual([a, b, c], [1, 2, 3])
398
+ * }
399
+ * ```
400
+ *
401
+ * @category guards
402
+ * @since 3.3.0
403
+ */
404
+ <T, N extends number>(self: ReadonlyArray<T>, n: N): self is TupleOfAtLeast<N, T>
405
+ } = dual(2, <T, N extends number>(self: ReadonlyArray<T>, n: N): self is TupleOfAtLeast<N, T> => self.length >= n)
406
+
407
+ /**
408
+ * A predicate that checks if a value is "truthy" in JavaScript.
409
+ * Fails for `false`, `0`, `-0`, `0n`, `""`, `null`, `undefined`, and `NaN`.
410
+ *
411
+ * @example
412
+ * ```ts
413
+ * import * as assert from "node:assert"
414
+ * import { isTruthy } from "effect/Predicate"
415
+ *
416
+ * assert.strictEqual(isTruthy(1), true)
417
+ * assert.strictEqual(isTruthy("hello"), true)
418
+ * assert.strictEqual(isTruthy({}), true)
419
+ *
420
+ * assert.strictEqual(isTruthy(0), false)
421
+ * assert.strictEqual(isTruthy(""), false)
422
+ * assert.strictEqual(isTruthy(null), false)
423
+ * assert.strictEqual(isTruthy(undefined), false)
424
+ * ```
425
+ *
426
+ * @category guards
427
+ * @since 2.0.0
428
+ */
429
+ export const isTruthy = (input: unknown) => !!input
430
+
431
+ /**
432
+ * A refinement that checks if a value is a `Set`.
433
+ *
434
+ * @example
435
+ * ```ts
436
+ * import * as assert from "node:assert"
437
+ * import { isSet } from "effect/Predicate"
438
+ *
439
+ * assert.strictEqual(isSet(new Set([1, 2])), true)
440
+ * assert.strictEqual(isSet(new Set()), true)
441
+ *
442
+ * assert.strictEqual(isSet({}), false)
443
+ * assert.strictEqual(isSet([1, 2]), false)
444
+ * ```
445
+ *
446
+ * @category guards
447
+ * @since 2.0.0
448
+ */
449
+ export const isSet = (input: unknown): input is Set<unknown> => input instanceof Set
450
+
451
+ /**
452
+ * A refinement that checks if a value is a `Map`.
453
+ *
454
+ * @example
455
+ * ```ts
456
+ * import * as assert from "node:assert"
457
+ * import { isMap } from "effect/Predicate"
458
+ *
459
+ * assert.strictEqual(isMap(new Map()), true)
460
+ *
461
+ * assert.strictEqual(isMap({}), false)
462
+ * assert.strictEqual(isMap(new Set()), false)
463
+ * ```
464
+ *
465
+ * @category guards
466
+ * @since 2.0.0
467
+ */
468
+ export const isMap = (input: unknown): input is Map<unknown, unknown> => input instanceof Map
469
+
470
+ /**
471
+ * A refinement that checks if a value is a `string`.
472
+ *
473
+ * @example
474
+ * ```ts
475
+ * import * as assert from "node:assert"
476
+ * import { isString } from "effect/Predicate"
477
+ *
478
+ * assert.strictEqual(isString("hello"), true)
479
+ * assert.strictEqual(isString(""), true)
480
+ *
481
+ * assert.strictEqual(isString(123), false)
482
+ * assert.strictEqual(isString(null), false)
483
+ * ```
484
+ *
485
+ * @category guards
486
+ * @since 2.0.0
487
+ */
488
+ export const isString = (input: unknown): input is string => typeof input === "string"
489
+
490
+ /**
491
+ * A refinement that checks if a value is a `number`.
492
+ *
493
+ * @example
494
+ * ```ts
495
+ * import * as assert from "node:assert"
496
+ * import { isNumber } from "effect/Predicate"
497
+ *
498
+ * assert.strictEqual(isNumber(123), true)
499
+ * assert.strictEqual(isNumber(0), true)
500
+ * assert.strictEqual(isNumber(-1.5), true)
501
+ * assert.strictEqual(isNumber(NaN), true)
502
+ *
503
+ * assert.strictEqual(isNumber("123"), false)
504
+ * ```
505
+ *
506
+ * @category guards
507
+ * @since 2.0.0
508
+ */
509
+ export const isNumber = (input: unknown): input is number => typeof input === "number"
510
+
511
+ /**
512
+ * A refinement that checks if a value is a `boolean`.
513
+ *
514
+ * @example
515
+ * ```ts
516
+ * import * as assert from "node:assert"
517
+ * import { isBoolean } from "effect/Predicate"
518
+ *
519
+ * assert.strictEqual(isBoolean(true), true)
520
+ * assert.strictEqual(isBoolean(false), true)
521
+ *
522
+ * assert.strictEqual(isBoolean("true"), false)
523
+ * assert.strictEqual(isBoolean(0), false)
524
+ * ```
525
+ *
526
+ * @category guards
527
+ * @since 2.0.0
528
+ */
529
+ export const isBoolean = (input: unknown): input is boolean => typeof input === "boolean"
530
+
531
+ /**
532
+ * A refinement that checks if a value is a `bigint`.
533
+ *
534
+ * @example
535
+ * ```ts
536
+ * import * as assert from "node:assert"
537
+ * import { isBigInt } from "effect/Predicate"
538
+ *
539
+ * assert.strictEqual(isBigInt(1n), true)
540
+ *
541
+ * assert.strictEqual(isBigInt(1), false)
542
+ * assert.strictEqual(isBigInt("1"), false)
543
+ * ```
544
+ *
545
+ * @category guards
546
+ * @since 2.0.0
547
+ */
548
+ export const isBigInt = (input: unknown): input is bigint => typeof input === "bigint"
549
+
550
+ /**
551
+ * A refinement that checks if a value is a `symbol`.
552
+ *
553
+ * @example
554
+ * ```ts
555
+ * import * as assert from "node:assert"
556
+ * import { isSymbol } from "effect/Predicate"
557
+ *
558
+ * assert.strictEqual(isSymbol(Symbol.for("a")), true)
559
+ *
560
+ * assert.strictEqual(isSymbol("a"), false)
561
+ * ```
562
+ *
563
+ * @category guards
564
+ * @since 2.0.0
565
+ */
566
+ export const isSymbol = (input: unknown): input is symbol => typeof input === "symbol"
567
+
568
+ // TODO: make public
569
+ /**
570
+ * A refinement that checks if a value is a valid `PropertyKey` (a `string`, `number`, or `symbol`).
571
+ * @internal
572
+ */
573
+ export const isPropertyKey = (u: unknown): u is PropertyKey => isString(u) || isNumber(u) || isSymbol(u)
574
+
575
+ /**
576
+ * A refinement that checks if a value is a `Function`.
577
+ *
578
+ * @example
579
+ * ```ts
580
+ * import * as assert from "node:assert"
581
+ * import { isFunction } from "effect/Predicate"
582
+ *
583
+ * assert.strictEqual(isFunction(() => {}), true)
584
+ * assert.strictEqual(isFunction(isFunction), true)
585
+ *
586
+ * assert.strictEqual(isFunction("function"), false)
587
+ * ```
588
+ *
589
+ * @category guards
590
+ * @since 2.0.0
591
+ */
592
+ export const isFunction: (input: unknown) => input is Function = isFunction_
593
+
594
+ /**
595
+ * A refinement that checks if a value is `undefined`.
596
+ *
597
+ * @example
598
+ * ```ts
599
+ * import * as assert from "node:assert"
600
+ * import { isUndefined } from "effect/Predicate"
601
+ *
602
+ * assert.strictEqual(isUndefined(undefined), true)
603
+ *
604
+ * assert.strictEqual(isUndefined(null), false)
605
+ * assert.strictEqual(isUndefined("undefined"), false)
606
+ * ```
607
+ *
608
+ * @category guards
609
+ * @since 2.0.0
610
+ */
611
+ export const isUndefined = (input: unknown): input is undefined => input === undefined
612
+
613
+ /**
614
+ * A refinement that checks if a value is not `undefined`.
615
+ *
616
+ * @example
617
+ * ```ts
618
+ * import * as assert from "node:assert"
619
+ * import { isNotUndefined } from "effect/Predicate"
620
+ *
621
+ * assert.strictEqual(isNotUndefined(null), true)
622
+ * assert.strictEqual(isNotUndefined("value"), true)
623
+ *
624
+ * assert.strictEqual(isNotUndefined(undefined), false)
625
+ * ```
626
+ *
627
+ * @category guards
628
+ * @since 2.0.0
629
+ */
630
+ export const isNotUndefined = <A>(input: A): input is Exclude<A, undefined> => input !== undefined
631
+
632
+ /**
633
+ * A refinement that checks if a value is `null`.
634
+ *
635
+ * @example
636
+ * ```ts
637
+ * import * as assert from "node:assert"
638
+ * import { isNull } from "effect/Predicate"
639
+ *
640
+ * assert.strictEqual(isNull(null), true)
641
+ *
642
+ * assert.strictEqual(isNull(undefined), false)
643
+ * assert.strictEqual(isNull("null"), false)
644
+ * ```
645
+ *
646
+ * @category guards
647
+ * @since 2.0.0
648
+ */
649
+ export const isNull = (input: unknown): input is null => input === null
650
+
651
+ /**
652
+ * A refinement that checks if a value is not `null`.
653
+ *
654
+ * @example
655
+ * ```ts
656
+ * import * as assert from "node:assert"
657
+ * import { isNotNull } from "effect/Predicate"
658
+ *
659
+ * assert.strictEqual(isNotNull(undefined), true)
660
+ * assert.strictEqual(isNotNull("value"), true)
661
+ *
662
+ * assert.strictEqual(isNotNull(null), false)
663
+ * ```
664
+ *
665
+ * @category guards
666
+ * @since 2.0.0
667
+ */
668
+ export const isNotNull = <A>(input: A): input is Exclude<A, null> => input !== null
669
+
670
+ /**
671
+ * A refinement that always returns `false`. The type is narrowed to `never`.
672
+ *
673
+ * @example
674
+ * ```ts
675
+ * import * as assert from "node:assert"
676
+ * import { isNever } from "effect/Predicate"
677
+ *
678
+ * assert.strictEqual(isNever(1), false)
679
+ * assert.strictEqual(isNever(null), false)
680
+ * assert.strictEqual(isNever({}), false)
681
+ * ```
682
+ *
683
+ * @category guards
684
+ * @since 2.0.0
685
+ */
686
+ export const isNever: (input: unknown) => input is never = (_: unknown): _ is never => false
687
+
688
+ /**
689
+ * A refinement that always returns `true`. The type is narrowed to `unknown`.
690
+ *
691
+ * @example
692
+ * ```ts
693
+ * import * as assert from "node:assert"
694
+ * import { isUnknown } from "effect/Predicate"
695
+ *
696
+ * assert.strictEqual(isUnknown(1), true)
697
+ * assert.strictEqual(isUnknown(null), true)
698
+ * assert.strictEqual(isUnknown({}), true)
699
+ * ```
700
+ *
701
+ * @category guards
702
+ * @since 2.0.0
703
+ */
704
+ export const isUnknown: (input: unknown) => input is unknown = (_): _ is unknown => true
705
+
706
+ /**
707
+ * Checks if the input is an object or an array.
708
+ * @internal
709
+ */
710
+ export const isRecordOrArray = (input: unknown): input is { [x: PropertyKey]: unknown } =>
711
+ typeof input === "object" && input !== null
712
+
713
+ /**
714
+ * A refinement that checks if a value is an `object`. Note that in JavaScript,
715
+ * arrays and functions are also considered objects.
716
+ *
717
+ * @example
718
+ * ```ts
719
+ * import * as assert from "node:assert"
720
+ * import { isObject } from "effect/Predicate"
721
+ *
722
+ * assert.strictEqual(isObject({}), true)
723
+ * assert.strictEqual(isObject([]), true)
724
+ * assert.strictEqual(isObject(() => {}), true)
725
+ *
726
+ * assert.strictEqual(isObject(null), false)
727
+ * assert.strictEqual(isObject("hello"), false)
728
+ * ```
729
+ *
730
+ * @category guards
731
+ * @since 2.0.0
732
+ * @see isRecord to check for plain objects (excluding arrays and functions).
733
+ */
734
+ export const isObject = (input: unknown): input is object => isRecordOrArray(input) || isFunction(input)
735
+
736
+ /**
737
+ * A refinement that checks if a value is an object-like value and has a specific property key.
738
+ *
739
+ * @example
740
+ * ```ts
741
+ * import * as assert from "node:assert"
742
+ * import { hasProperty } from "effect/Predicate"
743
+ *
744
+ * assert.strictEqual(hasProperty({ a: 1 }, "a"), true)
745
+ * assert.strictEqual(hasProperty({ a: 1 }, "b"), false)
746
+ *
747
+ * const value: unknown = { name: "Alice" };
748
+ * if (hasProperty(value, "name")) {
749
+ * // The type of `value` is narrowed to `{ name: unknown }`
750
+ * // and we can safely access `value.name`
751
+ * console.log(value.name)
752
+ * }
753
+ * ```
754
+ *
755
+ * @category guards
756
+ * @since 2.0.0
757
+ */
758
+ export const hasProperty: {
759
+ /**
760
+ * A refinement that checks if a value is an object-like value and has a specific property key.
761
+ *
762
+ * @example
763
+ * ```ts
764
+ * import * as assert from "node:assert"
765
+ * import { hasProperty } from "effect/Predicate"
766
+ *
767
+ * assert.strictEqual(hasProperty({ a: 1 }, "a"), true)
768
+ * assert.strictEqual(hasProperty({ a: 1 }, "b"), false)
769
+ *
770
+ * const value: unknown = { name: "Alice" };
771
+ * if (hasProperty(value, "name")) {
772
+ * // The type of `value` is narrowed to `{ name: unknown }`
773
+ * // and we can safely access `value.name`
774
+ * console.log(value.name)
775
+ * }
776
+ * ```
777
+ *
778
+ * @category guards
779
+ * @since 2.0.0
780
+ */
781
+ <P extends PropertyKey>(property: P): (self: unknown) => self is { [K in P]: unknown }
782
+ /**
783
+ * A refinement that checks if a value is an object-like value and has a specific property key.
784
+ *
785
+ * @example
786
+ * ```ts
787
+ * import * as assert from "node:assert"
788
+ * import { hasProperty } from "effect/Predicate"
789
+ *
790
+ * assert.strictEqual(hasProperty({ a: 1 }, "a"), true)
791
+ * assert.strictEqual(hasProperty({ a: 1 }, "b"), false)
792
+ *
793
+ * const value: unknown = { name: "Alice" };
794
+ * if (hasProperty(value, "name")) {
795
+ * // The type of `value` is narrowed to `{ name: unknown }`
796
+ * // and we can safely access `value.name`
797
+ * console.log(value.name)
798
+ * }
799
+ * ```
800
+ *
801
+ * @category guards
802
+ * @since 2.0.0
803
+ */
804
+ <P extends PropertyKey>(self: unknown, property: P): self is { [K in P]: unknown }
805
+ } = dual(
806
+ 2,
807
+ <P extends PropertyKey>(self: unknown, property: P): self is { [K in P]: unknown } =>
808
+ isObject(self) && (property in self)
809
+ )
810
+
811
+ /**
812
+ * A refinement that checks if a value is an object with a `_tag` property
813
+ * that matches the given tag. This is a powerful tool for working with
814
+ * discriminated union types.
815
+ *
816
+ * @example
817
+ * ```ts
818
+ * import * as assert from "node:assert"
819
+ * import { isTagged } from "effect/Predicate"
820
+ *
821
+ * type Shape = { _tag: "circle"; radius: number } | { _tag: "square"; side: number }
822
+ *
823
+ * const isCircle = isTagged("circle")
824
+ *
825
+ * const shape1: Shape = { _tag: "circle", radius: 10 }
826
+ * const shape2: Shape = { _tag: "square", side: 5 }
827
+ *
828
+ * assert.strictEqual(isCircle(shape1), true)
829
+ * assert.strictEqual(isCircle(shape2), false)
830
+ *
831
+ * if (isCircle(shape1)) {
832
+ * // shape1 is now narrowed to { _tag: "circle"; radius: number }
833
+ * assert.strictEqual(shape1.radius, 10)
834
+ * }
835
+ * ```
836
+ *
837
+ * @category guards
838
+ * @since 2.0.0
839
+ */
840
+ export const isTagged: {
841
+ /**
842
+ * A refinement that checks if a value is an object with a `_tag` property
843
+ * that matches the given tag. This is a powerful tool for working with
844
+ * discriminated union types.
845
+ *
846
+ * @example
847
+ * ```ts
848
+ * import * as assert from "node:assert"
849
+ * import { isTagged } from "effect/Predicate"
850
+ *
851
+ * type Shape = { _tag: "circle"; radius: number } | { _tag: "square"; side: number }
852
+ *
853
+ * const isCircle = isTagged("circle")
854
+ *
855
+ * const shape1: Shape = { _tag: "circle", radius: 10 }
856
+ * const shape2: Shape = { _tag: "square", side: 5 }
857
+ *
858
+ * assert.strictEqual(isCircle(shape1), true)
859
+ * assert.strictEqual(isCircle(shape2), false)
860
+ *
861
+ * if (isCircle(shape1)) {
862
+ * // shape1 is now narrowed to { _tag: "circle"; radius: number }
863
+ * assert.strictEqual(shape1.radius, 10)
864
+ * }
865
+ * ```
866
+ *
867
+ * @category guards
868
+ * @since 2.0.0
869
+ */
870
+ <K extends string>(tag: K): (self: unknown) => self is { _tag: K }
871
+ /**
872
+ * A refinement that checks if a value is an object with a `_tag` property
873
+ * that matches the given tag. This is a powerful tool for working with
874
+ * discriminated union types.
875
+ *
876
+ * @example
877
+ * ```ts
878
+ * import * as assert from "node:assert"
879
+ * import { isTagged } from "effect/Predicate"
880
+ *
881
+ * type Shape = { _tag: "circle"; radius: number } | { _tag: "square"; side: number }
882
+ *
883
+ * const isCircle = isTagged("circle")
884
+ *
885
+ * const shape1: Shape = { _tag: "circle", radius: 10 }
886
+ * const shape2: Shape = { _tag: "square", side: 5 }
887
+ *
888
+ * assert.strictEqual(isCircle(shape1), true)
889
+ * assert.strictEqual(isCircle(shape2), false)
890
+ *
891
+ * if (isCircle(shape1)) {
892
+ * // shape1 is now narrowed to { _tag: "circle"; radius: number }
893
+ * assert.strictEqual(shape1.radius, 10)
894
+ * }
895
+ * ```
896
+ *
897
+ * @category guards
898
+ * @since 2.0.0
899
+ */
900
+ <K extends string>(self: unknown, tag: K): self is { _tag: K }
901
+ } = dual(
902
+ 2,
903
+ <K extends string>(self: unknown, tag: K): self is { _tag: K } => hasProperty(self, "_tag") && self["_tag"] === tag
904
+ )
905
+
906
+ /**
907
+ * A refinement that checks if a value is either `null` or `undefined`.
908
+ *
909
+ * @example
910
+ * ```ts
911
+ * import * as assert from "node:assert"
912
+ * import { isNullable } from "effect/Predicate"
913
+ *
914
+ * assert.strictEqual(isNullable(null), true)
915
+ * assert.strictEqual(isNullable(undefined), true)
916
+ *
917
+ * assert.strictEqual(isNullable(0), false)
918
+ * assert.strictEqual(isNullable(""), false)
919
+ * ```
920
+ *
921
+ * @category guards
922
+ * @since 2.0.0
923
+ * @see isNotNullable
924
+ */
925
+ export const isNullable = <A>(input: A): input is Extract<A, null | undefined> => input === null || input === undefined
926
+
927
+ /**
928
+ * A refinement that checks if a value is neither `null` nor `undefined`.
929
+ * The type is narrowed to `NonNullable<A>`.
930
+ *
931
+ * @example
932
+ * ```ts
933
+ * import * as assert from "node:assert"
934
+ * import { isNotNullable } from "effect/Predicate"
935
+ *
936
+ * assert.strictEqual(isNotNullable(0), true)
937
+ * assert.strictEqual(isNotNullable("hello"), true)
938
+ *
939
+ * assert.strictEqual(isNotNullable(null), false)
940
+ * assert.strictEqual(isNotNullable(undefined), false)
941
+ * ```
942
+ *
943
+ * @category guards
944
+ * @since 2.0.0
945
+ * @see isNullable
946
+ */
947
+ export const isNotNullable = <A>(input: A): input is NonNullable<A> => input !== null && input !== undefined
948
+
949
+ /**
950
+ * A refinement that checks if a value is an instance of `Error`.
951
+ *
952
+ * @example
953
+ * ```ts
954
+ * import * as assert from "node:assert"
955
+ * import { isError } from "effect/Predicate"
956
+ *
957
+ * assert.strictEqual(isError(new Error("boom")), true)
958
+ * assert.strictEqual(isError(new TypeError("boom")), true)
959
+ *
960
+ * assert.strictEqual(isError({ message: "boom" }), false)
961
+ * assert.strictEqual(isError("boom"), false)
962
+ * ```
963
+ *
964
+ * @category guards
965
+ * @since 2.0.0
966
+ */
967
+ export const isError = (input: unknown): input is Error => input instanceof Error
968
+
969
+ /**
970
+ * A refinement that checks if a value is a `Uint8Array`.
971
+ *
972
+ * @example
973
+ * ```ts
974
+ * import * as assert from "node:assert"
975
+ * import { isUint8Array } from "effect/Predicate"
976
+ *
977
+ * assert.strictEqual(isUint8Array(new Uint8Array()), true)
978
+ *
979
+ * assert.strictEqual(isUint8Array(new Uint16Array()), false)
980
+ * assert.strictEqual(isUint8Array([1, 2, 3]), false)
981
+ * ```
982
+ *
983
+ * @category guards
984
+ * @since 2.0.0
985
+ */
986
+ export const isUint8Array = (input: unknown): input is Uint8Array => input instanceof Uint8Array
987
+
988
+ /**
989
+ * A refinement that checks if a value is a `Date` object.
990
+ *
991
+ * @example
992
+ * ```ts
993
+ * import * as assert from "node:assert"
994
+ * import { isDate } from "effect/Predicate"
995
+ *
996
+ * assert.strictEqual(isDate(new Date()), true)
997
+ *
998
+ * assert.strictEqual(isDate(Date.now()), false) // `Date.now()` returns a number
999
+ * assert.strictEqual(isDate("2023-01-01"), false)
1000
+ * ```
1001
+ *
1002
+ * @category guards
1003
+ * @since 2.0.0
1004
+ */
1005
+ export const isDate = (input: unknown): input is Date => input instanceof Date
1006
+
1007
+ /**
1008
+ * A refinement that checks if a value is an `Iterable`.
1009
+ * Many built-in types are iterable, such as `Array`, `string`, `Map`, and `Set`.
1010
+ *
1011
+ * @example
1012
+ * ```ts
1013
+ * import * as assert from "node:assert"
1014
+ * import { isIterable } from "effect/Predicate"
1015
+ *
1016
+ * assert.strictEqual(isIterable([]), true)
1017
+ * assert.strictEqual(isIterable("hello"), true)
1018
+ * assert.strictEqual(isIterable(new Set()), true)
1019
+ *
1020
+ * assert.strictEqual(isIterable({}), false)
1021
+ * assert.strictEqual(isIterable(123), false)
1022
+ * ```
1023
+ *
1024
+ * @category guards
1025
+ * @since 2.0.0
1026
+ */
1027
+ export const isIterable = (input: unknown): input is Iterable<unknown> =>
1028
+ typeof input === "string" || hasProperty(input, Symbol.iterator)
1029
+
1030
+ /**
1031
+ * A refinement that checks if a value is a record (i.e., a plain object).
1032
+ * This check returns `false` for arrays, `null`, and functions.
1033
+ *
1034
+ * @example
1035
+ * ```ts
1036
+ * import * as assert from "node:assert"
1037
+ * import { isRecord } from "effect/Predicate"
1038
+ *
1039
+ * assert.strictEqual(isRecord({}), true)
1040
+ * assert.strictEqual(isRecord({ a: 1 }), true)
1041
+ *
1042
+ * assert.strictEqual(isRecord([]), false)
1043
+ * assert.strictEqual(isRecord(new Date()), false)
1044
+ * assert.strictEqual(isRecord(null), false)
1045
+ * assert.strictEqual(isRecord(() => null), false)
1046
+ * ```
1047
+ *
1048
+ * @category guards
1049
+ * @since 2.0.0
1050
+ * @see isObject
1051
+ */
1052
+ export const isRecord = (input: unknown): input is { [x: string | symbol]: unknown } =>
1053
+ isRecordOrArray(input) && !Array.isArray(input)
1054
+
1055
+ /**
1056
+ * A refinement that checks if a value is a readonly record (i.e., a plain object).
1057
+ * This check returns `false` for arrays, `null`, and functions.
1058
+ *
1059
+ * This is an alias for `isRecord`.
1060
+ *
1061
+ * @example
1062
+ * ```ts
1063
+ * import * as assert from "node:assert"
1064
+ * import { isReadonlyRecord } from "effect/Predicate"
1065
+ *
1066
+ * assert.strictEqual(isReadonlyRecord({}), true)
1067
+ * assert.strictEqual(isReadonlyRecord({ a: 1 }), true)
1068
+ *
1069
+ * assert.strictEqual(isReadonlyRecord([]), false)
1070
+ * assert.strictEqual(isReadonlyRecord(null), false)
1071
+ * ```
1072
+ *
1073
+ * @category guards
1074
+ * @since 2.0.0
1075
+ */
1076
+ export const isReadonlyRecord: (
1077
+ input: unknown
1078
+ ) => input is { readonly [x: string | symbol]: unknown } = isRecord
1079
+
1080
+ /**
1081
+ * A refinement that checks if a value is a `Promise`. It performs a duck-typing check
1082
+ * for `.then` and `.catch` methods.
1083
+ *
1084
+ * @example
1085
+ * ```ts
1086
+ * import * as assert from "node:assert"
1087
+ * import { isPromise } from "effect/Predicate"
1088
+ *
1089
+ * assert.strictEqual(isPromise(Promise.resolve(1)), true)
1090
+ * assert.strictEqual(isPromise(new Promise(() => {})), true)
1091
+ *
1092
+ * assert.strictEqual(isPromise({ then() {} }), false) // Missing .catch
1093
+ * assert.strictEqual(isPromise({}), false)
1094
+ * ```
1095
+ *
1096
+ * @category guards
1097
+ * @since 2.0.0
1098
+ * @see isPromiseLike
1099
+ */
1100
+ export const isPromise = (
1101
+ input: unknown
1102
+ ): input is Promise<unknown> =>
1103
+ hasProperty(input, "then") && "catch" in input && isFunction(input.then) && isFunction(input.catch)
1104
+
1105
+ /**
1106
+ * A refinement that checks if a value is `PromiseLike`. It performs a duck-typing
1107
+ * check for a `.then` method.
1108
+ *
1109
+ * @example
1110
+ * ```ts
1111
+ * import * as assert from "node:assert"
1112
+ * import { isPromiseLike } from "effect/Predicate"
1113
+ *
1114
+ * assert.strictEqual(isPromiseLike(Promise.resolve(1)), true)
1115
+ * assert.strictEqual(isPromiseLike({ then: () => {} }), true)
1116
+ *
1117
+ * assert.strictEqual(isPromiseLike({}), false)
1118
+ * ```
1119
+ *
1120
+ * @category guards
1121
+ * @since 2.0.0
1122
+ * @see isPromise
1123
+ */
1124
+ export const isPromiseLike = (
1125
+ input: unknown
1126
+ ): input is PromiseLike<unknown> => hasProperty(input, "then") && isFunction(input.then)
1127
+
1128
+ /**
1129
+ * A refinement that checks if a value is a `RegExp`.
1130
+ *
1131
+ * @example
1132
+ * ```ts
1133
+ * import * as assert from "node:assert"
1134
+ * import { Predicate } from "effect"
1135
+ *
1136
+ * assert.strictEqual(Predicate.isRegExp(/a/), true)
1137
+ * assert.strictEqual(Predicate.isRegExp(new RegExp("a")), true)
1138
+ *
1139
+ * assert.strictEqual(Predicate.isRegExp("/a/"), false)
1140
+ * ```
1141
+ *
1142
+ * @category guards
1143
+ * @since 3.9.0
1144
+ */
1145
+ export const isRegExp = (input: unknown): input is RegExp => input instanceof RegExp
1146
+
1147
+ /**
1148
+ * Composes a `Refinement` with another `Refinement` or `Predicate`.
1149
+ *
1150
+ * This can be used to chain checks. The first refinement is applied, and if it
1151
+ * passes, the second check is applied to the same value, potentially refining
1152
+ * the type further.
1153
+ *
1154
+ * @example
1155
+ * ```ts
1156
+ * import { Predicate } from "effect"
1157
+ * import * as assert from "node:assert"
1158
+ *
1159
+ * const isString = (u: unknown): u is string => typeof u === "string"
1160
+ * const minLength = (n: number) => (s: string): boolean => s.length >= n
1161
+ *
1162
+ * // Create a refinement that checks for a string with a minimum length of 3
1163
+ * const isLongString = Predicate.compose(isString, minLength(3))
1164
+ *
1165
+ * let value: unknown = "hello"
1166
+ *
1167
+ * assert.strictEqual(isLongString(value), true)
1168
+ * if (isLongString(value)) {
1169
+ * // value is narrowed to string
1170
+ * assert.strictEqual(value.toUpperCase(), "HELLO")
1171
+ * }
1172
+ * assert.strictEqual(isLongString("hi"), false)
1173
+ * ```
1174
+ *
1175
+ * @since 2.0.0
1176
+ */
1177
+ export const compose: {
1178
+ /**
1179
+ * Composes a `Refinement` with another `Refinement` or `Predicate`.
1180
+ *
1181
+ * This can be used to chain checks. The first refinement is applied, and if it
1182
+ * passes, the second check is applied to the same value, potentially refining
1183
+ * the type further.
1184
+ *
1185
+ * @example
1186
+ * ```ts
1187
+ * import { Predicate } from "effect"
1188
+ * import * as assert from "node:assert"
1189
+ *
1190
+ * const isString = (u: unknown): u is string => typeof u === "string"
1191
+ * const minLength = (n: number) => (s: string): boolean => s.length >= n
1192
+ *
1193
+ * // Create a refinement that checks for a string with a minimum length of 3
1194
+ * const isLongString = Predicate.compose(isString, minLength(3))
1195
+ *
1196
+ * let value: unknown = "hello"
1197
+ *
1198
+ * assert.strictEqual(isLongString(value), true)
1199
+ * if (isLongString(value)) {
1200
+ * // value is narrowed to string
1201
+ * assert.strictEqual(value.toUpperCase(), "HELLO")
1202
+ * }
1203
+ * assert.strictEqual(isLongString("hi"), false)
1204
+ * ```
1205
+ *
1206
+ * @since 2.0.0
1207
+ */
1208
+ <A, B extends A, C extends B, D extends C>(bc: Refinement<C, D>): (ab: Refinement<A, B>) => Refinement<A, D>
1209
+ /**
1210
+ * Composes a `Refinement` with another `Refinement` or `Predicate`.
1211
+ *
1212
+ * This can be used to chain checks. The first refinement is applied, and if it
1213
+ * passes, the second check is applied to the same value, potentially refining
1214
+ * the type further.
1215
+ *
1216
+ * @example
1217
+ * ```ts
1218
+ * import { Predicate } from "effect"
1219
+ * import * as assert from "node:assert"
1220
+ *
1221
+ * const isString = (u: unknown): u is string => typeof u === "string"
1222
+ * const minLength = (n: number) => (s: string): boolean => s.length >= n
1223
+ *
1224
+ * // Create a refinement that checks for a string with a minimum length of 3
1225
+ * const isLongString = Predicate.compose(isString, minLength(3))
1226
+ *
1227
+ * let value: unknown = "hello"
1228
+ *
1229
+ * assert.strictEqual(isLongString(value), true)
1230
+ * if (isLongString(value)) {
1231
+ * // value is narrowed to string
1232
+ * assert.strictEqual(value.toUpperCase(), "HELLO")
1233
+ * }
1234
+ * assert.strictEqual(isLongString("hi"), false)
1235
+ * ```
1236
+ *
1237
+ * @since 2.0.0
1238
+ */
1239
+ <A, B extends A>(bc: Predicate<NoInfer<B>>): (ab: Refinement<A, B>) => Refinement<A, B>
1240
+ /**
1241
+ * Composes a `Refinement` with another `Refinement` or `Predicate`.
1242
+ *
1243
+ * This can be used to chain checks. The first refinement is applied, and if it
1244
+ * passes, the second check is applied to the same value, potentially refining
1245
+ * the type further.
1246
+ *
1247
+ * @example
1248
+ * ```ts
1249
+ * import { Predicate } from "effect"
1250
+ * import * as assert from "node:assert"
1251
+ *
1252
+ * const isString = (u: unknown): u is string => typeof u === "string"
1253
+ * const minLength = (n: number) => (s: string): boolean => s.length >= n
1254
+ *
1255
+ * // Create a refinement that checks for a string with a minimum length of 3
1256
+ * const isLongString = Predicate.compose(isString, minLength(3))
1257
+ *
1258
+ * let value: unknown = "hello"
1259
+ *
1260
+ * assert.strictEqual(isLongString(value), true)
1261
+ * if (isLongString(value)) {
1262
+ * // value is narrowed to string
1263
+ * assert.strictEqual(value.toUpperCase(), "HELLO")
1264
+ * }
1265
+ * assert.strictEqual(isLongString("hi"), false)
1266
+ * ```
1267
+ *
1268
+ * @since 2.0.0
1269
+ */
1270
+ <A, B extends A, C extends B, D extends C>(ab: Refinement<A, B>, bc: Refinement<C, D>): Refinement<A, D>
1271
+ /**
1272
+ * Composes a `Refinement` with another `Refinement` or `Predicate`.
1273
+ *
1274
+ * This can be used to chain checks. The first refinement is applied, and if it
1275
+ * passes, the second check is applied to the same value, potentially refining
1276
+ * the type further.
1277
+ *
1278
+ * @example
1279
+ * ```ts
1280
+ * import { Predicate } from "effect"
1281
+ * import * as assert from "node:assert"
1282
+ *
1283
+ * const isString = (u: unknown): u is string => typeof u === "string"
1284
+ * const minLength = (n: number) => (s: string): boolean => s.length >= n
1285
+ *
1286
+ * // Create a refinement that checks for a string with a minimum length of 3
1287
+ * const isLongString = Predicate.compose(isString, minLength(3))
1288
+ *
1289
+ * let value: unknown = "hello"
1290
+ *
1291
+ * assert.strictEqual(isLongString(value), true)
1292
+ * if (isLongString(value)) {
1293
+ * // value is narrowed to string
1294
+ * assert.strictEqual(value.toUpperCase(), "HELLO")
1295
+ * }
1296
+ * assert.strictEqual(isLongString("hi"), false)
1297
+ * ```
1298
+ *
1299
+ * @since 2.0.0
1300
+ */
1301
+ <A, B extends A>(ab: Refinement<A, B>, bc: Predicate<NoInfer<B>>): Refinement<A, B>
1302
+ } = dual(
1303
+ 2,
1304
+ <A, B extends A, C extends B, D extends C>(ab: Refinement<A, B>, bc: Refinement<C, D>): Refinement<A, D> =>
1305
+ (a): a is D => ab(a) && bc(a as C)
1306
+ )
1307
+
1308
+ /**
1309
+ * Combines two predicates to test a tuple of two values. The first predicate tests the
1310
+ * first element of the tuple, and the second predicate tests the second element.
1311
+ *
1312
+ * @category combining
1313
+ * @since 2.0.0
1314
+ */
1315
+ export const product =
1316
+ <A, B>(self: Predicate<A>, that: Predicate<B>): Predicate<readonly [A, B]> /* readonly because contravariant */ =>
1317
+ ([a, b]) => self(a) && that(b)
1318
+
1319
+ /**
1320
+ * Takes an iterable of predicates and returns a new predicate that tests an array of values.
1321
+ * The new predicate returns `true` if each predicate at a given index is satisfied by the
1322
+ * value at the same index in the array. The check stops at the length of the shorter of
1323
+ * the two iterables (predicates or values).
1324
+ *
1325
+ * @category combining
1326
+ * @since 2.0.0
1327
+ * @see tuple for a more powerful, variadic version.
1328
+ */
1329
+ export const all = <A>(
1330
+ collection: Iterable<Predicate<A>>
1331
+ ): Predicate<ReadonlyArray<A>> => {
1332
+ return (as) => {
1333
+ let collectionIndex = 0
1334
+ for (const p of collection) {
1335
+ if (collectionIndex >= as.length) {
1336
+ break
1337
+ }
1338
+ if (p(as[collectionIndex]) === false) {
1339
+ return false
1340
+ }
1341
+ collectionIndex++
1342
+ }
1343
+ return true
1344
+ }
1345
+ }
1346
+
1347
+ /**
1348
+ * Combines a predicate for a single value and an iterable of predicates for the rest of an array.
1349
+ * Useful for checking the head and tail of an array separately.
1350
+ *
1351
+ * @category combining
1352
+ * @since 2.0.0
1353
+ */
1354
+ export const productMany = <A>(
1355
+ self: Predicate<A>,
1356
+ collection: Iterable<Predicate<A>>
1357
+ ): Predicate<readonly [A, ...Array<A>]> /* readonly because contravariant */ => {
1358
+ const rest = all(collection)
1359
+ return ([head, ...tail]) => self(head) === false ? false : rest(tail)
1360
+ }
1361
+
1362
+ /**
1363
+ * Combines an array of predicates into a single predicate that tests an array of values.
1364
+ * This function is highly type-aware and will produce a `Refinement` if any of the provided
1365
+ * predicates are `Refinement`s, allowing for powerful type-narrowing of tuples.
1366
+ *
1367
+ * - If all predicates are `Predicate<T>`, the result is `Predicate<[T, T, ...]>`.
1368
+ * - If any predicate is a `Refinement<A, B>`, the result is a `Refinement` that narrows
1369
+ * the input tuple type to a more specific tuple type.
1370
+ *
1371
+ * @example
1372
+ * ```ts
1373
+ * import * as assert from "node:assert"
1374
+ * import { Predicate } from "effect"
1375
+ *
1376
+ * const isString = (u: unknown): u is string => typeof u === "string"
1377
+ * const isNumber = (u: unknown): u is number => typeof u === "number"
1378
+ *
1379
+ * // Create a refinement for a [string, number] tuple
1380
+ * const isStringNumberTuple = Predicate.tuple(isString, isNumber)
1381
+ *
1382
+ * const value: [unknown, unknown] = ["hello", 123]
1383
+ * if (isStringNumberTuple(value)) {
1384
+ * // value is narrowed to [string, number]
1385
+ * const [s, n] = value
1386
+ * assert.strictEqual(s.toUpperCase(), "HELLO")
1387
+ * assert.strictEqual(n.toFixed(2), "123.00")
1388
+ * }
1389
+ * assert.strictEqual(isStringNumberTuple(["hello", "123"]), false)
1390
+ * ```
1391
+ *
1392
+ * @since 2.0.0
1393
+ */
1394
+ export const tuple: {
1395
+ /**
1396
+ * Combines an array of predicates into a single predicate that tests an array of values.
1397
+ * This function is highly type-aware and will produce a `Refinement` if any of the provided
1398
+ * predicates are `Refinement`s, allowing for powerful type-narrowing of tuples.
1399
+ *
1400
+ * - If all predicates are `Predicate<T>`, the result is `Predicate<[T, T, ...]>`.
1401
+ * - If any predicate is a `Refinement<A, B>`, the result is a `Refinement` that narrows
1402
+ * the input tuple type to a more specific tuple type.
1403
+ *
1404
+ * @example
1405
+ * ```ts
1406
+ * import * as assert from "node:assert"
1407
+ * import { Predicate } from "effect"
1408
+ *
1409
+ * const isString = (u: unknown): u is string => typeof u === "string"
1410
+ * const isNumber = (u: unknown): u is number => typeof u === "number"
1411
+ *
1412
+ * // Create a refinement for a [string, number] tuple
1413
+ * const isStringNumberTuple = Predicate.tuple(isString, isNumber)
1414
+ *
1415
+ * const value: [unknown, unknown] = ["hello", 123]
1416
+ * if (isStringNumberTuple(value)) {
1417
+ * // value is narrowed to [string, number]
1418
+ * const [s, n] = value
1419
+ * assert.strictEqual(s.toUpperCase(), "HELLO")
1420
+ * assert.strictEqual(n.toFixed(2), "123.00")
1421
+ * }
1422
+ * assert.strictEqual(isStringNumberTuple(["hello", "123"]), false)
1423
+ * ```
1424
+ *
1425
+ * @since 2.0.0
1426
+ */
1427
+ <T extends ReadonlyArray<Predicate.Any>>(...elements: T): [Extract<T[number], Refinement.Any>] extends [never] ? Predicate<{ readonly [I in keyof T]: Predicate.In<T[I]> }>
1428
+ : Refinement<
1429
+ { readonly [I in keyof T]: T[I] extends Refinement.Any ? Refinement.In<T[I]> : Predicate.In<T[I]> },
1430
+ { readonly [I in keyof T]: T[I] extends Refinement.Any ? Refinement.Out<T[I]> : Predicate.In<T[I]> }
1431
+ >
1432
+ } = (...elements: ReadonlyArray<Predicate.Any>) => all(elements) as any
1433
+
1434
+ /**
1435
+ * Combines a record of predicates into a single predicate that tests a record of values.
1436
+ * This function is highly type-aware and will produce a `Refinement` if any of the provided
1437
+ * predicates are `Refinement`s, allowing for powerful type-narrowing of structs.
1438
+ *
1439
+ * - If all predicates are `Predicate<T>`, the result is `Predicate<{ k: T, ... }>`.
1440
+ * - If any predicate is a `Refinement<A, B>`, the result is a `Refinement` that narrows
1441
+ * the input record type to a more specific record type.
1442
+ *
1443
+ * @example
1444
+ * ```ts
1445
+ * import * as assert from "node:assert"
1446
+ * import { Predicate } from "effect"
1447
+ *
1448
+ * const isString = (u: unknown): u is string => typeof u === "string"
1449
+ * const isNumber = (u: unknown): u is number => typeof u === "number"
1450
+ *
1451
+ * const personPredicate = Predicate.struct({
1452
+ * name: isString,
1453
+ * age: isNumber
1454
+ * })
1455
+ *
1456
+ * const value: { name: unknown; age: unknown } = { name: "Alice", age: 30 }
1457
+ * if (personPredicate(value)) {
1458
+ * // value is narrowed to { name: string; age: number }
1459
+ * assert.strictEqual(value.name.toUpperCase(), "ALICE")
1460
+ * assert.strictEqual(value.age.toFixed(0), "30")
1461
+ * }
1462
+ * assert.strictEqual(personPredicate({ name: "Bob", age: "40" }), false)
1463
+ * ```
1464
+ *
1465
+ * @since 2.0.0
1466
+ */
1467
+ export const struct: {
1468
+ /**
1469
+ * Combines a record of predicates into a single predicate that tests a record of values.
1470
+ * This function is highly type-aware and will produce a `Refinement` if any of the provided
1471
+ * predicates are `Refinement`s, allowing for powerful type-narrowing of structs.
1472
+ *
1473
+ * - If all predicates are `Predicate<T>`, the result is `Predicate<{ k: T, ... }>`.
1474
+ * - If any predicate is a `Refinement<A, B>`, the result is a `Refinement` that narrows
1475
+ * the input record type to a more specific record type.
1476
+ *
1477
+ * @example
1478
+ * ```ts
1479
+ * import * as assert from "node:assert"
1480
+ * import { Predicate } from "effect"
1481
+ *
1482
+ * const isString = (u: unknown): u is string => typeof u === "string"
1483
+ * const isNumber = (u: unknown): u is number => typeof u === "number"
1484
+ *
1485
+ * const personPredicate = Predicate.struct({
1486
+ * name: isString,
1487
+ * age: isNumber
1488
+ * })
1489
+ *
1490
+ * const value: { name: unknown; age: unknown } = { name: "Alice", age: 30 }
1491
+ * if (personPredicate(value)) {
1492
+ * // value is narrowed to { name: string; age: number }
1493
+ * assert.strictEqual(value.name.toUpperCase(), "ALICE")
1494
+ * assert.strictEqual(value.age.toFixed(0), "30")
1495
+ * }
1496
+ * assert.strictEqual(personPredicate({ name: "Bob", age: "40" }), false)
1497
+ * ```
1498
+ *
1499
+ * @since 2.0.0
1500
+ */
1501
+ <R extends Record<string, Predicate.Any>>(fields: R): [Extract<R[keyof R], Refinement.Any>] extends [never] ?
1502
+ Predicate<{ readonly [K in keyof R]: Predicate.In<R[K]> }> :
1503
+ Refinement<
1504
+ { readonly [K in keyof R]: R[K] extends Refinement.Any ? Refinement.In<R[K]> : Predicate.In<R[K]> },
1505
+ { readonly [K in keyof R]: R[K] extends Refinement.Any ? Refinement.Out<R[K]> : Predicate.In<R[K]> }
1506
+ >
1507
+ } = (<R extends Record<string, Predicate.Any>>(fields: R) => {
1508
+ const keys = Object.keys(fields)
1509
+ return (a: Record<string, unknown>) => {
1510
+ for (const key of keys) {
1511
+ if (!fields[key](a[key] as never)) {
1512
+ return false
1513
+ }
1514
+ }
1515
+ return true
1516
+ }
1517
+ }) as any
1518
+
1519
+ /**
1520
+ * Returns a new predicate that is the logical negation of the given predicate.
1521
+ *
1522
+ * **Note**: If the input is a `Refinement`, the resulting predicate will be a
1523
+ * simple `Predicate`, as TypeScript cannot infer the negative type.
1524
+ *
1525
+ * @example
1526
+ * ```ts
1527
+ * import * as assert from "node:assert"
1528
+ * import { Predicate, Number } from "effect"
1529
+ *
1530
+ * const isNonPositive = Predicate.not(Number.greaterThan(0))
1531
+ *
1532
+ * assert.strictEqual(isNonPositive(-1), true)
1533
+ * assert.strictEqual(isNonPositive(0), true)
1534
+ * assert.strictEqual(isNonPositive(1), false)
1535
+ * ```
1536
+ *
1537
+ * @category combinators
1538
+ * @since 2.0.0
1539
+ */
1540
+ export const not = <A>(self: Predicate<A>): Predicate<A> => (a) => !self(a)
1541
+
1542
+ /**
1543
+ * Combines two predicates with a logical "OR". The resulting predicate returns `true`
1544
+ * if at least one of the predicates returns `true`.
1545
+ *
1546
+ * If both predicates are `Refinement`s, the resulting predicate is a `Refinement` to the
1547
+ * union of their target types (`B | C`).
1548
+ *
1549
+ * @example
1550
+ * ```ts
1551
+ * import * as assert from "node:assert"
1552
+ * import { Predicate } from "effect"
1553
+ *
1554
+ * const isString = (u: unknown): u is string => typeof u === "string"
1555
+ * const isNumber = (u: unknown): u is number => typeof u === "number"
1556
+ *
1557
+ * const isStringOrNumber = Predicate.or(isString, isNumber)
1558
+ *
1559
+ * assert.strictEqual(isStringOrNumber("hello"), true)
1560
+ * assert.strictEqual(isStringOrNumber(123), true)
1561
+ * assert.strictEqual(isStringOrNumber(null), false)
1562
+ *
1563
+ * const value: unknown = "world"
1564
+ * if (isStringOrNumber(value)) {
1565
+ * // value is narrowed to string | number
1566
+ * console.log(value)
1567
+ * }
1568
+ * ```
1569
+ *
1570
+ * @category combinators
1571
+ * @since 2.0.0
1572
+ */
1573
+ export const or: {
1574
+ /**
1575
+ * Combines two predicates with a logical "OR". The resulting predicate returns `true`
1576
+ * if at least one of the predicates returns `true`.
1577
+ *
1578
+ * If both predicates are `Refinement`s, the resulting predicate is a `Refinement` to the
1579
+ * union of their target types (`B | C`).
1580
+ *
1581
+ * @example
1582
+ * ```ts
1583
+ * import * as assert from "node:assert"
1584
+ * import { Predicate } from "effect"
1585
+ *
1586
+ * const isString = (u: unknown): u is string => typeof u === "string"
1587
+ * const isNumber = (u: unknown): u is number => typeof u === "number"
1588
+ *
1589
+ * const isStringOrNumber = Predicate.or(isString, isNumber)
1590
+ *
1591
+ * assert.strictEqual(isStringOrNumber("hello"), true)
1592
+ * assert.strictEqual(isStringOrNumber(123), true)
1593
+ * assert.strictEqual(isStringOrNumber(null), false)
1594
+ *
1595
+ * const value: unknown = "world"
1596
+ * if (isStringOrNumber(value)) {
1597
+ * // value is narrowed to string | number
1598
+ * console.log(value)
1599
+ * }
1600
+ * ```
1601
+ *
1602
+ * @category combinators
1603
+ * @since 2.0.0
1604
+ */
1605
+ <A, C extends A>(that: Refinement<A, C>): <B extends A>(self: Refinement<A, B>) => Refinement<A, B | C>
1606
+ /**
1607
+ * Combines two predicates with a logical "OR". The resulting predicate returns `true`
1608
+ * if at least one of the predicates returns `true`.
1609
+ *
1610
+ * If both predicates are `Refinement`s, the resulting predicate is a `Refinement` to the
1611
+ * union of their target types (`B | C`).
1612
+ *
1613
+ * @example
1614
+ * ```ts
1615
+ * import * as assert from "node:assert"
1616
+ * import { Predicate } from "effect"
1617
+ *
1618
+ * const isString = (u: unknown): u is string => typeof u === "string"
1619
+ * const isNumber = (u: unknown): u is number => typeof u === "number"
1620
+ *
1621
+ * const isStringOrNumber = Predicate.or(isString, isNumber)
1622
+ *
1623
+ * assert.strictEqual(isStringOrNumber("hello"), true)
1624
+ * assert.strictEqual(isStringOrNumber(123), true)
1625
+ * assert.strictEqual(isStringOrNumber(null), false)
1626
+ *
1627
+ * const value: unknown = "world"
1628
+ * if (isStringOrNumber(value)) {
1629
+ * // value is narrowed to string | number
1630
+ * console.log(value)
1631
+ * }
1632
+ * ```
1633
+ *
1634
+ * @category combinators
1635
+ * @since 2.0.0
1636
+ */
1637
+ <A, B extends A, C extends A>(self: Refinement<A, B>, that: Refinement<A, C>): Refinement<A, B | C>
1638
+ /**
1639
+ * Combines two predicates with a logical "OR". The resulting predicate returns `true`
1640
+ * if at least one of the predicates returns `true`.
1641
+ *
1642
+ * If both predicates are `Refinement`s, the resulting predicate is a `Refinement` to the
1643
+ * union of their target types (`B | C`).
1644
+ *
1645
+ * @example
1646
+ * ```ts
1647
+ * import * as assert from "node:assert"
1648
+ * import { Predicate } from "effect"
1649
+ *
1650
+ * const isString = (u: unknown): u is string => typeof u === "string"
1651
+ * const isNumber = (u: unknown): u is number => typeof u === "number"
1652
+ *
1653
+ * const isStringOrNumber = Predicate.or(isString, isNumber)
1654
+ *
1655
+ * assert.strictEqual(isStringOrNumber("hello"), true)
1656
+ * assert.strictEqual(isStringOrNumber(123), true)
1657
+ * assert.strictEqual(isStringOrNumber(null), false)
1658
+ *
1659
+ * const value: unknown = "world"
1660
+ * if (isStringOrNumber(value)) {
1661
+ * // value is narrowed to string | number
1662
+ * console.log(value)
1663
+ * }
1664
+ * ```
1665
+ *
1666
+ * @category combinators
1667
+ * @since 2.0.0
1668
+ */
1669
+ <A>(that: Predicate<A>): (self: Predicate<A>) => Predicate<A>
1670
+ /**
1671
+ * Combines two predicates with a logical "OR". The resulting predicate returns `true`
1672
+ * if at least one of the predicates returns `true`.
1673
+ *
1674
+ * If both predicates are `Refinement`s, the resulting predicate is a `Refinement` to the
1675
+ * union of their target types (`B | C`).
1676
+ *
1677
+ * @example
1678
+ * ```ts
1679
+ * import * as assert from "node:assert"
1680
+ * import { Predicate } from "effect"
1681
+ *
1682
+ * const isString = (u: unknown): u is string => typeof u === "string"
1683
+ * const isNumber = (u: unknown): u is number => typeof u === "number"
1684
+ *
1685
+ * const isStringOrNumber = Predicate.or(isString, isNumber)
1686
+ *
1687
+ * assert.strictEqual(isStringOrNumber("hello"), true)
1688
+ * assert.strictEqual(isStringOrNumber(123), true)
1689
+ * assert.strictEqual(isStringOrNumber(null), false)
1690
+ *
1691
+ * const value: unknown = "world"
1692
+ * if (isStringOrNumber(value)) {
1693
+ * // value is narrowed to string | number
1694
+ * console.log(value)
1695
+ * }
1696
+ * ```
1697
+ *
1698
+ * @category combinators
1699
+ * @since 2.0.0
1700
+ */
1701
+ <A>(self: Predicate<A>, that: Predicate<A>): Predicate<A>
1702
+ } = dual(2, <A>(self: Predicate<A>, that: Predicate<A>): Predicate<A> => (a) => self(a) || that(a))
1703
+
1704
+ /**
1705
+ * Combines two predicates with a logical "AND". The resulting predicate returns `true`
1706
+ * only if both of the predicates return `true`.
1707
+ *
1708
+ * If both predicates are `Refinement`s, the resulting predicate is a `Refinement` to the
1709
+ * intersection of their target types (`B & C`).
1710
+ *
1711
+ * @example
1712
+ * ```ts
1713
+ * import * as assert from "node:assert"
1714
+ * import { Predicate } from "effect"
1715
+ *
1716
+ * type Person = { name: string }
1717
+ * type Employee = { id: number }
1718
+ *
1719
+ * const hasName = (u: unknown): u is Person => Predicate.hasProperty(u, "name") && typeof (u as any).name === "string"
1720
+ * const hasId = (u: unknown): u is Employee => Predicate.hasProperty(u, "id") && typeof (u as any).id === "number"
1721
+ *
1722
+ * const isPersonAndEmployee = Predicate.and(hasName, hasId)
1723
+ *
1724
+ * const val: unknown = { name: "Alice", id: 123 }
1725
+ * if (isPersonAndEmployee(val)) {
1726
+ * // val is narrowed to Person & Employee
1727
+ * assert.strictEqual(val.name, "Alice")
1728
+ * assert.strictEqual(val.id, 123)
1729
+ * }
1730
+ *
1731
+ * assert.strictEqual(isPersonAndEmployee({ name: "Bob" }), false) // Missing id
1732
+ * assert.strictEqual(isPersonAndEmployee({ id: 456 }), false) // Missing name
1733
+ * ```
1734
+ *
1735
+ * @category combinators
1736
+ * @since 2.0.0
1737
+ */
1738
+ export const and: {
1739
+ /**
1740
+ * Combines two predicates with a logical "AND". The resulting predicate returns `true`
1741
+ * only if both of the predicates return `true`.
1742
+ *
1743
+ * If both predicates are `Refinement`s, the resulting predicate is a `Refinement` to the
1744
+ * intersection of their target types (`B & C`).
1745
+ *
1746
+ * @example
1747
+ * ```ts
1748
+ * import * as assert from "node:assert"
1749
+ * import { Predicate } from "effect"
1750
+ *
1751
+ * type Person = { name: string }
1752
+ * type Employee = { id: number }
1753
+ *
1754
+ * const hasName = (u: unknown): u is Person => Predicate.hasProperty(u, "name") && typeof (u as any).name === "string"
1755
+ * const hasId = (u: unknown): u is Employee => Predicate.hasProperty(u, "id") && typeof (u as any).id === "number"
1756
+ *
1757
+ * const isPersonAndEmployee = Predicate.and(hasName, hasId)
1758
+ *
1759
+ * const val: unknown = { name: "Alice", id: 123 }
1760
+ * if (isPersonAndEmployee(val)) {
1761
+ * // val is narrowed to Person & Employee
1762
+ * assert.strictEqual(val.name, "Alice")
1763
+ * assert.strictEqual(val.id, 123)
1764
+ * }
1765
+ *
1766
+ * assert.strictEqual(isPersonAndEmployee({ name: "Bob" }), false) // Missing id
1767
+ * assert.strictEqual(isPersonAndEmployee({ id: 456 }), false) // Missing name
1768
+ * ```
1769
+ *
1770
+ * @category combinators
1771
+ * @since 2.0.0
1772
+ */
1773
+ <A, C extends A>(that: Refinement<A, C>): <B extends A>(self: Refinement<A, B>) => Refinement<A, B & C>
1774
+ /**
1775
+ * Combines two predicates with a logical "AND". The resulting predicate returns `true`
1776
+ * only if both of the predicates return `true`.
1777
+ *
1778
+ * If both predicates are `Refinement`s, the resulting predicate is a `Refinement` to the
1779
+ * intersection of their target types (`B & C`).
1780
+ *
1781
+ * @example
1782
+ * ```ts
1783
+ * import * as assert from "node:assert"
1784
+ * import { Predicate } from "effect"
1785
+ *
1786
+ * type Person = { name: string }
1787
+ * type Employee = { id: number }
1788
+ *
1789
+ * const hasName = (u: unknown): u is Person => Predicate.hasProperty(u, "name") && typeof (u as any).name === "string"
1790
+ * const hasId = (u: unknown): u is Employee => Predicate.hasProperty(u, "id") && typeof (u as any).id === "number"
1791
+ *
1792
+ * const isPersonAndEmployee = Predicate.and(hasName, hasId)
1793
+ *
1794
+ * const val: unknown = { name: "Alice", id: 123 }
1795
+ * if (isPersonAndEmployee(val)) {
1796
+ * // val is narrowed to Person & Employee
1797
+ * assert.strictEqual(val.name, "Alice")
1798
+ * assert.strictEqual(val.id, 123)
1799
+ * }
1800
+ *
1801
+ * assert.strictEqual(isPersonAndEmployee({ name: "Bob" }), false) // Missing id
1802
+ * assert.strictEqual(isPersonAndEmployee({ id: 456 }), false) // Missing name
1803
+ * ```
1804
+ *
1805
+ * @category combinators
1806
+ * @since 2.0.0
1807
+ */
1808
+ <A, B extends A, C extends A>(self: Refinement<A, B>, that: Refinement<A, C>): Refinement<A, B & C>
1809
+ /**
1810
+ * Combines two predicates with a logical "AND". The resulting predicate returns `true`
1811
+ * only if both of the predicates return `true`.
1812
+ *
1813
+ * If both predicates are `Refinement`s, the resulting predicate is a `Refinement` to the
1814
+ * intersection of their target types (`B & C`).
1815
+ *
1816
+ * @example
1817
+ * ```ts
1818
+ * import * as assert from "node:assert"
1819
+ * import { Predicate } from "effect"
1820
+ *
1821
+ * type Person = { name: string }
1822
+ * type Employee = { id: number }
1823
+ *
1824
+ * const hasName = (u: unknown): u is Person => Predicate.hasProperty(u, "name") && typeof (u as any).name === "string"
1825
+ * const hasId = (u: unknown): u is Employee => Predicate.hasProperty(u, "id") && typeof (u as any).id === "number"
1826
+ *
1827
+ * const isPersonAndEmployee = Predicate.and(hasName, hasId)
1828
+ *
1829
+ * const val: unknown = { name: "Alice", id: 123 }
1830
+ * if (isPersonAndEmployee(val)) {
1831
+ * // val is narrowed to Person & Employee
1832
+ * assert.strictEqual(val.name, "Alice")
1833
+ * assert.strictEqual(val.id, 123)
1834
+ * }
1835
+ *
1836
+ * assert.strictEqual(isPersonAndEmployee({ name: "Bob" }), false) // Missing id
1837
+ * assert.strictEqual(isPersonAndEmployee({ id: 456 }), false) // Missing name
1838
+ * ```
1839
+ *
1840
+ * @category combinators
1841
+ * @since 2.0.0
1842
+ */
1843
+ <A>(that: Predicate<A>): (self: Predicate<A>) => Predicate<A>
1844
+ /**
1845
+ * Combines two predicates with a logical "AND". The resulting predicate returns `true`
1846
+ * only if both of the predicates return `true`.
1847
+ *
1848
+ * If both predicates are `Refinement`s, the resulting predicate is a `Refinement` to the
1849
+ * intersection of their target types (`B & C`).
1850
+ *
1851
+ * @example
1852
+ * ```ts
1853
+ * import * as assert from "node:assert"
1854
+ * import { Predicate } from "effect"
1855
+ *
1856
+ * type Person = { name: string }
1857
+ * type Employee = { id: number }
1858
+ *
1859
+ * const hasName = (u: unknown): u is Person => Predicate.hasProperty(u, "name") && typeof (u as any).name === "string"
1860
+ * const hasId = (u: unknown): u is Employee => Predicate.hasProperty(u, "id") && typeof (u as any).id === "number"
1861
+ *
1862
+ * const isPersonAndEmployee = Predicate.and(hasName, hasId)
1863
+ *
1864
+ * const val: unknown = { name: "Alice", id: 123 }
1865
+ * if (isPersonAndEmployee(val)) {
1866
+ * // val is narrowed to Person & Employee
1867
+ * assert.strictEqual(val.name, "Alice")
1868
+ * assert.strictEqual(val.id, 123)
1869
+ * }
1870
+ *
1871
+ * assert.strictEqual(isPersonAndEmployee({ name: "Bob" }), false) // Missing id
1872
+ * assert.strictEqual(isPersonAndEmployee({ id: 456 }), false) // Missing name
1873
+ * ```
1874
+ *
1875
+ * @category combinators
1876
+ * @since 2.0.0
1877
+ */
1878
+ <A>(self: Predicate<A>, that: Predicate<A>): Predicate<A>
1879
+ } = dual(2, <A>(self: Predicate<A>, that: Predicate<A>): Predicate<A> => (a) => self(a) && that(a))
1880
+
1881
+ /**
1882
+ * Combines two predicates with a logical "XOR" (exclusive OR). The resulting predicate
1883
+ * returns `true` if one of the predicates returns `true`, but not both.
1884
+ *
1885
+ * @example
1886
+ * ```ts
1887
+ * import * as assert from "node:assert"
1888
+ * import { Predicate } from "effect"
1889
+ *
1890
+ * const isPositive = (n: number) => n > 0
1891
+ * const isEven = (n: number) => n % 2 === 0
1892
+ *
1893
+ * const isPositiveXorEven = Predicate.xor(isPositive, isEven)
1894
+ *
1895
+ * assert.strictEqual(isPositiveXorEven(4), false) // both true -> false
1896
+ * assert.strictEqual(isPositiveXorEven(3), true) // one true -> true
1897
+ * assert.strictEqual(isPositiveXorEven(-2), true) // one true -> true
1898
+ * assert.strictEqual(isPositiveXorEven(-1), false) // both false -> false
1899
+ * ```
1900
+ *
1901
+ * @category combinators
1902
+ * @since 2.0.0
1903
+ */
1904
+ export const xor: {
1905
+ /**
1906
+ * Combines two predicates with a logical "XOR" (exclusive OR). The resulting predicate
1907
+ * returns `true` if one of the predicates returns `true`, but not both.
1908
+ *
1909
+ * @example
1910
+ * ```ts
1911
+ * import * as assert from "node:assert"
1912
+ * import { Predicate } from "effect"
1913
+ *
1914
+ * const isPositive = (n: number) => n > 0
1915
+ * const isEven = (n: number) => n % 2 === 0
1916
+ *
1917
+ * const isPositiveXorEven = Predicate.xor(isPositive, isEven)
1918
+ *
1919
+ * assert.strictEqual(isPositiveXorEven(4), false) // both true -> false
1920
+ * assert.strictEqual(isPositiveXorEven(3), true) // one true -> true
1921
+ * assert.strictEqual(isPositiveXorEven(-2), true) // one true -> true
1922
+ * assert.strictEqual(isPositiveXorEven(-1), false) // both false -> false
1923
+ * ```
1924
+ *
1925
+ * @category combinators
1926
+ * @since 2.0.0
1927
+ */
1928
+ <A>(that: Predicate<A>): (self: Predicate<A>) => Predicate<A>
1929
+ /**
1930
+ * Combines two predicates with a logical "XOR" (exclusive OR). The resulting predicate
1931
+ * returns `true` if one of the predicates returns `true`, but not both.
1932
+ *
1933
+ * @example
1934
+ * ```ts
1935
+ * import * as assert from "node:assert"
1936
+ * import { Predicate } from "effect"
1937
+ *
1938
+ * const isPositive = (n: number) => n > 0
1939
+ * const isEven = (n: number) => n % 2 === 0
1940
+ *
1941
+ * const isPositiveXorEven = Predicate.xor(isPositive, isEven)
1942
+ *
1943
+ * assert.strictEqual(isPositiveXorEven(4), false) // both true -> false
1944
+ * assert.strictEqual(isPositiveXorEven(3), true) // one true -> true
1945
+ * assert.strictEqual(isPositiveXorEven(-2), true) // one true -> true
1946
+ * assert.strictEqual(isPositiveXorEven(-1), false) // both false -> false
1947
+ * ```
1948
+ *
1949
+ * @category combinators
1950
+ * @since 2.0.0
1951
+ */
1952
+ <A>(self: Predicate<A>, that: Predicate<A>): Predicate<A>
1953
+ } = dual(2, <A>(self: Predicate<A>, that: Predicate<A>): Predicate<A> => (a) => self(a) !== that(a))
1954
+
1955
+ /**
1956
+ * Combines two predicates with a logical "EQV" (equivalence). The resulting predicate
1957
+ * returns `true` if both predicates return the same boolean value (both `true` or both `false`).
1958
+ *
1959
+ * @example
1960
+ * ```ts
1961
+ * import * as assert from "node:assert"
1962
+ * import { Predicate } from "effect"
1963
+ *
1964
+ * const isPositive = (n: number) => n > 0
1965
+ * const isEven = (n: number) => n % 2 === 0
1966
+ *
1967
+ * const isPositiveEqvEven = Predicate.eqv(isPositive, isEven)
1968
+ *
1969
+ * assert.strictEqual(isPositiveEqvEven(4), true) // both true -> true
1970
+ * assert.strictEqual(isPositiveEqvEven(3), false) // different -> false
1971
+ * assert.strictEqual(isPositiveEqvEven(-2), false) // different -> false
1972
+ * assert.strictEqual(isPositiveEqvEven(-1), true) // both false -> true
1973
+ * ```
1974
+ *
1975
+ * @category combinators
1976
+ * @since 2.0.0
1977
+ */
1978
+ export const eqv: {
1979
+ /**
1980
+ * Combines two predicates with a logical "EQV" (equivalence). The resulting predicate
1981
+ * returns `true` if both predicates return the same boolean value (both `true` or both `false`).
1982
+ *
1983
+ * @example
1984
+ * ```ts
1985
+ * import * as assert from "node:assert"
1986
+ * import { Predicate } from "effect"
1987
+ *
1988
+ * const isPositive = (n: number) => n > 0
1989
+ * const isEven = (n: number) => n % 2 === 0
1990
+ *
1991
+ * const isPositiveEqvEven = Predicate.eqv(isPositive, isEven)
1992
+ *
1993
+ * assert.strictEqual(isPositiveEqvEven(4), true) // both true -> true
1994
+ * assert.strictEqual(isPositiveEqvEven(3), false) // different -> false
1995
+ * assert.strictEqual(isPositiveEqvEven(-2), false) // different -> false
1996
+ * assert.strictEqual(isPositiveEqvEven(-1), true) // both false -> true
1997
+ * ```
1998
+ *
1999
+ * @category combinators
2000
+ * @since 2.0.0
2001
+ */
2002
+ <A>(that: Predicate<A>): (self: Predicate<A>) => Predicate<A>
2003
+ /**
2004
+ * Combines two predicates with a logical "EQV" (equivalence). The resulting predicate
2005
+ * returns `true` if both predicates return the same boolean value (both `true` or both `false`).
2006
+ *
2007
+ * @example
2008
+ * ```ts
2009
+ * import * as assert from "node:assert"
2010
+ * import { Predicate } from "effect"
2011
+ *
2012
+ * const isPositive = (n: number) => n > 0
2013
+ * const isEven = (n: number) => n % 2 === 0
2014
+ *
2015
+ * const isPositiveEqvEven = Predicate.eqv(isPositive, isEven)
2016
+ *
2017
+ * assert.strictEqual(isPositiveEqvEven(4), true) // both true -> true
2018
+ * assert.strictEqual(isPositiveEqvEven(3), false) // different -> false
2019
+ * assert.strictEqual(isPositiveEqvEven(-2), false) // different -> false
2020
+ * assert.strictEqual(isPositiveEqvEven(-1), true) // both false -> true
2021
+ * ```
2022
+ *
2023
+ * @category combinators
2024
+ * @since 2.0.0
2025
+ */
2026
+ <A>(self: Predicate<A>, that: Predicate<A>): Predicate<A>
2027
+ } = dual(2, <A>(self: Predicate<A>, that: Predicate<A>): Predicate<A> => (a) => self(a) === that(a))
2028
+
2029
+ /**
2030
+ * Creates a predicate that represents a logical "if-then" rule.
2031
+ *
2032
+ * Think of it as a conditional promise: **"If `antecedent` holds true, then I promise `consequent` will also be true."**
2033
+ *
2034
+ * This function is invaluable for defining complex validation logic where one condition dictates another.
2035
+ *
2036
+ * ### How It Works
2037
+ *
2038
+ * The rule only fails (returns `false`) when the "if" part is `true`, but the "then" part is `false`.
2039
+ * In all other cases, the promise is considered kept, and the result is `true`.
2040
+ *
2041
+ * This includes the concept of **"vacuous truth"**: if the "if" part is `false`, the rule doesn't apply,
2042
+ * so the promise isn't broken, and the result is `true`. (e.g., "If it rains, I'll bring an umbrella."
2043
+ * If it doesn't rain, you haven't broken your promise, no matter what).
2044
+ *
2045
+ * ### Key Details
2046
+ *
2047
+ * - **Logical Equivalence**: `implies(p, q)` is the same as `not(p).or(q)`, or simply `!p || q`
2048
+ * in plain JavaScript. This can be a helpful way to reason about its behavior.
2049
+ *
2050
+ * - **Type-Safety Warning**: This function always returns a `Predicate`, never a type-narrowing
2051
+ * `Refinement`. A `true` result doesn't guarantee the `consequent` passed (it could be `true`
2052
+ * simply because the `antecedent` was `false`), so it cannot be used to safely narrow a type.
2053
+ *
2054
+ * @example
2055
+ * ```ts
2056
+ * // Rule: A user can only be an admin if they also belong to the "staff" group.
2057
+ * import * as assert from "node:assert"
2058
+ * import { Predicate } from "effect"
2059
+ *
2060
+ * type User = {
2061
+ * isStaff: boolean
2062
+ * isAdmin: boolean
2063
+ * }
2064
+ *
2065
+ * const isValidUserPermission = Predicate.implies(
2066
+ * // antecedent: "if" the user is an admin...
2067
+ * (user: User) => user.isAdmin,
2068
+ * // consequent: "then" they must be staff.
2069
+ * (user: User) => user.isStaff
2070
+ * )
2071
+ *
2072
+ * // A non-admin who is not staff. Rule doesn't apply (antecedent is false).
2073
+ * assert.strictEqual(isValidUserPermission({ isStaff: false, isAdmin: false }), true)
2074
+ *
2075
+ * // A staff member who is not an admin. Rule doesn't apply (antecedent is false).
2076
+ * assert.strictEqual(isValidUserPermission({ isStaff: true, isAdmin: false }), true)
2077
+ *
2078
+ * // An admin who is also staff. The rule was followed.
2079
+ * assert.strictEqual(isValidUserPermission({ isStaff: true, isAdmin: true }), true)
2080
+ *
2081
+ * // An admin who is NOT staff. The rule was broken!
2082
+ * assert.strictEqual(isValidUserPermission({ isStaff: false, isAdmin: true }), false)
2083
+ * ```
2084
+ *
2085
+ * @category combinators
2086
+ * @since 2.0.0
2087
+ */
2088
+ export const implies: {
2089
+ /**
2090
+ * Creates a predicate that represents a logical "if-then" rule.
2091
+ *
2092
+ * Think of it as a conditional promise: **"If `antecedent` holds true, then I promise `consequent` will also be true."**
2093
+ *
2094
+ * This function is invaluable for defining complex validation logic where one condition dictates another.
2095
+ *
2096
+ * ### How It Works
2097
+ *
2098
+ * The rule only fails (returns `false`) when the "if" part is `true`, but the "then" part is `false`.
2099
+ * In all other cases, the promise is considered kept, and the result is `true`.
2100
+ *
2101
+ * This includes the concept of **"vacuous truth"**: if the "if" part is `false`, the rule doesn't apply,
2102
+ * so the promise isn't broken, and the result is `true`. (e.g., "If it rains, I'll bring an umbrella."
2103
+ * If it doesn't rain, you haven't broken your promise, no matter what).
2104
+ *
2105
+ * ### Key Details
2106
+ *
2107
+ * - **Logical Equivalence**: `implies(p, q)` is the same as `not(p).or(q)`, or simply `!p || q`
2108
+ * in plain JavaScript. This can be a helpful way to reason about its behavior.
2109
+ *
2110
+ * - **Type-Safety Warning**: This function always returns a `Predicate`, never a type-narrowing
2111
+ * `Refinement`. A `true` result doesn't guarantee the `consequent` passed (it could be `true`
2112
+ * simply because the `antecedent` was `false`), so it cannot be used to safely narrow a type.
2113
+ *
2114
+ * @example
2115
+ * ```ts
2116
+ * // Rule: A user can only be an admin if they also belong to the "staff" group.
2117
+ * import * as assert from "node:assert"
2118
+ * import { Predicate } from "effect"
2119
+ *
2120
+ * type User = {
2121
+ * isStaff: boolean
2122
+ * isAdmin: boolean
2123
+ * }
2124
+ *
2125
+ * const isValidUserPermission = Predicate.implies(
2126
+ * // antecedent: "if" the user is an admin...
2127
+ * (user: User) => user.isAdmin,
2128
+ * // consequent: "then" they must be staff.
2129
+ * (user: User) => user.isStaff
2130
+ * )
2131
+ *
2132
+ * // A non-admin who is not staff. Rule doesn't apply (antecedent is false).
2133
+ * assert.strictEqual(isValidUserPermission({ isStaff: false, isAdmin: false }), true)
2134
+ *
2135
+ * // A staff member who is not an admin. Rule doesn't apply (antecedent is false).
2136
+ * assert.strictEqual(isValidUserPermission({ isStaff: true, isAdmin: false }), true)
2137
+ *
2138
+ * // An admin who is also staff. The rule was followed.
2139
+ * assert.strictEqual(isValidUserPermission({ isStaff: true, isAdmin: true }), true)
2140
+ *
2141
+ * // An admin who is NOT staff. The rule was broken!
2142
+ * assert.strictEqual(isValidUserPermission({ isStaff: false, isAdmin: true }), false)
2143
+ * ```
2144
+ *
2145
+ * @category combinators
2146
+ * @since 2.0.0
2147
+ */
2148
+ <A>(consequent: Predicate<A>): (antecedent: Predicate<A>) => Predicate<A>
2149
+ /**
2150
+ * Creates a predicate that represents a logical "if-then" rule.
2151
+ *
2152
+ * Think of it as a conditional promise: **"If `antecedent` holds true, then I promise `consequent` will also be true."**
2153
+ *
2154
+ * This function is invaluable for defining complex validation logic where one condition dictates another.
2155
+ *
2156
+ * ### How It Works
2157
+ *
2158
+ * The rule only fails (returns `false`) when the "if" part is `true`, but the "then" part is `false`.
2159
+ * In all other cases, the promise is considered kept, and the result is `true`.
2160
+ *
2161
+ * This includes the concept of **"vacuous truth"**: if the "if" part is `false`, the rule doesn't apply,
2162
+ * so the promise isn't broken, and the result is `true`. (e.g., "If it rains, I'll bring an umbrella."
2163
+ * If it doesn't rain, you haven't broken your promise, no matter what).
2164
+ *
2165
+ * ### Key Details
2166
+ *
2167
+ * - **Logical Equivalence**: `implies(p, q)` is the same as `not(p).or(q)`, or simply `!p || q`
2168
+ * in plain JavaScript. This can be a helpful way to reason about its behavior.
2169
+ *
2170
+ * - **Type-Safety Warning**: This function always returns a `Predicate`, never a type-narrowing
2171
+ * `Refinement`. A `true` result doesn't guarantee the `consequent` passed (it could be `true`
2172
+ * simply because the `antecedent` was `false`), so it cannot be used to safely narrow a type.
2173
+ *
2174
+ * @example
2175
+ * ```ts
2176
+ * // Rule: A user can only be an admin if they also belong to the "staff" group.
2177
+ * import * as assert from "node:assert"
2178
+ * import { Predicate } from "effect"
2179
+ *
2180
+ * type User = {
2181
+ * isStaff: boolean
2182
+ * isAdmin: boolean
2183
+ * }
2184
+ *
2185
+ * const isValidUserPermission = Predicate.implies(
2186
+ * // antecedent: "if" the user is an admin...
2187
+ * (user: User) => user.isAdmin,
2188
+ * // consequent: "then" they must be staff.
2189
+ * (user: User) => user.isStaff
2190
+ * )
2191
+ *
2192
+ * // A non-admin who is not staff. Rule doesn't apply (antecedent is false).
2193
+ * assert.strictEqual(isValidUserPermission({ isStaff: false, isAdmin: false }), true)
2194
+ *
2195
+ * // A staff member who is not an admin. Rule doesn't apply (antecedent is false).
2196
+ * assert.strictEqual(isValidUserPermission({ isStaff: true, isAdmin: false }), true)
2197
+ *
2198
+ * // An admin who is also staff. The rule was followed.
2199
+ * assert.strictEqual(isValidUserPermission({ isStaff: true, isAdmin: true }), true)
2200
+ *
2201
+ * // An admin who is NOT staff. The rule was broken!
2202
+ * assert.strictEqual(isValidUserPermission({ isStaff: false, isAdmin: true }), false)
2203
+ * ```
2204
+ *
2205
+ * @category combinators
2206
+ * @since 2.0.0
2207
+ */
2208
+ <A>(antecedent: Predicate<A>, consequent: Predicate<A>): Predicate<A>
2209
+ } = dual(
2210
+ 2,
2211
+ <A>(antecedent: Predicate<A>, consequent: Predicate<A>): Predicate<A> => (a) => antecedent(a) ? consequent(a) : true
2212
+ )
2213
+
2214
+ /**
2215
+ * Combines two predicates with a logical "NOR" (negated OR). The resulting predicate
2216
+ * returns `true` only if both predicates return `false`.
2217
+ * This is equivalent to `not(or(p, q))`.
2218
+ *
2219
+ * @category combinators
2220
+ * @since 2.0.0
2221
+ */
2222
+ export const nor: {
2223
+ /**
2224
+ * Combines two predicates with a logical "NOR" (negated OR). The resulting predicate
2225
+ * returns `true` only if both predicates return `false`.
2226
+ * This is equivalent to `not(or(p, q))`.
2227
+ *
2228
+ * @category combinators
2229
+ * @since 2.0.0
2230
+ */
2231
+ <A>(that: Predicate<A>): (self: Predicate<A>) => Predicate<A>
2232
+ /**
2233
+ * Combines two predicates with a logical "NOR" (negated OR). The resulting predicate
2234
+ * returns `true` only if both predicates return `false`.
2235
+ * This is equivalent to `not(or(p, q))`.
2236
+ *
2237
+ * @category combinators
2238
+ * @since 2.0.0
2239
+ */
2240
+ <A>(self: Predicate<A>, that: Predicate<A>): Predicate<A>
2241
+ } = dual(
2242
+ 2,
2243
+ <A>(self: Predicate<A>, that: Predicate<A>): Predicate<A> => (a) => !(self(a) || that(a))
2244
+ )
2245
+
2246
+ /**
2247
+ * Combines two predicates with a logical "NAND" (negated AND). The resulting predicate
2248
+ * returns `true` if at least one of the predicates returns `false`.
2249
+ * This is equivalent to `not(and(p, q))`.
2250
+ *
2251
+ * @category combinators
2252
+ * @since 2.0.0
2253
+ */
2254
+ export const nand: {
2255
+ /**
2256
+ * Combines two predicates with a logical "NAND" (negated AND). The resulting predicate
2257
+ * returns `true` if at least one of the predicates returns `false`.
2258
+ * This is equivalent to `not(and(p, q))`.
2259
+ *
2260
+ * @category combinators
2261
+ * @since 2.0.0
2262
+ */
2263
+ <A>(that: Predicate<A>): (self: Predicate<A>) => Predicate<A>
2264
+ /**
2265
+ * Combines two predicates with a logical "NAND" (negated AND). The resulting predicate
2266
+ * returns `true` if at least one of the predicates returns `false`.
2267
+ * This is equivalent to `not(and(p, q))`.
2268
+ *
2269
+ * @category combinators
2270
+ * @since 2.0.0
2271
+ */
2272
+ <A>(self: Predicate<A>, that: Predicate<A>): Predicate<A>
2273
+ } = dual(
2274
+ 2,
2275
+ <A>(self: Predicate<A>, that: Predicate<A>): Predicate<A> => (a) => !(self(a) && that(a))
2276
+ )
2277
+
2278
+ /**
2279
+ * Takes an iterable of predicates and returns a new predicate. The new predicate
2280
+ * returns `true` if all predicates in the collection return `true` for a given value.
2281
+ *
2282
+ * This is like `Array.prototype.every` but for a collection of predicates.
2283
+ *
2284
+ * @example
2285
+ * ```ts
2286
+ * import * as assert from "node:assert"
2287
+ * import { Predicate } from "effect"
2288
+ *
2289
+ * const isPositive = (n: number) => n > 0
2290
+ * const isEven = (n: number) => n % 2 === 0
2291
+ *
2292
+ * const isPositiveAndEven = Predicate.every([isPositive, isEven])
2293
+ *
2294
+ * assert.strictEqual(isPositiveAndEven(4), true)
2295
+ * assert.strictEqual(isPositiveAndEven(3), false)
2296
+ * assert.strictEqual(isPositiveAndEven(-2), false)
2297
+ * ```
2298
+ *
2299
+ * @category elements
2300
+ * @since 2.0.0
2301
+ * @see some
2302
+ */
2303
+ export const every = <A>(collection: Iterable<Predicate<A>>): Predicate<A> => (a: A) => {
2304
+ for (const p of collection) {
2305
+ if (!p(a)) {
2306
+ return false
2307
+ }
2308
+ }
2309
+ return true
2310
+ }
2311
+
2312
+ /**
2313
+ * Takes an iterable of predicates and returns a new predicate. The new predicate
2314
+ * returns `true` if at least one predicate in the collection returns `true` for a given value.
2315
+ *
2316
+ * This is like `Array.prototype.some` but for a collection of predicates.
2317
+ *
2318
+ * @example
2319
+ * ```ts
2320
+ * import * as assert from "node:assert"
2321
+ * import { Predicate } from "effect"
2322
+ *
2323
+ * const isNegative = (n: number) => n < 0
2324
+ * const isOdd = (n: number) => n % 2 !== 0
2325
+ *
2326
+ * const isNegativeOrOdd = Predicate.some([isNegative, isOdd])
2327
+ *
2328
+ * assert.strictEqual(isNegativeOrOdd(-2), true) // isNegative is true
2329
+ * assert.strictEqual(isNegativeOrOdd(3), true) // isOdd is true
2330
+ * assert.strictEqual(isNegativeOrOdd(4), false) // both are false
2331
+ * ```
2332
+ *
2333
+ * @category elements
2334
+ * @since 2.0.0
2335
+ * @see every
2336
+ */
2337
+ export const some = <A>(collection: Iterable<Predicate<A>>): Predicate<A> => (a) => {
2338
+ for (const p of collection) {
2339
+ if (p(a)) {
2340
+ return true
2341
+ }
2342
+ }
2343
+ return false
2344
+ }