@clayroach/effect 3.19.14-source-capture.6 → 3.19.14-source-capture.8

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 (371) hide show
  1. package/dist/cjs/Utils.js +1 -1
  2. package/dist/cjs/Utils.js.map +1 -1
  3. package/dist/cjs/internal/clock.js +1 -1
  4. package/dist/cjs/internal/clock.js.map +1 -1
  5. package/dist/esm/Utils.js +1 -1
  6. package/dist/esm/Utils.js.map +1 -1
  7. package/dist/esm/internal/clock.js +1 -1
  8. package/dist/esm/internal/clock.js.map +1 -1
  9. package/package.json +1 -1
  10. package/src/Arbitrary.ts +0 -1101
  11. package/src/Array.ts +0 -3589
  12. package/src/BigDecimal.ts +0 -1349
  13. package/src/BigInt.ts +0 -643
  14. package/src/Boolean.ts +0 -287
  15. package/src/Brand.ts +0 -360
  16. package/src/Cache.ts +0 -281
  17. package/src/Cause.ts +0 -1555
  18. package/src/Channel.ts +0 -2355
  19. package/src/ChildExecutorDecision.ts +0 -146
  20. package/src/Chunk.ts +0 -1495
  21. package/src/Clock.ts +0 -111
  22. package/src/Config.ts +0 -542
  23. package/src/ConfigError.ts +0 -270
  24. package/src/ConfigProvider.ts +0 -333
  25. package/src/ConfigProviderPathPatch.ts +0 -100
  26. package/src/Console.ts +0 -226
  27. package/src/Context.ts +0 -585
  28. package/src/Cron.ts +0 -706
  29. package/src/Data.ts +0 -596
  30. package/src/DateTime.ts +0 -1686
  31. package/src/DefaultServices.ts +0 -34
  32. package/src/Deferred.ts +0 -301
  33. package/src/Differ.ts +0 -450
  34. package/src/Duration.ts +0 -1000
  35. package/src/Effect.ts +0 -14839
  36. package/src/Effectable.ts +0 -107
  37. package/src/Either.ts +0 -1040
  38. package/src/Encoding.ts +0 -195
  39. package/src/Equal.ts +0 -98
  40. package/src/Equivalence.ts +0 -235
  41. package/src/ExecutionPlan.ts +0 -308
  42. package/src/ExecutionStrategy.ts +0 -119
  43. package/src/Exit.ts +0 -467
  44. package/src/FastCheck.ts +0 -9
  45. package/src/Fiber.ts +0 -744
  46. package/src/FiberHandle.ts +0 -540
  47. package/src/FiberId.ts +0 -195
  48. package/src/FiberMap.ts +0 -656
  49. package/src/FiberRef.ts +0 -431
  50. package/src/FiberRefs.ts +0 -204
  51. package/src/FiberRefsPatch.ts +0 -105
  52. package/src/FiberSet.ts +0 -491
  53. package/src/FiberStatus.ts +0 -108
  54. package/src/Function.ts +0 -1222
  55. package/src/GlobalValue.ts +0 -53
  56. package/src/Graph.ts +0 -3732
  57. package/src/GroupBy.ts +0 -103
  58. package/src/HKT.ts +0 -45
  59. package/src/Hash.ts +0 -195
  60. package/src/HashMap.ts +0 -519
  61. package/src/HashRing.ts +0 -317
  62. package/src/HashSet.ts +0 -2346
  63. package/src/Inspectable.ts +0 -287
  64. package/src/Iterable.ts +0 -1119
  65. package/src/JSONSchema.ts +0 -1044
  66. package/src/KeyedPool.ts +0 -167
  67. package/src/Layer.ts +0 -1251
  68. package/src/LayerMap.ts +0 -436
  69. package/src/List.ts +0 -977
  70. package/src/LogLevel.ts +0 -285
  71. package/src/LogSpan.ts +0 -25
  72. package/src/Logger.ts +0 -702
  73. package/src/Mailbox.ts +0 -268
  74. package/src/ManagedRuntime.ts +0 -180
  75. package/src/Match.ts +0 -1477
  76. package/src/MergeDecision.ts +0 -95
  77. package/src/MergeState.ts +0 -172
  78. package/src/MergeStrategy.ts +0 -107
  79. package/src/Metric.ts +0 -780
  80. package/src/MetricBoundaries.ts +0 -69
  81. package/src/MetricHook.ts +0 -151
  82. package/src/MetricKey.ts +0 -224
  83. package/src/MetricKeyType.ts +0 -262
  84. package/src/MetricLabel.ts +0 -47
  85. package/src/MetricPair.ts +0 -71
  86. package/src/MetricPolling.ts +0 -148
  87. package/src/MetricRegistry.ts +0 -48
  88. package/src/MetricState.ts +0 -257
  89. package/src/Micro.ts +0 -4405
  90. package/src/ModuleVersion.ts +0 -18
  91. package/src/MutableHashMap.ts +0 -411
  92. package/src/MutableHashSet.ts +0 -706
  93. package/src/MutableList.ts +0 -297
  94. package/src/MutableQueue.ts +0 -227
  95. package/src/MutableRef.ts +0 -202
  96. package/src/NonEmptyIterable.ts +0 -32
  97. package/src/Number.ts +0 -1071
  98. package/src/Option.ts +0 -2170
  99. package/src/Order.ts +0 -373
  100. package/src/Ordering.ts +0 -111
  101. package/src/ParseResult.ts +0 -2031
  102. package/src/PartitionedSemaphore.ts +0 -200
  103. package/src/Pipeable.ts +0 -566
  104. package/src/Pool.ts +0 -204
  105. package/src/Predicate.ts +0 -1405
  106. package/src/Pretty.ts +0 -205
  107. package/src/PrimaryKey.ts +0 -23
  108. package/src/PubSub.ts +0 -182
  109. package/src/Queue.ts +0 -644
  110. package/src/Random.ts +0 -204
  111. package/src/RateLimiter.ts +0 -138
  112. package/src/RcMap.ts +0 -141
  113. package/src/RcRef.ts +0 -122
  114. package/src/Readable.ts +0 -93
  115. package/src/Record.ts +0 -1274
  116. package/src/RedBlackTree.ts +0 -421
  117. package/src/Redacted.ts +0 -144
  118. package/src/Ref.ts +0 -180
  119. package/src/RegExp.ts +0 -38
  120. package/src/Reloadable.ts +0 -127
  121. package/src/Request.ts +0 -347
  122. package/src/RequestBlock.ts +0 -118
  123. package/src/RequestResolver.ts +0 -366
  124. package/src/Resource.ts +0 -119
  125. package/src/Runtime.ts +0 -383
  126. package/src/RuntimeFlags.ts +0 -368
  127. package/src/RuntimeFlagsPatch.ts +0 -183
  128. package/src/STM.ts +0 -2045
  129. package/src/Schedule.ts +0 -2219
  130. package/src/ScheduleDecision.ts +0 -62
  131. package/src/ScheduleInterval.ts +0 -151
  132. package/src/ScheduleIntervals.ts +0 -122
  133. package/src/Scheduler.ts +0 -353
  134. package/src/Schema.ts +0 -10914
  135. package/src/SchemaAST.ts +0 -3043
  136. package/src/Scope.ts +0 -204
  137. package/src/ScopedCache.ts +0 -151
  138. package/src/ScopedRef.ts +0 -117
  139. package/src/Secret.ts +0 -88
  140. package/src/SingleProducerAsyncInput.ts +0 -67
  141. package/src/Sink.ts +0 -1461
  142. package/src/SortedMap.ts +0 -287
  143. package/src/SortedSet.ts +0 -390
  144. package/src/Stream.ts +0 -6468
  145. package/src/StreamEmit.ts +0 -136
  146. package/src/StreamHaltStrategy.ts +0 -123
  147. package/src/Streamable.ts +0 -45
  148. package/src/String.ts +0 -778
  149. package/src/Struct.ts +0 -243
  150. package/src/Subscribable.ts +0 -100
  151. package/src/SubscriptionRef.ts +0 -298
  152. package/src/Supervisor.ts +0 -240
  153. package/src/Symbol.ts +0 -29
  154. package/src/SynchronizedRef.ts +0 -270
  155. package/src/TArray.ts +0 -495
  156. package/src/TDeferred.ts +0 -100
  157. package/src/TMap.ts +0 -515
  158. package/src/TPriorityQueue.ts +0 -223
  159. package/src/TPubSub.ts +0 -200
  160. package/src/TQueue.ts +0 -432
  161. package/src/TRandom.ts +0 -129
  162. package/src/TReentrantLock.ts +0 -224
  163. package/src/TRef.ts +0 -178
  164. package/src/TSemaphore.ts +0 -129
  165. package/src/TSet.ts +0 -365
  166. package/src/TSubscriptionRef.ts +0 -192
  167. package/src/Take.ts +0 -258
  168. package/src/TestAnnotation.ts +0 -158
  169. package/src/TestAnnotationMap.ts +0 -119
  170. package/src/TestAnnotations.ts +0 -117
  171. package/src/TestClock.ts +0 -556
  172. package/src/TestConfig.ts +0 -47
  173. package/src/TestContext.ts +0 -36
  174. package/src/TestLive.ts +0 -53
  175. package/src/TestServices.ts +0 -390
  176. package/src/TestSized.ts +0 -55
  177. package/src/Tracer.ts +0 -198
  178. package/src/Trie.ts +0 -840
  179. package/src/Tuple.ts +0 -305
  180. package/src/Types.ts +0 -353
  181. package/src/Unify.ts +0 -113
  182. package/src/UpstreamPullRequest.ts +0 -117
  183. package/src/UpstreamPullStrategy.ts +0 -121
  184. package/src/Utils.ts +0 -809
  185. package/src/index.ts +0 -1561
  186. package/src/internal/array.ts +0 -8
  187. package/src/internal/blockedRequests.ts +0 -520
  188. package/src/internal/cache.ts +0 -733
  189. package/src/internal/cause.ts +0 -1050
  190. package/src/internal/channel/channelExecutor.ts +0 -1200
  191. package/src/internal/channel/channelState.ts +0 -134
  192. package/src/internal/channel/childExecutorDecision.ts +0 -96
  193. package/src/internal/channel/continuation.ts +0 -200
  194. package/src/internal/channel/mergeDecision.ts +0 -113
  195. package/src/internal/channel/mergeState.ts +0 -120
  196. package/src/internal/channel/mergeStrategy.ts +0 -72
  197. package/src/internal/channel/singleProducerAsyncInput.ts +0 -259
  198. package/src/internal/channel/subexecutor.ts +0 -229
  199. package/src/internal/channel/upstreamPullRequest.ts +0 -84
  200. package/src/internal/channel/upstreamPullStrategy.ts +0 -87
  201. package/src/internal/channel.ts +0 -2603
  202. package/src/internal/clock.ts +0 -95
  203. package/src/internal/completedRequestMap.ts +0 -9
  204. package/src/internal/concurrency.ts +0 -54
  205. package/src/internal/config.ts +0 -716
  206. package/src/internal/configError.ts +0 -304
  207. package/src/internal/configProvider/pathPatch.ts +0 -97
  208. package/src/internal/configProvider.ts +0 -799
  209. package/src/internal/console.ts +0 -153
  210. package/src/internal/context.ts +0 -337
  211. package/src/internal/core-effect.ts +0 -2293
  212. package/src/internal/core-stream.ts +0 -998
  213. package/src/internal/core.ts +0 -3273
  214. package/src/internal/data.ts +0 -36
  215. package/src/internal/dataSource.ts +0 -327
  216. package/src/internal/dateTime.ts +0 -1277
  217. package/src/internal/defaultServices/console.ts +0 -100
  218. package/src/internal/defaultServices.ts +0 -163
  219. package/src/internal/deferred.ts +0 -46
  220. package/src/internal/differ/chunkPatch.ts +0 -211
  221. package/src/internal/differ/contextPatch.ts +0 -232
  222. package/src/internal/differ/hashMapPatch.ts +0 -220
  223. package/src/internal/differ/hashSetPatch.ts +0 -176
  224. package/src/internal/differ/orPatch.ts +0 -311
  225. package/src/internal/differ/readonlyArrayPatch.ts +0 -210
  226. package/src/internal/differ.ts +0 -200
  227. package/src/internal/doNotation.ts +0 -80
  228. package/src/internal/effect/circular.ts +0 -905
  229. package/src/internal/effectable.ts +0 -131
  230. package/src/internal/either.ts +0 -110
  231. package/src/internal/encoding/base64.ts +0 -286
  232. package/src/internal/encoding/base64Url.ts +0 -29
  233. package/src/internal/encoding/common.ts +0 -51
  234. package/src/internal/encoding/hex.ts +0 -315
  235. package/src/internal/errors.ts +0 -7
  236. package/src/internal/executionPlan.ts +0 -114
  237. package/src/internal/executionStrategy.ts +0 -74
  238. package/src/internal/fiber.ts +0 -388
  239. package/src/internal/fiberId.ts +0 -267
  240. package/src/internal/fiberMessage.ts +0 -82
  241. package/src/internal/fiberRefs/patch.ts +0 -144
  242. package/src/internal/fiberRefs.ts +0 -297
  243. package/src/internal/fiberRuntime.ts +0 -3915
  244. package/src/internal/fiberScope.ts +0 -71
  245. package/src/internal/fiberStatus.ts +0 -119
  246. package/src/internal/groupBy.ts +0 -530
  247. package/src/internal/hashMap/array.ts +0 -49
  248. package/src/internal/hashMap/bitwise.ts +0 -32
  249. package/src/internal/hashMap/config.ts +0 -14
  250. package/src/internal/hashMap/keySet.ts +0 -8
  251. package/src/internal/hashMap/node.ts +0 -391
  252. package/src/internal/hashMap.ts +0 -586
  253. package/src/internal/hashSet.ts +0 -323
  254. package/src/internal/keyedPool.ts +0 -244
  255. package/src/internal/layer/circular.ts +0 -228
  256. package/src/internal/layer.ts +0 -1487
  257. package/src/internal/logSpan.ts +0 -20
  258. package/src/internal/logger-circular.ts +0 -24
  259. package/src/internal/logger.ts +0 -485
  260. package/src/internal/mailbox.ts +0 -561
  261. package/src/internal/managedRuntime/circular.ts +0 -6
  262. package/src/internal/managedRuntime.ts +0 -134
  263. package/src/internal/matcher.ts +0 -652
  264. package/src/internal/metric/boundaries.ts +0 -75
  265. package/src/internal/metric/hook.ts +0 -483
  266. package/src/internal/metric/key.ts +0 -167
  267. package/src/internal/metric/keyType.ts +0 -238
  268. package/src/internal/metric/label.ts +0 -41
  269. package/src/internal/metric/pair.ts +0 -48
  270. package/src/internal/metric/polling.ts +0 -149
  271. package/src/internal/metric/registry.ts +0 -187
  272. package/src/internal/metric/state.ts +0 -290
  273. package/src/internal/metric.ts +0 -577
  274. package/src/internal/opCodes/cause.ts +0 -35
  275. package/src/internal/opCodes/channel.ts +0 -83
  276. package/src/internal/opCodes/channelChildExecutorDecision.ts +0 -17
  277. package/src/internal/opCodes/channelMergeDecision.ts +0 -11
  278. package/src/internal/opCodes/channelMergeState.ts +0 -17
  279. package/src/internal/opCodes/channelMergeStrategy.ts +0 -11
  280. package/src/internal/opCodes/channelState.ts +0 -23
  281. package/src/internal/opCodes/channelUpstreamPullRequest.ts +0 -11
  282. package/src/internal/opCodes/channelUpstreamPullStrategy.ts +0 -11
  283. package/src/internal/opCodes/config.ts +0 -65
  284. package/src/internal/opCodes/configError.ts +0 -35
  285. package/src/internal/opCodes/continuation.ts +0 -11
  286. package/src/internal/opCodes/deferred.ts +0 -11
  287. package/src/internal/opCodes/effect.ts +0 -89
  288. package/src/internal/opCodes/layer.ts +0 -59
  289. package/src/internal/opCodes/streamHaltStrategy.ts +0 -23
  290. package/src/internal/option.ts +0 -80
  291. package/src/internal/pool.ts +0 -432
  292. package/src/internal/pubsub.ts +0 -1762
  293. package/src/internal/query.ts +0 -204
  294. package/src/internal/queue.ts +0 -766
  295. package/src/internal/random.ts +0 -161
  296. package/src/internal/rateLimiter.ts +0 -93
  297. package/src/internal/rcMap.ts +0 -285
  298. package/src/internal/rcRef.ts +0 -192
  299. package/src/internal/redBlackTree/iterator.ts +0 -200
  300. package/src/internal/redBlackTree/node.ts +0 -68
  301. package/src/internal/redBlackTree.ts +0 -1245
  302. package/src/internal/redacted.ts +0 -73
  303. package/src/internal/ref.ts +0 -171
  304. package/src/internal/reloadable.ts +0 -140
  305. package/src/internal/request.ts +0 -177
  306. package/src/internal/resource.ts +0 -76
  307. package/src/internal/ringBuffer.ts +0 -68
  308. package/src/internal/runtime.ts +0 -558
  309. package/src/internal/runtimeFlags.ts +0 -188
  310. package/src/internal/runtimeFlagsPatch.ts +0 -103
  311. package/src/internal/schedule/decision.ts +0 -47
  312. package/src/internal/schedule/interval.ts +0 -101
  313. package/src/internal/schedule/intervals.ts +0 -180
  314. package/src/internal/schedule.ts +0 -2199
  315. package/src/internal/schema/errors.ts +0 -191
  316. package/src/internal/schema/schemaId.ts +0 -106
  317. package/src/internal/schema/util.ts +0 -50
  318. package/src/internal/scopedCache.ts +0 -644
  319. package/src/internal/scopedRef.ts +0 -118
  320. package/src/internal/secret.ts +0 -89
  321. package/src/internal/singleShotGen.ts +0 -35
  322. package/src/internal/sink.ts +0 -2120
  323. package/src/internal/stack.ts +0 -10
  324. package/src/internal/stm/core.ts +0 -817
  325. package/src/internal/stm/entry.ts +0 -59
  326. package/src/internal/stm/journal.ts +0 -123
  327. package/src/internal/stm/opCodes/stm.ts +0 -71
  328. package/src/internal/stm/opCodes/stmState.ts +0 -17
  329. package/src/internal/stm/opCodes/strategy.ts +0 -17
  330. package/src/internal/stm/opCodes/tExit.ts +0 -29
  331. package/src/internal/stm/opCodes/tryCommit.ts +0 -11
  332. package/src/internal/stm/stm.ts +0 -1453
  333. package/src/internal/stm/stmState.ts +0 -136
  334. package/src/internal/stm/tArray.ts +0 -550
  335. package/src/internal/stm/tDeferred.ts +0 -81
  336. package/src/internal/stm/tExit.ts +0 -190
  337. package/src/internal/stm/tMap.ts +0 -824
  338. package/src/internal/stm/tPriorityQueue.ts +0 -267
  339. package/src/internal/stm/tPubSub.ts +0 -551
  340. package/src/internal/stm/tQueue.ts +0 -393
  341. package/src/internal/stm/tRandom.ts +0 -140
  342. package/src/internal/stm/tReentrantLock.ts +0 -352
  343. package/src/internal/stm/tRef.ts +0 -195
  344. package/src/internal/stm/tSemaphore.ts +0 -113
  345. package/src/internal/stm/tSet.ts +0 -259
  346. package/src/internal/stm/tSubscriptionRef.ts +0 -286
  347. package/src/internal/stm/tryCommit.ts +0 -34
  348. package/src/internal/stm/txnId.ts +0 -14
  349. package/src/internal/stm/versioned.ts +0 -4
  350. package/src/internal/stream/debounceState.ts +0 -57
  351. package/src/internal/stream/emit.ts +0 -123
  352. package/src/internal/stream/haltStrategy.ts +0 -94
  353. package/src/internal/stream/handoff.ts +0 -187
  354. package/src/internal/stream/handoffSignal.ts +0 -59
  355. package/src/internal/stream/pull.ts +0 -34
  356. package/src/internal/stream/sinkEndReason.ts +0 -30
  357. package/src/internal/stream/zipAllState.ts +0 -88
  358. package/src/internal/stream/zipChunksState.ts +0 -56
  359. package/src/internal/stream.ts +0 -8801
  360. package/src/internal/string-utils.ts +0 -107
  361. package/src/internal/subscriptionRef.ts +0 -138
  362. package/src/internal/supervisor/patch.ts +0 -190
  363. package/src/internal/supervisor.ts +0 -303
  364. package/src/internal/synchronizedRef.ts +0 -114
  365. package/src/internal/take.ts +0 -199
  366. package/src/internal/testing/sleep.ts +0 -27
  367. package/src/internal/testing/suspendedWarningData.ts +0 -85
  368. package/src/internal/testing/warningData.ts +0 -94
  369. package/src/internal/tracer.ts +0 -293
  370. package/src/internal/trie.ts +0 -722
  371. package/src/internal/version.ts +0 -7
