effect 4.0.0-beta.69 → 4.0.0-beta.70
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 +454 -0
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +152 -0
- package/dist/Array.js.map +1 -1
- package/dist/BigDecimal.d.ts +87 -33
- package/dist/BigDecimal.d.ts.map +1 -1
- package/dist/BigDecimal.js +37 -11
- package/dist/BigDecimal.js.map +1 -1
- package/dist/BigInt.d.ts +71 -14
- package/dist/BigInt.d.ts.map +1 -1
- package/dist/BigInt.js +35 -10
- package/dist/BigInt.js.map +1 -1
- package/dist/Boolean.d.ts +4 -0
- package/dist/Boolean.d.ts.map +1 -1
- package/dist/Boolean.js +4 -0
- package/dist/Boolean.js.map +1 -1
- package/dist/Brand.d.ts +16 -11
- package/dist/Brand.d.ts.map +1 -1
- package/dist/Brand.js +16 -11
- package/dist/Brand.js.map +1 -1
- package/dist/Cache.d.ts +13 -1
- package/dist/Cache.d.ts.map +1 -1
- package/dist/Cache.js +8 -0
- package/dist/Cache.js.map +1 -1
- package/dist/Cause.d.ts +95 -3
- package/dist/Cause.d.ts.map +1 -1
- package/dist/Cause.js +56 -2
- package/dist/Cause.js.map +1 -1
- package/dist/Channel.d.ts +312 -0
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +126 -0
- package/dist/Channel.js.map +1 -1
- package/dist/ChannelSchema.d.ts +20 -0
- package/dist/ChannelSchema.d.ts.map +1 -1
- package/dist/ChannelSchema.js +12 -0
- package/dist/ChannelSchema.js.map +1 -1
- package/dist/Chunk.d.ts +59 -22
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +29 -10
- package/dist/Chunk.js.map +1 -1
- package/dist/Combiner.d.ts +75 -71
- package/dist/Combiner.d.ts.map +1 -1
- package/dist/Combiner.js +67 -62
- package/dist/Combiner.js.map +1 -1
- package/dist/Config.d.ts +167 -46
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +108 -28
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts +235 -158
- package/dist/ConfigProvider.d.ts.map +1 -1
- package/dist/ConfigProvider.js +144 -93
- package/dist/ConfigProvider.js.map +1 -1
- package/dist/Console.d.ts +21 -79
- package/dist/Console.d.ts.map +1 -1
- package/dist/Console.js +20 -75
- package/dist/Console.js.map +1 -1
- package/dist/Context.d.ts +4 -4
- package/dist/Context.js +2 -2
- package/dist/Cron.d.ts +42 -16
- package/dist/Cron.d.ts.map +1 -1
- package/dist/Cron.js +33 -13
- package/dist/Cron.js.map +1 -1
- package/dist/Crypto.d.ts +6 -0
- package/dist/Crypto.d.ts.map +1 -1
- package/dist/Crypto.js.map +1 -1
- package/dist/Data.d.ts +132 -70
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js +44 -29
- package/dist/Data.js.map +1 -1
- package/dist/DateTime.d.ts +227 -14
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +115 -6
- package/dist/DateTime.js.map +1 -1
- package/dist/Deferred.d.ts +94 -27
- package/dist/Deferred.d.ts.map +1 -1
- package/dist/Deferred.js +33 -8
- package/dist/Deferred.js.map +1 -1
- package/dist/Differ.d.ts +2 -0
- package/dist/Differ.d.ts.map +1 -1
- package/dist/Duration.d.ts +64 -6
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +26 -2
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +907 -603
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +360 -233
- package/dist/Effect.js.map +1 -1
- package/dist/Effectable.d.ts +3 -1
- package/dist/Effectable.d.ts.map +1 -1
- package/dist/Effectable.js +3 -1
- package/dist/Effectable.js.map +1 -1
- package/dist/Encoding.d.ts +16 -0
- package/dist/Encoding.d.ts.map +1 -1
- package/dist/Encoding.js +16 -0
- package/dist/Encoding.js.map +1 -1
- package/dist/Equal.d.ts +52 -40
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +32 -26
- package/dist/Equal.js.map +1 -1
- package/dist/Equivalence.d.ts +190 -153
- package/dist/Equivalence.d.ts.map +1 -1
- package/dist/Equivalence.js +129 -104
- package/dist/Equivalence.js.map +1 -1
- package/dist/ErrorReporter.d.ts +35 -14
- package/dist/ErrorReporter.d.ts.map +1 -1
- package/dist/ErrorReporter.js +18 -6
- package/dist/ErrorReporter.js.map +1 -1
- package/dist/ExecutionPlan.d.ts +10 -3
- package/dist/ExecutionPlan.d.ts.map +1 -1
- package/dist/ExecutionPlan.js +4 -3
- package/dist/ExecutionPlan.js.map +1 -1
- package/dist/Exit.d.ts +212 -6
- package/dist/Exit.d.ts.map +1 -1
- package/dist/Exit.js +139 -2
- package/dist/Exit.js.map +1 -1
- package/dist/Fiber.d.ts +8 -0
- package/dist/Fiber.d.ts.map +1 -1
- package/dist/Fiber.js +4 -0
- package/dist/Fiber.js.map +1 -1
- package/dist/FiberHandle.d.ts +46 -23
- package/dist/FiberHandle.d.ts.map +1 -1
- package/dist/FiberHandle.js +27 -11
- package/dist/FiberHandle.js.map +1 -1
- package/dist/FiberMap.d.ts +43 -4
- package/dist/FiberMap.d.ts.map +1 -1
- package/dist/FiberMap.js +27 -4
- package/dist/FiberMap.js.map +1 -1
- package/dist/FiberSet.d.ts +21 -6
- package/dist/FiberSet.d.ts.map +1 -1
- package/dist/FiberSet.js +17 -6
- package/dist/FiberSet.js.map +1 -1
- package/dist/FileSystem.d.ts +64 -0
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +26 -0
- package/dist/FileSystem.js.map +1 -1
- package/dist/Filter.d.ts +53 -21
- package/dist/Filter.d.ts.map +1 -1
- package/dist/Filter.js +20 -9
- package/dist/Filter.js.map +1 -1
- package/dist/Formatter.d.ts +21 -22
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +12 -12
- package/dist/Formatter.js.map +1 -1
- package/dist/Function.d.ts +67 -75
- package/dist/Function.d.ts.map +1 -1
- package/dist/Function.js +29 -19
- package/dist/Function.js.map +1 -1
- package/dist/Graph.d.ts +51 -13
- package/dist/Graph.d.ts.map +1 -1
- package/dist/Graph.js +19 -3
- package/dist/Graph.js.map +1 -1
- package/dist/HKT.d.ts +22 -21
- package/dist/HKT.d.ts.map +1 -1
- package/dist/Hash.d.ts +33 -10
- package/dist/Hash.d.ts.map +1 -1
- package/dist/Hash.js +27 -10
- package/dist/Hash.js.map +1 -1
- package/dist/HashMap.d.ts +50 -9
- package/dist/HashMap.d.ts.map +1 -1
- package/dist/HashMap.js +17 -3
- package/dist/HashMap.js.map +1 -1
- package/dist/HashRing.d.ts +4 -0
- package/dist/HashRing.d.ts.map +1 -1
- package/dist/HashRing.js +2 -0
- package/dist/HashRing.js.map +1 -1
- package/dist/HashSet.d.ts +2 -0
- package/dist/HashSet.d.ts.map +1 -1
- package/dist/HashSet.js.map +1 -1
- package/dist/Inspectable.d.ts +15 -2
- package/dist/Inspectable.d.ts.map +1 -1
- package/dist/Inspectable.js +11 -2
- package/dist/Inspectable.js.map +1 -1
- package/dist/Iterable.d.ts +104 -22
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +46 -12
- package/dist/Iterable.js.map +1 -1
- package/dist/JsonPatch.d.ts +61 -80
- package/dist/JsonPatch.d.ts.map +1 -1
- package/dist/JsonPatch.js +35 -42
- package/dist/JsonPatch.js.map +1 -1
- package/dist/JsonPointer.d.ts +16 -20
- package/dist/JsonPointer.d.ts.map +1 -1
- package/dist/JsonPointer.js +16 -20
- package/dist/JsonPointer.js.map +1 -1
- package/dist/JsonSchema.d.ts +123 -73
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +95 -53
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Latch.d.ts +28 -2
- package/dist/Latch.d.ts.map +1 -1
- package/dist/Latch.js +22 -2
- package/dist/Latch.js.map +1 -1
- package/dist/Layer.d.ts +781 -335
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +324 -129
- package/dist/Layer.js.map +1 -1
- package/dist/LogLevel.d.ts +86 -13
- package/dist/LogLevel.d.ts.map +1 -1
- package/dist/LogLevel.js +30 -4
- package/dist/LogLevel.js.map +1 -1
- package/dist/Logger.d.ts +63 -51
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js +61 -51
- package/dist/Logger.js.map +1 -1
- package/dist/ManagedRuntime.d.ts +12 -0
- package/dist/ManagedRuntime.d.ts.map +1 -1
- package/dist/ManagedRuntime.js +1 -0
- package/dist/ManagedRuntime.js.map +1 -1
- package/dist/Match.d.ts +83 -1
- package/dist/Match.d.ts.map +1 -1
- package/dist/Match.js +31 -1
- package/dist/Match.js.map +1 -1
- package/dist/Metric.d.ts +89 -12
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +53 -8
- package/dist/Metric.js.map +1 -1
- package/dist/MutableHashMap.d.ts +14 -0
- package/dist/MutableHashMap.d.ts.map +1 -1
- package/dist/MutableHashMap.js +4 -0
- package/dist/MutableHashMap.js.map +1 -1
- package/dist/MutableHashSet.d.ts +2 -0
- package/dist/MutableHashSet.d.ts.map +1 -1
- package/dist/MutableHashSet.js.map +1 -1
- package/dist/MutableList.d.ts +24 -6
- package/dist/MutableList.d.ts.map +1 -1
- package/dist/MutableList.js +22 -6
- package/dist/MutableList.js.map +1 -1
- package/dist/MutableRef.d.ts +2 -0
- package/dist/MutableRef.d.ts.map +1 -1
- package/dist/MutableRef.js.map +1 -1
- package/dist/Newtype.d.ts +69 -30
- package/dist/Newtype.d.ts.map +1 -1
- package/dist/Newtype.js +52 -22
- package/dist/Newtype.js.map +1 -1
- package/dist/NonEmptyIterable.d.ts +6 -0
- package/dist/NonEmptyIterable.d.ts.map +1 -1
- package/dist/NonEmptyIterable.js +2 -0
- package/dist/NonEmptyIterable.js.map +1 -1
- package/dist/Number.d.ts +16 -30
- package/dist/Number.d.ts.map +1 -1
- package/dist/Number.js +6 -12
- package/dist/Number.js.map +1 -1
- package/dist/Optic.d.ts +90 -40
- package/dist/Optic.d.ts.map +1 -1
- package/dist/Optic.js +48 -24
- package/dist/Optic.js.map +1 -1
- package/dist/Option.d.ts +121 -111
- package/dist/Option.d.ts.map +1 -1
- package/dist/Option.js +56 -54
- package/dist/Option.js.map +1 -1
- package/dist/Order.d.ts +169 -167
- package/dist/Order.d.ts.map +1 -1
- package/dist/Order.js +135 -135
- package/dist/Order.js.map +1 -1
- package/dist/Ordering.d.ts +4 -0
- package/dist/Ordering.d.ts.map +1 -1
- package/dist/Ordering.js +2 -0
- package/dist/Ordering.js.map +1 -1
- package/dist/PartitionedSemaphore.d.ts +7 -5
- package/dist/PartitionedSemaphore.d.ts.map +1 -1
- package/dist/PartitionedSemaphore.js +5 -5
- package/dist/PartitionedSemaphore.js.map +1 -1
- package/dist/Path.d.ts +8 -0
- package/dist/Path.d.ts.map +1 -1
- package/dist/Path.js +4 -0
- package/dist/Path.js.map +1 -1
- package/dist/Pipeable.d.ts +10 -0
- package/dist/Pipeable.d.ts.map +1 -1
- package/dist/Pipeable.js +8 -0
- package/dist/Pipeable.js.map +1 -1
- package/dist/PlatformError.d.ts +12 -0
- package/dist/PlatformError.d.ts.map +1 -1
- package/dist/PlatformError.js +10 -0
- package/dist/PlatformError.js.map +1 -1
- package/dist/Pool.d.ts +30 -16
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +30 -16
- package/dist/Pool.js.map +1 -1
- package/dist/Predicate.d.ts +520 -352
- package/dist/Predicate.d.ts.map +1 -1
- package/dist/Predicate.js +271 -184
- package/dist/Predicate.js.map +1 -1
- package/dist/PrimaryKey.d.ts +4 -0
- package/dist/PrimaryKey.d.ts.map +1 -1
- package/dist/PrimaryKey.js +2 -0
- package/dist/PrimaryKey.js.map +1 -1
- package/dist/PubSub.d.ts +22 -4
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +17 -3
- package/dist/PubSub.js.map +1 -1
- package/dist/Pull.d.ts +16 -0
- package/dist/Pull.d.ts.map +1 -1
- package/dist/Pull.js +10 -0
- package/dist/Pull.js.map +1 -1
- package/dist/Queue.d.ts +44 -0
- package/dist/Queue.d.ts.map +1 -1
- package/dist/Queue.js +28 -0
- package/dist/Queue.js.map +1 -1
- package/dist/Random.d.ts +25 -6
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +11 -2
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts +10 -6
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/RcMap.js +2 -2
- package/dist/RcMap.js.map +1 -1
- package/dist/RcRef.d.ts +3 -1
- package/dist/RcRef.d.ts.map +1 -1
- package/dist/RcRef.js.map +1 -1
- package/dist/Record.d.ts +24 -3
- package/dist/Record.d.ts.map +1 -1
- package/dist/Record.js +12 -3
- package/dist/Record.js.map +1 -1
- package/dist/Redactable.d.ts +54 -41
- package/dist/Redactable.d.ts.map +1 -1
- package/dist/Redactable.js +42 -32
- package/dist/Redactable.js.map +1 -1
- package/dist/Redacted.d.ts +10 -0
- package/dist/Redacted.d.ts.map +1 -1
- package/dist/Redacted.js +6 -0
- package/dist/Redacted.js.map +1 -1
- package/dist/Reducer.d.ts +20 -11
- package/dist/Reducer.d.ts.map +1 -1
- package/dist/Reducer.js +10 -6
- package/dist/Reducer.js.map +1 -1
- package/dist/Ref.d.ts +45 -24
- package/dist/Ref.d.ts.map +1 -1
- package/dist/Ref.js +41 -21
- package/dist/Ref.js.map +1 -1
- package/dist/References.d.ts +18 -1
- package/dist/References.d.ts.map +1 -1
- package/dist/References.js +17 -1
- package/dist/References.js.map +1 -1
- package/dist/Request.d.ts +3 -3
- package/dist/Request.js +2 -2
- package/dist/RequestResolver.d.ts +7 -17
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +3 -5
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Resource.d.ts +2 -0
- package/dist/Resource.d.ts.map +1 -1
- package/dist/Resource.js +2 -0
- package/dist/Resource.js.map +1 -1
- package/dist/Result.d.ts +188 -6
- package/dist/Result.d.ts.map +1 -1
- package/dist/Result.js +84 -2
- package/dist/Result.js.map +1 -1
- package/dist/Runtime.d.ts +14 -11
- package/dist/Runtime.d.ts.map +1 -1
- package/dist/Runtime.js +11 -9
- package/dist/Runtime.js.map +1 -1
- package/dist/Schedule.d.ts +27 -3
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +21 -2
- package/dist/Schedule.js.map +1 -1
- package/dist/Scheduler.d.ts +22 -19
- package/dist/Scheduler.d.ts.map +1 -1
- package/dist/Scheduler.js +14 -12
- package/dist/Scheduler.js.map +1 -1
- package/dist/Schema.d.ts +547 -130
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +409 -121
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +123 -65
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +90 -39
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaGetter.d.ts +269 -234
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +245 -215
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaIssue.d.ts +48 -46
- package/dist/SchemaIssue.d.ts.map +1 -1
- package/dist/SchemaIssue.js +34 -34
- package/dist/SchemaIssue.js.map +1 -1
- package/dist/SchemaParser.d.ts +58 -0
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +58 -0
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +198 -96
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +107 -45
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +272 -203
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +249 -187
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/SchemaUtils.d.ts +2 -0
- package/dist/SchemaUtils.d.ts.map +1 -1
- package/dist/SchemaUtils.js +2 -0
- package/dist/SchemaUtils.js.map +1 -1
- package/dist/Scope.d.ts +18 -0
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +12 -0
- package/dist/Scope.js.map +1 -1
- package/dist/ScopedCache.d.ts +44 -0
- package/dist/ScopedCache.d.ts.map +1 -1
- package/dist/ScopedCache.js +18 -0
- package/dist/ScopedCache.js.map +1 -1
- package/dist/ScopedRef.d.ts +9 -3
- package/dist/ScopedRef.d.ts.map +1 -1
- package/dist/ScopedRef.js +3 -1
- package/dist/ScopedRef.js.map +1 -1
- package/dist/Semaphore.d.ts +6 -0
- package/dist/Semaphore.d.ts.map +1 -1
- package/dist/Semaphore.js +4 -0
- package/dist/Semaphore.js.map +1 -1
- package/dist/Sink.d.ts +108 -0
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +54 -0
- package/dist/Sink.js.map +1 -1
- package/dist/Stdio.d.ts +7 -3
- package/dist/Stdio.d.ts.map +1 -1
- package/dist/Stdio.js +2 -0
- package/dist/Stdio.js.map +1 -1
- package/dist/Stream.d.ts +416 -16
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +164 -8
- package/dist/Stream.js.map +1 -1
- package/dist/String.d.ts +14 -0
- package/dist/String.d.ts.map +1 -1
- package/dist/String.js +6 -0
- package/dist/String.js.map +1 -1
- package/dist/Struct.d.ts +371 -191
- package/dist/Struct.d.ts.map +1 -1
- package/dist/Struct.js +144 -77
- package/dist/Struct.js.map +1 -1
- package/dist/SubscriptionRef.d.ts +7 -1
- package/dist/SubscriptionRef.d.ts.map +1 -1
- package/dist/SubscriptionRef.js +5 -1
- package/dist/SubscriptionRef.js.map +1 -1
- package/dist/SynchronizedRef.d.ts +2 -0
- package/dist/SynchronizedRef.d.ts.map +1 -1
- package/dist/SynchronizedRef.js +2 -0
- package/dist/SynchronizedRef.js.map +1 -1
- package/dist/Tracer.d.ts +17 -27
- package/dist/Tracer.d.ts.map +1 -1
- package/dist/Tracer.js +8 -12
- package/dist/Tracer.js.map +1 -1
- package/dist/Trie.d.ts +23 -9
- package/dist/Trie.d.ts.map +1 -1
- package/dist/Trie.js +13 -3
- package/dist/Trie.js.map +1 -1
- package/dist/Tuple.d.ts +287 -144
- package/dist/Tuple.d.ts.map +1 -1
- package/dist/Tuple.js +135 -66
- package/dist/Tuple.js.map +1 -1
- package/dist/TxChunk.d.ts +182 -93
- package/dist/TxChunk.d.ts.map +1 -1
- package/dist/TxChunk.js +68 -35
- package/dist/TxChunk.js.map +1 -1
- package/dist/TxDeferred.d.ts +3 -4
- package/dist/TxDeferred.d.ts.map +1 -1
- package/dist/TxDeferred.js.map +1 -1
- package/dist/TxHashMap.d.ts +163 -86
- package/dist/TxHashMap.d.ts.map +1 -1
- package/dist/TxHashMap.js +57 -30
- package/dist/TxHashMap.js.map +1 -1
- package/dist/TxHashSet.d.ts +24 -27
- package/dist/TxHashSet.d.ts.map +1 -1
- package/dist/TxHashSet.js +9 -6
- package/dist/TxHashSet.js.map +1 -1
- package/dist/TxPriorityQueue.d.ts +2 -0
- package/dist/TxPriorityQueue.d.ts.map +1 -1
- package/dist/TxPriorityQueue.js.map +1 -1
- package/dist/TxPubSub.d.ts +36 -35
- package/dist/TxPubSub.d.ts.map +1 -1
- package/dist/TxPubSub.js +22 -21
- package/dist/TxPubSub.js.map +1 -1
- package/dist/TxQueue.d.ts +77 -114
- package/dist/TxQueue.d.ts.map +1 -1
- package/dist/TxQueue.js +45 -62
- package/dist/TxQueue.js.map +1 -1
- package/dist/TxRef.d.ts +4 -0
- package/dist/TxRef.d.ts.map +1 -1
- package/dist/TxRef.js +2 -0
- package/dist/TxRef.js.map +1 -1
- package/dist/TxSemaphore.d.ts +66 -27
- package/dist/TxSemaphore.d.ts.map +1 -1
- package/dist/TxSemaphore.js +38 -15
- package/dist/TxSemaphore.js.map +1 -1
- package/dist/Types.d.ts +202 -75
- package/dist/Types.d.ts.map +1 -1
- package/dist/UndefinedOr.d.ts +31 -29
- package/dist/UndefinedOr.d.ts.map +1 -1
- package/dist/UndefinedOr.js +27 -21
- package/dist/UndefinedOr.js.map +1 -1
- package/dist/Unify.d.ts +28 -0
- package/dist/Unify.d.ts.map +1 -1
- package/dist/Unify.js +2 -0
- package/dist/Unify.js.map +1 -1
- package/dist/Utils.d.ts +29 -35
- package/dist/Utils.d.ts.map +1 -1
- package/dist/Utils.js +11 -13
- package/dist/Utils.js.map +1 -1
- package/dist/index.d.ts +18 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -7
- package/dist/index.js.map +1 -1
- package/dist/testing/TestClock.d.ts +17 -17
- package/dist/testing/TestClock.js +1 -1
- package/dist/testing/TestClock.js.map +1 -1
- package/dist/testing/TestConsole.d.ts +2 -0
- package/dist/testing/TestConsole.d.ts.map +1 -1
- package/dist/testing/TestConsole.js.map +1 -1
- package/dist/testing/TestSchema.d.ts +43 -55
- package/dist/testing/TestSchema.d.ts.map +1 -1
- package/dist/testing/TestSchema.js +43 -55
- package/dist/testing/TestSchema.js.map +1 -1
- package/dist/unstable/ai/AiError.d.ts +62 -11
- package/dist/unstable/ai/AiError.d.ts.map +1 -1
- package/dist/unstable/ai/AiError.js +58 -11
- package/dist/unstable/ai/AiError.js.map +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.d.ts +4 -4
- package/dist/unstable/ai/AnthropicStructuredOutput.js +4 -4
- package/dist/unstable/ai/Chat.d.ts +29 -1
- package/dist/unstable/ai/Chat.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.js +15 -1
- package/dist/unstable/ai/Chat.js.map +1 -1
- package/dist/unstable/ai/IdGenerator.d.ts +10 -0
- package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
- package/dist/unstable/ai/IdGenerator.js +8 -0
- package/dist/unstable/ai/IdGenerator.js.map +1 -1
- package/dist/unstable/ai/LanguageModel.d.ts +32 -46
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/LanguageModel.js +5 -14
- package/dist/unstable/ai/LanguageModel.js.map +1 -1
- package/dist/unstable/ai/McpSchema.d.ts +84 -32
- package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
- package/dist/unstable/ai/McpSchema.js +73 -28
- package/dist/unstable/ai/McpSchema.js.map +1 -1
- package/dist/unstable/ai/McpServer.d.ts +8 -0
- package/dist/unstable/ai/McpServer.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.js +6 -0
- package/dist/unstable/ai/McpServer.js.map +1 -1
- package/dist/unstable/ai/Model.d.ts +9 -5
- package/dist/unstable/ai/Model.d.ts.map +1 -1
- package/dist/unstable/ai/Model.js +4 -0
- package/dist/unstable/ai/Model.js.map +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.d.ts +3 -2
- package/dist/unstable/ai/OpenAiStructuredOutput.d.ts.map +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.js +3 -2
- package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
- package/dist/unstable/ai/Prompt.d.ts +62 -35
- package/dist/unstable/ai/Prompt.d.ts.map +1 -1
- package/dist/unstable/ai/Prompt.js +16 -15
- package/dist/unstable/ai/Prompt.js.map +1 -1
- package/dist/unstable/ai/Response.d.ts +40 -21
- package/dist/unstable/ai/Response.d.ts.map +1 -1
- package/dist/unstable/ai/Response.js +10 -0
- package/dist/unstable/ai/Response.js.map +1 -1
- package/dist/unstable/ai/ResponseIdTracker.d.ts +8 -0
- package/dist/unstable/ai/ResponseIdTracker.d.ts.map +1 -1
- package/dist/unstable/ai/ResponseIdTracker.js +4 -0
- package/dist/unstable/ai/ResponseIdTracker.js.map +1 -1
- package/dist/unstable/ai/Telemetry.d.ts +30 -5
- package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
- package/dist/unstable/ai/Telemetry.js +7 -1
- package/dist/unstable/ai/Telemetry.js.map +1 -1
- package/dist/unstable/ai/Tokenizer.d.ts +6 -0
- package/dist/unstable/ai/Tokenizer.d.ts.map +1 -1
- package/dist/unstable/ai/Tokenizer.js +4 -0
- package/dist/unstable/ai/Tokenizer.js.map +1 -1
- package/dist/unstable/ai/Tool.d.ts +68 -0
- package/dist/unstable/ai/Tool.d.ts.map +1 -1
- package/dist/unstable/ai/Tool.js +36 -0
- package/dist/unstable/ai/Tool.js.map +1 -1
- package/dist/unstable/ai/Toolkit.d.ts +12 -0
- package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
- package/dist/unstable/ai/Toolkit.js +6 -0
- package/dist/unstable/ai/Toolkit.js.map +1 -1
- package/dist/unstable/cli/Argument.d.ts +14 -4
- package/dist/unstable/cli/Argument.d.ts.map +1 -1
- package/dist/unstable/cli/Argument.js +4 -0
- package/dist/unstable/cli/Argument.js.map +1 -1
- package/dist/unstable/cli/CliError.d.ts +6 -0
- package/dist/unstable/cli/CliError.d.ts.map +1 -1
- package/dist/unstable/cli/CliError.js +4 -0
- package/dist/unstable/cli/CliError.js.map +1 -1
- package/dist/unstable/cli/Command.d.ts +123 -12
- package/dist/unstable/cli/Command.d.ts.map +1 -1
- package/dist/unstable/cli/Command.js +57 -4
- package/dist/unstable/cli/Command.js.map +1 -1
- package/dist/unstable/cli/Flag.d.ts +31 -14
- package/dist/unstable/cli/Flag.d.ts.map +1 -1
- package/dist/unstable/cli/Flag.js +23 -10
- package/dist/unstable/cli/Flag.js.map +1 -1
- package/dist/unstable/cli/Param.d.ts +10 -0
- package/dist/unstable/cli/Param.d.ts.map +1 -1
- package/dist/unstable/cli/Param.js +46 -5
- package/dist/unstable/cli/Param.js.map +1 -1
- package/dist/unstable/cli/Primitive.d.ts +10 -0
- package/dist/unstable/cli/Primitive.d.ts.map +1 -1
- package/dist/unstable/cli/Primitive.js +10 -0
- package/dist/unstable/cli/Primitive.js.map +1 -1
- package/dist/unstable/cli/Prompt.d.ts +47 -40
- package/dist/unstable/cli/Prompt.d.ts.map +1 -1
- package/dist/unstable/cli/Prompt.js +25 -20
- package/dist/unstable/cli/Prompt.js.map +1 -1
- package/dist/unstable/cli/internal/command.d.ts +1 -0
- package/dist/unstable/cli/internal/command.d.ts.map +1 -1
- package/dist/unstable/cli/internal/command.js +10 -2
- package/dist/unstable/cli/internal/command.js.map +1 -1
- package/dist/unstable/cli/internal/completions/descriptor.js +3 -0
- package/dist/unstable/cli/internal/completions/descriptor.js.map +1 -1
- package/dist/unstable/cli/internal/parser.js +8 -1
- package/dist/unstable/cli/internal/parser.js.map +1 -1
- package/dist/unstable/cluster/ClusterCron.d.ts +10 -1
- package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterCron.js +2 -0
- package/dist/unstable/cluster/ClusterCron.js.map +1 -1
- package/dist/unstable/cluster/ClusterSchema.d.ts +8 -0
- package/dist/unstable/cluster/ClusterSchema.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterSchema.js +8 -0
- package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts +4 -0
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +4 -0
- package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/unstable/cluster/DeliverAt.d.ts +3 -4
- package/dist/unstable/cluster/DeliverAt.d.ts.map +1 -1
- package/dist/unstable/cluster/DeliverAt.js.map +1 -1
- package/dist/unstable/cluster/Entity.d.ts +24 -0
- package/dist/unstable/cluster/Entity.d.ts.map +1 -1
- package/dist/unstable/cluster/Entity.js +12 -0
- package/dist/unstable/cluster/Entity.js.map +1 -1
- package/dist/unstable/cluster/EntityProxy.d.ts +10 -4
- package/dist/unstable/cluster/EntityProxy.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityProxy.js.map +1 -1
- package/dist/unstable/cluster/EntityProxyServer.d.ts +6 -0
- package/dist/unstable/cluster/EntityProxyServer.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityProxyServer.js +4 -0
- package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
- package/dist/unstable/cluster/EntityResource.d.ts +10 -0
- package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityResource.js +8 -0
- package/dist/unstable/cluster/EntityResource.js.map +1 -1
- package/dist/unstable/cluster/Envelope.d.ts +16 -0
- package/dist/unstable/cluster/Envelope.d.ts.map +1 -1
- package/dist/unstable/cluster/Envelope.js +10 -0
- package/dist/unstable/cluster/Envelope.js.map +1 -1
- package/dist/unstable/cluster/HttpRunner.d.ts +16 -0
- package/dist/unstable/cluster/HttpRunner.d.ts.map +1 -1
- package/dist/unstable/cluster/HttpRunner.js +16 -0
- package/dist/unstable/cluster/HttpRunner.js.map +1 -1
- package/dist/unstable/cluster/K8sHttpClient.d.ts +8 -0
- package/dist/unstable/cluster/K8sHttpClient.d.ts.map +1 -1
- package/dist/unstable/cluster/K8sHttpClient.js +8 -0
- package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
- package/dist/unstable/cluster/Message.d.ts +24 -0
- package/dist/unstable/cluster/Message.d.ts.map +1 -1
- package/dist/unstable/cluster/Message.js +18 -0
- package/dist/unstable/cluster/Message.js.map +1 -1
- package/dist/unstable/cluster/MessageStorage.d.ts +64 -20
- package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/MessageStorage.js +8 -0
- package/dist/unstable/cluster/MessageStorage.js.map +1 -1
- package/dist/unstable/cluster/Reply.d.ts +6 -6
- package/dist/unstable/cluster/Reply.d.ts.map +1 -1
- package/dist/unstable/cluster/Reply.js +4 -3
- package/dist/unstable/cluster/Reply.js.map +1 -1
- package/dist/unstable/cluster/Runner.d.ts +2 -0
- package/dist/unstable/cluster/Runner.d.ts.map +1 -1
- package/dist/unstable/cluster/Runner.js +2 -0
- package/dist/unstable/cluster/Runner.js.map +1 -1
- package/dist/unstable/cluster/RunnerHealth.d.ts +13 -2
- package/dist/unstable/cluster/RunnerHealth.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerHealth.js +13 -2
- package/dist/unstable/cluster/RunnerHealth.js.map +1 -1
- package/dist/unstable/cluster/RunnerServer.d.ts +8 -8
- package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerServer.js +8 -8
- package/dist/unstable/cluster/RunnerServer.js.map +1 -1
- package/dist/unstable/cluster/RunnerStorage.d.ts +2 -0
- package/dist/unstable/cluster/RunnerStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerStorage.js +2 -0
- package/dist/unstable/cluster/RunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/ShardId.d.ts +4 -0
- package/dist/unstable/cluster/ShardId.d.ts.map +1 -1
- package/dist/unstable/cluster/ShardId.js +4 -0
- package/dist/unstable/cluster/ShardId.js.map +1 -1
- package/dist/unstable/cluster/Snowflake.d.ts +2 -0
- package/dist/unstable/cluster/Snowflake.d.ts.map +1 -1
- package/dist/unstable/cluster/Snowflake.js +2 -0
- package/dist/unstable/cluster/Snowflake.js.map +1 -1
- package/dist/unstable/cluster/TestRunner.d.ts +3 -2
- package/dist/unstable/cluster/TestRunner.d.ts.map +1 -1
- package/dist/unstable/cluster/TestRunner.js +3 -2
- package/dist/unstable/cluster/TestRunner.js.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.d.ts +34 -2
- package/dist/unstable/devtools/DevToolsSchema.d.ts.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.js +14 -0
- package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
- package/dist/unstable/devtools/DevToolsServer.d.ts +4 -0
- package/dist/unstable/devtools/DevToolsServer.d.ts.map +1 -1
- package/dist/unstable/devtools/DevToolsServer.js +2 -0
- package/dist/unstable/devtools/DevToolsServer.js.map +1 -1
- package/dist/unstable/encoding/Msgpack.d.ts +24 -0
- package/dist/unstable/encoding/Msgpack.d.ts.map +1 -1
- package/dist/unstable/encoding/Msgpack.js +18 -0
- package/dist/unstable/encoding/Msgpack.js.map +1 -1
- package/dist/unstable/encoding/Ndjson.d.ts +46 -2
- package/dist/unstable/encoding/Ndjson.d.ts.map +1 -1
- package/dist/unstable/encoding/Ndjson.js +30 -2
- package/dist/unstable/encoding/Ndjson.js.map +1 -1
- package/dist/unstable/encoding/Sse.d.ts +24 -17
- package/dist/unstable/encoding/Sse.d.ts.map +1 -1
- package/dist/unstable/encoding/Sse.js +20 -11
- package/dist/unstable/encoding/Sse.js.map +1 -1
- package/dist/unstable/eventlog/Event.d.ts +16 -0
- package/dist/unstable/eventlog/Event.d.ts.map +1 -1
- package/dist/unstable/eventlog/Event.js.map +1 -1
- package/dist/unstable/eventlog/EventGroup.d.ts +4 -0
- package/dist/unstable/eventlog/EventGroup.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventGroup.js +2 -0
- package/dist/unstable/eventlog/EventGroup.js.map +1 -1
- package/dist/unstable/eventlog/EventJournal.d.ts +20 -0
- package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventJournal.js +18 -0
- package/dist/unstable/eventlog/EventJournal.js.map +1 -1
- package/dist/unstable/eventlog/EventLog.d.ts +22 -0
- package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLog.js +18 -0
- package/dist/unstable/eventlog/EventLog.js.map +1 -1
- package/dist/unstable/eventlog/EventLogMessage.d.ts +10 -0
- package/dist/unstable/eventlog/EventLogMessage.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogMessage.js +10 -0
- package/dist/unstable/eventlog/EventLogMessage.js.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.d.ts +4 -0
- package/dist/unstable/eventlog/EventLogRemote.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.js +4 -0
- package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServer.d.ts +4 -0
- package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServer.js +4 -0
- package/dist/unstable/eventlog/EventLogServer.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +6 -0
- package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServerEncrypted.js +6 -0
- package/dist/unstable/eventlog/EventLogServerEncrypted.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +8 -0
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js +8 -0
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -1
- package/dist/unstable/eventlog/EventLogSessionAuth.d.ts +11 -1
- package/dist/unstable/eventlog/EventLogSessionAuth.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogSessionAuth.js +11 -1
- package/dist/unstable/eventlog/EventLogSessionAuth.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventJournal.d.ts +2 -0
- package/dist/unstable/eventlog/SqlEventJournal.d.ts.map +1 -1
- package/dist/unstable/eventlog/SqlEventJournal.js +2 -0
- package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.d.ts +2 -0
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js +2 -0
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.d.ts +2 -0
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js +2 -0
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
- package/dist/unstable/http/Cookies.d.ts +34 -0
- package/dist/unstable/http/Cookies.d.ts.map +1 -1
- package/dist/unstable/http/Cookies.js +18 -0
- package/dist/unstable/http/Cookies.js.map +1 -1
- package/dist/unstable/http/Etag.d.ts +4 -0
- package/dist/unstable/http/Etag.d.ts.map +1 -1
- package/dist/unstable/http/Etag.js.map +1 -1
- package/dist/unstable/http/FetchHttpClient.d.ts +4 -0
- package/dist/unstable/http/FetchHttpClient.d.ts.map +1 -1
- package/dist/unstable/http/FetchHttpClient.js +4 -0
- package/dist/unstable/http/FetchHttpClient.js.map +1 -1
- package/dist/unstable/http/Headers.d.ts +60 -0
- package/dist/unstable/http/Headers.d.ts.map +1 -1
- package/dist/unstable/http/Headers.js +24 -0
- package/dist/unstable/http/Headers.js.map +1 -1
- package/dist/unstable/http/HttpBody.d.ts +32 -0
- package/dist/unstable/http/HttpBody.d.ts.map +1 -1
- package/dist/unstable/http/HttpBody.js +22 -0
- package/dist/unstable/http/HttpBody.js.map +1 -1
- package/dist/unstable/http/HttpClient.d.ts +44 -0
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClient.js +14 -0
- package/dist/unstable/http/HttpClient.js.map +1 -1
- package/dist/unstable/http/HttpClientRequest.d.ts +2 -0
- package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.js +2 -0
- package/dist/unstable/http/HttpClientRequest.js.map +1 -1
- package/dist/unstable/http/HttpClientResponse.d.ts +6 -0
- package/dist/unstable/http/HttpClientResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientResponse.js +6 -0
- package/dist/unstable/http/HttpClientResponse.js.map +1 -1
- package/dist/unstable/http/HttpEffect.d.ts +4 -0
- package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
- package/dist/unstable/http/HttpEffect.js +4 -0
- package/dist/unstable/http/HttpEffect.js.map +1 -1
- package/dist/unstable/http/HttpPlatform.d.ts +2 -0
- package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
- package/dist/unstable/http/HttpPlatform.js +2 -0
- package/dist/unstable/http/HttpPlatform.js.map +1 -1
- package/dist/unstable/http/HttpRouter.d.ts +54 -16
- package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
- package/dist/unstable/http/HttpRouter.js +26 -1
- package/dist/unstable/http/HttpRouter.js.map +1 -1
- package/dist/unstable/http/HttpServer.d.ts +35 -1
- package/dist/unstable/http/HttpServer.d.ts.map +1 -1
- package/dist/unstable/http/HttpServer.js +17 -1
- package/dist/unstable/http/HttpServer.js.map +1 -1
- package/dist/unstable/http/HttpServerError.d.ts +17 -3
- package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerError.js +16 -0
- package/dist/unstable/http/HttpServerError.js.map +1 -1
- package/dist/unstable/http/HttpServerRequest.d.ts +30 -0
- package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRequest.js +28 -0
- package/dist/unstable/http/HttpServerRequest.js.map +1 -1
- package/dist/unstable/http/HttpServerRespondable.d.ts +8 -0
- package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRespondable.js +6 -0
- package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
- package/dist/unstable/http/HttpServerResponse.d.ts +96 -0
- package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerResponse.js +50 -0
- package/dist/unstable/http/HttpServerResponse.js.map +1 -1
- package/dist/unstable/http/HttpTraceContext.d.ts +12 -0
- package/dist/unstable/http/HttpTraceContext.d.ts.map +1 -1
- package/dist/unstable/http/HttpTraceContext.js +10 -0
- package/dist/unstable/http/HttpTraceContext.js.map +1 -1
- package/dist/unstable/http/Multipart.d.ts +49 -2
- package/dist/unstable/http/Multipart.d.ts.map +1 -1
- package/dist/unstable/http/Multipart.js +35 -2
- package/dist/unstable/http/Multipart.js.map +1 -1
- package/dist/unstable/http/Template.d.ts +14 -0
- package/dist/unstable/http/Template.d.ts.map +1 -1
- package/dist/unstable/http/Template.js +4 -0
- package/dist/unstable/http/Template.js.map +1 -1
- package/dist/unstable/http/UrlParams.d.ts +64 -0
- package/dist/unstable/http/UrlParams.d.ts.map +1 -1
- package/dist/unstable/http/UrlParams.js +28 -0
- package/dist/unstable/http/UrlParams.js.map +1 -1
- package/dist/unstable/httpapi/HttpApi.d.ts +10 -4
- package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApi.js +4 -0
- package/dist/unstable/httpapi/HttpApi.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts +9 -4
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js +5 -4
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +2 -0
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.js +2 -0
- package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.d.ts +23 -14
- package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.js +6 -3
- package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +14 -0
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.js +6 -0
- package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.d.ts +38 -15
- package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.js +4 -0
- package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.d.ts +14 -3
- package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.js +10 -0
- package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.d.ts +17 -11
- package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.js +17 -11
- package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSwagger.d.ts +2 -4
- package/dist/unstable/httpapi/HttpApiSwagger.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSwagger.js +2 -4
- package/dist/unstable/httpapi/HttpApiSwagger.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiTest.d.ts +2 -0
- package/dist/unstable/httpapi/HttpApiTest.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiTest.js +2 -0
- package/dist/unstable/httpapi/HttpApiTest.js.map +1 -1
- package/dist/unstable/httpapi/OpenApi.d.ts +2 -0
- package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/OpenApi.js +2 -0
- package/dist/unstable/httpapi/OpenApi.js.map +1 -1
- package/dist/unstable/observability/Otlp.d.ts +2 -0
- package/dist/unstable/observability/Otlp.d.ts.map +1 -1
- package/dist/unstable/observability/Otlp.js +2 -0
- package/dist/unstable/observability/Otlp.js.map +1 -1
- package/dist/unstable/observability/OtlpExporter.d.ts +2 -0
- package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.js +2 -0
- package/dist/unstable/observability/OtlpExporter.js.map +1 -1
- package/dist/unstable/observability/OtlpLogger.d.ts +4 -0
- package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpLogger.js +4 -0
- package/dist/unstable/observability/OtlpLogger.js.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.d.ts +8 -9
- package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.js +3 -3
- package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
- package/dist/unstable/observability/OtlpResource.d.ts +8 -0
- package/dist/unstable/observability/OtlpResource.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpResource.js +8 -0
- package/dist/unstable/observability/OtlpResource.js.map +1 -1
- package/dist/unstable/observability/OtlpTracer.d.ts +3 -2
- package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpTracer.js +3 -2
- package/dist/unstable/observability/OtlpTracer.js.map +1 -1
- package/dist/unstable/observability/PrometheusMetrics.d.ts +6 -2
- package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/PrometheusMetrics.js +6 -2
- package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.d.ts +10 -0
- package/dist/unstable/persistence/KeyValueStore.d.ts.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.js +8 -0
- package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
- package/dist/unstable/persistence/Persistable.d.ts +2 -0
- package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistable.js +2 -0
- package/dist/unstable/persistence/Persistable.js.map +1 -1
- package/dist/unstable/persistence/PersistedCache.d.ts +2 -0
- package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedCache.js +2 -0
- package/dist/unstable/persistence/PersistedCache.js.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.d.ts +21 -6
- package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.js +10 -0
- package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
- package/dist/unstable/persistence/Persistence.d.ts +14 -0
- package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistence.js +14 -0
- package/dist/unstable/persistence/Persistence.js.map +1 -1
- package/dist/unstable/persistence/RateLimiter.d.ts +6 -3
- package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/unstable/persistence/RateLimiter.js +4 -0
- package/dist/unstable/persistence/RateLimiter.js.map +1 -1
- package/dist/unstable/persistence/Redis.d.ts +6 -0
- package/dist/unstable/persistence/Redis.d.ts.map +1 -1
- package/dist/unstable/persistence/Redis.js +4 -0
- package/dist/unstable/persistence/Redis.js.map +1 -1
- package/dist/unstable/process/ChildProcess.d.ts +70 -19
- package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcess.js +10 -0
- package/dist/unstable/process/ChildProcess.js.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.d.ts +20 -4
- package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts +105 -14
- package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.js +53 -8
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts +4 -0
- package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.js +2 -0
- package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
- package/dist/unstable/reactivity/AtomRef.d.ts +8 -0
- package/dist/unstable/reactivity/AtomRef.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRef.js +2 -0
- package/dist/unstable/reactivity/AtomRef.js.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.d.ts +32 -0
- package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.js +12 -0
- package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts +8 -6
- package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.js +4 -3
- package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
- package/dist/unstable/reactivity/Hydration.d.ts +6 -0
- package/dist/unstable/reactivity/Hydration.d.ts.map +1 -1
- package/dist/unstable/reactivity/Hydration.js +4 -0
- package/dist/unstable/reactivity/Hydration.js.map +1 -1
- package/dist/unstable/reactivity/Reactivity.d.ts +27 -3
- package/dist/unstable/reactivity/Reactivity.d.ts.map +1 -1
- package/dist/unstable/reactivity/Reactivity.js +15 -3
- package/dist/unstable/reactivity/Reactivity.js.map +1 -1
- package/dist/unstable/rpc/Rpc.d.ts +38 -2
- package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
- package/dist/unstable/rpc/Rpc.js +12 -2
- package/dist/unstable/rpc/Rpc.js.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.d.ts +6 -0
- package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.js +6 -0
- package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
- package/dist/unstable/rpc/RpcServer.d.ts +5 -3
- package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcServer.js +5 -3
- package/dist/unstable/rpc/RpcServer.js.map +1 -1
- package/dist/unstable/schema/Model.d.ts +43 -12
- package/dist/unstable/schema/Model.d.ts.map +1 -1
- package/dist/unstable/schema/Model.js +41 -12
- package/dist/unstable/schema/Model.js.map +1 -1
- package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
- package/dist/unstable/sql/SqlResolver.d.ts +6 -4
- package/dist/unstable/sql/SqlResolver.d.ts.map +1 -1
- package/dist/unstable/sql/SqlResolver.js +6 -4
- package/dist/unstable/sql/SqlResolver.js.map +1 -1
- package/dist/unstable/sql/Statement.d.ts +8 -4
- package/dist/unstable/sql/Statement.d.ts.map +1 -1
- package/dist/unstable/sql/Statement.js.map +1 -1
- package/dist/unstable/workflow/DurableClock.d.ts +1 -1
- package/dist/unstable/workflow/DurableDeferred.d.ts +3 -0
- package/dist/unstable/workflow/DurableDeferred.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.js +3 -0
- package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
- package/dist/unstable/workflow/Workflow.d.ts +42 -34
- package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
- package/dist/unstable/workflow/Workflow.js +18 -19
- package/dist/unstable/workflow/Workflow.js.map +1 -1
- package/package.json +1 -1
- package/src/Array.ts +454 -0
- package/src/BigDecimal.ts +87 -33
- package/src/BigInt.ts +71 -14
- package/src/Boolean.ts +4 -0
- package/src/Brand.ts +16 -11
- package/src/Cache.ts +17 -1
- package/src/Cause.ts +95 -3
- package/src/Channel.ts +326 -0
- package/src/ChannelSchema.ts +24 -0
- package/src/Chunk.ts +59 -22
- package/src/Combiner.ts +75 -71
- package/src/Config.ts +167 -46
- package/src/ConfigProvider.ts +235 -158
- package/src/Console.ts +25 -99
- package/src/Context.ts +4 -4
- package/src/Cron.ts +42 -16
- package/src/Crypto.ts +6 -0
- package/src/Data.ts +132 -70
- package/src/DateTime.ts +227 -14
- package/src/Deferred.ts +94 -27
- package/src/Differ.ts +2 -0
- package/src/Duration.ts +64 -6
- package/src/Effect.ts +909 -605
- package/src/Effectable.ts +3 -1
- package/src/Encoding.ts +16 -0
- package/src/Equal.ts +52 -40
- package/src/Equivalence.ts +190 -153
- package/src/ErrorReporter.ts +35 -14
- package/src/ExecutionPlan.ts +10 -3
- package/src/Exit.ts +212 -6
- package/src/Fiber.ts +8 -0
- package/src/FiberHandle.ts +46 -23
- package/src/FiberMap.ts +43 -4
- package/src/FiberSet.ts +21 -6
- package/src/FileSystem.ts +64 -0
- package/src/Filter.ts +53 -21
- package/src/Formatter.ts +21 -22
- package/src/Function.ts +67 -75
- package/src/Graph.ts +51 -13
- package/src/HKT.ts +22 -21
- package/src/Hash.ts +33 -10
- package/src/HashMap.ts +50 -9
- package/src/HashRing.ts +4 -0
- package/src/HashSet.ts +2 -0
- package/src/Inspectable.ts +15 -2
- package/src/Iterable.ts +104 -22
- package/src/JsonPatch.ts +61 -80
- package/src/JsonPointer.ts +16 -20
- package/src/JsonSchema.ts +123 -73
- package/src/Latch.ts +28 -2
- package/src/Layer.ts +781 -335
- package/src/LogLevel.ts +86 -13
- package/src/Logger.ts +71 -51
- package/src/ManagedRuntime.ts +12 -0
- package/src/Match.ts +83 -1
- package/src/Metric.ts +105 -12
- package/src/MutableHashMap.ts +18 -0
- package/src/MutableHashSet.ts +2 -0
- package/src/MutableList.ts +24 -6
- package/src/MutableRef.ts +2 -0
- package/src/Newtype.ts +69 -30
- package/src/NonEmptyIterable.ts +6 -0
- package/src/Number.ts +16 -30
- package/src/Optic.ts +90 -40
- package/src/Option.ts +121 -111
- package/src/Order.ts +169 -167
- package/src/Ordering.ts +4 -0
- package/src/PartitionedSemaphore.ts +7 -5
- package/src/Path.ts +8 -0
- package/src/Pipeable.ts +10 -0
- package/src/PlatformError.ts +12 -0
- package/src/Pool.ts +30 -16
- package/src/Predicate.ts +520 -352
- package/src/PrimaryKey.ts +4 -0
- package/src/PubSub.ts +23 -5
- package/src/Pull.ts +16 -0
- package/src/Queue.ts +44 -0
- package/src/Random.ts +25 -6
- package/src/RcMap.ts +10 -6
- package/src/RcRef.ts +3 -1
- package/src/Record.ts +24 -3
- package/src/Redactable.ts +54 -41
- package/src/Redacted.ts +10 -0
- package/src/Reducer.ts +20 -11
- package/src/Ref.ts +95 -58
- package/src/References.ts +18 -1
- package/src/Request.ts +3 -3
- package/src/RequestResolver.ts +8 -22
- package/src/Resource.ts +2 -0
- package/src/Result.ts +192 -6
- package/src/Runtime.ts +14 -11
- package/src/Schedule.ts +35 -3
- package/src/Scheduler.ts +22 -19
- package/src/Schema.ts +547 -130
- package/src/SchemaAST.ts +123 -65
- package/src/SchemaGetter.ts +269 -234
- package/src/SchemaIssue.ts +48 -46
- package/src/SchemaParser.ts +58 -0
- package/src/SchemaRepresentation.ts +198 -96
- package/src/SchemaTransformation.ts +272 -203
- package/src/SchemaUtils.ts +2 -0
- package/src/Scope.ts +19 -1
- package/src/ScopedCache.ts +56 -0
- package/src/ScopedRef.ts +9 -3
- package/src/Semaphore.ts +6 -0
- package/src/Sink.ts +108 -0
- package/src/Stdio.ts +7 -3
- package/src/Stream.ts +464 -16
- package/src/String.ts +14 -0
- package/src/Struct.ts +371 -191
- package/src/SubscriptionRef.ts +7 -1
- package/src/SynchronizedRef.ts +2 -0
- package/src/Tracer.ts +17 -27
- package/src/Trie.ts +23 -9
- package/src/Tuple.ts +287 -144
- package/src/TxChunk.ts +182 -93
- package/src/TxDeferred.ts +3 -4
- package/src/TxHashMap.ts +171 -90
- package/src/TxHashSet.ts +36 -35
- package/src/TxPriorityQueue.ts +2 -0
- package/src/TxPubSub.ts +36 -35
- package/src/TxQueue.ts +77 -114
- package/src/TxRef.ts +4 -0
- package/src/TxSemaphore.ts +66 -27
- package/src/Types.ts +202 -75
- package/src/UndefinedOr.ts +31 -29
- package/src/Unify.ts +28 -0
- package/src/Utils.ts +29 -35
- package/src/index.ts +18 -7
- package/src/testing/TestClock.ts +16 -16
- package/src/testing/TestConsole.ts +2 -0
- package/src/testing/TestSchema.ts +43 -55
- package/src/unstable/ai/AiError.ts +62 -11
- package/src/unstable/ai/AnthropicStructuredOutput.ts +4 -4
- package/src/unstable/ai/Chat.ts +29 -1
- package/src/unstable/ai/IdGenerator.ts +10 -0
- package/src/unstable/ai/LanguageModel.ts +32 -46
- package/src/unstable/ai/McpSchema.ts +84 -32
- package/src/unstable/ai/McpServer.ts +8 -0
- package/src/unstable/ai/Model.ts +9 -5
- package/src/unstable/ai/OpenAiStructuredOutput.ts +3 -2
- package/src/unstable/ai/Prompt.ts +62 -35
- package/src/unstable/ai/Response.ts +40 -21
- package/src/unstable/ai/ResponseIdTracker.ts +8 -0
- package/src/unstable/ai/Telemetry.ts +30 -5
- package/src/unstable/ai/Tokenizer.ts +6 -0
- package/src/unstable/ai/Tool.ts +68 -0
- package/src/unstable/ai/Toolkit.ts +12 -0
- package/src/unstable/cli/Argument.ts +14 -4
- package/src/unstable/cli/CliError.ts +6 -0
- package/src/unstable/cli/Command.ts +128 -12
- package/src/unstable/cli/Flag.ts +31 -14
- package/src/unstable/cli/Param.ts +96 -9
- package/src/unstable/cli/Primitive.ts +10 -0
- package/src/unstable/cli/Prompt.ts +47 -40
- package/src/unstable/cli/internal/command.ts +11 -2
- package/src/unstable/cli/internal/completions/descriptor.ts +3 -0
- package/src/unstable/cli/internal/parser.ts +8 -1
- package/src/unstable/cluster/ClusterCron.ts +10 -1
- package/src/unstable/cluster/ClusterSchema.ts +8 -0
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +4 -0
- package/src/unstable/cluster/DeliverAt.ts +3 -4
- package/src/unstable/cluster/Entity.ts +24 -0
- package/src/unstable/cluster/EntityProxy.ts +10 -4
- package/src/unstable/cluster/EntityProxyServer.ts +6 -0
- package/src/unstable/cluster/EntityResource.ts +10 -0
- package/src/unstable/cluster/Envelope.ts +16 -0
- package/src/unstable/cluster/HttpRunner.ts +16 -0
- package/src/unstable/cluster/K8sHttpClient.ts +8 -0
- package/src/unstable/cluster/Message.ts +24 -0
- package/src/unstable/cluster/MessageStorage.ts +44 -10
- package/src/unstable/cluster/Reply.ts +6 -6
- package/src/unstable/cluster/Runner.ts +2 -0
- package/src/unstable/cluster/RunnerHealth.ts +13 -2
- package/src/unstable/cluster/RunnerServer.ts +8 -8
- package/src/unstable/cluster/RunnerStorage.ts +2 -0
- package/src/unstable/cluster/ShardId.ts +4 -0
- package/src/unstable/cluster/Snowflake.ts +2 -0
- package/src/unstable/cluster/TestRunner.ts +3 -2
- package/src/unstable/devtools/DevToolsSchema.ts +34 -2
- package/src/unstable/devtools/DevToolsServer.ts +4 -0
- package/src/unstable/encoding/Msgpack.ts +24 -0
- package/src/unstable/encoding/Ndjson.ts +46 -2
- package/src/unstable/encoding/Sse.ts +24 -17
- package/src/unstable/eventlog/Event.ts +16 -0
- package/src/unstable/eventlog/EventGroup.ts +4 -0
- package/src/unstable/eventlog/EventJournal.ts +20 -0
- package/src/unstable/eventlog/EventLog.ts +22 -0
- package/src/unstable/eventlog/EventLogMessage.ts +10 -0
- package/src/unstable/eventlog/EventLogRemote.ts +4 -0
- package/src/unstable/eventlog/EventLogServer.ts +4 -0
- package/src/unstable/eventlog/EventLogServerEncrypted.ts +6 -0
- package/src/unstable/eventlog/EventLogServerUnencrypted.ts +8 -0
- package/src/unstable/eventlog/EventLogSessionAuth.ts +11 -1
- package/src/unstable/eventlog/SqlEventJournal.ts +2 -0
- package/src/unstable/eventlog/SqlEventLogServerEncrypted.ts +2 -0
- package/src/unstable/eventlog/SqlEventLogServerUnencrypted.ts +2 -0
- package/src/unstable/http/Cookies.ts +34 -0
- package/src/unstable/http/Etag.ts +4 -0
- package/src/unstable/http/FetchHttpClient.ts +4 -0
- package/src/unstable/http/Headers.ts +88 -0
- package/src/unstable/http/HttpBody.ts +32 -0
- package/src/unstable/http/HttpClient.ts +44 -0
- package/src/unstable/http/HttpClientRequest.ts +2 -0
- package/src/unstable/http/HttpClientResponse.ts +6 -0
- package/src/unstable/http/HttpEffect.ts +4 -0
- package/src/unstable/http/HttpPlatform.ts +2 -0
- package/src/unstable/http/HttpRouter.ts +54 -16
- package/src/unstable/http/HttpServer.ts +35 -1
- package/src/unstable/http/HttpServerError.ts +17 -3
- package/src/unstable/http/HttpServerRequest.ts +30 -0
- package/src/unstable/http/HttpServerRespondable.ts +8 -0
- package/src/unstable/http/HttpServerResponse.ts +96 -0
- package/src/unstable/http/HttpTraceContext.ts +12 -0
- package/src/unstable/http/Multipart.ts +49 -2
- package/src/unstable/http/Template.ts +14 -0
- package/src/unstable/http/UrlParams.ts +64 -0
- package/src/unstable/httpapi/HttpApi.ts +10 -4
- package/src/unstable/httpapi/HttpApiBuilder.ts +9 -4
- package/src/unstable/httpapi/HttpApiEndpoint.ts +2 -0
- package/src/unstable/httpapi/HttpApiGroup.ts +23 -14
- package/src/unstable/httpapi/HttpApiMiddleware.ts +14 -0
- package/src/unstable/httpapi/HttpApiScalar.ts +38 -15
- package/src/unstable/httpapi/HttpApiSchema.ts +14 -3
- package/src/unstable/httpapi/HttpApiSecurity.ts +17 -11
- package/src/unstable/httpapi/HttpApiSwagger.ts +2 -4
- package/src/unstable/httpapi/HttpApiTest.ts +2 -0
- package/src/unstable/httpapi/OpenApi.ts +2 -0
- package/src/unstable/observability/Otlp.ts +2 -0
- package/src/unstable/observability/OtlpExporter.ts +2 -0
- package/src/unstable/observability/OtlpLogger.ts +4 -0
- package/src/unstable/observability/OtlpMetrics.ts +8 -9
- package/src/unstable/observability/OtlpResource.ts +8 -0
- package/src/unstable/observability/OtlpTracer.ts +3 -2
- package/src/unstable/observability/PrometheusMetrics.ts +6 -2
- package/src/unstable/persistence/KeyValueStore.ts +10 -0
- package/src/unstable/persistence/Persistable.ts +2 -0
- package/src/unstable/persistence/PersistedCache.ts +2 -0
- package/src/unstable/persistence/PersistedQueue.ts +21 -6
- package/src/unstable/persistence/Persistence.ts +14 -0
- package/src/unstable/persistence/RateLimiter.ts +6 -3
- package/src/unstable/persistence/Redis.ts +6 -0
- package/src/unstable/process/ChildProcess.ts +70 -19
- package/src/unstable/process/ChildProcessSpawner.ts +20 -4
- package/src/unstable/reactivity/Atom.ts +119 -14
- package/src/unstable/reactivity/AtomHttpApi.ts +4 -0
- package/src/unstable/reactivity/AtomRef.ts +8 -0
- package/src/unstable/reactivity/AtomRegistry.ts +34 -0
- package/src/unstable/reactivity/AtomRpc.ts +8 -6
- package/src/unstable/reactivity/Hydration.ts +6 -0
- package/src/unstable/reactivity/Reactivity.ts +27 -3
- package/src/unstable/rpc/Rpc.ts +38 -2
- package/src/unstable/rpc/RpcSerialization.ts +6 -0
- package/src/unstable/rpc/RpcServer.ts +5 -3
- package/src/unstable/schema/Model.ts +43 -12
- package/src/unstable/sql/SqlClient.ts +1 -1
- package/src/unstable/sql/SqlResolver.ts +6 -4
- package/src/unstable/sql/Statement.ts +8 -4
- package/src/unstable/workflow/DurableClock.ts +1 -1
- package/src/unstable/workflow/DurableDeferred.ts +3 -0
- package/src/unstable/workflow/Workflow.ts +42 -34
package/dist/Layer.js
CHANGED
|
@@ -27,7 +27,7 @@ const memoMapReuse = (entry, scope) => {
|
|
|
27
27
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
28
28
|
* }>()("Database") {}
|
|
29
29
|
*
|
|
30
|
-
* const dbLayer = Layer.succeed(Database
|
|
30
|
+
* const dbLayer = Layer.succeed(Database, {
|
|
31
31
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
32
32
|
* })
|
|
33
33
|
* const notALayer = { someProperty: "value" }
|
|
@@ -56,7 +56,10 @@ const fromBuildUnsafe = build => {
|
|
|
56
56
|
return self;
|
|
57
57
|
};
|
|
58
58
|
/**
|
|
59
|
-
* Constructs a Layer from a function that uses a `MemoMap` and `Scope` to
|
|
59
|
+
* Constructs a `Layer` from a function that uses a `MemoMap` and `Scope` to
|
|
60
|
+
* build the layer.
|
|
61
|
+
*
|
|
62
|
+
* **Details**
|
|
60
63
|
*
|
|
61
64
|
* The function receives a `MemoMap` for memoization and a `Scope` for resource management.
|
|
62
65
|
* A child scope is created, and if the build fails, the child scope is closed.
|
|
@@ -87,8 +90,10 @@ export const fromBuild = build => fromBuildUnsafe((memoMap, scope) => {
|
|
|
87
90
|
return internalEffect.onExit(build(memoMap, layerScope), exit => exit._tag === "Failure" ? Scope.close(layerScope, exit) : internalEffect.void);
|
|
88
91
|
});
|
|
89
92
|
/**
|
|
90
|
-
* Constructs a Layer from a function that uses a `MemoMap` and `Scope` to
|
|
91
|
-
* with automatic memoization.
|
|
93
|
+
* Constructs a `Layer` from a function that uses a `MemoMap` and `Scope` to
|
|
94
|
+
* build the layer, with automatic memoization.
|
|
95
|
+
*
|
|
96
|
+
* **Details**
|
|
92
97
|
*
|
|
93
98
|
* This is similar to `fromBuild` but provides automatic memoization of the layer construction.
|
|
94
99
|
* The layer will be memoized based on the provided `MemoMap`.
|
|
@@ -180,7 +185,7 @@ class MemoMapImpl {
|
|
|
180
185
|
* const memoMap = Layer.makeMemoMapUnsafe()
|
|
181
186
|
* const scope = yield* Effect.scope
|
|
182
187
|
*
|
|
183
|
-
* const dbLayer = Layer.succeed(Database
|
|
188
|
+
* const dbLayer = Layer.succeed(Database, {
|
|
184
189
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
185
190
|
* })
|
|
186
191
|
* const context = yield* Layer.buildWithMemoMap(dbLayer, memoMap, scope)
|
|
@@ -218,7 +223,7 @@ export const forkMemoMapUnsafe = parent => new MemoMapImpl(parent);
|
|
|
218
223
|
* const memoMap = yield* Layer.makeMemoMap
|
|
219
224
|
* const scope = yield* Effect.scope
|
|
220
225
|
*
|
|
221
|
-
* const dbLayer = Layer.succeed(Database
|
|
226
|
+
* const dbLayer = Layer.succeed(Database, {
|
|
222
227
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
223
228
|
* })
|
|
224
229
|
* const context = yield* Layer.buildWithMemoMap(dbLayer, memoMap, scope)
|
|
@@ -242,6 +247,8 @@ export const forkMemoMap = parent => internalEffect.sync(() => forkMemoMapUnsafe
|
|
|
242
247
|
/**
|
|
243
248
|
* A service reference for the current `MemoMap` used in layer construction.
|
|
244
249
|
*
|
|
250
|
+
* **Details**
|
|
251
|
+
*
|
|
245
252
|
* This service provides access to the current memoization map during layer building,
|
|
246
253
|
* allowing layers to share memoized results.
|
|
247
254
|
*
|
|
@@ -274,13 +281,13 @@ export class CurrentMemoMap extends /*#__PURE__*/Context.Service()("effect/Layer
|
|
|
274
281
|
* const scope = yield* Effect.scope
|
|
275
282
|
*
|
|
276
283
|
* // Build database layer with memoization
|
|
277
|
-
* const dbLayer = Layer.succeed(Database
|
|
284
|
+
* const dbLayer = Layer.succeed(Database, {
|
|
278
285
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
279
286
|
* })
|
|
280
287
|
* const dbContext = yield* Layer.buildWithMemoMap(dbLayer, memoMap, scope)
|
|
281
288
|
*
|
|
282
289
|
* // Build logger layer with same memoization (reuses memo if same layer)
|
|
283
|
-
* const loggerLayer = Layer.succeed(Logger
|
|
290
|
+
* const loggerLayer = Layer.succeed(Logger, {
|
|
284
291
|
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
|
|
285
292
|
* })
|
|
286
293
|
* const loggerContext = yield* Layer.buildWithMemoMap(
|
|
@@ -314,7 +321,7 @@ export const buildWithMemoMap = /*#__PURE__*/dual(3, (self, memoMap, scope) => i
|
|
|
314
321
|
*
|
|
315
322
|
* // Build a layer to get its services
|
|
316
323
|
* const program = Effect.gen(function*() {
|
|
317
|
-
* const dbLayer = Layer.succeed(Database
|
|
324
|
+
* const dbLayer = Layer.succeed(Database, {
|
|
318
325
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
319
326
|
* })
|
|
320
327
|
*
|
|
@@ -352,7 +359,7 @@ export const build = self => core.withFiber(fiber => buildWithMemoMap(self, Curr
|
|
|
352
359
|
* const program = Effect.gen(function*() {
|
|
353
360
|
* const scope = yield* Effect.scope
|
|
354
361
|
*
|
|
355
|
-
* const dbLayer = Layer.effect(Database
|
|
362
|
+
* const dbLayer = Layer.effect(Database, Effect.gen(function*() {
|
|
356
363
|
* console.log("Initializing database...")
|
|
357
364
|
* yield* Scope.addFinalizer(
|
|
358
365
|
* scope,
|
|
@@ -375,9 +382,16 @@ export const build = self => core.withFiber(fiber => buildWithMemoMap(self, Curr
|
|
|
375
382
|
*/
|
|
376
383
|
export const buildWithScope = /*#__PURE__*/dual(2, (self, scope) => core.withFiber(fiber => buildWithMemoMap(self, CurrentMemoMap.getOrCreate(fiber.context), scope)));
|
|
377
384
|
/**
|
|
378
|
-
* Constructs a layer from
|
|
385
|
+
* Constructs a layer that provides a single service from an already available
|
|
386
|
+
* value.
|
|
387
|
+
*
|
|
388
|
+
* **When to use**
|
|
379
389
|
*
|
|
380
|
-
*
|
|
390
|
+
* Use `succeed` when the service implementation is already constructed and does
|
|
391
|
+
* not need effectful acquisition. Use `sync` when the service should be created
|
|
392
|
+
* lazily during layer construction.
|
|
393
|
+
*
|
|
394
|
+
* **Example** (Creating a layer from a service implementation)
|
|
381
395
|
*
|
|
382
396
|
* ```ts
|
|
383
397
|
* import { Context, Effect, Layer } from "effect"
|
|
@@ -386,34 +400,13 @@ export const buildWithScope = /*#__PURE__*/dual(2, (self, scope) => core.withFib
|
|
|
386
400
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
387
401
|
* }>()("Database") {}
|
|
388
402
|
*
|
|
389
|
-
*
|
|
390
|
-
* readonly log: (msg: string) => Effect.Effect<void>
|
|
391
|
-
* }>()("Logger") {}
|
|
392
|
-
*
|
|
393
|
-
* // Create layers from concrete service implementations
|
|
394
|
-
* const databaseLayer = Layer.succeed(Database)({
|
|
403
|
+
* const DatabaseLive = Layer.succeed(Database, {
|
|
395
404
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Query result: ${sql}`))
|
|
396
405
|
* })
|
|
397
|
-
*
|
|
398
|
-
* const loggerLayer = Layer.succeed(Logger)({
|
|
399
|
-
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
|
|
400
|
-
* })
|
|
401
|
-
*
|
|
402
|
-
* // Use the layers in a program
|
|
403
|
-
* const program = Effect.gen(function*() {
|
|
404
|
-
* const database = yield* Database
|
|
405
|
-
* const logger = yield* Logger
|
|
406
|
-
*
|
|
407
|
-
* yield* logger.log("Starting database query")
|
|
408
|
-
* const result = yield* database.query("SELECT * FROM users")
|
|
409
|
-
* yield* logger.log(`Query completed: ${result}`)
|
|
410
|
-
*
|
|
411
|
-
* return result
|
|
412
|
-
* }).pipe(
|
|
413
|
-
* Effect.provide(Layer.mergeAll(databaseLayer, loggerLayer))
|
|
414
|
-
* )
|
|
415
406
|
* ```
|
|
416
407
|
*
|
|
408
|
+
* @see {@link sync} for constructing layers from lazy values
|
|
409
|
+
*
|
|
417
410
|
* @category constructors
|
|
418
411
|
* @since 2.0.0
|
|
419
412
|
*/
|
|
@@ -424,11 +417,19 @@ export const succeed = function () {
|
|
|
424
417
|
return succeedContext(Context.make(arguments[0], arguments[1]));
|
|
425
418
|
};
|
|
426
419
|
/**
|
|
427
|
-
* Constructs a layer
|
|
428
|
-
*
|
|
420
|
+
* Constructs a layer that provides all services in an already available
|
|
421
|
+
* `Context`.
|
|
422
|
+
*
|
|
423
|
+
* **When to use**
|
|
424
|
+
*
|
|
425
|
+
* Use `succeedContext` when you already have a `Context` or need to provide
|
|
426
|
+
* multiple services at once. Use `succeed` when you only need to provide one
|
|
427
|
+
* service value.
|
|
428
|
+
*
|
|
429
|
+
* **Details**
|
|
429
430
|
*
|
|
430
|
-
* This is a more general version of `succeed` that allows you to provide
|
|
431
|
-
* services at once through a `Context`.
|
|
431
|
+
* This is a more general version of `succeed` that allows you to provide
|
|
432
|
+
* multiple services at once through a `Context`.
|
|
432
433
|
*
|
|
433
434
|
* **Example** (Providing multiple services from a context)
|
|
434
435
|
*
|
|
@@ -454,30 +455,50 @@ export const succeed = function () {
|
|
|
454
455
|
* const layer = Layer.succeedContext(context)
|
|
455
456
|
* ```
|
|
456
457
|
*
|
|
458
|
+
* @see {@link succeed} for providing a single service from a value
|
|
459
|
+
*
|
|
457
460
|
* @category constructors
|
|
458
461
|
* @since 2.0.0
|
|
459
462
|
*/
|
|
460
463
|
export const succeedContext = context => fromBuildUnsafe(constant(internalEffect.succeed(context)));
|
|
461
464
|
/**
|
|
462
|
-
*
|
|
465
|
+
* An empty layer that provides no services, cannot fail, has no requirements,
|
|
466
|
+
* and performs no construction or finalization work.
|
|
467
|
+
*
|
|
468
|
+
* **When to use**
|
|
463
469
|
*
|
|
464
|
-
*
|
|
465
|
-
*
|
|
470
|
+
* Use `Layer.empty` as the no-op branch when conditionally composing layers.
|
|
471
|
+
* If you need to run an effect during layer construction while still providing
|
|
472
|
+
* no services, use `effectDiscard`.
|
|
466
473
|
*
|
|
467
|
-
* **Example** (
|
|
474
|
+
* **Example** (Disabling optional lifecycle work)
|
|
468
475
|
*
|
|
469
476
|
* ```ts
|
|
470
|
-
* import { Layer } from "effect"
|
|
477
|
+
* import { Console, Layer } from "effect"
|
|
478
|
+
*
|
|
479
|
+
* declare const flag: boolean
|
|
471
480
|
*
|
|
472
|
-
* const
|
|
481
|
+
* const StartupLogLive = flag
|
|
482
|
+
* ? Layer.effectDiscard(Console.log("application starting"))
|
|
483
|
+
* : Layer.empty
|
|
473
484
|
* ```
|
|
474
485
|
*
|
|
486
|
+
* @see {@link effectDiscard} for running an effect while providing no services
|
|
487
|
+
*
|
|
475
488
|
* @category constructors
|
|
476
489
|
* @since 2.0.0
|
|
477
490
|
*/
|
|
478
491
|
export const empty = /*#__PURE__*/succeedContext(/*#__PURE__*/Context.empty());
|
|
479
492
|
/**
|
|
480
|
-
* Lazily constructs a layer
|
|
493
|
+
* Lazily constructs a layer that provides a single service.
|
|
494
|
+
*
|
|
495
|
+
* **When to use**
|
|
496
|
+
*
|
|
497
|
+
* Use `sync` when the service can be created synchronously but should be
|
|
498
|
+
* deferred until the layer is built. Use `succeed` when the service value is
|
|
499
|
+
* already available.
|
|
500
|
+
*
|
|
501
|
+
* **Details**
|
|
481
502
|
*
|
|
482
503
|
* This is a lazy version of `succeed` where the service value is computed
|
|
483
504
|
* synchronously only when the layer is built.
|
|
@@ -491,11 +512,13 @@ export const empty = /*#__PURE__*/succeedContext(/*#__PURE__*/Context.empty());
|
|
|
491
512
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
492
513
|
* }>()("Database") {}
|
|
493
514
|
*
|
|
494
|
-
* const layer = Layer.sync(Database
|
|
515
|
+
* const layer = Layer.sync(Database, () => ({
|
|
495
516
|
* query: (sql: string) => Effect.succeed(`Query: ${sql}`)
|
|
496
517
|
* }))
|
|
497
518
|
* ```
|
|
498
519
|
*
|
|
520
|
+
* @see {@link succeed} for constructing layers from static values
|
|
521
|
+
*
|
|
499
522
|
* @category constructors
|
|
500
523
|
* @since 2.0.0
|
|
501
524
|
*/
|
|
@@ -506,10 +529,17 @@ export const sync = function () {
|
|
|
506
529
|
return syncContext(() => Context.make(arguments[0], arguments[1]()));
|
|
507
530
|
};
|
|
508
531
|
/**
|
|
509
|
-
* Lazily constructs a layer
|
|
510
|
-
*
|
|
532
|
+
* Lazily constructs a layer that provides all services in a `Context`.
|
|
533
|
+
*
|
|
534
|
+
* **When to use**
|
|
535
|
+
*
|
|
536
|
+
* Use `syncContext` when multiple services can be created synchronously and
|
|
537
|
+
* should be deferred until the layer is built. Use `sync` when you only need to
|
|
538
|
+
* provide one service.
|
|
511
539
|
*
|
|
512
|
-
*
|
|
540
|
+
* **Details**
|
|
541
|
+
*
|
|
542
|
+
* This is a lazy version of `succeedContext` where the `Context` is computed
|
|
513
543
|
* synchronously only when the layer is built.
|
|
514
544
|
*
|
|
515
545
|
* **Example** (Lazily providing a context)
|
|
@@ -528,15 +558,27 @@ export const sync = function () {
|
|
|
528
558
|
* )
|
|
529
559
|
* ```
|
|
530
560
|
*
|
|
561
|
+
* @see {@link sync} for lazily providing a single service
|
|
562
|
+
* @see {@link succeedContext} for providing an already available context
|
|
563
|
+
*
|
|
531
564
|
* @category constructors
|
|
532
565
|
* @since 2.0.0
|
|
533
566
|
*/
|
|
534
567
|
export const syncContext = evaluate => fromBuildMemo(constant(internalEffect.sync(evaluate)));
|
|
535
568
|
/**
|
|
536
|
-
* Constructs a layer from
|
|
569
|
+
* Constructs a layer from an effect that produces a single service.
|
|
570
|
+
*
|
|
571
|
+
* **When to use**
|
|
572
|
+
*
|
|
573
|
+
* Use `effect` when constructing the service requires effects, dependencies, or
|
|
574
|
+
* scoped resource acquisition. Use `effectContext` when the effect produces
|
|
575
|
+
* multiple services in a `Context`, and `effectDiscard` when construction work
|
|
576
|
+
* should provide no services.
|
|
537
577
|
*
|
|
538
|
-
*
|
|
539
|
-
*
|
|
578
|
+
* **Details**
|
|
579
|
+
*
|
|
580
|
+
* This allows you to create a `Layer` from an `Effect` that produces a service.
|
|
581
|
+
* The `Effect` is executed in the scope of the layer, allowing for proper
|
|
540
582
|
* resource management.
|
|
541
583
|
*
|
|
542
584
|
* **Example** (Creating a layer from an effect)
|
|
@@ -548,13 +590,16 @@ export const syncContext = evaluate => fromBuildMemo(constant(internalEffect.syn
|
|
|
548
590
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
549
591
|
* }>()("Database") {}
|
|
550
592
|
*
|
|
551
|
-
* const layer = Layer.effect(Database
|
|
593
|
+
* const layer = Layer.effect(Database,
|
|
552
594
|
* Effect.sync(() => ({
|
|
553
595
|
* query: (sql: string) => Effect.succeed(`Query: ${sql}`)
|
|
554
596
|
* }))
|
|
555
597
|
* )
|
|
556
598
|
* ```
|
|
557
599
|
*
|
|
600
|
+
* @see {@link effectContext} for effectfully providing multiple services
|
|
601
|
+
* @see {@link effectDiscard} for running construction work without providing services
|
|
602
|
+
*
|
|
558
603
|
* @category constructors
|
|
559
604
|
* @since 2.0.0
|
|
560
605
|
*/
|
|
@@ -566,11 +611,18 @@ export const effect = function () {
|
|
|
566
611
|
};
|
|
567
612
|
const effectImpl = (service, effect) => effectContext(internalEffect.map(effect, value => Context.make(service, value)));
|
|
568
613
|
/**
|
|
569
|
-
* Constructs a layer from
|
|
570
|
-
*
|
|
614
|
+
* Constructs a layer from an effect that produces all services in a `Context`.
|
|
615
|
+
*
|
|
616
|
+
* **When to use**
|
|
571
617
|
*
|
|
572
|
-
*
|
|
573
|
-
*
|
|
618
|
+
* Use `effectContext` when effectful construction needs to provide multiple
|
|
619
|
+
* services at once. Use `effect` when the effect produces one service value.
|
|
620
|
+
*
|
|
621
|
+
* **Details**
|
|
622
|
+
*
|
|
623
|
+
* This allows you to create a `Layer` from an effectful computation that
|
|
624
|
+
* returns multiple services. The `Effect` is executed in the scope of the
|
|
625
|
+
* layer.
|
|
574
626
|
*
|
|
575
627
|
* **Example** (Creating a layer from an effectful context)
|
|
576
628
|
*
|
|
@@ -589,12 +641,17 @@ const effectImpl = (service, effect) => effectContext(internalEffect.map(effect,
|
|
|
589
641
|
* )
|
|
590
642
|
* ```
|
|
591
643
|
*
|
|
644
|
+
* @see {@link effect} for effectfully providing a single service
|
|
645
|
+
*
|
|
592
646
|
* @category constructors
|
|
593
647
|
* @since 2.0.0
|
|
594
648
|
*/
|
|
595
649
|
export const effectContext = effect => fromBuildMemo((_, scope) => Scope.provide(effect, scope));
|
|
596
650
|
/**
|
|
597
|
-
* Constructs a layer from
|
|
651
|
+
* Constructs a layer from an effect, discarding its value and providing no
|
|
652
|
+
* services.
|
|
653
|
+
*
|
|
654
|
+
* **When to use**
|
|
598
655
|
*
|
|
599
656
|
* This is useful when you want to run an Effect for its side effects during
|
|
600
657
|
* layer construction, but don't need to provide any services.
|
|
@@ -611,6 +668,8 @@ export const effectContext = effect => fromBuildMemo((_, scope) => Scope.provide
|
|
|
611
668
|
* )
|
|
612
669
|
* ```
|
|
613
670
|
*
|
|
671
|
+
* @see {@link empty} for a no-op layer that performs no construction work
|
|
672
|
+
*
|
|
614
673
|
* @category constructors
|
|
615
674
|
* @since 2.0.0
|
|
616
675
|
*/
|
|
@@ -618,6 +677,8 @@ export const effectDiscard = effect => effectContext(internalEffect.as(effect, C
|
|
|
618
677
|
/**
|
|
619
678
|
* Lazily constructs a layer using the specified factory.
|
|
620
679
|
*
|
|
680
|
+
* **Details**
|
|
681
|
+
*
|
|
621
682
|
* The factory is evaluated only when the suspended layer is first built, and
|
|
622
683
|
* the result is memoized with normal layer sharing semantics.
|
|
623
684
|
*
|
|
@@ -632,8 +693,8 @@ export const effectDiscard = effect => effectContext(internalEffect.as(effect, C
|
|
|
632
693
|
*
|
|
633
694
|
* const layer = Layer.suspend(() =>
|
|
634
695
|
* useProd
|
|
635
|
-
* ? Layer.succeed(Config
|
|
636
|
-
* : Layer.succeed(Config
|
|
696
|
+
* ? Layer.succeed(Config, "https://api.example.com")
|
|
697
|
+
* : Layer.succeed(Config, "http://localhost:3000")
|
|
637
698
|
* )
|
|
638
699
|
* ```
|
|
639
700
|
*
|
|
@@ -642,11 +703,17 @@ export const effectDiscard = effect => effectContext(internalEffect.as(effect, C
|
|
|
642
703
|
*/
|
|
643
704
|
export const suspend = evaluate => fromBuildMemo((memoMap, scope) => internalEffect.suspend(() => evaluate().build(memoMap, scope)));
|
|
644
705
|
/**
|
|
645
|
-
* Unwraps a Layer from an Effect
|
|
706
|
+
* Unwraps a `Layer` from an `Effect`, flattening the nested structure.
|
|
646
707
|
*
|
|
647
|
-
*
|
|
648
|
-
*
|
|
649
|
-
*
|
|
708
|
+
* **When to use**
|
|
709
|
+
*
|
|
710
|
+
* Use this when you have an `Effect` that produces a `Layer` and you want to
|
|
711
|
+
* use that layer directly.
|
|
712
|
+
*
|
|
713
|
+
* **Details**
|
|
714
|
+
*
|
|
715
|
+
* The resulting Layer will have the combined error and dependency types from
|
|
716
|
+
* both the outer Effect and the inner Layer.
|
|
650
717
|
*
|
|
651
718
|
* **Example** (Unwrapping an effectful layer)
|
|
652
719
|
*
|
|
@@ -658,7 +725,7 @@ export const suspend = evaluate => fromBuildMemo((memoMap, scope) => internalEff
|
|
|
658
725
|
* }>()("Database") {}
|
|
659
726
|
*
|
|
660
727
|
* const layerEffect = Effect.succeed(
|
|
661
|
-
* Layer.succeed(Database
|
|
728
|
+
* Layer.succeed(Database, { query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result")) })
|
|
662
729
|
* )
|
|
663
730
|
*
|
|
664
731
|
* const unwrappedLayer = Layer.unwrap(layerEffect)
|
|
@@ -678,10 +745,20 @@ const mergeAllEffect = (layers, memoMap, scope) => {
|
|
|
678
745
|
}).pipe(internalEffect.map(context => Context.mergeAll(...context)));
|
|
679
746
|
};
|
|
680
747
|
/**
|
|
681
|
-
* Combines all the provided layers concurrently, creating a new layer with
|
|
748
|
+
* Combines all the provided layers concurrently, creating a new layer with
|
|
749
|
+
* merged input, error, and output types.
|
|
750
|
+
*
|
|
751
|
+
* **When to use**
|
|
752
|
+
*
|
|
753
|
+
* Use this when you need to combine multiple independent layers.
|
|
754
|
+
*
|
|
755
|
+
* **Details**
|
|
682
756
|
*
|
|
683
757
|
* All layers are built concurrently, and their outputs are merged into a single layer.
|
|
684
|
-
*
|
|
758
|
+
*
|
|
759
|
+
* If multiple merged layers depend on the same layer value, that dependency is
|
|
760
|
+
* shared by default. Reuse a named layer value when you want services to share
|
|
761
|
+
* the same resource, such as one database pool.
|
|
685
762
|
*
|
|
686
763
|
* **Example** (Merging independent layers)
|
|
687
764
|
*
|
|
@@ -696,25 +773,36 @@ const mergeAllEffect = (layers, memoMap, scope) => {
|
|
|
696
773
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
697
774
|
* }>()("Logger") {}
|
|
698
775
|
*
|
|
699
|
-
* const dbLayer = Layer.succeed(Database
|
|
776
|
+
* const dbLayer = Layer.succeed(Database, {
|
|
700
777
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
701
778
|
* })
|
|
702
|
-
* const loggerLayer = Layer.succeed(Logger
|
|
779
|
+
* const loggerLayer = Layer.succeed(Logger, {
|
|
703
780
|
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
|
|
704
781
|
* })
|
|
705
782
|
*
|
|
706
783
|
* const mergedLayer = Layer.mergeAll(dbLayer, loggerLayer)
|
|
707
784
|
* ```
|
|
708
785
|
*
|
|
786
|
+
* @see {@link merge} for merging one layer with another layer or array
|
|
787
|
+
*
|
|
709
788
|
* @category zipping
|
|
710
789
|
* @since 2.0.0
|
|
711
790
|
*/
|
|
712
791
|
export const mergeAll = (...layers) => fromBuild((memoMap, scope) => mergeAllEffect(layers, memoMap, scope));
|
|
713
792
|
/**
|
|
714
|
-
* Merges this layer with
|
|
793
|
+
* Merges this layer with another layer concurrently, producing a new layer with
|
|
794
|
+
* combined input, error, and output types.
|
|
715
795
|
*
|
|
716
|
-
*
|
|
717
|
-
*
|
|
796
|
+
* **When to use**
|
|
797
|
+
*
|
|
798
|
+
* Use `merge` when composing from an existing layer in a pipeline. Use
|
|
799
|
+
* `mergeAll` when you already have all layers as separate arguments.
|
|
800
|
+
*
|
|
801
|
+
* **Details**
|
|
802
|
+
*
|
|
803
|
+
* This is a binary version of `mergeAll` that merges exactly two layers or one
|
|
804
|
+
* layer with an array of layers. The layers are built concurrently and their
|
|
805
|
+
* outputs are combined.
|
|
718
806
|
*
|
|
719
807
|
* **Example** (Merging two layers)
|
|
720
808
|
*
|
|
@@ -729,25 +817,37 @@ export const mergeAll = (...layers) => fromBuild((memoMap, scope) => mergeAllEff
|
|
|
729
817
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
730
818
|
* }>()("Logger") {}
|
|
731
819
|
*
|
|
732
|
-
* const dbLayer = Layer.succeed(Database
|
|
820
|
+
* const dbLayer = Layer.succeed(Database, {
|
|
733
821
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
734
822
|
* })
|
|
735
|
-
* const loggerLayer = Layer.succeed(Logger
|
|
823
|
+
* const loggerLayer = Layer.succeed(Logger, {
|
|
736
824
|
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
|
|
737
825
|
* })
|
|
738
826
|
*
|
|
739
827
|
* const mergedLayer = Layer.merge(dbLayer, loggerLayer)
|
|
740
828
|
* ```
|
|
741
829
|
*
|
|
830
|
+
* @see {@link mergeAll} for merging several layers at once
|
|
831
|
+
*
|
|
742
832
|
* @category zipping
|
|
743
833
|
* @since 2.0.0
|
|
744
834
|
*/
|
|
745
835
|
export const merge = /*#__PURE__*/dual(2, (self, that) => mergeAll(self, ...(Array.isArray(that) ? that : [that])));
|
|
746
836
|
const provideWith = (self, that, f) => fromBuild((memoMap, scope) => internalEffect.flatMap(Array.isArray(that) ? mergeAllEffect(that, memoMap, scope) : that.build(memoMap, scope), context => self.build(memoMap, scope).pipe(internalEffect.provideContext(context), internalEffect.map(merged => f(merged, context)))));
|
|
747
837
|
/**
|
|
748
|
-
* Feeds the output services of
|
|
749
|
-
*
|
|
750
|
-
*
|
|
838
|
+
* Feeds the output services of the dependency layer into the requirements of
|
|
839
|
+
* this layer, returning a layer that only provides the services from this layer.
|
|
840
|
+
*
|
|
841
|
+
* **When to use**
|
|
842
|
+
*
|
|
843
|
+
* Use `provide` when the dependency layer is an implementation detail of the
|
|
844
|
+
* layer being built and should not be exposed to callers. Use `provideMerge`
|
|
845
|
+
* when callers should also receive the dependency services.
|
|
846
|
+
*
|
|
847
|
+
* **Details**
|
|
848
|
+
*
|
|
849
|
+
* In `serviceLayer.pipe(Layer.provide(dependencyLayer))`, the dependency layer is
|
|
850
|
+
* built first and is used to satisfy the requirements of `serviceLayer`.
|
|
751
851
|
*
|
|
752
852
|
* **Example** (Providing layer dependencies)
|
|
753
853
|
*
|
|
@@ -770,16 +870,16 @@ const provideWith = (self, that, f) => fromBuild((memoMap, scope) => internalEff
|
|
|
770
870
|
* }>()("Logger") {}
|
|
771
871
|
*
|
|
772
872
|
* // Create dependency layers
|
|
773
|
-
* const databaseLayer = Layer.succeed(Database
|
|
873
|
+
* const databaseLayer = Layer.succeed(Database, {
|
|
774
874
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
775
875
|
* })
|
|
776
876
|
*
|
|
777
|
-
* const loggerLayer = Layer.succeed(Logger
|
|
877
|
+
* const loggerLayer = Layer.succeed(Logger, {
|
|
778
878
|
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
|
|
779
879
|
* })
|
|
780
880
|
*
|
|
781
881
|
* // UserService depends on Database and Logger
|
|
782
|
-
* const userServiceLayer = Layer.effect(UserService
|
|
882
|
+
* const userServiceLayer = Layer.effect(UserService, Effect.gen(function*() {
|
|
783
883
|
* const database = yield* Database
|
|
784
884
|
* const logger = yield* Logger
|
|
785
885
|
*
|
|
@@ -808,14 +908,22 @@ const provideWith = (self, that, f) => fromBuild((memoMap, scope) => internalEff
|
|
|
808
908
|
* )
|
|
809
909
|
* ```
|
|
810
910
|
*
|
|
911
|
+
* @see {@link provideMerge} for retaining the dependency services
|
|
912
|
+
*
|
|
811
913
|
* @category utils
|
|
812
914
|
* @since 2.0.0
|
|
813
915
|
*/
|
|
814
916
|
export const provide = /*#__PURE__*/dual(2, (self, that) => provideWith(self, that, identity));
|
|
815
917
|
/**
|
|
816
|
-
* Feeds the output services of
|
|
817
|
-
* layer,
|
|
818
|
-
*
|
|
918
|
+
* Feeds the output services of the dependency layer into the requirements of
|
|
919
|
+
* this layer, returning a layer that provides both sets of services.
|
|
920
|
+
*
|
|
921
|
+
* **When to use**
|
|
922
|
+
*
|
|
923
|
+
* Use this when callers need access to both the service being built and the
|
|
924
|
+
* dependency used to build it, such as a health check that needs both a
|
|
925
|
+
* repository and its database. Prefer `provide` when the dependency should stay
|
|
926
|
+
* private.
|
|
819
927
|
*
|
|
820
928
|
* **Example** (Providing dependencies while retaining services)
|
|
821
929
|
*
|
|
@@ -838,16 +946,16 @@ export const provide = /*#__PURE__*/dual(2, (self, that) => provideWith(self, th
|
|
|
838
946
|
* }>()("UserService") {}
|
|
839
947
|
*
|
|
840
948
|
* // Create dependency layers
|
|
841
|
-
* const databaseLayer = Layer.succeed(Database
|
|
949
|
+
* const databaseLayer = Layer.succeed(Database, {
|
|
842
950
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
843
951
|
* })
|
|
844
952
|
*
|
|
845
|
-
* const loggerLayer = Layer.succeed(Logger
|
|
953
|
+
* const loggerLayer = Layer.succeed(Logger, {
|
|
846
954
|
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
|
|
847
955
|
* })
|
|
848
956
|
*
|
|
849
957
|
* // UserService depends on Database and Logger
|
|
850
|
-
* const userServiceLayer = Layer.effect(UserService
|
|
958
|
+
* const userServiceLayer = Layer.effect(UserService, Effect.gen(function*() {
|
|
851
959
|
* const database = yield* Database
|
|
852
960
|
* const logger = yield* Logger
|
|
853
961
|
*
|
|
@@ -882,6 +990,8 @@ export const provide = /*#__PURE__*/dual(2, (self, that) => provideWith(self, th
|
|
|
882
990
|
* )
|
|
883
991
|
* ```
|
|
884
992
|
*
|
|
993
|
+
* @see {@link provide} for keeping dependency services private
|
|
994
|
+
*
|
|
885
995
|
* @category utils
|
|
886
996
|
* @since 2.0.0
|
|
887
997
|
*/
|
|
@@ -908,7 +1018,7 @@ export const provideMerge = /*#__PURE__*/dual(2, (self, that) => provideWith(sel
|
|
|
908
1018
|
* }>()("Logger") {}
|
|
909
1019
|
*
|
|
910
1020
|
* // Base config layer
|
|
911
|
-
* const configLayer = Layer.succeed(Config
|
|
1021
|
+
* const configLayer = Layer.succeed(Config, {
|
|
912
1022
|
* dbUrl: "postgres://localhost:5432/mydb",
|
|
913
1023
|
* logLevel: "debug"
|
|
914
1024
|
* })
|
|
@@ -919,7 +1029,7 @@ export const provideMerge = /*#__PURE__*/dual(2, (self, that) => provideWith(sel
|
|
|
919
1029
|
* const config = Context.get(context, Config)
|
|
920
1030
|
*
|
|
921
1031
|
* // Create database layer based on config
|
|
922
|
-
* const dbLayer = Layer.succeed(Database
|
|
1032
|
+
* const dbLayer = Layer.succeed(Database, {
|
|
923
1033
|
* query: Effect.fn("Database.query")((sql: string) =>
|
|
924
1034
|
* Effect.succeed(
|
|
925
1035
|
* `Querying ${config.dbUrl}: ${sql}`
|
|
@@ -927,7 +1037,7 @@ export const provideMerge = /*#__PURE__*/dual(2, (self, that) => provideWith(sel
|
|
|
927
1037
|
* })
|
|
928
1038
|
*
|
|
929
1039
|
* // Create logger layer based on config
|
|
930
|
-
* const loggerLayer = Layer.succeed(Logger
|
|
1040
|
+
* const loggerLayer = Layer.succeed(Logger, {
|
|
931
1041
|
* log: Effect.fn("Logger.log")((msg: string) =>
|
|
932
1042
|
* config.logLevel === "debug"
|
|
933
1043
|
* ? Effect.sync(() => console.log(`[DEBUG] ${msg}`))
|
|
@@ -961,6 +1071,11 @@ export const flatMap = /*#__PURE__*/dual(2, (self, f) => fromBuild((memoMap, sco
|
|
|
961
1071
|
/**
|
|
962
1072
|
* Performs the specified effect if this layer succeeds.
|
|
963
1073
|
*
|
|
1074
|
+
* **Details**
|
|
1075
|
+
*
|
|
1076
|
+
* The callback receives the services produced by this layer. Its result is
|
|
1077
|
+
* discarded, and the original layer output is preserved.
|
|
1078
|
+
*
|
|
964
1079
|
* @category sequencing
|
|
965
1080
|
* @since 2.0.0
|
|
966
1081
|
*/
|
|
@@ -968,6 +1083,12 @@ export const tap = /*#__PURE__*/dual(2, (self, f) => fromBuild((memoMap, scope)
|
|
|
968
1083
|
/**
|
|
969
1084
|
* Performs the specified effect if this layer fails.
|
|
970
1085
|
*
|
|
1086
|
+
* **Details**
|
|
1087
|
+
*
|
|
1088
|
+
* The callback receives the typed error. If the callback succeeds, the layer
|
|
1089
|
+
* still fails with the original error; if the callback fails, that failure is
|
|
1090
|
+
* added to the layer's error type.
|
|
1091
|
+
*
|
|
971
1092
|
* @category sequencing
|
|
972
1093
|
* @since 2.0.0
|
|
973
1094
|
*/
|
|
@@ -976,6 +1097,7 @@ export const tapError = /*#__PURE__*/dual(2, (self, f) => fromBuild((memoMap, sc
|
|
|
976
1097
|
* Performs the specified effect when this layer fails with any cause.
|
|
977
1098
|
*
|
|
978
1099
|
* **Details**
|
|
1100
|
+
*
|
|
979
1101
|
* The callback receives the layer's `Cause`, so it can inspect typed errors,
|
|
980
1102
|
* defects, and interruption information. If the callback succeeds, the layer
|
|
981
1103
|
* fails again with the original cause; if the callback fails, that failure is
|
|
@@ -986,8 +1108,13 @@ export const tapError = /*#__PURE__*/dual(2, (self, f) => fromBuild((memoMap, sc
|
|
|
986
1108
|
*/
|
|
987
1109
|
export const tapCause = /*#__PURE__*/dual(2, (self, f) => fromBuild((memoMap, scope) => internalEffect.catchCause(self.build(memoMap, scope), cause => Scope.provide(internalEffect.andThen(f(cause), internalEffect.failCause(cause)), scope))));
|
|
988
1110
|
/**
|
|
989
|
-
*
|
|
990
|
-
*
|
|
1111
|
+
* Converts layer construction failures into defects, removing them from the
|
|
1112
|
+
* layer's error type.
|
|
1113
|
+
*
|
|
1114
|
+
* **Details**
|
|
1115
|
+
*
|
|
1116
|
+
* Use this only when failures should be treated as unrecoverable defects rather
|
|
1117
|
+
* than typed errors that callers can handle.
|
|
991
1118
|
*
|
|
992
1119
|
* **Example** (Converting layer failures to defects)
|
|
993
1120
|
*
|
|
@@ -1003,7 +1130,7 @@ export const tapCause = /*#__PURE__*/dual(2, (self, f) => fromBuild((memoMap, sc
|
|
|
1003
1130
|
* }>()("Database") {}
|
|
1004
1131
|
*
|
|
1005
1132
|
* // Layer that can fail during construction
|
|
1006
|
-
* const flakyDatabaseLayer = Layer.effect(Database
|
|
1133
|
+
* const flakyDatabaseLayer = Layer.effect(Database, Effect.gen(function*() {
|
|
1007
1134
|
* console.log("connecting")
|
|
1008
1135
|
* return yield* new DatabaseError({ message: "Connection failed" })
|
|
1009
1136
|
* }))
|
|
@@ -1030,7 +1157,16 @@ export const orDie = self => fromBuildUnsafe((memoMap, scope) => internalEffect.
|
|
|
1030
1157
|
const catch_ = /*#__PURE__*/dual(2, (self, onError) => fromBuildUnsafe((memoMap, scope) => internalEffect.catch_(self.build(memoMap, scope), e => onError(e).build(memoMap, scope))));
|
|
1031
1158
|
export {
|
|
1032
1159
|
/**
|
|
1033
|
-
* Recovers from all errors.
|
|
1160
|
+
* Recovers from all typed errors by switching to another layer.
|
|
1161
|
+
*
|
|
1162
|
+
* **When to use**
|
|
1163
|
+
*
|
|
1164
|
+
* Use `catch` when every typed construction error should use the same recovery
|
|
1165
|
+
* path. Use `catchTag` to recover from specific tagged errors, and `catchCause`
|
|
1166
|
+
* when recovery needs the full failure cause.
|
|
1167
|
+
*
|
|
1168
|
+
* @see {@link catchTag} for recovering from specific tagged errors
|
|
1169
|
+
* @see {@link catchCause} for recovering with access to the full cause
|
|
1034
1170
|
*
|
|
1035
1171
|
* @category error handling
|
|
1036
1172
|
* @since 4.0.0
|
|
@@ -1039,6 +1175,12 @@ catch_ as catch };
|
|
|
1039
1175
|
/**
|
|
1040
1176
|
* Recovers from specific tagged errors.
|
|
1041
1177
|
*
|
|
1178
|
+
* **When to use**
|
|
1179
|
+
*
|
|
1180
|
+
* Use `catchTag` when only some tagged construction errors should be recovered.
|
|
1181
|
+
* Use `catchCause` when recovery depends on defects, interruption, or other
|
|
1182
|
+
* cause information.
|
|
1183
|
+
*
|
|
1042
1184
|
* **Example** (Recovering from tagged layer errors)
|
|
1043
1185
|
*
|
|
1044
1186
|
* ```ts
|
|
@@ -1050,15 +1192,17 @@ catch_ as catch };
|
|
|
1050
1192
|
* readonly apiUrl: string
|
|
1051
1193
|
* }>()("Config") {}
|
|
1052
1194
|
*
|
|
1053
|
-
* const configLayer = Layer.effect(Config
|
|
1195
|
+
* const configLayer = Layer.effect(Config, Effect.fail(new ConfigError()))
|
|
1054
1196
|
*
|
|
1055
|
-
* const fallbackLayer = Layer.succeed(Config
|
|
1197
|
+
* const fallbackLayer = Layer.succeed(Config, { apiUrl: "http://localhost" })
|
|
1056
1198
|
*
|
|
1057
1199
|
* const recovered = configLayer.pipe(
|
|
1058
1200
|
* Layer.catchTag("ConfigError", () => fallbackLayer)
|
|
1059
1201
|
* )
|
|
1060
1202
|
* ```
|
|
1061
1203
|
*
|
|
1204
|
+
* @see {@link catchCause} for recovering with access to the full cause
|
|
1205
|
+
*
|
|
1062
1206
|
* @category error handling
|
|
1063
1207
|
* @since 4.0.0
|
|
1064
1208
|
*/
|
|
@@ -1066,10 +1210,18 @@ export const catchTag = /*#__PURE__*/dual(3, (self, k, f) => fromBuildUnsafe((me
|
|
|
1066
1210
|
/**
|
|
1067
1211
|
* Recovers from any failure cause by switching to another layer.
|
|
1068
1212
|
*
|
|
1213
|
+
* **When to use**
|
|
1214
|
+
*
|
|
1215
|
+
* Use `catchCause` when recovery needs more than the typed error, such as
|
|
1216
|
+
* defects or interruption information. Use `catchTag` when recovery only needs
|
|
1217
|
+
* to match specific tagged errors.
|
|
1218
|
+
*
|
|
1069
1219
|
* **Details**
|
|
1220
|
+
*
|
|
1070
1221
|
* The handler receives the full `Cause` of the failed layer, including typed
|
|
1071
|
-
* errors, defects, and interruption information, and returns the
|
|
1072
|
-
* to build instead.
|
|
1222
|
+
* errors, unexpected defects, and interruption information, and returns the
|
|
1223
|
+
* fallback layer to build instead. Finalizers for resources acquired by the
|
|
1224
|
+
* failed layer are still run before the fallback layer is acquired.
|
|
1073
1225
|
*
|
|
1074
1226
|
* **Example** (Recovering from layer failures by cause)
|
|
1075
1227
|
*
|
|
@@ -1084,13 +1236,13 @@ export const catchTag = /*#__PURE__*/dual(3, (self, k, f) => fromBuildUnsafe((me
|
|
|
1084
1236
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1085
1237
|
* }>()("Database") {}
|
|
1086
1238
|
*
|
|
1087
|
-
* const primaryDatabaseLayer = Layer.effect(Database
|
|
1239
|
+
* const primaryDatabaseLayer = Layer.effect(Database,
|
|
1088
1240
|
* Effect.fail(new DatabaseError({ message: "Primary DB unreachable" }))
|
|
1089
1241
|
* )
|
|
1090
1242
|
*
|
|
1091
1243
|
* const databaseWithFallback = primaryDatabaseLayer.pipe(
|
|
1092
1244
|
* Layer.catchCause(() => {
|
|
1093
|
-
* return Layer.succeed(Database
|
|
1245
|
+
* return Layer.succeed(Database, {
|
|
1094
1246
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Memory: ${sql}`))
|
|
1095
1247
|
* })
|
|
1096
1248
|
* })
|
|
@@ -1108,6 +1260,8 @@ export const catchTag = /*#__PURE__*/dual(3, (self, k, f) => fromBuildUnsafe((me
|
|
|
1108
1260
|
* // Memory: SELECT * FROM users
|
|
1109
1261
|
* ```
|
|
1110
1262
|
*
|
|
1263
|
+
* @see {@link catchTag} for recovering from specific tagged errors
|
|
1264
|
+
*
|
|
1111
1265
|
* @category error handling
|
|
1112
1266
|
* @since 4.0.0
|
|
1113
1267
|
*/
|
|
@@ -1115,6 +1269,11 @@ export const catchCause = /*#__PURE__*/dual(2, (self, onError) => fromBuildUnsaf
|
|
|
1115
1269
|
/**
|
|
1116
1270
|
* Updates a service in the context with a new implementation.
|
|
1117
1271
|
*
|
|
1272
|
+
* **When to use**
|
|
1273
|
+
*
|
|
1274
|
+
* Use this to adapt or extend a service's behavior during the creation of a
|
|
1275
|
+
* layer.
|
|
1276
|
+
*
|
|
1118
1277
|
* **Details**
|
|
1119
1278
|
*
|
|
1120
1279
|
* This function modifies the existing implementation of a service in the
|
|
@@ -1122,11 +1281,6 @@ export const catchCause = /*#__PURE__*/dual(2, (self, onError) => fromBuildUnsaf
|
|
|
1122
1281
|
* transformation function `f`, and replaces the old service with the
|
|
1123
1282
|
* transformed one.
|
|
1124
1283
|
*
|
|
1125
|
-
* **When to Use**
|
|
1126
|
-
*
|
|
1127
|
-
* This is useful for adapting or extending a service's behavior during the
|
|
1128
|
-
* creation of a layer.
|
|
1129
|
-
*
|
|
1130
1284
|
* @category utils
|
|
1131
1285
|
* @since 3.13.0
|
|
1132
1286
|
*/
|
|
@@ -1134,6 +1288,13 @@ export const updateService = /*#__PURE__*/dual(3, (layer, service, f) => provide
|
|
|
1134
1288
|
/**
|
|
1135
1289
|
* Creates a fresh version of this layer that will not be shared.
|
|
1136
1290
|
*
|
|
1291
|
+
* **When to use**
|
|
1292
|
+
*
|
|
1293
|
+
* Use `fresh` when two parts of an application must receive separate instances
|
|
1294
|
+
* of a resource, such as two independent client sessions. Do not use it just to
|
|
1295
|
+
* work around confusing composition: by default, sharing the same layer value is
|
|
1296
|
+
* usually the desired behavior.
|
|
1297
|
+
*
|
|
1137
1298
|
* **Example** (Creating non-shared layer instances)
|
|
1138
1299
|
*
|
|
1139
1300
|
* ```ts
|
|
@@ -1151,12 +1312,12 @@ export const updateService = /*#__PURE__*/dual(3, (layer, service, f) => provide
|
|
|
1151
1312
|
* readonly counterId: number
|
|
1152
1313
|
* }>()("Right") {}
|
|
1153
1314
|
*
|
|
1154
|
-
* const leftLayer = Layer.effect(Left
|
|
1315
|
+
* const leftLayer = Layer.effect(Left, Effect.gen(function*() {
|
|
1155
1316
|
* const counter = yield* Counter
|
|
1156
1317
|
* return { counterId: counter.id }
|
|
1157
1318
|
* }))
|
|
1158
1319
|
*
|
|
1159
|
-
* const rightLayer = Layer.effect(Right
|
|
1320
|
+
* const rightLayer = Layer.effect(Right, Effect.gen(function*() {
|
|
1160
1321
|
* const counter = yield* Counter
|
|
1161
1322
|
* return { counterId: counter.id }
|
|
1162
1323
|
* }))
|
|
@@ -1170,7 +1331,7 @@ export const updateService = /*#__PURE__*/dual(3, (layer, service, f) => provide
|
|
|
1170
1331
|
* const program = Effect.gen(function*() {
|
|
1171
1332
|
* const nextId = yield* Ref.make(0)
|
|
1172
1333
|
*
|
|
1173
|
-
* const counterLayer = Layer.effect(Counter
|
|
1334
|
+
* const counterLayer = Layer.effect(Counter, Effect.gen(function*() {
|
|
1174
1335
|
* const id = yield* Ref.updateAndGet(nextId, (n) => n + 1)
|
|
1175
1336
|
* console.log("constructed Counter")
|
|
1176
1337
|
* return { id }
|
|
@@ -1205,8 +1366,16 @@ export const updateService = /*#__PURE__*/dual(3, (layer, service, f) => provide
|
|
|
1205
1366
|
*/
|
|
1206
1367
|
export const fresh = self => fromBuildUnsafe((_, scope) => self.build(makeMemoMapUnsafe(), scope));
|
|
1207
1368
|
/**
|
|
1208
|
-
* Builds this layer and
|
|
1209
|
-
*
|
|
1369
|
+
* Builds this layer and keeps it alive until the returned effect is interrupted.
|
|
1370
|
+
*
|
|
1371
|
+
* **When to use**
|
|
1372
|
+
*
|
|
1373
|
+
* Use this when your entire application is a layer, such as an HTTP server.
|
|
1374
|
+
*
|
|
1375
|
+
* **Details**
|
|
1376
|
+
*
|
|
1377
|
+
* When the returned effect is interrupted, the layer scope is closed and all
|
|
1378
|
+
* finalizers registered during layer acquisition are run.
|
|
1210
1379
|
*
|
|
1211
1380
|
* **Example** (Launching an application layer)
|
|
1212
1381
|
*
|
|
@@ -1223,7 +1392,7 @@ export const fresh = self => fromBuildUnsafe((_, scope) => self.build(makeMemoMa
|
|
|
1223
1392
|
* }>()("Logger") {}
|
|
1224
1393
|
*
|
|
1225
1394
|
* // Server layer that starts an HTTP server
|
|
1226
|
-
* const serverLayer = Layer.effect(HttpServer
|
|
1395
|
+
* const serverLayer = Layer.effect(HttpServer, Effect.gen(function*() {
|
|
1227
1396
|
* yield* Console.log("Starting HTTP server...")
|
|
1228
1397
|
*
|
|
1229
1398
|
* return {
|
|
@@ -1238,7 +1407,7 @@ export const fresh = self => fromBuildUnsafe((_, scope) => self.build(makeMemoMa
|
|
|
1238
1407
|
* }
|
|
1239
1408
|
* }))
|
|
1240
1409
|
*
|
|
1241
|
-
* const loggerLayer = Layer.succeed(Logger
|
|
1410
|
+
* const loggerLayer = Layer.succeed(Logger, {
|
|
1242
1411
|
* log: Effect.fn("Logger.log")((msg: string) => Console.log(`[LOG] ${msg}`))
|
|
1243
1412
|
* })
|
|
1244
1413
|
*
|
|
@@ -1262,8 +1431,16 @@ export const fresh = self => fromBuildUnsafe((_, scope) => self.build(makeMemoMa
|
|
|
1262
1431
|
export const launch = self => internalEffect.scoped(internalEffect.andThen(build(self), internalEffect.never));
|
|
1263
1432
|
/**
|
|
1264
1433
|
* Creates a mock layer for testing purposes. You can provide a partial
|
|
1265
|
-
* implementation of the service
|
|
1266
|
-
*
|
|
1434
|
+
* implementation of the service. Any missing members that are `Effect`s,
|
|
1435
|
+
* `Stream`s, `Channel`s, or functions returning them will fail with an
|
|
1436
|
+
* unimplemented defect when used.
|
|
1437
|
+
*
|
|
1438
|
+
* **Details**
|
|
1439
|
+
*
|
|
1440
|
+
* Missing members are represented by a value that can be used as an `Effect`,
|
|
1441
|
+
* `Stream`, `Channel`, or as a function returning an `Effect`. This lets the
|
|
1442
|
+
* mock preserve the shape of common service methods while still failing loudly
|
|
1443
|
+
* when an unimplemented member is exercised.
|
|
1267
1444
|
*
|
|
1268
1445
|
* **Example** (Mocking services for tests)
|
|
1269
1446
|
*
|
|
@@ -1304,7 +1481,7 @@ export const launch = self => internalEffect.scoped(internalEffect.andThen(build
|
|
|
1304
1481
|
* )
|
|
1305
1482
|
* ```
|
|
1306
1483
|
*
|
|
1307
|
-
* @category
|
|
1484
|
+
* @category testing
|
|
1308
1485
|
* @since 3.17.0
|
|
1309
1486
|
*/
|
|
1310
1487
|
export const mock = function () {
|
|
@@ -1356,10 +1533,12 @@ const ChannelTypeId = "~effect/Channel";
|
|
|
1356
1533
|
// Type constraints
|
|
1357
1534
|
// -----------------------------------------------------------------------------
|
|
1358
1535
|
/**
|
|
1359
|
-
* Ensures that
|
|
1536
|
+
* Ensures that a layer's success type extends a given type `ROut`.
|
|
1537
|
+
*
|
|
1538
|
+
* **Details**
|
|
1360
1539
|
*
|
|
1361
1540
|
* This function provides compile-time type checking to ensure that the success
|
|
1362
|
-
* value of
|
|
1541
|
+
* value of a layer conforms to a specific type constraint.
|
|
1363
1542
|
*
|
|
1364
1543
|
* **Example** (Constraining layer success types)
|
|
1365
1544
|
*
|
|
@@ -1381,15 +1560,17 @@ const ChannelTypeId = "~effect/Channel";
|
|
|
1381
1560
|
* // Type 'string' is not assignable to type 'number'
|
|
1382
1561
|
* ```
|
|
1383
1562
|
*
|
|
1384
|
-
* @category
|
|
1563
|
+
* @category utility types
|
|
1385
1564
|
* @since 4.0.0
|
|
1386
1565
|
*/
|
|
1387
1566
|
export const satisfiesSuccessType = () => layer => layer;
|
|
1388
1567
|
/**
|
|
1389
|
-
* Ensures that
|
|
1568
|
+
* Ensures that a layer's error type extends a given type `E`.
|
|
1569
|
+
*
|
|
1570
|
+
* **Details**
|
|
1390
1571
|
*
|
|
1391
1572
|
* This function provides compile-time type checking to ensure that the error
|
|
1392
|
-
* type of
|
|
1573
|
+
* type of a layer conforms to a specific type constraint.
|
|
1393
1574
|
*
|
|
1394
1575
|
* **Example** (Constraining layer error types)
|
|
1395
1576
|
*
|
|
@@ -1412,15 +1593,17 @@ export const satisfiesSuccessType = () => layer => layer;
|
|
|
1412
1593
|
* // Type 'string' is not assignable to type 'Error'
|
|
1413
1594
|
* ```
|
|
1414
1595
|
*
|
|
1415
|
-
* @category
|
|
1596
|
+
* @category utility types
|
|
1416
1597
|
* @since 4.0.0
|
|
1417
1598
|
*/
|
|
1418
1599
|
export const satisfiesErrorType = () => layer => layer;
|
|
1419
1600
|
/**
|
|
1420
|
-
* Ensures that
|
|
1601
|
+
* Ensures that a layer's requirements type extends a given type `R`.
|
|
1602
|
+
*
|
|
1603
|
+
* **Details**
|
|
1421
1604
|
*
|
|
1422
1605
|
* This function provides compile-time type checking to ensure that the
|
|
1423
|
-
* requirements
|
|
1606
|
+
* requirements type of a layer conforms to a specific type constraint.
|
|
1424
1607
|
*
|
|
1425
1608
|
* **Example** (Constraining layer service requirements)
|
|
1426
1609
|
*
|
|
@@ -1442,7 +1625,7 @@ export const satisfiesErrorType = () => layer => layer;
|
|
|
1442
1625
|
* // Type 'string' is not assignable to type 'number'
|
|
1443
1626
|
* ```
|
|
1444
1627
|
*
|
|
1445
|
-
* @category
|
|
1628
|
+
* @category utility types
|
|
1446
1629
|
* @since 4.0.0
|
|
1447
1630
|
*/
|
|
1448
1631
|
export const satisfiesServicesType = () => layer => layer;
|
|
@@ -1450,9 +1633,13 @@ export const satisfiesServicesType = () => layer => layer;
|
|
|
1450
1633
|
* Constructs a new `Layer` which creates a span and registers it as the current
|
|
1451
1634
|
* parent span.
|
|
1452
1635
|
*
|
|
1636
|
+
* **Details**
|
|
1637
|
+
*
|
|
1453
1638
|
* This allows you to create a traced scope for layer construction, making all
|
|
1454
1639
|
* operations within the layer constructor part of the same trace span. The span
|
|
1455
|
-
* is automatically
|
|
1640
|
+
* is automatically ended when the layer's scope is closed. If `onEnd` is
|
|
1641
|
+
* provided, it receives the span and the layer scope's exit value when the span
|
|
1642
|
+
* ends.
|
|
1456
1643
|
*
|
|
1457
1644
|
* **Example** (Tracing layer construction with a span)
|
|
1458
1645
|
*
|
|
@@ -1501,6 +1688,7 @@ export const span = (name, options) => {
|
|
|
1501
1688
|
* Constructs a layer that provides an existing span as the current parent span.
|
|
1502
1689
|
*
|
|
1503
1690
|
* **Details**
|
|
1691
|
+
*
|
|
1504
1692
|
* The supplied span is made available through `Tracer.ParentSpan` for layers
|
|
1505
1693
|
* that are built with this layer. This API does not create, end, or close the
|
|
1506
1694
|
* span; the caller remains responsible for the span's lifetime.
|
|
@@ -1538,9 +1726,11 @@ export const span = (name, options) => {
|
|
|
1538
1726
|
*/
|
|
1539
1727
|
export const parentSpan = span => succeedContext(Tracer.ParentSpan.context(span));
|
|
1540
1728
|
/**
|
|
1541
|
-
* Wraps a Layer with a new tracing span, making all operations in the layer
|
|
1729
|
+
* Wraps a `Layer` with a new tracing span, making all operations in the layer
|
|
1542
1730
|
* constructor part of the named trace span.
|
|
1543
1731
|
*
|
|
1732
|
+
* **Details**
|
|
1733
|
+
*
|
|
1544
1734
|
* This creates a new span for the layer's construction and execution. The span
|
|
1545
1735
|
* is automatically ended when the layer's scope is closed. This is useful for
|
|
1546
1736
|
* tracking the lifecycle and performance of layer initialization.
|
|
@@ -1589,8 +1779,7 @@ export const parentSpan = span => succeedContext(Tracer.ParentSpan.context(span)
|
|
|
1589
1779
|
*
|
|
1590
1780
|
* yield* logger.log("Application ready")
|
|
1591
1781
|
* return yield* database.query("SELECT * FROM users")
|
|
1592
|
-
* }).pipe(Effect.provide(appLayer)
|
|
1593
|
-
* )
|
|
1782
|
+
* }).pipe(Effect.provide(appLayer))
|
|
1594
1783
|
* ```
|
|
1595
1784
|
*
|
|
1596
1785
|
* @category tracing
|
|
@@ -1611,9 +1800,15 @@ export const withSpan = function () {
|
|
|
1611
1800
|
* as their parent.
|
|
1612
1801
|
*
|
|
1613
1802
|
* **Details**
|
|
1803
|
+
*
|
|
1614
1804
|
* Use this to attach layer construction to an existing trace hierarchy. This API
|
|
1615
1805
|
* does not create or end the supplied parent span.
|
|
1616
1806
|
*
|
|
1807
|
+
* When the supplied span is a native `Span`, layer construction also receives
|
|
1808
|
+
* diagnostic information that helps associate failures with the layer call site.
|
|
1809
|
+
* External spans are only installed as the parent span and do not add this
|
|
1810
|
+
* diagnostic call-site information.
|
|
1811
|
+
*
|
|
1617
1812
|
* **Example** (Attaching layers to an existing parent span)
|
|
1618
1813
|
*
|
|
1619
1814
|
* ```ts
|