effect 4.0.0-beta.102 → 4.0.0-beta.103
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.
- package/dist/Array.d.ts +971 -1037
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +381 -407
- package/dist/Array.js.map +1 -1
- package/dist/BigDecimal.d.ts +433 -756
- package/dist/BigDecimal.d.ts.map +1 -1
- package/dist/BigDecimal.js +200 -325
- package/dist/BigDecimal.js.map +1 -1
- package/dist/BigInt.d.ts +207 -267
- package/dist/BigInt.d.ts.map +1 -1
- package/dist/BigInt.js +107 -135
- package/dist/BigInt.js.map +1 -1
- package/dist/Boolean.d.ts +146 -188
- package/dist/Boolean.d.ts.map +1 -1
- package/dist/Boolean.js +64 -84
- package/dist/Boolean.js.map +1 -1
- package/dist/Brand.js.map +1 -1
- package/dist/Cache.d.ts +405 -254
- package/dist/Cache.d.ts.map +1 -1
- package/dist/Cache.js +166 -101
- package/dist/Cache.js.map +1 -1
- package/dist/Cause.d.ts +167 -277
- package/dist/Cause.d.ts.map +1 -1
- package/dist/Cause.js +122 -176
- package/dist/Cause.js.map +1 -1
- package/dist/Channel.d.ts +729 -768
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +514 -440
- package/dist/Channel.js.map +1 -1
- package/dist/ChannelSchema.d.ts +1 -1
- package/dist/ChannelSchema.d.ts.map +1 -1
- package/dist/ChannelSchema.js.map +1 -1
- package/dist/Chunk.d.ts +834 -1173
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +326 -439
- package/dist/Chunk.js.map +1 -1
- package/dist/Clock.d.ts +180 -49
- package/dist/Clock.d.ts.map +1 -1
- package/dist/Clock.js +96 -31
- package/dist/Clock.js.map +1 -1
- package/dist/Combiner.d.ts +20 -33
- package/dist/Combiner.d.ts.map +1 -1
- package/dist/Combiner.js +18 -30
- package/dist/Combiner.js.map +1 -1
- package/dist/Config.d.ts +225 -173
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +336 -265
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts +194 -68
- package/dist/ConfigProvider.d.ts.map +1 -1
- package/dist/ConfigProvider.js +115 -80
- package/dist/ConfigProvider.js.map +1 -1
- package/dist/Console.d.ts +233 -33
- package/dist/Console.d.ts.map +1 -1
- package/dist/Console.js +232 -32
- package/dist/Console.js.map +1 -1
- package/dist/Context.d.ts +151 -274
- package/dist/Context.d.ts.map +1 -1
- package/dist/Context.js +171 -214
- package/dist/Context.js.map +1 -1
- package/dist/Cron.d.ts +68 -77
- package/dist/Cron.d.ts.map +1 -1
- package/dist/Cron.js +57 -66
- package/dist/Cron.js.map +1 -1
- package/dist/Crypto.d.ts +13 -15
- package/dist/Crypto.d.ts.map +1 -1
- package/dist/Crypto.js +9 -10
- package/dist/Crypto.js.map +1 -1
- package/dist/Data.d.ts +60 -80
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js +16 -23
- package/dist/Data.js.map +1 -1
- package/dist/DateTime.d.ts +562 -660
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +307 -362
- package/dist/DateTime.js.map +1 -1
- package/dist/Deferred.d.ts +253 -256
- package/dist/Deferred.d.ts.map +1 -1
- package/dist/Deferred.js +104 -96
- package/dist/Deferred.js.map +1 -1
- package/dist/Duration.d.ts +216 -308
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +132 -186
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +2841 -3247
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +1322 -1546
- package/dist/Effect.js.map +1 -1
- package/dist/Effectable.js.map +1 -1
- package/dist/Encoding.d.ts +22 -40
- package/dist/Encoding.d.ts.map +1 -1
- package/dist/Encoding.js +22 -40
- package/dist/Encoding.js.map +1 -1
- package/dist/Equal.d.ts +33 -37
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +29 -21
- package/dist/Equal.js.map +1 -1
- package/dist/Equivalence.d.ts +103 -105
- package/dist/Equivalence.d.ts.map +1 -1
- package/dist/Equivalence.js +77 -79
- package/dist/Equivalence.js.map +1 -1
- package/dist/ErrorReporter.d.ts +51 -27
- package/dist/ErrorReporter.d.ts.map +1 -1
- package/dist/ErrorReporter.js +50 -26
- package/dist/ErrorReporter.js.map +1 -1
- package/dist/ExecutionPlan.d.ts +13 -55
- package/dist/ExecutionPlan.d.ts.map +1 -1
- package/dist/ExecutionPlan.js +7 -28
- package/dist/ExecutionPlan.js.map +1 -1
- package/dist/Exit.d.ts +116 -192
- package/dist/Exit.d.ts.map +1 -1
- package/dist/Exit.js +82 -130
- package/dist/Exit.js.map +1 -1
- package/dist/Fiber.d.ts +82 -146
- package/dist/Fiber.d.ts.map +1 -1
- package/dist/Fiber.js +48 -87
- package/dist/Fiber.js.map +1 -1
- package/dist/FiberHandle.d.ts +152 -105
- package/dist/FiberHandle.d.ts.map +1 -1
- package/dist/FiberHandle.js +106 -73
- package/dist/FiberHandle.js.map +1 -1
- package/dist/FiberMap.d.ts +213 -168
- package/dist/FiberMap.d.ts.map +1 -1
- package/dist/FiberMap.js +114 -89
- package/dist/FiberMap.js.map +1 -1
- package/dist/FiberSet.d.ts +123 -81
- package/dist/FiberSet.d.ts.map +1 -1
- package/dist/FiberSet.js +85 -59
- package/dist/FiberSet.js.map +1 -1
- package/dist/FileSystem.d.ts +153 -264
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +42 -147
- package/dist/FileSystem.js.map +1 -1
- package/dist/Filter.d.ts +61 -33
- package/dist/Filter.d.ts.map +1 -1
- package/dist/Filter.js +26 -15
- package/dist/Filter.js.map +1 -1
- package/dist/Formatter.d.ts +25 -33
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +48 -49
- package/dist/Formatter.js.map +1 -1
- package/dist/Function.d.ts +76 -145
- package/dist/Function.d.ts.map +1 -1
- package/dist/Function.js +40 -57
- package/dist/Function.js.map +1 -1
- package/dist/Graph.d.ts +360 -714
- package/dist/Graph.d.ts.map +1 -1
- package/dist/Graph.js +168 -297
- package/dist/Graph.js.map +1 -1
- package/dist/HKT.d.ts +12 -6
- package/dist/HKT.d.ts.map +1 -1
- package/dist/Hash.d.ts +47 -83
- package/dist/Hash.d.ts.map +1 -1
- package/dist/Hash.js +46 -68
- package/dist/Hash.js.map +1 -1
- package/dist/HashMap.d.ts +319 -411
- package/dist/HashMap.d.ts.map +1 -1
- package/dist/HashMap.js +122 -166
- package/dist/HashMap.js.map +1 -1
- package/dist/HashRing.d.ts.map +1 -1
- package/dist/HashRing.js +1 -0
- package/dist/HashRing.js.map +1 -1
- package/dist/HashSet.d.ts +177 -284
- package/dist/HashSet.d.ts.map +1 -1
- package/dist/HashSet.js +68 -109
- package/dist/HashSet.js.map +1 -1
- package/dist/Inspectable.d.ts +12 -12
- package/dist/Inspectable.js +8 -8
- package/dist/Inspectable.js.map +1 -1
- package/dist/Iterable.d.ts +620 -786
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +228 -306
- package/dist/Iterable.js.map +1 -1
- package/dist/JsonPatch.d.ts +11 -13
- package/dist/JsonPatch.d.ts.map +1 -1
- package/dist/JsonPatch.js +44 -102
- package/dist/JsonPatch.js.map +1 -1
- package/dist/JsonPointer.d.ts +8 -8
- package/dist/JsonPointer.js +8 -8
- package/dist/JsonPointer.js.map +1 -1
- package/dist/JsonSchema.d.ts +98 -44
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +297 -234
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Latch.d.ts +23 -35
- package/dist/Latch.d.ts.map +1 -1
- package/dist/Latch.js +16 -28
- package/dist/Latch.js.map +1 -1
- package/dist/Layer.d.ts +359 -260
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +195 -175
- package/dist/Layer.js.map +1 -1
- package/dist/LayerMap.d.ts +42 -29
- package/dist/LayerMap.d.ts.map +1 -1
- package/dist/LayerMap.js +31 -21
- package/dist/LayerMap.js.map +1 -1
- package/dist/LayerRef.d.ts +6 -2
- package/dist/LayerRef.d.ts.map +1 -1
- package/dist/LayerRef.js +6 -2
- package/dist/LayerRef.js.map +1 -1
- package/dist/LogLevel.d.ts +114 -214
- package/dist/LogLevel.d.ts.map +1 -1
- package/dist/LogLevel.js +41 -76
- package/dist/LogLevel.js.map +1 -1
- package/dist/Logger.d.ts +218 -467
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js +204 -450
- package/dist/Logger.js.map +1 -1
- package/dist/ManagedRuntime.d.ts +7 -5
- package/dist/ManagedRuntime.d.ts.map +1 -1
- package/dist/ManagedRuntime.js +7 -5
- package/dist/ManagedRuntime.js.map +1 -1
- package/dist/Match.d.ts +217 -252
- package/dist/Match.d.ts.map +1 -1
- package/dist/Match.js +150 -183
- package/dist/Match.js.map +1 -1
- package/dist/Metric.d.ts +442 -993
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +198 -642
- package/dist/Metric.js.map +1 -1
- package/dist/MutableHashMap.d.ts +144 -173
- package/dist/MutableHashMap.d.ts.map +1 -1
- package/dist/MutableHashMap.js +68 -79
- package/dist/MutableHashMap.js.map +1 -1
- package/dist/MutableHashSet.d.ts +84 -89
- package/dist/MutableHashSet.d.ts.map +1 -1
- package/dist/MutableHashSet.js +44 -47
- package/dist/MutableHashSet.js.map +1 -1
- package/dist/MutableList.d.ts +71 -370
- package/dist/MutableList.d.ts.map +1 -1
- package/dist/MutableList.js +59 -284
- package/dist/MutableList.js.map +1 -1
- package/dist/MutableRef.d.ts +420 -243
- package/dist/MutableRef.d.ts.map +1 -1
- package/dist/MutableRef.js +209 -120
- package/dist/MutableRef.js.map +1 -1
- package/dist/Newtype.d.ts +21 -14
- package/dist/Newtype.d.ts.map +1 -1
- package/dist/Newtype.js +15 -13
- package/dist/Newtype.js.map +1 -1
- package/dist/NonEmptyIterable.d.ts +7 -137
- package/dist/NonEmptyIterable.d.ts.map +1 -1
- package/dist/NonEmptyIterable.js +5 -93
- package/dist/NonEmptyIterable.js.map +1 -1
- package/dist/Number.d.ts +196 -233
- package/dist/Number.d.ts.map +1 -1
- package/dist/Number.js +90 -109
- package/dist/Number.js.map +1 -1
- package/dist/Optic.d.ts +97 -189
- package/dist/Optic.d.ts.map +1 -1
- package/dist/Optic.js +187 -290
- package/dist/Optic.js.map +1 -1
- package/dist/Option.d.ts +447 -812
- package/dist/Option.d.ts.map +1 -1
- package/dist/Option.js +211 -392
- package/dist/Option.js.map +1 -1
- package/dist/Order.d.ts +109 -109
- package/dist/Order.js +91 -91
- package/dist/Order.js.map +1 -1
- package/dist/Ordering.d.ts +20 -23
- package/dist/Ordering.d.ts.map +1 -1
- package/dist/Ordering.js +8 -9
- package/dist/Ordering.js.map +1 -1
- package/dist/PartitionedSemaphore.js.map +1 -1
- package/dist/Path.d.ts +38 -41
- package/dist/Path.d.ts.map +1 -1
- package/dist/Path.js +3 -4
- package/dist/Path.js.map +1 -1
- package/dist/Pipeable.d.ts +6 -5
- package/dist/Pipeable.d.ts.map +1 -1
- package/dist/Pipeable.js +2 -2
- package/dist/Pipeable.js.map +1 -1
- package/dist/PlatformError.d.ts +4 -4
- package/dist/PlatformError.js +3 -3
- package/dist/PlatformError.js.map +1 -1
- package/dist/Pool.d.ts +4 -2
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +4 -2
- package/dist/Pool.js.map +1 -1
- package/dist/Predicate.d.ts +200 -181
- package/dist/Predicate.d.ts.map +1 -1
- package/dist/Predicate.js +100 -108
- package/dist/Predicate.js.map +1 -1
- package/dist/PrimaryKey.d.ts +7 -7
- package/dist/PrimaryKey.js +5 -5
- package/dist/PrimaryKey.js.map +1 -1
- package/dist/PubSub.d.ts +425 -494
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +373 -362
- package/dist/PubSub.js.map +1 -1
- package/dist/Pull.d.ts +24 -18
- package/dist/Pull.d.ts.map +1 -1
- package/dist/Pull.js +11 -9
- package/dist/Pull.js.map +1 -1
- package/dist/Queue.d.ts +200 -159
- package/dist/Queue.d.ts.map +1 -1
- package/dist/Queue.js +162 -132
- package/dist/Queue.js.map +1 -1
- package/dist/Random.d.ts +49 -74
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +35 -54
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts +121 -63
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/RcMap.js +42 -21
- package/dist/RcMap.js.map +1 -1
- package/dist/RcRef.d.ts +24 -13
- package/dist/RcRef.d.ts.map +1 -1
- package/dist/RcRef.js +15 -9
- package/dist/RcRef.js.map +1 -1
- package/dist/Record.d.ts +291 -488
- package/dist/Record.d.ts.map +1 -1
- package/dist/Record.js +111 -202
- package/dist/Record.js.map +1 -1
- package/dist/Redactable.d.ts +6 -2
- package/dist/Redactable.d.ts.map +1 -1
- package/dist/Redactable.js +7 -2
- package/dist/Redactable.js.map +1 -1
- package/dist/Redacted.d.ts +25 -25
- package/dist/Redacted.d.ts.map +1 -1
- package/dist/Redacted.js +19 -20
- package/dist/Redacted.js.map +1 -1
- package/dist/Reducer.d.ts +8 -15
- package/dist/Reducer.d.ts.map +1 -1
- package/dist/Reducer.js +6 -12
- package/dist/Reducer.js.map +1 -1
- package/dist/Ref.d.ts +95 -165
- package/dist/Ref.d.ts.map +1 -1
- package/dist/Ref.js +75 -122
- package/dist/Ref.js.map +1 -1
- package/dist/References.d.ts +102 -168
- package/dist/References.d.ts.map +1 -1
- package/dist/References.js +102 -168
- package/dist/References.js.map +1 -1
- package/dist/RegExp.d.ts +10 -14
- package/dist/RegExp.d.ts.map +1 -1
- package/dist/RegExp.js +10 -14
- package/dist/RegExp.js.map +1 -1
- package/dist/Request.d.ts +31 -21
- package/dist/Request.d.ts.map +1 -1
- package/dist/Request.js +16 -13
- package/dist/Request.js.map +1 -1
- package/dist/RequestResolver.d.ts +201 -90
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +87 -41
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Resource.js.map +1 -1
- package/dist/Result.d.ts +302 -470
- package/dist/Result.d.ts.map +1 -1
- package/dist/Result.js +133 -217
- package/dist/Result.js.map +1 -1
- package/dist/Runtime.d.ts +50 -75
- package/dist/Runtime.d.ts.map +1 -1
- package/dist/Runtime.js +39 -60
- package/dist/Runtime.js.map +1 -1
- package/dist/Schedule.d.ts +290 -1636
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +162 -803
- package/dist/Schedule.js.map +1 -1
- package/dist/Scheduler.d.ts +5 -5
- package/dist/Scheduler.d.ts.map +1 -1
- package/dist/Scheduler.js +18 -6
- package/dist/Scheduler.js.map +1 -1
- package/dist/Schema.d.ts +644 -642
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +491 -527
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +27 -50
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +366 -279
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaError.d.ts +7 -6
- package/dist/SchemaError.d.ts.map +1 -1
- package/dist/SchemaError.js +7 -6
- package/dist/SchemaError.js.map +1 -1
- package/dist/SchemaGetter.d.ts +217 -174
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +218 -185
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaIssue.d.ts +62 -190
- package/dist/SchemaIssue.d.ts.map +1 -1
- package/dist/SchemaIssue.js +73 -265
- package/dist/SchemaIssue.js.map +1 -1
- package/dist/SchemaParser.d.ts +2 -2
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +123 -75
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +22 -36
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +20 -26
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +114 -74
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +120 -85
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/Scope.d.ts +123 -151
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +72 -92
- package/dist/Scope.js.map +1 -1
- package/dist/ScopedCache.js.map +1 -1
- package/dist/ScopedRef.d.ts +3 -3
- package/dist/ScopedRef.js +2 -2
- package/dist/ScopedRef.js.map +1 -1
- package/dist/Semaphore.d.ts +96 -10
- package/dist/Semaphore.d.ts.map +1 -1
- package/dist/Semaphore.js +78 -39
- package/dist/Semaphore.js.map +1 -1
- package/dist/Sink.d.ts +117 -107
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +107 -100
- package/dist/Sink.js.map +1 -1
- package/dist/Stdio.d.ts +1 -1
- package/dist/Stdio.js.map +1 -1
- package/dist/Stream.d.ts +2415 -2949
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +1078 -1381
- package/dist/Stream.js.map +1 -1
- package/dist/String.d.ts +262 -308
- package/dist/String.d.ts.map +1 -1
- package/dist/String.js +184 -215
- package/dist/String.js.map +1 -1
- package/dist/Struct.d.ts +109 -114
- package/dist/Struct.d.ts.map +1 -1
- package/dist/Struct.js +41 -50
- package/dist/Struct.js.map +1 -1
- package/dist/SubscriptionRef.d.ts +282 -250
- package/dist/SubscriptionRef.d.ts.map +1 -1
- package/dist/SubscriptionRef.js +104 -92
- package/dist/SubscriptionRef.js.map +1 -1
- package/dist/Symbol.d.ts +3 -3
- package/dist/Symbol.js +3 -3
- package/dist/Symbol.js.map +1 -1
- package/dist/SynchronizedRef.js.map +1 -1
- package/dist/Take.js.map +1 -1
- package/dist/Terminal.d.ts +2 -2
- package/dist/Terminal.js +1 -1
- package/dist/Terminal.js.map +1 -1
- package/dist/Tracer.d.ts +100 -54
- package/dist/Tracer.d.ts.map +1 -1
- package/dist/Tracer.js +41 -24
- package/dist/Tracer.js.map +1 -1
- package/dist/Trie.d.ts +287 -679
- package/dist/Trie.d.ts.map +1 -1
- package/dist/Trie.js +109 -251
- package/dist/Trie.js.map +1 -1
- package/dist/Tuple.d.ts +92 -127
- package/dist/Tuple.d.ts.map +1 -1
- package/dist/Tuple.js +42 -57
- package/dist/Tuple.js.map +1 -1
- package/dist/TxChunk.d.ts +201 -121
- package/dist/TxChunk.d.ts.map +1 -1
- package/dist/TxChunk.js +85 -56
- package/dist/TxChunk.js.map +1 -1
- package/dist/TxDeferred.d.ts +62 -46
- package/dist/TxDeferred.d.ts.map +1 -1
- package/dist/TxDeferred.js +30 -22
- package/dist/TxDeferred.js.map +1 -1
- package/dist/TxHashMap.d.ts +631 -779
- package/dist/TxHashMap.d.ts.map +1 -1
- package/dist/TxHashMap.js +268 -330
- package/dist/TxHashMap.js.map +1 -1
- package/dist/TxHashSet.d.ts +297 -236
- package/dist/TxHashSet.d.ts.map +1 -1
- package/dist/TxHashSet.js +130 -100
- package/dist/TxHashSet.js.map +1 -1
- package/dist/TxPriorityQueue.d.ts +126 -95
- package/dist/TxPriorityQueue.d.ts.map +1 -1
- package/dist/TxPriorityQueue.js +74 -56
- package/dist/TxPriorityQueue.js.map +1 -1
- package/dist/TxPubSub.d.ts +101 -88
- package/dist/TxPubSub.d.ts.map +1 -1
- package/dist/TxPubSub.js +87 -66
- package/dist/TxPubSub.js.map +1 -1
- package/dist/TxQueue.d.ts +200 -180
- package/dist/TxQueue.d.ts.map +1 -1
- package/dist/TxQueue.js +160 -136
- package/dist/TxQueue.js.map +1 -1
- package/dist/TxReentrantLock.d.ts +97 -66
- package/dist/TxReentrantLock.d.ts.map +1 -1
- package/dist/TxReentrantLock.js +67 -45
- package/dist/TxReentrantLock.js.map +1 -1
- package/dist/TxRef.d.ts +51 -32
- package/dist/TxRef.d.ts.map +1 -1
- package/dist/TxRef.js +23 -15
- package/dist/TxRef.js.map +1 -1
- package/dist/TxSemaphore.d.ts +129 -95
- package/dist/TxSemaphore.d.ts.map +1 -1
- package/dist/TxSemaphore.js +85 -70
- package/dist/TxSemaphore.js.map +1 -1
- package/dist/TxSubscriptionRef.d.ts +97 -70
- package/dist/TxSubscriptionRef.d.ts.map +1 -1
- package/dist/TxSubscriptionRef.js +44 -34
- package/dist/TxSubscriptionRef.js.map +1 -1
- package/dist/Types.d.ts +126 -67
- package/dist/Types.d.ts.map +1 -1
- package/dist/UndefinedOr.js.map +1 -1
- package/dist/Unify.d.ts +45 -65
- package/dist/Unify.d.ts.map +1 -1
- package/dist/Unify.js +6 -9
- package/dist/Unify.js.map +1 -1
- package/dist/Utils.d.ts +23 -16
- package/dist/Utils.d.ts.map +1 -1
- package/dist/Utils.js +3 -7
- package/dist/Utils.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/array.js.map +1 -1
- package/dist/internal/core.js +1 -1
- package/dist/internal/core.js.map +1 -1
- package/dist/internal/dateTime.js +4 -0
- package/dist/internal/dateTime.js.map +1 -1
- package/dist/internal/doNotation.js.map +1 -1
- package/dist/internal/effect.js +77 -40
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/equal.js.map +1 -1
- package/dist/internal/errors.js.map +1 -1
- package/dist/internal/executionPlan.js.map +1 -1
- package/dist/internal/hashMap.js.map +1 -1
- package/dist/internal/hashSet.js.map +1 -1
- package/dist/internal/layer.js.map +1 -1
- package/dist/internal/matcher.js.map +1 -1
- package/dist/internal/metric.js.map +1 -1
- package/dist/internal/option.js.map +1 -1
- package/dist/internal/persistence.d.ts +2 -0
- package/dist/internal/persistence.d.ts.map +1 -0
- package/dist/internal/persistence.js +3 -0
- package/dist/internal/persistence.js.map +1 -0
- package/dist/internal/random.js.map +1 -1
- package/dist/internal/rcRef.js.map +1 -1
- package/dist/internal/record.js.map +1 -1
- package/dist/internal/redacted.js.map +1 -1
- package/dist/internal/references.js +3 -0
- package/dist/internal/references.js.map +1 -1
- package/dist/internal/request.js.map +1 -1
- package/dist/internal/result.js.map +1 -1
- package/dist/internal/schedule.js.map +1 -1
- package/dist/internal/schema/annotations.js.map +1 -1
- package/dist/internal/schema/cause.js.map +1 -1
- package/dist/internal/schema/fromJsonSchemaDocument.js +13 -11
- package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
- package/dist/internal/schema/fromRepresentation.js +8 -15
- package/dist/internal/schema/fromRepresentation.js.map +1 -1
- package/dist/internal/schema/parser.d.ts +14 -0
- package/dist/internal/schema/parser.d.ts.map +1 -0
- package/dist/internal/schema/parser.js +13 -0
- package/dist/internal/schema/parser.js.map +1 -0
- package/dist/internal/schema/schema.js.map +1 -1
- package/dist/internal/schema/toArbitrary.js.map +1 -1
- package/dist/internal/schema/toCodeDocument.js.map +1 -1
- package/dist/internal/schema/toEquivalence.js.map +1 -1
- package/dist/internal/schema/toJsonSchemaDocument.js +48 -6
- package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
- package/dist/internal/schema/toRepresentation.js +87 -107
- package/dist/internal/schema/toRepresentation.js.map +1 -1
- package/dist/internal/stackTraceLimit.js.map +1 -1
- package/dist/internal/stream.js.map +1 -1
- package/dist/internal/tracer.js.map +1 -1
- package/dist/internal/trie.js +13 -9
- package/dist/internal/trie.js.map +1 -1
- package/dist/testing/FastCheck.d.ts +8 -7
- package/dist/testing/FastCheck.d.ts.map +1 -1
- package/dist/testing/FastCheck.js +8 -7
- package/dist/testing/FastCheck.js.map +1 -1
- package/dist/testing/TestClock.d.ts +57 -28
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +50 -18
- package/dist/testing/TestClock.js.map +1 -1
- package/dist/testing/TestConsole.d.ts +32 -31
- package/dist/testing/TestConsole.d.ts.map +1 -1
- package/dist/testing/TestConsole.js +24 -22
- package/dist/testing/TestConsole.js.map +1 -1
- package/dist/testing/TestSchema.d.ts +29 -29
- package/dist/testing/TestSchema.js +25 -25
- package/dist/testing/TestSchema.js.map +1 -1
- package/dist/testing/index.js.map +1 -1
- package/dist/unstable/ai/AiError.d.ts +95 -118
- package/dist/unstable/ai/AiError.d.ts.map +1 -1
- package/dist/unstable/ai/AiError.js +94 -117
- package/dist/unstable/ai/AiError.js.map +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.d.ts +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.js +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
- package/dist/unstable/ai/Chat.d.ts +132 -97
- package/dist/unstable/ai/Chat.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.js +55 -51
- package/dist/unstable/ai/Chat.js.map +1 -1
- package/dist/unstable/ai/EmbeddingModel.js.map +1 -1
- package/dist/unstable/ai/IdGenerator.d.ts +32 -28
- package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
- package/dist/unstable/ai/IdGenerator.js +26 -21
- package/dist/unstable/ai/IdGenerator.js.map +1 -1
- package/dist/unstable/ai/LanguageModel.d.ts +107 -67
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/LanguageModel.js +104 -64
- package/dist/unstable/ai/LanguageModel.js.map +1 -1
- package/dist/unstable/ai/McpProtocol.d.ts +30 -0
- package/dist/unstable/ai/McpProtocol.d.ts.map +1 -0
- package/dist/unstable/ai/McpProtocol.js +20 -0
- package/dist/unstable/ai/McpProtocol.js.map +1 -0
- package/dist/unstable/ai/McpSchema.d.ts +141 -75
- package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
- package/dist/unstable/ai/McpSchema.js +58 -50
- package/dist/unstable/ai/McpSchema.js.map +1 -1
- package/dist/unstable/ai/McpServer.d.ts +68 -59
- package/dist/unstable/ai/McpServer.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.js +694 -241
- package/dist/unstable/ai/McpServer.js.map +1 -1
- package/dist/unstable/ai/Model.d.ts +8 -19
- package/dist/unstable/ai/Model.d.ts.map +1 -1
- package/dist/unstable/ai/Model.js +9 -20
- package/dist/unstable/ai/Model.js.map +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.d.ts +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.js +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
- package/dist/unstable/ai/Prompt.d.ts +112 -38
- package/dist/unstable/ai/Prompt.d.ts.map +1 -1
- package/dist/unstable/ai/Prompt.js +53 -17
- package/dist/unstable/ai/Prompt.js.map +1 -1
- package/dist/unstable/ai/Response.d.ts +28 -14
- package/dist/unstable/ai/Response.d.ts.map +1 -1
- package/dist/unstable/ai/Response.js +9 -4
- package/dist/unstable/ai/Response.js.map +1 -1
- package/dist/unstable/ai/ResponseIdTracker.js.map +1 -1
- package/dist/unstable/ai/Telemetry.d.ts +46 -13
- package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
- package/dist/unstable/ai/Telemetry.js +18 -7
- package/dist/unstable/ai/Telemetry.js.map +1 -1
- package/dist/unstable/ai/Tokenizer.d.ts +14 -3
- package/dist/unstable/ai/Tokenizer.d.ts.map +1 -1
- package/dist/unstable/ai/Tokenizer.js +10 -2
- package/dist/unstable/ai/Tokenizer.js.map +1 -1
- package/dist/unstable/ai/Tool.d.ts +59 -44
- package/dist/unstable/ai/Tool.d.ts.map +1 -1
- package/dist/unstable/ai/Tool.js +48 -39
- package/dist/unstable/ai/Tool.js.map +1 -1
- package/dist/unstable/ai/Toolkit.d.ts +26 -8
- package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
- package/dist/unstable/ai/Toolkit.js +18 -4
- package/dist/unstable/ai/Toolkit.js.map +1 -1
- package/dist/unstable/ai/index.d.ts +4 -0
- package/dist/unstable/ai/index.d.ts.map +1 -1
- package/dist/unstable/ai/index.js +4 -0
- package/dist/unstable/ai/index.js.map +1 -1
- package/dist/unstable/ai/internal/codec-transformer.js.map +1 -1
- package/dist/unstable/ai/internal/mcpProtocol.d.ts +21 -0
- package/dist/unstable/ai/internal/mcpProtocol.d.ts.map +1 -0
- package/dist/unstable/ai/internal/mcpProtocol.js +22 -0
- package/dist/unstable/ai/internal/mcpProtocol.js.map +1 -0
- package/dist/unstable/ai/internal/mcpProtocolRegistry.d.ts +2 -0
- package/dist/unstable/ai/internal/mcpProtocolRegistry.d.ts.map +1 -0
- package/dist/unstable/ai/internal/mcpProtocolRegistry.js +32 -0
- package/dist/unstable/ai/internal/mcpProtocolRegistry.js.map +1 -0
- package/dist/unstable/ai/internal/structured-output.js +14 -15
- package/dist/unstable/ai/internal/structured-output.js.map +1 -1
- package/dist/unstable/cli/Argument.d.ts +273 -69
- package/dist/unstable/cli/Argument.d.ts.map +1 -1
- package/dist/unstable/cli/Argument.js +111 -33
- package/dist/unstable/cli/Argument.js.map +1 -1
- package/dist/unstable/cli/CliConfig.js.map +1 -1
- package/dist/unstable/cli/CliError.d.ts +69 -76
- package/dist/unstable/cli/CliError.d.ts.map +1 -1
- package/dist/unstable/cli/CliError.js +57 -61
- package/dist/unstable/cli/CliError.js.map +1 -1
- package/dist/unstable/cli/CliOutput.d.ts +35 -54
- package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
- package/dist/unstable/cli/CliOutput.js +26 -42
- package/dist/unstable/cli/CliOutput.js.map +1 -1
- package/dist/unstable/cli/Command.d.ts +705 -107
- package/dist/unstable/cli/Command.d.ts.map +1 -1
- package/dist/unstable/cli/Command.js +238 -42
- package/dist/unstable/cli/Command.js.map +1 -1
- package/dist/unstable/cli/Completions.js.map +1 -1
- package/dist/unstable/cli/Flag.d.ts +418 -138
- package/dist/unstable/cli/Flag.d.ts.map +1 -1
- package/dist/unstable/cli/Flag.js +197 -71
- package/dist/unstable/cli/Flag.js.map +1 -1
- package/dist/unstable/cli/GlobalFlag.d.ts +1 -1
- package/dist/unstable/cli/GlobalFlag.js.map +1 -1
- package/dist/unstable/cli/HelpDoc.d.ts +12 -4
- package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
- package/dist/unstable/cli/Param.d.ts +292 -78
- package/dist/unstable/cli/Param.d.ts.map +1 -1
- package/dist/unstable/cli/Param.js +128 -46
- package/dist/unstable/cli/Param.js.map +1 -1
- package/dist/unstable/cli/Primitive.d.ts +370 -149
- package/dist/unstable/cli/Primitive.d.ts.map +1 -1
- package/dist/unstable/cli/Primitive.js +344 -136
- package/dist/unstable/cli/Primitive.js.map +1 -1
- package/dist/unstable/cli/Prompt.d.ts +23 -14
- package/dist/unstable/cli/Prompt.d.ts.map +1 -1
- package/dist/unstable/cli/Prompt.js +23 -14
- package/dist/unstable/cli/Prompt.js.map +1 -1
- package/dist/unstable/cli/index.js.map +1 -1
- package/dist/unstable/cli/internal/ansi.js.map +1 -1
- package/dist/unstable/cli/internal/auto-suggest.js.map +1 -1
- package/dist/unstable/cli/internal/command.js.map +1 -1
- package/dist/unstable/cli/internal/completions/bash.js.map +1 -1
- package/dist/unstable/cli/internal/completions/descriptor.js.map +1 -1
- package/dist/unstable/cli/internal/completions/fish.js.map +1 -1
- package/dist/unstable/cli/internal/completions/zsh.js.map +1 -1
- package/dist/unstable/cli/internal/config.js.map +1 -1
- package/dist/unstable/cli/internal/help.js.map +1 -1
- package/dist/unstable/cli/internal/lexer.js +17 -7
- package/dist/unstable/cli/internal/lexer.js.map +1 -1
- package/dist/unstable/cli/internal/parser.js +2 -2
- package/dist/unstable/cli/internal/parser.js.map +1 -1
- package/dist/unstable/cli/internal/wizard.js.map +1 -1
- package/dist/unstable/cluster/ClusterCron.js.map +1 -1
- package/dist/unstable/cluster/ClusterError.js.map +1 -1
- package/dist/unstable/cluster/ClusterMetrics.js.map +1 -1
- package/dist/unstable/cluster/ClusterSchema.d.ts +8 -8
- package/dist/unstable/cluster/ClusterSchema.js +8 -8
- package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +5 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/unstable/cluster/DeliverAt.js.map +1 -1
- package/dist/unstable/cluster/Entity.d.ts +10 -10
- package/dist/unstable/cluster/Entity.d.ts.map +1 -1
- package/dist/unstable/cluster/Entity.js +8 -8
- package/dist/unstable/cluster/Entity.js.map +1 -1
- package/dist/unstable/cluster/EntityAddress.js.map +1 -1
- package/dist/unstable/cluster/EntityId.js.map +1 -1
- package/dist/unstable/cluster/EntityProxy.d.ts +4 -2
- package/dist/unstable/cluster/EntityProxy.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityProxy.js +4 -2
- package/dist/unstable/cluster/EntityProxy.js.map +1 -1
- package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
- package/dist/unstable/cluster/EntityResource.d.ts +2 -2
- package/dist/unstable/cluster/EntityResource.js +2 -2
- package/dist/unstable/cluster/EntityResource.js.map +1 -1
- package/dist/unstable/cluster/EntityType.js.map +1 -1
- package/dist/unstable/cluster/Envelope.d.ts +3 -3
- package/dist/unstable/cluster/Envelope.js +3 -3
- package/dist/unstable/cluster/Envelope.js.map +1 -1
- package/dist/unstable/cluster/HttpRunner.d.ts +2 -2
- package/dist/unstable/cluster/HttpRunner.d.ts.map +1 -1
- package/dist/unstable/cluster/HttpRunner.js +6 -4
- package/dist/unstable/cluster/HttpRunner.js.map +1 -1
- package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
- package/dist/unstable/cluster/MachineId.js.map +1 -1
- package/dist/unstable/cluster/Message.d.ts +9 -9
- package/dist/unstable/cluster/Message.js +6 -6
- package/dist/unstable/cluster/Message.js.map +1 -1
- package/dist/unstable/cluster/MessageStorage.d.ts +15 -15
- package/dist/unstable/cluster/MessageStorage.js +5 -5
- package/dist/unstable/cluster/MessageStorage.js.map +1 -1
- package/dist/unstable/cluster/Reply.d.ts.map +1 -1
- package/dist/unstable/cluster/Reply.js +4 -4
- package/dist/unstable/cluster/Reply.js.map +1 -1
- package/dist/unstable/cluster/Runner.js.map +1 -1
- package/dist/unstable/cluster/RunnerAddress.js.map +1 -1
- package/dist/unstable/cluster/RunnerHealth.d.ts +1 -1
- package/dist/unstable/cluster/RunnerHealth.js +1 -1
- package/dist/unstable/cluster/RunnerHealth.js.map +1 -1
- package/dist/unstable/cluster/RunnerServer.d.ts +2 -1
- package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerServer.js +16 -16
- package/dist/unstable/cluster/RunnerServer.js.map +1 -1
- package/dist/unstable/cluster/RunnerStorage.d.ts +2 -2
- package/dist/unstable/cluster/RunnerStorage.js +1 -1
- package/dist/unstable/cluster/RunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/Runners.d.ts +6 -6
- package/dist/unstable/cluster/Runners.d.ts.map +1 -1
- package/dist/unstable/cluster/Runners.js +19 -10
- package/dist/unstable/cluster/Runners.js.map +1 -1
- package/dist/unstable/cluster/ShardId.js.map +1 -1
- package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
- package/dist/unstable/cluster/Sharding.js +3 -2
- package/dist/unstable/cluster/Sharding.js.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.d.ts +3 -3
- package/dist/unstable/cluster/ShardingConfig.js +3 -3
- package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
- package/dist/unstable/cluster/ShardingRegistrationEvent.js.map +1 -1
- package/dist/unstable/cluster/SingleRunner.js.map +1 -1
- package/dist/unstable/cluster/Singleton.js.map +1 -1
- package/dist/unstable/cluster/SingletonAddress.d.ts +1 -1
- package/dist/unstable/cluster/SingletonAddress.js +1 -1
- package/dist/unstable/cluster/SingletonAddress.js.map +1 -1
- package/dist/unstable/cluster/Snowflake.d.ts +8 -8
- package/dist/unstable/cluster/Snowflake.js +8 -8
- package/dist/unstable/cluster/Snowflake.js.map +1 -1
- package/dist/unstable/cluster/SocketRunner.js.map +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.js +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.js +20 -5
- package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/TestRunner.js.map +1 -1
- package/dist/unstable/cluster/index.js.map +1 -1
- package/dist/unstable/cluster/internal/entityManager.js +5 -5
- package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
- package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
- package/dist/unstable/cluster/internal/hash.js.map +1 -1
- package/dist/unstable/cluster/internal/interruptors.js.map +1 -1
- package/dist/unstable/cluster/internal/resourceMap.js.map +1 -1
- package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
- package/dist/unstable/cluster/internal/shardLock.js.map +1 -1
- package/dist/unstable/devtools/DevTools.js.map +1 -1
- package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
- package/dist/unstable/devtools/DevToolsServer.js.map +1 -1
- package/dist/unstable/devtools/index.js.map +1 -1
- package/dist/unstable/encoding/Msgpack.d.ts.map +1 -1
- package/dist/unstable/encoding/Msgpack.js +6 -8
- package/dist/unstable/encoding/Msgpack.js.map +1 -1
- package/dist/unstable/encoding/Ndjson.js.map +1 -1
- package/dist/unstable/encoding/Sse.d.ts +72 -8
- package/dist/unstable/encoding/Sse.d.ts.map +1 -1
- package/dist/unstable/encoding/Sse.js +58 -8
- package/dist/unstable/encoding/Sse.js.map +1 -1
- package/dist/unstable/encoding/index.js.map +1 -1
- package/dist/unstable/eventlog/Event.d.ts +20 -20
- package/dist/unstable/eventlog/Event.js.map +1 -1
- package/dist/unstable/eventlog/EventGroup.d.ts +4 -4
- package/dist/unstable/eventlog/EventGroup.js.map +1 -1
- package/dist/unstable/eventlog/EventJournal.d.ts +15 -15
- package/dist/unstable/eventlog/EventJournal.js +13 -13
- package/dist/unstable/eventlog/EventJournal.js.map +1 -1
- package/dist/unstable/eventlog/EventLog.d.ts +3 -3
- package/dist/unstable/eventlog/EventLog.js +3 -3
- package/dist/unstable/eventlog/EventLog.js.map +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.d.ts +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.js +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
- package/dist/unstable/eventlog/EventLogMessage.d.ts +2 -2
- package/dist/unstable/eventlog/EventLogMessage.js +1 -1
- package/dist/unstable/eventlog/EventLogMessage.js.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.d.ts +15 -15
- package/dist/unstable/eventlog/EventLogRemote.js +1 -1
- package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServer.d.ts +11 -2
- package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServer.js +45 -21
- package/dist/unstable/eventlog/EventLogServer.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +4 -4
- package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServerEncrypted.js +13 -5
- package/dist/unstable/eventlog/EventLogServerEncrypted.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +5 -5
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js +14 -6
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -1
- package/dist/unstable/eventlog/EventLogSessionAuth.d.ts +1 -1
- package/dist/unstable/eventlog/EventLogSessionAuth.js +1 -1
- package/dist/unstable/eventlog/EventLogSessionAuth.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
- package/dist/unstable/eventlog/index.js.map +1 -1
- package/dist/unstable/eventlog/internal/identityRootSecretDerivation.js.map +1 -1
- package/dist/unstable/http/Cookies.d.ts +2 -2
- package/dist/unstable/http/Cookies.d.ts.map +1 -1
- package/dist/unstable/http/Cookies.js +30 -18
- package/dist/unstable/http/Cookies.js.map +1 -1
- package/dist/unstable/http/Etag.d.ts +1 -1
- package/dist/unstable/http/Etag.js +1 -1
- package/dist/unstable/http/Etag.js.map +1 -1
- package/dist/unstable/http/FetchHttpClient.d.ts.map +1 -1
- package/dist/unstable/http/FetchHttpClient.js.map +1 -1
- package/dist/unstable/http/Headers.d.ts +2 -2
- package/dist/unstable/http/Headers.js +2 -2
- package/dist/unstable/http/Headers.js.map +1 -1
- package/dist/unstable/http/HttpBody.d.ts +5 -3
- package/dist/unstable/http/HttpBody.d.ts.map +1 -1
- package/dist/unstable/http/HttpBody.js +11 -5
- package/dist/unstable/http/HttpBody.js.map +1 -1
- package/dist/unstable/http/HttpClient.d.ts +51 -44
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClient.js +46 -17
- package/dist/unstable/http/HttpClient.js.map +1 -1
- package/dist/unstable/http/HttpClientError.js.map +1 -1
- package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.js +2 -0
- package/dist/unstable/http/HttpClientRequest.js.map +1 -1
- package/dist/unstable/http/HttpClientResponse.d.ts +4 -4
- package/dist/unstable/http/HttpClientResponse.js +2 -2
- package/dist/unstable/http/HttpClientResponse.js.map +1 -1
- package/dist/unstable/http/HttpEffect.d.ts +6 -6
- package/dist/unstable/http/HttpEffect.js +3 -3
- package/dist/unstable/http/HttpEffect.js.map +1 -1
- package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
- package/dist/unstable/http/HttpMethod.d.ts +6 -9
- package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
- package/dist/unstable/http/HttpMethod.js +6 -9
- package/dist/unstable/http/HttpMethod.js.map +1 -1
- package/dist/unstable/http/HttpMiddleware.d.ts +75 -9
- package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/unstable/http/HttpMiddleware.js +164 -39
- package/dist/unstable/http/HttpMiddleware.js.map +1 -1
- package/dist/unstable/http/HttpPlatform.d.ts +76 -0
- package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
- package/dist/unstable/http/HttpPlatform.js +32 -0
- package/dist/unstable/http/HttpPlatform.js.map +1 -1
- package/dist/unstable/http/HttpRouter.d.ts +88 -89
- package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
- package/dist/unstable/http/HttpRouter.js +78 -79
- package/dist/unstable/http/HttpRouter.js.map +1 -1
- package/dist/unstable/http/HttpServer.d.ts +13 -13
- package/dist/unstable/http/HttpServer.js +6 -6
- package/dist/unstable/http/HttpServer.js.map +1 -1
- package/dist/unstable/http/HttpServerError.d.ts +2 -2
- package/dist/unstable/http/HttpServerError.js +2 -2
- package/dist/unstable/http/HttpServerError.js.map +1 -1
- package/dist/unstable/http/HttpServerRequest.d.ts +4 -4
- package/dist/unstable/http/HttpServerRequest.js +4 -4
- package/dist/unstable/http/HttpServerRequest.js.map +1 -1
- package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
- package/dist/unstable/http/HttpServerResponse.d.ts +22 -0
- package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerResponse.js +10 -0
- package/dist/unstable/http/HttpServerResponse.js.map +1 -1
- package/dist/unstable/http/HttpStaticServer.d.ts +35 -7
- package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -1
- package/dist/unstable/http/HttpStaticServer.js +35 -7
- package/dist/unstable/http/HttpStaticServer.js.map +1 -1
- package/dist/unstable/http/HttpTraceContext.js.map +1 -1
- package/dist/unstable/http/Multipart.d.ts +6 -6
- package/dist/unstable/http/Multipart.js +5 -5
- package/dist/unstable/http/Multipart.js.map +1 -1
- package/dist/unstable/http/Template.js.map +1 -1
- package/dist/unstable/http/Url.d.ts +33 -63
- package/dist/unstable/http/Url.d.ts.map +1 -1
- package/dist/unstable/http/Url.js +14 -28
- package/dist/unstable/http/Url.js.map +1 -1
- package/dist/unstable/http/UrlParams.d.ts +10 -18
- package/dist/unstable/http/UrlParams.d.ts.map +1 -1
- package/dist/unstable/http/UrlParams.js +9 -17
- package/dist/unstable/http/UrlParams.js.map +1 -1
- package/dist/unstable/http/index.js.map +1 -1
- package/dist/unstable/http/internal/compression.d.ts +2 -0
- package/dist/unstable/http/internal/compression.d.ts.map +1 -0
- package/dist/unstable/http/internal/compression.js +155 -0
- package/dist/unstable/http/internal/compression.js.map +1 -0
- package/dist/unstable/http/internal/preResponseHandler.js.map +1 -1
- package/dist/unstable/httpapi/HttpApi.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js +10 -11
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.d.ts +4 -5
- package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.js +11 -13
- package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +42 -42
- package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.d.ts +13 -13
- package/dist/unstable/httpapi/HttpApiError.js +13 -13
- package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.d.ts +15 -15
- package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +71 -24
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.js +57 -10
- package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.d.ts +0 -12
- package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.d.ts +6 -6
- package/dist/unstable/httpapi/HttpApiSchema.js +4 -4
- package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSwagger.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiTest.js.map +1 -1
- package/dist/unstable/httpapi/OpenApi.d.ts +13 -13
- package/dist/unstable/httpapi/OpenApi.js +13 -13
- package/dist/unstable/httpapi/OpenApi.js.map +1 -1
- package/dist/unstable/httpapi/index.js.map +1 -1
- package/dist/unstable/httpapi/internal/html.js.map +1 -1
- package/dist/unstable/httpapi/internal/httpApiScalar.js.map +1 -1
- package/dist/unstable/httpapi/internal/httpApiSwagger.js.map +1 -1
- package/dist/unstable/httpapi/internal/mediaType.js.map +1 -1
- package/dist/unstable/observability/Otlp.js.map +1 -1
- package/dist/unstable/observability/OtlpExporter.d.ts +12 -14
- package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.js +17 -4
- package/dist/unstable/observability/OtlpExporter.js.map +1 -1
- package/dist/unstable/observability/OtlpLogger.js.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.d.ts +4 -1
- package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
- package/dist/unstable/observability/OtlpResource.d.ts +16 -7
- package/dist/unstable/observability/OtlpResource.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpResource.js +21 -12
- package/dist/unstable/observability/OtlpResource.js.map +1 -1
- package/dist/unstable/observability/OtlpSerialization.js.map +1 -1
- package/dist/unstable/observability/OtlpTracer.js.map +1 -1
- package/dist/unstable/observability/PrometheusMetrics.d.ts +13 -4
- package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/PrometheusMetrics.js +10 -3
- package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
- package/dist/unstable/observability/index.js.map +1 -1
- package/dist/unstable/observability/internal/otlpEnv.js +1 -1
- package/dist/unstable/observability/internal/otlpEnv.js.map +1 -1
- package/dist/unstable/observability/internal/otlpProtobuf.js.map +1 -1
- package/dist/unstable/observability/internal/protobuf.js +3 -0
- package/dist/unstable/observability/internal/protobuf.js.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.d.ts +8 -3
- package/dist/unstable/persistence/KeyValueStore.d.ts.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.js +22 -13
- package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
- package/dist/unstable/persistence/Persistable.d.ts +8 -8
- package/dist/unstable/persistence/Persistable.js.map +1 -1
- package/dist/unstable/persistence/PersistedCache.js.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.d.ts +6 -6
- package/dist/unstable/persistence/PersistedQueue.js +6 -6
- package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
- package/dist/unstable/persistence/Persistence.d.ts +3 -3
- package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistence.js +91 -15
- package/dist/unstable/persistence/Persistence.js.map +1 -1
- package/dist/unstable/persistence/RateLimiter.d.ts +26 -15
- package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/unstable/persistence/RateLimiter.js +24 -13
- package/dist/unstable/persistence/RateLimiter.js.map +1 -1
- package/dist/unstable/persistence/Redis.d.ts +2 -2
- package/dist/unstable/persistence/Redis.js +1 -1
- package/dist/unstable/persistence/Redis.js.map +1 -1
- package/dist/unstable/persistence/index.js.map +1 -1
- package/dist/unstable/process/ChildProcess.d.ts +64 -21
- package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcess.js +14 -5
- package/dist/unstable/process/ChildProcess.js.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.d.ts +21 -10
- package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.js +1 -1
- package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
- package/dist/unstable/process/index.js.map +1 -1
- package/dist/unstable/reactivity/AsyncResult.d.ts +8 -8
- package/dist/unstable/reactivity/AsyncResult.d.ts.map +1 -1
- package/dist/unstable/reactivity/AsyncResult.js +10 -10
- package/dist/unstable/reactivity/AsyncResult.js.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts +25 -22
- package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.js +14 -13
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.js +4 -1
- package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
- package/dist/unstable/reactivity/AtomRef.js.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.js +24 -3
- package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.js +4 -1
- package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
- package/dist/unstable/reactivity/Hydration.d.ts +1 -1
- package/dist/unstable/reactivity/Hydration.js +1 -1
- package/dist/unstable/reactivity/Hydration.js.map +1 -1
- package/dist/unstable/reactivity/Reactivity.js.map +1 -1
- package/dist/unstable/reactivity/index.js.map +1 -1
- package/dist/unstable/rpc/Rpc.d.ts +35 -33
- package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
- package/dist/unstable/rpc/Rpc.js +4 -2
- package/dist/unstable/rpc/Rpc.js.map +1 -1
- package/dist/unstable/rpc/RpcClient.d.ts +12 -12
- package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.js +12 -11
- package/dist/unstable/rpc/RpcClient.js.map +1 -1
- package/dist/unstable/rpc/RpcClientError.js.map +1 -1
- package/dist/unstable/rpc/RpcGroup.d.ts +8 -8
- package/dist/unstable/rpc/RpcGroup.js +1 -1
- package/dist/unstable/rpc/RpcGroup.js.map +1 -1
- package/dist/unstable/rpc/RpcMessage.d.ts +31 -30
- package/dist/unstable/rpc/RpcMessage.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcMessage.js +6 -6
- package/dist/unstable/rpc/RpcMessage.js.map +1 -1
- package/dist/unstable/rpc/RpcMiddleware.d.ts +10 -10
- package/dist/unstable/rpc/RpcMiddleware.js +1 -1
- package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
- package/dist/unstable/rpc/RpcSchema.d.ts +4 -4
- package/dist/unstable/rpc/RpcSchema.js +3 -3
- package/dist/unstable/rpc/RpcSchema.js.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.d.ts +58 -7
- package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.js +175 -96
- package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
- package/dist/unstable/rpc/RpcServer.d.ts +13 -13
- package/dist/unstable/rpc/RpcServer.js +17 -13
- package/dist/unstable/rpc/RpcServer.js.map +1 -1
- package/dist/unstable/rpc/RpcTest.js.map +1 -1
- package/dist/unstable/rpc/RpcWorker.d.ts +5 -5
- package/dist/unstable/rpc/RpcWorker.js +4 -4
- package/dist/unstable/rpc/RpcWorker.js.map +1 -1
- package/dist/unstable/rpc/Utils.js.map +1 -1
- package/dist/unstable/rpc/index.js.map +1 -1
- package/dist/unstable/schema/Model.d.ts +52 -50
- package/dist/unstable/schema/Model.d.ts.map +1 -1
- package/dist/unstable/schema/Model.js +35 -33
- package/dist/unstable/schema/Model.js.map +1 -1
- package/dist/unstable/schema/VariantSchema.d.ts +5 -5
- package/dist/unstable/schema/VariantSchema.js +2 -2
- package/dist/unstable/schema/VariantSchema.js.map +1 -1
- package/dist/unstable/schema/index.js.map +1 -1
- package/dist/unstable/socket/Socket.d.ts +11 -3
- package/dist/unstable/socket/Socket.d.ts.map +1 -1
- package/dist/unstable/socket/Socket.js +9 -4
- package/dist/unstable/socket/Socket.js.map +1 -1
- package/dist/unstable/socket/SocketServer.js.map +1 -1
- package/dist/unstable/socket/index.js.map +1 -1
- package/dist/unstable/sql/Migrator.js.map +1 -1
- package/dist/unstable/sql/SqlClient.d.ts +1 -1
- package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
- package/dist/unstable/sql/SqlClient.js +2 -2
- package/dist/unstable/sql/SqlClient.js.map +1 -1
- package/dist/unstable/sql/SqlConnection.js.map +1 -1
- package/dist/unstable/sql/SqlError.js.map +1 -1
- package/dist/unstable/sql/SqlModel.d.ts +2 -2
- package/dist/unstable/sql/SqlModel.js +2 -2
- package/dist/unstable/sql/SqlModel.js.map +1 -1
- package/dist/unstable/sql/SqlResolver.d.ts +5 -5
- package/dist/unstable/sql/SqlResolver.js +2 -2
- package/dist/unstable/sql/SqlResolver.js.map +1 -1
- package/dist/unstable/sql/SqlSchema.js.map +1 -1
- package/dist/unstable/sql/SqlStream.js.map +1 -1
- package/dist/unstable/sql/Statement.d.ts +6 -6
- package/dist/unstable/sql/Statement.js +15 -15
- package/dist/unstable/sql/Statement.js.map +1 -1
- package/dist/unstable/sql/index.js.map +1 -1
- package/dist/unstable/workers/Transferable.d.ts +1 -1
- package/dist/unstable/workers/Transferable.js +1 -1
- package/dist/unstable/workers/Transferable.js.map +1 -1
- package/dist/unstable/workers/Worker.d.ts +2 -2
- package/dist/unstable/workers/Worker.js +2 -2
- package/dist/unstable/workers/Worker.js.map +1 -1
- package/dist/unstable/workers/WorkerError.d.ts +7 -7
- package/dist/unstable/workers/WorkerError.js +6 -6
- package/dist/unstable/workers/WorkerError.js.map +1 -1
- package/dist/unstable/workers/WorkerRunner.d.ts +1 -1
- package/dist/unstable/workers/WorkerRunner.js +1 -1
- package/dist/unstable/workers/WorkerRunner.js.map +1 -1
- package/dist/unstable/workers/index.js.map +1 -1
- package/dist/unstable/workflow/Activity.d.ts +2 -2
- package/dist/unstable/workflow/Activity.js +2 -2
- package/dist/unstable/workflow/Activity.js.map +1 -1
- package/dist/unstable/workflow/DurableClock.d.ts +1 -1
- package/dist/unstable/workflow/DurableClock.js +1 -1
- package/dist/unstable/workflow/DurableClock.js.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.d.ts +10 -10
- package/dist/unstable/workflow/DurableDeferred.js +5 -5
- package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
- package/dist/unstable/workflow/DurableQueue.d.ts +22 -20
- package/dist/unstable/workflow/DurableQueue.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableQueue.js +22 -20
- package/dist/unstable/workflow/DurableQueue.js.map +1 -1
- package/dist/unstable/workflow/Workflow.d.ts +21 -21
- package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
- package/dist/unstable/workflow/Workflow.js +13 -14
- package/dist/unstable/workflow/Workflow.js.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
- package/dist/unstable/workflow/WorkflowProxy.d.ts +4 -2
- package/dist/unstable/workflow/WorkflowProxy.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowProxy.js +4 -2
- package/dist/unstable/workflow/WorkflowProxy.js.map +1 -1
- package/dist/unstable/workflow/WorkflowProxyServer.js.map +1 -1
- package/dist/unstable/workflow/index.js.map +1 -1
- package/dist/unstable/workflow/internal/crypto.js.map +1 -1
- package/package.json +5 -6
- package/src/Array.ts +982 -1045
- package/src/BigDecimal.ts +433 -756
- package/src/BigInt.ts +213 -269
- package/src/Boolean.ts +146 -188
- package/src/Cache.ts +409 -255
- package/src/Cause.ts +167 -277
- package/src/Channel.ts +891 -816
- package/src/ChannelSchema.ts +1 -1
- package/src/Chunk.ts +841 -1181
- package/src/Clock.ts +181 -49
- package/src/Combiner.ts +20 -33
- package/src/Config.ts +615 -332
- package/src/ConfigProvider.ts +214 -120
- package/src/Console.ts +289 -39
- package/src/Context.ts +319 -378
- package/src/Cron.ts +68 -77
- package/src/Crypto.ts +13 -15
- package/src/Data.ts +60 -80
- package/src/DateTime.ts +564 -660
- package/src/Deferred.ts +253 -256
- package/src/Duration.ts +216 -308
- package/src/Effect.ts +2893 -3279
- package/src/Encoding.ts +22 -40
- package/src/Equal.ts +49 -39
- package/src/Equivalence.ts +103 -105
- package/src/ErrorReporter.ts +51 -27
- package/src/ExecutionPlan.ts +13 -55
- package/src/Exit.ts +116 -192
- package/src/Fiber.ts +81 -148
- package/src/FiberHandle.ts +152 -105
- package/src/FiberMap.ts +225 -174
- package/src/FiberSet.ts +124 -82
- package/src/FileSystem.ts +155 -263
- package/src/Filter.ts +61 -33
- package/src/Formatter.ts +54 -56
- package/src/Function.ts +76 -145
- package/src/Graph.ts +416 -770
- package/src/HKT.ts +12 -6
- package/src/Hash.ts +52 -83
- package/src/HashMap.ts +319 -411
- package/src/HashRing.ts +1 -0
- package/src/HashSet.ts +177 -284
- package/src/Inspectable.ts +12 -12
- package/src/Iterable.ts +620 -786
- package/src/JsonPatch.ts +58 -112
- package/src/JsonPointer.ts +8 -8
- package/src/JsonSchema.ts +402 -244
- package/src/Latch.ts +23 -35
- package/src/Layer.ts +359 -260
- package/src/LayerMap.ts +49 -29
- package/src/LayerRef.ts +6 -2
- package/src/LogLevel.ts +114 -214
- package/src/Logger.ts +344 -697
- package/src/ManagedRuntime.ts +7 -5
- package/src/Match.ts +217 -252
- package/src/Metric.ts +516 -1089
- package/src/MutableHashMap.ts +218 -255
- package/src/MutableHashSet.ts +84 -89
- package/src/MutableList.ts +73 -370
- package/src/MutableRef.ts +420 -243
- package/src/Newtype.ts +21 -14
- package/src/NonEmptyIterable.ts +7 -137
- package/src/Number.ts +196 -233
- package/src/Optic.ts +243 -383
- package/src/Option.ts +447 -812
- package/src/Order.ts +109 -109
- package/src/Ordering.ts +20 -23
- package/src/Path.ts +38 -41
- package/src/Pipeable.ts +6 -5
- package/src/PlatformError.ts +4 -4
- package/src/Pool.ts +4 -2
- package/src/Predicate.ts +200 -181
- package/src/PrimaryKey.ts +7 -7
- package/src/PubSub.ts +526 -552
- package/src/Pull.ts +24 -18
- package/src/Queue.ts +200 -159
- package/src/Random.ts +49 -74
- package/src/RcMap.ts +121 -63
- package/src/RcRef.ts +24 -13
- package/src/Record.ts +291 -488
- package/src/Redactable.ts +10 -3
- package/src/Redacted.ts +25 -25
- package/src/Reducer.ts +8 -15
- package/src/Ref.ts +221 -361
- package/src/References.ts +102 -168
- package/src/RegExp.ts +10 -14
- package/src/Request.ts +31 -21
- package/src/RequestResolver.ts +202 -91
- package/src/Result.ts +312 -484
- package/src/Runtime.ts +50 -75
- package/src/Schedule.ts +308 -1734
- package/src/Scheduler.ts +20 -7
- package/src/Schema.ts +716 -745
- package/src/SchemaAST.ts +466 -358
- package/src/SchemaError.ts +7 -6
- package/src/SchemaGetter.ts +242 -190
- package/src/SchemaIssue.ts +89 -275
- package/src/SchemaParser.ts +180 -93
- package/src/SchemaRepresentation.ts +22 -40
- package/src/SchemaTransformation.ts +129 -88
- package/src/Scope.ts +123 -151
- package/src/ScopedRef.ts +4 -4
- package/src/Semaphore.ts +152 -51
- package/src/Sink.ts +128 -113
- package/src/Stdio.ts +1 -1
- package/src/Stream.ts +2602 -3123
- package/src/String.ts +275 -312
- package/src/Struct.ts +109 -114
- package/src/SubscriptionRef.ts +284 -252
- package/src/Symbol.ts +3 -3
- package/src/Terminal.ts +2 -2
- package/src/Tracer.ts +102 -55
- package/src/Trie.ts +287 -679
- package/src/Tuple.ts +92 -127
- package/src/TxChunk.ts +201 -121
- package/src/TxDeferred.ts +62 -46
- package/src/TxHashMap.ts +645 -799
- package/src/TxHashSet.ts +443 -356
- package/src/TxPriorityQueue.ts +130 -98
- package/src/TxPubSub.ts +107 -80
- package/src/TxQueue.ts +214 -183
- package/src/TxReentrantLock.ts +97 -66
- package/src/TxRef.ts +51 -32
- package/src/TxSemaphore.ts +129 -95
- package/src/TxSubscriptionRef.ts +97 -70
- package/src/Types.ts +126 -67
- package/src/Unify.ts +45 -65
- package/src/Utils.ts +23 -16
- package/src/internal/core.ts +2 -2
- package/src/internal/dateTime.ts +6 -0
- package/src/internal/effect.ts +93 -48
- package/src/internal/persistence.ts +2 -0
- package/src/internal/references.ts +3 -2
- package/src/internal/schema/fromJsonSchemaDocument.ts +15 -13
- package/src/internal/schema/fromRepresentation.ts +10 -16
- package/src/internal/schema/parser.ts +22 -0
- package/src/internal/schema/toJsonSchemaDocument.ts +60 -6
- package/src/internal/schema/toRepresentation.ts +104 -119
- package/src/internal/trie.ts +10 -11
- package/src/testing/FastCheck.ts +8 -7
- package/src/testing/TestClock.ts +72 -30
- package/src/testing/TestConsole.ts +32 -31
- package/src/testing/TestSchema.ts +29 -29
- package/src/unstable/ai/AiError.ts +95 -118
- package/src/unstable/ai/AnthropicStructuredOutput.ts +1 -1
- package/src/unstable/ai/Chat.ts +132 -97
- package/src/unstable/ai/IdGenerator.ts +32 -28
- package/src/unstable/ai/LanguageModel.ts +107 -67
- package/src/unstable/ai/McpProtocol.ts +48 -0
- package/src/unstable/ai/McpSchema.ts +60 -50
- package/src/unstable/ai/McpServer.ts +930 -304
- package/src/unstable/ai/Model.ts +9 -20
- package/src/unstable/ai/OpenAiStructuredOutput.ts +1 -1
- package/src/unstable/ai/Prompt.ts +145 -43
- package/src/unstable/ai/Response.ts +28 -14
- package/src/unstable/ai/Telemetry.ts +46 -13
- package/src/unstable/ai/Tokenizer.ts +14 -3
- package/src/unstable/ai/Tool.ts +59 -44
- package/src/unstable/ai/Toolkit.ts +26 -8
- package/src/unstable/ai/index.ts +5 -0
- package/src/unstable/ai/internal/mcpProtocol.ts +85 -0
- package/src/unstable/ai/internal/mcpProtocolRegistry.ts +70 -0
- package/src/unstable/ai/internal/structured-output.ts +13 -18
- package/src/unstable/cli/Argument.ts +273 -69
- package/src/unstable/cli/CliError.ts +69 -76
- package/src/unstable/cli/CliOutput.ts +44 -58
- package/src/unstable/cli/Command.ts +705 -107
- package/src/unstable/cli/Flag.ts +418 -138
- package/src/unstable/cli/GlobalFlag.ts +1 -1
- package/src/unstable/cli/HelpDoc.ts +12 -4
- package/src/unstable/cli/Param.ts +292 -78
- package/src/unstable/cli/Primitive.ts +370 -149
- package/src/unstable/cli/Prompt.ts +28 -14
- package/src/unstable/cli/internal/lexer.ts +8 -2
- package/src/unstable/cli/internal/parser.ts +2 -2
- package/src/unstable/cluster/ClusterSchema.ts +8 -8
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +5 -1
- package/src/unstable/cluster/Entity.ts +15 -16
- package/src/unstable/cluster/EntityProxy.ts +4 -2
- package/src/unstable/cluster/EntityResource.ts +2 -2
- package/src/unstable/cluster/Envelope.ts +3 -3
- package/src/unstable/cluster/HttpRunner.ts +6 -4
- package/src/unstable/cluster/Message.ts +9 -9
- package/src/unstable/cluster/MessageStorage.ts +15 -15
- package/src/unstable/cluster/Reply.ts +4 -6
- package/src/unstable/cluster/RunnerHealth.ts +1 -1
- package/src/unstable/cluster/RunnerServer.ts +41 -8
- package/src/unstable/cluster/RunnerStorage.ts +2 -2
- package/src/unstable/cluster/Runners.ts +23 -12
- package/src/unstable/cluster/Sharding.ts +7 -8
- package/src/unstable/cluster/ShardingConfig.ts +3 -3
- package/src/unstable/cluster/SingletonAddress.ts +1 -1
- package/src/unstable/cluster/Snowflake.ts +8 -8
- package/src/unstable/cluster/SqlMessageStorage.ts +1 -1
- package/src/unstable/cluster/SqlRunnerStorage.ts +21 -5
- package/src/unstable/cluster/internal/entityManager.ts +11 -15
- package/src/unstable/encoding/Msgpack.ts +6 -8
- package/src/unstable/encoding/Sse.ts +98 -16
- package/src/unstable/eventlog/Event.ts +20 -20
- package/src/unstable/eventlog/EventGroup.ts +4 -4
- package/src/unstable/eventlog/EventJournal.ts +15 -15
- package/src/unstable/eventlog/EventLog.ts +3 -3
- package/src/unstable/eventlog/EventLogEncryption.ts +1 -1
- package/src/unstable/eventlog/EventLogMessage.ts +2 -2
- package/src/unstable/eventlog/EventLogRemote.ts +1 -1
- package/src/unstable/eventlog/EventLogServer.ts +41 -7
- package/src/unstable/eventlog/EventLogServerEncrypted.ts +13 -5
- package/src/unstable/eventlog/EventLogServerUnencrypted.ts +14 -6
- package/src/unstable/eventlog/EventLogSessionAuth.ts +1 -1
- package/src/unstable/http/Cookies.ts +35 -21
- package/src/unstable/http/Etag.ts +1 -1
- package/src/unstable/http/FetchHttpClient.ts +3 -1
- package/src/unstable/http/Headers.ts +2 -2
- package/src/unstable/http/HttpBody.ts +20 -5
- package/src/unstable/http/HttpClient.ts +83 -55
- package/src/unstable/http/HttpClientRequest.ts +2 -0
- package/src/unstable/http/HttpClientResponse.ts +4 -4
- package/src/unstable/http/HttpEffect.ts +8 -8
- package/src/unstable/http/HttpMethod.ts +6 -9
- package/src/unstable/http/HttpMiddleware.ts +202 -39
- package/src/unstable/http/HttpPlatform.ts +95 -0
- package/src/unstable/http/HttpRouter.ts +102 -98
- package/src/unstable/http/HttpServer.ts +13 -13
- package/src/unstable/http/HttpServerError.ts +2 -2
- package/src/unstable/http/HttpServerRequest.ts +4 -4
- package/src/unstable/http/HttpServerResponse.ts +30 -0
- package/src/unstable/http/HttpStaticServer.ts +35 -7
- package/src/unstable/http/Multipart.ts +6 -6
- package/src/unstable/http/Url.ts +33 -63
- package/src/unstable/http/UrlParams.ts +10 -18
- package/src/unstable/http/internal/compression.ts +196 -0
- package/src/unstable/httpapi/HttpApiBuilder.ts +10 -9
- package/src/unstable/httpapi/HttpApiClient.ts +14 -14
- package/src/unstable/httpapi/HttpApiEndpoint.ts +42 -42
- package/src/unstable/httpapi/HttpApiError.ts +13 -13
- package/src/unstable/httpapi/HttpApiGroup.ts +15 -15
- package/src/unstable/httpapi/HttpApiMiddleware.ts +71 -24
- package/src/unstable/httpapi/HttpApiScalar.ts +0 -12
- package/src/unstable/httpapi/HttpApiSchema.ts +6 -6
- package/src/unstable/httpapi/OpenApi.ts +13 -13
- package/src/unstable/observability/OtlpExporter.ts +31 -19
- package/src/unstable/observability/OtlpMetrics.ts +4 -1
- package/src/unstable/observability/OtlpResource.ts +26 -17
- package/src/unstable/observability/PrometheusMetrics.ts +13 -4
- package/src/unstable/observability/internal/otlpEnv.ts +1 -1
- package/src/unstable/observability/internal/protobuf.ts +3 -0
- package/src/unstable/persistence/KeyValueStore.ts +72 -49
- package/src/unstable/persistence/Persistable.ts +8 -8
- package/src/unstable/persistence/PersistedQueue.ts +6 -6
- package/src/unstable/persistence/Persistence.ts +126 -19
- package/src/unstable/persistence/RateLimiter.ts +26 -15
- package/src/unstable/persistence/Redis.ts +2 -2
- package/src/unstable/process/ChildProcess.ts +64 -21
- package/src/unstable/process/ChildProcessSpawner.ts +21 -10
- package/src/unstable/reactivity/AsyncResult.ts +12 -13
- package/src/unstable/reactivity/Atom.ts +28 -25
- package/src/unstable/reactivity/AtomHttpApi.ts +5 -4
- package/src/unstable/reactivity/AtomRegistry.ts +24 -3
- package/src/unstable/reactivity/AtomRpc.ts +5 -4
- package/src/unstable/reactivity/Hydration.ts +1 -1
- package/src/unstable/rpc/Rpc.ts +35 -33
- package/src/unstable/rpc/RpcClient.ts +16 -15
- package/src/unstable/rpc/RpcGroup.ts +8 -8
- package/src/unstable/rpc/RpcMessage.ts +31 -30
- package/src/unstable/rpc/RpcMiddleware.ts +10 -10
- package/src/unstable/rpc/RpcSchema.ts +4 -4
- package/src/unstable/rpc/RpcSerialization.ts +167 -68
- package/src/unstable/rpc/RpcServer.ts +18 -15
- package/src/unstable/rpc/RpcWorker.ts +5 -5
- package/src/unstable/schema/Model.ts +52 -50
- package/src/unstable/schema/VariantSchema.ts +5 -5
- package/src/unstable/socket/Socket.ts +17 -4
- package/src/unstable/sql/SqlClient.ts +5 -6
- package/src/unstable/sql/SqlModel.ts +2 -2
- package/src/unstable/sql/SqlResolver.ts +5 -5
- package/src/unstable/sql/Statement.ts +24 -23
- package/src/unstable/workers/Transferable.ts +1 -1
- package/src/unstable/workers/Worker.ts +2 -2
- package/src/unstable/workers/WorkerError.ts +7 -7
- package/src/unstable/workers/WorkerRunner.ts +1 -1
- package/src/unstable/workflow/Activity.ts +2 -2
- package/src/unstable/workflow/DurableClock.ts +1 -1
- package/src/unstable/workflow/DurableDeferred.ts +10 -10
- package/src/unstable/workflow/DurableQueue.ts +22 -20
- package/src/unstable/workflow/Workflow.ts +23 -23
- package/src/unstable/workflow/WorkflowEngine.ts +1 -1
- package/src/unstable/workflow/WorkflowProxy.ts +4 -2
- package/dist/internal/version.d.ts +0 -3
- package/dist/internal/version.d.ts.map +0 -1
- package/dist/internal/version.js +0 -2
- package/dist/internal/version.js.map +0 -1
- package/src/internal/version.ts +0 -2
package/dist/Array.js
CHANGED
|
@@ -33,11 +33,10 @@ import * as Tuple from "./Tuple.js";
|
|
|
33
33
|
*
|
|
34
34
|
* **Example** (Accessing the Array constructor)
|
|
35
35
|
*
|
|
36
|
-
* ```ts
|
|
36
|
+
* ```ts import.meta.vitest
|
|
37
37
|
* import { Array } from "effect"
|
|
38
38
|
*
|
|
39
|
-
*
|
|
40
|
-
* console.log(arr) // [undefined, undefined, undefined]
|
|
39
|
+
* Array.Array === globalThis.Array // => true
|
|
41
40
|
* ```
|
|
42
41
|
*
|
|
43
42
|
* @category constructors
|
|
@@ -58,11 +57,10 @@ export const Array = globalThis.Array;
|
|
|
58
57
|
*
|
|
59
58
|
* **Example** (Creating an array from values)
|
|
60
59
|
*
|
|
61
|
-
* ```ts
|
|
60
|
+
* ```ts import.meta.vitest
|
|
62
61
|
* import { Array } from "effect"
|
|
63
62
|
*
|
|
64
|
-
*
|
|
65
|
-
* console.log(result) // [1, 2, 3]
|
|
63
|
+
* Array.make(1, 2, 3) // => [1, 2, 3]
|
|
66
64
|
* ```
|
|
67
65
|
*
|
|
68
66
|
* @see {@link of} — create a single-element array
|
|
@@ -85,11 +83,10 @@ export const make = (...elements) => elements;
|
|
|
85
83
|
*
|
|
86
84
|
* **Example** (Allocating a fixed-size array)
|
|
87
85
|
*
|
|
88
|
-
* ```ts
|
|
86
|
+
* ```ts import.meta.vitest
|
|
89
87
|
* import { Array } from "effect"
|
|
90
88
|
*
|
|
91
|
-
*
|
|
92
|
-
* console.log(result.length) // 3
|
|
89
|
+
* Array.allocate<number>(3).length // => 3
|
|
93
90
|
* ```
|
|
94
91
|
*
|
|
95
92
|
* @see {@link makeBy} — create an array by computing each element
|
|
@@ -113,11 +110,10 @@ export const allocate = n => new Array(n);
|
|
|
113
110
|
*
|
|
114
111
|
* **Example** (Generating values from indices)
|
|
115
112
|
*
|
|
116
|
-
* ```ts
|
|
113
|
+
* ```ts import.meta.vitest
|
|
117
114
|
* import { Array } from "effect"
|
|
118
115
|
*
|
|
119
|
-
*
|
|
120
|
-
* console.log(result) // [0, 2, 4, 6, 8]
|
|
116
|
+
* Array.makeBy(5, (n) => n * 2) // => [0, 2, 4, 6, 8]
|
|
121
117
|
* ```
|
|
122
118
|
*
|
|
123
119
|
* @see {@link range} — create a range of integers
|
|
@@ -148,11 +144,10 @@ export const makeBy = /*#__PURE__*/dual(2, (n, f) => {
|
|
|
148
144
|
*
|
|
149
145
|
* **Example** (Creating a range)
|
|
150
146
|
*
|
|
151
|
-
* ```ts
|
|
147
|
+
* ```ts import.meta.vitest
|
|
152
148
|
* import { Array } from "effect"
|
|
153
149
|
*
|
|
154
|
-
*
|
|
155
|
-
* console.log(result) // [1, 2, 3]
|
|
150
|
+
* Array.range(1, 3) // => [1, 2, 3]
|
|
156
151
|
* ```
|
|
157
152
|
*
|
|
158
153
|
* @see {@link makeBy} — generate values from a function
|
|
@@ -176,11 +171,10 @@ export const range = (start, end) => start <= end ? makeBy(end - start + 1, i =>
|
|
|
176
171
|
*
|
|
177
172
|
* **Example** (Repeating a value)
|
|
178
173
|
*
|
|
179
|
-
* ```ts
|
|
174
|
+
* ```ts import.meta.vitest
|
|
180
175
|
* import { Array } from "effect"
|
|
181
176
|
*
|
|
182
|
-
*
|
|
183
|
-
* console.log(result) // ["a", "a", "a"]
|
|
177
|
+
* Array.replicate("a", 3) // => ["a", "a", "a"]
|
|
184
178
|
* ```
|
|
185
179
|
*
|
|
186
180
|
* @see {@link makeBy} — vary values based on index
|
|
@@ -204,11 +198,10 @@ export const replicate = /*#__PURE__*/dual(2, (a, n) => makeBy(n, () => a));
|
|
|
204
198
|
*
|
|
205
199
|
* **Example** (Converting a Set to an array)
|
|
206
200
|
*
|
|
207
|
-
* ```ts
|
|
201
|
+
* ```ts import.meta.vitest
|
|
208
202
|
* import { Array } from "effect"
|
|
209
203
|
*
|
|
210
|
-
*
|
|
211
|
-
* console.log(result) // [1, 2, 3]
|
|
204
|
+
* Array.fromIterable(new Set([1, 2, 3])) // => [1, 2, 3]
|
|
212
205
|
* ```
|
|
213
206
|
*
|
|
214
207
|
* @see {@link ensure} — wrap a single value or return an existing array
|
|
@@ -234,11 +227,11 @@ export const fromIterable = collection => Array.isArray(collection) ? collection
|
|
|
234
227
|
*
|
|
235
228
|
* **Example** (Normalizing input)
|
|
236
229
|
*
|
|
237
|
-
* ```ts
|
|
230
|
+
* ```ts import.meta.vitest
|
|
238
231
|
* import { Array } from "effect"
|
|
239
232
|
*
|
|
240
|
-
*
|
|
241
|
-
*
|
|
233
|
+
* Array.ensure("a") // => ["a"]
|
|
234
|
+
* Array.ensure(["a", "b", "c"]) // => ["a", "b", "c"]
|
|
242
235
|
* ```
|
|
243
236
|
*
|
|
244
237
|
* @see {@link of} — always wrap in a single-element array
|
|
@@ -263,11 +256,10 @@ export const ensure = self => Array.isArray(self) ? self : [self];
|
|
|
263
256
|
*
|
|
264
257
|
* **Example** (Converting a record to entries)
|
|
265
258
|
*
|
|
266
|
-
* ```ts
|
|
259
|
+
* ```ts import.meta.vitest
|
|
267
260
|
* import { Array } from "effect"
|
|
268
261
|
*
|
|
269
|
-
*
|
|
270
|
-
* console.log(result) // [["a", 1], ["b", 2], ["c", 3]]
|
|
262
|
+
* Array.fromRecord({ a: 1, b: 2, c: 3 }) // => [["a", 1], ["b", 2], ["c", 3]]
|
|
271
263
|
* ```
|
|
272
264
|
*
|
|
273
265
|
* @see {@link Record.toEntries} the equivalent function from the Record module
|
|
@@ -286,11 +278,11 @@ export const fromRecord = Record.toEntries;
|
|
|
286
278
|
*
|
|
287
279
|
* **Example** (Converting an Option to an array)
|
|
288
280
|
*
|
|
289
|
-
* ```ts
|
|
281
|
+
* ```ts import.meta.vitest
|
|
290
282
|
* import { Array, Option } from "effect"
|
|
291
283
|
*
|
|
292
|
-
*
|
|
293
|
-
*
|
|
284
|
+
* Array.fromOption(Option.some(1)) // => [1]
|
|
285
|
+
* Array.fromOption(Option.none()) // => []
|
|
294
286
|
* ```
|
|
295
287
|
*
|
|
296
288
|
* @see {@link getSomes} — extract `Some` values from an array of Options
|
|
@@ -313,15 +305,16 @@ export const fromOption = Option.toArray;
|
|
|
313
305
|
*
|
|
314
306
|
* **Example** (Branching on emptiness)
|
|
315
307
|
*
|
|
316
|
-
* ```ts
|
|
308
|
+
* ```ts import.meta.vitest
|
|
317
309
|
* import { Array } from "effect"
|
|
318
310
|
*
|
|
319
311
|
* const describe = Array.match({
|
|
320
312
|
* onEmpty: () => "empty",
|
|
321
313
|
* onNonEmpty: ([head, ...tail]) => `head: ${head}, tail: ${tail.length}`
|
|
322
314
|
* })
|
|
323
|
-
*
|
|
324
|
-
*
|
|
315
|
+
*
|
|
316
|
+
* describe([]) // => "empty"
|
|
317
|
+
* describe([1, 2, 3]) // => "head: 1, tail: 2"
|
|
325
318
|
* ```
|
|
326
319
|
*
|
|
327
320
|
* @see {@link matchLeft} — destructures into head + tail
|
|
@@ -349,15 +342,16 @@ export const match = /*#__PURE__*/dual(2, (self, {
|
|
|
349
342
|
*
|
|
350
343
|
* **Example** (Destructuring head and tail)
|
|
351
344
|
*
|
|
352
|
-
* ```ts
|
|
345
|
+
* ```ts import.meta.vitest
|
|
353
346
|
* import { Array } from "effect"
|
|
354
347
|
*
|
|
355
348
|
* const matchLeft = Array.matchLeft({
|
|
356
349
|
* onEmpty: () => "empty",
|
|
357
350
|
* onNonEmpty: (head, tail) => `head: ${head}, tail: ${tail.length}`
|
|
358
351
|
* })
|
|
359
|
-
*
|
|
360
|
-
*
|
|
352
|
+
*
|
|
353
|
+
* matchLeft([]) // => "empty"
|
|
354
|
+
* matchLeft([1, 2, 3]) // => "head: 1, tail: 2"
|
|
361
355
|
* ```
|
|
362
356
|
*
|
|
363
357
|
* @see {@link match} — receives the full non-empty array
|
|
@@ -385,15 +379,16 @@ export const matchLeft = /*#__PURE__*/dual(2, (self, {
|
|
|
385
379
|
*
|
|
386
380
|
* **Example** (Destructuring init and last)
|
|
387
381
|
*
|
|
388
|
-
* ```ts
|
|
382
|
+
* ```ts import.meta.vitest
|
|
389
383
|
* import { Array } from "effect"
|
|
390
384
|
*
|
|
391
385
|
* const matchRight = Array.matchRight({
|
|
392
386
|
* onEmpty: () => "empty",
|
|
393
387
|
* onNonEmpty: (init, last) => `init: ${init.length}, last: ${last}`
|
|
394
388
|
* })
|
|
395
|
-
*
|
|
396
|
-
*
|
|
389
|
+
*
|
|
390
|
+
* matchRight([]) // => "empty"
|
|
391
|
+
* matchRight([1, 2, 3]) // => "init: 2, last: 3"
|
|
397
392
|
* ```
|
|
398
393
|
*
|
|
399
394
|
* @see {@link match} — receives the full non-empty array
|
|
@@ -416,11 +411,10 @@ export const matchRight = /*#__PURE__*/dual(2, (self, {
|
|
|
416
411
|
*
|
|
417
412
|
* **Example** (Prepending an element)
|
|
418
413
|
*
|
|
419
|
-
* ```ts
|
|
414
|
+
* ```ts import.meta.vitest
|
|
420
415
|
* import { Array } from "effect"
|
|
421
416
|
*
|
|
422
|
-
*
|
|
423
|
-
* console.log(result) // [1, 2, 3, 4]
|
|
417
|
+
* Array.prepend([2, 3, 4], 1) // => [1, 2, 3, 4]
|
|
424
418
|
* ```
|
|
425
419
|
*
|
|
426
420
|
* @see {@link append} — add to the end
|
|
@@ -443,11 +437,10 @@ export const prepend = /*#__PURE__*/dual(2, (self, head) => [head, ...self]);
|
|
|
443
437
|
*
|
|
444
438
|
* **Example** (Prepending multiple elements)
|
|
445
439
|
*
|
|
446
|
-
* ```ts
|
|
440
|
+
* ```ts import.meta.vitest
|
|
447
441
|
* import { Array } from "effect"
|
|
448
442
|
*
|
|
449
|
-
*
|
|
450
|
-
* console.log(result) // [0, 1, 2, 3]
|
|
443
|
+
* Array.prependAll([2, 3], [0, 1]) // => [0, 1, 2, 3]
|
|
451
444
|
* ```
|
|
452
445
|
*
|
|
453
446
|
* @see {@link prepend} — add a single element to the front
|
|
@@ -467,11 +460,10 @@ export const prependAll = /*#__PURE__*/dual(2, (self, that) => fromIterable(that
|
|
|
467
460
|
*
|
|
468
461
|
* **Example** (Appending an element)
|
|
469
462
|
*
|
|
470
|
-
* ```ts
|
|
463
|
+
* ```ts import.meta.vitest
|
|
471
464
|
* import { Array } from "effect"
|
|
472
465
|
*
|
|
473
|
-
*
|
|
474
|
-
* console.log(result) // [1, 2, 3, 4]
|
|
466
|
+
* Array.append([1, 2, 3], 4) // => [1, 2, 3, 4]
|
|
475
467
|
* ```
|
|
476
468
|
*
|
|
477
469
|
* @see {@link prepend} — add to the front
|
|
@@ -495,11 +487,10 @@ export const append = /*#__PURE__*/dual(2, (self, last) => [...self, last]);
|
|
|
495
487
|
*
|
|
496
488
|
* **Example** (Concatenating arrays)
|
|
497
489
|
*
|
|
498
|
-
* ```ts
|
|
490
|
+
* ```ts import.meta.vitest
|
|
499
491
|
* import { Array } from "effect"
|
|
500
492
|
*
|
|
501
|
-
*
|
|
502
|
-
* console.log(result) // [1, 2, 3, 4]
|
|
493
|
+
* Array.appendAll([1, 2], [3, 4]) // => [1, 2, 3, 4]
|
|
503
494
|
* ```
|
|
504
495
|
*
|
|
505
496
|
* @see {@link append} — add a single element to the end
|
|
@@ -524,11 +515,10 @@ export const appendAll = /*#__PURE__*/dual(2, (self, that) => fromIterable(self)
|
|
|
524
515
|
*
|
|
525
516
|
* **Example** (Running totals)
|
|
526
517
|
*
|
|
527
|
-
* ```ts
|
|
518
|
+
* ```ts import.meta.vitest
|
|
528
519
|
* import { Array } from "effect"
|
|
529
520
|
*
|
|
530
|
-
*
|
|
531
|
-
* console.log(result) // [0, 1, 3, 6, 10]
|
|
521
|
+
* Array.scan([1, 2, 3, 4], 0, (acc, value) => acc + value) // => [0, 1, 3, 6, 10]
|
|
532
522
|
* ```
|
|
533
523
|
*
|
|
534
524
|
* @see {@link scanRight} — right-to-left scan
|
|
@@ -561,11 +551,10 @@ export const scan = /*#__PURE__*/dual(3, (self, b, f) => {
|
|
|
561
551
|
*
|
|
562
552
|
* **Example** (Scanning running totals in reverse)
|
|
563
553
|
*
|
|
564
|
-
* ```ts
|
|
554
|
+
* ```ts import.meta.vitest
|
|
565
555
|
* import { Array } from "effect"
|
|
566
556
|
*
|
|
567
|
-
*
|
|
568
|
-
* console.log(result) // [10, 9, 7, 4, 0]
|
|
557
|
+
* Array.scanRight([1, 2, 3, 4], 0, (acc, value) => acc + value) // => [10, 9, 7, 4, 0]
|
|
569
558
|
* ```
|
|
570
559
|
*
|
|
571
560
|
* @see {@link scan} — left-to-right scan
|
|
@@ -597,11 +586,11 @@ export const scanRight = /*#__PURE__*/dual(3, (self, b, f) => {
|
|
|
597
586
|
*
|
|
598
587
|
* **Example** (Type-guarding an unknown value)
|
|
599
588
|
*
|
|
600
|
-
* ```ts
|
|
589
|
+
* ```ts import.meta.vitest
|
|
601
590
|
* import { Array } from "effect"
|
|
602
591
|
*
|
|
603
|
-
*
|
|
604
|
-
*
|
|
592
|
+
* Array.isArray(null) // => false
|
|
593
|
+
* Array.isArray([1, 2, 3]) // => true
|
|
605
594
|
* ```
|
|
606
595
|
*
|
|
607
596
|
* @see {@link isArrayEmpty} — check for an empty array
|
|
@@ -616,11 +605,11 @@ export const isArray = Array.isArray;
|
|
|
616
605
|
*
|
|
617
606
|
* **Example** (Checking for an empty array)
|
|
618
607
|
*
|
|
619
|
-
* ```ts
|
|
608
|
+
* ```ts import.meta.vitest
|
|
620
609
|
* import { Array } from "effect"
|
|
621
610
|
*
|
|
622
|
-
*
|
|
623
|
-
*
|
|
611
|
+
* Array.isArrayEmpty([]) // => true
|
|
612
|
+
* Array.isArrayEmpty([1, 2, 3]) // => false
|
|
624
613
|
* ```
|
|
625
614
|
*
|
|
626
615
|
* @see {@link isReadonlyArrayEmpty} — readonly variant
|
|
@@ -635,11 +624,11 @@ export const isArrayEmpty = self => self.length === 0;
|
|
|
635
624
|
*
|
|
636
625
|
* **Example** (Checking for an empty readonly array)
|
|
637
626
|
*
|
|
638
|
-
* ```ts
|
|
627
|
+
* ```ts import.meta.vitest
|
|
639
628
|
* import { Array } from "effect"
|
|
640
629
|
*
|
|
641
|
-
*
|
|
642
|
-
*
|
|
630
|
+
* Array.isReadonlyArrayEmpty([]) // => true
|
|
631
|
+
* Array.isReadonlyArrayEmpty([1, 2, 3]) // => false
|
|
643
632
|
* ```
|
|
644
633
|
*
|
|
645
634
|
* @see {@link isArrayEmpty} — mutable variant
|
|
@@ -660,11 +649,11 @@ export const isReadonlyArrayEmpty = isArrayEmpty;
|
|
|
660
649
|
*
|
|
661
650
|
* **Example** (Checking for a non-empty array)
|
|
662
651
|
*
|
|
663
|
-
* ```ts
|
|
652
|
+
* ```ts import.meta.vitest
|
|
664
653
|
* import { Array } from "effect"
|
|
665
654
|
*
|
|
666
|
-
*
|
|
667
|
-
*
|
|
655
|
+
* Array.isArrayNonEmpty([]) // => false
|
|
656
|
+
* Array.isArrayNonEmpty([1, 2, 3]) // => true
|
|
668
657
|
* ```
|
|
669
658
|
*
|
|
670
659
|
* @see {@link isReadonlyArrayNonEmpty} — readonly variant
|
|
@@ -685,11 +674,11 @@ export const isArrayNonEmpty = internalArray.isArrayNonEmpty;
|
|
|
685
674
|
*
|
|
686
675
|
* **Example** (Checking for a non-empty readonly array)
|
|
687
676
|
*
|
|
688
|
-
* ```ts
|
|
677
|
+
* ```ts import.meta.vitest
|
|
689
678
|
* import { Array } from "effect"
|
|
690
679
|
*
|
|
691
|
-
*
|
|
692
|
-
*
|
|
680
|
+
* Array.isReadonlyArrayNonEmpty([]) // => false
|
|
681
|
+
* Array.isReadonlyArrayNonEmpty([1, 2, 3]) // => true
|
|
693
682
|
* ```
|
|
694
683
|
*
|
|
695
684
|
* @see {@link isArrayNonEmpty} — mutable variant
|
|
@@ -708,10 +697,10 @@ export const isReadonlyArrayNonEmpty = internalArray.isArrayNonEmpty;
|
|
|
708
697
|
*
|
|
709
698
|
* **Example** (Getting the length)
|
|
710
699
|
*
|
|
711
|
-
* ```ts
|
|
700
|
+
* ```ts import.meta.vitest
|
|
712
701
|
* import { Array } from "effect"
|
|
713
702
|
*
|
|
714
|
-
*
|
|
703
|
+
* Array.length([1, 2, 3]) // => 3
|
|
715
704
|
* ```
|
|
716
705
|
*
|
|
717
706
|
* @category getters
|
|
@@ -720,7 +709,7 @@ export const isReadonlyArrayNonEmpty = internalArray.isArrayNonEmpty;
|
|
|
720
709
|
export const length = self => self.length;
|
|
721
710
|
/** @internal */
|
|
722
711
|
export function isOutOfBounds(i, as) {
|
|
723
|
-
return i < 0 || i >= as.length;
|
|
712
|
+
return !Number.isFinite(i) || i < 0 || i >= as.length;
|
|
724
713
|
}
|
|
725
714
|
const clamp = (i, as) => Math.floor(Math.min(Math.max(0, i), as.length));
|
|
726
715
|
/**
|
|
@@ -738,11 +727,11 @@ const clamp = (i, as) => Math.floor(Math.min(Math.max(0, i), as.length));
|
|
|
738
727
|
*
|
|
739
728
|
* **Example** (Accessing indexes safely)
|
|
740
729
|
*
|
|
741
|
-
* ```ts
|
|
742
|
-
* import { Array } from "effect"
|
|
730
|
+
* ```ts import.meta.vitest
|
|
731
|
+
* import { Array, Option } from "effect"
|
|
743
732
|
*
|
|
744
|
-
*
|
|
745
|
-
*
|
|
733
|
+
* Array.get([1, 2, 3], 1) // => Option.some(2)
|
|
734
|
+
* Array.get([1, 2, 3], 10) // => Option.none()
|
|
746
735
|
* ```
|
|
747
736
|
*
|
|
748
737
|
* @see {@link getUnsafe} for indexed access that throws when the index is out of bounds
|
|
@@ -771,10 +760,10 @@ export const get = /*#__PURE__*/dual(2, (self, index) => {
|
|
|
771
760
|
*
|
|
772
761
|
* **Example** (Accessing indexes unsafely)
|
|
773
762
|
*
|
|
774
|
-
* ```ts
|
|
763
|
+
* ```ts import.meta.vitest
|
|
775
764
|
* import { Array } from "effect"
|
|
776
765
|
*
|
|
777
|
-
*
|
|
766
|
+
* Array.getUnsafe([1, 2, 3], 1) // => 2
|
|
778
767
|
* // Array.getUnsafe([1, 2, 3], 10) // throws Error
|
|
779
768
|
* ```
|
|
780
769
|
*
|
|
@@ -804,11 +793,10 @@ export const getUnsafe = /*#__PURE__*/dual(2, (self, index) => {
|
|
|
804
793
|
*
|
|
805
794
|
* **Example** (Destructuring head and tail)
|
|
806
795
|
*
|
|
807
|
-
* ```ts
|
|
796
|
+
* ```ts import.meta.vitest
|
|
808
797
|
* import { Array } from "effect"
|
|
809
798
|
*
|
|
810
|
-
*
|
|
811
|
-
* console.log(result) // [1, [2, 3, 4]]
|
|
799
|
+
* Array.unprepend([1, 2, 3, 4]) // => [1, [2, 3, 4]]
|
|
812
800
|
* ```
|
|
813
801
|
*
|
|
814
802
|
* @see {@link unappend} for splitting a non-empty array into init and last
|
|
@@ -834,11 +822,10 @@ export const unprepend = self => [headNonEmpty(self), tailNonEmpty(self)];
|
|
|
834
822
|
*
|
|
835
823
|
* **Example** (Destructuring init and last)
|
|
836
824
|
*
|
|
837
|
-
* ```ts
|
|
825
|
+
* ```ts import.meta.vitest
|
|
838
826
|
* import { Array } from "effect"
|
|
839
827
|
*
|
|
840
|
-
*
|
|
841
|
-
* console.log(result) // [[1, 2, 3], 4]
|
|
828
|
+
* Array.unappend([1, 2, 3, 4]) // => [[1, 2, 3], 4]
|
|
842
829
|
* ```
|
|
843
830
|
*
|
|
844
831
|
* @see {@link unprepend} for splitting a non-empty array into head and tail
|
|
@@ -859,11 +846,11 @@ export const unappend = self => [initNonEmpty(self), lastNonEmpty(self)];
|
|
|
859
846
|
*
|
|
860
847
|
* **Example** (Getting the first element)
|
|
861
848
|
*
|
|
862
|
-
* ```ts
|
|
863
|
-
* import { Array } from "effect"
|
|
849
|
+
* ```ts import.meta.vitest
|
|
850
|
+
* import { Array, Option } from "effect"
|
|
864
851
|
*
|
|
865
|
-
*
|
|
866
|
-
*
|
|
852
|
+
* Array.head([1, 2, 3]) // => Option.some(1)
|
|
853
|
+
* Array.head([]) // => Option.none()
|
|
867
854
|
* ```
|
|
868
855
|
*
|
|
869
856
|
* @see {@link headNonEmpty} — direct access when array is known non-empty
|
|
@@ -884,10 +871,10 @@ export const head = /*#__PURE__*/get(0);
|
|
|
884
871
|
*
|
|
885
872
|
* **Example** (Getting the head of a non-empty array)
|
|
886
873
|
*
|
|
887
|
-
* ```ts
|
|
874
|
+
* ```ts import.meta.vitest
|
|
888
875
|
* import { Array } from "effect"
|
|
889
876
|
*
|
|
890
|
-
*
|
|
877
|
+
* Array.headNonEmpty([1, 2, 3, 4]) // => 1
|
|
891
878
|
* ```
|
|
892
879
|
*
|
|
893
880
|
* @see {@link head} — safe version for possibly-empty arrays
|
|
@@ -906,11 +893,11 @@ export const headNonEmpty = /*#__PURE__*/getUnsafe(0);
|
|
|
906
893
|
*
|
|
907
894
|
* **Example** (Getting the last element)
|
|
908
895
|
*
|
|
909
|
-
* ```ts
|
|
910
|
-
* import { Array } from "effect"
|
|
896
|
+
* ```ts import.meta.vitest
|
|
897
|
+
* import { Array, Option } from "effect"
|
|
911
898
|
*
|
|
912
|
-
*
|
|
913
|
-
*
|
|
899
|
+
* Array.last([1, 2, 3]) // => Option.some(3)
|
|
900
|
+
* Array.last([]) // => Option.none()
|
|
914
901
|
* ```
|
|
915
902
|
*
|
|
916
903
|
* @see {@link lastNonEmpty} — direct access when array is known non-empty
|
|
@@ -931,10 +918,10 @@ export const last = self => isReadonlyArrayNonEmpty(self) ? Option.some(lastNonE
|
|
|
931
918
|
*
|
|
932
919
|
* **Example** (Getting the last of a non-empty array)
|
|
933
920
|
*
|
|
934
|
-
* ```ts
|
|
921
|
+
* ```ts import.meta.vitest
|
|
935
922
|
* import { Array } from "effect"
|
|
936
923
|
*
|
|
937
|
-
*
|
|
924
|
+
* Array.lastNonEmpty([1, 2, 3, 4]) // => 4
|
|
938
925
|
* ```
|
|
939
926
|
*
|
|
940
927
|
* @see {@link last} — safe version for possibly-empty arrays
|
|
@@ -956,11 +943,11 @@ export const lastNonEmpty = self => self[self.length - 1];
|
|
|
956
943
|
*
|
|
957
944
|
* **Example** (Getting the tail)
|
|
958
945
|
*
|
|
959
|
-
* ```ts
|
|
960
|
-
* import { Array } from "effect"
|
|
946
|
+
* ```ts import.meta.vitest
|
|
947
|
+
* import { Array, Option } from "effect"
|
|
961
948
|
*
|
|
962
|
-
*
|
|
963
|
-
*
|
|
949
|
+
* Array.tail([1, 2, 3, 4]) // => Option.some([2, 3, 4])
|
|
950
|
+
* Array.tail([]) // => Option.none()
|
|
964
951
|
* ```
|
|
965
952
|
*
|
|
966
953
|
* @see {@link tailNonEmpty} — when the array is known non-empty
|
|
@@ -982,10 +969,10 @@ export function tail(self) {
|
|
|
982
969
|
*
|
|
983
970
|
* **Example** (Getting the tail of a non-empty array)
|
|
984
971
|
*
|
|
985
|
-
* ```ts
|
|
972
|
+
* ```ts import.meta.vitest
|
|
986
973
|
* import { Array } from "effect"
|
|
987
974
|
*
|
|
988
|
-
*
|
|
975
|
+
* Array.tailNonEmpty([1, 2, 3, 4]) // => [2, 3, 4]
|
|
989
976
|
* ```
|
|
990
977
|
*
|
|
991
978
|
* @see {@link tail} — safe version for possibly-empty arrays
|
|
@@ -1009,11 +996,11 @@ export const tailNonEmpty = self => self.slice(1);
|
|
|
1009
996
|
*
|
|
1010
997
|
* **Example** (Getting init)
|
|
1011
998
|
*
|
|
1012
|
-
* ```ts
|
|
1013
|
-
* import { Array } from "effect"
|
|
999
|
+
* ```ts import.meta.vitest
|
|
1000
|
+
* import { Array, Option } from "effect"
|
|
1014
1001
|
*
|
|
1015
|
-
*
|
|
1016
|
-
*
|
|
1002
|
+
* Array.init([1, 2, 3, 4]) // => Option.some([1, 2, 3])
|
|
1003
|
+
* Array.init([]) // => Option.none()
|
|
1017
1004
|
* ```
|
|
1018
1005
|
*
|
|
1019
1006
|
* @see {@link initNonEmpty} — when the array is known non-empty
|
|
@@ -1035,10 +1022,10 @@ export function init(self) {
|
|
|
1035
1022
|
*
|
|
1036
1023
|
* **Example** (Getting init of a non-empty array)
|
|
1037
1024
|
*
|
|
1038
|
-
* ```ts
|
|
1025
|
+
* ```ts import.meta.vitest
|
|
1039
1026
|
* import { Array } from "effect"
|
|
1040
1027
|
*
|
|
1041
|
-
*
|
|
1028
|
+
* Array.initNonEmpty([1, 2, 3, 4]) // => [1, 2, 3]
|
|
1042
1029
|
* ```
|
|
1043
1030
|
*
|
|
1044
1031
|
* @see {@link init} — safe version for possibly-empty arrays
|
|
@@ -1061,10 +1048,10 @@ export const initNonEmpty = self => self.slice(0, -1);
|
|
|
1061
1048
|
*
|
|
1062
1049
|
* **Example** (Taking from the start)
|
|
1063
1050
|
*
|
|
1064
|
-
* ```ts
|
|
1051
|
+
* ```ts import.meta.vitest
|
|
1065
1052
|
* import { Array } from "effect"
|
|
1066
1053
|
*
|
|
1067
|
-
*
|
|
1054
|
+
* Array.take([1, 2, 3, 4, 5], 3) // => [1, 2, 3]
|
|
1068
1055
|
* ```
|
|
1069
1056
|
*
|
|
1070
1057
|
* @see {@link takeRight} for keeping elements from the end
|
|
@@ -1091,10 +1078,10 @@ export const take = /*#__PURE__*/dual(2, (self, n) => {
|
|
|
1091
1078
|
*
|
|
1092
1079
|
* **Example** (Taking from the end)
|
|
1093
1080
|
*
|
|
1094
|
-
* ```ts
|
|
1081
|
+
* ```ts import.meta.vitest
|
|
1095
1082
|
* import { Array } from "effect"
|
|
1096
1083
|
*
|
|
1097
|
-
*
|
|
1084
|
+
* Array.takeRight([1, 2, 3, 4, 5], 3) // => [3, 4, 5]
|
|
1098
1085
|
* ```
|
|
1099
1086
|
*
|
|
1100
1087
|
* @see {@link take} — keep from the start
|
|
@@ -1124,10 +1111,10 @@ export const takeRight = /*#__PURE__*/dual(2, (self, n) => {
|
|
|
1124
1111
|
*
|
|
1125
1112
|
* **Example** (Taking while condition holds)
|
|
1126
1113
|
*
|
|
1127
|
-
* ```ts
|
|
1114
|
+
* ```ts import.meta.vitest
|
|
1128
1115
|
* import { Array } from "effect"
|
|
1129
1116
|
*
|
|
1130
|
-
*
|
|
1117
|
+
* Array.takeWhile([1, 3, 2, 4, 1, 2], (x) => x < 4) // => [1, 3, 2]
|
|
1131
1118
|
* ```
|
|
1132
1119
|
*
|
|
1133
1120
|
* @see {@link take} for keeping a fixed number of leading elements
|
|
@@ -1208,10 +1195,10 @@ const spanIndex = (self, predicate) => {
|
|
|
1208
1195
|
*
|
|
1209
1196
|
* **Example** (Splitting at predicate boundary)
|
|
1210
1197
|
*
|
|
1211
|
-
* ```ts
|
|
1198
|
+
* ```ts import.meta.vitest
|
|
1212
1199
|
* import { Array } from "effect"
|
|
1213
1200
|
*
|
|
1214
|
-
*
|
|
1201
|
+
* Array.span([1, 3, 2, 4, 5], (x) => x % 2 === 1) // => [[1, 3], [2, 4, 5]]
|
|
1215
1202
|
* ```
|
|
1216
1203
|
*
|
|
1217
1204
|
* @see {@link takeWhile} for keeping only the matching prefix
|
|
@@ -1240,10 +1227,10 @@ export const span = /*#__PURE__*/dual(2, (self, predicate) => {
|
|
|
1240
1227
|
*
|
|
1241
1228
|
* **Example** (Dropping from the start)
|
|
1242
1229
|
*
|
|
1243
|
-
* ```ts
|
|
1230
|
+
* ```ts import.meta.vitest
|
|
1244
1231
|
* import { Array } from "effect"
|
|
1245
1232
|
*
|
|
1246
|
-
*
|
|
1233
|
+
* Array.drop([1, 2, 3, 4, 5], 2) // => [3, 4, 5]
|
|
1247
1234
|
* ```
|
|
1248
1235
|
*
|
|
1249
1236
|
* @see {@link dropRight} for removing a fixed number of elements from the end
|
|
@@ -1270,10 +1257,10 @@ export const drop = /*#__PURE__*/dual(2, (self, n) => {
|
|
|
1270
1257
|
*
|
|
1271
1258
|
* **Example** (Dropping from the end)
|
|
1272
1259
|
*
|
|
1273
|
-
* ```ts
|
|
1260
|
+
* ```ts import.meta.vitest
|
|
1274
1261
|
* import { Array } from "effect"
|
|
1275
1262
|
*
|
|
1276
|
-
*
|
|
1263
|
+
* Array.dropRight([1, 2, 3, 4, 5], 2) // => [1, 2, 3]
|
|
1277
1264
|
* ```
|
|
1278
1265
|
*
|
|
1279
1266
|
* @see {@link drop} — remove from the start
|
|
@@ -1299,10 +1286,10 @@ export const dropRight = /*#__PURE__*/dual(2, (self, n) => {
|
|
|
1299
1286
|
*
|
|
1300
1287
|
* **Example** (Dropping while condition holds)
|
|
1301
1288
|
*
|
|
1302
|
-
* ```ts
|
|
1289
|
+
* ```ts import.meta.vitest
|
|
1303
1290
|
* import { Array } from "effect"
|
|
1304
1291
|
*
|
|
1305
|
-
*
|
|
1292
|
+
* Array.dropWhile([1, 2, 3, 4, 5], (x) => x < 4) // => [4, 5]
|
|
1306
1293
|
* ```
|
|
1307
1294
|
*
|
|
1308
1295
|
* @see {@link takeWhile} — keep the matching prefix instead
|
|
@@ -1363,16 +1350,16 @@ export const dropWhileFilter = /*#__PURE__*/dual(2, (self, f) => {
|
|
|
1363
1350
|
*
|
|
1364
1351
|
* **Example** (Finding an index)
|
|
1365
1352
|
*
|
|
1366
|
-
* ```ts
|
|
1367
|
-
* import { Array } from "effect"
|
|
1353
|
+
* ```ts import.meta.vitest
|
|
1354
|
+
* import { Array, Option } from "effect"
|
|
1368
1355
|
*
|
|
1369
|
-
*
|
|
1356
|
+
* Array.findFirstIndex([5, 3, 8, 9], (x) => x > 5) // => Option.some(2)
|
|
1370
1357
|
* ```
|
|
1371
1358
|
*
|
|
1372
1359
|
* @see {@link findLastIndex} — search from the end
|
|
1373
1360
|
* @see {@link findFirst} — get the element itself
|
|
1374
1361
|
*
|
|
1375
|
-
* @category
|
|
1362
|
+
* @category searching
|
|
1376
1363
|
* @since 2.0.0
|
|
1377
1364
|
*/
|
|
1378
1365
|
export const findFirstIndex = /*#__PURE__*/dual(2, (self, predicate) => {
|
|
@@ -1395,16 +1382,16 @@ export const findFirstIndex = /*#__PURE__*/dual(2, (self, predicate) => {
|
|
|
1395
1382
|
*
|
|
1396
1383
|
* **Example** (Finding the last matching index)
|
|
1397
1384
|
*
|
|
1398
|
-
* ```ts
|
|
1399
|
-
* import { Array } from "effect"
|
|
1385
|
+
* ```ts import.meta.vitest
|
|
1386
|
+
* import { Array, Option } from "effect"
|
|
1400
1387
|
*
|
|
1401
|
-
*
|
|
1388
|
+
* Array.findLastIndex([1, 3, 8, 9], (x) => x < 5) // => Option.some(1)
|
|
1402
1389
|
* ```
|
|
1403
1390
|
*
|
|
1404
1391
|
* @see {@link findFirstIndex} — search from the start
|
|
1405
1392
|
* @see {@link findLast} — get the element itself
|
|
1406
1393
|
*
|
|
1407
|
-
* @category
|
|
1394
|
+
* @category searching
|
|
1408
1395
|
* @since 2.0.0
|
|
1409
1396
|
*/
|
|
1410
1397
|
export const findLastIndex = /*#__PURE__*/dual(2, (self, predicate) => {
|
|
@@ -1433,17 +1420,17 @@ export const findLastIndex = /*#__PURE__*/dual(2, (self, predicate) => {
|
|
|
1433
1420
|
*
|
|
1434
1421
|
* **Example** (Finding the first match)
|
|
1435
1422
|
*
|
|
1436
|
-
* ```ts
|
|
1437
|
-
* import { Array } from "effect"
|
|
1423
|
+
* ```ts import.meta.vitest
|
|
1424
|
+
* import { Array, Option } from "effect"
|
|
1438
1425
|
*
|
|
1439
|
-
*
|
|
1426
|
+
* Array.findFirst([1, 2, 3, 4, 5], (x) => x > 3) // => Option.some(4)
|
|
1440
1427
|
* ```
|
|
1441
1428
|
*
|
|
1442
1429
|
* @see {@link findLast} — search from the end
|
|
1443
1430
|
* @see {@link findFirstIndex} — get the index instead
|
|
1444
1431
|
* @see {@link findFirstWithIndex} — get both element and index
|
|
1445
1432
|
*
|
|
1446
|
-
* @category
|
|
1433
|
+
* @category searching
|
|
1447
1434
|
* @since 2.0.0
|
|
1448
1435
|
*/
|
|
1449
1436
|
export const findFirst = moduleIterable.findFirst;
|
|
@@ -1463,16 +1450,16 @@ export const findFirst = moduleIterable.findFirst;
|
|
|
1463
1450
|
*
|
|
1464
1451
|
* **Example** (Finding element with its index)
|
|
1465
1452
|
*
|
|
1466
|
-
* ```ts
|
|
1467
|
-
* import { Array } from "effect"
|
|
1453
|
+
* ```ts import.meta.vitest
|
|
1454
|
+
* import { Array, Option } from "effect"
|
|
1468
1455
|
*
|
|
1469
|
-
*
|
|
1456
|
+
* Array.findFirstWithIndex([1, 2, 3, 4, 5], (x) => x > 3) // => Option.some([4, 3])
|
|
1470
1457
|
* ```
|
|
1471
1458
|
*
|
|
1472
1459
|
* @see {@link findFirst} — get only the element
|
|
1473
1460
|
* @see {@link findFirstIndex} — get only the index
|
|
1474
1461
|
*
|
|
1475
|
-
* @category
|
|
1462
|
+
* @category searching
|
|
1476
1463
|
* @since 3.17.0
|
|
1477
1464
|
*/
|
|
1478
1465
|
export const findFirstWithIndex = /*#__PURE__*/dual(2, (self, f) => {
|
|
@@ -1507,16 +1494,16 @@ export const findFirstWithIndex = /*#__PURE__*/dual(2, (self, f) => {
|
|
|
1507
1494
|
*
|
|
1508
1495
|
* **Example** (Finding the last match)
|
|
1509
1496
|
*
|
|
1510
|
-
* ```ts
|
|
1511
|
-
* import { Array } from "effect"
|
|
1497
|
+
* ```ts import.meta.vitest
|
|
1498
|
+
* import { Array, Option } from "effect"
|
|
1512
1499
|
*
|
|
1513
|
-
*
|
|
1500
|
+
* Array.findLast([1, 2, 3, 4, 5], (n) => n % 2 === 0) // => Option.some(4)
|
|
1514
1501
|
* ```
|
|
1515
1502
|
*
|
|
1516
1503
|
* @see {@link findFirst} — search from the start
|
|
1517
1504
|
* @see {@link findLastIndex} — get the index instead
|
|
1518
1505
|
*
|
|
1519
|
-
* @category
|
|
1506
|
+
* @category searching
|
|
1520
1507
|
* @since 2.0.0
|
|
1521
1508
|
*/
|
|
1522
1509
|
export const findLast = /*#__PURE__*/dual(2, (self, f) => {
|
|
@@ -1550,24 +1537,25 @@ export const findLast = /*#__PURE__*/dual(2, (self, f) => {
|
|
|
1550
1537
|
*
|
|
1551
1538
|
* **Example** (Inserting at an index)
|
|
1552
1539
|
*
|
|
1553
|
-
* ```ts
|
|
1554
|
-
* import { Array } from "effect"
|
|
1540
|
+
* ```ts import.meta.vitest
|
|
1541
|
+
* import { Array, Option } from "effect"
|
|
1555
1542
|
*
|
|
1556
|
-
*
|
|
1543
|
+
* Array.insertAt(["a", "b", "c", "e"], 3, "d") // => Option.some(["a", "b", "c", "d", "e"])
|
|
1557
1544
|
* ```
|
|
1558
1545
|
*
|
|
1559
1546
|
* @see {@link replace} — replace an existing element
|
|
1560
1547
|
* @see {@link modify} — transform an element at an index
|
|
1561
1548
|
*
|
|
1562
|
-
* @category
|
|
1549
|
+
* @category transforming
|
|
1563
1550
|
* @since 2.0.0
|
|
1564
1551
|
*/
|
|
1565
1552
|
export const insertAt = /*#__PURE__*/dual(3, (self, i, b) => {
|
|
1566
1553
|
const out = Array.from(self); // copy because `splice` mutates the array
|
|
1567
|
-
|
|
1554
|
+
const index = Math.floor(i);
|
|
1555
|
+
if (index !== out.length && isOutOfBounds(index, out)) {
|
|
1568
1556
|
return Option.none();
|
|
1569
1557
|
}
|
|
1570
|
-
out.splice(
|
|
1558
|
+
out.splice(index, 0, b);
|
|
1571
1559
|
return Option.some(out);
|
|
1572
1560
|
});
|
|
1573
1561
|
/**
|
|
@@ -1584,16 +1572,16 @@ export const insertAt = /*#__PURE__*/dual(3, (self, i, b) => {
|
|
|
1584
1572
|
*
|
|
1585
1573
|
* **Example** (Replacing an element)
|
|
1586
1574
|
*
|
|
1587
|
-
* ```ts
|
|
1588
|
-
* import { Array } from "effect"
|
|
1575
|
+
* ```ts import.meta.vitest
|
|
1576
|
+
* import { Array, Option } from "effect"
|
|
1589
1577
|
*
|
|
1590
|
-
*
|
|
1578
|
+
* Array.replace([1, 2, 3], 1, 4) // => Option.some([1, 4, 3])
|
|
1591
1579
|
* ```
|
|
1592
1580
|
*
|
|
1593
1581
|
* @see {@link modify} — transform an element with a function
|
|
1594
1582
|
* @see {@link insertAt} — insert without removing
|
|
1595
1583
|
*
|
|
1596
|
-
* @category
|
|
1584
|
+
* @category transforming
|
|
1597
1585
|
* @since 2.0.0
|
|
1598
1586
|
*/
|
|
1599
1587
|
export const replace = /*#__PURE__*/dual(3, (self, i, b) => modify(self, i, () => b));
|
|
@@ -1612,28 +1600,32 @@ export const replace = /*#__PURE__*/dual(3, (self, i, b) => modify(self, i, () =
|
|
|
1612
1600
|
*
|
|
1613
1601
|
* **Example** (Modifying an element)
|
|
1614
1602
|
*
|
|
1615
|
-
* ```ts
|
|
1616
|
-
* import { Array } from "effect"
|
|
1603
|
+
* ```ts import.meta.vitest
|
|
1604
|
+
* import { Array, Option } from "effect"
|
|
1605
|
+
*
|
|
1606
|
+
* const values = [1, 2, 3, 4]
|
|
1607
|
+
* const double = (n: number) => n * 2
|
|
1617
1608
|
*
|
|
1618
|
-
*
|
|
1619
|
-
*
|
|
1609
|
+
* Array.modify(values, 2, double) // => Option.some([1, 2, 6, 4])
|
|
1610
|
+
* Array.modify(values, 5, double) // => Option.none()
|
|
1620
1611
|
* ```
|
|
1621
1612
|
*
|
|
1622
1613
|
* @see {@link replace} — set a fixed value at an index
|
|
1623
1614
|
* @see {@link modifyHeadNonEmpty} — modify the first element
|
|
1624
1615
|
* @see {@link modifyLastNonEmpty} — modify the last element
|
|
1625
1616
|
*
|
|
1626
|
-
* @category
|
|
1617
|
+
* @category transforming
|
|
1627
1618
|
* @since 2.0.0
|
|
1628
1619
|
*/
|
|
1629
1620
|
export const modify = /*#__PURE__*/dual(3, (self, i, f) => {
|
|
1630
1621
|
const arr = Array.from(self);
|
|
1631
|
-
|
|
1622
|
+
const index = Math.floor(i);
|
|
1623
|
+
if (isOutOfBounds(index, arr)) {
|
|
1632
1624
|
return Option.none();
|
|
1633
1625
|
}
|
|
1634
1626
|
const out = arr;
|
|
1635
|
-
const b = f(arr[
|
|
1636
|
-
out[
|
|
1627
|
+
const b = f(arr[index]);
|
|
1628
|
+
out[index] = b;
|
|
1637
1629
|
return Option.some(out);
|
|
1638
1630
|
});
|
|
1639
1631
|
/**
|
|
@@ -1647,25 +1639,26 @@ export const modify = /*#__PURE__*/dual(3, (self, i, f) => {
|
|
|
1647
1639
|
*
|
|
1648
1640
|
* **Example** (Removing an element)
|
|
1649
1641
|
*
|
|
1650
|
-
* ```ts
|
|
1642
|
+
* ```ts import.meta.vitest
|
|
1651
1643
|
* import { Array } from "effect"
|
|
1652
1644
|
*
|
|
1653
|
-
*
|
|
1654
|
-
*
|
|
1645
|
+
* Array.remove([1, 2, 3, 4], 2) // => [1, 2, 4]
|
|
1646
|
+
* Array.remove([1, 2, 3, 4], 5) // => [1, 2, 3, 4]
|
|
1655
1647
|
* ```
|
|
1656
1648
|
*
|
|
1657
1649
|
* @see {@link insertAt} — insert an element
|
|
1658
1650
|
* @see {@link filter} — remove elements by predicate
|
|
1659
1651
|
*
|
|
1660
|
-
* @category
|
|
1652
|
+
* @category transforming
|
|
1661
1653
|
* @since 2.0.0
|
|
1662
1654
|
*/
|
|
1663
1655
|
export const remove = /*#__PURE__*/dual(2, (self, i) => {
|
|
1664
1656
|
const out = Array.from(self);
|
|
1665
|
-
|
|
1657
|
+
const index = Math.floor(i);
|
|
1658
|
+
if (isOutOfBounds(index, out)) {
|
|
1666
1659
|
return out;
|
|
1667
1660
|
}
|
|
1668
|
-
out.splice(
|
|
1661
|
+
out.splice(index, 1);
|
|
1669
1662
|
return out;
|
|
1670
1663
|
});
|
|
1671
1664
|
/**
|
|
@@ -1682,13 +1675,13 @@ export const remove = /*#__PURE__*/dual(2, (self, i) => {
|
|
|
1682
1675
|
*
|
|
1683
1676
|
* **Example** (Reversing an array)
|
|
1684
1677
|
*
|
|
1685
|
-
* ```ts
|
|
1678
|
+
* ```ts import.meta.vitest
|
|
1686
1679
|
* import { Array } from "effect"
|
|
1687
1680
|
*
|
|
1688
|
-
*
|
|
1681
|
+
* Array.reverse([1, 2, 3, 4]) // => [4, 3, 2, 1]
|
|
1689
1682
|
* ```
|
|
1690
1683
|
*
|
|
1691
|
-
* @category
|
|
1684
|
+
* @category transforming
|
|
1692
1685
|
* @since 2.0.0
|
|
1693
1686
|
*/
|
|
1694
1687
|
export const reverse = self => Array.from(self).reverse();
|
|
@@ -1706,10 +1699,10 @@ export const reverse = self => Array.from(self).reverse();
|
|
|
1706
1699
|
*
|
|
1707
1700
|
* **Example** (Sorting numbers)
|
|
1708
1701
|
*
|
|
1709
|
-
* ```ts
|
|
1702
|
+
* ```ts import.meta.vitest
|
|
1710
1703
|
* import { Array, Order } from "effect"
|
|
1711
1704
|
*
|
|
1712
|
-
*
|
|
1705
|
+
* Array.sort([3, 1, 4, 1, 5], Order.Number) // => [1, 1, 3, 4, 5]
|
|
1713
1706
|
* ```
|
|
1714
1707
|
*
|
|
1715
1708
|
* @see {@link sortWith} — sort by a mapping function
|
|
@@ -1738,17 +1731,16 @@ export const sort = /*#__PURE__*/dual(2, (self, O) => {
|
|
|
1738
1731
|
*
|
|
1739
1732
|
* **Example** (Sorting strings by length)
|
|
1740
1733
|
*
|
|
1741
|
-
* ```ts
|
|
1734
|
+
* ```ts import.meta.vitest
|
|
1742
1735
|
* import { Array, Order } from "effect"
|
|
1743
1736
|
*
|
|
1744
|
-
*
|
|
1745
|
-
* // ["b", "cc", "aaa"]
|
|
1737
|
+
* Array.sortWith(["aaa", "b", "cc"], (s) => s.length, Order.Number) // => ["b", "cc", "aaa"]
|
|
1746
1738
|
* ```
|
|
1747
1739
|
*
|
|
1748
1740
|
* @see {@link sort} for sorting with an `Order` that compares the elements directly
|
|
1749
1741
|
* @see {@link sortBy} for sorting with multiple `Order`s applied in sequence
|
|
1750
1742
|
*
|
|
1751
|
-
* @category
|
|
1743
|
+
* @category sorting
|
|
1752
1744
|
* @since 2.0.0
|
|
1753
1745
|
*/
|
|
1754
1746
|
export const sortWith = /*#__PURE__*/dual(3, (self, f, order) => Array.from(self).map(a => [a, f(a)]).sort(([, a], [, b]) => order(a, b)).map(([_]) => _));
|
|
@@ -1768,7 +1760,7 @@ export const sortWith = /*#__PURE__*/dual(3, (self, f, order) => Array.from(self
|
|
|
1768
1760
|
*
|
|
1769
1761
|
* **Example** (Sorting by multiple keys)
|
|
1770
1762
|
*
|
|
1771
|
-
* ```ts
|
|
1763
|
+
* ```ts import.meta.vitest
|
|
1772
1764
|
* import { Array, Order, pipe } from "effect"
|
|
1773
1765
|
*
|
|
1774
1766
|
* const users = [
|
|
@@ -1777,15 +1769,15 @@ export const sortWith = /*#__PURE__*/dual(3, (self, f, order) => Array.from(self
|
|
|
1777
1769
|
* { name: "Charlie", age: 30 }
|
|
1778
1770
|
* ]
|
|
1779
1771
|
*
|
|
1780
|
-
* const
|
|
1772
|
+
* const sortedUsers = pipe(
|
|
1781
1773
|
* users,
|
|
1782
1774
|
* Array.sortBy(
|
|
1783
1775
|
* Order.mapInput(Order.Number, (user: (typeof users)[number]) => user.age),
|
|
1784
1776
|
* Order.mapInput(Order.String, (user: (typeof users)[number]) => user.name)
|
|
1785
1777
|
* )
|
|
1786
1778
|
* )
|
|
1787
|
-
*
|
|
1788
|
-
*
|
|
1779
|
+
*
|
|
1780
|
+
* sortedUsers.map((user) => user.name).join(",") // => "Bob,Alice,Charlie"
|
|
1789
1781
|
* ```
|
|
1790
1782
|
*
|
|
1791
1783
|
* @see {@link sort} — sort by a single `Order`
|
|
@@ -1818,10 +1810,10 @@ export const sortBy = (...orders) => {
|
|
|
1818
1810
|
*
|
|
1819
1811
|
* **Example** (Zipping two arrays)
|
|
1820
1812
|
*
|
|
1821
|
-
* ```ts
|
|
1813
|
+
* ```ts import.meta.vitest
|
|
1822
1814
|
* import { Array } from "effect"
|
|
1823
1815
|
*
|
|
1824
|
-
*
|
|
1816
|
+
* Array.zip([1, 2, 3], ["a", "b"]) // => [[1, "a"], [2, "b"]]
|
|
1825
1817
|
* ```
|
|
1826
1818
|
*
|
|
1827
1819
|
* @see {@link zipWith} — zip with a combiner function
|
|
@@ -1842,10 +1834,10 @@ export const zip = /*#__PURE__*/dual(2, (self, that) => zipWith(self, that, Tupl
|
|
|
1842
1834
|
*
|
|
1843
1835
|
* **Example** (Zipping with addition)
|
|
1844
1836
|
*
|
|
1845
|
-
* ```ts
|
|
1837
|
+
* ```ts import.meta.vitest
|
|
1846
1838
|
* import { Array } from "effect"
|
|
1847
1839
|
*
|
|
1848
|
-
*
|
|
1840
|
+
* Array.zipWith([1, 2, 3], [4, 5, 6], (a, b) => a + b) // => [5, 7, 9]
|
|
1849
1841
|
* ```
|
|
1850
1842
|
*
|
|
1851
1843
|
* @see {@link zip} — zip into tuples
|
|
@@ -1871,10 +1863,10 @@ export const zipWith = /*#__PURE__*/dual(3, (self, that, f) => {
|
|
|
1871
1863
|
*
|
|
1872
1864
|
* **Example** (Unzipping pairs)
|
|
1873
1865
|
*
|
|
1874
|
-
* ```ts
|
|
1866
|
+
* ```ts import.meta.vitest
|
|
1875
1867
|
* import { Array } from "effect"
|
|
1876
1868
|
*
|
|
1877
|
-
*
|
|
1869
|
+
* Array.unzip([[1, "a"], [2, "b"], [3, "c"]]) // => [[1, 2, 3], ["a", "b", "c"]]
|
|
1878
1870
|
* ```
|
|
1879
1871
|
*
|
|
1880
1872
|
* @see {@link zip} — combine two arrays into pairs
|
|
@@ -1909,15 +1901,15 @@ export const unzip = self => {
|
|
|
1909
1901
|
*
|
|
1910
1902
|
* **Example** (Interspersing a separator)
|
|
1911
1903
|
*
|
|
1912
|
-
* ```ts
|
|
1904
|
+
* ```ts import.meta.vitest
|
|
1913
1905
|
* import { Array } from "effect"
|
|
1914
1906
|
*
|
|
1915
|
-
*
|
|
1907
|
+
* Array.intersperse([1, 2, 3], 0) // => [1, 0, 2, 0, 3]
|
|
1916
1908
|
* ```
|
|
1917
1909
|
*
|
|
1918
1910
|
* @see {@link join} — intersperse and join into a string
|
|
1919
1911
|
*
|
|
1920
|
-
* @category
|
|
1912
|
+
* @category transforming
|
|
1921
1913
|
* @since 2.0.0
|
|
1922
1914
|
*/
|
|
1923
1915
|
export const intersperse = /*#__PURE__*/dual(2, (self, middle) => {
|
|
@@ -1945,16 +1937,16 @@ export const intersperse = /*#__PURE__*/dual(2, (self, middle) => {
|
|
|
1945
1937
|
*
|
|
1946
1938
|
* **Example** (Modifying the head)
|
|
1947
1939
|
*
|
|
1948
|
-
* ```ts
|
|
1940
|
+
* ```ts import.meta.vitest
|
|
1949
1941
|
* import { Array } from "effect"
|
|
1950
1942
|
*
|
|
1951
|
-
*
|
|
1943
|
+
* Array.modifyHeadNonEmpty([1, 2, 3], (n) => n * 10) // => [10, 2, 3]
|
|
1952
1944
|
* ```
|
|
1953
1945
|
*
|
|
1954
1946
|
* @see {@link setHeadNonEmpty} — replace with a fixed value
|
|
1955
1947
|
* @see {@link modifyLastNonEmpty} — modify the last element
|
|
1956
1948
|
*
|
|
1957
|
-
* @category
|
|
1949
|
+
* @category transforming
|
|
1958
1950
|
* @since 4.0.0
|
|
1959
1951
|
*/
|
|
1960
1952
|
export const modifyHeadNonEmpty = /*#__PURE__*/dual(2, (self, f) => [f(headNonEmpty(self)), ...tailNonEmpty(self)]);
|
|
@@ -1968,16 +1960,16 @@ export const modifyHeadNonEmpty = /*#__PURE__*/dual(2, (self, f) => [f(headNonEm
|
|
|
1968
1960
|
*
|
|
1969
1961
|
* **Example** (Setting the head)
|
|
1970
1962
|
*
|
|
1971
|
-
* ```ts
|
|
1963
|
+
* ```ts import.meta.vitest
|
|
1972
1964
|
* import { Array } from "effect"
|
|
1973
1965
|
*
|
|
1974
|
-
*
|
|
1966
|
+
* Array.setHeadNonEmpty([1, 2, 3], 10) // => [10, 2, 3]
|
|
1975
1967
|
* ```
|
|
1976
1968
|
*
|
|
1977
1969
|
* @see {@link modifyHeadNonEmpty} — transform the head with a function
|
|
1978
1970
|
* @see {@link setLastNonEmpty} — replace the last element
|
|
1979
1971
|
*
|
|
1980
|
-
* @category
|
|
1972
|
+
* @category transforming
|
|
1981
1973
|
* @since 4.0.0
|
|
1982
1974
|
*/
|
|
1983
1975
|
export const setHeadNonEmpty = /*#__PURE__*/dual(2, (self, b) => modifyHeadNonEmpty(self, () => b));
|
|
@@ -1992,16 +1984,16 @@ export const setHeadNonEmpty = /*#__PURE__*/dual(2, (self, b) => modifyHeadNonEm
|
|
|
1992
1984
|
*
|
|
1993
1985
|
* **Example** (Modifying the last element)
|
|
1994
1986
|
*
|
|
1995
|
-
* ```ts
|
|
1987
|
+
* ```ts import.meta.vitest
|
|
1996
1988
|
* import { Array } from "effect"
|
|
1997
1989
|
*
|
|
1998
|
-
*
|
|
1990
|
+
* Array.modifyLastNonEmpty([1, 2, 3], (n) => n * 2) // => [1, 2, 6]
|
|
1999
1991
|
* ```
|
|
2000
1992
|
*
|
|
2001
1993
|
* @see {@link setLastNonEmpty} — replace with a fixed value
|
|
2002
1994
|
* @see {@link modifyHeadNonEmpty} — modify the first element
|
|
2003
1995
|
*
|
|
2004
|
-
* @category
|
|
1996
|
+
* @category transforming
|
|
2005
1997
|
* @since 4.0.0
|
|
2006
1998
|
*/
|
|
2007
1999
|
export const modifyLastNonEmpty = /*#__PURE__*/dual(2, (self, f) => append(initNonEmpty(self), f(lastNonEmpty(self))));
|
|
@@ -2015,16 +2007,16 @@ export const modifyLastNonEmpty = /*#__PURE__*/dual(2, (self, f) => append(initN
|
|
|
2015
2007
|
*
|
|
2016
2008
|
* **Example** (Setting the last element)
|
|
2017
2009
|
*
|
|
2018
|
-
* ```ts
|
|
2010
|
+
* ```ts import.meta.vitest
|
|
2019
2011
|
* import { Array } from "effect"
|
|
2020
2012
|
*
|
|
2021
|
-
*
|
|
2013
|
+
* Array.setLastNonEmpty([1, 2, 3], 4) // => [1, 2, 4]
|
|
2022
2014
|
* ```
|
|
2023
2015
|
*
|
|
2024
2016
|
* @see {@link modifyLastNonEmpty} — transform the last element with a function
|
|
2025
2017
|
* @see {@link setHeadNonEmpty} — replace the first element
|
|
2026
2018
|
*
|
|
2027
|
-
* @category
|
|
2019
|
+
* @category transforming
|
|
2028
2020
|
* @since 4.0.0
|
|
2029
2021
|
*/
|
|
2030
2022
|
export const setLastNonEmpty = /*#__PURE__*/dual(2, (self, b) => modifyLastNonEmpty(self, () => b));
|
|
@@ -2045,16 +2037,16 @@ export const setLastNonEmpty = /*#__PURE__*/dual(2, (self, b) => modifyLastNonEm
|
|
|
2045
2037
|
*
|
|
2046
2038
|
* **Example** (Rotating elements)
|
|
2047
2039
|
*
|
|
2048
|
-
* ```ts
|
|
2040
|
+
* ```ts import.meta.vitest
|
|
2049
2041
|
* import { Array } from "effect"
|
|
2050
2042
|
*
|
|
2051
|
-
*
|
|
2043
|
+
* Array.rotate(["a", "b", "c", "d"], 2) // => ["c", "d", "a", "b"]
|
|
2052
2044
|
* ```
|
|
2053
2045
|
*
|
|
2054
2046
|
* @see {@link take} for taking a fixed number of elements from the start
|
|
2055
2047
|
* @see {@link drop} for dropping a fixed number of elements from the start
|
|
2056
2048
|
*
|
|
2057
|
-
* @category
|
|
2049
|
+
* @category transforming
|
|
2058
2050
|
* @since 2.0.0
|
|
2059
2051
|
*/
|
|
2060
2052
|
export const rotate = /*#__PURE__*/dual(2, (self, n) => {
|
|
@@ -2084,16 +2076,17 @@ export const rotate = /*#__PURE__*/dual(2, (self, n) => {
|
|
|
2084
2076
|
*
|
|
2085
2077
|
* **Example** (Checking with custom equality)
|
|
2086
2078
|
*
|
|
2087
|
-
* ```ts
|
|
2079
|
+
* ```ts import.meta.vitest
|
|
2088
2080
|
* import { Array, pipe } from "effect"
|
|
2089
2081
|
*
|
|
2090
2082
|
* const containsNumber = Array.containsWith((a: number, b: number) => a === b)
|
|
2091
|
-
*
|
|
2083
|
+
*
|
|
2084
|
+
* pipe([1, 2, 3, 4], containsNumber(3)) // => true
|
|
2092
2085
|
* ```
|
|
2093
2086
|
*
|
|
2094
2087
|
* @see {@link contains} for the `Equal.equivalence()` variant
|
|
2095
2088
|
*
|
|
2096
|
-
* @category
|
|
2089
|
+
* @category predicates
|
|
2097
2090
|
* @since 2.0.0
|
|
2098
2091
|
*/
|
|
2099
2092
|
export const containsWith = isEquivalent => dual(2, (self, a) => {
|
|
@@ -2115,15 +2108,15 @@ export const containsWith = isEquivalent => dual(2, (self, a) => {
|
|
|
2115
2108
|
*
|
|
2116
2109
|
* **Example** (Checking membership)
|
|
2117
2110
|
*
|
|
2118
|
-
* ```ts
|
|
2111
|
+
* ```ts import.meta.vitest
|
|
2119
2112
|
* import { Array, pipe } from "effect"
|
|
2120
2113
|
*
|
|
2121
|
-
*
|
|
2114
|
+
* pipe(["a", "b", "c", "d"], Array.contains("c")) // => true
|
|
2122
2115
|
* ```
|
|
2123
2116
|
*
|
|
2124
2117
|
* @see {@link containsWith} — use custom equality
|
|
2125
2118
|
*
|
|
2126
|
-
* @category
|
|
2119
|
+
* @category predicates
|
|
2127
2120
|
* @since 2.0.0
|
|
2128
2121
|
*/
|
|
2129
2122
|
export const contains = /*#__PURE__*/containsWith(/*#__PURE__*/Equal.asEquivalence());
|
|
@@ -2143,20 +2136,16 @@ export const contains = /*#__PURE__*/containsWith(/*#__PURE__*/Equal.asEquivalen
|
|
|
2143
2136
|
*
|
|
2144
2137
|
* **Example** (Chopping an array)
|
|
2145
2138
|
*
|
|
2146
|
-
* ```ts
|
|
2139
|
+
* ```ts import.meta.vitest
|
|
2147
2140
|
* import { Array } from "effect"
|
|
2148
2141
|
*
|
|
2149
|
-
*
|
|
2150
|
-
* [1, 2, 3, 4, 5],
|
|
2151
|
-
* (as): [number, Array<number>] => [as[0] * 2, as.slice(1)]
|
|
2152
|
-
* )
|
|
2153
|
-
* console.log(result) // [2, 4, 6, 8, 10]
|
|
2142
|
+
* Array.chop([1, 2, 3, 4, 5], (as): [number, Array<number>] => [as[0] * 2, as.slice(1)]) // => [2, 4, 6, 8, 10]
|
|
2154
2143
|
* ```
|
|
2155
2144
|
*
|
|
2156
2145
|
* @see {@link chunksOf} — split into fixed-size chunks
|
|
2157
2146
|
* @see {@link splitAt} — split at an index
|
|
2158
2147
|
*
|
|
2159
|
-
* @category
|
|
2148
|
+
* @category splitting
|
|
2160
2149
|
* @since 2.0.0
|
|
2161
2150
|
*/
|
|
2162
2151
|
export const chop = /*#__PURE__*/dual(2, (self, f) => {
|
|
@@ -2188,10 +2177,10 @@ export const chop = /*#__PURE__*/dual(2, (self, f) => {
|
|
|
2188
2177
|
*
|
|
2189
2178
|
* **Example** (Splitting at an index)
|
|
2190
2179
|
*
|
|
2191
|
-
* ```ts
|
|
2180
|
+
* ```ts import.meta.vitest
|
|
2192
2181
|
* import { Array } from "effect"
|
|
2193
2182
|
*
|
|
2194
|
-
*
|
|
2183
|
+
* Array.splitAt([1, 2, 3, 4, 5], 3) // => [[1, 2, 3], [4, 5]]
|
|
2195
2184
|
* ```
|
|
2196
2185
|
*
|
|
2197
2186
|
* @see {@link splitAtNonEmpty} — for non-empty arrays
|
|
@@ -2222,11 +2211,10 @@ export const splitAt = /*#__PURE__*/dual(2, (self, n) => {
|
|
|
2222
2211
|
*
|
|
2223
2212
|
* **Example** (Splitting a non-empty array)
|
|
2224
2213
|
*
|
|
2225
|
-
* ```ts
|
|
2214
|
+
* ```ts import.meta.vitest
|
|
2226
2215
|
* import { Array } from "effect"
|
|
2227
2216
|
*
|
|
2228
|
-
*
|
|
2229
|
-
* // [["a", "b", "c"], ["d", "e"]]
|
|
2217
|
+
* Array.splitAtNonEmpty(["a", "b", "c", "d", "e"], 3) // => [["a", "b", "c"], ["d", "e"]]
|
|
2230
2218
|
* ```
|
|
2231
2219
|
*
|
|
2232
2220
|
* @see {@link splitAt} — for possibly-empty arrays
|
|
@@ -2251,10 +2239,10 @@ export const splitAtNonEmpty = /*#__PURE__*/dual(2, (self, n) => {
|
|
|
2251
2239
|
*
|
|
2252
2240
|
* **Example** (Splitting into groups)
|
|
2253
2241
|
*
|
|
2254
|
-
* ```ts
|
|
2242
|
+
* ```ts import.meta.vitest
|
|
2255
2243
|
* import { Array } from "effect"
|
|
2256
2244
|
*
|
|
2257
|
-
*
|
|
2245
|
+
* Array.split([1, 2, 3, 4, 5, 6, 7, 8], 3) // => [[1, 2, 3], [4, 5, 6], [7, 8]]
|
|
2258
2246
|
* ```
|
|
2259
2247
|
*
|
|
2260
2248
|
* @see {@link chunksOf} — split into fixed-size chunks
|
|
@@ -2277,10 +2265,10 @@ export const split = /*#__PURE__*/dual(2, (self, n) => {
|
|
|
2277
2265
|
*
|
|
2278
2266
|
* **Example** (Splitting at a condition)
|
|
2279
2267
|
*
|
|
2280
|
-
* ```ts
|
|
2268
|
+
* ```ts import.meta.vitest
|
|
2281
2269
|
* import { Array } from "effect"
|
|
2282
2270
|
*
|
|
2283
|
-
*
|
|
2271
|
+
* Array.splitWhere([1, 2, 3, 4, 5], (n) => n > 3) // => [[1, 2, 3], [4, 5]]
|
|
2284
2272
|
* ```
|
|
2285
2273
|
*
|
|
2286
2274
|
* @see {@link span} — splits at the first element that fails the predicate
|
|
@@ -2305,18 +2293,19 @@ export const splitWhere = /*#__PURE__*/dual(2, (self, predicate) => span(self, (
|
|
|
2305
2293
|
*
|
|
2306
2294
|
* **Example** (Copying an array)
|
|
2307
2295
|
*
|
|
2308
|
-
* ```ts
|
|
2296
|
+
* ```ts import.meta.vitest
|
|
2309
2297
|
* import { Array } from "effect"
|
|
2310
2298
|
*
|
|
2311
2299
|
* const original = [1, 2, 3]
|
|
2312
2300
|
* const copied = Array.copy(original)
|
|
2313
|
-
*
|
|
2314
|
-
*
|
|
2301
|
+
*
|
|
2302
|
+
* copied // => [1, 2, 3]
|
|
2303
|
+
* original === copied // => false
|
|
2315
2304
|
* ```
|
|
2316
2305
|
*
|
|
2317
2306
|
* @see {@link fromIterable} — returns the same reference for arrays
|
|
2318
2307
|
*
|
|
2319
|
-
* @category
|
|
2308
|
+
* @category transforming
|
|
2320
2309
|
* @since 2.0.0
|
|
2321
2310
|
*/
|
|
2322
2311
|
export const copy = self => self.slice();
|
|
@@ -2334,16 +2323,16 @@ export const copy = self => self.slice();
|
|
|
2334
2323
|
*
|
|
2335
2324
|
* **Example** (Padding an array)
|
|
2336
2325
|
*
|
|
2337
|
-
* ```ts
|
|
2326
|
+
* ```ts import.meta.vitest
|
|
2338
2327
|
* import { Array } from "effect"
|
|
2339
2328
|
*
|
|
2340
|
-
*
|
|
2329
|
+
* Array.pad([1, 2, 3], 6, 0) // => [1, 2, 3, 0, 0, 0]
|
|
2341
2330
|
* ```
|
|
2342
2331
|
*
|
|
2343
2332
|
* @see {@link take} — truncate without padding
|
|
2344
2333
|
* @see {@link replicate} — create an array of a single repeated value
|
|
2345
2334
|
*
|
|
2346
|
-
* @category
|
|
2335
|
+
* @category transforming
|
|
2347
2336
|
* @since 3.8.4
|
|
2348
2337
|
*/
|
|
2349
2338
|
export const pad = /*#__PURE__*/dual(3, (self, n, fill) => {
|
|
@@ -2368,10 +2357,10 @@ export const pad = /*#__PURE__*/dual(3, (self, n, fill) => {
|
|
|
2368
2357
|
*
|
|
2369
2358
|
* **Example** (Chunking an array)
|
|
2370
2359
|
*
|
|
2371
|
-
* ```ts
|
|
2360
|
+
* ```ts import.meta.vitest
|
|
2372
2361
|
* import { Array } from "effect"
|
|
2373
2362
|
*
|
|
2374
|
-
*
|
|
2363
|
+
* Array.chunksOf([1, 2, 3, 4, 5], 2) // => [[1, 2], [3, 4], [5]]
|
|
2375
2364
|
* ```
|
|
2376
2365
|
*
|
|
2377
2366
|
* @see {@link split} — split into a given number of groups
|
|
@@ -2401,11 +2390,13 @@ export const chunksOf = /*#__PURE__*/dual(2, (self, n) => {
|
|
|
2401
2390
|
*
|
|
2402
2391
|
* **Example** (Creating sliding windows)
|
|
2403
2392
|
*
|
|
2404
|
-
* ```ts
|
|
2393
|
+
* ```ts import.meta.vitest
|
|
2405
2394
|
* import { Array } from "effect"
|
|
2406
2395
|
*
|
|
2407
|
-
*
|
|
2408
|
-
*
|
|
2396
|
+
* const values = [1, 2, 3, 4, 5]
|
|
2397
|
+
*
|
|
2398
|
+
* Array.window(values, 3) // => [[1, 2, 3], [2, 3, 4], [3, 4, 5]]
|
|
2399
|
+
* Array.window(values, 6) // => []
|
|
2409
2400
|
* ```
|
|
2410
2401
|
*
|
|
2411
2402
|
* @see {@link chunksOf} — non-overlapping chunks
|
|
@@ -2437,11 +2428,13 @@ export const window = /*#__PURE__*/dual(2, (self, n) => {
|
|
|
2437
2428
|
*
|
|
2438
2429
|
* **Example** (Grouping consecutive equal elements)
|
|
2439
2430
|
*
|
|
2440
|
-
* ```ts
|
|
2431
|
+
* ```ts import.meta.vitest
|
|
2441
2432
|
* import { Array } from "effect"
|
|
2442
2433
|
*
|
|
2443
|
-
*
|
|
2444
|
-
*
|
|
2434
|
+
* Array.groupWith(
|
|
2435
|
+
* ["a", "a", "b", "b", "b", "c", "a"],
|
|
2436
|
+
* (x, y) => x === y
|
|
2437
|
+
* ) // => [["a", "a"], ["b", "b", "b"], ["c"], ["a"]]
|
|
2445
2438
|
* ```
|
|
2446
2439
|
*
|
|
2447
2440
|
* @see {@link group} for grouping adjacent elements with `Equal.equivalence()`
|
|
@@ -2478,10 +2471,10 @@ export const groupWith = /*#__PURE__*/dual(2, (self, isEquivalent) => chop(self,
|
|
|
2478
2471
|
*
|
|
2479
2472
|
* **Example** (Grouping adjacent equal elements)
|
|
2480
2473
|
*
|
|
2481
|
-
* ```ts
|
|
2474
|
+
* ```ts import.meta.vitest
|
|
2482
2475
|
* import { Array } from "effect"
|
|
2483
2476
|
*
|
|
2484
|
-
*
|
|
2477
|
+
* Array.group([1, 1, 2, 2, 2, 3, 1]) // => [[1, 1], [2, 2, 2], [3], [1]]
|
|
2485
2478
|
* ```
|
|
2486
2479
|
*
|
|
2487
2480
|
* @see {@link groupWith} — use custom equality
|
|
@@ -2506,7 +2499,7 @@ export const group = /*#__PURE__*/groupWith(/*#__PURE__*/Equal.asEquivalence());
|
|
|
2506
2499
|
*
|
|
2507
2500
|
* **Example** (Grouping by a property)
|
|
2508
2501
|
*
|
|
2509
|
-
* ```ts
|
|
2502
|
+
* ```ts import.meta.vitest
|
|
2510
2503
|
* import { Array } from "effect"
|
|
2511
2504
|
*
|
|
2512
2505
|
* const people = [
|
|
@@ -2515,9 +2508,7 @@ export const group = /*#__PURE__*/groupWith(/*#__PURE__*/Equal.asEquivalence());
|
|
|
2515
2508
|
* { name: "Charlie", group: "A" }
|
|
2516
2509
|
* ]
|
|
2517
2510
|
*
|
|
2518
|
-
*
|
|
2519
|
-
* console.log(result)
|
|
2520
|
-
* // { A: [{ name: "Alice", group: "A" }, { name: "Charlie", group: "A" }], B: [{ name: "Bob", group: "B" }] }
|
|
2511
|
+
* Object.keys(Array.groupBy(people, (person) => person.group)).join(",") // => "A,B"
|
|
2521
2512
|
* ```
|
|
2522
2513
|
*
|
|
2523
2514
|
* @see {@link group} — group adjacent equal elements
|
|
@@ -2584,17 +2575,17 @@ const hashBucketsHas = (buckets, value) => {
|
|
|
2584
2575
|
*
|
|
2585
2576
|
* **Example** (Computing unions with custom equality)
|
|
2586
2577
|
*
|
|
2587
|
-
* ```ts
|
|
2578
|
+
* ```ts import.meta.vitest
|
|
2588
2579
|
* import { Array } from "effect"
|
|
2589
2580
|
*
|
|
2590
|
-
*
|
|
2581
|
+
* Array.unionWith([1, 2], [2, 3], (a, b) => a === b) // => [1, 2, 3]
|
|
2591
2582
|
* ```
|
|
2592
2583
|
*
|
|
2593
2584
|
* @see {@link union} for the `Equal.equivalence()` variant
|
|
2594
2585
|
* @see {@link intersectionWith} for keeping elements present in both arrays
|
|
2595
2586
|
* @see {@link differenceWith} for keeping elements present only in the first array
|
|
2596
2587
|
*
|
|
2597
|
-
* @category
|
|
2588
|
+
* @category set operations
|
|
2598
2589
|
* @since 2.0.0
|
|
2599
2590
|
*/
|
|
2600
2591
|
export const unionWith = /*#__PURE__*/dual(3, (self, that, isEquivalent) => {
|
|
@@ -2615,17 +2606,17 @@ export const unionWith = /*#__PURE__*/dual(3, (self, that, isEquivalent) => {
|
|
|
2615
2606
|
*
|
|
2616
2607
|
* **Example** (Computing array unions)
|
|
2617
2608
|
*
|
|
2618
|
-
* ```ts
|
|
2609
|
+
* ```ts import.meta.vitest
|
|
2619
2610
|
* import { Array } from "effect"
|
|
2620
2611
|
*
|
|
2621
|
-
*
|
|
2612
|
+
* Array.union([1, 2], [2, 3]) // => [1, 2, 3]
|
|
2622
2613
|
* ```
|
|
2623
2614
|
*
|
|
2624
2615
|
* @see {@link unionWith} — use custom equality
|
|
2625
2616
|
* @see {@link intersection} — elements in both arrays
|
|
2626
2617
|
* @see {@link difference} — elements only in the first array
|
|
2627
2618
|
*
|
|
2628
|
-
* @category
|
|
2619
|
+
* @category set operations
|
|
2629
2620
|
* @since 2.0.0
|
|
2630
2621
|
*/
|
|
2631
2622
|
export const union = /*#__PURE__*/dual(2, (self, that) => {
|
|
@@ -2647,20 +2638,21 @@ export const union = /*#__PURE__*/dual(2, (self, that) => {
|
|
|
2647
2638
|
*
|
|
2648
2639
|
* **Example** (Computing intersections with custom equality)
|
|
2649
2640
|
*
|
|
2650
|
-
* ```ts
|
|
2641
|
+
* ```ts import.meta.vitest
|
|
2651
2642
|
* import { Array } from "effect"
|
|
2652
2643
|
*
|
|
2653
2644
|
* const array1 = [{ id: 1 }, { id: 2 }, { id: 3 }]
|
|
2654
2645
|
* const array2 = [{ id: 3 }, { id: 4 }, { id: 1 }]
|
|
2655
2646
|
* const isEquivalent = (a: { id: number }, b: { id: number }) => a.id === b.id
|
|
2656
|
-
*
|
|
2647
|
+
*
|
|
2648
|
+
* Array.intersectionWith(isEquivalent)(array2)(array1) // => [{ id: 1 }, { id: 3 }]
|
|
2657
2649
|
* ```
|
|
2658
2650
|
*
|
|
2659
2651
|
* @see {@link intersection} for the `Equal.equivalence()` variant
|
|
2660
2652
|
* @see {@link unionWith} for keeping values from either array with custom equality
|
|
2661
2653
|
* @see {@link differenceWith} for keeping values only from the first array with custom equality
|
|
2662
2654
|
*
|
|
2663
|
-
* @category
|
|
2655
|
+
* @category set operations
|
|
2664
2656
|
* @since 2.0.0
|
|
2665
2657
|
*/
|
|
2666
2658
|
export const intersectionWith = isEquivalent => {
|
|
@@ -2681,17 +2673,17 @@ export const intersectionWith = isEquivalent => {
|
|
|
2681
2673
|
*
|
|
2682
2674
|
* **Example** (Computing array intersections)
|
|
2683
2675
|
*
|
|
2684
|
-
* ```ts
|
|
2676
|
+
* ```ts import.meta.vitest
|
|
2685
2677
|
* import { Array } from "effect"
|
|
2686
2678
|
*
|
|
2687
|
-
*
|
|
2679
|
+
* Array.intersection([1, 2, 3], [3, 4, 1]) // => [1, 3]
|
|
2688
2680
|
* ```
|
|
2689
2681
|
*
|
|
2690
2682
|
* @see {@link intersectionWith} — use custom equality
|
|
2691
2683
|
* @see {@link union} — elements in either array
|
|
2692
2684
|
* @see {@link difference} — elements only in the first array
|
|
2693
2685
|
*
|
|
2694
|
-
* @category
|
|
2686
|
+
* @category set operations
|
|
2695
2687
|
* @since 2.0.0
|
|
2696
2688
|
*/
|
|
2697
2689
|
export const intersection = /*#__PURE__*/dual(2, (self, that) => {
|
|
@@ -2714,18 +2706,17 @@ export const intersection = /*#__PURE__*/dual(2, (self, that) => {
|
|
|
2714
2706
|
*
|
|
2715
2707
|
* **Example** (Computing differences with custom equality)
|
|
2716
2708
|
*
|
|
2717
|
-
* ```ts
|
|
2709
|
+
* ```ts import.meta.vitest
|
|
2718
2710
|
* import { Array } from "effect"
|
|
2719
2711
|
*
|
|
2720
|
-
*
|
|
2721
|
-
* console.log(diff) // [1]
|
|
2712
|
+
* Array.differenceWith<number>((a, b) => a === b)([1, 2, 3], [2, 3, 4]) // => [1]
|
|
2722
2713
|
* ```
|
|
2723
2714
|
*
|
|
2724
2715
|
* @see {@link difference} for the `Equal.equivalence()` variant
|
|
2725
2716
|
* @see {@link unionWith} for keeping values from either array with custom equality
|
|
2726
2717
|
* @see {@link intersectionWith} for keeping values present in both arrays with custom equality
|
|
2727
2718
|
*
|
|
2728
|
-
* @category
|
|
2719
|
+
* @category set operations
|
|
2729
2720
|
* @since 2.0.0
|
|
2730
2721
|
*/
|
|
2731
2722
|
export const differenceWith = isEquivalent => {
|
|
@@ -2746,17 +2737,17 @@ export const differenceWith = isEquivalent => {
|
|
|
2746
2737
|
*
|
|
2747
2738
|
* **Example** (Computing array differences)
|
|
2748
2739
|
*
|
|
2749
|
-
* ```ts
|
|
2740
|
+
* ```ts import.meta.vitest
|
|
2750
2741
|
* import { Array } from "effect"
|
|
2751
2742
|
*
|
|
2752
|
-
*
|
|
2743
|
+
* Array.difference([1, 2, 3], [2, 3, 4]) // => [1]
|
|
2753
2744
|
* ```
|
|
2754
2745
|
*
|
|
2755
2746
|
* @see {@link differenceWith} — use custom equality
|
|
2756
2747
|
* @see {@link union} — elements in either array
|
|
2757
2748
|
* @see {@link intersection} — elements in both arrays
|
|
2758
2749
|
*
|
|
2759
|
-
* @category
|
|
2750
|
+
* @category set operations
|
|
2760
2751
|
* @since 2.0.0
|
|
2761
2752
|
*/
|
|
2762
2753
|
export const difference = /*#__PURE__*/dual(2, (self, that) => {
|
|
@@ -2780,11 +2771,10 @@ export const difference = /*#__PURE__*/dual(2, (self, that) => {
|
|
|
2780
2771
|
*
|
|
2781
2772
|
* **Example** (Creating an empty array)
|
|
2782
2773
|
*
|
|
2783
|
-
* ```ts
|
|
2774
|
+
* ```ts import.meta.vitest
|
|
2784
2775
|
* import { Array } from "effect"
|
|
2785
2776
|
*
|
|
2786
|
-
*
|
|
2787
|
-
* console.log(result) // []
|
|
2777
|
+
* Array.empty<number>() // => []
|
|
2788
2778
|
* ```
|
|
2789
2779
|
*
|
|
2790
2780
|
* @see {@link of} — create a single-element array
|
|
@@ -2799,10 +2789,10 @@ export const empty = () => [];
|
|
|
2799
2789
|
*
|
|
2800
2790
|
* **Example** (Creating a single-element array)
|
|
2801
2791
|
*
|
|
2802
|
-
* ```ts
|
|
2792
|
+
* ```ts import.meta.vitest
|
|
2803
2793
|
* import { Array } from "effect"
|
|
2804
2794
|
*
|
|
2805
|
-
*
|
|
2795
|
+
* Array.of(1) // => [1]
|
|
2806
2796
|
* ```
|
|
2807
2797
|
*
|
|
2808
2798
|
* @see {@link make} — create from multiple values
|
|
@@ -2826,10 +2816,10 @@ export const of = a => [a];
|
|
|
2826
2816
|
*
|
|
2827
2817
|
* **Example** (Doubling values)
|
|
2828
2818
|
*
|
|
2829
|
-
* ```ts
|
|
2819
|
+
* ```ts import.meta.vitest
|
|
2830
2820
|
* import { Array } from "effect"
|
|
2831
2821
|
*
|
|
2832
|
-
*
|
|
2822
|
+
* Array.map([1, 2, 3], (x) => x * 2) // => [2, 4, 6]
|
|
2833
2823
|
* ```
|
|
2834
2824
|
*
|
|
2835
2825
|
* @see {@link flatMap} — map and flatten
|
|
@@ -2853,10 +2843,10 @@ export const map = /*#__PURE__*/dual(2, (self, f) => self.map(f));
|
|
|
2853
2843
|
*
|
|
2854
2844
|
* **Example** (Flat mapping an array)
|
|
2855
2845
|
*
|
|
2856
|
-
* ```ts
|
|
2846
|
+
* ```ts import.meta.vitest
|
|
2857
2847
|
* import { Array } from "effect"
|
|
2858
2848
|
*
|
|
2859
|
-
*
|
|
2849
|
+
* Array.flatMap([1, 2, 3], (x) => [x, x * 2]) // => [1, 2, 2, 4, 3, 6]
|
|
2860
2850
|
* ```
|
|
2861
2851
|
*
|
|
2862
2852
|
* @see {@link map} — transform without flattening
|
|
@@ -2888,10 +2878,10 @@ export const flatMap = /*#__PURE__*/dual(2, (self, f) => {
|
|
|
2888
2878
|
*
|
|
2889
2879
|
* **Example** (Flattening nested arrays)
|
|
2890
2880
|
*
|
|
2891
|
-
* ```ts
|
|
2881
|
+
* ```ts import.meta.vitest
|
|
2892
2882
|
* import { Array } from "effect"
|
|
2893
2883
|
*
|
|
2894
|
-
*
|
|
2884
|
+
* Array.flatten([[1, 2], [], [3, 4], [], [5, 6]]) // => [1, 2, 3, 4, 5, 6]
|
|
2895
2885
|
* ```
|
|
2896
2886
|
*
|
|
2897
2887
|
* @see {@link flatMap} — map then flatten in one step
|
|
@@ -2910,10 +2900,10 @@ export const flatten = /*#__PURE__*/flatMap(identity);
|
|
|
2910
2900
|
*
|
|
2911
2901
|
* **Example** (Extracting Some values)
|
|
2912
2902
|
*
|
|
2913
|
-
* ```ts
|
|
2903
|
+
* ```ts import.meta.vitest
|
|
2914
2904
|
* import { Array, Option } from "effect"
|
|
2915
2905
|
*
|
|
2916
|
-
*
|
|
2906
|
+
* Array.getSomes([Option.some(1), Option.none(), Option.some(2)]) // => [1, 2]
|
|
2917
2907
|
* ```
|
|
2918
2908
|
*
|
|
2919
2909
|
* @see {@link fromOption} — convert a single Option
|
|
@@ -2942,11 +2932,10 @@ export const getSomes = self => {
|
|
|
2942
2932
|
*
|
|
2943
2933
|
* **Example** (Extracting failures)
|
|
2944
2934
|
*
|
|
2945
|
-
* ```ts
|
|
2935
|
+
* ```ts import.meta.vitest
|
|
2946
2936
|
* import { Array, Result } from "effect"
|
|
2947
2937
|
*
|
|
2948
|
-
*
|
|
2949
|
-
* // ["err"]
|
|
2938
|
+
* Array.getFailures([Result.succeed(1), Result.fail("err"), Result.succeed(2)]) // => ["err"]
|
|
2950
2939
|
* ```
|
|
2951
2940
|
*
|
|
2952
2941
|
* @see {@link getSuccesses} — extract success values
|
|
@@ -2975,11 +2964,10 @@ export const getFailures = self => {
|
|
|
2975
2964
|
*
|
|
2976
2965
|
* **Example** (Extracting successes)
|
|
2977
2966
|
*
|
|
2978
|
-
* ```ts
|
|
2967
|
+
* ```ts import.meta.vitest
|
|
2979
2968
|
* import { Array, Result } from "effect"
|
|
2980
2969
|
*
|
|
2981
|
-
*
|
|
2982
|
-
* // [1, 2]
|
|
2970
|
+
* Array.getSuccesses([Result.succeed(1), Result.fail("err"), Result.succeed(2)]) // => [1, 2]
|
|
2983
2971
|
* ```
|
|
2984
2972
|
*
|
|
2985
2973
|
* @see {@link getFailures} — extract failure values
|
|
@@ -3011,11 +2999,10 @@ export const getSuccesses = self => {
|
|
|
3011
2999
|
*
|
|
3012
3000
|
* **Example** (Filtering and transforming)
|
|
3013
3001
|
*
|
|
3014
|
-
* ```ts
|
|
3002
|
+
* ```ts import.meta.vitest
|
|
3015
3003
|
* import { Array, Result } from "effect"
|
|
3016
3004
|
*
|
|
3017
|
-
*
|
|
3018
|
-
* // [20, 40]
|
|
3005
|
+
* Array.filterMap([1, 2, 3, 4], (n) => n % 2 === 0 ? Result.succeed(n * 10) : Result.failVoid) // => [20, 40]
|
|
3019
3006
|
* ```
|
|
3020
3007
|
*
|
|
3021
3008
|
* @see {@link filter} — keep original elements matching a predicate
|
|
@@ -3050,10 +3037,10 @@ export const filterMap = /*#__PURE__*/dual(2, (self, f) => {
|
|
|
3050
3037
|
*
|
|
3051
3038
|
* **Example** (Filtering even numbers)
|
|
3052
3039
|
*
|
|
3053
|
-
* ```ts
|
|
3040
|
+
* ```ts import.meta.vitest
|
|
3054
3041
|
* import { Array } from "effect"
|
|
3055
3042
|
*
|
|
3056
|
-
*
|
|
3043
|
+
* Array.filter([1, 2, 3, 4], (x) => x % 2 === 0) // => [2, 4]
|
|
3057
3044
|
* ```
|
|
3058
3045
|
*
|
|
3059
3046
|
* @see {@link partition} — split into matching and non-matching
|
|
@@ -3086,13 +3073,12 @@ export const filter = /*#__PURE__*/dual(2, (self, predicate) => {
|
|
|
3086
3073
|
*
|
|
3087
3074
|
* **Example** (Partitioning with a filter)
|
|
3088
3075
|
*
|
|
3089
|
-
* ```ts
|
|
3076
|
+
* ```ts import.meta.vitest
|
|
3090
3077
|
* import { Array, Result } from "effect"
|
|
3091
3078
|
*
|
|
3092
|
-
*
|
|
3079
|
+
* Array.partition([1, -2, 3], (n, i) =>
|
|
3093
3080
|
* n > 0 ? Result.succeed(n + i) : Result.fail(`negative:${n}`)
|
|
3094
|
-
* )
|
|
3095
|
-
* // [["negative:-2"], [1, 5]]
|
|
3081
|
+
* ) // => [["negative:-2"], [1, 5]]
|
|
3096
3082
|
* ```
|
|
3097
3083
|
*
|
|
3098
3084
|
* @see {@link filter} — keep only matching elements
|
|
@@ -3130,14 +3116,10 @@ export const partition = /*#__PURE__*/dual(2, (self, f) => {
|
|
|
3130
3116
|
*
|
|
3131
3117
|
* **Example** (Separating Results)
|
|
3132
3118
|
*
|
|
3133
|
-
* ```ts
|
|
3119
|
+
* ```ts import.meta.vitest
|
|
3134
3120
|
* import { Array, Result } from "effect"
|
|
3135
3121
|
*
|
|
3136
|
-
*
|
|
3137
|
-
* Result.succeed(1), Result.fail("error"), Result.succeed(2)
|
|
3138
|
-
* ])
|
|
3139
|
-
* console.log(failures) // ["error"]
|
|
3140
|
-
* console.log(successes) // [1, 2]
|
|
3122
|
+
* Array.separate([Result.succeed(1), Result.fail("error"), Result.succeed(2)]) // => [["error"], [1, 2]]
|
|
3141
3123
|
* ```
|
|
3142
3124
|
*
|
|
3143
3125
|
* @see {@link getFailures} — extract only failures
|
|
@@ -3161,10 +3143,10 @@ export const separate = /*#__PURE__*/partition(identity);
|
|
|
3161
3143
|
*
|
|
3162
3144
|
* **Example** (Summing an array)
|
|
3163
3145
|
*
|
|
3164
|
-
* ```ts
|
|
3146
|
+
* ```ts import.meta.vitest
|
|
3165
3147
|
* import { Array } from "effect"
|
|
3166
3148
|
*
|
|
3167
|
-
*
|
|
3149
|
+
* Array.reduce([1, 2, 3], 0, (acc, n) => acc + n) // => 6
|
|
3168
3150
|
* ```
|
|
3169
3151
|
*
|
|
3170
3152
|
* @see {@link reduceRight} — fold from right to left
|
|
@@ -3187,10 +3169,10 @@ export const reduce = /*#__PURE__*/dual(3, (self, b, f) => fromIterable(self).re
|
|
|
3187
3169
|
*
|
|
3188
3170
|
* **Example** (Folding from right to left)
|
|
3189
3171
|
*
|
|
3190
|
-
* ```ts
|
|
3172
|
+
* ```ts import.meta.vitest
|
|
3191
3173
|
* import { Array } from "effect"
|
|
3192
3174
|
*
|
|
3193
|
-
*
|
|
3175
|
+
* Array.reduceRight([1, 2, 3], 0, (acc, n) => acc + n) // => 6
|
|
3194
3176
|
* ```
|
|
3195
3177
|
*
|
|
3196
3178
|
* @see {@link reduce} — fold from left to right
|
|
@@ -3206,13 +3188,13 @@ export const reduceRight = /*#__PURE__*/dual(3, (self, b, f) => fromIterable(sel
|
|
|
3206
3188
|
*
|
|
3207
3189
|
* **Example** (Wrapping values conditionally)
|
|
3208
3190
|
*
|
|
3209
|
-
* ```ts
|
|
3191
|
+
* ```ts import.meta.vitest
|
|
3210
3192
|
* import { Array } from "effect"
|
|
3211
3193
|
*
|
|
3212
|
-
* const
|
|
3213
|
-
*
|
|
3214
|
-
*
|
|
3215
|
-
*
|
|
3194
|
+
* const fromEven = Array.liftPredicate((n: number) => n % 2 === 0)
|
|
3195
|
+
*
|
|
3196
|
+
* fromEven(1) // => []
|
|
3197
|
+
* fromEven(2) // => [2]
|
|
3216
3198
|
* ```
|
|
3217
3199
|
*
|
|
3218
3200
|
* @see {@link liftOption} — lift an Option-returning function
|
|
@@ -3232,15 +3214,16 @@ export const liftPredicate = predicate => b => predicate(b) ? [b] : [];
|
|
|
3232
3214
|
*
|
|
3233
3215
|
* **Example** (Lifting an Option function)
|
|
3234
3216
|
*
|
|
3235
|
-
* ```ts
|
|
3217
|
+
* ```ts import.meta.vitest
|
|
3236
3218
|
* import { Array, Option } from "effect"
|
|
3237
3219
|
*
|
|
3238
3220
|
* const parseNumber = Array.liftOption((s: string) => {
|
|
3239
3221
|
* const n = Number(s)
|
|
3240
3222
|
* return isNaN(n) ? Option.none() : Option.some(n)
|
|
3241
3223
|
* })
|
|
3242
|
-
*
|
|
3243
|
-
*
|
|
3224
|
+
*
|
|
3225
|
+
* parseNumber("123") // => [123]
|
|
3226
|
+
* parseNumber("abc") // => []
|
|
3244
3227
|
* ```
|
|
3245
3228
|
*
|
|
3246
3229
|
* @see {@link liftPredicate} — lift a boolean predicate
|
|
@@ -3260,12 +3243,12 @@ export const liftOption = f => (...a) => fromOption(f(...a));
|
|
|
3260
3243
|
*
|
|
3261
3244
|
* **Example** (Converting nullable values to an array)
|
|
3262
3245
|
*
|
|
3263
|
-
* ```ts
|
|
3246
|
+
* ```ts import.meta.vitest
|
|
3264
3247
|
* import { Array } from "effect"
|
|
3265
3248
|
*
|
|
3266
|
-
*
|
|
3267
|
-
*
|
|
3268
|
-
*
|
|
3249
|
+
* Array.fromNullishOr(1) // => [1]
|
|
3250
|
+
* Array.fromNullishOr(null) // => []
|
|
3251
|
+
* Array.fromNullishOr(undefined) // => []
|
|
3269
3252
|
* ```
|
|
3270
3253
|
*
|
|
3271
3254
|
* @see {@link liftNullishOr} — lift a nullable-returning function
|
|
@@ -3281,15 +3264,16 @@ export const fromNullishOr = a => a == null ? empty() : [a];
|
|
|
3281
3264
|
*
|
|
3282
3265
|
* **Example** (Lifting a nullable function)
|
|
3283
3266
|
*
|
|
3284
|
-
* ```ts
|
|
3267
|
+
* ```ts import.meta.vitest
|
|
3285
3268
|
* import { Array } from "effect"
|
|
3286
3269
|
*
|
|
3287
3270
|
* const parseNumber = Array.liftNullishOr((s: string) => {
|
|
3288
3271
|
* const n = Number(s)
|
|
3289
3272
|
* return isNaN(n) ? null : n
|
|
3290
3273
|
* })
|
|
3291
|
-
*
|
|
3292
|
-
*
|
|
3274
|
+
*
|
|
3275
|
+
* parseNumber("123") // => [123]
|
|
3276
|
+
* parseNumber("abc") // => []
|
|
3293
3277
|
* ```
|
|
3294
3278
|
*
|
|
3295
3279
|
* @see {@link fromNullishOr} — convert a single nullable value
|
|
@@ -3310,11 +3294,10 @@ export const liftNullishOr = f => (...a) => fromNullishOr(f(...a));
|
|
|
3310
3294
|
*
|
|
3311
3295
|
* **Example** (Flat mapping with nullable values)
|
|
3312
3296
|
*
|
|
3313
|
-
* ```ts
|
|
3297
|
+
* ```ts import.meta.vitest
|
|
3314
3298
|
* import { Array } from "effect"
|
|
3315
3299
|
*
|
|
3316
|
-
*
|
|
3317
|
-
* // [1, 3]
|
|
3300
|
+
* Array.flatMapNullishOr([1, 2, 3], (n) => (n % 2 === 0 ? null : n)) // => [1, 3]
|
|
3318
3301
|
* ```
|
|
3319
3302
|
*
|
|
3320
3303
|
* @see {@link flatMap} for mapping each element to an array and flattening
|
|
@@ -3335,7 +3318,7 @@ export const flatMapNullishOr = /*#__PURE__*/dual(2, (self, f) => flatMap(self,
|
|
|
3335
3318
|
*
|
|
3336
3319
|
* **Example** (Lifting a Result function)
|
|
3337
3320
|
*
|
|
3338
|
-
* ```ts
|
|
3321
|
+
* ```ts import.meta.vitest
|
|
3339
3322
|
* import { Array, Result } from "effect"
|
|
3340
3323
|
*
|
|
3341
3324
|
* const parseNumber = (s: string): Result.Result<number, Error> =>
|
|
@@ -3344,8 +3327,9 @@ export const flatMapNullishOr = /*#__PURE__*/dual(2, (self, f) => flatMap(self,
|
|
|
3344
3327
|
* : Result.succeed(Number(s))
|
|
3345
3328
|
*
|
|
3346
3329
|
* const liftedParseNumber = Array.liftResult(parseNumber)
|
|
3347
|
-
*
|
|
3348
|
-
*
|
|
3330
|
+
*
|
|
3331
|
+
* liftedParseNumber("42") // => [42]
|
|
3332
|
+
* liftedParseNumber("not a number") // => []
|
|
3349
3333
|
* ```
|
|
3350
3334
|
*
|
|
3351
3335
|
* @see {@link liftOption} — lift an Option-returning function
|
|
@@ -3369,16 +3353,16 @@ export const liftResult = f => (...a) => {
|
|
|
3369
3353
|
*
|
|
3370
3354
|
* **Example** (Testing all elements)
|
|
3371
3355
|
*
|
|
3372
|
-
* ```ts
|
|
3356
|
+
* ```ts import.meta.vitest
|
|
3373
3357
|
* import { Array } from "effect"
|
|
3374
3358
|
*
|
|
3375
|
-
*
|
|
3376
|
-
*
|
|
3359
|
+
* Array.every([2, 4, 6], (x) => x % 2 === 0) // => true
|
|
3360
|
+
* Array.every([2, 3, 6], (x) => x % 2 === 0) // => false
|
|
3377
3361
|
* ```
|
|
3378
3362
|
*
|
|
3379
3363
|
* @see {@link some} — test if any element matches
|
|
3380
3364
|
*
|
|
3381
|
-
* @category
|
|
3365
|
+
* @category guards
|
|
3382
3366
|
* @since 2.0.0
|
|
3383
3367
|
*/
|
|
3384
3368
|
export const every = /*#__PURE__*/dual(2, (self, refinement) => self.every(refinement));
|
|
@@ -3388,17 +3372,17 @@ export const every = /*#__PURE__*/dual(2, (self, refinement) => self.every(refin
|
|
|
3388
3372
|
*
|
|
3389
3373
|
* **Example** (Testing for any match)
|
|
3390
3374
|
*
|
|
3391
|
-
* ```ts
|
|
3375
|
+
* ```ts import.meta.vitest
|
|
3392
3376
|
* import { Array } from "effect"
|
|
3393
3377
|
*
|
|
3394
|
-
*
|
|
3395
|
-
*
|
|
3378
|
+
* Array.some([1, 3, 4], (x) => x % 2 === 0) // => true
|
|
3379
|
+
* Array.some([1, 3, 5], (x) => x % 2 === 0) // => false
|
|
3396
3380
|
* ```
|
|
3397
3381
|
*
|
|
3398
3382
|
* @see {@link every} — test if all elements match
|
|
3399
3383
|
* @see {@link contains} — test for a specific value
|
|
3400
3384
|
*
|
|
3401
|
-
* @category
|
|
3385
|
+
* @category guards
|
|
3402
3386
|
* @since 2.0.0
|
|
3403
3387
|
*/
|
|
3404
3388
|
export const some = /*#__PURE__*/dual(2, (self, predicate) => self.some(predicate));
|
|
@@ -3417,10 +3401,10 @@ export const some = /*#__PURE__*/dual(2, (self, predicate) => self.some(predicat
|
|
|
3417
3401
|
*
|
|
3418
3402
|
* **Example** (Computing suffix lengths)
|
|
3419
3403
|
*
|
|
3420
|
-
* ```ts
|
|
3404
|
+
* ```ts import.meta.vitest
|
|
3421
3405
|
* import { Array } from "effect"
|
|
3422
3406
|
*
|
|
3423
|
-
*
|
|
3407
|
+
* Array.extend([1, 2, 3], (as) => as.length) // => [3, 2, 1]
|
|
3424
3408
|
* ```
|
|
3425
3409
|
*
|
|
3426
3410
|
* @see {@link scan} for keeping intermediate accumulator values during a fold
|
|
@@ -3435,16 +3419,16 @@ export const extend = /*#__PURE__*/dual(2, (self, f) => self.map((_, i, as) => f
|
|
|
3435
3419
|
*
|
|
3436
3420
|
* **Example** (Finding the minimum)
|
|
3437
3421
|
*
|
|
3438
|
-
* ```ts
|
|
3422
|
+
* ```ts import.meta.vitest
|
|
3439
3423
|
* import { Array, Order } from "effect"
|
|
3440
3424
|
*
|
|
3441
|
-
*
|
|
3425
|
+
* Array.min([3, 1, 2], Order.Number) // => 1
|
|
3442
3426
|
* ```
|
|
3443
3427
|
*
|
|
3444
3428
|
* @see {@link max} — find the maximum
|
|
3445
3429
|
* @see {@link sort} — sort the entire array
|
|
3446
3430
|
*
|
|
3447
|
-
* @category
|
|
3431
|
+
* @category getters
|
|
3448
3432
|
* @since 2.0.0
|
|
3449
3433
|
*/
|
|
3450
3434
|
export const min = /*#__PURE__*/dual(2, (self, O) => self.reduce(Order.min(O)));
|
|
@@ -3454,16 +3438,16 @@ export const min = /*#__PURE__*/dual(2, (self, O) => self.reduce(Order.min(O)));
|
|
|
3454
3438
|
*
|
|
3455
3439
|
* **Example** (Finding the maximum)
|
|
3456
3440
|
*
|
|
3457
|
-
* ```ts
|
|
3441
|
+
* ```ts import.meta.vitest
|
|
3458
3442
|
* import { Array, Order } from "effect"
|
|
3459
3443
|
*
|
|
3460
|
-
*
|
|
3444
|
+
* Array.max([3, 1, 2], Order.Number) // => 3
|
|
3461
3445
|
* ```
|
|
3462
3446
|
*
|
|
3463
3447
|
* @see {@link min} — find the minimum
|
|
3464
3448
|
* @see {@link sort} — sort the entire array
|
|
3465
3449
|
*
|
|
3466
|
-
* @category
|
|
3450
|
+
* @category getters
|
|
3467
3451
|
* @since 2.0.0
|
|
3468
3452
|
*/
|
|
3469
3453
|
export const max = /*#__PURE__*/dual(2, (self, O) => self.reduce(Order.max(O)));
|
|
@@ -3474,11 +3458,10 @@ export const max = /*#__PURE__*/dual(2, (self, O) => self.reduce(Order.max(O)));
|
|
|
3474
3458
|
*
|
|
3475
3459
|
* **Example** (Generating a sequence)
|
|
3476
3460
|
*
|
|
3477
|
-
* ```ts
|
|
3461
|
+
* ```ts import.meta.vitest
|
|
3478
3462
|
* import { Array, Option } from "effect"
|
|
3479
3463
|
*
|
|
3480
|
-
*
|
|
3481
|
-
* // [1, 2, 3, 4, 5]
|
|
3464
|
+
* Array.unfold(1, (n) => n <= 5 ? Option.some([n, n + 1]) : Option.none()) // => [1, 2, 3, 4, 5]
|
|
3482
3465
|
* ```
|
|
3483
3466
|
*
|
|
3484
3467
|
* @see {@link makeBy} — generate from index
|
|
@@ -3508,11 +3491,12 @@ export const unfold = (b, f) => {
|
|
|
3508
3491
|
*
|
|
3509
3492
|
* **Example** (Comparing arrays)
|
|
3510
3493
|
*
|
|
3511
|
-
* ```ts
|
|
3494
|
+
* ```ts import.meta.vitest
|
|
3512
3495
|
* import { Array, Order } from "effect"
|
|
3513
3496
|
*
|
|
3514
3497
|
* const arrayOrder = Array.makeOrder(Order.Number)
|
|
3515
|
-
*
|
|
3498
|
+
*
|
|
3499
|
+
* arrayOrder([1, 2], [1, 3]) // => -1
|
|
3516
3500
|
* ```
|
|
3517
3501
|
*
|
|
3518
3502
|
* @see {@link makeEquivalence} — create an equivalence for arrays
|
|
@@ -3528,11 +3512,12 @@ export const makeOrder = Order.Array;
|
|
|
3528
3512
|
*
|
|
3529
3513
|
* **Example** (Comparing arrays for equality)
|
|
3530
3514
|
*
|
|
3531
|
-
* ```ts
|
|
3515
|
+
* ```ts import.meta.vitest
|
|
3532
3516
|
* import { Array } from "effect"
|
|
3533
3517
|
*
|
|
3534
3518
|
* const eq = Array.makeEquivalence<number>((a, b) => a === b)
|
|
3535
|
-
*
|
|
3519
|
+
*
|
|
3520
|
+
* eq([1, 2, 3], [1, 2, 3]) // => true
|
|
3536
3521
|
* ```
|
|
3537
3522
|
*
|
|
3538
3523
|
* @see {@link makeOrder} — create an ordering for arrays
|
|
@@ -3551,15 +3536,18 @@ export const makeEquivalence = Equivalence.Array;
|
|
|
3551
3536
|
*
|
|
3552
3537
|
* **Example** (Iterating with side-effects)
|
|
3553
3538
|
*
|
|
3554
|
-
* ```ts
|
|
3539
|
+
* ```ts import.meta.vitest
|
|
3555
3540
|
* import { Array } from "effect"
|
|
3556
3541
|
*
|
|
3557
|
-
* Array
|
|
3542
|
+
* const visited: Array<number> = []
|
|
3543
|
+
* Array.forEach([1, 2, 3], (n) => visited.push(n))
|
|
3544
|
+
*
|
|
3545
|
+
* visited // => [1, 2, 3]
|
|
3558
3546
|
* ```
|
|
3559
3547
|
*
|
|
3560
3548
|
* @see {@link map} for transforming each element into a new array
|
|
3561
3549
|
*
|
|
3562
|
-
* @category
|
|
3550
|
+
* @category traversing
|
|
3563
3551
|
* @since 2.0.0
|
|
3564
3552
|
*/
|
|
3565
3553
|
export const forEach = /*#__PURE__*/dual(2, (self, f) => fromIterable(self).forEach((a, i) => f(a, i)));
|
|
@@ -3574,16 +3562,16 @@ export const forEach = /*#__PURE__*/dual(2, (self, f) => fromIterable(self).forE
|
|
|
3574
3562
|
*
|
|
3575
3563
|
* **Example** (Deduplicating with custom equality)
|
|
3576
3564
|
*
|
|
3577
|
-
* ```ts
|
|
3565
|
+
* ```ts import.meta.vitest
|
|
3578
3566
|
* import { Array } from "effect"
|
|
3579
3567
|
*
|
|
3580
|
-
*
|
|
3568
|
+
* Array.dedupeWith([1, 2, 2, 3, 3, 3], (a, b) => a === b) // => [1, 2, 3]
|
|
3581
3569
|
* ```
|
|
3582
3570
|
*
|
|
3583
3571
|
* @see {@link dedupe} — uses default equality
|
|
3584
3572
|
* @see {@link dedupeAdjacentWith} — only dedupes consecutive elements
|
|
3585
3573
|
*
|
|
3586
|
-
* @category
|
|
3574
|
+
* @category deduplication
|
|
3587
3575
|
* @since 2.0.0
|
|
3588
3576
|
*/
|
|
3589
3577
|
export const dedupeWith = /*#__PURE__*/dual(2, (self, isEquivalent) => {
|
|
@@ -3611,16 +3599,16 @@ export const dedupeWith = /*#__PURE__*/dual(2, (self, isEquivalent) => {
|
|
|
3611
3599
|
*
|
|
3612
3600
|
* **Example** (Removing duplicates)
|
|
3613
3601
|
*
|
|
3614
|
-
* ```ts
|
|
3602
|
+
* ```ts import.meta.vitest
|
|
3615
3603
|
* import { Array } from "effect"
|
|
3616
3604
|
*
|
|
3617
|
-
*
|
|
3605
|
+
* Array.dedupe([1, 2, 1, 3, 2, 4]) // => [1, 2, 3, 4]
|
|
3618
3606
|
* ```
|
|
3619
3607
|
*
|
|
3620
3608
|
* @see {@link dedupeWith} — use custom equality
|
|
3621
3609
|
* @see {@link dedupeAdjacent} — only dedupes consecutive elements
|
|
3622
3610
|
*
|
|
3623
|
-
* @category
|
|
3611
|
+
* @category deduplication
|
|
3624
3612
|
* @since 2.0.0
|
|
3625
3613
|
*/
|
|
3626
3614
|
export const dedupe = self => {
|
|
@@ -3652,17 +3640,16 @@ export const dedupe = self => {
|
|
|
3652
3640
|
*
|
|
3653
3641
|
* **Example** (Deduplicating adjacent elements)
|
|
3654
3642
|
*
|
|
3655
|
-
* ```ts
|
|
3643
|
+
* ```ts import.meta.vitest
|
|
3656
3644
|
* import { Array } from "effect"
|
|
3657
3645
|
*
|
|
3658
|
-
*
|
|
3659
|
-
* // [1, 2, 3]
|
|
3646
|
+
* Array.dedupeAdjacentWith([1, 1, 2, 2, 3, 3], (a, b) => a === b) // => [1, 2, 3]
|
|
3660
3647
|
* ```
|
|
3661
3648
|
*
|
|
3662
3649
|
* @see {@link dedupeAdjacent} — uses default equality
|
|
3663
3650
|
* @see {@link dedupeWith} — dedupes all duplicates, not just adjacent
|
|
3664
3651
|
*
|
|
3665
|
-
* @category
|
|
3652
|
+
* @category deduplication
|
|
3666
3653
|
* @since 2.0.0
|
|
3667
3654
|
*/
|
|
3668
3655
|
export const dedupeAdjacentWith = /*#__PURE__*/dual(2, (self, isEquivalent) => {
|
|
@@ -3686,16 +3673,16 @@ export const dedupeAdjacentWith = /*#__PURE__*/dual(2, (self, isEquivalent) => {
|
|
|
3686
3673
|
*
|
|
3687
3674
|
* **Example** (Removing adjacent duplicates)
|
|
3688
3675
|
*
|
|
3689
|
-
* ```ts
|
|
3676
|
+
* ```ts import.meta.vitest
|
|
3690
3677
|
* import { Array } from "effect"
|
|
3691
3678
|
*
|
|
3692
|
-
*
|
|
3679
|
+
* Array.dedupeAdjacent([1, 1, 2, 2, 3, 3]) // => [1, 2, 3]
|
|
3693
3680
|
* ```
|
|
3694
3681
|
*
|
|
3695
3682
|
* @see {@link dedupeAdjacentWith} — use custom equality
|
|
3696
3683
|
* @see {@link dedupe} — remove all duplicates
|
|
3697
3684
|
*
|
|
3698
|
-
* @category
|
|
3685
|
+
* @category deduplication
|
|
3699
3686
|
* @since 2.0.0
|
|
3700
3687
|
*/
|
|
3701
3688
|
export const dedupeAdjacent = /*#__PURE__*/dedupeAdjacentWith(/*#__PURE__*/Equal.asEquivalence());
|
|
@@ -3704,10 +3691,10 @@ export const dedupeAdjacent = /*#__PURE__*/dedupeAdjacentWith(/*#__PURE__*/Equal
|
|
|
3704
3691
|
*
|
|
3705
3692
|
* **Example** (Joining strings)
|
|
3706
3693
|
*
|
|
3707
|
-
* ```ts
|
|
3694
|
+
* ```ts import.meta.vitest
|
|
3708
3695
|
* import { Array } from "effect"
|
|
3709
3696
|
*
|
|
3710
|
-
*
|
|
3697
|
+
* Array.join(["a", "b", "c"], "-") // => "a-b-c"
|
|
3711
3698
|
* ```
|
|
3712
3699
|
*
|
|
3713
3700
|
* @see {@link intersperse} — insert separator elements without joining
|
|
@@ -3733,11 +3720,10 @@ export const join = /*#__PURE__*/dual(2, (self, sep) => fromIterable(self).join(
|
|
|
3733
3720
|
*
|
|
3734
3721
|
* **Example** (Running sum alongside mapped values)
|
|
3735
3722
|
*
|
|
3736
|
-
* ```ts
|
|
3723
|
+
* ```ts import.meta.vitest
|
|
3737
3724
|
* import { Array } from "effect"
|
|
3738
3725
|
*
|
|
3739
|
-
*
|
|
3740
|
-
* console.log(result) // [6, [1, 3, 6]]
|
|
3726
|
+
* Array.mapAccum([1, 2, 3], 0, (acc, n) => [acc + n, acc + n]) // => [6, [1, 3, 6]]
|
|
3741
3727
|
* ```
|
|
3742
3728
|
*
|
|
3743
3729
|
* @see {@link scan} — when you only need the accumulated results (not the final state)
|
|
@@ -3774,16 +3760,15 @@ export const mapAccum = /*#__PURE__*/dual(3, (self, s, f) => {
|
|
|
3774
3760
|
*
|
|
3775
3761
|
* **Example** (Combining numbers and letters)
|
|
3776
3762
|
*
|
|
3777
|
-
* ```ts
|
|
3763
|
+
* ```ts import.meta.vitest
|
|
3778
3764
|
* import { Array } from "effect"
|
|
3779
3765
|
*
|
|
3780
|
-
*
|
|
3781
|
-
* console.log(result) // ["1-a", "1-b", "2-a", "2-b"]
|
|
3766
|
+
* Array.cartesianWith([1, 2], ["a", "b"], (a, b) => `${a}-${b}`) // => ["1-a", "1-b", "2-a", "2-b"]
|
|
3782
3767
|
* ```
|
|
3783
3768
|
*
|
|
3784
3769
|
* @see {@link cartesian} for returning tuples instead of applying a combiner
|
|
3785
3770
|
*
|
|
3786
|
-
* @category
|
|
3771
|
+
* @category combining
|
|
3787
3772
|
* @since 2.0.0
|
|
3788
3773
|
*/
|
|
3789
3774
|
export const cartesianWith = /*#__PURE__*/dual(3, (self, that, f) => flatMap(self, a => map(that, b => f(a, b))));
|
|
@@ -3801,16 +3786,15 @@ export const cartesianWith = /*#__PURE__*/dual(3, (self, that, f) => flatMap(sel
|
|
|
3801
3786
|
*
|
|
3802
3787
|
* **Example** (Generating all pairs from two arrays)
|
|
3803
3788
|
*
|
|
3804
|
-
* ```ts
|
|
3789
|
+
* ```ts import.meta.vitest
|
|
3805
3790
|
* import { Array } from "effect"
|
|
3806
3791
|
*
|
|
3807
|
-
*
|
|
3808
|
-
* console.log(result) // [[1, "a"], [1, "b"], [2, "a"], [2, "b"]]
|
|
3792
|
+
* Array.cartesian([1, 2], ["a", "b"]) // => [[1, "a"], [1, "b"], [2, "a"], [2, "b"]]
|
|
3809
3793
|
* ```
|
|
3810
3794
|
*
|
|
3811
3795
|
* @see {@link cartesianWith} — apply a combiner to each pair
|
|
3812
3796
|
*
|
|
3813
|
-
* @category
|
|
3797
|
+
* @category combining
|
|
3814
3798
|
* @since 2.0.0
|
|
3815
3799
|
*/
|
|
3816
3800
|
export const cartesian = /*#__PURE__*/dual(2, (self, that) => cartesianWith(self, that, (a, b) => [a, b]));
|
|
@@ -3833,24 +3817,23 @@ export const cartesian = /*#__PURE__*/dual(2, (self, that) => cartesianWith(self
|
|
|
3833
3817
|
*
|
|
3834
3818
|
* **Example** (Building array comprehensions with do notation)
|
|
3835
3819
|
*
|
|
3836
|
-
* ```ts
|
|
3820
|
+
* ```ts import.meta.vitest
|
|
3837
3821
|
* import { Array, pipe } from "effect"
|
|
3838
3822
|
*
|
|
3839
|
-
*
|
|
3823
|
+
* pipe(
|
|
3840
3824
|
* Array.Do,
|
|
3841
3825
|
* Array.bind("x", () => [1, 3, 5]),
|
|
3842
3826
|
* Array.bind("y", () => [2, 4, 6]),
|
|
3843
3827
|
* Array.filter(({ x, y }) => x < y),
|
|
3844
3828
|
* Array.map(({ x, y }) => [x, y] as const)
|
|
3845
|
-
* )
|
|
3846
|
-
* console.log(result) // [[1, 2], [1, 4], [1, 6], [3, 4], [3, 6], [5, 6]]
|
|
3829
|
+
* ) // => [[1, 2], [1, 4], [1, 6], [3, 4], [3, 6], [5, 6]]
|
|
3847
3830
|
* ```
|
|
3848
3831
|
*
|
|
3849
3832
|
* @see {@link bind} — introduce an array variable into the scope
|
|
3850
3833
|
* @see {@link bindTo} — start a pipeline by naming the first array
|
|
3851
3834
|
* @see {@link let_ let} — introduce a plain computed value
|
|
3852
3835
|
*
|
|
3853
|
-
* @category
|
|
3836
|
+
* @category constructors
|
|
3854
3837
|
* @since 3.2.0
|
|
3855
3838
|
*/
|
|
3856
3839
|
export const Do = /*#__PURE__*/of({});
|
|
@@ -3870,23 +3853,21 @@ export const Do = /*#__PURE__*/of({});
|
|
|
3870
3853
|
*
|
|
3871
3854
|
* **Example** (Binding two arrays)
|
|
3872
3855
|
*
|
|
3873
|
-
* ```ts
|
|
3856
|
+
* ```ts import.meta.vitest
|
|
3874
3857
|
* import { Array, pipe } from "effect"
|
|
3875
3858
|
*
|
|
3876
|
-
*
|
|
3859
|
+
* pipe(
|
|
3877
3860
|
* Array.Do,
|
|
3878
3861
|
* Array.bind("x", () => [1, 2]),
|
|
3879
3862
|
* Array.bind("y", () => ["a", "b"])
|
|
3880
|
-
* )
|
|
3881
|
-
* console.log(result)
|
|
3882
|
-
* // [{ x: 1, y: "a" }, { x: 1, y: "b" }, { x: 2, y: "a" }, { x: 2, y: "b" }]
|
|
3863
|
+
* ) // => [{ x: 1, y: "a" }, { x: 1, y: "b" }, { x: 2, y: "a" }, { x: 2, y: "b" }]
|
|
3883
3864
|
* ```
|
|
3884
3865
|
*
|
|
3885
3866
|
* @see {@link Do} — start a do-notation pipeline
|
|
3886
3867
|
* @see {@link bindTo} — name the first array in a pipeline
|
|
3887
3868
|
* @see {@link let_ let} — add a plain computed value
|
|
3888
3869
|
*
|
|
3889
|
-
* @category
|
|
3870
|
+
* @category sequencing
|
|
3890
3871
|
* @since 3.2.0
|
|
3891
3872
|
*/
|
|
3892
3873
|
export const bind = /*#__PURE__*/internalDoNotation.bind(map, flatMap);
|
|
@@ -3905,20 +3886,16 @@ export const bind = /*#__PURE__*/internalDoNotation.bind(map, flatMap);
|
|
|
3905
3886
|
*
|
|
3906
3887
|
* **Example** (Naming an existing array)
|
|
3907
3888
|
*
|
|
3908
|
-
* ```ts
|
|
3909
|
-
* import { Array
|
|
3889
|
+
* ```ts import.meta.vitest
|
|
3890
|
+
* import { Array } from "effect"
|
|
3910
3891
|
*
|
|
3911
|
-
*
|
|
3912
|
-
* [1, 2, 3],
|
|
3913
|
-
* Array.bindTo("x")
|
|
3914
|
-
* )
|
|
3915
|
-
* console.log(result) // [{ x: 1 }, { x: 2 }, { x: 3 }]
|
|
3892
|
+
* Array.bindTo([1, 2, 3], "x") // => [{ x: 1 }, { x: 2 }, { x: 3 }]
|
|
3916
3893
|
* ```
|
|
3917
3894
|
*
|
|
3918
3895
|
* @see {@link Do} — start with an empty scope
|
|
3919
3896
|
* @see {@link bind} — add another array variable to the scope
|
|
3920
3897
|
*
|
|
3921
|
-
* @category
|
|
3898
|
+
* @category mapping
|
|
3922
3899
|
* @since 3.2.0
|
|
3923
3900
|
*/
|
|
3924
3901
|
export const bindTo = /*#__PURE__*/internalDoNotation.bindTo(map);
|
|
@@ -3940,22 +3917,20 @@ export {
|
|
|
3940
3917
|
*
|
|
3941
3918
|
* **Example** (Adding a computed value)
|
|
3942
3919
|
*
|
|
3943
|
-
* ```ts
|
|
3920
|
+
* ```ts import.meta.vitest
|
|
3944
3921
|
* import { Array, pipe } from "effect"
|
|
3945
3922
|
*
|
|
3946
|
-
*
|
|
3923
|
+
* pipe(
|
|
3947
3924
|
* Array.Do,
|
|
3948
3925
|
* Array.bind("x", () => [1, 2, 3]),
|
|
3949
3926
|
* Array.let("doubled", ({ x }) => x * 2)
|
|
3950
|
-
* )
|
|
3951
|
-
* console.log(result)
|
|
3952
|
-
* // [{ x: 1, doubled: 2 }, { x: 2, doubled: 4 }, { x: 3, doubled: 6 }]
|
|
3927
|
+
* ) // => [{ x: 1, doubled: 2 }, { x: 2, doubled: 4 }, { x: 3, doubled: 6 }]
|
|
3953
3928
|
* ```
|
|
3954
3929
|
*
|
|
3955
3930
|
* @see {@link Do} — start a do-notation pipeline
|
|
3956
3931
|
* @see {@link bind} — introduce an array variable (produces cartesian product)
|
|
3957
3932
|
*
|
|
3958
|
-
* @category
|
|
3933
|
+
* @category mapping
|
|
3959
3934
|
* @since 3.2.0
|
|
3960
3935
|
*/
|
|
3961
3936
|
let_ as let };
|
|
@@ -3997,11 +3972,10 @@ export function makeReducerConcat() {
|
|
|
3997
3972
|
*
|
|
3998
3973
|
* **Example** (Counting even numbers)
|
|
3999
3974
|
*
|
|
4000
|
-
* ```ts
|
|
3975
|
+
* ```ts import.meta.vitest
|
|
4001
3976
|
* import { Array } from "effect"
|
|
4002
3977
|
*
|
|
4003
|
-
*
|
|
4004
|
-
* console.log(result) // 2
|
|
3978
|
+
* Array.countBy([1, 2, 3, 4, 5], (n) => n % 2 === 0) // => 2
|
|
4005
3979
|
* ```
|
|
4006
3980
|
*
|
|
4007
3981
|
* @see {@link filter} — when you need the matching elements, not just the count
|