package/src/Tuple.ts DELETED
@@ -1,305 +0,0 @@
1
- /**
2
- * This module provides utility functions for working with tuples in TypeScript.
3
- *
4
- * @since 2.0.0
5
- */
6
- import * as Equivalence from "./Equivalence.js"
7
- import { dual } from "./Function.js"
8
- import type { TypeLambda } from "./HKT.js"
9
- import * as order from "./Order.js"
10
- import type { TupleOf } from "./Types.js"
11
-
12
- /**
13
- * @category type lambdas
14
- * @since 2.0.0
15
- */
16
- export interface TupleTypeLambda extends TypeLambda {
17
- readonly type: [this["Out1"], this["Target"]]
18
- }
19
-
20
- /**
21
- * Constructs a new tuple from the provided values.
22
- *
23
- * @example
24
- * ```ts
25
- * import * as assert from "node:assert"
26
- * import { make } from "effect/Tuple"
27
- *
28
- * assert.deepStrictEqual(make(1, 'hello', true), [1, 'hello', true])
29
- * ```
30
- *
31
- * @category constructors
32
- * @since 2.0.0
33
- */
34
- export const make = <A extends ReadonlyArray<any>>(...elements: A): A => elements
35
-
36
- /**
37
- * Return the first element from a tuple with two elements.
38
- *
39
- * @example
40
- * ```ts
41
- * import * as assert from "node:assert"
42
- * import { getFirst } from "effect/Tuple"
43
- *
44
- * assert.deepStrictEqual(getFirst(["hello", 42]), "hello")
45
- * ```
46
- *
47
- * @category getters
48
- * @since 2.0.0
49
- */
50
- export const getFirst = <L, R>(self: readonly [L, R]): L => self[0]
51
-
52
- /**
53
- * Return the second element from a tuple with two elements.
54
- *
55
- * @example
56
- * ```ts
57
- * import * as assert from "node:assert"
58
- * import { getSecond } from "effect/Tuple"
59
- *
60
- * assert.deepStrictEqual(getSecond(["hello", 42]), 42)
61
- * ```
62
- *
63
- * @category getters
64
- * @since 2.0.0
65
- */
66
- export const getSecond = <L, R>(self: readonly [L, R]): R => self[1]
67
-
68
- /**
69
- * Transforms each element of tuple using the given function, treating tuple homomorphically
70
- *
71
- * @example
72
- * ```ts
73
- * import * as assert from "node:assert"
74
- * import { pipe, Tuple } from "effect"
75
- *
76
- * const result = pipe(
77
- * ["a", 1, false] as const,
78
- * Tuple.map((el) => el.toString().toUpperCase())
79
- * )
80
- * assert.deepStrictEqual(result, ['A', '1', 'FALSE'])
81
- * ```
82
- *
83
- * @category mapping
84
- * @since 3.9.0
85
- */
86
- export const map: {
87
- <T extends ReadonlyArray<any> | [], B>(
88
- fn: (element: T[number]) => B
89
- ): (self: T) => TupleOf<T["length"], B>
90
- <B, T extends ReadonlyArray<any> | []>(
91
- self: T,
92
- fn: (element: T[number]) => B
93
- ): TupleOf<T["length"], B>
94
- } = dual(
95
- 2,
96
- <N extends number, A, B>(
97
- self: TupleOf<N, A>,
98
- fn: (element: A) => B
99
- ): TupleOf<N, B> => self.map((element) => fn(element)) as TupleOf<N, B>
100
- )
101
-
102
- /**
103
- * Transforms both elements of a tuple with two elements using the given functions.
104
- *
105
- * @example
106
- * ```ts
107
- * import * as assert from "node:assert"
108
- * import { mapBoth } from "effect/Tuple"
109
- *
110
- * assert.deepStrictEqual(
111
- * mapBoth(["hello", 42], { onFirst: s => s.toUpperCase(), onSecond: n => n.toString() }),
112
- * ["HELLO", "42"]
113
- * )
114
- * ```
115
- *
116
- * @category mapping
117
- * @since 2.0.0
118
- */
119
- export const mapBoth: {
120
- <L1, L2, R1, R2>(options: {
121
- readonly onFirst: (e: L1) => L2
122
- readonly onSecond: (a: R1) => R2
123
- }): (self: readonly [L1, R1]) => [L2, R2]
124
- <L1, R1, L2, R2>(self: readonly [L1, R1], options: {
125
- readonly onFirst: (e: L1) => L2
126
- readonly onSecond: (a: R1) => R2
127
- }): [L2, R2]
128
- } = dual(
129
- 2,
130
- <L1, R1, L2, R2>(
131
- self: readonly [L1, R1],
132
- { onFirst, onSecond }: {
133
- readonly onFirst: (e: L1) => L2
134
- readonly onSecond: (a: R1) => R2
135
- }
136
- ): [L2, R2] => [onFirst(self[0]), onSecond(self[1])]
137
- )
138
-
139
- /**
140
- * Transforms the first component of a tuple with two elements using a given function.
141
- *
142
- * @example
143
- * ```ts
144
- * import * as assert from "node:assert"
145
- * import { mapFirst } from "effect/Tuple"
146
- *
147
- * assert.deepStrictEqual(
148
- * mapFirst(["hello", 42], s => s.toUpperCase()),
149
- * ["HELLO", 42]
150
- * )
151
- * ```
152
- *
153
- * @category mapping
154
- * @since 2.0.0
155
- */
156
- export const mapFirst: {
157
- <L1, L2>(f: (left: L1) => L2): <R>(self: readonly [L1, R]) => [L2, R]
158
- <L1, R, L2>(self: readonly [L1, R], f: (left: L1) => L2): [L2, R]
159
- } = dual(2, <L1, R, L2>(self: readonly [L1, R], f: (left: L1) => L2): [L2, R] => [f(self[0]), self[1]])
160
-
161
- /**
162
- * Transforms the second component of a tuple with two elements using a given function.
163
- *
164
- * @example
165
- * ```ts
166
- * import * as assert from "node:assert"
167
- * import { mapSecond } from "effect/Tuple"
168
- *
169
- * assert.deepStrictEqual(
170
- * mapSecond(["hello", 42], n => n.toString()),
171
- * ["hello", "42"]
172
- * )
173
- * ```
174
- *
175
- * @category mapping
176
- * @since 2.0.0
177
- */
178
- export const mapSecond: {
179
- <R1, R2>(f: (right: R1) => R2): <L>(self: readonly [L, R1]) => [L, R2]
180
- <L, R1, R2>(self: readonly [L, R1], f: (right: R1) => R2): [L, R2]
181
- } = dual(2, <L, R1, R2>(self: readonly [L, R1], f: (right: R1) => R2): [L, R2] => [self[0], f(self[1])])
182
-
183
- /**
184
- * Swaps the elements of a tuple with two elements.
185
- *
186
- * @example
187
- * ```ts
188
- * import * as assert from "node:assert"
189
- * import { swap } from "effect/Tuple"
190
- *
191
- * assert.deepStrictEqual(swap(["hello", 42]), [42, "hello"])
192
- * ```
193
- *
194
- * @since 2.0.0
195
- */
196
- export const swap = <L, R>(self: readonly [L, R]): [R, L] => [self[1], self[0]]
197
-
198
- /**
199
- * Given a tuple of `Equivalence`s returns a new `Equivalence` that compares values of a tuple
200
- * by applying each `Equivalence` to the corresponding element of the tuple.
201
- *
202
- * @category combinators
203
- * @since 2.0.0
204
- */
205
- export const getEquivalence: <T extends ReadonlyArray<Equivalence.Equivalence<any>>>(
206
- ...isEquivalents: T
207
- ) => Equivalence.Equivalence<
208
- Readonly<{ [I in keyof T]: [T[I]] extends [Equivalence.Equivalence<infer A>] ? A : never }>
209
- > = Equivalence.tuple
210
-
211
- /**
212
- * This function creates and returns a new `Order` for a tuple of values based on the given `Order`s for each element in the tuple.
213
- * The returned `Order` compares two tuples of the same type by applying the corresponding `Order` to each element in the tuple.
214
- * It is useful when you need to compare two tuples of the same type and you have a specific way of comparing each element
215
- * of the tuple.
216
- *
217
- * @category combinators
218
- * @since 2.0.0
219
- */
220
- export const getOrder: <T extends ReadonlyArray<order.Order<any>>>(
221
- ...elements: T
222
- ) => order.Order<{ [I in keyof T]: [T[I]] extends [order.Order<infer A>] ? A : never }> = order.tuple
223
-
224
- /**
225
- * Appends an element to the end of a tuple.
226
- *
227
- * @category concatenating
228
- * @since 2.0.0
229
- */
230
- export const appendElement: {
231
- <B>(that: B): <A extends ReadonlyArray<unknown>>(self: A) => [...A, B]
232
- <A extends ReadonlyArray<unknown>, B>(self: A, that: B): [...A, B]
233
- } = dual(2, <A extends ReadonlyArray<unknown>, B>(self: A, that: B): [...A, B] => [...self, that])
234
-
235
- /**
236
- * Retrieves the element at a specified index from a tuple.
237
- *
238
- * @example
239
- * ```ts
240
- * import * as assert from "node:assert"
241
- * import { Tuple } from "effect"
242
- *
243
- * assert.deepStrictEqual(Tuple.at([1, 'hello', true], 1), 'hello')
244
- * ```
245
- *
246
- * @category getters
247
- * @since 3.4.0
248
- */
249
- export const at: {
250
- <N extends number>(index: N): <A extends ReadonlyArray<unknown>>(self: A) => A[N]
251
- <A extends ReadonlyArray<unknown>, N extends number>(self: A, index: N): A[N]
252
- } = dual(2, <A extends ReadonlyArray<unknown>, N extends number>(self: A, index: N): A[N] => self[index])
253
-
254
- export {
255
- /**
256
- * Determine if an `Array` is a tuple with exactly `N` elements, narrowing down the type to `TupleOf`.
257
- *
258
- * An `Array` is considered to be a `TupleOf` if its length is exactly `N`.
259
- *
260
- * @example
261
- * ```ts
262
- * import * as assert from "node:assert"
263
- * import { isTupleOf } from "effect/Tuple"
264
- *
265
- * assert.deepStrictEqual(isTupleOf([1, 2, 3], 3), true);
266
- * assert.deepStrictEqual(isTupleOf([1, 2, 3], 2), false);
267
- * assert.deepStrictEqual(isTupleOf([1, 2, 3], 4), false);
268
- *
269
- * const arr: number[] = [1, 2, 3];
270
- * if (isTupleOf(arr, 3)) {
271
- * console.log(arr);
272
- * // ^? [number, number, number]
273
- * }
274
- *
275
- * ```
276
- * @category guards
277
- * @since 3.3.0
278
- */
279
- isTupleOf,
280
- /**
281
- * Determine if an `Array` is a tuple with at least `N` elements, narrowing down the type to `TupleOfAtLeast`.
282
- *
283
- * An `Array` is considered to be a `TupleOfAtLeast` if its length is at least `N`.
284
- *
285
- * @example
286
- * ```ts
287
- * import * as assert from "node:assert"
288
- * import { isTupleOfAtLeast } from "effect/Tuple"
289
- *
290
- * assert.deepStrictEqual(isTupleOfAtLeast([1, 2, 3], 3), true);
291
- * assert.deepStrictEqual(isTupleOfAtLeast([1, 2, 3], 2), true);
292
- * assert.deepStrictEqual(isTupleOfAtLeast([1, 2, 3], 4), false);
293
- *
294
- * const arr: number[] = [1, 2, 3, 4];
295
- * if (isTupleOfAtLeast(arr, 3)) {
296
- * console.log(arr);
297
- * // ^? [number, number, number, ...number[]]
298
- * }
299
- *
300
- * ```
301
- * @category guards
302
- * @since 3.3.0
303
- */
304
- isTupleOfAtLeast
305
- } from "./Predicate.js"
package/src/Types.ts DELETED
@@ -1,353 +0,0 @@
1
- /**
2
- * A collection of types that are commonly used types.
3
- *
4
- * @since 2.0.0
5
- */
6
-
7
- type _TupleOf<T, N extends number, R extends Array<unknown>> = `${N}` extends `-${number}` ? never
8
- : R["length"] extends N ? R
9
- : _TupleOf<T, N, [T, ...R]>
10
-
11
- /**
12
- * Represents a tuple with a fixed number of elements of type `T`.
13
- *
14
- * This type constructs a tuple that has exactly `N` elements of type `T`.
15
- *
16
- * @typeParam N - The number of elements in the tuple.
17
- * @typeParam T - The type of elements in the tuple.
18
- *
19
- * @example
20
- * ```ts
21
- * import { TupleOf } from "effect/Types"
22
- *
23
- * // A tuple with exactly 3 numbers
24
- * const example1: TupleOf<3, number> = [1, 2, 3]; // valid
25
- * // @ts-expect-error
26
- * const example2: TupleOf<3, number> = [1, 2]; // invalid
27
- * // @ts-expect-error
28
- * const example3: TupleOf<3, number> = [1, 2, 3, 4]; // invalid
29
- * ```
30
- *
31
- * @category tuples
32
- * @since 3.3.0
33
- */
34
- export type TupleOf<N extends number, T> = N extends N ? number extends N ? Array<T> : _TupleOf<T, N, []> : never
35
-
36
- /**
37
- * Represents a tuple with at least `N` elements of type `T`.
38
- *
39
- * This type constructs a tuple that has a fixed number of elements `N` of type `T` at the start,
40
- * followed by any number (including zero) of additional elements of the same type `T`.
41
- *
42
- * @typeParam N - The minimum number of elements in the tuple.
43
- * @typeParam T - The type of elements in the tuple.
44
- *
45
- * @example
46
- * ```ts
47
- * import { TupleOfAtLeast } from "effect/Types"
48
- *
49
- * // A tuple with at least 3 numbers
50
- * const example1: TupleOfAtLeast<3, number> = [1, 2, 3]; // valid
51
- * const example2: TupleOfAtLeast<3, number> = [1, 2, 3, 4, 5]; // valid
52
- * // @ts-expect-error
53
- * const example3: TupleOfAtLeast<3, number> = [1, 2]; // invalid
54
- * ```
55
- *
56
- * @category tuples
57
- * @since 3.3.0
58
- */
59
- export type TupleOfAtLeast<N extends number, T> = [...TupleOf<N, T>, ...Array<T>]
60
-
61
- /**
62
- * Returns the tags in a type.
63
- * @example
64
- * ```ts
65
- * import type { Types } from "effect"
66
- *
67
- * type Res = Types.Tags<string | { _tag: "a" } | { _tag: "b" } > // "a" | "b"
68
- * ```
69
- *
70
- * @category types
71
- * @since 2.0.0
72
- */
73
- export type Tags<E> = E extends { _tag: string } ? E["_tag"] : never
74
-
75
- /**
76
- * Excludes the tagged object from the type.
77
- * @example
78
- * ```ts
79
- * import type { Types } from "effect"
80
- *
81
- * type Res = Types.ExcludeTag<string | { _tag: "a" } | { _tag: "b" }, "a"> // string | { _tag: "b" }
82
- * ```
83
- *
84
- * @category types
85
- * @since 2.0.0
86
- */
87
- export type ExcludeTag<E, K extends Tags<E>> = Exclude<E, { _tag: K }>
88
-
89
- /**
90
- * Extracts the type of the given tag.
91
- *
92
- * @example
93
- * ```ts
94
- * import type { Types } from "effect"
95
- *
96
- * type Res = Types.ExtractTag<{ _tag: "a", a: number } | { _tag: "b", b: number }, "b"> // { _tag: "b", b: number }
97
- * ```
98
- *
99
- * @category types
100
- * @since 2.0.0
101
- */
102
- export type ExtractTag<E, K extends Tags<E>> = Extract<E, { _tag: K }>
103
-
104
- /**
105
- * A utility type that transforms a union type `T` into an intersection type.
106
- *
107
- * @since 2.0.0
108
- * @category types
109
- */
110
- export type UnionToIntersection<T> = (T extends any ? (x: T) => any : never) extends (x: infer R) => any ? R
111
- : never
112
-
113
- /**
114
- * Simplifies the type signature of a type.
115
- *
116
- * @example
117
- * ```ts
118
- * import type { Types } from "effect"
119
- *
120
- * type Res = Types.Simplify<{ a: number } & { b: number }> // { a: number; b: number; }
121
- * ```
122
- *
123
- * @since 2.0.0
124
- * @category types
125
- */
126
- export type Simplify<A> = {
127
- [K in keyof A]: A[K]
128
- } extends infer B ? B : never
129
-
130
- /**
131
- * Determines if two types are equal.
132
- *
133
- * @example
134
- * ```ts
135
- * import type { Types } from "effect"
136
- *
137
- * type Res1 = Types.Equals<{ a: number }, { a: number }> // true
138
- * type Res2 = Types.Equals<{ a: number }, { b: number }> // false
139
- * ```
140
- *
141
- * @since 2.0.0
142
- * @category models
143
- */
144
- export type Equals<X, Y> = (<T>() => T extends X ? 1 : 2) extends <
145
- T
146
- >() => T extends Y ? 1 : 2 ? true
147
- : false
148
-
149
- /**
150
- * Determines if two types are equal, allowing to specify the return types.
151
- *
152
- * @since 3.15.0
153
- * @category models
154
- */
155
- export type EqualsWith<A, B, Y, N> = (<T>() => T extends A ? 1 : 2) extends (<T>() => T extends B ? 1 : 2) ? Y : N
156
-
157
- /**
158
- * Determines if a record contains any of the given keys.
159
- *
160
- * @example
161
- * ```ts
162
- * import type { Types } from "effect"
163
- *
164
- * type Res1 = Types.Has<{ a: number }, "a" | "b"> // true
165
- * type Res2 = Types.Has<{ c: number }, "a" | "b"> // false
166
- * ```
167
- *
168
- * @since 2.0.0
169
- * @category models
170
- */
171
- export type Has<A, Key extends string> = (Key extends infer K ? K extends keyof A ? true : never : never) extends never
172
- ? false
173
- : true
174
-
175
- /**
176
- * Merges two object where the keys of the left object take precedence in the case of a conflict.
177
- *
178
- * @example
179
- * ```ts
180
- * import type { Types } from "effect"
181
- * type MergeLeft = Types.MergeLeft<{ a: number, b: number; }, { a: string }> // { a: number; b: number; }
182
- * ```
183
- *
184
- * @since 2.0.0
185
- * @category models
186
- */
187
- export type MergeLeft<Source, Target> = MergeRight<Target, Source>
188
-
189
- /**
190
- * Merges two object where the keys of the right object take precedence in the case of a conflict.
191
- *
192
- * @example
193
- * ```ts
194
- * import type { Types } from "effect"
195
- * type MergeRight = Types.MergeRight<{ a: number, b: number; }, { a: string }> // { a: string; b: number; }
196
- * ```
197
- *
198
- * @since 2.0.0
199
- * @category models
200
- */
201
- export type MergeRight<Target, Source> = Simplify<
202
- & Source
203
- & {
204
- [Key in keyof Target as Key extends keyof Source ? never : Key]: Target[Key]
205
- }
206
- >
207
-
208
- /**
209
- * @since 2.0.0
210
- * @category models
211
- */
212
- export type MergeRecord<Source, Target> = MergeLeft<Source, Target>
213
-
214
- /**
215
- * Describes the concurrency to use when executing multiple Effect's.
216
- *
217
- * @since 2.0.0
218
- * @category models
219
- */
220
- export type Concurrency = number | "unbounded" | "inherit"
221
-
222
- /**
223
- * Make all properties in `T` mutable. Supports arrays, tuples, and records as well.
224
- *
225
- * @example
226
- * ```ts
227
- * import type { Types } from "effect"
228
- *
229
- * type MutableStruct = Types.Mutable<{ readonly a: string; readonly b: number }> // { a: string; b: number; }
230
- *
231
- * type MutableArray = Types.Mutable<ReadonlyArray<string>> // string[]
232
- *
233
- * type MutableTuple = Types.Mutable<readonly [string, number]> // [string, number]
234
- *
235
- * type MutableRecord = Types.Mutable<{ readonly [_: string]: number }> // { [x: string]: number; }
236
- * ```
237
- *
238
- * @since 2.0.0
239
- * @category types
240
- */
241
- export type Mutable<T> = {
242
- -readonly [P in keyof T]: T[P]
243
- }
244
-
245
- /**
246
- * Like `Types.Mutable`, but works recursively.
247
- *
248
- * @example
249
- * ```ts
250
- * import type { Types } from "effect"
251
- *
252
- * type DeepMutableStruct = Types.DeepMutable<{
253
- * readonly a: string;
254
- * readonly b: readonly string[]
255
- * }>
256
- * // { a: string; b: string[] }
257
- * ```
258
- *
259
- * @since 3.1.0
260
- * @category types
261
- */
262
- export type DeepMutable<T> = T extends ReadonlyMap<infer K, infer V> ? Map<DeepMutable<K>, DeepMutable<V>>
263
- : T extends ReadonlySet<infer V> ? Set<DeepMutable<V>>
264
- : T extends string | number | boolean | bigint | symbol | Function ? T
265
- : { -readonly [K in keyof T]: DeepMutable<T[K]> }
266
-
267
- /**
268
- * Avoid inference on a specific parameter
269
- *
270
- * @since 2.0.0
271
- * @category models
272
- */
273
- export type NoInfer<A> = [A][A extends any ? 0 : never]
274
-
275
- /**
276
- * Invariant helper.
277
- *
278
- * @since 2.0.0
279
- * @category models
280
- */
281
- export type Invariant<A> = (_: A) => A
282
-
283
- /**
284
- * @since 3.9.0
285
- * @category models
286
- */
287
- export declare namespace Invariant {
288
- /**
289
- * @since 3.9.0
290
- * @category models
291
- */
292
- export type Type<A> = A extends Invariant<infer U> ? U : never
293
- }
294
-
295
- /**
296
- * Covariant helper.
297
- *
298
- * @since 2.0.0
299
- * @category models
300
- */
301
- export type Covariant<A> = (_: never) => A
302
-
303
- /**
304
- * @since 3.9.0
305
- * @category models
306
- */
307
- export declare namespace Covariant {
308
- /**
309
- * @since 3.9.0
310
- * @category models
311
- */
312
- export type Type<A> = A extends Covariant<infer U> ? U : never
313
- }
314
-
315
- /**
316
- * Contravariant helper.
317
- *
318
- * @since 2.0.0
319
- * @category models
320
- */
321
- export type Contravariant<A> = (_: A) => void
322
-
323
- /**
324
- * @since 3.9.0
325
- * @category models
326
- */
327
- export declare namespace Contravariant {
328
- /**
329
- * @since 3.9.0
330
- * @category models
331
- */
332
- export type Type<A> = A extends Contravariant<infer U> ? U : never
333
- }
334
-
335
- /**
336
- * @since 2.0.0
337
- */
338
- export type MatchRecord<S, onTrue, onFalse> = {} extends S ? onTrue : onFalse
339
-
340
- /**
341
- * @since 2.0.0
342
- */
343
- export type NotFunction<T> = T extends Function ? never : T
344
-
345
- /**
346
- * @since 3.9.0
347
- */
348
- export type NoExcessProperties<T, U> = T & { readonly [K in Exclude<keyof U, keyof T>]: never }
349
-
350
- /**
351
- * @since 3.15.0
352
- */
353
- export type Ctor<T = {}> = new(...args: Array<any>) => T