effect 4.0.0-beta.5 → 4.0.0-beta.51
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 +213 -385
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +149 -102
- package/dist/Array.js.map +1 -1
- package/dist/BigDecimal.d.ts +82 -45
- package/dist/BigDecimal.d.ts.map +1 -1
- package/dist/BigDecimal.js +105 -52
- package/dist/BigDecimal.js.map +1 -1
- package/dist/BigInt.d.ts +39 -32
- package/dist/BigInt.d.ts.map +1 -1
- package/dist/BigInt.js +36 -33
- package/dist/BigInt.js.map +1 -1
- package/dist/Brand.d.ts +3 -5
- package/dist/Brand.d.ts.map +1 -1
- package/dist/Brand.js +1 -1
- package/dist/Brand.js.map +1 -1
- package/dist/Cache.d.ts +14 -45
- package/dist/Cache.d.ts.map +1 -1
- package/dist/Cache.js +21 -47
- package/dist/Cache.js.map +1 -1
- package/dist/Cause.d.ts +54 -23
- package/dist/Cause.d.ts.map +1 -1
- package/dist/Cause.js +108 -10
- package/dist/Cause.js.map +1 -1
- package/dist/Channel.d.ts +166 -48
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +182 -91
- package/dist/Channel.js.map +1 -1
- package/dist/Chunk.d.ts +112 -304
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +56 -88
- package/dist/Chunk.js.map +1 -1
- package/dist/Clock.d.ts +2 -2
- package/dist/Clock.d.ts.map +1 -1
- package/dist/Clock.js.map +1 -1
- package/dist/Combiner.d.ts +280 -13
- package/dist/Combiner.d.ts.map +1 -1
- package/dist/Combiner.js +198 -7
- package/dist/Combiner.js.map +1 -1
- package/dist/Config.d.ts +171 -11
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +69 -11
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts +6 -6
- package/dist/ConfigProvider.d.ts.map +1 -1
- package/dist/ConfigProvider.js +5 -5
- package/dist/ConfigProvider.js.map +1 -1
- package/dist/Console.d.ts +2 -2
- package/dist/Console.d.ts.map +1 -1
- package/dist/Console.js.map +1 -1
- package/dist/Context.d.ts +1150 -0
- package/dist/Context.d.ts.map +1 -0
- package/dist/{ServiceMap.js → Context.js} +181 -165
- package/dist/Context.js.map +1 -0
- package/dist/Cron.d.ts +11 -7
- package/dist/Cron.d.ts.map +1 -1
- package/dist/Cron.js +120 -63
- package/dist/Cron.js.map +1 -1
- package/dist/Data.d.ts +535 -366
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js +132 -79
- package/dist/Data.js.map +1 -1
- package/dist/DateTime.d.ts +74 -255
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +17 -62
- package/dist/DateTime.js.map +1 -1
- package/dist/Deferred.d.ts +12 -5
- package/dist/Deferred.d.ts.map +1 -1
- package/dist/Deferred.js +13 -5
- package/dist/Deferred.js.map +1 -1
- package/dist/Duration.d.ts +62 -32
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +109 -79
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +1377 -1147
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +465 -446
- package/dist/Effect.js.map +1 -1
- package/dist/Encoding.d.ts +194 -0
- package/dist/Encoding.d.ts.map +1 -0
- package/dist/Encoding.js +352 -0
- package/dist/Encoding.js.map +1 -0
- package/dist/Equal.d.ts +276 -109
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +140 -48
- package/dist/Equal.js.map +1 -1
- package/dist/Equivalence.d.ts +60 -3
- package/dist/Equivalence.d.ts.map +1 -1
- package/dist/Equivalence.js +70 -13
- package/dist/Equivalence.js.map +1 -1
- package/dist/ErrorReporter.d.ts +374 -0
- package/dist/ErrorReporter.d.ts.map +1 -0
- package/dist/ErrorReporter.js +245 -0
- package/dist/ErrorReporter.js.map +1 -0
- package/dist/ExecutionPlan.d.ts +6 -6
- package/dist/ExecutionPlan.d.ts.map +1 -1
- package/dist/ExecutionPlan.js +4 -4
- package/dist/ExecutionPlan.js.map +1 -1
- package/dist/Exit.d.ts +24 -12
- package/dist/Exit.d.ts.map +1 -1
- package/dist/Exit.js +8 -4
- package/dist/Exit.js.map +1 -1
- package/dist/Fiber.d.ts +10 -8
- package/dist/Fiber.d.ts.map +1 -1
- package/dist/Fiber.js.map +1 -1
- package/dist/FiberHandle.d.ts +11 -10
- package/dist/FiberHandle.d.ts.map +1 -1
- package/dist/FiberHandle.js +12 -11
- package/dist/FiberHandle.js.map +1 -1
- package/dist/FiberMap.d.ts +22 -21
- package/dist/FiberMap.d.ts.map +1 -1
- package/dist/FiberMap.js +10 -10
- package/dist/FiberMap.js.map +1 -1
- package/dist/FiberSet.d.ts +2 -2
- package/dist/FiberSet.d.ts.map +1 -1
- package/dist/FiberSet.js +4 -4
- package/dist/FiberSet.js.map +1 -1
- package/dist/FileSystem.d.ts +20 -19
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +17 -13
- package/dist/FileSystem.js.map +1 -1
- package/dist/Filter.d.ts +4 -37
- package/dist/Filter.d.ts.map +1 -1
- package/dist/Filter.js +0 -13
- package/dist/Filter.js.map +1 -1
- package/dist/Formatter.d.ts +131 -47
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +229 -51
- package/dist/Formatter.js.map +1 -1
- package/dist/Function.d.ts +1 -9
- package/dist/Function.d.ts.map +1 -1
- package/dist/Function.js +2 -10
- package/dist/Function.js.map +1 -1
- package/dist/Graph.d.ts +65 -65
- package/dist/Graph.d.ts.map +1 -1
- package/dist/Graph.js +60 -62
- package/dist/Graph.js.map +1 -1
- package/dist/Hash.js +1 -1
- package/dist/Hash.js.map +1 -1
- package/dist/HashMap.d.ts +26 -19
- package/dist/HashMap.d.ts.map +1 -1
- package/dist/HashMap.js +7 -5
- package/dist/HashMap.js.map +1 -1
- package/dist/Iterable.d.ts +50 -50
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +106 -34
- package/dist/Iterable.js.map +1 -1
- package/dist/JsonSchema.d.ts +299 -10
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +323 -4
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Latch.d.ts +175 -0
- package/dist/Latch.d.ts.map +1 -0
- package/dist/Latch.js +130 -0
- package/dist/Latch.js.map +1 -0
- package/dist/Layer.d.ts +599 -379
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +249 -180
- package/dist/Layer.js.map +1 -1
- package/dist/LayerMap.d.ts +27 -26
- package/dist/LayerMap.d.ts.map +1 -1
- package/dist/LayerMap.js +21 -18
- package/dist/LayerMap.js.map +1 -1
- package/dist/LogLevel.d.ts +32 -0
- package/dist/LogLevel.d.ts.map +1 -1
- package/dist/LogLevel.js +28 -100
- package/dist/LogLevel.js.map +1 -1
- package/dist/Logger.d.ts +31 -97
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js +2 -3
- package/dist/Logger.js.map +1 -1
- package/dist/ManagedRuntime.d.ts +8 -8
- package/dist/ManagedRuntime.d.ts.map +1 -1
- package/dist/ManagedRuntime.js +34 -25
- package/dist/ManagedRuntime.js.map +1 -1
- package/dist/Metric.d.ts +23 -25
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +24 -26
- package/dist/Metric.js.map +1 -1
- package/dist/MutableHashMap.d.ts +7 -0
- package/dist/MutableHashMap.d.ts.map +1 -1
- package/dist/MutableHashMap.js +8 -0
- package/dist/MutableHashMap.js.map +1 -1
- package/dist/MutableHashSet.d.ts +7 -0
- package/dist/MutableHashSet.d.ts.map +1 -1
- package/dist/MutableHashSet.js +8 -0
- package/dist/MutableHashSet.js.map +1 -1
- package/dist/MutableList.d.ts.map +1 -1
- package/dist/MutableList.js +3 -0
- package/dist/MutableList.js.map +1 -1
- package/dist/Newtype.d.ts +291 -0
- package/dist/Newtype.d.ts.map +1 -0
- package/dist/Newtype.js +161 -0
- package/dist/Newtype.js.map +1 -0
- package/dist/Number.d.ts +74 -18
- package/dist/Number.d.ts.map +1 -1
- package/dist/Number.js +46 -18
- package/dist/Number.js.map +1 -1
- package/dist/Optic.d.ts +947 -18
- package/dist/Optic.d.ts.map +1 -1
- package/dist/Optic.js +454 -5
- package/dist/Optic.js.map +1 -1
- package/dist/Option.d.ts +25 -16
- package/dist/Option.d.ts.map +1 -1
- package/dist/Option.js +15 -9
- package/dist/Option.js.map +1 -1
- package/dist/Order.d.ts +6 -1
- package/dist/Order.d.ts.map +1 -1
- package/dist/Order.js +19 -14
- package/dist/Order.js.map +1 -1
- package/dist/PartitionedSemaphore.d.ts +146 -15
- package/dist/PartitionedSemaphore.d.ts.map +1 -1
- package/dist/PartitionedSemaphore.js +174 -61
- package/dist/PartitionedSemaphore.js.map +1 -1
- package/dist/Path.d.ts +2 -2
- package/dist/Path.d.ts.map +1 -1
- package/dist/Path.js +2 -2
- package/dist/Path.js.map +1 -1
- package/dist/Pipeable.d.ts +17 -0
- package/dist/Pipeable.d.ts.map +1 -1
- package/dist/Pipeable.js +19 -1
- package/dist/Pipeable.js.map +1 -1
- package/dist/PlatformError.d.ts +2 -2
- package/dist/Pool.d.ts +6 -4
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +11 -9
- package/dist/Pool.js.map +1 -1
- package/dist/PubSub.d.ts +8 -6
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +18 -10
- package/dist/PubSub.js.map +1 -1
- package/dist/Pull.d.ts.map +1 -1
- package/dist/Pull.js +1 -1
- package/dist/Pull.js.map +1 -1
- package/dist/Queue.d.ts +9 -6
- package/dist/Queue.d.ts.map +1 -1
- package/dist/Queue.js +7 -5
- package/dist/Queue.js.map +1 -1
- package/dist/Random.d.ts +36 -2
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +46 -35
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts +4 -4
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/RcMap.js +13 -13
- package/dist/RcMap.js.map +1 -1
- package/dist/RcRef.d.ts +1 -1
- package/dist/RcRef.d.ts.map +1 -1
- package/dist/Record.d.ts +63 -160
- package/dist/Record.d.ts.map +1 -1
- package/dist/Record.js +37 -56
- package/dist/Record.js.map +1 -1
- package/dist/Redactable.d.ts +139 -62
- package/dist/Redactable.d.ts.map +1 -1
- package/dist/Redactable.js +59 -55
- package/dist/Redactable.js.map +1 -1
- package/dist/Reducer.d.ts +166 -7
- package/dist/Reducer.d.ts.map +1 -1
- package/dist/Reducer.js +135 -1
- package/dist/Reducer.js.map +1 -1
- package/dist/References.d.ts +257 -229
- package/dist/References.d.ts.map +1 -1
- package/dist/References.js +240 -259
- package/dist/References.js.map +1 -1
- package/dist/Request.d.ts +6 -6
- package/dist/Request.d.ts.map +1 -1
- package/dist/Request.js +2 -1
- package/dist/Request.js.map +1 -1
- package/dist/RequestResolver.d.ts +25 -45
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +15 -36
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Resource.d.ts +0 -3
- package/dist/Resource.d.ts.map +1 -1
- package/dist/Resource.js +5 -4
- package/dist/Resource.js.map +1 -1
- package/dist/Result.d.ts +1 -1
- package/dist/Result.d.ts.map +1 -1
- package/dist/Result.js +1 -2
- package/dist/Result.js.map +1 -1
- package/dist/Runtime.d.ts +66 -0
- package/dist/Runtime.d.ts.map +1 -1
- package/dist/Runtime.js +79 -6
- package/dist/Runtime.js.map +1 -1
- package/dist/Schedule.d.ts +176 -293
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +162 -136
- package/dist/Schedule.js.map +1 -1
- package/dist/Scheduler.d.ts +36 -125
- package/dist/Scheduler.d.ts.map +1 -1
- package/dist/Scheduler.js +37 -126
- package/dist/Scheduler.js.map +1 -1
- package/dist/Schema.d.ts +3326 -383
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +2315 -283
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +13 -2
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +340 -257
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaGetter.d.ts +57 -15
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +85 -25
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaIssue.d.ts.map +1 -1
- package/dist/SchemaIssue.js +29 -11
- package/dist/SchemaIssue.js.map +1 -1
- package/dist/SchemaParser.d.ts +44 -54
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +69 -4
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +46 -45
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +65 -38
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +252 -3
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +319 -13
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/Scope.d.ts +2 -2
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js.map +1 -1
- package/dist/ScopedCache.d.ts +2 -2
- package/dist/ScopedCache.d.ts.map +1 -1
- package/dist/ScopedCache.js +5 -5
- package/dist/ScopedCache.js.map +1 -1
- package/dist/Semaphore.d.ts +307 -0
- package/dist/Semaphore.d.ts.map +1 -0
- package/dist/Semaphore.js +220 -0
- package/dist/Semaphore.js.map +1 -0
- package/dist/Sink.d.ts +22 -19
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +54 -7
- package/dist/Sink.js.map +1 -1
- package/dist/Stdio.d.ts +18 -6
- package/dist/Stdio.d.ts.map +1 -1
- package/dist/Stdio.js +20 -2
- package/dist/Stdio.js.map +1 -1
- package/dist/Stream.d.ts +465 -542
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +321 -144
- package/dist/Stream.js.map +1 -1
- package/dist/String.d.ts +114 -47
- package/dist/String.d.ts.map +1 -1
- package/dist/String.js +29 -47
- package/dist/String.js.map +1 -1
- package/dist/Struct.d.ts +23 -7
- package/dist/Struct.d.ts.map +1 -1
- package/dist/Struct.js +22 -0
- package/dist/Struct.js.map +1 -1
- package/dist/SubscriptionRef.d.ts +3 -3
- package/dist/SubscriptionRef.d.ts.map +1 -1
- package/dist/SubscriptionRef.js +85 -117
- package/dist/SubscriptionRef.js.map +1 -1
- package/dist/SynchronizedRef.d.ts +2 -1
- package/dist/SynchronizedRef.d.ts.map +1 -1
- package/dist/SynchronizedRef.js +2 -1
- package/dist/SynchronizedRef.js.map +1 -1
- package/dist/Terminal.d.ts +5 -4
- package/dist/Terminal.d.ts.map +1 -1
- package/dist/Terminal.js +2 -2
- package/dist/Terminal.js.map +1 -1
- package/dist/Tracer.d.ts +21 -20
- package/dist/Tracer.d.ts.map +1 -1
- package/dist/Tracer.js +13 -9
- package/dist/Tracer.js.map +1 -1
- package/dist/Trie.d.ts +44 -31
- package/dist/Trie.d.ts.map +1 -1
- package/dist/Trie.js +13 -9
- package/dist/Trie.js.map +1 -1
- package/dist/TxChunk.d.ts +4 -4
- package/dist/TxChunk.d.ts.map +1 -1
- package/dist/TxChunk.js +4 -4
- package/dist/TxChunk.js.map +1 -1
- package/dist/TxDeferred.d.ts +328 -0
- package/dist/TxDeferred.d.ts.map +1 -0
- package/dist/TxDeferred.js +197 -0
- package/dist/TxDeferred.js.map +1 -0
- package/dist/TxHashMap.d.ts +105 -86
- package/dist/TxHashMap.d.ts.map +1 -1
- package/dist/TxHashMap.js +51 -44
- package/dist/TxHashMap.js.map +1 -1
- package/dist/TxHashSet.d.ts +2 -2
- package/dist/TxHashSet.d.ts.map +1 -1
- package/dist/TxHashSet.js +16 -15
- package/dist/TxHashSet.js.map +1 -1
- package/dist/TxPriorityQueue.d.ts +609 -0
- package/dist/TxPriorityQueue.d.ts.map +1 -0
- package/dist/TxPriorityQueue.js +416 -0
- package/dist/TxPriorityQueue.js.map +1 -0
- package/dist/TxPubSub.d.ts +585 -0
- package/dist/TxPubSub.d.ts.map +1 -0
- package/dist/TxPubSub.js +521 -0
- package/dist/TxPubSub.js.map +1 -0
- package/dist/TxQueue.d.ts +1 -1
- package/dist/TxQueue.d.ts.map +1 -1
- package/dist/TxQueue.js +42 -57
- package/dist/TxQueue.js.map +1 -1
- package/dist/TxReentrantLock.d.ts +500 -0
- package/dist/TxReentrantLock.d.ts.map +1 -0
- package/dist/TxReentrantLock.js +481 -0
- package/dist/TxReentrantLock.js.map +1 -0
- package/dist/TxRef.d.ts +14 -20
- package/dist/TxRef.d.ts.map +1 -1
- package/dist/TxRef.js +8 -10
- package/dist/TxRef.js.map +1 -1
- package/dist/TxSemaphore.d.ts +162 -2
- package/dist/TxSemaphore.d.ts.map +1 -1
- package/dist/TxSemaphore.js +25 -10
- package/dist/TxSemaphore.js.map +1 -1
- package/dist/TxSubscriptionRef.d.ts +508 -0
- package/dist/TxSubscriptionRef.d.ts.map +1 -0
- package/dist/TxSubscriptionRef.js +293 -0
- package/dist/TxSubscriptionRef.js.map +1 -0
- package/dist/Types.d.ts +83 -17
- package/dist/Types.d.ts.map +1 -1
- package/dist/Unify.d.ts +8 -2
- package/dist/Unify.d.ts.map +1 -1
- package/dist/Unify.js.map +1 -1
- package/dist/Utils.d.ts +137 -65
- package/dist/Utils.d.ts.map +1 -1
- package/dist/Utils.js +38 -66
- package/dist/Utils.js.map +1 -1
- package/dist/index.d.ts +888 -71
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +888 -71
- package/dist/index.js.map +1 -1
- package/dist/internal/core.js +11 -3
- package/dist/internal/core.js.map +1 -1
- package/dist/internal/dateTime.js +77 -71
- package/dist/internal/dateTime.js.map +1 -1
- package/dist/internal/effect.js +485 -325
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/hashMap.js +7 -5
- package/dist/internal/hashMap.js.map +1 -1
- package/dist/internal/layer.js +3 -3
- package/dist/internal/layer.js.map +1 -1
- package/dist/internal/option.js +6 -0
- package/dist/internal/option.js.map +1 -1
- package/dist/internal/random.d.ts +2 -0
- package/dist/internal/random.d.ts.map +1 -0
- package/dist/internal/random.js +13 -0
- package/dist/internal/random.js.map +1 -0
- package/dist/internal/rcRef.js +11 -10
- package/dist/internal/rcRef.js.map +1 -1
- package/dist/internal/references.d.ts +2 -0
- package/dist/internal/references.d.ts.map +1 -0
- package/dist/internal/references.js +51 -0
- package/dist/internal/references.js.map +1 -0
- package/dist/internal/request.js +6 -6
- package/dist/internal/request.js.map +1 -1
- package/dist/internal/schedule.js +1 -1
- package/dist/internal/schedule.js.map +1 -1
- package/dist/internal/schema/annotations.js +2 -0
- package/dist/internal/schema/annotations.js.map +1 -1
- package/dist/internal/schema/representation.js +86 -107
- package/dist/internal/schema/representation.js.map +1 -1
- package/dist/internal/schema/schema.d.ts +10 -1
- package/dist/internal/schema/schema.d.ts.map +1 -1
- package/dist/internal/schema/schema.js +22 -1
- package/dist/internal/schema/schema.js.map +1 -1
- package/dist/internal/schema/to-codec.js +7 -10
- package/dist/internal/schema/to-codec.js.map +1 -1
- package/dist/internal/trie.js +8 -7
- package/dist/internal/trie.js.map +1 -1
- package/dist/testing/TestClock.d.ts +8 -7
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +6 -4
- package/dist/testing/TestClock.js.map +1 -1
- package/dist/testing/TestSchema.d.ts +267 -33
- package/dist/testing/TestSchema.d.ts.map +1 -1
- package/dist/testing/TestSchema.js +296 -23
- package/dist/testing/TestSchema.js.map +1 -1
- package/dist/testing/index.d.ts +64 -1
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +64 -1
- package/dist/testing/index.js.map +1 -1
- package/dist/unstable/ai/AiError.d.ts +155 -73
- package/dist/unstable/ai/AiError.d.ts.map +1 -1
- package/dist/unstable/ai/AiError.js +29 -23
- package/dist/unstable/ai/AiError.js.map +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.d.ts +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.d.ts.map +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.js +9 -2
- package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
- package/dist/unstable/ai/Chat.d.ts +39 -11
- package/dist/unstable/ai/Chat.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.js +41 -47
- package/dist/unstable/ai/Chat.js.map +1 -1
- package/dist/unstable/ai/EmbeddingModel.d.ts +130 -0
- package/dist/unstable/ai/EmbeddingModel.d.ts.map +1 -0
- package/dist/unstable/ai/EmbeddingModel.js +127 -0
- package/dist/unstable/ai/EmbeddingModel.js.map +1 -0
- package/dist/unstable/ai/IdGenerator.d.ts +2 -2
- package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
- package/dist/unstable/ai/IdGenerator.js +2 -2
- package/dist/unstable/ai/IdGenerator.js.map +1 -1
- package/dist/unstable/ai/LanguageModel.d.ts +119 -49
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/LanguageModel.js +260 -61
- package/dist/unstable/ai/LanguageModel.js.map +1 -1
- package/dist/unstable/ai/McpSchema.d.ts +236 -141
- package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
- package/dist/unstable/ai/McpSchema.js +71 -19
- package/dist/unstable/ai/McpSchema.js.map +1 -1
- package/dist/unstable/ai/McpServer.d.ts +68 -15
- package/dist/unstable/ai/McpServer.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.js +218 -73
- package/dist/unstable/ai/McpServer.js.map +1 -1
- package/dist/unstable/ai/Model.d.ts +27 -9
- package/dist/unstable/ai/Model.d.ts.map +1 -1
- package/dist/unstable/ai/Model.js +25 -9
- package/dist/unstable/ai/Model.js.map +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.d.ts +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.d.ts.map +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.js +9 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
- package/dist/unstable/ai/Prompt.d.ts +20 -20
- package/dist/unstable/ai/Prompt.d.ts.map +1 -1
- package/dist/unstable/ai/Prompt.js +6 -9
- package/dist/unstable/ai/Prompt.js.map +1 -1
- package/dist/unstable/ai/Response.d.ts +27 -27
- package/dist/unstable/ai/Response.d.ts.map +1 -1
- package/dist/unstable/ai/Response.js +7 -8
- package/dist/unstable/ai/Response.js.map +1 -1
- package/dist/unstable/ai/ResponseIdTracker.d.ts +38 -0
- package/dist/unstable/ai/ResponseIdTracker.d.ts.map +1 -0
- package/dist/unstable/ai/ResponseIdTracker.js +68 -0
- package/dist/unstable/ai/ResponseIdTracker.js.map +1 -0
- package/dist/unstable/ai/Telemetry.d.ts +35 -2
- package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
- package/dist/unstable/ai/Telemetry.js +2 -2
- package/dist/unstable/ai/Telemetry.js.map +1 -1
- package/dist/unstable/ai/Tokenizer.d.ts +2 -2
- package/dist/unstable/ai/Tokenizer.d.ts.map +1 -1
- package/dist/unstable/ai/Tokenizer.js +2 -2
- package/dist/unstable/ai/Tokenizer.js.map +1 -1
- package/dist/unstable/ai/Tool.d.ts +46 -16
- package/dist/unstable/ai/Tool.d.ts.map +1 -1
- package/dist/unstable/ai/Tool.js +68 -22
- package/dist/unstable/ai/Tool.js.map +1 -1
- package/dist/unstable/ai/Toolkit.d.ts +4 -4
- package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
- package/dist/unstable/ai/Toolkit.js +14 -21
- package/dist/unstable/ai/Toolkit.js.map +1 -1
- package/dist/unstable/ai/index.d.ts +22 -1
- package/dist/unstable/ai/index.d.ts.map +1 -1
- package/dist/unstable/ai/index.js +22 -1
- package/dist/unstable/ai/index.js.map +1 -1
- package/dist/unstable/ai/internal/codec-transformer.js +5 -7
- package/dist/unstable/ai/internal/codec-transformer.js.map +1 -1
- package/dist/unstable/cli/Argument.d.ts +4 -7
- package/dist/unstable/cli/Argument.d.ts.map +1 -1
- package/dist/unstable/cli/Argument.js +1 -3
- package/dist/unstable/cli/Argument.js.map +1 -1
- package/dist/unstable/cli/CliError.d.ts +55 -67
- package/dist/unstable/cli/CliError.d.ts.map +1 -1
- package/dist/unstable/cli/CliError.js +32 -57
- package/dist/unstable/cli/CliError.js.map +1 -1
- package/dist/unstable/cli/CliOutput.d.ts +5 -4
- package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
- package/dist/unstable/cli/CliOutput.js +67 -12
- package/dist/unstable/cli/CliOutput.js.map +1 -1
- package/dist/unstable/cli/Command.d.ts +372 -59
- package/dist/unstable/cli/Command.d.ts.map +1 -1
- package/dist/unstable/cli/Command.js +328 -66
- package/dist/unstable/cli/Command.js.map +1 -1
- package/dist/unstable/cli/Completions.d.ts +97 -0
- package/dist/unstable/cli/Completions.d.ts.map +1 -0
- package/dist/unstable/cli/Completions.js +25 -0
- package/dist/unstable/cli/Completions.js.map +1 -0
- package/dist/unstable/cli/Flag.d.ts +4 -5
- package/dist/unstable/cli/Flag.d.ts.map +1 -1
- package/dist/unstable/cli/Flag.js +1 -1
- package/dist/unstable/cli/Flag.js.map +1 -1
- package/dist/unstable/cli/GlobalFlag.d.ts +125 -0
- package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -0
- package/dist/unstable/cli/GlobalFlag.js +118 -0
- package/dist/unstable/cli/GlobalFlag.js.map +1 -0
- package/dist/unstable/cli/HelpDoc.d.ts +81 -11
- package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
- package/dist/unstable/cli/Param.d.ts +34 -6
- package/dist/unstable/cli/Param.d.ts.map +1 -1
- package/dist/unstable/cli/Param.js +24 -14
- package/dist/unstable/cli/Param.js.map +1 -1
- package/dist/unstable/cli/Primitive.d.ts +2 -2
- package/dist/unstable/cli/Primitive.d.ts.map +1 -1
- package/dist/unstable/cli/Primitive.js +1 -1
- package/dist/unstable/cli/Primitive.js.map +1 -1
- package/dist/unstable/cli/Prompt.js +266 -86
- package/dist/unstable/cli/Prompt.js.map +1 -1
- package/dist/unstable/cli/index.d.ts +8 -0
- package/dist/unstable/cli/index.d.ts.map +1 -1
- package/dist/unstable/cli/index.js +8 -0
- package/dist/unstable/cli/index.js.map +1 -1
- package/dist/unstable/cli/internal/command.d.ts +41 -15
- package/dist/unstable/cli/internal/command.d.ts.map +1 -1
- package/dist/unstable/cli/internal/command.js +84 -47
- 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.d.ts +2 -0
- package/dist/unstable/cli/internal/completions/descriptor.d.ts.map +1 -0
- package/dist/unstable/cli/internal/completions/{CommandDescriptor.js → descriptor.js} +17 -5
- package/dist/unstable/cli/internal/completions/descriptor.js.map +1 -0
- 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 +42 -0
- package/dist/unstable/cli/internal/config.js.map +1 -1
- package/dist/unstable/cli/internal/help.d.ts +33 -0
- package/dist/unstable/cli/internal/help.d.ts.map +1 -0
- package/dist/unstable/cli/internal/help.js +125 -0
- package/dist/unstable/cli/internal/help.js.map +1 -0
- package/dist/unstable/cli/internal/parser.js +155 -58
- package/dist/unstable/cli/internal/parser.js.map +1 -1
- package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
- package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterCron.js +1 -1
- package/dist/unstable/cluster/ClusterCron.js.map +1 -1
- package/dist/unstable/cluster/ClusterError.d.ts +7 -7
- package/dist/unstable/cluster/ClusterSchema.d.ts +28 -7
- package/dist/unstable/cluster/ClusterSchema.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterSchema.js +28 -8
- package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts +4 -2
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +97 -63
- package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/unstable/cluster/DeliverAt.js +1 -1
- package/dist/unstable/cluster/DeliverAt.js.map +1 -1
- package/dist/unstable/cluster/Entity.d.ts +18 -16
- package/dist/unstable/cluster/Entity.d.ts.map +1 -1
- package/dist/unstable/cluster/Entity.js +31 -25
- package/dist/unstable/cluster/Entity.js.map +1 -1
- package/dist/unstable/cluster/EntityAddress.d.ts +2 -2
- package/dist/unstable/cluster/EntityAddress.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityAddress.js +1 -1
- package/dist/unstable/cluster/EntityAddress.js.map +1 -1
- package/dist/unstable/cluster/EntityProxy.js +3 -3
- package/dist/unstable/cluster/EntityProxy.js.map +1 -1
- package/dist/unstable/cluster/EntityProxyServer.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityProxyServer.js +4 -4
- package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
- package/dist/unstable/cluster/EntityResource.d.ts +4 -4
- package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityResource.js +2 -2
- package/dist/unstable/cluster/EntityResource.js.map +1 -1
- package/dist/unstable/cluster/Envelope.d.ts +4 -4
- package/dist/unstable/cluster/HttpRunner.js +2 -2
- package/dist/unstable/cluster/HttpRunner.js.map +1 -1
- package/dist/unstable/cluster/K8sHttpClient.d.ts +5 -5
- package/dist/unstable/cluster/K8sHttpClient.d.ts.map +1 -1
- package/dist/unstable/cluster/K8sHttpClient.js +6 -6
- package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
- package/dist/unstable/cluster/Message.d.ts +21 -15
- package/dist/unstable/cluster/Message.d.ts.map +1 -1
- package/dist/unstable/cluster/Message.js +16 -8
- package/dist/unstable/cluster/Message.js.map +1 -1
- package/dist/unstable/cluster/MessageStorage.d.ts +46 -23
- package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/MessageStorage.js +42 -26
- package/dist/unstable/cluster/MessageStorage.js.map +1 -1
- package/dist/unstable/cluster/Reply.d.ts +10 -9
- package/dist/unstable/cluster/Reply.d.ts.map +1 -1
- package/dist/unstable/cluster/Reply.js +8 -7
- package/dist/unstable/cluster/Reply.js.map +1 -1
- package/dist/unstable/cluster/Runner.d.ts +2 -2
- package/dist/unstable/cluster/Runner.d.ts.map +1 -1
- package/dist/unstable/cluster/Runner.js +1 -1
- package/dist/unstable/cluster/Runner.js.map +1 -1
- package/dist/unstable/cluster/RunnerAddress.d.ts +1 -1
- package/dist/unstable/cluster/RunnerAddress.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerAddress.js +1 -1
- package/dist/unstable/cluster/RunnerAddress.js.map +1 -1
- package/dist/unstable/cluster/RunnerHealth.d.ts +2 -2
- package/dist/unstable/cluster/RunnerHealth.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerHealth.js +2 -2
- package/dist/unstable/cluster/RunnerHealth.js.map +1 -1
- package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerServer.js +10 -9
- package/dist/unstable/cluster/RunnerServer.js.map +1 -1
- package/dist/unstable/cluster/RunnerStorage.d.ts +12 -12
- package/dist/unstable/cluster/RunnerStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerStorage.js +3 -3
- package/dist/unstable/cluster/RunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/Runners.d.ts +5 -4
- package/dist/unstable/cluster/Runners.d.ts.map +1 -1
- package/dist/unstable/cluster/Runners.js +20 -17
- package/dist/unstable/cluster/Runners.js.map +1 -1
- package/dist/unstable/cluster/ShardId.d.ts +35 -49
- package/dist/unstable/cluster/ShardId.d.ts.map +1 -1
- package/dist/unstable/cluster/ShardId.js +65 -67
- package/dist/unstable/cluster/ShardId.js.map +1 -1
- package/dist/unstable/cluster/Sharding.d.ts +4 -4
- package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
- package/dist/unstable/cluster/Sharding.js +66 -54
- package/dist/unstable/cluster/Sharding.js.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.d.ts +28 -27
- package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.js +27 -27
- package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
- package/dist/unstable/cluster/SingletonAddress.d.ts +2 -2
- package/dist/unstable/cluster/Snowflake.d.ts +2 -2
- package/dist/unstable/cluster/Snowflake.d.ts.map +1 -1
- package/dist/unstable/cluster/Snowflake.js +2 -2
- package/dist/unstable/cluster/Snowflake.js.map +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.js +24 -20
- 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 +7 -7
- package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/internal/entityManager.js +34 -27
- package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
- package/dist/unstable/cluster/internal/entityReaper.js +4 -3
- package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
- package/dist/unstable/cluster/internal/resourceMap.js +3 -3
- package/dist/unstable/cluster/internal/resourceMap.js.map +1 -1
- package/dist/unstable/cluster/internal/resourceRef.js +2 -1
- package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
- package/dist/unstable/devtools/DevToolsClient.d.ts +2 -2
- package/dist/unstable/devtools/DevToolsClient.d.ts.map +1 -1
- package/dist/unstable/devtools/DevToolsClient.js +9 -8
- package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.d.ts +40 -40
- package/dist/unstable/devtools/DevToolsSchema.d.ts.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.js +9 -2
- package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
- package/dist/unstable/encoding/Msgpack.d.ts +1 -1
- package/dist/unstable/encoding/Ndjson.d.ts +9 -9
- package/dist/unstable/encoding/Ndjson.d.ts.map +1 -1
- package/dist/unstable/encoding/Ndjson.js.map +1 -1
- package/dist/unstable/encoding/Sse.d.ts +4 -4
- package/dist/unstable/encoding/Sse.d.ts.map +1 -1
- package/dist/unstable/encoding/Sse.js +1 -1
- package/dist/unstable/encoding/Sse.js.map +1 -1
- package/dist/unstable/eventlog/Event.d.ts +0 -6
- package/dist/unstable/eventlog/Event.d.ts.map +1 -1
- package/dist/unstable/eventlog/Event.js +0 -5
- package/dist/unstable/eventlog/Event.js.map +1 -1
- package/dist/unstable/eventlog/EventGroup.d.ts +0 -2
- package/dist/unstable/eventlog/EventGroup.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventGroup.js +0 -2
- package/dist/unstable/eventlog/EventGroup.js.map +1 -1
- package/dist/unstable/eventlog/EventJournal.d.ts +28 -11
- package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventJournal.js +130 -71
- package/dist/unstable/eventlog/EventJournal.js.map +1 -1
- package/dist/unstable/eventlog/EventLog.d.ts +94 -37
- package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLog.js +225 -150
- package/dist/unstable/eventlog/EventLog.js.map +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.d.ts +11 -9
- package/dist/unstable/eventlog/EventLogEncryption.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.js +15 -17
- package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
- package/dist/unstable/eventlog/EventLogMessage.d.ts +228 -0
- package/dist/unstable/eventlog/EventLogMessage.d.ts.map +1 -0
- package/dist/unstable/eventlog/EventLogMessage.js +214 -0
- package/dist/unstable/eventlog/EventLogMessage.js.map +1 -0
- package/dist/unstable/eventlog/EventLogRemote.d.ts +112 -194
- package/dist/unstable/eventlog/EventLogRemote.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.js +168 -322
- package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServer.d.ts +26 -48
- package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServer.js +128 -199
- package/dist/unstable/eventlog/EventLogServer.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +60 -0
- package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts.map +1 -0
- package/dist/unstable/eventlog/EventLogServerEncrypted.js +166 -0
- package/dist/unstable/eventlog/EventLogServerEncrypted.js.map +1 -0
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +183 -0
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -0
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js +461 -0
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -0
- package/dist/unstable/eventlog/EventLogSessionAuth.d.ts +117 -0
- package/dist/unstable/eventlog/EventLogSessionAuth.d.ts.map +1 -0
- package/dist/unstable/eventlog/EventLogSessionAuth.js +284 -0
- package/dist/unstable/eventlog/EventLogSessionAuth.js.map +1 -0
- package/dist/unstable/eventlog/{SqlEventLogJournal.d.ts → SqlEventJournal.d.ts} +2 -2
- package/dist/unstable/eventlog/SqlEventJournal.d.ts.map +1 -0
- package/dist/unstable/eventlog/{SqlEventLogJournal.js → SqlEventJournal.js} +28 -21
- package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -0
- package/dist/unstable/eventlog/{SqlEventLogServer.d.ts → SqlEventLogServerEncrypted.d.ts} +5 -5
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -0
- package/dist/unstable/eventlog/{SqlEventLogServer.js → SqlEventLogServerEncrypted.js} +69 -27
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js.map +1 -0
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.d.ts +25 -0
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -0
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js +355 -0
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -0
- package/dist/unstable/eventlog/index.d.ts +22 -2
- package/dist/unstable/eventlog/index.d.ts.map +1 -1
- package/dist/unstable/eventlog/index.js +22 -2
- package/dist/unstable/eventlog/index.js.map +1 -1
- package/dist/unstable/eventlog/internal/identityRootSecretDerivation.d.ts +2 -0
- package/dist/unstable/eventlog/internal/identityRootSecretDerivation.d.ts.map +1 -0
- package/dist/unstable/eventlog/internal/identityRootSecretDerivation.js +89 -0
- package/dist/unstable/eventlog/internal/identityRootSecretDerivation.js.map +1 -0
- package/dist/unstable/http/Cookies.d.ts +52 -7
- package/dist/unstable/http/Cookies.d.ts.map +1 -1
- package/dist/unstable/http/Cookies.js +27 -6
- package/dist/unstable/http/Cookies.js.map +1 -1
- package/dist/unstable/http/Etag.d.ts +2 -2
- package/dist/unstable/http/Etag.d.ts.map +1 -1
- package/dist/unstable/http/Etag.js +7 -3
- package/dist/unstable/http/Etag.js.map +1 -1
- package/dist/unstable/http/FetchHttpClient.d.ts +6 -3
- package/dist/unstable/http/FetchHttpClient.d.ts.map +1 -1
- package/dist/unstable/http/FetchHttpClient.js +5 -5
- package/dist/unstable/http/FetchHttpClient.js.map +1 -1
- package/dist/unstable/http/Headers.d.ts +24 -4
- package/dist/unstable/http/Headers.d.ts.map +1 -1
- package/dist/unstable/http/Headers.js +42 -13
- package/dist/unstable/http/Headers.js.map +1 -1
- package/dist/unstable/http/HttpBody.d.ts +1 -1
- package/dist/unstable/http/HttpClient.d.ts +125 -21
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClient.js +197 -19
- package/dist/unstable/http/HttpClient.js.map +1 -1
- package/dist/unstable/http/HttpClientError.d.ts +8 -8
- package/dist/unstable/http/HttpClientRequest.d.ts +43 -15
- package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.js +131 -21
- package/dist/unstable/http/HttpClientRequest.js.map +1 -1
- package/dist/unstable/http/HttpClientResponse.d.ts +2 -1
- package/dist/unstable/http/HttpClientResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientResponse.js +6 -1
- package/dist/unstable/http/HttpClientResponse.js.map +1 -1
- package/dist/unstable/http/HttpEffect.d.ts +13 -11
- package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
- package/dist/unstable/http/HttpEffect.js +67 -75
- package/dist/unstable/http/HttpEffect.js.map +1 -1
- package/dist/unstable/http/HttpIncomingMessage.d.ts +5 -4
- package/dist/unstable/http/HttpIncomingMessage.d.ts.map +1 -1
- package/dist/unstable/http/HttpIncomingMessage.js +2 -2
- package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
- package/dist/unstable/http/HttpMethod.d.ts +4 -4
- package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
- package/dist/unstable/http/HttpMethod.js +3 -3
- package/dist/unstable/http/HttpMethod.js.map +1 -1
- package/dist/unstable/http/HttpMiddleware.d.ts +4 -9
- package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/unstable/http/HttpMiddleware.js +47 -43
- package/dist/unstable/http/HttpMiddleware.js.map +1 -1
- package/dist/unstable/http/HttpPlatform.d.ts +2 -2
- package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
- package/dist/unstable/http/HttpPlatform.js +5 -4
- package/dist/unstable/http/HttpPlatform.js.map +1 -1
- package/dist/unstable/http/HttpRouter.d.ts +9 -8
- package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
- package/dist/unstable/http/HttpRouter.js +36 -36
- package/dist/unstable/http/HttpRouter.js.map +1 -1
- package/dist/unstable/http/HttpServer.d.ts +2 -2
- package/dist/unstable/http/HttpServer.d.ts.map +1 -1
- package/dist/unstable/http/HttpServer.js +4 -4
- package/dist/unstable/http/HttpServer.js.map +1 -1
- package/dist/unstable/http/HttpServerError.d.ts +22 -34
- package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerError.js +39 -45
- package/dist/unstable/http/HttpServerError.js.map +1 -1
- package/dist/unstable/http/HttpServerRequest.d.ts +19 -7
- package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRequest.js +307 -13
- package/dist/unstable/http/HttpServerRequest.js.map +1 -1
- package/dist/unstable/http/HttpServerRespondable.d.ts +2 -2
- package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRespondable.js +5 -5
- package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
- package/dist/unstable/http/HttpServerResponse.d.ts +52 -5
- package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerResponse.js +240 -5
- package/dist/unstable/http/HttpServerResponse.js.map +1 -1
- package/dist/unstable/http/HttpStaticServer.d.ts +69 -0
- package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -0
- package/dist/unstable/http/HttpStaticServer.js +353 -0
- package/dist/unstable/http/HttpStaticServer.js.map +1 -0
- package/dist/unstable/http/HttpTraceContext.d.ts +3 -2
- package/dist/unstable/http/HttpTraceContext.d.ts.map +1 -1
- package/dist/unstable/http/HttpTraceContext.js +27 -15
- package/dist/unstable/http/HttpTraceContext.js.map +1 -1
- package/dist/unstable/http/Multipart.d.ts +9 -9
- package/dist/unstable/http/Multipart.d.ts.map +1 -1
- package/dist/unstable/http/Multipart.js +7 -7
- package/dist/unstable/http/Multipart.js.map +1 -1
- package/dist/unstable/http/Url.d.ts +604 -0
- package/dist/unstable/http/Url.d.ts.map +1 -0
- package/dist/unstable/http/Url.js +256 -0
- package/dist/unstable/http/Url.js.map +1 -0
- package/dist/unstable/http/UrlParams.d.ts +19 -10
- package/dist/unstable/http/UrlParams.d.ts.map +1 -1
- package/dist/unstable/http/UrlParams.js +6 -7
- package/dist/unstable/http/UrlParams.js.map +1 -1
- package/dist/unstable/http/index.d.ts +8 -0
- package/dist/unstable/http/index.d.ts.map +1 -1
- package/dist/unstable/http/index.js +8 -0
- package/dist/unstable/http/index.js.map +1 -1
- package/dist/unstable/http/internal/preResponseHandler.d.ts +2 -0
- package/dist/unstable/http/internal/preResponseHandler.d.ts.map +1 -0
- package/dist/unstable/http/internal/preResponseHandler.js +10 -0
- package/dist/unstable/http/internal/preResponseHandler.js.map +1 -0
- package/dist/unstable/httpapi/HttpApi.d.ts +11 -11
- package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApi.js +8 -8
- package/dist/unstable/httpapi/HttpApi.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts +12 -9
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js +53 -39
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.d.ts +83 -7
- package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.js +79 -11
- package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +211 -105
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.js +53 -47
- package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.d.ts +43 -26
- package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.js +125 -32
- package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.d.ts +9 -8
- package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.js +4 -4
- package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +49 -18
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.js +38 -8
- package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.d.ts +6 -0
- 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 +88 -9
- package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.js +86 -11
- package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.d.ts +9 -6
- package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.js +6 -6
- package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
- package/dist/unstable/httpapi/OpenApi.d.ts +17 -25
- package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/OpenApi.js +59 -60
- package/dist/unstable/httpapi/OpenApi.js.map +1 -1
- package/dist/unstable/observability/Otlp.d.ts +12 -12
- package/dist/unstable/observability/Otlp.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
- package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.js +8 -8
- package/dist/unstable/observability/OtlpExporter.js.map +1 -1
- package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
- package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpLogger.js +7 -4
- package/dist/unstable/observability/OtlpLogger.js.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
- package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.js +2 -2
- package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
- package/dist/unstable/observability/OtlpSerialization.d.ts +2 -2
- package/dist/unstable/observability/OtlpSerialization.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpSerialization.js +2 -2
- package/dist/unstable/observability/OtlpSerialization.js.map +1 -1
- package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
- package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpTracer.js +7 -3
- package/dist/unstable/observability/OtlpTracer.js.map +1 -1
- package/dist/unstable/observability/PrometheusMetrics.d.ts +3 -3
- package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/PrometheusMetrics.js +4 -33
- package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
- package/dist/unstable/observability/internal/protobuf.js +4 -4
- package/dist/unstable/observability/internal/protobuf.js.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.d.ts +24 -3
- package/dist/unstable/persistence/KeyValueStore.d.ts.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.js +148 -6
- package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
- package/dist/unstable/persistence/Persistable.d.ts +2 -2
- package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistable.js +1 -1
- package/dist/unstable/persistence/Persistable.js.map +1 -1
- package/dist/unstable/persistence/PersistedCache.d.ts +6 -6
- package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedCache.js +12 -12
- package/dist/unstable/persistence/PersistedCache.js.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.d.ts +16 -16
- package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.js +15 -14
- package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
- package/dist/unstable/persistence/Persistence.d.ts +5 -5
- package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistence.js +5 -5
- package/dist/unstable/persistence/Persistence.js.map +1 -1
- package/dist/unstable/persistence/RateLimiter.d.ts +9 -9
- package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/unstable/persistence/RateLimiter.js +4 -4
- package/dist/unstable/persistence/RateLimiter.js.map +1 -1
- package/dist/unstable/persistence/Redis.d.ts +3 -3
- package/dist/unstable/persistence/Redis.d.ts.map +1 -1
- package/dist/unstable/persistence/Redis.js +2 -2
- package/dist/unstable/persistence/Redis.js.map +1 -1
- package/dist/unstable/process/ChildProcess.d.ts +5 -128
- package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcess.js +1 -65
- package/dist/unstable/process/ChildProcess.js.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.d.ts +89 -8
- package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.js +22 -2
- package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts +108 -47
- package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.js +105 -25
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts +22 -20
- package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.js +58 -26
- package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.d.ts +8 -2
- package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.js +57 -14
- package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts +12 -12
- package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.js +59 -31
- package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
- package/dist/unstable/reactivity/Reactivity.d.ts +2 -2
- package/dist/unstable/reactivity/Reactivity.d.ts.map +1 -1
- package/dist/unstable/reactivity/Reactivity.js +6 -6
- package/dist/unstable/reactivity/Reactivity.js.map +1 -1
- package/dist/unstable/reactivity/index.d.ts +2 -2
- package/dist/unstable/reactivity/index.d.ts.map +1 -1
- package/dist/unstable/reactivity/index.js +2 -2
- package/dist/unstable/reactivity/index.js.map +1 -1
- package/dist/unstable/rpc/Rpc.d.ts +47 -19
- package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
- package/dist/unstable/rpc/Rpc.js +39 -7
- package/dist/unstable/rpc/Rpc.js.map +1 -1
- package/dist/unstable/rpc/RpcClient.d.ts +26 -47
- package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.js +120 -77
- package/dist/unstable/rpc/RpcClient.js.map +1 -1
- package/dist/unstable/rpc/RpcClientError.d.ts +2 -2
- package/dist/unstable/rpc/RpcGroup.d.ts +15 -11
- package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcGroup.js +30 -20
- package/dist/unstable/rpc/RpcGroup.js.map +1 -1
- package/dist/unstable/rpc/RpcMiddleware.d.ts +12 -12
- package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcMiddleware.js +5 -5
- package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
- package/dist/unstable/rpc/RpcSchema.d.ts +14 -1
- package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSchema.js +17 -2
- package/dist/unstable/rpc/RpcSchema.js.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.d.ts +13 -2
- package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.js +60 -27
- package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
- package/dist/unstable/rpc/RpcServer.d.ts +8 -12
- package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcServer.js +78 -46
- package/dist/unstable/rpc/RpcServer.js.map +1 -1
- package/dist/unstable/rpc/RpcWorker.d.ts +2 -2
- package/dist/unstable/rpc/RpcWorker.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcWorker.js +4 -4
- package/dist/unstable/rpc/RpcWorker.js.map +1 -1
- package/dist/unstable/rpc/Utils.d.ts +6 -3
- package/dist/unstable/rpc/Utils.d.ts.map +1 -1
- package/dist/unstable/rpc/Utils.js +48 -6
- package/dist/unstable/rpc/Utils.js.map +1 -1
- package/dist/unstable/schema/Model.d.ts +24 -3
- package/dist/unstable/schema/Model.d.ts.map +1 -1
- package/dist/unstable/schema/Model.js +17 -4
- package/dist/unstable/schema/Model.js.map +1 -1
- package/dist/unstable/schema/VariantSchema.d.ts +7 -7
- package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
- package/dist/unstable/schema/VariantSchema.js +7 -18
- package/dist/unstable/schema/VariantSchema.js.map +1 -1
- package/dist/unstable/socket/Socket.d.ts +16 -15
- package/dist/unstable/socket/Socket.d.ts.map +1 -1
- package/dist/unstable/socket/Socket.js +22 -19
- package/dist/unstable/socket/Socket.js.map +1 -1
- package/dist/unstable/socket/SocketServer.d.ts +8 -5
- package/dist/unstable/socket/SocketServer.d.ts.map +1 -1
- package/dist/unstable/socket/SocketServer.js +2 -2
- package/dist/unstable/socket/SocketServer.js.map +1 -1
- package/dist/unstable/sql/Migrator.d.ts +1 -1
- package/dist/unstable/sql/Migrator.d.ts.map +1 -1
- package/dist/unstable/sql/Migrator.js +2 -2
- package/dist/unstable/sql/Migrator.js.map +1 -1
- package/dist/unstable/sql/SqlClient.d.ts +5 -5
- package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
- package/dist/unstable/sql/SqlClient.js +7 -7
- package/dist/unstable/sql/SqlClient.js.map +1 -1
- package/dist/unstable/sql/SqlConnection.d.ts +2 -2
- package/dist/unstable/sql/SqlConnection.d.ts.map +1 -1
- package/dist/unstable/sql/SqlConnection.js +5 -2
- package/dist/unstable/sql/SqlConnection.js.map +1 -1
- package/dist/unstable/sql/SqlError.d.ts +237 -17
- package/dist/unstable/sql/SqlError.d.ts.map +1 -1
- package/dist/unstable/sql/SqlError.js +260 -4
- package/dist/unstable/sql/SqlError.js.map +1 -1
- package/dist/unstable/sql/SqlModel.d.ts +8 -9
- package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
- package/dist/unstable/sql/SqlModel.js +12 -38
- package/dist/unstable/sql/SqlModel.js.map +1 -1
- package/dist/unstable/sql/SqlResolver.d.ts.map +1 -1
- package/dist/unstable/sql/SqlResolver.js +26 -17
- package/dist/unstable/sql/SqlResolver.js.map +1 -1
- package/dist/unstable/sql/SqlSchema.d.ts +17 -6
- package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
- package/dist/unstable/sql/SqlSchema.js +17 -7
- package/dist/unstable/sql/SqlSchema.js.map +1 -1
- package/dist/unstable/sql/Statement.d.ts +2 -2
- package/dist/unstable/sql/Statement.d.ts.map +1 -1
- package/dist/unstable/sql/Statement.js +2 -3
- package/dist/unstable/sql/Statement.js.map +1 -1
- package/dist/unstable/workers/Transferable.d.ts +4 -4
- package/dist/unstable/workers/Transferable.d.ts.map +1 -1
- package/dist/unstable/workers/Transferable.js +7 -7
- package/dist/unstable/workers/Transferable.js.map +1 -1
- package/dist/unstable/workers/Worker.d.ts +3 -3
- package/dist/unstable/workers/Worker.d.ts.map +1 -1
- package/dist/unstable/workers/Worker.js +8 -4
- package/dist/unstable/workers/Worker.js.map +1 -1
- package/dist/unstable/workers/WorkerError.d.ts +5 -5
- package/dist/unstable/workers/WorkerRunner.d.ts +2 -2
- package/dist/unstable/workers/WorkerRunner.d.ts.map +1 -1
- package/dist/unstable/workers/WorkerRunner.js +5 -2
- package/dist/unstable/workers/WorkerRunner.js.map +1 -1
- package/dist/unstable/workflow/Activity.d.ts +7 -2
- package/dist/unstable/workflow/Activity.d.ts.map +1 -1
- package/dist/unstable/workflow/Activity.js +17 -4
- package/dist/unstable/workflow/Activity.js.map +1 -1
- package/dist/unstable/workflow/DurableClock.d.ts +3 -6
- package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableClock.js +6 -6
- package/dist/unstable/workflow/DurableClock.js.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.d.ts +1 -1
- package/dist/unstable/workflow/DurableDeferred.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.js +15 -15
- package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
- package/dist/unstable/workflow/Workflow.d.ts +13 -12
- package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
- package/dist/unstable/workflow/Workflow.js +18 -18
- package/dist/unstable/workflow/Workflow.js.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts +26 -8
- package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js +167 -17
- package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
- package/dist/unstable/workflow/WorkflowProxyServer.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowProxyServer.js +4 -4
- package/dist/unstable/workflow/WorkflowProxyServer.js.map +1 -1
- package/package.json +11 -11
- package/src/Array.ts +304 -447
- package/src/BigDecimal.ts +137 -82
- package/src/BigInt.ts +53 -45
- package/src/Brand.ts +3 -5
- package/src/Cache.ts +27 -54
- package/src/Cause.ts +58 -23
- package/src/Channel.ts +693 -224
- package/src/Chunk.ts +149 -331
- package/src/Clock.ts +2 -2
- package/src/Combiner.ts +280 -13
- package/src/Config.ts +197 -27
- package/src/ConfigProvider.ts +5 -5
- package/src/Console.ts +2 -2
- package/src/Context.ts +1454 -0
- package/src/Cron.ts +155 -63
- package/src/Data.ts +539 -376
- package/src/DateTime.ts +77 -258
- package/src/Deferred.ts +15 -6
- package/src/Duration.ts +123 -67
- package/src/Effect.ts +1629 -1355
- package/src/Encoding.ts +879 -0
- package/src/Equal.ts +295 -111
- package/src/Equivalence.ts +114 -52
- package/src/ErrorReporter.ts +458 -0
- package/src/ExecutionPlan.ts +8 -9
- package/src/Exit.ts +24 -12
- package/src/Fiber.ts +17 -8
- package/src/FiberHandle.ts +15 -14
- package/src/FiberMap.ts +27 -27
- package/src/FiberSet.ts +5 -5
- package/src/FileSystem.ts +34 -30
- package/src/Filter.ts +4 -62
- package/src/Formatter.ts +253 -51
- package/src/Function.ts +2 -10
- package/src/Graph.ts +131 -117
- package/src/Hash.ts +2 -2
- package/src/HashMap.ts +26 -19
- package/src/Iterable.ts +117 -63
- package/src/JsonSchema.ts +383 -10
- package/src/Latch.ts +194 -0
- package/src/Layer.ts +728 -441
- package/src/LayerMap.ts +38 -35
- package/src/LogLevel.ts +37 -0
- package/src/Logger.ts +35 -102
- package/src/ManagedRuntime.ts +61 -48
- package/src/Metric.ts +64 -66
- package/src/MutableHashMap.ts +9 -0
- package/src/MutableHashSet.ts +9 -0
- package/src/MutableList.ts +3 -0
- package/src/Newtype.ts +308 -0
- package/src/Number.ts +98 -29
- package/src/Optic.ts +948 -19
- package/src/Option.ts +34 -24
- package/src/Order.ts +39 -32
- package/src/PartitionedSemaphore.ts +288 -56
- package/src/Path.ts +2 -2
- package/src/Pipeable.ts +32 -1
- package/src/Pool.ts +18 -16
- package/src/PubSub.ts +30 -20
- package/src/Pull.ts +1 -1
- package/src/Queue.ts +11 -9
- package/src/Random.ts +51 -14
- package/src/RcMap.ts +19 -19
- package/src/RcRef.ts +1 -1
- package/src/Record.ts +94 -199
- package/src/Redactable.ts +146 -72
- package/src/Reducer.ts +166 -7
- package/src/References.ts +283 -287
- package/src/Request.ts +8 -7
- package/src/RequestResolver.ts +34 -55
- package/src/Resource.ts +6 -5
- package/src/Result.ts +2 -4
- package/src/Runtime.ts +102 -6
- package/src/Schedule.ts +460 -451
- package/src/Scheduler.ts +52 -129
- package/src/Schema.ts +4267 -752
- package/src/SchemaAST.ts +480 -302
- package/src/SchemaGetter.ts +92 -38
- package/src/SchemaIssue.ts +28 -15
- package/src/SchemaParser.ts +100 -29
- package/src/SchemaRepresentation.ts +59 -32
- package/src/SchemaTransformation.ts +364 -13
- package/src/Scope.ts +2 -2
- package/src/ScopedCache.ts +8 -8
- package/src/Semaphore.ts +442 -0
- package/src/Sink.ts +89 -34
- package/src/Stdio.ts +29 -6
- package/src/Stream.ts +898 -752
- package/src/String.ts +122 -69
- package/src/Struct.ts +33 -7
- package/src/SubscriptionRef.ts +101 -120
- package/src/SynchronizedRef.ts +3 -2
- package/src/Terminal.ts +5 -4
- package/src/Tracer.ts +23 -22
- package/src/Trie.ts +44 -31
- package/src/TxChunk.ts +26 -16
- package/src/TxDeferred.ts +391 -0
- package/src/TxHashMap.ts +347 -291
- package/src/TxHashSet.ts +54 -61
- package/src/TxPriorityQueue.ts +762 -0
- package/src/TxPubSub.ts +787 -0
- package/src/TxQueue.ts +221 -245
- package/src/TxReentrantLock.ts +729 -0
- package/src/TxRef.ts +31 -31
- package/src/TxSemaphore.ts +203 -31
- package/src/TxSubscriptionRef.ts +637 -0
- package/src/Types.ts +78 -17
- package/src/Unify.ts +26 -2
- package/src/Utils.ts +137 -111
- package/src/index.ts +898 -72
- package/src/internal/core.ts +19 -12
- package/src/internal/dateTime.ts +91 -96
- package/src/internal/effect.ts +1150 -611
- package/src/internal/hashMap.ts +12 -10
- package/src/internal/layer.ts +7 -7
- package/src/internal/option.ts +7 -0
- package/src/internal/random.ts +20 -0
- package/src/internal/rcRef.ts +14 -13
- package/src/internal/references.ts +72 -0
- package/src/internal/request.ts +8 -8
- package/src/internal/schedule.ts +3 -1
- package/src/internal/schema/annotations.ts +2 -0
- package/src/internal/schema/representation.ts +81 -95
- package/src/internal/schema/schema.ts +25 -1
- package/src/internal/schema/to-codec.ts +7 -17
- package/src/internal/trie.ts +21 -15
- package/src/testing/TestClock.ts +13 -11
- package/src/testing/TestSchema.ts +333 -36
- package/src/testing/index.ts +64 -1
- package/src/unstable/ai/AiError.ts +112 -54
- package/src/unstable/ai/AnthropicStructuredOutput.ts +7 -3
- package/src/unstable/ai/Chat.ts +137 -88
- package/src/unstable/ai/EmbeddingModel.ts +209 -0
- package/src/unstable/ai/IdGenerator.ts +2 -2
- package/src/unstable/ai/LanguageModel.ts +685 -255
- package/src/unstable/ai/McpSchema.ts +84 -22
- package/src/unstable/ai/McpServer.ts +299 -87
- package/src/unstable/ai/Model.ts +44 -13
- package/src/unstable/ai/OpenAiStructuredOutput.ts +9 -2
- package/src/unstable/ai/Prompt.ts +43 -49
- package/src/unstable/ai/Response.ts +31 -33
- package/src/unstable/ai/ResponseIdTracker.ts +95 -0
- package/src/unstable/ai/Telemetry.ts +2 -2
- package/src/unstable/ai/Tokenizer.ts +2 -2
- package/src/unstable/ai/Tool.ts +62 -36
- package/src/unstable/ai/Toolkit.ts +17 -26
- package/src/unstable/ai/index.ts +24 -1
- package/src/unstable/ai/internal/codec-transformer.ts +3 -9
- package/src/unstable/cli/Argument.ts +5 -8
- package/src/unstable/cli/CliError.ts +67 -66
- package/src/unstable/cli/CliOutput.ts +87 -15
- package/src/unstable/cli/Command.ts +808 -193
- package/src/unstable/cli/Completions.ts +107 -0
- package/src/unstable/cli/Flag.ts +5 -6
- package/src/unstable/cli/GlobalFlag.ts +242 -0
- package/src/unstable/cli/HelpDoc.ts +91 -11
- package/src/unstable/cli/Param.ts +54 -27
- package/src/unstable/cli/Primitive.ts +2 -2
- package/src/unstable/cli/Prompt.ts +275 -104
- package/src/unstable/cli/index.ts +10 -0
- package/src/unstable/cli/internal/command.ts +125 -64
- package/src/unstable/cli/internal/completions/bash.ts +7 -7
- package/src/unstable/cli/internal/completions/{CommandDescriptor.ts → descriptor.ts} +16 -58
- package/src/unstable/cli/internal/completions/fish.ts +7 -7
- package/src/unstable/cli/internal/completions/zsh.ts +8 -14
- package/src/unstable/cli/internal/config.ts +49 -0
- package/src/unstable/cli/internal/help.ts +171 -0
- package/src/unstable/cli/internal/parser.ts +201 -84
- package/src/unstable/cluster/ClusterCron.ts +2 -2
- package/src/unstable/cluster/ClusterSchema.ts +38 -10
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +144 -81
- package/src/unstable/cluster/DeliverAt.ts +1 -1
- package/src/unstable/cluster/Entity.ts +59 -45
- package/src/unstable/cluster/EntityAddress.ts +1 -1
- package/src/unstable/cluster/EntityProxy.ts +3 -3
- package/src/unstable/cluster/EntityProxyServer.ts +4 -4
- package/src/unstable/cluster/EntityResource.ts +6 -6
- package/src/unstable/cluster/Envelope.ts +1 -1
- package/src/unstable/cluster/HttpRunner.ts +2 -2
- package/src/unstable/cluster/K8sHttpClient.ts +7 -7
- package/src/unstable/cluster/Message.ts +30 -17
- package/src/unstable/cluster/MessageStorage.ts +76 -46
- package/src/unstable/cluster/Reply.ts +13 -10
- package/src/unstable/cluster/Runner.ts +1 -1
- package/src/unstable/cluster/RunnerAddress.ts +1 -1
- package/src/unstable/cluster/RunnerHealth.ts +2 -2
- package/src/unstable/cluster/RunnerServer.ts +11 -14
- package/src/unstable/cluster/RunnerStorage.ts +9 -9
- package/src/unstable/cluster/Runners.ts +28 -23
- package/src/unstable/cluster/ShardId.ts +84 -74
- package/src/unstable/cluster/Sharding.ts +83 -66
- package/src/unstable/cluster/ShardingConfig.ts +39 -40
- package/src/unstable/cluster/Snowflake.ts +2 -2
- package/src/unstable/cluster/SqlMessageStorage.ts +29 -20
- package/src/unstable/cluster/SqlRunnerStorage.ts +13 -7
- package/src/unstable/cluster/internal/entityManager.ts +66 -46
- package/src/unstable/cluster/internal/entityReaper.ts +4 -3
- package/src/unstable/cluster/internal/resourceMap.ts +3 -3
- package/src/unstable/cluster/internal/resourceRef.ts +2 -1
- package/src/unstable/devtools/DevToolsClient.ts +26 -21
- package/src/unstable/devtools/DevToolsSchema.ts +16 -3
- package/src/unstable/encoding/Ndjson.ts +17 -17
- package/src/unstable/encoding/Sse.ts +3 -5
- package/src/unstable/eventlog/Event.ts +0 -8
- package/src/unstable/eventlog/EventGroup.ts +0 -4
- package/src/unstable/eventlog/EventJournal.ts +148 -80
- package/src/unstable/eventlog/EventLog.ts +360 -233
- package/src/unstable/eventlog/EventLogEncryption.ts +18 -32
- package/src/unstable/eventlog/EventLogMessage.ts +277 -0
- package/src/unstable/eventlog/EventLogRemote.ts +264 -410
- package/src/unstable/eventlog/EventLogServer.ts +183 -275
- package/src/unstable/eventlog/EventLogServerEncrypted.ts +206 -0
- package/src/unstable/eventlog/EventLogServerUnencrypted.ts +749 -0
- package/src/unstable/eventlog/EventLogSessionAuth.ts +437 -0
- package/src/unstable/eventlog/{SqlEventLogJournal.ts → SqlEventJournal.ts} +38 -22
- package/src/unstable/eventlog/{SqlEventLogServer.ts → SqlEventLogServerEncrypted.ts} +110 -43
- package/src/unstable/eventlog/SqlEventLogServerUnencrypted.ts +506 -0
- package/src/unstable/eventlog/index.ts +27 -2
- package/src/unstable/eventlog/internal/identityRootSecretDerivation.ts +153 -0
- package/src/unstable/http/Cookies.ts +94 -11
- package/src/unstable/http/Etag.ts +7 -5
- package/src/unstable/http/FetchHttpClient.ts +5 -5
- package/src/unstable/http/Headers.ts +70 -20
- package/src/unstable/http/HttpClient.ts +385 -42
- package/src/unstable/http/HttpClientRequest.ts +151 -39
- package/src/unstable/http/HttpClientResponse.ts +12 -6
- package/src/unstable/http/HttpEffect.ts +86 -100
- package/src/unstable/http/HttpIncomingMessage.ts +5 -4
- package/src/unstable/http/HttpMethod.ts +16 -4
- package/src/unstable/http/HttpMiddleware.ts +50 -50
- package/src/unstable/http/HttpPlatform.ts +5 -4
- package/src/unstable/http/HttpRouter.ts +46 -46
- package/src/unstable/http/HttpServer.ts +5 -11
- package/src/unstable/http/HttpServerError.ts +45 -47
- package/src/unstable/http/HttpServerRequest.ts +414 -23
- package/src/unstable/http/HttpServerRespondable.ts +6 -6
- package/src/unstable/http/HttpServerResponse.ts +351 -13
- package/src/unstable/http/HttpStaticServer.ts +456 -0
- package/src/unstable/http/HttpTraceContext.ts +31 -17
- package/src/unstable/http/Multipart.ts +10 -10
- package/src/unstable/http/Url.ts +650 -0
- package/src/unstable/http/UrlParams.ts +31 -19
- package/src/unstable/http/index.ts +10 -0
- package/src/unstable/http/internal/preResponseHandler.ts +15 -0
- package/src/unstable/httpapi/HttpApi.ts +21 -21
- package/src/unstable/httpapi/HttpApiBuilder.ts +128 -55
- package/src/unstable/httpapi/HttpApiClient.ts +186 -34
- package/src/unstable/httpapi/HttpApiEndpoint.ts +225 -113
- package/src/unstable/httpapi/HttpApiError.ts +108 -30
- package/src/unstable/httpapi/HttpApiGroup.ts +18 -17
- package/src/unstable/httpapi/HttpApiMiddleware.ts +95 -33
- package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
- package/src/unstable/httpapi/HttpApiSchema.ts +106 -11
- package/src/unstable/httpapi/HttpApiSecurity.ts +13 -13
- package/src/unstable/httpapi/OpenApi.ts +73 -72
- package/src/unstable/observability/Otlp.ts +12 -12
- package/src/unstable/observability/OtlpExporter.ts +14 -10
- package/src/unstable/observability/OtlpLogger.ts +13 -9
- package/src/unstable/observability/OtlpMetrics.ts +6 -6
- package/src/unstable/observability/OtlpSerialization.ts +2 -2
- package/src/unstable/observability/OtlpTracer.ts +14 -10
- package/src/unstable/observability/PrometheusMetrics.ts +5 -5
- package/src/unstable/observability/internal/protobuf.ts +4 -4
- package/src/unstable/persistence/KeyValueStore.ts +230 -7
- package/src/unstable/persistence/Persistable.ts +3 -3
- package/src/unstable/persistence/PersistedCache.ts +35 -21
- package/src/unstable/persistence/PersistedQueue.ts +28 -27
- package/src/unstable/persistence/Persistence.ts +7 -7
- package/src/unstable/persistence/RateLimiter.ts +7 -7
- package/src/unstable/persistence/Redis.ts +2 -2
- package/src/unstable/process/ChildProcess.ts +6 -208
- package/src/unstable/process/ChildProcessSpawner.ts +120 -15
- package/src/unstable/reactivity/Atom.ts +280 -124
- package/src/unstable/reactivity/AtomHttpApi.ts +115 -59
- package/src/unstable/reactivity/AtomRegistry.ts +70 -16
- package/src/unstable/reactivity/AtomRpc.ts +82 -37
- package/src/unstable/reactivity/Reactivity.ts +6 -6
- package/src/unstable/reactivity/index.ts +2 -2
- package/src/unstable/rpc/Rpc.ts +77 -32
- package/src/unstable/rpc/RpcClient.ts +165 -145
- package/src/unstable/rpc/RpcGroup.ts +51 -34
- package/src/unstable/rpc/RpcMiddleware.ts +28 -22
- package/src/unstable/rpc/RpcSchema.ts +24 -6
- package/src/unstable/rpc/RpcSerialization.ts +97 -54
- package/src/unstable/rpc/RpcServer.ts +97 -69
- package/src/unstable/rpc/RpcWorker.ts +5 -5
- package/src/unstable/rpc/Utils.ts +65 -5
- package/src/unstable/schema/Model.ts +35 -6
- package/src/unstable/schema/VariantSchema.ts +14 -27
- package/src/unstable/socket/Socket.ts +42 -38
- package/src/unstable/socket/SocketServer.ts +2 -2
- package/src/unstable/sql/Migrator.ts +7 -5
- package/src/unstable/sql/SqlClient.ts +13 -11
- package/src/unstable/sql/SqlConnection.ts +2 -2
- package/src/unstable/sql/SqlError.ts +365 -11
- package/src/unstable/sql/SqlModel.ts +57 -85
- package/src/unstable/sql/SqlResolver.ts +26 -16
- package/src/unstable/sql/SqlSchema.ts +42 -26
- package/src/unstable/sql/Statement.ts +2 -3
- package/src/unstable/workers/Transferable.ts +17 -19
- package/src/unstable/workers/Worker.ts +6 -5
- package/src/unstable/workers/WorkerRunner.ts +2 -2
- package/src/unstable/workflow/Activity.ts +27 -4
- package/src/unstable/workflow/DurableClock.ts +11 -11
- package/src/unstable/workflow/DurableDeferred.ts +16 -16
- package/src/unstable/workflow/Workflow.ts +32 -25
- package/src/unstable/workflow/WorkflowEngine.ts +239 -25
- package/src/unstable/workflow/WorkflowProxyServer.ts +4 -4
- package/dist/NullOr.d.ts +0 -149
- package/dist/NullOr.d.ts.map +0 -1
- package/dist/NullOr.js +0 -152
- package/dist/NullOr.js.map +0 -1
- package/dist/ServiceMap.d.ts +0 -1126
- package/dist/ServiceMap.d.ts.map +0 -1
- package/dist/ServiceMap.js.map +0 -1
- package/dist/encoding/Base64.d.ts +0 -67
- package/dist/encoding/Base64.d.ts.map +0 -1
- package/dist/encoding/Base64.js +0 -146
- package/dist/encoding/Base64.js.map +0 -1
- package/dist/encoding/Base64Url.d.ts +0 -60
- package/dist/encoding/Base64Url.d.ts.map +0 -1
- package/dist/encoding/Base64Url.js +0 -89
- package/dist/encoding/Base64Url.js.map +0 -1
- package/dist/encoding/EncodingError.d.ts +0 -31
- package/dist/encoding/EncodingError.d.ts.map +0 -1
- package/dist/encoding/EncodingError.js +0 -22
- package/dist/encoding/EncodingError.js.map +0 -1
- package/dist/encoding/Hex.d.ts +0 -61
- package/dist/encoding/Hex.d.ts.map +0 -1
- package/dist/encoding/Hex.js +0 -115
- package/dist/encoding/Hex.js.map +0 -1
- package/dist/encoding/index.d.ts +0 -26
- package/dist/encoding/index.d.ts.map +0 -1
- package/dist/encoding/index.js +0 -27
- package/dist/encoding/index.js.map +0 -1
- package/dist/unstable/cli/internal/builtInFlags.d.ts +0 -7
- package/dist/unstable/cli/internal/builtInFlags.d.ts.map +0 -1
- package/dist/unstable/cli/internal/builtInFlags.js +0 -44
- package/dist/unstable/cli/internal/builtInFlags.js.map +0 -1
- package/dist/unstable/cli/internal/completions/CommandDescriptor.d.ts +0 -2
- package/dist/unstable/cli/internal/completions/CommandDescriptor.d.ts.map +0 -1
- package/dist/unstable/cli/internal/completions/CommandDescriptor.js.map +0 -1
- package/dist/unstable/cli/internal/completions/Completions.d.ts +0 -2
- package/dist/unstable/cli/internal/completions/Completions.d.ts.map +0 -1
- package/dist/unstable/cli/internal/completions/Completions.js +0 -23
- package/dist/unstable/cli/internal/completions/Completions.js.map +0 -1
- package/dist/unstable/eventlog/SqlEventLogJournal.d.ts.map +0 -1
- package/dist/unstable/eventlog/SqlEventLogJournal.js.map +0 -1
- package/dist/unstable/eventlog/SqlEventLogServer.d.ts.map +0 -1
- package/dist/unstable/eventlog/SqlEventLogServer.js.map +0 -1
- package/src/NullOr.ts +0 -204
- package/src/ServiceMap.ts +0 -1410
- package/src/encoding/Base64.ts +0 -366
- package/src/encoding/Base64Url.ts +0 -104
- package/src/encoding/EncodingError.ts +0 -35
- package/src/encoding/Hex.ts +0 -390
- package/src/encoding/index.ts +0 -31
- package/src/unstable/cli/internal/builtInFlags.ts +0 -78
- package/src/unstable/cli/internal/completions/Completions.ts +0 -31
package/src/Data.ts
CHANGED
|
@@ -1,137 +1,207 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* semantics. Unlike regular JavaScript objects, `Data` types support value-based
|
|
4
|
-
* equality comparison using the `Equal` module.
|
|
2
|
+
* Immutable data constructors with discriminated-union support.
|
|
5
3
|
*
|
|
6
|
-
* The
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
4
|
+
* The `Data` module provides base classes and factory functions for creating
|
|
5
|
+
* immutable value types with a `_tag` field for discriminated unions.
|
|
6
|
+
* It is the recommended way to define domain models, error types, and
|
|
7
|
+
* lightweight ADTs in Effect applications.
|
|
8
|
+
*
|
|
9
|
+
* ## Mental model
|
|
10
|
+
*
|
|
11
|
+
* - **`Class`** — base class for plain immutable data. Extend it with a type
|
|
12
|
+
* parameter to declare the fields. Instances are `Pipeable`.
|
|
13
|
+
* - **`TaggedClass`** — like `Class` but automatically adds a `readonly _tag`
|
|
14
|
+
* string literal field. Useful for single-variant types or ad-hoc tagged
|
|
15
|
+
* values.
|
|
16
|
+
* - **`TaggedEnum`** (type) + **`taggedEnum`** (value) — define a multi-variant
|
|
17
|
+
* discriminated union from a simple record. `taggedEnum()` returns per-variant
|
|
18
|
+
* constructors plus `$is` / `$match` helpers.
|
|
19
|
+
* - **`Error`** — like `Class` but extends `Cause.YieldableError`, so instances
|
|
20
|
+
* can be yielded inside `Effect.gen` to fail the effect.
|
|
21
|
+
* - **`TaggedError`** — like `TaggedClass` but extends `Cause.YieldableError`.
|
|
22
|
+
* Works with `Effect.catchTag` for tag-based error recovery.
|
|
23
|
+
*
|
|
24
|
+
* ## Common tasks
|
|
25
|
+
*
|
|
26
|
+
* - Define a simple value class → {@link Class}
|
|
27
|
+
* - Define a value class with a `_tag` → {@link TaggedClass}
|
|
28
|
+
* - Define a discriminated union with constructors → {@link TaggedEnum} + {@link taggedEnum}
|
|
29
|
+
* - Define a yieldable error → {@link Error}
|
|
30
|
+
* - Define a yieldable tagged error → {@link TaggedError}
|
|
31
|
+
* - Type-guard a tagged value → `$is` from {@link taggedEnum}
|
|
32
|
+
* - Pattern-match on a tagged union → `$match` from {@link taggedEnum}
|
|
33
|
+
*
|
|
34
|
+
* ## Gotchas
|
|
35
|
+
*
|
|
36
|
+
* - Variant records passed to `TaggedEnum` must **not** contain a `_tag` key;
|
|
37
|
+
* the `_tag` is added automatically from the record key.
|
|
38
|
+
* - When a class has no fields, the constructor argument is optional (`void`).
|
|
39
|
+
* - `taggedEnum()` creates **plain objects**, not class instances. If you need
|
|
40
|
+
* class-based variants, use `TaggedClass` or `TaggedError` instead.
|
|
41
|
+
* - `TaggedEnum.WithGenerics` supports up to 4 generic type parameters.
|
|
42
|
+
*
|
|
43
|
+
* ## Quickstart
|
|
44
|
+
*
|
|
45
|
+
* **Example** (tagged union with pattern matching)
|
|
46
|
+
*
|
|
47
|
+
* ```ts
|
|
48
|
+
* import { Data } from "effect"
|
|
49
|
+
*
|
|
50
|
+
* type Shape = Data.TaggedEnum<{
|
|
51
|
+
* Circle: { readonly radius: number }
|
|
52
|
+
* Rect: { readonly width: number; readonly height: number }
|
|
53
|
+
* }>
|
|
54
|
+
* const { Circle, Rect, $match } = Data.taggedEnum<Shape>()
|
|
55
|
+
*
|
|
56
|
+
* const area = $match({
|
|
57
|
+
* Circle: ({ radius }) => Math.PI * radius ** 2,
|
|
58
|
+
* Rect: ({ width, height }) => width * height
|
|
59
|
+
* })
|
|
60
|
+
*
|
|
61
|
+
* console.log(area(Circle({ radius: 5 })))
|
|
62
|
+
* // 78.53981633974483
|
|
63
|
+
* console.log(area(Rect({ width: 3, height: 4 })))
|
|
64
|
+
* // 12
|
|
65
|
+
* ```
|
|
66
|
+
*
|
|
67
|
+
* @see {@link Class} — plain immutable data class
|
|
68
|
+
* @see {@link TaggedEnum} — discriminated union type
|
|
69
|
+
* @see {@link taggedEnum} — discriminated union constructors
|
|
70
|
+
* @see {@link TaggedError} — yieldable tagged error class
|
|
11
71
|
*
|
|
12
72
|
* @since 2.0.0
|
|
13
73
|
*/
|
|
14
74
|
import type * as Cause from "./Cause.ts"
|
|
15
75
|
import * as core from "./internal/core.ts"
|
|
76
|
+
import * as Pipeable from "./Pipeable.ts"
|
|
16
77
|
import * as Predicate from "./Predicate.ts"
|
|
17
78
|
import type * as Types from "./Types.ts"
|
|
18
79
|
import type { Unify } from "./Unify.ts"
|
|
19
80
|
|
|
20
81
|
/**
|
|
21
|
-
*
|
|
82
|
+
* Base class for immutable data types.
|
|
83
|
+
*
|
|
84
|
+
* Extend `Class` with a type parameter to declare fields. The constructor
|
|
85
|
+
* accepts those fields as a single object argument. When there are no fields
|
|
86
|
+
* the argument is optional.
|
|
87
|
+
*
|
|
88
|
+
* - Use when you need a lightweight immutable value type with `.pipe()` support.
|
|
89
|
+
* - Instances are `Readonly` and `Pipeable`.
|
|
90
|
+
* - If you also need a `_tag` discriminator, use {@link TaggedClass} instead.
|
|
91
|
+
* - If you need a yieldable error, use {@link Error} or {@link TaggedError}.
|
|
92
|
+
*
|
|
93
|
+
* **Example** (defining a value class)
|
|
22
94
|
*
|
|
23
|
-
* @example
|
|
24
95
|
* ```ts
|
|
25
96
|
* import { Data, Equal } from "effect"
|
|
26
|
-
* import * as assert from "node:assert"
|
|
27
97
|
*
|
|
28
98
|
* class Person extends Data.Class<{ readonly name: string }> {}
|
|
29
99
|
*
|
|
30
|
-
* // Creating instances of Person
|
|
31
100
|
* const mike1 = new Person({ name: "Mike" })
|
|
32
101
|
* const mike2 = new Person({ name: "Mike" })
|
|
33
|
-
* const john = new Person({ name: "John" })
|
|
34
102
|
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
* assert.deepStrictEqual(Equal.equals(mike1, john), false)
|
|
103
|
+
* console.log(Equal.equals(mike1, mike2))
|
|
104
|
+
* // true
|
|
38
105
|
* ```
|
|
39
106
|
*
|
|
40
|
-
* @
|
|
107
|
+
* @see {@link TaggedClass} — adds a `_tag` field
|
|
108
|
+
* @see {@link Error} — yieldable error variant
|
|
109
|
+
*
|
|
41
110
|
* @category constructors
|
|
111
|
+
* @since 2.0.0
|
|
42
112
|
*/
|
|
43
113
|
export const Class: new<A extends Record<string, any> = {}>(
|
|
44
|
-
args: Types.
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
114
|
+
args: Types.VoidIfEmpty<{ readonly [P in keyof A]: A[P] }>
|
|
115
|
+
) => Readonly<A> & Pipeable.Pipeable = class extends Pipeable.Class {
|
|
116
|
+
constructor(props: any) {
|
|
117
|
+
super()
|
|
118
|
+
if (props) {
|
|
119
|
+
Object.assign(this, props)
|
|
120
|
+
}
|
|
49
121
|
}
|
|
50
122
|
} as any
|
|
51
123
|
|
|
52
124
|
/**
|
|
53
|
-
*
|
|
125
|
+
* Base class for immutable data types with a `_tag` discriminator.
|
|
54
126
|
*
|
|
55
|
-
* @
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
* import * as assert from "node:assert"
|
|
127
|
+
* Like {@link Class}, but the resulting instances also carry a
|
|
128
|
+
* `readonly _tag: Tag` property. The `_tag` is excluded from the constructor
|
|
129
|
+
* argument.
|
|
59
130
|
*
|
|
60
|
-
*
|
|
131
|
+
* - Use when you need a single-variant tagged type or an ad-hoc discriminator.
|
|
132
|
+
* - For multi-variant unions, prefer {@link TaggedEnum} + {@link taggedEnum}.
|
|
133
|
+
* - For yieldable errors, use {@link TaggedError}.
|
|
61
134
|
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
135
|
+
* **Example** (defining a tagged class)
|
|
136
|
+
*
|
|
137
|
+
* ```ts
|
|
138
|
+
* import { Data } from "effect"
|
|
66
139
|
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
140
|
+
* class Person extends Data.TaggedClass("Person")<{
|
|
141
|
+
* readonly name: string
|
|
142
|
+
* }> {}
|
|
70
143
|
*
|
|
71
|
-
*
|
|
144
|
+
* const mike = new Person({ name: "Mike" })
|
|
145
|
+
* console.log(mike._tag)
|
|
146
|
+
* // "Person"
|
|
72
147
|
* ```
|
|
73
148
|
*
|
|
74
|
-
* @
|
|
149
|
+
* @see {@link Class} — without a `_tag`
|
|
150
|
+
* @see {@link TaggedError} — tagged error variant
|
|
151
|
+
* @see {@link TaggedEnum} — multi-variant unions
|
|
152
|
+
*
|
|
75
153
|
* @category constructors
|
|
154
|
+
* @since 2.0.0
|
|
76
155
|
*/
|
|
77
156
|
export const TaggedClass = <Tag extends string>(
|
|
78
157
|
tag: Tag
|
|
79
158
|
): new<A extends Record<string, any> = {}>(
|
|
80
|
-
args: Types.
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
this._tag = tag
|
|
85
|
-
if (props) {
|
|
86
|
-
Object.assign(this, props)
|
|
87
|
-
}
|
|
159
|
+
args: Types.VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }>
|
|
160
|
+
) => Readonly<A> & { readonly _tag: Tag } & Pipeable.Pipeable =>
|
|
161
|
+
class extends Class {
|
|
162
|
+
readonly _tag = tag
|
|
88
163
|
} as any
|
|
89
164
|
|
|
90
165
|
/**
|
|
91
|
-
*
|
|
166
|
+
* Transforms a record of variant definitions into a discriminated union type.
|
|
167
|
+
*
|
|
168
|
+
* Each key in the record becomes a variant with `readonly _tag` set to that
|
|
169
|
+
* key. Use with {@link taggedEnum} to get runtime constructors, type guards,
|
|
170
|
+
* and pattern matching.
|
|
92
171
|
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
172
|
+
* - Use when you have two or more variants that share a common `_tag`
|
|
173
|
+
* discriminator.
|
|
174
|
+
* - Variant records must **not** include a `_tag` property — it is added
|
|
175
|
+
* automatically.
|
|
176
|
+
* - For generic tagged enums, see {@link TaggedEnum.WithGenerics}.
|
|
177
|
+
*
|
|
178
|
+
* **Example** (defining a tagged enum)
|
|
95
179
|
*
|
|
96
|
-
* @example
|
|
97
180
|
* ```ts
|
|
98
181
|
* import { Data } from "effect"
|
|
99
182
|
*
|
|
100
|
-
* // Define a tagged enum type
|
|
101
183
|
* type HttpError = Data.TaggedEnum<{
|
|
102
184
|
* BadRequest: { readonly status: 400; readonly message: string }
|
|
103
|
-
* NotFound: { readonly status: 404
|
|
104
|
-
* InternalError: { readonly status: 500; readonly details: string }
|
|
185
|
+
* NotFound: { readonly status: 404 }
|
|
105
186
|
* }>
|
|
106
187
|
*
|
|
107
|
-
* //
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
*
|
|
112
|
-
*
|
|
113
|
-
*
|
|
114
|
-
*
|
|
115
|
-
*
|
|
116
|
-
* readonly status: 404
|
|
117
|
-
* readonly message: string
|
|
118
|
-
* }
|
|
119
|
-
* | {
|
|
120
|
-
* readonly _tag: "InternalError"
|
|
121
|
-
* readonly status: 500
|
|
122
|
-
* readonly details: string
|
|
123
|
-
* }
|
|
124
|
-
*
|
|
125
|
-
* // Usage with constructors
|
|
126
|
-
* const { BadRequest, InternalError, NotFound } = Data.taggedEnum<HttpError>()
|
|
127
|
-
*
|
|
128
|
-
* const error: HttpError = BadRequest({ status: 400, message: "Invalid request" })
|
|
129
|
-
* console.log(error._tag) // "BadRequest"
|
|
130
|
-
* console.log(error.status) // 400
|
|
188
|
+
* // Equivalent to:
|
|
189
|
+
* // | { readonly _tag: "BadRequest"; readonly status: 400; readonly message: string }
|
|
190
|
+
* // | { readonly _tag: "NotFound"; readonly status: 404 }
|
|
191
|
+
*
|
|
192
|
+
* const { BadRequest, NotFound } = Data.taggedEnum<HttpError>()
|
|
193
|
+
*
|
|
194
|
+
* const err = BadRequest({ status: 400, message: "missing id" })
|
|
195
|
+
* console.log(err._tag)
|
|
196
|
+
* // "BadRequest"
|
|
131
197
|
* ```
|
|
132
198
|
*
|
|
133
|
-
* @
|
|
199
|
+
* @see {@link taggedEnum} — runtime constructors for a `TaggedEnum`
|
|
200
|
+
* @see {@link TaggedEnum.WithGenerics} — generic tagged enums
|
|
201
|
+
* @see {@link TaggedEnum.Constructor} — the constructor object type
|
|
202
|
+
*
|
|
134
203
|
* @category models
|
|
204
|
+
* @since 2.0.0
|
|
135
205
|
*/
|
|
136
206
|
export type TaggedEnum<
|
|
137
207
|
A extends Record<string, Record<string, any>> & UntaggedChildren<A>
|
|
@@ -151,52 +221,53 @@ type UntaggedChildren<A> = true extends ChildrenAreTagged<A>
|
|
|
151
221
|
: unknown
|
|
152
222
|
|
|
153
223
|
/**
|
|
154
|
-
*
|
|
155
|
-
*
|
|
156
|
-
* This namespace contains types and utilities for working with tagged enums,
|
|
157
|
-
* which are discriminated unions with structural equality semantics.
|
|
158
|
-
*
|
|
159
|
-
* @example
|
|
160
|
-
* ```ts
|
|
161
|
-
* import { Data } from "effect"
|
|
162
|
-
*
|
|
163
|
-
* // Basic tagged enum usage
|
|
164
|
-
* const { Failure, Success } = Data.taggedEnum<
|
|
165
|
-
* | { readonly _tag: "Success"; readonly value: number }
|
|
166
|
-
* | { readonly _tag: "Failure"; readonly error: string }
|
|
167
|
-
* >()
|
|
224
|
+
* Namespace for `TaggedEnum` utility types.
|
|
168
225
|
*
|
|
169
|
-
*
|
|
170
|
-
*
|
|
171
|
-
*
|
|
172
|
-
*
|
|
226
|
+
* Provides helper types for:
|
|
227
|
+
* - Generic tagged enums ({@link TaggedEnum.WithGenerics}, {@link TaggedEnum.Kind})
|
|
228
|
+
* - Extracting constructor arguments ({@link TaggedEnum.Args}) and variant
|
|
229
|
+
* values ({@link TaggedEnum.Value})
|
|
230
|
+
* - Full constructor objects ({@link TaggedEnum.Constructor})
|
|
173
231
|
*
|
|
174
|
-
* @since 2.0.0
|
|
175
232
|
* @category types
|
|
233
|
+
* @since 2.0.0
|
|
176
234
|
*/
|
|
177
235
|
export declare namespace TaggedEnum {
|
|
178
236
|
/**
|
|
179
|
-
*
|
|
180
|
-
*
|
|
181
|
-
*
|
|
237
|
+
* Defines a tagged enum shape that accepts generic type parameters.
|
|
238
|
+
*
|
|
239
|
+
* Extend this interface and set `taggedEnum` to your union type, using
|
|
240
|
+
* `this["A"]`, `this["B"]`, etc. as placeholders for the generics. The
|
|
241
|
+
* `Count` parameter declares how many generics are used (up to 4).
|
|
242
|
+
*
|
|
243
|
+
* - Use when variant payloads need to be parameterized (e.g., `Result<E, A>`).
|
|
244
|
+
* - Pass the interface (not the type alias) to {@link taggedEnum} to get
|
|
245
|
+
* generic-aware constructors.
|
|
246
|
+
*
|
|
247
|
+
* **Example** (generic tagged enum)
|
|
182
248
|
*
|
|
183
|
-
* @example
|
|
184
249
|
* ```ts
|
|
185
|
-
* import
|
|
250
|
+
* import { Data } from "effect"
|
|
186
251
|
*
|
|
187
|
-
*
|
|
188
|
-
*
|
|
189
|
-
* readonly
|
|
190
|
-
*
|
|
191
|
-
*
|
|
252
|
+
* type MyResult<E, A> = Data.TaggedEnum<{
|
|
253
|
+
* Failure: { readonly error: E }
|
|
254
|
+
* Success: { readonly value: A }
|
|
255
|
+
* }>
|
|
256
|
+
*
|
|
257
|
+
* interface MyResultDef extends Data.TaggedEnum.WithGenerics<2> {
|
|
258
|
+
* readonly taggedEnum: MyResult<this["A"], this["B"]>
|
|
192
259
|
* }
|
|
193
260
|
*
|
|
194
|
-
*
|
|
195
|
-
*
|
|
261
|
+
* const { Failure, Success } = Data.taggedEnum<MyResultDef>()
|
|
262
|
+
*
|
|
263
|
+
* const ok = Success({ value: 42 })
|
|
264
|
+
* // ok: { readonly _tag: "Success"; readonly value: number }
|
|
196
265
|
* ```
|
|
197
266
|
*
|
|
267
|
+
* @see {@link Kind} — apply concrete types to a `WithGenerics` definition
|
|
268
|
+
* @see {@link taggedEnum} — runtime constructors
|
|
269
|
+
*
|
|
198
270
|
* @since 2.0.0
|
|
199
|
-
* @category models
|
|
200
271
|
*/
|
|
201
272
|
export interface WithGenerics<Count extends number> {
|
|
202
273
|
readonly taggedEnum: { readonly _tag: string }
|
|
@@ -209,45 +280,33 @@ export declare namespace TaggedEnum {
|
|
|
209
280
|
}
|
|
210
281
|
|
|
211
282
|
/**
|
|
212
|
-
*
|
|
283
|
+
* Applies concrete type arguments to a `WithGenerics` definition, producing
|
|
284
|
+
* the resulting tagged union type.
|
|
285
|
+
*
|
|
286
|
+
* - Use to refer to a specific instantiation of a generic tagged enum in
|
|
287
|
+
* type signatures.
|
|
213
288
|
*
|
|
214
|
-
*
|
|
215
|
-
* parameters to create a concrete tagged enum type.
|
|
289
|
+
* **Example** (applying generics)
|
|
216
290
|
*
|
|
217
|
-
* @example
|
|
218
291
|
* ```ts
|
|
219
292
|
* import type { Data } from "effect"
|
|
220
293
|
*
|
|
221
|
-
* // Define a generic Option type
|
|
222
294
|
* type Option<A> = Data.TaggedEnum<{
|
|
223
295
|
* None: {}
|
|
224
296
|
* Some: { readonly value: A }
|
|
225
297
|
* }>
|
|
226
|
-
*
|
|
227
|
-
* interface OptionDefinition extends Data.TaggedEnum.WithGenerics<1> {
|
|
298
|
+
* interface OptionDef extends Data.TaggedEnum.WithGenerics<1> {
|
|
228
299
|
* readonly taggedEnum: Option<this["A"]>
|
|
229
300
|
* }
|
|
230
301
|
*
|
|
231
|
-
* //
|
|
232
|
-
* type StringOption = Data.TaggedEnum.Kind<
|
|
233
|
-
* //
|
|
234
|
-
*
|
|
235
|
-
* type NumberOption = Data.TaggedEnum.Kind<OptionDefinition, number>
|
|
236
|
-
* // Result: { readonly _tag: "None" } | { readonly _tag: "Some"; readonly value: number }
|
|
237
|
-
*
|
|
238
|
-
* // Usage in type-safe functions
|
|
239
|
-
* const processOption = (opt: StringOption): string => {
|
|
240
|
-
* switch (opt._tag) {
|
|
241
|
-
* case "None":
|
|
242
|
-
* return "No value"
|
|
243
|
-
* case "Some":
|
|
244
|
-
* return `Value: ${opt.value}`
|
|
245
|
-
* }
|
|
246
|
-
* }
|
|
302
|
+
* // Resolve to the concrete union for `string`
|
|
303
|
+
* type StringOption = Data.TaggedEnum.Kind<OptionDef, string>
|
|
304
|
+
* // { _tag: "None" } | { _tag: "Some"; value: string }
|
|
247
305
|
* ```
|
|
248
306
|
*
|
|
307
|
+
* @see {@link WithGenerics} — define the generic shape
|
|
308
|
+
*
|
|
249
309
|
* @since 2.0.0
|
|
250
|
-
* @category models
|
|
251
310
|
*/
|
|
252
311
|
export type Kind<
|
|
253
312
|
Z extends WithGenerics<number>,
|
|
@@ -263,30 +322,30 @@ export declare namespace TaggedEnum {
|
|
|
263
322
|
})["taggedEnum"]
|
|
264
323
|
|
|
265
324
|
/**
|
|
266
|
-
* Extracts the argument
|
|
325
|
+
* Extracts the constructor argument type for a specific variant of a tagged
|
|
326
|
+
* union.
|
|
267
327
|
*
|
|
268
|
-
*
|
|
269
|
-
*
|
|
328
|
+
* Returns `void` if the variant has no fields beyond `_tag`.
|
|
329
|
+
*
|
|
330
|
+
* **Example** (extracting variant args)
|
|
270
331
|
*
|
|
271
|
-
* @example
|
|
272
332
|
* ```ts
|
|
273
333
|
* import type { Data } from "effect"
|
|
274
334
|
*
|
|
275
335
|
* type Result =
|
|
276
|
-
* | { readonly _tag: "
|
|
277
|
-
* | { readonly _tag: "
|
|
336
|
+
* | { readonly _tag: "Ok"; readonly value: number }
|
|
337
|
+
* | { readonly _tag: "Err"; readonly error: string }
|
|
278
338
|
*
|
|
279
|
-
*
|
|
280
|
-
*
|
|
281
|
-
* // Result: { readonly value: number }
|
|
339
|
+
* type OkArgs = Data.TaggedEnum.Args<Result, "Ok">
|
|
340
|
+
* // { readonly value: number }
|
|
282
341
|
*
|
|
283
|
-
*
|
|
284
|
-
*
|
|
285
|
-
* // Result: { readonly error: string }
|
|
342
|
+
* type ErrArgs = Data.TaggedEnum.Args<Result, "Err">
|
|
343
|
+
* // { readonly error: string }
|
|
286
344
|
* ```
|
|
287
345
|
*
|
|
346
|
+
* @see {@link Value} — extracts the full variant type (including `_tag`)
|
|
347
|
+
*
|
|
288
348
|
* @since 2.0.0
|
|
289
|
-
* @category types
|
|
290
349
|
*/
|
|
291
350
|
export type Args<
|
|
292
351
|
A extends { readonly _tag: string },
|
|
@@ -294,35 +353,28 @@ export declare namespace TaggedEnum {
|
|
|
294
353
|
E = Extract<A, { readonly _tag: K }>
|
|
295
354
|
> = {
|
|
296
355
|
readonly [K in keyof E as K extends "_tag" ? never : K]: E[K]
|
|
297
|
-
} extends infer T ?
|
|
298
|
-
: T
|
|
356
|
+
} extends infer T ? Types.VoidIfEmpty<T>
|
|
299
357
|
: never
|
|
300
358
|
|
|
301
359
|
/**
|
|
302
|
-
* Extracts the
|
|
360
|
+
* Extracts the full variant type (including `_tag`) for a specific tag.
|
|
303
361
|
*
|
|
304
|
-
*
|
|
305
|
-
* for a specific variant of a tagged enum.
|
|
362
|
+
* **Example** (extracting a variant type)
|
|
306
363
|
*
|
|
307
|
-
* @example
|
|
308
364
|
* ```ts
|
|
309
365
|
* import type { Data } from "effect"
|
|
310
366
|
*
|
|
311
367
|
* type Result =
|
|
312
|
-
* | { readonly _tag: "
|
|
313
|
-
* | { readonly _tag: "
|
|
368
|
+
* | { readonly _tag: "Ok"; readonly value: number }
|
|
369
|
+
* | { readonly _tag: "Err"; readonly error: string }
|
|
314
370
|
*
|
|
315
|
-
*
|
|
316
|
-
*
|
|
317
|
-
* // Result: { readonly _tag: "Success"; readonly value: number }
|
|
318
|
-
*
|
|
319
|
-
* // Extract complete Failure type
|
|
320
|
-
* type FailureValue = Data.TaggedEnum.Value<Result, "Failure">
|
|
321
|
-
* // Result: { readonly _tag: "Failure"; readonly error: string }
|
|
371
|
+
* type OkVariant = Data.TaggedEnum.Value<Result, "Ok">
|
|
372
|
+
* // { readonly _tag: "Ok"; readonly value: number }
|
|
322
373
|
* ```
|
|
323
374
|
*
|
|
375
|
+
* @see {@link Args} — extracts fields without `_tag`
|
|
376
|
+
*
|
|
324
377
|
* @since 2.0.0
|
|
325
|
-
* @category types
|
|
326
378
|
*/
|
|
327
379
|
export type Value<
|
|
328
380
|
A extends { readonly _tag: string },
|
|
@@ -330,37 +382,40 @@ export declare namespace TaggedEnum {
|
|
|
330
382
|
> = Extract<A, { readonly _tag: K }>
|
|
331
383
|
|
|
332
384
|
/**
|
|
333
|
-
*
|
|
385
|
+
* The full constructor-object type returned by {@link taggedEnum}.
|
|
334
386
|
*
|
|
335
|
-
*
|
|
336
|
-
* -
|
|
337
|
-
* - `$is`
|
|
338
|
-
* - `$match`
|
|
387
|
+
* Includes:
|
|
388
|
+
* - A constructor function for each variant (keyed by tag name)
|
|
389
|
+
* - `$is(tag)` — returns a type-guard for the given variant
|
|
390
|
+
* - `$match` — exhaustive pattern matching (data-last or data-first)
|
|
391
|
+
*
|
|
392
|
+
* **Example** (using the constructor object)
|
|
339
393
|
*
|
|
340
|
-
* @example
|
|
341
394
|
* ```ts
|
|
342
395
|
* import { Data } from "effect"
|
|
343
396
|
*
|
|
344
|
-
* type
|
|
345
|
-
* | { readonly _tag: "
|
|
346
|
-
* | { readonly _tag: "
|
|
397
|
+
* type Shape =
|
|
398
|
+
* | { readonly _tag: "Circle"; readonly radius: number }
|
|
399
|
+
* | { readonly _tag: "Rect"; readonly w: number; readonly h: number }
|
|
347
400
|
*
|
|
348
|
-
* const { $is, $match
|
|
401
|
+
* const { Circle, Rect, $is, $match } = Data.taggedEnum<Shape>()
|
|
349
402
|
*
|
|
350
|
-
* const
|
|
403
|
+
* const shape = Circle({ radius: 10 })
|
|
351
404
|
*
|
|
352
|
-
* // Type
|
|
353
|
-
* if ($is("
|
|
354
|
-
* console.log(
|
|
405
|
+
* // Type guard
|
|
406
|
+
* if ($is("Circle")(shape)) {
|
|
407
|
+
* console.log(shape.radius)
|
|
355
408
|
* }
|
|
356
409
|
*
|
|
357
410
|
* // Pattern matching
|
|
358
|
-
* const
|
|
359
|
-
*
|
|
360
|
-
*
|
|
411
|
+
* const label = $match(shape, {
|
|
412
|
+
* Circle: (s) => `circle r=${s.radius}`,
|
|
413
|
+
* Rect: (s) => `rect ${s.w}x${s.h}`
|
|
361
414
|
* })
|
|
362
415
|
* ```
|
|
363
416
|
*
|
|
417
|
+
* @see {@link taggedEnum} — creates a `Constructor`
|
|
418
|
+
*
|
|
364
419
|
* @since 3.1.0
|
|
365
420
|
* @category types
|
|
366
421
|
*/
|
|
@@ -399,52 +454,26 @@ export declare namespace TaggedEnum {
|
|
|
399
454
|
>
|
|
400
455
|
|
|
401
456
|
/**
|
|
457
|
+
* Function type that constructs a tagged-union variant from its fields,
|
|
458
|
+
* excluding the keys listed in `Tag`.
|
|
459
|
+
*
|
|
460
|
+
* Returns `void` when no fields remain after excluding `Tag` keys.
|
|
461
|
+
*
|
|
402
462
|
* @since 4.0.0
|
|
403
|
-
* @category types
|
|
404
463
|
*/
|
|
405
464
|
export type ConstructorFrom<A, Tag extends keyof A = never> = (
|
|
406
|
-
args: Types.
|
|
407
|
-
: { readonly [P in keyof A as P extends Tag ? never : P]: A[P] }
|
|
465
|
+
args: Types.VoidIfEmpty<{ readonly [P in keyof A as P extends Tag ? never : P]: A[P] }>
|
|
408
466
|
) => A
|
|
409
467
|
|
|
410
468
|
/**
|
|
411
|
-
*
|
|
412
|
-
*
|
|
413
|
-
* This interface provides `$is` and `$match` utilities for tagged enums
|
|
414
|
-
* that use generics, ensuring type safety across different generic instantiations.
|
|
415
|
-
*
|
|
416
|
-
* @example
|
|
417
|
-
* ```ts
|
|
418
|
-
* import { Data } from "effect"
|
|
419
|
-
*
|
|
420
|
-
* type Result<E, A> = Data.TaggedEnum<{
|
|
421
|
-
* Failure: { readonly error: E }
|
|
422
|
-
* Success: { readonly value: A }
|
|
423
|
-
* }>
|
|
424
|
-
*
|
|
425
|
-
* interface ResultDefinition extends Data.TaggedEnum.WithGenerics<2> {
|
|
426
|
-
* readonly taggedEnum: Result<this["A"], this["B"]>
|
|
427
|
-
* }
|
|
428
|
-
*
|
|
429
|
-
* const { $is, $match, Failure, Success } = Data.taggedEnum<ResultDefinition>()
|
|
430
|
-
*
|
|
431
|
-
* const stringResult = Success({ value: "hello" })
|
|
432
|
-
* const numberResult = Failure({ error: 404 })
|
|
469
|
+
* Type-guard and pattern-matching interface for generic tagged enums.
|
|
433
470
|
*
|
|
434
|
-
*
|
|
435
|
-
*
|
|
436
|
-
* console.log(stringResult.value) // TypeScript knows this is string
|
|
437
|
-
* }
|
|
471
|
+
* This is the `$is` / `$match` portion of the object returned by
|
|
472
|
+
* {@link taggedEnum} when used with a {@link WithGenerics} definition.
|
|
438
473
|
*
|
|
439
|
-
*
|
|
440
|
-
* const message = $match(numberResult, {
|
|
441
|
-
* Success: ({ value }) => `Value: ${value}`,
|
|
442
|
-
* Failure: ({ error }) => `Error: ${error}`
|
|
443
|
-
* })
|
|
444
|
-
* ```
|
|
474
|
+
* @see {@link Constructor} — the non-generic equivalent
|
|
445
475
|
*
|
|
446
476
|
* @since 3.2.0
|
|
447
|
-
* @category types
|
|
448
477
|
*/
|
|
449
478
|
export interface GenericMatchers<Z extends WithGenerics<number>> {
|
|
450
479
|
readonly $is: <Tag extends Z["taggedEnum"]["_tag"]>(
|
|
@@ -496,88 +525,128 @@ export declare namespace TaggedEnum {
|
|
|
496
525
|
}
|
|
497
526
|
|
|
498
527
|
/**
|
|
499
|
-
*
|
|
528
|
+
* Creates runtime constructors, type guards, and pattern matching for a
|
|
529
|
+
* {@link TaggedEnum} type.
|
|
530
|
+
*
|
|
531
|
+
* Returns an object with:
|
|
532
|
+
* - One constructor per variant (keyed by tag name)
|
|
533
|
+
* - `$is(tag)` — returns a type-guard function
|
|
534
|
+
* - `$match` — exhaustive pattern matching (data-first or data-last)
|
|
535
|
+
*
|
|
536
|
+
* - Use when you have a `TaggedEnum` type and need to construct/inspect values.
|
|
537
|
+
* - Constructors produce **plain objects** (not class instances).
|
|
538
|
+
* - For generic enums, pass a {@link TaggedEnum.WithGenerics} interface.
|
|
500
539
|
*
|
|
501
|
-
*
|
|
502
|
-
* the constructor.
|
|
540
|
+
* **Example** (basic usage)
|
|
503
541
|
*
|
|
504
|
-
* @example
|
|
505
542
|
* ```ts
|
|
506
543
|
* import { Data } from "effect"
|
|
507
544
|
*
|
|
508
|
-
*
|
|
509
|
-
*
|
|
510
|
-
*
|
|
511
|
-
*
|
|
512
|
-
*
|
|
513
|
-
*
|
|
514
|
-
*
|
|
515
|
-
*
|
|
516
|
-
*
|
|
517
|
-
*
|
|
518
|
-
*
|
|
519
|
-
*
|
|
520
|
-
*
|
|
521
|
-
* const
|
|
545
|
+
* type HttpError = Data.TaggedEnum<{
|
|
546
|
+
* BadRequest: { readonly message: string }
|
|
547
|
+
* NotFound: { readonly url: string }
|
|
548
|
+
* }>
|
|
549
|
+
*
|
|
550
|
+
* const { BadRequest, NotFound, $is, $match } = Data.taggedEnum<HttpError>()
|
|
551
|
+
*
|
|
552
|
+
* const err = NotFound({ url: "/missing" })
|
|
553
|
+
*
|
|
554
|
+
* // Type guard
|
|
555
|
+
* console.log($is("NotFound")(err)) // true
|
|
556
|
+
*
|
|
557
|
+
* // Pattern matching
|
|
558
|
+
* const msg = $match(err, {
|
|
559
|
+
* BadRequest: (e) => e.message,
|
|
560
|
+
* NotFound: (e) => `${e.url} not found`
|
|
561
|
+
* })
|
|
562
|
+
* console.log(msg) // "/missing not found"
|
|
522
563
|
* ```
|
|
523
564
|
*
|
|
524
|
-
*
|
|
565
|
+
* **Example** (generic tagged enum)
|
|
566
|
+
*
|
|
567
|
+
* ```ts
|
|
525
568
|
* import { Data } from "effect"
|
|
526
569
|
*
|
|
527
570
|
* type MyResult<E, A> = Data.TaggedEnum<{
|
|
528
571
|
* Failure: { readonly error: E }
|
|
529
572
|
* Success: { readonly value: A }
|
|
530
573
|
* }>
|
|
531
|
-
* interface
|
|
574
|
+
* interface MyResultDef extends Data.TaggedEnum.WithGenerics<2> {
|
|
532
575
|
* readonly taggedEnum: MyResult<this["A"], this["B"]>
|
|
533
576
|
* }
|
|
534
|
-
* const { Failure, Success } = Data.taggedEnum<
|
|
577
|
+
* const { Failure, Success } = Data.taggedEnum<MyResultDef>()
|
|
535
578
|
*
|
|
536
|
-
* const
|
|
579
|
+
* const ok = Success({ value: 42 })
|
|
580
|
+
* // ok: { readonly _tag: "Success"; readonly value: number }
|
|
581
|
+
* ```
|
|
582
|
+
*
|
|
583
|
+
* @see {@link TaggedEnum} — the type-level companion
|
|
584
|
+
* @see {@link TaggedEnum.Constructor} — the returned object type
|
|
585
|
+
* @see {@link TaggedEnum.WithGenerics} — generic enum support
|
|
537
586
|
*
|
|
538
587
|
* @category constructors
|
|
539
588
|
* @since 2.0.0
|
|
540
589
|
*/
|
|
541
590
|
export const taggedEnum: {
|
|
542
591
|
/**
|
|
543
|
-
*
|
|
592
|
+
* Creates runtime constructors, type guards, and pattern matching for a
|
|
593
|
+
* {@link TaggedEnum} type.
|
|
594
|
+
*
|
|
595
|
+
* Returns an object with:
|
|
596
|
+
* - One constructor per variant (keyed by tag name)
|
|
597
|
+
* - `$is(tag)` — returns a type-guard function
|
|
598
|
+
* - `$match` — exhaustive pattern matching (data-first or data-last)
|
|
544
599
|
*
|
|
545
|
-
*
|
|
546
|
-
*
|
|
600
|
+
* - Use when you have a `TaggedEnum` type and need to construct/inspect values.
|
|
601
|
+
* - Constructors produce **plain objects** (not class instances).
|
|
602
|
+
* - For generic enums, pass a {@link TaggedEnum.WithGenerics} interface.
|
|
603
|
+
*
|
|
604
|
+
* **Example** (basic usage)
|
|
547
605
|
*
|
|
548
|
-
* @example
|
|
549
606
|
* ```ts
|
|
550
607
|
* import { Data } from "effect"
|
|
551
608
|
*
|
|
552
|
-
*
|
|
553
|
-
*
|
|
554
|
-
*
|
|
555
|
-
*
|
|
556
|
-
*
|
|
557
|
-
*
|
|
558
|
-
*
|
|
559
|
-
*
|
|
560
|
-
*
|
|
561
|
-
*
|
|
562
|
-
*
|
|
563
|
-
*
|
|
564
|
-
*
|
|
565
|
-
* const
|
|
609
|
+
* type HttpError = Data.TaggedEnum<{
|
|
610
|
+
* BadRequest: { readonly message: string }
|
|
611
|
+
* NotFound: { readonly url: string }
|
|
612
|
+
* }>
|
|
613
|
+
*
|
|
614
|
+
* const { BadRequest, NotFound, $is, $match } = Data.taggedEnum<HttpError>()
|
|
615
|
+
*
|
|
616
|
+
* const err = NotFound({ url: "/missing" })
|
|
617
|
+
*
|
|
618
|
+
* // Type guard
|
|
619
|
+
* console.log($is("NotFound")(err)) // true
|
|
620
|
+
*
|
|
621
|
+
* // Pattern matching
|
|
622
|
+
* const msg = $match(err, {
|
|
623
|
+
* BadRequest: (e) => e.message,
|
|
624
|
+
* NotFound: (e) => `${e.url} not found`
|
|
625
|
+
* })
|
|
626
|
+
* console.log(msg) // "/missing not found"
|
|
566
627
|
* ```
|
|
567
628
|
*
|
|
568
|
-
*
|
|
629
|
+
* **Example** (generic tagged enum)
|
|
630
|
+
*
|
|
631
|
+
* ```ts
|
|
569
632
|
* import { Data } from "effect"
|
|
570
633
|
*
|
|
571
634
|
* type MyResult<E, A> = Data.TaggedEnum<{
|
|
572
635
|
* Failure: { readonly error: E }
|
|
573
636
|
* Success: { readonly value: A }
|
|
574
637
|
* }>
|
|
575
|
-
* interface
|
|
638
|
+
* interface MyResultDef extends Data.TaggedEnum.WithGenerics<2> {
|
|
576
639
|
* readonly taggedEnum: MyResult<this["A"], this["B"]>
|
|
577
640
|
* }
|
|
578
|
-
* const { Failure, Success } = Data.taggedEnum<
|
|
641
|
+
* const { Failure, Success } = Data.taggedEnum<MyResultDef>()
|
|
642
|
+
*
|
|
643
|
+
* const ok = Success({ value: 42 })
|
|
644
|
+
* // ok: { readonly _tag: "Success"; readonly value: number }
|
|
645
|
+
* ```
|
|
579
646
|
*
|
|
580
|
-
*
|
|
647
|
+
* @see {@link TaggedEnum} — the type-level companion
|
|
648
|
+
* @see {@link TaggedEnum.Constructor} — the returned object type
|
|
649
|
+
* @see {@link TaggedEnum.WithGenerics} — generic enum support
|
|
581
650
|
*
|
|
582
651
|
* @category constructors
|
|
583
652
|
* @since 2.0.0
|
|
@@ -595,44 +664,64 @@ export const taggedEnum: {
|
|
|
595
664
|
>
|
|
596
665
|
|
|
597
666
|
/**
|
|
598
|
-
*
|
|
667
|
+
* Creates runtime constructors, type guards, and pattern matching for a
|
|
668
|
+
* {@link TaggedEnum} type.
|
|
599
669
|
*
|
|
600
|
-
*
|
|
601
|
-
*
|
|
670
|
+
* Returns an object with:
|
|
671
|
+
* - One constructor per variant (keyed by tag name)
|
|
672
|
+
* - `$is(tag)` — returns a type-guard function
|
|
673
|
+
* - `$match` — exhaustive pattern matching (data-first or data-last)
|
|
674
|
+
*
|
|
675
|
+
* - Use when you have a `TaggedEnum` type and need to construct/inspect values.
|
|
676
|
+
* - Constructors produce **plain objects** (not class instances).
|
|
677
|
+
* - For generic enums, pass a {@link TaggedEnum.WithGenerics} interface.
|
|
678
|
+
*
|
|
679
|
+
* **Example** (basic usage)
|
|
602
680
|
*
|
|
603
|
-
* @example
|
|
604
681
|
* ```ts
|
|
605
682
|
* import { Data } from "effect"
|
|
606
683
|
*
|
|
607
|
-
*
|
|
608
|
-
*
|
|
609
|
-
*
|
|
610
|
-
*
|
|
611
|
-
*
|
|
612
|
-
*
|
|
613
|
-
*
|
|
614
|
-
*
|
|
615
|
-
*
|
|
616
|
-
*
|
|
617
|
-
*
|
|
618
|
-
*
|
|
619
|
-
*
|
|
620
|
-
* const
|
|
684
|
+
* type HttpError = Data.TaggedEnum<{
|
|
685
|
+
* BadRequest: { readonly message: string }
|
|
686
|
+
* NotFound: { readonly url: string }
|
|
687
|
+
* }>
|
|
688
|
+
*
|
|
689
|
+
* const { BadRequest, NotFound, $is, $match } = Data.taggedEnum<HttpError>()
|
|
690
|
+
*
|
|
691
|
+
* const err = NotFound({ url: "/missing" })
|
|
692
|
+
*
|
|
693
|
+
* // Type guard
|
|
694
|
+
* console.log($is("NotFound")(err)) // true
|
|
695
|
+
*
|
|
696
|
+
* // Pattern matching
|
|
697
|
+
* const msg = $match(err, {
|
|
698
|
+
* BadRequest: (e) => e.message,
|
|
699
|
+
* NotFound: (e) => `${e.url} not found`
|
|
700
|
+
* })
|
|
701
|
+
* console.log(msg) // "/missing not found"
|
|
621
702
|
* ```
|
|
622
703
|
*
|
|
623
|
-
*
|
|
704
|
+
* **Example** (generic tagged enum)
|
|
705
|
+
*
|
|
706
|
+
* ```ts
|
|
624
707
|
* import { Data } from "effect"
|
|
625
708
|
*
|
|
626
709
|
* type MyResult<E, A> = Data.TaggedEnum<{
|
|
627
710
|
* Failure: { readonly error: E }
|
|
628
711
|
* Success: { readonly value: A }
|
|
629
712
|
* }>
|
|
630
|
-
* interface
|
|
713
|
+
* interface MyResultDef extends Data.TaggedEnum.WithGenerics<2> {
|
|
631
714
|
* readonly taggedEnum: MyResult<this["A"], this["B"]>
|
|
632
715
|
* }
|
|
633
|
-
* const { Failure, Success } = Data.taggedEnum<
|
|
716
|
+
* const { Failure, Success } = Data.taggedEnum<MyResultDef>()
|
|
634
717
|
*
|
|
635
|
-
* const
|
|
718
|
+
* const ok = Success({ value: 42 })
|
|
719
|
+
* // ok: { readonly _tag: "Success"; readonly value: number }
|
|
720
|
+
* ```
|
|
721
|
+
*
|
|
722
|
+
* @see {@link TaggedEnum} — the type-level companion
|
|
723
|
+
* @see {@link TaggedEnum.Constructor} — the returned object type
|
|
724
|
+
* @see {@link TaggedEnum.WithGenerics} — generic enum support
|
|
636
725
|
*
|
|
637
726
|
* @category constructors
|
|
638
727
|
* @since 2.0.0
|
|
@@ -650,44 +739,64 @@ export const taggedEnum: {
|
|
|
650
739
|
>
|
|
651
740
|
|
|
652
741
|
/**
|
|
653
|
-
*
|
|
742
|
+
* Creates runtime constructors, type guards, and pattern matching for a
|
|
743
|
+
* {@link TaggedEnum} type.
|
|
744
|
+
*
|
|
745
|
+
* Returns an object with:
|
|
746
|
+
* - One constructor per variant (keyed by tag name)
|
|
747
|
+
* - `$is(tag)` — returns a type-guard function
|
|
748
|
+
* - `$match` — exhaustive pattern matching (data-first or data-last)
|
|
654
749
|
*
|
|
655
|
-
*
|
|
656
|
-
*
|
|
750
|
+
* - Use when you have a `TaggedEnum` type and need to construct/inspect values.
|
|
751
|
+
* - Constructors produce **plain objects** (not class instances).
|
|
752
|
+
* - For generic enums, pass a {@link TaggedEnum.WithGenerics} interface.
|
|
753
|
+
*
|
|
754
|
+
* **Example** (basic usage)
|
|
657
755
|
*
|
|
658
|
-
* @example
|
|
659
756
|
* ```ts
|
|
660
757
|
* import { Data } from "effect"
|
|
661
758
|
*
|
|
662
|
-
*
|
|
663
|
-
*
|
|
664
|
-
*
|
|
665
|
-
*
|
|
666
|
-
*
|
|
667
|
-
*
|
|
668
|
-
*
|
|
669
|
-
*
|
|
670
|
-
*
|
|
671
|
-
*
|
|
672
|
-
*
|
|
673
|
-
*
|
|
674
|
-
*
|
|
675
|
-
* const
|
|
759
|
+
* type HttpError = Data.TaggedEnum<{
|
|
760
|
+
* BadRequest: { readonly message: string }
|
|
761
|
+
* NotFound: { readonly url: string }
|
|
762
|
+
* }>
|
|
763
|
+
*
|
|
764
|
+
* const { BadRequest, NotFound, $is, $match } = Data.taggedEnum<HttpError>()
|
|
765
|
+
*
|
|
766
|
+
* const err = NotFound({ url: "/missing" })
|
|
767
|
+
*
|
|
768
|
+
* // Type guard
|
|
769
|
+
* console.log($is("NotFound")(err)) // true
|
|
770
|
+
*
|
|
771
|
+
* // Pattern matching
|
|
772
|
+
* const msg = $match(err, {
|
|
773
|
+
* BadRequest: (e) => e.message,
|
|
774
|
+
* NotFound: (e) => `${e.url} not found`
|
|
775
|
+
* })
|
|
776
|
+
* console.log(msg) // "/missing not found"
|
|
676
777
|
* ```
|
|
677
778
|
*
|
|
678
|
-
*
|
|
779
|
+
* **Example** (generic tagged enum)
|
|
780
|
+
*
|
|
781
|
+
* ```ts
|
|
679
782
|
* import { Data } from "effect"
|
|
680
783
|
*
|
|
681
784
|
* type MyResult<E, A> = Data.TaggedEnum<{
|
|
682
785
|
* Failure: { readonly error: E }
|
|
683
786
|
* Success: { readonly value: A }
|
|
684
787
|
* }>
|
|
685
|
-
* interface
|
|
788
|
+
* interface MyResultDef extends Data.TaggedEnum.WithGenerics<2> {
|
|
686
789
|
* readonly taggedEnum: MyResult<this["A"], this["B"]>
|
|
687
790
|
* }
|
|
688
|
-
* const { Failure, Success } = Data.taggedEnum<
|
|
791
|
+
* const { Failure, Success } = Data.taggedEnum<MyResultDef>()
|
|
792
|
+
*
|
|
793
|
+
* const ok = Success({ value: 42 })
|
|
794
|
+
* // ok: { readonly _tag: "Success"; readonly value: number }
|
|
795
|
+
* ```
|
|
689
796
|
*
|
|
690
|
-
*
|
|
797
|
+
* @see {@link TaggedEnum} — the type-level companion
|
|
798
|
+
* @see {@link TaggedEnum.Constructor} — the returned object type
|
|
799
|
+
* @see {@link TaggedEnum.WithGenerics} — generic enum support
|
|
691
800
|
*
|
|
692
801
|
* @category constructors
|
|
693
802
|
* @since 2.0.0
|
|
@@ -705,44 +814,64 @@ export const taggedEnum: {
|
|
|
705
814
|
>
|
|
706
815
|
|
|
707
816
|
/**
|
|
708
|
-
*
|
|
817
|
+
* Creates runtime constructors, type guards, and pattern matching for a
|
|
818
|
+
* {@link TaggedEnum} type.
|
|
709
819
|
*
|
|
710
|
-
*
|
|
711
|
-
*
|
|
820
|
+
* Returns an object with:
|
|
821
|
+
* - One constructor per variant (keyed by tag name)
|
|
822
|
+
* - `$is(tag)` — returns a type-guard function
|
|
823
|
+
* - `$match` — exhaustive pattern matching (data-first or data-last)
|
|
824
|
+
*
|
|
825
|
+
* - Use when you have a `TaggedEnum` type and need to construct/inspect values.
|
|
826
|
+
* - Constructors produce **plain objects** (not class instances).
|
|
827
|
+
* - For generic enums, pass a {@link TaggedEnum.WithGenerics} interface.
|
|
828
|
+
*
|
|
829
|
+
* **Example** (basic usage)
|
|
712
830
|
*
|
|
713
|
-
* @example
|
|
714
831
|
* ```ts
|
|
715
832
|
* import { Data } from "effect"
|
|
716
833
|
*
|
|
717
|
-
*
|
|
718
|
-
*
|
|
719
|
-
*
|
|
720
|
-
*
|
|
721
|
-
*
|
|
722
|
-
*
|
|
723
|
-
*
|
|
724
|
-
*
|
|
725
|
-
*
|
|
726
|
-
*
|
|
727
|
-
*
|
|
728
|
-
*
|
|
729
|
-
*
|
|
730
|
-
* const
|
|
834
|
+
* type HttpError = Data.TaggedEnum<{
|
|
835
|
+
* BadRequest: { readonly message: string }
|
|
836
|
+
* NotFound: { readonly url: string }
|
|
837
|
+
* }>
|
|
838
|
+
*
|
|
839
|
+
* const { BadRequest, NotFound, $is, $match } = Data.taggedEnum<HttpError>()
|
|
840
|
+
*
|
|
841
|
+
* const err = NotFound({ url: "/missing" })
|
|
842
|
+
*
|
|
843
|
+
* // Type guard
|
|
844
|
+
* console.log($is("NotFound")(err)) // true
|
|
845
|
+
*
|
|
846
|
+
* // Pattern matching
|
|
847
|
+
* const msg = $match(err, {
|
|
848
|
+
* BadRequest: (e) => e.message,
|
|
849
|
+
* NotFound: (e) => `${e.url} not found`
|
|
850
|
+
* })
|
|
851
|
+
* console.log(msg) // "/missing not found"
|
|
731
852
|
* ```
|
|
732
853
|
*
|
|
733
|
-
*
|
|
854
|
+
* **Example** (generic tagged enum)
|
|
855
|
+
*
|
|
856
|
+
* ```ts
|
|
734
857
|
* import { Data } from "effect"
|
|
735
858
|
*
|
|
736
859
|
* type MyResult<E, A> = Data.TaggedEnum<{
|
|
737
860
|
* Failure: { readonly error: E }
|
|
738
861
|
* Success: { readonly value: A }
|
|
739
862
|
* }>
|
|
740
|
-
* interface
|
|
863
|
+
* interface MyResultDef extends Data.TaggedEnum.WithGenerics<2> {
|
|
741
864
|
* readonly taggedEnum: MyResult<this["A"], this["B"]>
|
|
742
865
|
* }
|
|
743
|
-
* const { Failure, Success } = Data.taggedEnum<
|
|
866
|
+
* const { Failure, Success } = Data.taggedEnum<MyResultDef>()
|
|
744
867
|
*
|
|
745
|
-
* const
|
|
868
|
+
* const ok = Success({ value: 42 })
|
|
869
|
+
* // ok: { readonly _tag: "Success"; readonly value: number }
|
|
870
|
+
* ```
|
|
871
|
+
*
|
|
872
|
+
* @see {@link TaggedEnum} — the type-level companion
|
|
873
|
+
* @see {@link TaggedEnum.Constructor} — the returned object type
|
|
874
|
+
* @see {@link TaggedEnum.WithGenerics} — generic enum support
|
|
746
875
|
*
|
|
747
876
|
* @category constructors
|
|
748
877
|
* @since 2.0.0
|
|
@@ -760,44 +889,64 @@ export const taggedEnum: {
|
|
|
760
889
|
>
|
|
761
890
|
|
|
762
891
|
/**
|
|
763
|
-
*
|
|
892
|
+
* Creates runtime constructors, type guards, and pattern matching for a
|
|
893
|
+
* {@link TaggedEnum} type.
|
|
894
|
+
*
|
|
895
|
+
* Returns an object with:
|
|
896
|
+
* - One constructor per variant (keyed by tag name)
|
|
897
|
+
* - `$is(tag)` — returns a type-guard function
|
|
898
|
+
* - `$match` — exhaustive pattern matching (data-first or data-last)
|
|
764
899
|
*
|
|
765
|
-
*
|
|
766
|
-
*
|
|
900
|
+
* - Use when you have a `TaggedEnum` type and need to construct/inspect values.
|
|
901
|
+
* - Constructors produce **plain objects** (not class instances).
|
|
902
|
+
* - For generic enums, pass a {@link TaggedEnum.WithGenerics} interface.
|
|
903
|
+
*
|
|
904
|
+
* **Example** (basic usage)
|
|
767
905
|
*
|
|
768
|
-
* @example
|
|
769
906
|
* ```ts
|
|
770
907
|
* import { Data } from "effect"
|
|
771
908
|
*
|
|
772
|
-
*
|
|
773
|
-
*
|
|
774
|
-
*
|
|
775
|
-
*
|
|
776
|
-
*
|
|
777
|
-
*
|
|
778
|
-
*
|
|
779
|
-
*
|
|
780
|
-
*
|
|
781
|
-
*
|
|
782
|
-
*
|
|
783
|
-
*
|
|
784
|
-
*
|
|
785
|
-
* const
|
|
909
|
+
* type HttpError = Data.TaggedEnum<{
|
|
910
|
+
* BadRequest: { readonly message: string }
|
|
911
|
+
* NotFound: { readonly url: string }
|
|
912
|
+
* }>
|
|
913
|
+
*
|
|
914
|
+
* const { BadRequest, NotFound, $is, $match } = Data.taggedEnum<HttpError>()
|
|
915
|
+
*
|
|
916
|
+
* const err = NotFound({ url: "/missing" })
|
|
917
|
+
*
|
|
918
|
+
* // Type guard
|
|
919
|
+
* console.log($is("NotFound")(err)) // true
|
|
920
|
+
*
|
|
921
|
+
* // Pattern matching
|
|
922
|
+
* const msg = $match(err, {
|
|
923
|
+
* BadRequest: (e) => e.message,
|
|
924
|
+
* NotFound: (e) => `${e.url} not found`
|
|
925
|
+
* })
|
|
926
|
+
* console.log(msg) // "/missing not found"
|
|
786
927
|
* ```
|
|
787
928
|
*
|
|
788
|
-
*
|
|
929
|
+
* **Example** (generic tagged enum)
|
|
930
|
+
*
|
|
931
|
+
* ```ts
|
|
789
932
|
* import { Data } from "effect"
|
|
790
933
|
*
|
|
791
934
|
* type MyResult<E, A> = Data.TaggedEnum<{
|
|
792
935
|
* Failure: { readonly error: E }
|
|
793
936
|
* Success: { readonly value: A }
|
|
794
937
|
* }>
|
|
795
|
-
* interface
|
|
938
|
+
* interface MyResultDef extends Data.TaggedEnum.WithGenerics<2> {
|
|
796
939
|
* readonly taggedEnum: MyResult<this["A"], this["B"]>
|
|
797
940
|
* }
|
|
798
|
-
* const { Failure, Success } = Data.taggedEnum<
|
|
941
|
+
* const { Failure, Success } = Data.taggedEnum<MyResultDef>()
|
|
942
|
+
*
|
|
943
|
+
* const ok = Success({ value: 42 })
|
|
944
|
+
* // ok: { readonly _tag: "Success"; readonly value: number }
|
|
945
|
+
* ```
|
|
799
946
|
*
|
|
800
|
-
*
|
|
947
|
+
* @see {@link TaggedEnum} — the type-level companion
|
|
948
|
+
* @see {@link TaggedEnum.Constructor} — the returned object type
|
|
949
|
+
* @see {@link TaggedEnum.WithGenerics} — generic enum support
|
|
801
950
|
*
|
|
802
951
|
* @category constructors
|
|
803
952
|
* @since 2.0.0
|
|
@@ -848,72 +997,86 @@ function taggedMatch<
|
|
|
848
997
|
}
|
|
849
998
|
|
|
850
999
|
/**
|
|
851
|
-
*
|
|
1000
|
+
* Base class for yieldable errors.
|
|
852
1001
|
*
|
|
853
|
-
*
|
|
854
|
-
*
|
|
1002
|
+
* Extends `Cause.YieldableError`, so instances can be yielded inside
|
|
1003
|
+
* `Effect.gen` to fail the enclosing effect. Fields are passed as a single
|
|
1004
|
+
* object; when there are no fields the argument is optional.
|
|
1005
|
+
*
|
|
1006
|
+
* - Use for errors that do **not** need tag-based discrimination.
|
|
1007
|
+
* - If you need `Effect.catchTag` support, use {@link TaggedError} instead.
|
|
1008
|
+
* - If a `message` field is provided, it becomes the error's `.message`.
|
|
1009
|
+
*
|
|
1010
|
+
* **Example** (defining a yieldable error)
|
|
855
1011
|
*
|
|
856
|
-
* @example
|
|
857
1012
|
* ```ts
|
|
858
1013
|
* import { Data, Effect } from "effect"
|
|
859
1014
|
*
|
|
860
|
-
* class NetworkError extends Data.Error<{
|
|
1015
|
+
* class NetworkError extends Data.Error<{
|
|
1016
|
+
* readonly code: number
|
|
1017
|
+
* readonly message: string
|
|
1018
|
+
* }> {}
|
|
861
1019
|
*
|
|
862
1020
|
* const program = Effect.gen(function*() {
|
|
863
|
-
* yield* new NetworkError({ code: 500, message: "
|
|
1021
|
+
* return yield* new NetworkError({ code: 500, message: "timeout" })
|
|
864
1022
|
* })
|
|
865
1023
|
*
|
|
1024
|
+
* // The effect fails with a NetworkError
|
|
866
1025
|
* Effect.runSync(Effect.exit(program))
|
|
867
|
-
* // Exit.fail(NetworkError({ code: 500, message: "Server error" }))
|
|
868
1026
|
* ```
|
|
869
1027
|
*
|
|
1028
|
+
* @see {@link TaggedError} — adds a `_tag` for `Effect.catchTag`
|
|
1029
|
+
* @see {@link Class} — non-error data class
|
|
1030
|
+
*
|
|
870
1031
|
* @category constructors
|
|
871
1032
|
* @since 2.0.0
|
|
872
1033
|
*/
|
|
873
1034
|
export const Error: new<A extends Record<string, any> = {}>(
|
|
874
|
-
args: Types.
|
|
875
|
-
: { readonly [P in keyof A]: A[P] }
|
|
1035
|
+
args: Types.VoidIfEmpty<{ readonly [P in keyof A]: A[P] }>
|
|
876
1036
|
) => Cause.YieldableError & Readonly<A> = core.Error
|
|
877
1037
|
|
|
878
1038
|
/**
|
|
879
|
-
*
|
|
1039
|
+
* Creates a tagged error class with a `_tag` discriminator.
|
|
1040
|
+
*
|
|
1041
|
+
* Like {@link Error}, but instances also carry a `readonly _tag` property,
|
|
1042
|
+
* enabling `Effect.catchTag` and `Effect.catchTags` for tag-based recovery.
|
|
1043
|
+
* The `_tag` is excluded from the constructor argument.
|
|
1044
|
+
*
|
|
1045
|
+
* - Use for domain errors in Effect applications where you want
|
|
1046
|
+
* discriminated-union error handling.
|
|
1047
|
+
* - Yielding an instance inside `Effect.gen` fails the effect with this error.
|
|
880
1048
|
*
|
|
881
|
-
*
|
|
882
|
-
* `Cause.YieldableError` and have structural equality semantics.
|
|
1049
|
+
* **Example** (tag-based error recovery)
|
|
883
1050
|
*
|
|
884
|
-
* @example
|
|
885
1051
|
* ```ts
|
|
886
|
-
* import { Data, Effect
|
|
1052
|
+
* import { Data, Effect } from "effect"
|
|
887
1053
|
*
|
|
888
|
-
* class
|
|
889
|
-
*
|
|
890
|
-
* message: string
|
|
1054
|
+
* class NotFound extends Data.TaggedError("NotFound")<{
|
|
1055
|
+
* readonly resource: string
|
|
891
1056
|
* }> {}
|
|
892
1057
|
*
|
|
893
|
-
* class
|
|
894
|
-
*
|
|
895
|
-
* message: string
|
|
1058
|
+
* class Forbidden extends Data.TaggedError("Forbidden")<{
|
|
1059
|
+
* readonly reason: string
|
|
896
1060
|
* }> {}
|
|
897
1061
|
*
|
|
898
1062
|
* const program = Effect.gen(function*() {
|
|
899
|
-
* yield* new
|
|
1063
|
+
* return yield* new NotFound({ resource: "/users/42" })
|
|
900
1064
|
* })
|
|
901
1065
|
*
|
|
902
|
-
* const
|
|
903
|
-
*
|
|
904
|
-
*
|
|
905
|
-
* "NetworkError",
|
|
906
|
-
* (error) => Effect.succeed(`Network error: ${error.message}`)
|
|
907
|
-
* )
|
|
1066
|
+
* const recovered = program.pipe(
|
|
1067
|
+
* Effect.catchTag("NotFound", (e) =>
|
|
1068
|
+
* Effect.succeed(`missing: ${e.resource}`))
|
|
908
1069
|
* )
|
|
909
1070
|
* ```
|
|
910
1071
|
*
|
|
1072
|
+
* @see {@link Error} — without a `_tag`
|
|
1073
|
+
* @see {@link TaggedClass} — tagged class that is not an error
|
|
1074
|
+
*
|
|
911
1075
|
* @category constructors
|
|
912
1076
|
* @since 2.0.0
|
|
913
1077
|
*/
|
|
914
1078
|
export const TaggedError: <Tag extends string>(
|
|
915
1079
|
tag: Tag
|
|
916
1080
|
) => new<A extends Record<string, any> = {}>(
|
|
917
|
-
args: Types.
|
|
918
|
-
: { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }
|
|
1081
|
+
args: Types.VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }>
|
|
919
1082
|
) => Cause.YieldableError & { readonly _tag: Tag } & Readonly<A> = core.TaggedError as any
|