effect 4.0.0-beta.6 → 4.0.0-beta.62
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 +53 -22
- 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 +176 -87
- 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 +189 -29
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +85 -35
- 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 +533 -365
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js +125 -73
- 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 +74 -40
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +126 -87
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +1435 -927
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +516 -328
- package/dist/Effect.js.map +1 -1
- package/dist/Effectable.d.ts +29 -0
- package/dist/Effectable.d.ts.map +1 -0
- package/dist/Effectable.js +31 -0
- package/dist/Effectable.js.map +1 -0
- package/dist/Encoding.d.ts +1 -1
- 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 +15 -11
- 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 +243 -55
- 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 +58 -60
- 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/Inspectable.d.ts +0 -4
- package/dist/Inspectable.d.ts.map +1 -1
- package/dist/Inspectable.js +4 -13
- package/dist/Inspectable.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 +69 -3
- package/dist/Latch.d.ts.map +1 -1
- package/dist/Latch.js +58 -0
- package/dist/Latch.js.map +1 -1
- 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 +183 -0
- package/dist/PartitionedSemaphore.d.ts.map +1 -0
- package/dist/PartitionedSemaphore.js +231 -0
- package/dist/PartitionedSemaphore.js.map +1 -0
- 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/PlatformError.d.ts +2 -2
- package/dist/Pool.d.ts +1 -1
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +5 -5
- package/dist/Pool.js.map +1 -1
- package/dist/Predicate.d.ts +1 -1
- package/dist/Predicate.d.ts.map +1 -1
- package/dist/PubSub.d.ts +5 -4
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +15 -8
- 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 +5 -5
- package/dist/Request.d.ts.map +1 -1
- package/dist/Request.js.map +1 -1
- package/dist/RequestResolver.d.ts +25 -25
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +15 -16
- 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 +174 -291
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +132 -120
- 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 +3213 -392
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +2058 -252
- 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 +55 -13
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +73 -11
- 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 +2 -2
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +63 -39
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +245 -3
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +297 -33
- 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 +148 -52
- package/dist/Semaphore.d.ts.map +1 -1
- package/dist/Semaphore.js +135 -117
- package/dist/Semaphore.js.map +1 -1
- 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 +329 -145
- 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 +7 -7
- package/dist/Struct.d.ts.map +1 -1
- package/dist/SubscriptionRef.d.ts +1 -2
- package/dist/SubscriptionRef.d.ts.map +1 -1
- package/dist/SubscriptionRef.js +83 -116
- package/dist/SubscriptionRef.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 +80 -22
- 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 +886 -71
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +886 -71
- package/dist/index.js.map +1 -1
- 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 +502 -326
- 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 +9 -9
- 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 +87 -109
- 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 +59 -1
- package/dist/internal/schema/schema.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 +5 -5
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +2 -2
- 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 +127 -45
- 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 +40 -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 +207 -112
- 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 +225 -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 +17 -17
- 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 +24 -24
- 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 +51 -63
- 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 +10 -0
- package/dist/unstable/cli/index.d.ts.map +1 -1
- package/dist/unstable/cli/index.js +10 -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 +96 -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 +17 -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 +6 -6
- 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 +3 -3
- 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 +7 -7
- package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
- package/dist/unstable/cluster/Message.d.ts +16 -10
- 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 +40 -25
- package/dist/unstable/cluster/MessageStorage.js.map +1 -1
- package/dist/unstable/cluster/Reply.d.ts +7 -6
- 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 +1 -1
- 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 +16 -14
- 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 +59 -49
- 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 +30 -24
- package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
- package/dist/unstable/cluster/internal/entityReaper.js +2 -2
- 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/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 +4 -4
- 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 +3 -3
- 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 +27 -10
- 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 -151
- 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 +51 -6
- 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 +18 -3
- 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 +51 -51
- 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 +6 -10
- 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 +7 -7
- 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 +18 -9
- 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 +73 -48
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.d.ts +82 -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 +210 -105
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.js +52 -47
- package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.d.ts +66 -29
- package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.js +138 -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 -17
- 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/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 +144 -2
- 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 +1 -2
- package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedCache.js +10 -11
- 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 +9 -9
- 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 +83 -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/AsyncResult.d.ts +37 -17
- package/dist/unstable/reactivity/AsyncResult.d.ts.map +1 -1
- package/dist/unstable/reactivity/AsyncResult.js +9 -0
- package/dist/unstable/reactivity/AsyncResult.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 +25 -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/rpc/Rpc.d.ts +137 -19
- package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
- package/dist/unstable/rpc/Rpc.js +99 -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 +117 -75
- 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 +73 -43
- 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 +46 -5
- 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 +35 -15
- package/dist/unstable/socket/Socket.d.ts.map +1 -1
- package/dist/unstable/socket/Socket.js +34 -27
- 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 +24 -6
- package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
- package/dist/unstable/sql/SqlClient.js +37 -32
- 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.js +24 -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 +3 -5
- package/dist/unstable/sql/Statement.d.ts.map +1 -1
- package/dist/unstable/sql/Statement.js +14 -13
- 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 +6 -3
- 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 +8 -3
- package/dist/unstable/workflow/Activity.d.ts.map +1 -1
- package/dist/unstable/workflow/Activity.js +25 -11
- 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 +2 -5
- package/dist/unstable/workflow/DurableDeferred.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.js +33 -15
- package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
- package/dist/unstable/workflow/Workflow.d.ts +12 -14
- package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
- package/dist/unstable/workflow/Workflow.js +30 -26
- package/dist/unstable/workflow/Workflow.js.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts +24 -7
- package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js +165 -16
- 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 -10
- 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 +57 -22
- package/src/Channel.ts +687 -220
- package/src/Chunk.ts +149 -331
- package/src/Clock.ts +2 -2
- package/src/Combiner.ts +280 -13
- package/src/Config.ts +214 -52
- 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 +530 -368
- package/src/DateTime.ts +77 -258
- package/src/Deferred.ts +15 -6
- package/src/Duration.ts +151 -81
- package/src/Effect.ts +1633 -1055
- package/src/Effectable.ts +47 -0
- package/src/Equal.ts +293 -109
- 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 +30 -26
- package/src/Filter.ts +4 -62
- package/src/Formatter.ts +268 -60
- package/src/Function.ts +2 -10
- package/src/Graph.ts +123 -112
- package/src/Hash.ts +2 -2
- package/src/HashMap.ts +26 -19
- package/src/Inspectable.ts +2 -22
- package/src/Iterable.ts +117 -63
- package/src/JsonSchema.ts +383 -10
- package/src/Latch.ts +85 -3
- 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 +414 -0
- package/src/Path.ts +2 -2
- package/src/Pool.ts +9 -9
- package/src/Predicate.ts +1 -1
- package/src/PubSub.ts +20 -11
- 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 +5 -5
- package/src/RequestResolver.ts +34 -35
- package/src/Resource.ts +6 -5
- package/src/Result.ts +2 -4
- package/src/Runtime.ts +102 -6
- package/src/Schedule.ts +243 -336
- package/src/Scheduler.ts +52 -129
- package/src/Schema.ts +3769 -597
- package/src/SchemaAST.ts +480 -302
- package/src/SchemaGetter.ts +80 -24
- package/src/SchemaIssue.ts +28 -15
- package/src/SchemaParser.ts +100 -29
- package/src/SchemaRepresentation.ts +57 -33
- package/src/SchemaTransformation.ts +321 -32
- package/src/Scope.ts +2 -2
- package/src/ScopedCache.ts +8 -8
- package/src/Semaphore.ts +268 -182
- package/src/Sink.ts +89 -34
- package/src/Stdio.ts +29 -6
- package/src/Stream.ts +908 -752
- package/src/String.ts +122 -69
- package/src/Struct.ts +7 -7
- package/src/SubscriptionRef.ts +98 -118
- 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 +75 -23
- package/src/Unify.ts +26 -2
- package/src/Utils.ts +137 -111
- package/src/index.ts +896 -73
- package/src/internal/core.ts +9 -10
- package/src/internal/dateTime.ts +91 -96
- package/src/internal/effect.ts +1179 -614
- 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 +12 -12
- 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 +82 -97
- package/src/internal/schema/schema.ts +68 -1
- package/src/internal/trie.ts +21 -15
- package/src/testing/TestClock.ts +6 -6
- package/src/testing/TestSchema.ts +333 -36
- package/src/testing/index.ts +64 -1
- package/src/unstable/ai/AiError.ts +111 -53
- package/src/unstable/ai/AnthropicStructuredOutput.ts +7 -3
- package/src/unstable/ai/Chat.ts +136 -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 +307 -87
- package/src/unstable/ai/Model.ts +44 -13
- package/src/unstable/ai/OpenAiStructuredOutput.ts +9 -2
- package/src/unstable/ai/Prompt.ts +23 -29
- package/src/unstable/ai/Response.ts +29 -31
- 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 +12 -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 +142 -80
- package/src/unstable/cluster/DeliverAt.ts +1 -1
- package/src/unstable/cluster/Entity.ts +58 -45
- package/src/unstable/cluster/EntityAddress.ts +1 -1
- package/src/unstable/cluster/EntityProxy.ts +3 -3
- package/src/unstable/cluster/EntityProxyServer.ts +6 -6
- package/src/unstable/cluster/EntityResource.ts +6 -6
- package/src/unstable/cluster/HttpRunner.ts +2 -2
- package/src/unstable/cluster/K8sHttpClient.ts +10 -10
- package/src/unstable/cluster/Message.ts +30 -17
- package/src/unstable/cluster/MessageStorage.ts +74 -45
- 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 +22 -18
- package/src/unstable/cluster/ShardId.ts +84 -74
- package/src/unstable/cluster/Sharding.ts +75 -60
- 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 +60 -41
- package/src/unstable/cluster/internal/entityReaper.ts +2 -2
- package/src/unstable/cluster/internal/resourceMap.ts +3 -3
- 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 -234
- 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 +24 -8
- package/src/unstable/http/HttpEffect.ts +71 -77
- package/src/unstable/http/HttpIncomingMessage.ts +9 -8
- 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 +8 -8
- package/src/unstable/http/Url.ts +650 -0
- package/src/unstable/http/UrlParams.ts +30 -18
- package/src/unstable/http/index.ts +10 -0
- package/src/unstable/http/internal/preResponseHandler.ts +15 -0
- package/src/unstable/httpapi/HttpApi.ts +22 -22
- package/src/unstable/httpapi/HttpApiBuilder.ts +156 -66
- package/src/unstable/httpapi/HttpApiClient.ts +185 -34
- package/src/unstable/httpapi/HttpApiEndpoint.ts +225 -114
- package/src/unstable/httpapi/HttpApiError.ts +129 -30
- package/src/unstable/httpapi/HttpApiGroup.ts +18 -17
- package/src/unstable/httpapi/HttpApiMiddleware.ts +95 -32
- package/src/unstable/httpapi/HttpApiSchema.ts +106 -11
- package/src/unstable/httpapi/HttpApiSecurity.ts +13 -13
- package/src/unstable/httpapi/OpenApi.ts +74 -73
- 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 +226 -3
- package/src/unstable/persistence/Persistable.ts +3 -3
- package/src/unstable/persistence/PersistedCache.ts +20 -17
- package/src/unstable/persistence/PersistedQueue.ts +21 -21
- 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 +114 -15
- package/src/unstable/reactivity/AsyncResult.ts +59 -17
- package/src/unstable/reactivity/Atom.ts +280 -124
- package/src/unstable/reactivity/AtomHttpApi.ts +127 -61
- 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/rpc/Rpc.ts +212 -32
- package/src/unstable/rpc/RpcClient.ts +161 -142
- 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 +91 -65
- package/src/unstable/rpc/RpcWorker.ts +5 -5
- package/src/unstable/rpc/Utils.ts +63 -4
- package/src/unstable/schema/Model.ts +35 -6
- package/src/unstable/schema/VariantSchema.ts +14 -27
- package/src/unstable/socket/Socket.ts +102 -62
- package/src/unstable/socket/SocketServer.ts +2 -2
- package/src/unstable/sql/Migrator.ts +7 -5
- package/src/unstable/sql/SqlClient.ts +48 -19
- 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 +28 -20
- package/src/unstable/sql/SqlSchema.ts +42 -26
- package/src/unstable/sql/Statement.ts +21 -25
- package/src/unstable/workers/Transferable.ts +17 -19
- package/src/unstable/workers/Worker.ts +4 -4
- package/src/unstable/workers/WorkerRunner.ts +2 -2
- package/src/unstable/workflow/Activity.ts +36 -13
- package/src/unstable/workflow/DurableClock.ts +11 -11
- package/src/unstable/workflow/DurableDeferred.ts +36 -18
- package/src/unstable/workflow/Workflow.ts +46 -35
- package/src/unstable/workflow/WorkflowEngine.ts +236 -23
- 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/internal/schema/to-codec.d.ts +0 -2
- package/dist/internal/schema/to-codec.d.ts.map +0 -1
- package/dist/internal/schema/to-codec.js +0 -129
- package/dist/internal/schema/to-codec.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/internal/schema/to-codec.ts +0 -148
- 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,13 +1,73 @@
|
|
|
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
|
*/
|
|
@@ -19,31 +79,39 @@ import type * as Types from "./Types.ts"
|
|
|
19
79
|
import type { Unify } from "./Unify.ts"
|
|
20
80
|
|
|
21
81
|
/**
|
|
22
|
-
*
|
|
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)
|
|
23
94
|
*
|
|
24
|
-
* @example
|
|
25
95
|
* ```ts
|
|
26
96
|
* import { Data, Equal } from "effect"
|
|
27
|
-
* import * as assert from "node:assert"
|
|
28
97
|
*
|
|
29
98
|
* class Person extends Data.Class<{ readonly name: string }> {}
|
|
30
99
|
*
|
|
31
|
-
* // Creating instances of Person
|
|
32
100
|
* const mike1 = new Person({ name: "Mike" })
|
|
33
101
|
* const mike2 = new Person({ name: "Mike" })
|
|
34
|
-
* const john = new Person({ name: "John" })
|
|
35
102
|
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
* assert.deepStrictEqual(Equal.equals(mike1, john), false)
|
|
103
|
+
* console.log(Equal.equals(mike1, mike2))
|
|
104
|
+
* // true
|
|
39
105
|
* ```
|
|
40
106
|
*
|
|
41
|
-
* @
|
|
107
|
+
* @see {@link TaggedClass} — adds a `_tag` field
|
|
108
|
+
* @see {@link Error} — yieldable error variant
|
|
109
|
+
*
|
|
42
110
|
* @category constructors
|
|
111
|
+
* @since 2.0.0
|
|
43
112
|
*/
|
|
44
113
|
export const Class: new<A extends Record<string, any> = {}>(
|
|
45
|
-
args: Types.
|
|
46
|
-
: { readonly [P in keyof A]: A[P] }
|
|
114
|
+
args: Types.VoidIfEmpty<{ readonly [P in keyof A]: A[P] }>
|
|
47
115
|
) => Readonly<A> & Pipeable.Pipeable = class extends Pipeable.Class {
|
|
48
116
|
constructor(props: any) {
|
|
49
117
|
super()
|
|
@@ -54,85 +122,86 @@ export const Class: new<A extends Record<string, any> = {}>(
|
|
|
54
122
|
} as any
|
|
55
123
|
|
|
56
124
|
/**
|
|
57
|
-
*
|
|
125
|
+
* Base class for immutable data types with a `_tag` discriminator.
|
|
58
126
|
*
|
|
59
|
-
* @
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
* 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.
|
|
63
130
|
*
|
|
64
|
-
*
|
|
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}.
|
|
65
134
|
*
|
|
66
|
-
*
|
|
67
|
-
* const mike1 = new Person({ name: "Mike" })
|
|
68
|
-
* const mike2 = new Person({ name: "Mike" })
|
|
69
|
-
* const john = new Person({ name: "John" })
|
|
135
|
+
* **Example** (defining a tagged class)
|
|
70
136
|
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
137
|
+
* ```ts
|
|
138
|
+
* import { Data } from "effect"
|
|
139
|
+
*
|
|
140
|
+
* class Person extends Data.TaggedClass("Person")<{
|
|
141
|
+
* readonly name: string
|
|
142
|
+
* }> {}
|
|
74
143
|
*
|
|
75
|
-
*
|
|
144
|
+
* const mike = new Person({ name: "Mike" })
|
|
145
|
+
* console.log(mike._tag)
|
|
146
|
+
* // "Person"
|
|
76
147
|
* ```
|
|
77
148
|
*
|
|
78
|
-
* @
|
|
149
|
+
* @see {@link Class} — without a `_tag`
|
|
150
|
+
* @see {@link TaggedError} — tagged error variant
|
|
151
|
+
* @see {@link TaggedEnum} — multi-variant unions
|
|
152
|
+
*
|
|
79
153
|
* @category constructors
|
|
154
|
+
* @since 2.0.0
|
|
80
155
|
*/
|
|
81
156
|
export const TaggedClass = <Tag extends string>(
|
|
82
157
|
tag: Tag
|
|
83
158
|
): new<A extends Record<string, any> = {}>(
|
|
84
|
-
args: Types.
|
|
85
|
-
: { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }
|
|
159
|
+
args: Types.VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }>
|
|
86
160
|
) => Readonly<A> & { readonly _tag: Tag } & Pipeable.Pipeable =>
|
|
87
161
|
class extends Class {
|
|
88
162
|
readonly _tag = tag
|
|
89
163
|
} as any
|
|
90
164
|
|
|
91
165
|
/**
|
|
92
|
-
*
|
|
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.
|
|
171
|
+
*
|
|
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}.
|
|
93
177
|
*
|
|
94
|
-
*
|
|
95
|
-
* union type where each variant has a `_tag` field for type discrimination.
|
|
178
|
+
* **Example** (defining a tagged enum)
|
|
96
179
|
*
|
|
97
|
-
* @example
|
|
98
180
|
* ```ts
|
|
99
181
|
* import { Data } from "effect"
|
|
100
182
|
*
|
|
101
|
-
* // Define a tagged enum type
|
|
102
183
|
* type HttpError = Data.TaggedEnum<{
|
|
103
184
|
* BadRequest: { readonly status: 400; readonly message: string }
|
|
104
|
-
* NotFound: { readonly status: 404
|
|
105
|
-
* InternalError: { readonly status: 500; readonly details: string }
|
|
185
|
+
* NotFound: { readonly status: 404 }
|
|
106
186
|
* }>
|
|
107
187
|
*
|
|
108
|
-
* //
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
*
|
|
112
|
-
*
|
|
113
|
-
*
|
|
114
|
-
*
|
|
115
|
-
*
|
|
116
|
-
*
|
|
117
|
-
* readonly status: 404
|
|
118
|
-
* readonly message: string
|
|
119
|
-
* }
|
|
120
|
-
* | {
|
|
121
|
-
* readonly _tag: "InternalError"
|
|
122
|
-
* readonly status: 500
|
|
123
|
-
* readonly details: string
|
|
124
|
-
* }
|
|
125
|
-
*
|
|
126
|
-
* // Usage with constructors
|
|
127
|
-
* const { BadRequest, InternalError, NotFound } = Data.taggedEnum<HttpError>()
|
|
128
|
-
*
|
|
129
|
-
* const error: HttpError = BadRequest({ status: 400, message: "Invalid request" })
|
|
130
|
-
* console.log(error._tag) // "BadRequest"
|
|
131
|
-
* 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"
|
|
132
197
|
* ```
|
|
133
198
|
*
|
|
134
|
-
* @
|
|
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
|
+
*
|
|
135
203
|
* @category models
|
|
204
|
+
* @since 2.0.0
|
|
136
205
|
*/
|
|
137
206
|
export type TaggedEnum<
|
|
138
207
|
A extends Record<string, Record<string, any>> & UntaggedChildren<A>
|
|
@@ -152,52 +221,53 @@ type UntaggedChildren<A> = true extends ChildrenAreTagged<A>
|
|
|
152
221
|
: unknown
|
|
153
222
|
|
|
154
223
|
/**
|
|
155
|
-
*
|
|
156
|
-
*
|
|
157
|
-
* This namespace contains types and utilities for working with tagged enums,
|
|
158
|
-
* which are discriminated unions with structural equality semantics.
|
|
159
|
-
*
|
|
160
|
-
* @example
|
|
161
|
-
* ```ts
|
|
162
|
-
* import { Data } from "effect"
|
|
163
|
-
*
|
|
164
|
-
* // Basic tagged enum usage
|
|
165
|
-
* const { Failure, Success } = Data.taggedEnum<
|
|
166
|
-
* | { readonly _tag: "Success"; readonly value: number }
|
|
167
|
-
* | { readonly _tag: "Failure"; readonly error: string }
|
|
168
|
-
* >()
|
|
224
|
+
* Namespace for `TaggedEnum` utility types.
|
|
169
225
|
*
|
|
170
|
-
*
|
|
171
|
-
*
|
|
172
|
-
*
|
|
173
|
-
*
|
|
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})
|
|
174
231
|
*
|
|
175
|
-
* @since 2.0.0
|
|
176
232
|
* @category types
|
|
233
|
+
* @since 2.0.0
|
|
177
234
|
*/
|
|
178
235
|
export declare namespace TaggedEnum {
|
|
179
236
|
/**
|
|
180
|
-
*
|
|
181
|
-
*
|
|
182
|
-
*
|
|
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)
|
|
183
248
|
*
|
|
184
|
-
* @example
|
|
185
249
|
* ```ts
|
|
186
|
-
* import
|
|
250
|
+
* import { Data } from "effect"
|
|
187
251
|
*
|
|
188
|
-
*
|
|
189
|
-
*
|
|
190
|
-
* readonly
|
|
191
|
-
*
|
|
192
|
-
*
|
|
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"]>
|
|
193
259
|
* }
|
|
194
260
|
*
|
|
195
|
-
*
|
|
196
|
-
*
|
|
261
|
+
* const { Failure, Success } = Data.taggedEnum<MyResultDef>()
|
|
262
|
+
*
|
|
263
|
+
* const ok = Success({ value: 42 })
|
|
264
|
+
* // ok: { readonly _tag: "Success"; readonly value: number }
|
|
197
265
|
* ```
|
|
198
266
|
*
|
|
267
|
+
* @see {@link Kind} — apply concrete types to a `WithGenerics` definition
|
|
268
|
+
* @see {@link taggedEnum} — runtime constructors
|
|
269
|
+
*
|
|
199
270
|
* @since 2.0.0
|
|
200
|
-
* @category models
|
|
201
271
|
*/
|
|
202
272
|
export interface WithGenerics<Count extends number> {
|
|
203
273
|
readonly taggedEnum: { readonly _tag: string }
|
|
@@ -210,45 +280,33 @@ export declare namespace TaggedEnum {
|
|
|
210
280
|
}
|
|
211
281
|
|
|
212
282
|
/**
|
|
213
|
-
*
|
|
283
|
+
* Applies concrete type arguments to a `WithGenerics` definition, producing
|
|
284
|
+
* the resulting tagged union type.
|
|
214
285
|
*
|
|
215
|
-
*
|
|
216
|
-
*
|
|
286
|
+
* - Use to refer to a specific instantiation of a generic tagged enum in
|
|
287
|
+
* type signatures.
|
|
288
|
+
*
|
|
289
|
+
* **Example** (applying generics)
|
|
217
290
|
*
|
|
218
|
-
* @example
|
|
219
291
|
* ```ts
|
|
220
292
|
* import type { Data } from "effect"
|
|
221
293
|
*
|
|
222
|
-
* // Define a generic Option type
|
|
223
294
|
* type Option<A> = Data.TaggedEnum<{
|
|
224
295
|
* None: {}
|
|
225
296
|
* Some: { readonly value: A }
|
|
226
297
|
* }>
|
|
227
|
-
*
|
|
228
|
-
* interface OptionDefinition extends Data.TaggedEnum.WithGenerics<1> {
|
|
298
|
+
* interface OptionDef extends Data.TaggedEnum.WithGenerics<1> {
|
|
229
299
|
* readonly taggedEnum: Option<this["A"]>
|
|
230
300
|
* }
|
|
231
301
|
*
|
|
232
|
-
* //
|
|
233
|
-
* type StringOption = Data.TaggedEnum.Kind<
|
|
234
|
-
* //
|
|
235
|
-
*
|
|
236
|
-
* type NumberOption = Data.TaggedEnum.Kind<OptionDefinition, number>
|
|
237
|
-
* // Result: { readonly _tag: "None" } | { readonly _tag: "Some"; readonly value: number }
|
|
238
|
-
*
|
|
239
|
-
* // Usage in type-safe functions
|
|
240
|
-
* const processOption = (opt: StringOption): string => {
|
|
241
|
-
* switch (opt._tag) {
|
|
242
|
-
* case "None":
|
|
243
|
-
* return "No value"
|
|
244
|
-
* case "Some":
|
|
245
|
-
* return `Value: ${opt.value}`
|
|
246
|
-
* }
|
|
247
|
-
* }
|
|
302
|
+
* // Resolve to the concrete union for `string`
|
|
303
|
+
* type StringOption = Data.TaggedEnum.Kind<OptionDef, string>
|
|
304
|
+
* // { _tag: "None" } | { _tag: "Some"; value: string }
|
|
248
305
|
* ```
|
|
249
306
|
*
|
|
307
|
+
* @see {@link WithGenerics} — define the generic shape
|
|
308
|
+
*
|
|
250
309
|
* @since 2.0.0
|
|
251
|
-
* @category models
|
|
252
310
|
*/
|
|
253
311
|
export type Kind<
|
|
254
312
|
Z extends WithGenerics<number>,
|
|
@@ -264,30 +322,30 @@ export declare namespace TaggedEnum {
|
|
|
264
322
|
})["taggedEnum"]
|
|
265
323
|
|
|
266
324
|
/**
|
|
267
|
-
* Extracts the argument
|
|
325
|
+
* Extracts the constructor argument type for a specific variant of a tagged
|
|
326
|
+
* union.
|
|
327
|
+
*
|
|
328
|
+
* Returns `void` if the variant has no fields beyond `_tag`.
|
|
268
329
|
*
|
|
269
|
-
*
|
|
270
|
-
* a specific variant of a tagged enum, excluding the `_tag` field.
|
|
330
|
+
* **Example** (extracting variant args)
|
|
271
331
|
*
|
|
272
|
-
* @example
|
|
273
332
|
* ```ts
|
|
274
333
|
* import type { Data } from "effect"
|
|
275
334
|
*
|
|
276
335
|
* type Result =
|
|
277
|
-
* | { readonly _tag: "
|
|
278
|
-
* | { readonly _tag: "
|
|
336
|
+
* | { readonly _tag: "Ok"; readonly value: number }
|
|
337
|
+
* | { readonly _tag: "Err"; readonly error: string }
|
|
279
338
|
*
|
|
280
|
-
*
|
|
281
|
-
*
|
|
282
|
-
* // Result: { readonly value: number }
|
|
339
|
+
* type OkArgs = Data.TaggedEnum.Args<Result, "Ok">
|
|
340
|
+
* // { readonly value: number }
|
|
283
341
|
*
|
|
284
|
-
*
|
|
285
|
-
*
|
|
286
|
-
* // Result: { readonly error: string }
|
|
342
|
+
* type ErrArgs = Data.TaggedEnum.Args<Result, "Err">
|
|
343
|
+
* // { readonly error: string }
|
|
287
344
|
* ```
|
|
288
345
|
*
|
|
346
|
+
* @see {@link Value} — extracts the full variant type (including `_tag`)
|
|
347
|
+
*
|
|
289
348
|
* @since 2.0.0
|
|
290
|
-
* @category types
|
|
291
349
|
*/
|
|
292
350
|
export type Args<
|
|
293
351
|
A extends { readonly _tag: string },
|
|
@@ -295,35 +353,28 @@ export declare namespace TaggedEnum {
|
|
|
295
353
|
E = Extract<A, { readonly _tag: K }>
|
|
296
354
|
> = {
|
|
297
355
|
readonly [K in keyof E as K extends "_tag" ? never : K]: E[K]
|
|
298
|
-
} extends infer T ?
|
|
299
|
-
: T
|
|
356
|
+
} extends infer T ? Types.VoidIfEmpty<T>
|
|
300
357
|
: never
|
|
301
358
|
|
|
302
359
|
/**
|
|
303
|
-
* Extracts the
|
|
360
|
+
* Extracts the full variant type (including `_tag`) for a specific tag.
|
|
304
361
|
*
|
|
305
|
-
*
|
|
306
|
-
* for a specific variant of a tagged enum.
|
|
362
|
+
* **Example** (extracting a variant type)
|
|
307
363
|
*
|
|
308
|
-
* @example
|
|
309
364
|
* ```ts
|
|
310
365
|
* import type { Data } from "effect"
|
|
311
366
|
*
|
|
312
367
|
* type Result =
|
|
313
|
-
* | { readonly _tag: "
|
|
314
|
-
* | { readonly _tag: "
|
|
315
|
-
*
|
|
316
|
-
* // Extract complete Success type
|
|
317
|
-
* type SuccessValue = Data.TaggedEnum.Value<Result, "Success">
|
|
318
|
-
* // Result: { readonly _tag: "Success"; readonly value: number }
|
|
368
|
+
* | { readonly _tag: "Ok"; readonly value: number }
|
|
369
|
+
* | { readonly _tag: "Err"; readonly error: string }
|
|
319
370
|
*
|
|
320
|
-
*
|
|
321
|
-
*
|
|
322
|
-
* // Result: { readonly _tag: "Failure"; readonly error: string }
|
|
371
|
+
* type OkVariant = Data.TaggedEnum.Value<Result, "Ok">
|
|
372
|
+
* // { readonly _tag: "Ok"; readonly value: number }
|
|
323
373
|
* ```
|
|
324
374
|
*
|
|
375
|
+
* @see {@link Args} — extracts fields without `_tag`
|
|
376
|
+
*
|
|
325
377
|
* @since 2.0.0
|
|
326
|
-
* @category types
|
|
327
378
|
*/
|
|
328
379
|
export type Value<
|
|
329
380
|
A extends { readonly _tag: string },
|
|
@@ -331,37 +382,40 @@ export declare namespace TaggedEnum {
|
|
|
331
382
|
> = Extract<A, { readonly _tag: K }>
|
|
332
383
|
|
|
333
384
|
/**
|
|
334
|
-
*
|
|
385
|
+
* The full constructor-object type returned by {@link taggedEnum}.
|
|
386
|
+
*
|
|
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)
|
|
335
391
|
*
|
|
336
|
-
*
|
|
337
|
-
* - Individual constructors for each variant
|
|
338
|
-
* - `$is` for type predicates
|
|
339
|
-
* - `$match` for pattern matching
|
|
392
|
+
* **Example** (using the constructor object)
|
|
340
393
|
*
|
|
341
|
-
* @example
|
|
342
394
|
* ```ts
|
|
343
395
|
* import { Data } from "effect"
|
|
344
396
|
*
|
|
345
|
-
* type
|
|
346
|
-
* | { readonly _tag: "
|
|
347
|
-
* | { readonly _tag: "
|
|
397
|
+
* type Shape =
|
|
398
|
+
* | { readonly _tag: "Circle"; readonly radius: number }
|
|
399
|
+
* | { readonly _tag: "Rect"; readonly w: number; readonly h: number }
|
|
348
400
|
*
|
|
349
|
-
* const { $is, $match
|
|
401
|
+
* const { Circle, Rect, $is, $match } = Data.taggedEnum<Shape>()
|
|
350
402
|
*
|
|
351
|
-
* const
|
|
403
|
+
* const shape = Circle({ radius: 10 })
|
|
352
404
|
*
|
|
353
|
-
* // Type
|
|
354
|
-
* if ($is("
|
|
355
|
-
* console.log(
|
|
405
|
+
* // Type guard
|
|
406
|
+
* if ($is("Circle")(shape)) {
|
|
407
|
+
* console.log(shape.radius)
|
|
356
408
|
* }
|
|
357
409
|
*
|
|
358
410
|
* // Pattern matching
|
|
359
|
-
* const
|
|
360
|
-
*
|
|
361
|
-
*
|
|
411
|
+
* const label = $match(shape, {
|
|
412
|
+
* Circle: (s) => `circle r=${s.radius}`,
|
|
413
|
+
* Rect: (s) => `rect ${s.w}x${s.h}`
|
|
362
414
|
* })
|
|
363
415
|
* ```
|
|
364
416
|
*
|
|
417
|
+
* @see {@link taggedEnum} — creates a `Constructor`
|
|
418
|
+
*
|
|
365
419
|
* @since 3.1.0
|
|
366
420
|
* @category types
|
|
367
421
|
*/
|
|
@@ -400,52 +454,26 @@ export declare namespace TaggedEnum {
|
|
|
400
454
|
>
|
|
401
455
|
|
|
402
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
|
+
*
|
|
403
462
|
* @since 4.0.0
|
|
404
|
-
* @category types
|
|
405
463
|
*/
|
|
406
464
|
export type ConstructorFrom<A, Tag extends keyof A = never> = (
|
|
407
|
-
args: Types.
|
|
408
|
-
: { 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] }>
|
|
409
466
|
) => A
|
|
410
467
|
|
|
411
468
|
/**
|
|
412
|
-
*
|
|
413
|
-
*
|
|
414
|
-
* This interface provides `$is` and `$match` utilities for tagged enums
|
|
415
|
-
* that use generics, ensuring type safety across different generic instantiations.
|
|
416
|
-
*
|
|
417
|
-
* @example
|
|
418
|
-
* ```ts
|
|
419
|
-
* import { Data } from "effect"
|
|
420
|
-
*
|
|
421
|
-
* type Result<E, A> = Data.TaggedEnum<{
|
|
422
|
-
* Failure: { readonly error: E }
|
|
423
|
-
* Success: { readonly value: A }
|
|
424
|
-
* }>
|
|
425
|
-
*
|
|
426
|
-
* interface ResultDefinition extends Data.TaggedEnum.WithGenerics<2> {
|
|
427
|
-
* readonly taggedEnum: Result<this["A"], this["B"]>
|
|
428
|
-
* }
|
|
429
|
-
*
|
|
430
|
-
* const { $is, $match, Failure, Success } = Data.taggedEnum<ResultDefinition>()
|
|
431
|
-
*
|
|
432
|
-
* const stringResult = Success({ value: "hello" })
|
|
433
|
-
* const numberResult = Failure({ error: 404 })
|
|
469
|
+
* Type-guard and pattern-matching interface for generic tagged enums.
|
|
434
470
|
*
|
|
435
|
-
*
|
|
436
|
-
*
|
|
437
|
-
* console.log(stringResult.value) // TypeScript knows this is string
|
|
438
|
-
* }
|
|
471
|
+
* This is the `$is` / `$match` portion of the object returned by
|
|
472
|
+
* {@link taggedEnum} when used with a {@link WithGenerics} definition.
|
|
439
473
|
*
|
|
440
|
-
*
|
|
441
|
-
* const message = $match(numberResult, {
|
|
442
|
-
* Success: ({ value }) => `Value: ${value}`,
|
|
443
|
-
* Failure: ({ error }) => `Error: ${error}`
|
|
444
|
-
* })
|
|
445
|
-
* ```
|
|
474
|
+
* @see {@link Constructor} — the non-generic equivalent
|
|
446
475
|
*
|
|
447
476
|
* @since 3.2.0
|
|
448
|
-
* @category types
|
|
449
477
|
*/
|
|
450
478
|
export interface GenericMatchers<Z extends WithGenerics<number>> {
|
|
451
479
|
readonly $is: <Tag extends Z["taggedEnum"]["_tag"]>(
|
|
@@ -497,88 +525,128 @@ export declare namespace TaggedEnum {
|
|
|
497
525
|
}
|
|
498
526
|
|
|
499
527
|
/**
|
|
500
|
-
*
|
|
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.
|
|
501
539
|
*
|
|
502
|
-
*
|
|
503
|
-
* the constructor.
|
|
540
|
+
* **Example** (basic usage)
|
|
504
541
|
*
|
|
505
|
-
* @example
|
|
506
542
|
* ```ts
|
|
507
543
|
* import { Data } from "effect"
|
|
508
544
|
*
|
|
509
|
-
*
|
|
510
|
-
*
|
|
511
|
-
*
|
|
512
|
-
*
|
|
513
|
-
*
|
|
514
|
-
*
|
|
515
|
-
*
|
|
516
|
-
*
|
|
517
|
-
*
|
|
518
|
-
*
|
|
519
|
-
*
|
|
520
|
-
*
|
|
521
|
-
*
|
|
522
|
-
* 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"
|
|
523
563
|
* ```
|
|
524
564
|
*
|
|
525
|
-
*
|
|
565
|
+
* **Example** (generic tagged enum)
|
|
566
|
+
*
|
|
567
|
+
* ```ts
|
|
526
568
|
* import { Data } from "effect"
|
|
527
569
|
*
|
|
528
570
|
* type MyResult<E, A> = Data.TaggedEnum<{
|
|
529
571
|
* Failure: { readonly error: E }
|
|
530
572
|
* Success: { readonly value: A }
|
|
531
573
|
* }>
|
|
532
|
-
* interface
|
|
574
|
+
* interface MyResultDef extends Data.TaggedEnum.WithGenerics<2> {
|
|
533
575
|
* readonly taggedEnum: MyResult<this["A"], this["B"]>
|
|
534
576
|
* }
|
|
535
|
-
* const { Failure, Success } = Data.taggedEnum<
|
|
577
|
+
* const { Failure, Success } = Data.taggedEnum<MyResultDef>()
|
|
536
578
|
*
|
|
537
|
-
* 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
|
|
538
586
|
*
|
|
539
587
|
* @category constructors
|
|
540
588
|
* @since 2.0.0
|
|
541
589
|
*/
|
|
542
590
|
export const taggedEnum: {
|
|
543
591
|
/**
|
|
544
|
-
*
|
|
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)
|
|
545
599
|
*
|
|
546
|
-
*
|
|
547
|
-
*
|
|
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)
|
|
548
605
|
*
|
|
549
|
-
* @example
|
|
550
606
|
* ```ts
|
|
551
607
|
* import { Data } from "effect"
|
|
552
608
|
*
|
|
553
|
-
*
|
|
554
|
-
*
|
|
555
|
-
*
|
|
556
|
-
*
|
|
557
|
-
*
|
|
558
|
-
*
|
|
559
|
-
*
|
|
560
|
-
*
|
|
561
|
-
*
|
|
562
|
-
*
|
|
563
|
-
*
|
|
564
|
-
*
|
|
565
|
-
*
|
|
566
|
-
* 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"
|
|
567
627
|
* ```
|
|
568
628
|
*
|
|
569
|
-
*
|
|
629
|
+
* **Example** (generic tagged enum)
|
|
630
|
+
*
|
|
631
|
+
* ```ts
|
|
570
632
|
* import { Data } from "effect"
|
|
571
633
|
*
|
|
572
634
|
* type MyResult<E, A> = Data.TaggedEnum<{
|
|
573
635
|
* Failure: { readonly error: E }
|
|
574
636
|
* Success: { readonly value: A }
|
|
575
637
|
* }>
|
|
576
|
-
* interface
|
|
638
|
+
* interface MyResultDef extends Data.TaggedEnum.WithGenerics<2> {
|
|
577
639
|
* readonly taggedEnum: MyResult<this["A"], this["B"]>
|
|
578
640
|
* }
|
|
579
|
-
* const { Failure, Success } = Data.taggedEnum<
|
|
641
|
+
* const { Failure, Success } = Data.taggedEnum<MyResultDef>()
|
|
580
642
|
*
|
|
581
|
-
* const
|
|
643
|
+
* const ok = Success({ value: 42 })
|
|
644
|
+
* // ok: { readonly _tag: "Success"; readonly value: number }
|
|
645
|
+
* ```
|
|
646
|
+
*
|
|
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
|
|
582
650
|
*
|
|
583
651
|
* @category constructors
|
|
584
652
|
* @since 2.0.0
|
|
@@ -596,44 +664,64 @@ export const taggedEnum: {
|
|
|
596
664
|
>
|
|
597
665
|
|
|
598
666
|
/**
|
|
599
|
-
*
|
|
667
|
+
* Creates runtime constructors, type guards, and pattern matching for a
|
|
668
|
+
* {@link TaggedEnum} type.
|
|
669
|
+
*
|
|
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.
|
|
600
678
|
*
|
|
601
|
-
*
|
|
602
|
-
* the constructor.
|
|
679
|
+
* **Example** (basic usage)
|
|
603
680
|
*
|
|
604
|
-
* @example
|
|
605
681
|
* ```ts
|
|
606
682
|
* import { Data } from "effect"
|
|
607
683
|
*
|
|
608
|
-
*
|
|
609
|
-
*
|
|
610
|
-
*
|
|
611
|
-
*
|
|
612
|
-
*
|
|
613
|
-
*
|
|
614
|
-
*
|
|
615
|
-
*
|
|
616
|
-
*
|
|
617
|
-
*
|
|
618
|
-
*
|
|
619
|
-
*
|
|
620
|
-
*
|
|
621
|
-
* 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"
|
|
622
702
|
* ```
|
|
623
703
|
*
|
|
624
|
-
*
|
|
704
|
+
* **Example** (generic tagged enum)
|
|
705
|
+
*
|
|
706
|
+
* ```ts
|
|
625
707
|
* import { Data } from "effect"
|
|
626
708
|
*
|
|
627
709
|
* type MyResult<E, A> = Data.TaggedEnum<{
|
|
628
710
|
* Failure: { readonly error: E }
|
|
629
711
|
* Success: { readonly value: A }
|
|
630
712
|
* }>
|
|
631
|
-
* interface
|
|
713
|
+
* interface MyResultDef extends Data.TaggedEnum.WithGenerics<2> {
|
|
632
714
|
* readonly taggedEnum: MyResult<this["A"], this["B"]>
|
|
633
715
|
* }
|
|
634
|
-
* const { Failure, Success } = Data.taggedEnum<
|
|
716
|
+
* const { Failure, Success } = Data.taggedEnum<MyResultDef>()
|
|
717
|
+
*
|
|
718
|
+
* const ok = Success({ value: 42 })
|
|
719
|
+
* // ok: { readonly _tag: "Success"; readonly value: number }
|
|
720
|
+
* ```
|
|
635
721
|
*
|
|
636
|
-
*
|
|
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
|
|
637
725
|
*
|
|
638
726
|
* @category constructors
|
|
639
727
|
* @since 2.0.0
|
|
@@ -651,44 +739,64 @@ export const taggedEnum: {
|
|
|
651
739
|
>
|
|
652
740
|
|
|
653
741
|
/**
|
|
654
|
-
*
|
|
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)
|
|
749
|
+
*
|
|
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.
|
|
655
753
|
*
|
|
656
|
-
*
|
|
657
|
-
* the constructor.
|
|
754
|
+
* **Example** (basic usage)
|
|
658
755
|
*
|
|
659
|
-
* @example
|
|
660
756
|
* ```ts
|
|
661
757
|
* import { Data } from "effect"
|
|
662
758
|
*
|
|
663
|
-
*
|
|
664
|
-
*
|
|
665
|
-
*
|
|
666
|
-
*
|
|
667
|
-
*
|
|
668
|
-
*
|
|
669
|
-
*
|
|
670
|
-
*
|
|
671
|
-
*
|
|
672
|
-
*
|
|
673
|
-
*
|
|
674
|
-
*
|
|
675
|
-
*
|
|
676
|
-
* 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"
|
|
677
777
|
* ```
|
|
678
778
|
*
|
|
679
|
-
*
|
|
779
|
+
* **Example** (generic tagged enum)
|
|
780
|
+
*
|
|
781
|
+
* ```ts
|
|
680
782
|
* import { Data } from "effect"
|
|
681
783
|
*
|
|
682
784
|
* type MyResult<E, A> = Data.TaggedEnum<{
|
|
683
785
|
* Failure: { readonly error: E }
|
|
684
786
|
* Success: { readonly value: A }
|
|
685
787
|
* }>
|
|
686
|
-
* interface
|
|
788
|
+
* interface MyResultDef extends Data.TaggedEnum.WithGenerics<2> {
|
|
687
789
|
* readonly taggedEnum: MyResult<this["A"], this["B"]>
|
|
688
790
|
* }
|
|
689
|
-
* const { Failure, Success } = Data.taggedEnum<
|
|
791
|
+
* const { Failure, Success } = Data.taggedEnum<MyResultDef>()
|
|
690
792
|
*
|
|
691
|
-
* const
|
|
793
|
+
* const ok = Success({ value: 42 })
|
|
794
|
+
* // ok: { readonly _tag: "Success"; readonly value: number }
|
|
795
|
+
* ```
|
|
796
|
+
*
|
|
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
|
|
692
800
|
*
|
|
693
801
|
* @category constructors
|
|
694
802
|
* @since 2.0.0
|
|
@@ -706,44 +814,64 @@ export const taggedEnum: {
|
|
|
706
814
|
>
|
|
707
815
|
|
|
708
816
|
/**
|
|
709
|
-
*
|
|
817
|
+
* Creates runtime constructors, type guards, and pattern matching for a
|
|
818
|
+
* {@link TaggedEnum} type.
|
|
819
|
+
*
|
|
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)
|
|
710
824
|
*
|
|
711
|
-
*
|
|
712
|
-
*
|
|
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)
|
|
713
830
|
*
|
|
714
|
-
* @example
|
|
715
831
|
* ```ts
|
|
716
832
|
* import { Data } from "effect"
|
|
717
833
|
*
|
|
718
|
-
*
|
|
719
|
-
*
|
|
720
|
-
*
|
|
721
|
-
*
|
|
722
|
-
*
|
|
723
|
-
*
|
|
724
|
-
*
|
|
725
|
-
*
|
|
726
|
-
*
|
|
727
|
-
*
|
|
728
|
-
*
|
|
729
|
-
*
|
|
730
|
-
*
|
|
731
|
-
* 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"
|
|
732
852
|
* ```
|
|
733
853
|
*
|
|
734
|
-
*
|
|
854
|
+
* **Example** (generic tagged enum)
|
|
855
|
+
*
|
|
856
|
+
* ```ts
|
|
735
857
|
* import { Data } from "effect"
|
|
736
858
|
*
|
|
737
859
|
* type MyResult<E, A> = Data.TaggedEnum<{
|
|
738
860
|
* Failure: { readonly error: E }
|
|
739
861
|
* Success: { readonly value: A }
|
|
740
862
|
* }>
|
|
741
|
-
* interface
|
|
863
|
+
* interface MyResultDef extends Data.TaggedEnum.WithGenerics<2> {
|
|
742
864
|
* readonly taggedEnum: MyResult<this["A"], this["B"]>
|
|
743
865
|
* }
|
|
744
|
-
* const { Failure, Success } = Data.taggedEnum<
|
|
866
|
+
* const { Failure, Success } = Data.taggedEnum<MyResultDef>()
|
|
745
867
|
*
|
|
746
|
-
* 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
|
|
747
875
|
*
|
|
748
876
|
* @category constructors
|
|
749
877
|
* @since 2.0.0
|
|
@@ -761,44 +889,64 @@ export const taggedEnum: {
|
|
|
761
889
|
>
|
|
762
890
|
|
|
763
891
|
/**
|
|
764
|
-
*
|
|
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)
|
|
899
|
+
*
|
|
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.
|
|
765
903
|
*
|
|
766
|
-
*
|
|
767
|
-
* the constructor.
|
|
904
|
+
* **Example** (basic usage)
|
|
768
905
|
*
|
|
769
|
-
* @example
|
|
770
906
|
* ```ts
|
|
771
907
|
* import { Data } from "effect"
|
|
772
908
|
*
|
|
773
|
-
*
|
|
774
|
-
*
|
|
775
|
-
*
|
|
776
|
-
*
|
|
777
|
-
*
|
|
778
|
-
*
|
|
779
|
-
*
|
|
780
|
-
*
|
|
781
|
-
*
|
|
782
|
-
*
|
|
783
|
-
*
|
|
784
|
-
*
|
|
785
|
-
*
|
|
786
|
-
* 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"
|
|
787
927
|
* ```
|
|
788
928
|
*
|
|
789
|
-
*
|
|
929
|
+
* **Example** (generic tagged enum)
|
|
930
|
+
*
|
|
931
|
+
* ```ts
|
|
790
932
|
* import { Data } from "effect"
|
|
791
933
|
*
|
|
792
934
|
* type MyResult<E, A> = Data.TaggedEnum<{
|
|
793
935
|
* Failure: { readonly error: E }
|
|
794
936
|
* Success: { readonly value: A }
|
|
795
937
|
* }>
|
|
796
|
-
* interface
|
|
938
|
+
* interface MyResultDef extends Data.TaggedEnum.WithGenerics<2> {
|
|
797
939
|
* readonly taggedEnum: MyResult<this["A"], this["B"]>
|
|
798
940
|
* }
|
|
799
|
-
* 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
|
+
* ```
|
|
800
946
|
*
|
|
801
|
-
*
|
|
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
|
|
802
950
|
*
|
|
803
951
|
* @category constructors
|
|
804
952
|
* @since 2.0.0
|
|
@@ -814,7 +962,7 @@ export const taggedEnum: {
|
|
|
814
962
|
} else if (tag === "$match") {
|
|
815
963
|
return taggedMatch
|
|
816
964
|
}
|
|
817
|
-
return (props: any) => ({ _tag: tag
|
|
965
|
+
return (props: any) => ({ ...props, _tag: tag })
|
|
818
966
|
}
|
|
819
967
|
}
|
|
820
968
|
) as any
|
|
@@ -849,72 +997,86 @@ function taggedMatch<
|
|
|
849
997
|
}
|
|
850
998
|
|
|
851
999
|
/**
|
|
852
|
-
*
|
|
1000
|
+
* Base class for yieldable errors.
|
|
853
1001
|
*
|
|
854
|
-
*
|
|
855
|
-
*
|
|
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)
|
|
856
1011
|
*
|
|
857
|
-
* @example
|
|
858
1012
|
* ```ts
|
|
859
1013
|
* import { Data, Effect } from "effect"
|
|
860
1014
|
*
|
|
861
|
-
* class NetworkError extends Data.Error<{
|
|
1015
|
+
* class NetworkError extends Data.Error<{
|
|
1016
|
+
* readonly code: number
|
|
1017
|
+
* readonly message: string
|
|
1018
|
+
* }> {}
|
|
862
1019
|
*
|
|
863
1020
|
* const program = Effect.gen(function*() {
|
|
864
|
-
* yield* new NetworkError({ code: 500, message: "
|
|
1021
|
+
* return yield* new NetworkError({ code: 500, message: "timeout" })
|
|
865
1022
|
* })
|
|
866
1023
|
*
|
|
1024
|
+
* // The effect fails with a NetworkError
|
|
867
1025
|
* Effect.runSync(Effect.exit(program))
|
|
868
|
-
* // Exit.fail(NetworkError({ code: 500, message: "Server error" }))
|
|
869
1026
|
* ```
|
|
870
1027
|
*
|
|
1028
|
+
* @see {@link TaggedError} — adds a `_tag` for `Effect.catchTag`
|
|
1029
|
+
* @see {@link Class} — non-error data class
|
|
1030
|
+
*
|
|
871
1031
|
* @category constructors
|
|
872
1032
|
* @since 2.0.0
|
|
873
1033
|
*/
|
|
874
1034
|
export const Error: new<A extends Record<string, any> = {}>(
|
|
875
|
-
args: Types.
|
|
876
|
-
: { readonly [P in keyof A]: A[P] }
|
|
1035
|
+
args: Types.VoidIfEmpty<{ readonly [P in keyof A]: A[P] }>
|
|
877
1036
|
) => Cause.YieldableError & Readonly<A> = core.Error
|
|
878
1037
|
|
|
879
1038
|
/**
|
|
880
|
-
*
|
|
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.
|
|
881
1048
|
*
|
|
882
|
-
*
|
|
883
|
-
* `Cause.YieldableError` and have structural equality semantics.
|
|
1049
|
+
* **Example** (tag-based error recovery)
|
|
884
1050
|
*
|
|
885
|
-
* @example
|
|
886
1051
|
* ```ts
|
|
887
|
-
* import { Data, Effect
|
|
1052
|
+
* import { Data, Effect } from "effect"
|
|
888
1053
|
*
|
|
889
|
-
* class
|
|
890
|
-
*
|
|
891
|
-
* message: string
|
|
1054
|
+
* class NotFound extends Data.TaggedError("NotFound")<{
|
|
1055
|
+
* readonly resource: string
|
|
892
1056
|
* }> {}
|
|
893
1057
|
*
|
|
894
|
-
* class
|
|
895
|
-
*
|
|
896
|
-
* message: string
|
|
1058
|
+
* class Forbidden extends Data.TaggedError("Forbidden")<{
|
|
1059
|
+
* readonly reason: string
|
|
897
1060
|
* }> {}
|
|
898
1061
|
*
|
|
899
1062
|
* const program = Effect.gen(function*() {
|
|
900
|
-
* yield* new
|
|
1063
|
+
* return yield* new NotFound({ resource: "/users/42" })
|
|
901
1064
|
* })
|
|
902
1065
|
*
|
|
903
|
-
* const
|
|
904
|
-
*
|
|
905
|
-
*
|
|
906
|
-
* "NetworkError",
|
|
907
|
-
* (error) => Effect.succeed(`Network error: ${error.message}`)
|
|
908
|
-
* )
|
|
1066
|
+
* const recovered = program.pipe(
|
|
1067
|
+
* Effect.catchTag("NotFound", (e) =>
|
|
1068
|
+
* Effect.succeed(`missing: ${e.resource}`))
|
|
909
1069
|
* )
|
|
910
1070
|
* ```
|
|
911
1071
|
*
|
|
1072
|
+
* @see {@link Error} — without a `_tag`
|
|
1073
|
+
* @see {@link TaggedClass} — tagged class that is not an error
|
|
1074
|
+
*
|
|
912
1075
|
* @category constructors
|
|
913
1076
|
* @since 2.0.0
|
|
914
1077
|
*/
|
|
915
1078
|
export const TaggedError: <Tag extends string>(
|
|
916
1079
|
tag: Tag
|
|
917
1080
|
) => new<A extends Record<string, any> = {}>(
|
|
918
|
-
args: Types.
|
|
919
|
-
: { 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] }>
|
|
920
1082
|
) => Cause.YieldableError & { readonly _tag: Tag } & Readonly<A> = core.TaggedError as any
|