effect 4.0.0-beta.74 → 4.0.0-beta.75
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 +729 -611
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +273 -213
- package/dist/Array.js.map +1 -1
- package/dist/BigDecimal.d.ts +37 -30
- package/dist/BigDecimal.d.ts.map +1 -1
- package/dist/BigDecimal.js +19 -16
- package/dist/BigDecimal.js.map +1 -1
- package/dist/BigInt.d.ts +34 -40
- package/dist/BigInt.d.ts.map +1 -1
- package/dist/BigInt.js +16 -16
- package/dist/BigInt.js.map +1 -1
- package/dist/Boolean.d.ts +8 -8
- package/dist/Boolean.js +4 -4
- package/dist/Brand.d.ts +13 -11
- package/dist/Brand.d.ts.map +1 -1
- package/dist/Brand.js +10 -8
- package/dist/Brand.js.map +1 -1
- package/dist/Cause.d.ts +21 -23
- package/dist/Cause.d.ts.map +1 -1
- package/dist/Cause.js +21 -23
- package/dist/Cause.js.map +1 -1
- package/dist/Channel.d.ts +219 -9
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +83 -3
- package/dist/Channel.js.map +1 -1
- package/dist/ChannelSchema.d.ts +11 -11
- package/dist/ChannelSchema.js +5 -5
- package/dist/Chunk.d.ts +69 -16
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +43 -8
- package/dist/Chunk.js.map +1 -1
- package/dist/Clock.d.ts +3 -3
- package/dist/Clock.js +3 -3
- package/dist/Combiner.d.ts +9 -13
- package/dist/Combiner.d.ts.map +1 -1
- package/dist/Combiner.js +9 -13
- package/dist/Combiner.js.map +1 -1
- package/dist/Config.d.ts +49 -56
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +40 -43
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts +34 -44
- package/dist/ConfigProvider.d.ts.map +1 -1
- package/dist/ConfigProvider.js +24 -32
- package/dist/ConfigProvider.js.map +1 -1
- package/dist/Console.d.ts +2 -2
- package/dist/Console.js +2 -2
- package/dist/Context.d.ts +60 -72
- package/dist/Context.d.ts.map +1 -1
- package/dist/Context.js +28 -32
- package/dist/Context.js.map +1 -1
- package/dist/Cron.d.ts +2 -2
- package/dist/Cron.js +2 -2
- package/dist/Crypto.d.ts +4 -4
- package/dist/Crypto.js +4 -4
- package/dist/Data.d.ts +21 -15
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js +7 -7
- package/dist/Data.js.map +1 -1
- package/dist/DateTime.d.ts +35 -16
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +35 -8
- package/dist/DateTime.js.map +1 -1
- package/dist/Deferred.d.ts +24 -15
- package/dist/Deferred.d.ts.map +1 -1
- package/dist/Deferred.js +8 -5
- package/dist/Deferred.js.map +1 -1
- package/dist/Duration.d.ts +44 -31
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +22 -11
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +516 -416
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +234 -174
- package/dist/Effect.js.map +1 -1
- package/dist/Encoding.d.ts +5 -0
- package/dist/Encoding.d.ts.map +1 -1
- package/dist/Encoding.js +5 -0
- package/dist/Encoding.js.map +1 -1
- package/dist/Equal.d.ts +26 -39
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +10 -17
- package/dist/Equal.js.map +1 -1
- package/dist/Equivalence.d.ts +71 -99
- package/dist/Equivalence.d.ts.map +1 -1
- package/dist/Equivalence.js +53 -73
- package/dist/Equivalence.js.map +1 -1
- package/dist/ErrorReporter.d.ts +1 -1
- package/dist/ErrorReporter.js +1 -1
- package/dist/Exit.d.ts +79 -96
- package/dist/Exit.d.ts.map +1 -1
- package/dist/Exit.js +57 -64
- package/dist/Exit.js.map +1 -1
- package/dist/Fiber.d.ts +8 -6
- package/dist/Fiber.d.ts.map +1 -1
- package/dist/Fiber.js +8 -6
- package/dist/Fiber.js.map +1 -1
- package/dist/FiberHandle.d.ts +25 -0
- package/dist/FiberHandle.d.ts.map +1 -1
- package/dist/FiberHandle.js +15 -0
- package/dist/FiberHandle.js.map +1 -1
- package/dist/FiberMap.d.ts +35 -0
- package/dist/FiberMap.d.ts.map +1 -1
- package/dist/FiberMap.js +15 -0
- package/dist/FiberMap.js.map +1 -1
- package/dist/FiberSet.d.ts +20 -0
- package/dist/FiberSet.d.ts.map +1 -1
- package/dist/FiberSet.js +10 -0
- package/dist/FiberSet.js.map +1 -1
- package/dist/Filter.d.ts +4 -4
- package/dist/Filter.js +4 -4
- package/dist/Formatter.d.ts +14 -19
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +14 -19
- package/dist/Formatter.js.map +1 -1
- package/dist/Function.d.ts +15 -16
- package/dist/Function.d.ts.map +1 -1
- package/dist/Function.js +9 -10
- package/dist/Function.js.map +1 -1
- package/dist/Graph.d.ts +2 -2
- package/dist/Graph.js +2 -2
- package/dist/HKT.d.ts +2 -2
- package/dist/Hash.d.ts +2 -1
- package/dist/Hash.d.ts.map +1 -1
- package/dist/Hash.js +2 -1
- package/dist/Hash.js.map +1 -1
- package/dist/HashMap.d.ts +15 -0
- package/dist/HashMap.d.ts.map +1 -1
- package/dist/HashMap.js +5 -0
- package/dist/HashMap.js.map +1 -1
- package/dist/HashRing.d.ts +9 -9
- package/dist/HashRing.js +3 -3
- package/dist/Iterable.d.ts +24 -12
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +16 -6
- package/dist/Iterable.js.map +1 -1
- package/dist/JsonPatch.d.ts +2 -3
- package/dist/JsonPatch.d.ts.map +1 -1
- package/dist/JsonPatch.js +2 -3
- package/dist/JsonPatch.js.map +1 -1
- package/dist/JsonPointer.d.ts +2 -6
- package/dist/JsonPointer.d.ts.map +1 -1
- package/dist/JsonPointer.js +2 -6
- package/dist/JsonPointer.js.map +1 -1
- package/dist/JsonSchema.d.ts +17 -13
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +17 -13
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Latch.d.ts +4 -3
- package/dist/Latch.d.ts.map +1 -1
- package/dist/Latch.js +4 -3
- package/dist/Latch.js.map +1 -1
- package/dist/Layer.d.ts +92 -114
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +38 -46
- package/dist/Layer.js.map +1 -1
- package/dist/Logger.d.ts +11 -14
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js +11 -14
- package/dist/Logger.js.map +1 -1
- package/dist/Match.d.ts +2 -2
- package/dist/Match.js +2 -2
- package/dist/Metric.d.ts +89 -109
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +51 -61
- package/dist/Metric.js.map +1 -1
- package/dist/MutableHashMap.d.ts +21 -12
- package/dist/MutableHashMap.d.ts.map +1 -1
- package/dist/MutableHashMap.js +7 -4
- package/dist/MutableHashMap.js.map +1 -1
- package/dist/MutableList.d.ts +15 -0
- package/dist/MutableList.d.ts.map +1 -1
- package/dist/MutableList.js +15 -0
- package/dist/MutableList.js.map +1 -1
- package/dist/MutableRef.d.ts +56 -42
- package/dist/MutableRef.d.ts.map +1 -1
- package/dist/MutableRef.js +28 -22
- package/dist/MutableRef.js.map +1 -1
- package/dist/Newtype.d.ts +10 -7
- package/dist/Newtype.d.ts.map +1 -1
- package/dist/Newtype.js +10 -7
- package/dist/Newtype.js.map +1 -1
- package/dist/Number.d.ts +23 -11
- package/dist/Number.d.ts.map +1 -1
- package/dist/Number.js +9 -5
- package/dist/Number.js.map +1 -1
- package/dist/Optic.d.ts +16 -16
- package/dist/Optic.d.ts.map +1 -1
- package/dist/Optic.js +10 -9
- package/dist/Optic.js.map +1 -1
- package/dist/Option.d.ts +196 -168
- package/dist/Option.d.ts.map +1 -1
- package/dist/Option.js +96 -79
- package/dist/Option.js.map +1 -1
- package/dist/Order.d.ts +118 -179
- package/dist/Order.d.ts.map +1 -1
- package/dist/Order.js +92 -144
- package/dist/Order.js.map +1 -1
- package/dist/PartitionedSemaphore.d.ts +14 -14
- package/dist/PartitionedSemaphore.js +6 -6
- package/dist/Path.d.ts +2 -2
- package/dist/Path.js +2 -2
- package/dist/Pipeable.d.ts +2 -2
- package/dist/Pipeable.js +2 -2
- package/dist/PlatformError.d.ts +4 -4
- package/dist/PlatformError.js +4 -4
- package/dist/Pool.d.ts +7 -11
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +3 -5
- package/dist/Pool.js.map +1 -1
- package/dist/Predicate.d.ts +274 -263
- package/dist/Predicate.d.ts.map +1 -1
- package/dist/Predicate.js +128 -123
- package/dist/Predicate.js.map +1 -1
- package/dist/PubSub.d.ts +24 -14
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +16 -6
- package/dist/PubSub.js.map +1 -1
- package/dist/Pull.d.ts +4 -4
- package/dist/Pull.js +4 -4
- package/dist/Queue.d.ts +46 -7
- package/dist/Queue.d.ts.map +1 -1
- package/dist/Queue.js +46 -7
- package/dist/Queue.js.map +1 -1
- package/dist/RcRef.d.ts +0 -4
- package/dist/RcRef.d.ts.map +1 -1
- package/dist/RcRef.js.map +1 -1
- package/dist/Redactable.d.ts +2 -2
- package/dist/Redactable.js +2 -2
- package/dist/Redacted.d.ts +3 -3
- package/dist/Redacted.js +3 -3
- package/dist/Reducer.d.ts +2 -3
- package/dist/Reducer.d.ts.map +1 -1
- package/dist/Reducer.js +2 -3
- package/dist/Reducer.js.map +1 -1
- package/dist/Ref.d.ts +17 -16
- package/dist/Ref.d.ts.map +1 -1
- package/dist/Ref.js +15 -14
- package/dist/Ref.js.map +1 -1
- package/dist/References.d.ts +4 -4
- package/dist/References.js +4 -4
- package/dist/Request.d.ts +18 -18
- package/dist/Request.js +6 -6
- package/dist/Resource.d.ts +2 -2
- package/dist/Resource.js +2 -2
- package/dist/Result.d.ts +77 -33
- package/dist/Result.d.ts.map +1 -1
- package/dist/Result.js +42 -19
- package/dist/Result.js.map +1 -1
- package/dist/Runtime.d.ts +11 -8
- package/dist/Runtime.d.ts.map +1 -1
- package/dist/Runtime.js +11 -8
- package/dist/Runtime.js.map +1 -1
- package/dist/Schedule.d.ts +107 -45
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +41 -29
- package/dist/Schedule.js.map +1 -1
- package/dist/Scheduler.d.ts +6 -4
- package/dist/Scheduler.d.ts.map +1 -1
- package/dist/Scheduler.js +6 -4
- package/dist/Scheduler.js.map +1 -1
- package/dist/Schema.d.ts +443 -371
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +518 -427
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +42 -21
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +80 -59
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaGetter.d.ts +126 -106
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +121 -101
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaIssue.d.ts +37 -39
- package/dist/SchemaIssue.d.ts.map +1 -1
- package/dist/SchemaIssue.js +16 -17
- package/dist/SchemaIssue.js.map +1 -1
- package/dist/SchemaParser.d.ts +72 -153
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +72 -145
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +30 -21
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +26 -22
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +169 -145
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +183 -159
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/SchemaUtils.js +2 -2
- package/dist/SchemaUtils.js.map +1 -1
- package/dist/Scope.d.ts +15 -0
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +15 -0
- package/dist/Scope.js.map +1 -1
- package/dist/ScopedCache.d.ts +1 -1
- package/dist/ScopedCache.js +1 -1
- package/dist/ScopedRef.d.ts +14 -18
- package/dist/ScopedRef.d.ts.map +1 -1
- package/dist/ScopedRef.js +6 -8
- package/dist/ScopedRef.js.map +1 -1
- package/dist/Semaphore.d.ts +9 -9
- package/dist/Semaphore.js +3 -3
- package/dist/Sink.d.ts +13 -13
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +9 -9
- package/dist/Sink.js.map +1 -1
- package/dist/Stdio.d.ts +4 -5
- package/dist/Stdio.d.ts.map +1 -1
- package/dist/Stdio.js +4 -5
- package/dist/Stdio.js.map +1 -1
- package/dist/Stream.d.ts +321 -44
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +137 -22
- package/dist/Stream.js.map +1 -1
- package/dist/String.d.ts +6 -9
- package/dist/String.d.ts.map +1 -1
- package/dist/String.js +2 -3
- package/dist/String.js.map +1 -1
- package/dist/Struct.d.ts +15 -13
- package/dist/Struct.d.ts.map +1 -1
- package/dist/Struct.js +11 -9
- package/dist/Struct.js.map +1 -1
- package/dist/SubscriptionRef.d.ts +24 -19
- package/dist/SubscriptionRef.d.ts.map +1 -1
- package/dist/SubscriptionRef.js +12 -7
- package/dist/SubscriptionRef.js.map +1 -1
- package/dist/SynchronizedRef.d.ts +88 -63
- package/dist/SynchronizedRef.d.ts.map +1 -1
- package/dist/SynchronizedRef.js +32 -23
- package/dist/SynchronizedRef.js.map +1 -1
- package/dist/Tracer.d.ts +4 -4
- package/dist/Tracer.js +4 -4
- package/dist/Trie.d.ts +15 -0
- package/dist/Trie.d.ts.map +1 -1
- package/dist/Trie.js +5 -0
- package/dist/Trie.js.map +1 -1
- package/dist/Tuple.d.ts +25 -19
- package/dist/Tuple.d.ts.map +1 -1
- package/dist/Tuple.js +17 -13
- package/dist/Tuple.js.map +1 -1
- package/dist/TxReentrantLock.d.ts +6 -3
- package/dist/TxReentrantLock.d.ts.map +1 -1
- package/dist/TxReentrantLock.js +2 -1
- package/dist/TxReentrantLock.js.map +1 -1
- package/dist/TxRef.d.ts +16 -16
- package/dist/TxRef.js +8 -8
- package/dist/TxSubscriptionRef.d.ts +43 -27
- package/dist/TxSubscriptionRef.d.ts.map +1 -1
- package/dist/TxSubscriptionRef.js +19 -13
- package/dist/TxSubscriptionRef.js.map +1 -1
- package/dist/Types.d.ts +12 -38
- package/dist/Types.d.ts.map +1 -1
- package/dist/Types.js +0 -2
- package/dist/UndefinedOr.d.ts +15 -14
- package/dist/UndefinedOr.d.ts.map +1 -1
- package/dist/UndefinedOr.js +11 -10
- package/dist/UndefinedOr.js.map +1 -1
- package/dist/Unify.d.ts +2 -2
- package/dist/internal/schema/annotations.js.map +1 -1
- package/dist/internal/schema/arbitrary.js +9 -9
- package/dist/internal/schema/arbitrary.js.map +1 -1
- package/dist/internal/schema/equivalence.js +9 -9
- package/dist/internal/schema/equivalence.js.map +1 -1
- package/dist/internal/schema/representation.js +14 -14
- package/dist/internal/schema/representation.js.map +1 -1
- package/dist/internal/schema/schema.js +11 -11
- package/dist/internal/schema/schema.js.map +1 -1
- package/dist/testing/TestSchema.d.ts +10 -10
- package/dist/testing/TestSchema.d.ts.map +1 -1
- package/dist/testing/TestSchema.js +9 -9
- package/dist/testing/TestSchema.js.map +1 -1
- package/dist/unstable/ai/AiError.d.ts +4 -2
- package/dist/unstable/ai/AiError.d.ts.map +1 -1
- package/dist/unstable/ai/AiError.js +4 -2
- package/dist/unstable/ai/AiError.js.map +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.d.ts +17 -20
- package/dist/unstable/ai/AnthropicStructuredOutput.d.ts.map +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.js +36 -39
- package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
- package/dist/unstable/ai/Chat.d.ts +4 -5
- package/dist/unstable/ai/Chat.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.js +4 -5
- package/dist/unstable/ai/Chat.js.map +1 -1
- package/dist/unstable/ai/EmbeddingModel.d.ts +4 -4
- package/dist/unstable/ai/EmbeddingModel.js +4 -4
- package/dist/unstable/ai/IdGenerator.d.ts +2 -3
- package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
- package/dist/unstable/ai/IdGenerator.js +2 -3
- package/dist/unstable/ai/IdGenerator.js.map +1 -1
- package/dist/unstable/ai/LanguageModel.d.ts +3 -2
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/LanguageModel.js +5 -4
- package/dist/unstable/ai/LanguageModel.js.map +1 -1
- package/dist/unstable/ai/McpSchema.d.ts +14 -12
- package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
- package/dist/unstable/ai/McpSchema.js +19 -17
- package/dist/unstable/ai/McpSchema.js.map +1 -1
- package/dist/unstable/ai/McpServer.d.ts +11 -4
- package/dist/unstable/ai/McpServer.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.js +8 -5
- package/dist/unstable/ai/McpServer.js.map +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.d.ts +20 -18
- package/dist/unstable/ai/OpenAiStructuredOutput.d.ts.map +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.js +45 -43
- package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
- package/dist/unstable/ai/Prompt.d.ts +2 -2
- package/dist/unstable/ai/Prompt.js +3 -3
- package/dist/unstable/ai/Prompt.js.map +1 -1
- package/dist/unstable/ai/ResponseIdTracker.d.ts +3 -2
- package/dist/unstable/ai/ResponseIdTracker.d.ts.map +1 -1
- package/dist/unstable/ai/ResponseIdTracker.js +3 -2
- package/dist/unstable/ai/ResponseIdTracker.js.map +1 -1
- package/dist/unstable/ai/Telemetry.d.ts +21 -6
- package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
- package/dist/unstable/ai/Telemetry.js +7 -2
- package/dist/unstable/ai/Telemetry.js.map +1 -1
- package/dist/unstable/ai/Tool.d.ts +7 -6
- package/dist/unstable/ai/Tool.d.ts.map +1 -1
- package/dist/unstable/ai/Tool.js +8 -7
- package/dist/unstable/ai/Tool.js.map +1 -1
- package/dist/unstable/ai/Toolkit.d.ts +2 -2
- package/dist/unstable/ai/Toolkit.js +2 -2
- package/dist/unstable/cli/Command.d.ts +37 -16
- package/dist/unstable/cli/Command.d.ts.map +1 -1
- package/dist/unstable/cli/Command.js +15 -8
- package/dist/unstable/cli/Command.js.map +1 -1
- package/dist/unstable/cli/Completions.d.ts +1 -1
- package/dist/unstable/cli/Completions.js +1 -1
- package/dist/unstable/cli/Flag.d.ts +7 -6
- package/dist/unstable/cli/Flag.d.ts.map +1 -1
- package/dist/unstable/cli/Flag.js +7 -6
- package/dist/unstable/cli/Flag.js.map +1 -1
- package/dist/unstable/cli/GlobalFlag.d.ts +6 -1
- package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -1
- package/dist/unstable/cli/GlobalFlag.js +7 -2
- package/dist/unstable/cli/GlobalFlag.js.map +1 -1
- package/dist/unstable/cli/Param.d.ts +3 -3
- package/dist/unstable/cli/Param.d.ts.map +1 -1
- package/dist/unstable/cli/Param.js +13 -10
- package/dist/unstable/cli/Param.js.map +1 -1
- package/dist/unstable/cli/Primitive.d.ts +3 -2
- package/dist/unstable/cli/Primitive.d.ts.map +1 -1
- package/dist/unstable/cli/Primitive.js +3 -2
- package/dist/unstable/cli/Primitive.js.map +1 -1
- package/dist/unstable/cluster/ClusterCron.d.ts +1 -2
- package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterCron.js.map +1 -1
- package/dist/unstable/cluster/ClusterMetrics.d.ts +5 -0
- package/dist/unstable/cluster/ClusterMetrics.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterMetrics.js +5 -0
- package/dist/unstable/cluster/ClusterMetrics.js.map +1 -1
- package/dist/unstable/cluster/ClusterSchema.d.ts +3 -3
- package/dist/unstable/cluster/ClusterSchema.js +3 -3
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +15 -15
- package/dist/unstable/cluster/ClusterWorkflowEngine.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 +10 -0
- package/dist/unstable/cluster/EntityResource.js.map +1 -1
- package/dist/unstable/cluster/Envelope.d.ts +2 -2
- package/dist/unstable/cluster/Envelope.d.ts.map +1 -1
- package/dist/unstable/cluster/Envelope.js +2 -2
- package/dist/unstable/cluster/Envelope.js.map +1 -1
- package/dist/unstable/cluster/Reply.d.ts +2 -2
- package/dist/unstable/cluster/Reply.d.ts.map +1 -1
- package/dist/unstable/cluster/Reply.js +12 -12
- package/dist/unstable/cluster/Reply.js.map +1 -1
- package/dist/unstable/cluster/RunnerHealth.d.ts +2 -1
- package/dist/unstable/cluster/RunnerHealth.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerHealth.js +2 -1
- package/dist/unstable/cluster/RunnerHealth.js.map +1 -1
- package/dist/unstable/cluster/RunnerServer.d.ts +2 -2
- package/dist/unstable/cluster/RunnerServer.js +2 -2
- package/dist/unstable/cluster/Runners.d.ts +3 -3
- package/dist/unstable/cluster/Runners.js +3 -3
- package/dist/unstable/cluster/ShardId.js +3 -3
- package/dist/unstable/cluster/ShardId.js.map +1 -1
- package/dist/unstable/cluster/Sharding.d.ts +3 -3
- package/dist/unstable/cluster/Sharding.js +3 -3
- package/dist/unstable/cluster/ShardingConfig.d.ts +4 -4
- package/dist/unstable/cluster/ShardingConfig.js +4 -4
- package/dist/unstable/cluster/Snowflake.d.ts +1 -1
- package/dist/unstable/cluster/Snowflake.js +3 -3
- package/dist/unstable/cluster/Snowflake.js.map +1 -1
- package/dist/unstable/cluster/internal/entityManager.js +2 -2
- package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
- package/dist/unstable/encoding/Msgpack.d.ts +2 -2
- package/dist/unstable/encoding/Msgpack.d.ts.map +1 -1
- package/dist/unstable/encoding/Msgpack.js +5 -5
- package/dist/unstable/encoding/Msgpack.js.map +1 -1
- package/dist/unstable/encoding/Ndjson.d.ts +5 -0
- package/dist/unstable/encoding/Ndjson.d.ts.map +1 -1
- package/dist/unstable/encoding/Ndjson.js +5 -0
- package/dist/unstable/encoding/Ndjson.js.map +1 -1
- package/dist/unstable/encoding/Sse.d.ts +2 -2
- package/dist/unstable/encoding/Sse.d.ts.map +1 -1
- package/dist/unstable/encoding/Sse.js +2 -2
- package/dist/unstable/encoding/Sse.js.map +1 -1
- package/dist/unstable/eventlog/EventGroup.d.ts +2 -1
- package/dist/unstable/eventlog/EventGroup.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventGroup.js +2 -1
- package/dist/unstable/eventlog/EventGroup.js.map +1 -1
- package/dist/unstable/eventlog/EventJournal.d.ts +10 -0
- package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventJournal.js +10 -0
- package/dist/unstable/eventlog/EventJournal.js.map +1 -1
- package/dist/unstable/eventlog/EventLog.d.ts +3 -3
- package/dist/unstable/eventlog/EventLog.js +3 -3
- package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +2 -3
- package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServerEncrypted.js +2 -3
- package/dist/unstable/eventlog/EventLogServerEncrypted.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +5 -7
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js +5 -7
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -1
- package/dist/unstable/eventlog/EventLogSessionAuth.d.ts +4 -4
- package/dist/unstable/eventlog/EventLogSessionAuth.js +4 -4
- package/dist/unstable/http/Cookies.js +4 -4
- package/dist/unstable/http/Cookies.js.map +1 -1
- package/dist/unstable/http/Etag.d.ts +2 -3
- package/dist/unstable/http/Etag.d.ts.map +1 -1
- package/dist/unstable/http/Etag.js +2 -3
- package/dist/unstable/http/Etag.js.map +1 -1
- package/dist/unstable/http/Headers.js +2 -2
- package/dist/unstable/http/Headers.js.map +1 -1
- package/dist/unstable/http/HttpBody.js +2 -2
- package/dist/unstable/http/HttpBody.js.map +1 -1
- package/dist/unstable/http/HttpClient.d.ts +2 -2
- package/dist/unstable/http/HttpClient.js +2 -2
- package/dist/unstable/http/HttpClientRequest.d.ts +30 -3
- package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.js +10 -1
- package/dist/unstable/http/HttpClientRequest.js.map +1 -1
- package/dist/unstable/http/HttpRouter.d.ts +1 -1
- package/dist/unstable/http/HttpRouter.js +1 -1
- package/dist/unstable/http/HttpServerResponse.d.ts +25 -20
- package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerResponse.js +13 -8
- package/dist/unstable/http/HttpServerResponse.js.map +1 -1
- package/dist/unstable/http/Multipart.js +3 -3
- package/dist/unstable/http/Multipart.js.map +1 -1
- package/dist/unstable/http/UrlParams.d.ts +30 -0
- package/dist/unstable/http/UrlParams.d.ts.map +1 -1
- package/dist/unstable/http/UrlParams.js +16 -6
- package/dist/unstable/http/UrlParams.js.map +1 -1
- package/dist/unstable/httpapi/HttpApi.d.ts +3 -2
- package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApi.js +3 -2
- package/dist/unstable/httpapi/HttpApi.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js +10 -8
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.js +15 -15
- package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +3 -3
- package/dist/unstable/httpapi/HttpApiMiddleware.js +3 -3
- package/dist/unstable/httpapi/HttpApiSchema.d.ts +2 -2
- package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.js +9 -9
- package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
- package/dist/unstable/httpapi/OpenApi.js +11 -11
- package/dist/unstable/httpapi/OpenApi.js.map +1 -1
- package/dist/unstable/observability/OtlpResource.d.ts +5 -0
- package/dist/unstable/observability/OtlpResource.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpResource.js +5 -0
- package/dist/unstable/observability/OtlpResource.js.map +1 -1
- package/dist/unstable/observability/PrometheusMetrics.d.ts +4 -2
- package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/PrometheusMetrics.js +4 -2
- package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts +3 -3
- package/dist/unstable/reactivity/Atom.js +3 -3
- package/dist/unstable/rpc/RpcSchema.d.ts +2 -2
- package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.d.ts +2 -2
- package/dist/unstable/rpc/RpcSerialization.js +2 -2
- package/dist/unstable/schema/Model.js +5 -5
- package/dist/unstable/schema/Model.js.map +1 -1
- package/dist/unstable/schema/VariantSchema.d.ts +2 -2
- package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
- package/dist/unstable/sql/SqlSchema.d.ts +4 -4
- package/dist/unstable/sql/SqlSchema.js +4 -4
- package/dist/unstable/workers/Transferable.d.ts +2 -2
- package/dist/unstable/workers/Transferable.d.ts.map +1 -1
- package/dist/unstable/workers/Transferable.js +5 -5
- package/dist/unstable/workers/Transferable.js.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.js +7 -7
- package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
- package/dist/unstable/workflow/DurableQueue.d.ts +1 -2
- package/dist/unstable/workflow/DurableQueue.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableQueue.js +1 -2
- package/dist/unstable/workflow/DurableQueue.js.map +1 -1
- package/dist/unstable/workflow/Workflow.d.ts +35 -15
- package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
- package/dist/unstable/workflow/Workflow.js +94 -72
- package/dist/unstable/workflow/Workflow.js.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts +10 -2
- package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js +16 -8
- package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
- package/dist/unstable/workflow/WorkflowProxy.d.ts +2 -4
- package/dist/unstable/workflow/WorkflowProxy.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowProxy.js +9 -11
- package/dist/unstable/workflow/WorkflowProxy.js.map +1 -1
- package/dist/unstable/workflow/WorkflowProxyServer.js +7 -7
- package/dist/unstable/workflow/WorkflowProxyServer.js.map +1 -1
- package/package.json +1 -1
- package/src/Array.ts +729 -611
- package/src/BigDecimal.ts +37 -30
- package/src/BigInt.ts +34 -40
- package/src/Boolean.ts +8 -8
- package/src/Brand.ts +16 -14
- package/src/Cause.ts +21 -23
- package/src/Channel.ts +249 -9
- package/src/ChannelSchema.ts +11 -11
- package/src/Chunk.ts +69 -16
- package/src/Clock.ts +3 -3
- package/src/Combiner.ts +9 -13
- package/src/Config.ts +60 -67
- package/src/ConfigProvider.ts +34 -44
- package/src/Console.ts +2 -2
- package/src/Context.ts +60 -72
- package/src/Cron.ts +2 -2
- package/src/Crypto.ts +4 -4
- package/src/Data.ts +21 -15
- package/src/DateTime.ts +35 -16
- package/src/Deferred.ts +24 -15
- package/src/Duration.ts +44 -31
- package/src/Effect.ts +516 -416
- package/src/Encoding.ts +5 -0
- package/src/Equal.ts +26 -39
- package/src/Equivalence.ts +71 -99
- package/src/ErrorReporter.ts +1 -1
- package/src/Exit.ts +79 -96
- package/src/Fiber.ts +8 -6
- package/src/FiberHandle.ts +25 -0
- package/src/FiberMap.ts +35 -0
- package/src/FiberSet.ts +20 -0
- package/src/Filter.ts +4 -4
- package/src/Formatter.ts +14 -19
- package/src/Function.ts +15 -16
- package/src/Graph.ts +2 -2
- package/src/HKT.ts +2 -2
- package/src/Hash.ts +2 -1
- package/src/HashMap.ts +15 -0
- package/src/HashRing.ts +9 -9
- package/src/Iterable.ts +24 -12
- package/src/JsonPatch.ts +2 -3
- package/src/JsonPointer.ts +2 -6
- package/src/JsonSchema.ts +17 -13
- package/src/Latch.ts +4 -3
- package/src/Layer.ts +92 -114
- package/src/Logger.ts +15 -18
- package/src/Match.ts +2 -2
- package/src/Metric.ts +109 -137
- package/src/MutableHashMap.ts +35 -20
- package/src/MutableList.ts +15 -0
- package/src/MutableRef.ts +56 -42
- package/src/Newtype.ts +10 -7
- package/src/Number.ts +23 -11
- package/src/Optic.ts +25 -22
- package/src/Option.ts +196 -168
- package/src/Order.ts +118 -179
- package/src/PartitionedSemaphore.ts +14 -14
- package/src/Path.ts +2 -2
- package/src/Pipeable.ts +2 -2
- package/src/PlatformError.ts +4 -4
- package/src/Pool.ts +7 -11
- package/src/Predicate.ts +274 -263
- package/src/PubSub.ts +24 -14
- package/src/Pull.ts +4 -4
- package/src/Queue.ts +46 -7
- package/src/RcRef.ts +0 -4
- package/src/Redactable.ts +2 -2
- package/src/Redacted.ts +3 -3
- package/src/Reducer.ts +2 -3
- package/src/Ref.ts +43 -40
- package/src/References.ts +4 -4
- package/src/Request.ts +18 -18
- package/src/Resource.ts +2 -2
- package/src/Result.ts +87 -33
- package/src/Runtime.ts +11 -8
- package/src/Schedule.ts +112 -45
- package/src/Scheduler.ts +6 -4
- package/src/Schema.ts +843 -649
- package/src/SchemaAST.ts +148 -117
- package/src/SchemaGetter.ts +142 -121
- package/src/SchemaIssue.ts +39 -41
- package/src/SchemaParser.ts +173 -229
- package/src/SchemaRepresentation.ts +38 -28
- package/src/SchemaTransformation.ts +233 -207
- package/src/SchemaUtils.ts +2 -2
- package/src/Scope.ts +15 -0
- package/src/ScopedCache.ts +1 -1
- package/src/ScopedRef.ts +14 -18
- package/src/Semaphore.ts +9 -9
- package/src/Sink.ts +13 -13
- package/src/Stdio.ts +4 -5
- package/src/Stream.ts +354 -57
- package/src/String.ts +6 -9
- package/src/Struct.ts +15 -13
- package/src/SubscriptionRef.ts +24 -19
- package/src/SynchronizedRef.ts +88 -63
- package/src/Tracer.ts +4 -4
- package/src/Trie.ts +15 -0
- package/src/Tuple.ts +25 -19
- package/src/TxReentrantLock.ts +6 -3
- package/src/TxRef.ts +16 -16
- package/src/TxSubscriptionRef.ts +43 -27
- package/src/Types.ts +12 -39
- package/src/UndefinedOr.ts +15 -14
- package/src/Unify.ts +2 -2
- package/src/internal/schema/annotations.ts +4 -4
- package/src/internal/schema/arbitrary.ts +16 -16
- package/src/internal/schema/equivalence.ts +11 -11
- package/src/internal/schema/representation.ts +23 -23
- package/src/internal/schema/schema.ts +17 -17
- package/src/testing/TestSchema.ts +20 -20
- package/src/unstable/ai/AiError.ts +4 -2
- package/src/unstable/ai/AnthropicStructuredOutput.ts +59 -56
- package/src/unstable/ai/Chat.ts +4 -5
- package/src/unstable/ai/EmbeddingModel.ts +4 -4
- package/src/unstable/ai/IdGenerator.ts +2 -3
- package/src/unstable/ai/LanguageModel.ts +5 -4
- package/src/unstable/ai/McpSchema.ts +19 -17
- package/src/unstable/ai/McpServer.ts +14 -7
- package/src/unstable/ai/OpenAiStructuredOutput.ts +72 -61
- package/src/unstable/ai/Prompt.ts +5 -5
- package/src/unstable/ai/ResponseIdTracker.ts +3 -2
- package/src/unstable/ai/Telemetry.ts +21 -6
- package/src/unstable/ai/Tool.ts +11 -10
- package/src/unstable/ai/Toolkit.ts +2 -2
- package/src/unstable/cli/Command.ts +37 -16
- package/src/unstable/cli/Completions.ts +1 -1
- package/src/unstable/cli/Flag.ts +7 -6
- package/src/unstable/cli/GlobalFlag.ts +7 -1
- package/src/unstable/cli/Param.ts +23 -18
- package/src/unstable/cli/Primitive.ts +3 -2
- package/src/unstable/cluster/ClusterCron.ts +1 -2
- package/src/unstable/cluster/ClusterMetrics.ts +5 -0
- package/src/unstable/cluster/ClusterSchema.ts +3 -3
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +15 -15
- package/src/unstable/cluster/EntityResource.ts +10 -0
- package/src/unstable/cluster/Envelope.ts +3 -3
- package/src/unstable/cluster/Reply.ts +14 -12
- package/src/unstable/cluster/RunnerHealth.ts +2 -1
- package/src/unstable/cluster/RunnerServer.ts +2 -2
- package/src/unstable/cluster/Runners.ts +3 -3
- package/src/unstable/cluster/ShardId.ts +3 -3
- package/src/unstable/cluster/Sharding.ts +3 -3
- package/src/unstable/cluster/ShardingConfig.ts +4 -4
- package/src/unstable/cluster/Snowflake.ts +3 -3
- package/src/unstable/cluster/internal/entityManager.ts +2 -2
- package/src/unstable/encoding/Msgpack.ts +6 -6
- package/src/unstable/encoding/Ndjson.ts +5 -0
- package/src/unstable/encoding/Sse.ts +2 -2
- package/src/unstable/eventlog/EventGroup.ts +2 -1
- package/src/unstable/eventlog/EventJournal.ts +10 -0
- package/src/unstable/eventlog/EventLog.ts +3 -3
- package/src/unstable/eventlog/EventLogServerEncrypted.ts +2 -3
- package/src/unstable/eventlog/EventLogServerUnencrypted.ts +5 -7
- package/src/unstable/eventlog/EventLogSessionAuth.ts +4 -4
- package/src/unstable/http/Cookies.ts +4 -4
- package/src/unstable/http/Etag.ts +2 -3
- package/src/unstable/http/Headers.ts +2 -2
- package/src/unstable/http/HttpBody.ts +2 -2
- package/src/unstable/http/HttpClient.ts +2 -2
- package/src/unstable/http/HttpClientRequest.ts +30 -3
- package/src/unstable/http/HttpRouter.ts +1 -1
- package/src/unstable/http/HttpServerResponse.ts +25 -20
- package/src/unstable/http/Multipart.ts +3 -3
- package/src/unstable/http/UrlParams.ts +36 -6
- package/src/unstable/httpapi/HttpApi.ts +5 -4
- package/src/unstable/httpapi/HttpApiBuilder.ts +14 -13
- package/src/unstable/httpapi/HttpApiClient.ts +16 -16
- package/src/unstable/httpapi/HttpApiMiddleware.ts +3 -3
- package/src/unstable/httpapi/HttpApiSchema.ts +15 -15
- package/src/unstable/httpapi/OpenApi.ts +18 -18
- package/src/unstable/observability/OtlpResource.ts +5 -0
- package/src/unstable/observability/PrometheusMetrics.ts +4 -2
- package/src/unstable/reactivity/Atom.ts +3 -3
- package/src/unstable/rpc/RpcSchema.ts +2 -2
- package/src/unstable/rpc/RpcSerialization.ts +2 -2
- package/src/unstable/schema/Model.ts +5 -5
- package/src/unstable/schema/VariantSchema.ts +2 -2
- package/src/unstable/sql/SqlSchema.ts +4 -4
- package/src/unstable/workers/Transferable.ts +6 -6
- package/src/unstable/workflow/DurableDeferred.ts +7 -7
- package/src/unstable/workflow/DurableQueue.ts +1 -2
- package/src/unstable/workflow/Workflow.ts +159 -114
- package/src/unstable/workflow/WorkflowEngine.ts +16 -8
- package/src/unstable/workflow/WorkflowProxy.ts +9 -11
- package/src/unstable/workflow/WorkflowProxyServer.ts +7 -7
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* effects, not nested activities.
|
|
16
16
|
*
|
|
17
17
|
* When exposing workflows through `WorkflowProxy`, remember that proxy APIs are
|
|
18
|
-
* derived from the workflow
|
|
18
|
+
* derived from the workflow tag and schemas. Discard execution returns the
|
|
19
19
|
* `executionId` instead of the workflow result, resume requires the persisted
|
|
20
20
|
* `executionId`, and idempotency keys must remain stable for the same logical
|
|
21
21
|
* request.
|
|
@@ -36,8 +36,8 @@ import * as Option from "../../Option.ts"
|
|
|
36
36
|
import * as Predicate from "../../Predicate.ts"
|
|
37
37
|
import type * as Schedule from "../../Schedule.ts"
|
|
38
38
|
import * as Schema from "../../Schema.ts"
|
|
39
|
-
import * as
|
|
40
|
-
import * as
|
|
39
|
+
import * as SchemaIssue from "../../SchemaIssue.ts"
|
|
40
|
+
import * as SchemaParser from "../../SchemaParser.ts"
|
|
41
41
|
import * as Tranformation from "../../SchemaTransformation.ts"
|
|
42
42
|
import * as Scope from "../../Scope.ts"
|
|
43
43
|
import type { ExitEncoded } from "../rpc/RpcMessage.ts"
|
|
@@ -55,17 +55,21 @@ const TypeId = "~effect/workflow/Workflow"
|
|
|
55
55
|
* @since 4.0.0
|
|
56
56
|
*/
|
|
57
57
|
export interface Workflow<
|
|
58
|
-
|
|
58
|
+
Tag extends string,
|
|
59
59
|
Payload extends AnyStructSchema,
|
|
60
60
|
Success extends Schema.Top,
|
|
61
61
|
Error extends Schema.Top
|
|
62
62
|
> {
|
|
63
|
+
new(_: never): {}
|
|
64
|
+
|
|
63
65
|
readonly [TypeId]: typeof TypeId
|
|
64
|
-
readonly
|
|
66
|
+
readonly _tag: Tag
|
|
65
67
|
readonly payloadSchema: Payload
|
|
66
68
|
readonly successSchema: Success
|
|
67
69
|
readonly errorSchema: Error
|
|
68
70
|
readonly annotations: Context.Context<never>
|
|
71
|
+
readonly idempotencyKey: (payload: Payload["Type"]) => string
|
|
72
|
+
readonly suspendedRetrySchedule?: Schedule.Schedule<any, unknown> | undefined
|
|
69
73
|
|
|
70
74
|
/**
|
|
71
75
|
* Add an annotation to the workflow.
|
|
@@ -73,14 +77,14 @@ export interface Workflow<
|
|
|
73
77
|
annotate<I, S>(
|
|
74
78
|
key: Context.Key<I, S>,
|
|
75
79
|
value: S
|
|
76
|
-
): Workflow<
|
|
80
|
+
): Workflow<Tag, Payload, Success, Error>
|
|
77
81
|
|
|
78
82
|
/**
|
|
79
83
|
* Merge multiple annotations into the workflow.
|
|
80
84
|
*/
|
|
81
85
|
annotateMerge<I>(
|
|
82
86
|
annotations: Context.Context<I>
|
|
83
|
-
): Workflow<
|
|
87
|
+
): Workflow<Tag, Payload, Success, Error>
|
|
84
88
|
|
|
85
89
|
/**
|
|
86
90
|
* Execute the workflow with the given payload.
|
|
@@ -139,7 +143,7 @@ export interface Workflow<
|
|
|
139
143
|
| WorkflowEngine
|
|
140
144
|
| Exclude<
|
|
141
145
|
R,
|
|
142
|
-
WorkflowEngine | WorkflowInstance | Execution<
|
|
146
|
+
WorkflowEngine | WorkflowInstance | Execution<Tag> | Scope.Scope
|
|
143
147
|
>
|
|
144
148
|
| Payload["DecodingServices"]
|
|
145
149
|
| Payload["EncodingServices"]
|
|
@@ -178,7 +182,7 @@ export interface Workflow<
|
|
|
178
182
|
) => Effect.Effect<
|
|
179
183
|
A,
|
|
180
184
|
E,
|
|
181
|
-
R | R2 | WorkflowInstance | Execution<
|
|
185
|
+
R | R2 | WorkflowInstance | Execution<Tag> | Scope.Scope
|
|
182
186
|
>
|
|
183
187
|
<A, E, R, R2>(
|
|
184
188
|
effect: Effect.Effect<A, E, R>,
|
|
@@ -189,7 +193,7 @@ export interface Workflow<
|
|
|
189
193
|
): Effect.Effect<
|
|
190
194
|
A,
|
|
191
195
|
E,
|
|
192
|
-
R | R2 | WorkflowInstance | Execution<
|
|
196
|
+
R | R2 | WorkflowInstance | Execution<Tag> | Scope.Scope
|
|
193
197
|
>
|
|
194
198
|
}
|
|
195
199
|
}
|
|
@@ -206,14 +210,14 @@ export interface AnyStructSchema extends Schema.Top {
|
|
|
206
210
|
|
|
207
211
|
/**
|
|
208
212
|
* Type-level marker for services associated with a specific workflow
|
|
209
|
-
* execution
|
|
213
|
+
* execution tag.
|
|
210
214
|
*
|
|
211
215
|
* @category models
|
|
212
216
|
* @since 4.0.0
|
|
213
217
|
*/
|
|
214
|
-
export interface Execution<
|
|
218
|
+
export interface Execution<Tag extends string> {
|
|
215
219
|
readonly _: unique symbol
|
|
216
|
-
readonly
|
|
220
|
+
readonly _tag: Tag
|
|
217
221
|
}
|
|
218
222
|
|
|
219
223
|
/**
|
|
@@ -224,13 +228,17 @@ export interface Execution<Name extends string> {
|
|
|
224
228
|
* @since 4.0.0
|
|
225
229
|
*/
|
|
226
230
|
export interface Any {
|
|
231
|
+
new(_: never): {}
|
|
232
|
+
|
|
227
233
|
readonly [TypeId]: typeof TypeId
|
|
228
|
-
readonly
|
|
234
|
+
readonly _tag: string
|
|
229
235
|
readonly executionId: (payload: any) => Effect.Effect<string>
|
|
230
236
|
readonly payloadSchema: AnyStructSchema
|
|
231
237
|
readonly successSchema: Schema.Top
|
|
232
238
|
readonly errorSchema: Schema.Top
|
|
233
239
|
readonly annotations: Context.Context<never>
|
|
240
|
+
readonly idempotencyKey: (payload: any) => string
|
|
241
|
+
readonly suspendedRetrySchedule?: Schedule.Schedule<any, unknown> | undefined
|
|
234
242
|
}
|
|
235
243
|
|
|
236
244
|
/**
|
|
@@ -317,21 +325,125 @@ const InstanceTag = Context.Service<
|
|
|
317
325
|
"effect/workflow/WorkflowEngine/WorkflowInstance" satisfies typeof WorkflowInstance.key
|
|
318
326
|
)
|
|
319
327
|
|
|
328
|
+
const makeExecutionIdFromPayload = (self: AnyWithProps, payload: unknown) =>
|
|
329
|
+
makeHashDigest(`${self._tag}-${self.idempotencyKey(payload)}`)
|
|
330
|
+
|
|
331
|
+
const Proto = {
|
|
332
|
+
[TypeId]: TypeId,
|
|
333
|
+
annotate(this: AnyWithProps, tag: Context.Key<any, any>, value: any) {
|
|
334
|
+
return makeProto({
|
|
335
|
+
_tag: this._tag,
|
|
336
|
+
payloadSchema: this.payloadSchema,
|
|
337
|
+
successSchema: this.successSchema,
|
|
338
|
+
errorSchema: this.errorSchema,
|
|
339
|
+
annotations: Context.add(this.annotations, tag, value),
|
|
340
|
+
idempotencyKey: this.idempotencyKey,
|
|
341
|
+
suspendedRetrySchedule: this.suspendedRetrySchedule
|
|
342
|
+
})
|
|
343
|
+
},
|
|
344
|
+
annotateMerge(this: AnyWithProps, context: Context.Context<any>) {
|
|
345
|
+
return makeProto({
|
|
346
|
+
_tag: this._tag,
|
|
347
|
+
payloadSchema: this.payloadSchema,
|
|
348
|
+
successSchema: this.successSchema,
|
|
349
|
+
errorSchema: this.errorSchema,
|
|
350
|
+
annotations: Context.merge(this.annotations, context),
|
|
351
|
+
idempotencyKey: this.idempotencyKey,
|
|
352
|
+
suspendedRetrySchedule: this.suspendedRetrySchedule
|
|
353
|
+
})
|
|
354
|
+
},
|
|
355
|
+
execute<const Discard extends boolean = false>(
|
|
356
|
+
this: AnyWithProps,
|
|
357
|
+
fields: any,
|
|
358
|
+
opts?: { readonly discard?: Discard } | undefined
|
|
359
|
+
) {
|
|
360
|
+
return Effect.suspend(() => {
|
|
361
|
+
const payload = this.payloadSchema.make(fields)
|
|
362
|
+
return Effect.flatMap(
|
|
363
|
+
EngineTag,
|
|
364
|
+
(engine) =>
|
|
365
|
+
Effect.flatMap(makeExecutionIdFromPayload(this, payload), (executionId) =>
|
|
366
|
+
Effect.andThen(
|
|
367
|
+
Effect.annotateCurrentSpan({ executionId }),
|
|
368
|
+
engine.execute(this as any, {
|
|
369
|
+
executionId,
|
|
370
|
+
payload,
|
|
371
|
+
discard: opts?.discard,
|
|
372
|
+
suspendedRetrySchedule: this.suspendedRetrySchedule
|
|
373
|
+
})
|
|
374
|
+
))
|
|
375
|
+
)
|
|
376
|
+
}).pipe(
|
|
377
|
+
Effect.withSpan(
|
|
378
|
+
`${this._tag}.execute`,
|
|
379
|
+
{},
|
|
380
|
+
{ captureStackTrace: false }
|
|
381
|
+
)
|
|
382
|
+
) as any
|
|
383
|
+
},
|
|
384
|
+
poll(this: Workflow<string, AnyStructSchema, Schema.Top, Schema.Top>, executionId: string) {
|
|
385
|
+
return Effect.flatMap(EngineTag, (engine) => engine.poll(this, executionId)).pipe(
|
|
386
|
+
Effect.withSpan(`${this._tag}.poll`, { attributes: { executionId } }, { captureStackTrace: false })
|
|
387
|
+
)
|
|
388
|
+
},
|
|
389
|
+
interrupt(this: AnyWithProps, executionId: string) {
|
|
390
|
+
return Effect.flatMap(EngineTag, (engine) => engine.interrupt(this, executionId)).pipe(
|
|
391
|
+
Effect.withSpan(`${this._tag}.interrupt`, { attributes: { executionId } }, { captureStackTrace: false })
|
|
392
|
+
)
|
|
393
|
+
},
|
|
394
|
+
resume(this: Workflow<string, AnyStructSchema, Schema.Top, Schema.Top>, executionId: string) {
|
|
395
|
+
return Effect.flatMap(EngineTag, (engine) => engine.resume(this, executionId)).pipe(
|
|
396
|
+
Effect.withSpan(`${this._tag}.resume`, { attributes: { executionId } }, { captureStackTrace: false })
|
|
397
|
+
)
|
|
398
|
+
},
|
|
399
|
+
toLayer(this: Workflow<string, AnyStructSchema, Schema.Top, Schema.Top>, execute: any) {
|
|
400
|
+
return Layer.effectDiscard(
|
|
401
|
+
Effect.flatMap(EngineTag, (engine) => engine.register(this, execute))
|
|
402
|
+
)
|
|
403
|
+
},
|
|
404
|
+
executionId(this: AnyWithProps, payload: any) {
|
|
405
|
+
return Effect.flatMap(
|
|
406
|
+
Effect.orDie(this.payloadSchema.makeEffect(payload)),
|
|
407
|
+
(payload) => makeExecutionIdFromPayload(this, payload)
|
|
408
|
+
)
|
|
409
|
+
},
|
|
410
|
+
withCompensation: ((...args: ReadonlyArray<any>) => (withCompensation as any)(...args))
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
const makeProto = <
|
|
414
|
+
const Tag extends string,
|
|
415
|
+
Payload extends AnyStructSchema,
|
|
416
|
+
Success extends Schema.Top,
|
|
417
|
+
Error extends Schema.Top
|
|
418
|
+
>(options: {
|
|
419
|
+
readonly _tag: Tag
|
|
420
|
+
readonly payloadSchema: Payload
|
|
421
|
+
readonly successSchema: Success
|
|
422
|
+
readonly errorSchema: Error
|
|
423
|
+
readonly annotations: Context.Context<never>
|
|
424
|
+
readonly idempotencyKey: (payload: Payload["Type"]) => string
|
|
425
|
+
readonly suspendedRetrySchedule?: Schedule.Schedule<any, unknown> | undefined
|
|
426
|
+
}): Workflow<Tag, Payload, Success, Error> => {
|
|
427
|
+
function Workflow() {}
|
|
428
|
+
Object.setPrototypeOf(Workflow, Proto)
|
|
429
|
+
Object.assign(Workflow, options)
|
|
430
|
+
return Workflow as any
|
|
431
|
+
}
|
|
432
|
+
|
|
320
433
|
/**
|
|
321
434
|
* Creates a durable workflow definition with schemas, annotations, and
|
|
322
|
-
* deterministic execution IDs derived from the workflow
|
|
435
|
+
* deterministic execution IDs derived from the workflow tag and idempotency
|
|
323
436
|
* key.
|
|
324
437
|
*
|
|
325
438
|
* @category constructors
|
|
326
439
|
* @since 4.0.0
|
|
327
440
|
*/
|
|
328
441
|
export const make = <
|
|
329
|
-
const
|
|
442
|
+
const Tag extends string,
|
|
330
443
|
Payload extends Schema.Struct.Fields | AnyStructSchema,
|
|
331
444
|
Success extends Schema.Top = Schema.Void,
|
|
332
445
|
Error extends Schema.Top = Schema.Never
|
|
333
|
-
>(options: {
|
|
334
|
-
readonly name: Name
|
|
446
|
+
>(tag: Tag, options: {
|
|
335
447
|
readonly payload: Payload
|
|
336
448
|
readonly idempotencyKey: (
|
|
337
449
|
payload: Payload extends Schema.Struct.Fields ? Schema.Struct.Type<Payload>
|
|
@@ -342,105 +454,23 @@ export const make = <
|
|
|
342
454
|
readonly suspendedRetrySchedule?: Schedule.Schedule<any, unknown> | undefined
|
|
343
455
|
readonly annotations?: Context.Context<never>
|
|
344
456
|
}): Workflow<
|
|
345
|
-
|
|
457
|
+
Tag,
|
|
346
458
|
Payload extends Schema.Struct.Fields ? Schema.Struct<Payload> : Payload,
|
|
347
459
|
Success,
|
|
348
460
|
Error
|
|
349
|
-
> =>
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
name: options.name,
|
|
354
|
-
payloadSchema: Schema.isSchema(options.payload)
|
|
461
|
+
> =>
|
|
462
|
+
makeProto<Tag, Payload extends Schema.Struct.Fields ? Schema.Struct<Payload> : Payload, Success, Error>({
|
|
463
|
+
_tag: tag,
|
|
464
|
+
payloadSchema: (Schema.isSchema(options.payload)
|
|
355
465
|
? options.payload
|
|
356
|
-
: Schema.Struct(options.payload as any)
|
|
466
|
+
: Schema.Struct(options.payload as any)) as Payload extends Schema.Struct.Fields ? Schema.Struct<Payload>
|
|
467
|
+
: Payload,
|
|
357
468
|
successSchema: options.success ?? (Schema.Void as any),
|
|
358
469
|
errorSchema: options.error ?? (Schema.Never as any),
|
|
359
470
|
annotations: options.annotations ?? Context.empty(),
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
annotations: Context.add(self.annotations, tag, value)
|
|
364
|
-
})
|
|
365
|
-
},
|
|
366
|
-
annotateMerge(context) {
|
|
367
|
-
return make({
|
|
368
|
-
...options,
|
|
369
|
-
annotations: Context.merge(self.annotations, context)
|
|
370
|
-
})
|
|
371
|
-
},
|
|
372
|
-
execute: Effect.fnUntraced(
|
|
373
|
-
function*<const Discard extends boolean = false>(
|
|
374
|
-
fields: any,
|
|
375
|
-
opts?: { readonly discard?: Discard } | undefined
|
|
376
|
-
) {
|
|
377
|
-
const payload = self.payloadSchema.make(fields)
|
|
378
|
-
const engine = yield* EngineTag
|
|
379
|
-
const executionId = yield* makeExecutionId(payload)
|
|
380
|
-
yield* Effect.annotateCurrentSpan({ executionId })
|
|
381
|
-
return yield* engine.execute(self, {
|
|
382
|
-
executionId,
|
|
383
|
-
payload,
|
|
384
|
-
discard: opts?.discard,
|
|
385
|
-
suspendedRetrySchedule: options.suspendedRetrySchedule
|
|
386
|
-
})
|
|
387
|
-
},
|
|
388
|
-
Effect.withSpan(
|
|
389
|
-
`${options.name}.execute`,
|
|
390
|
-
{},
|
|
391
|
-
{ captureStackTrace: false }
|
|
392
|
-
)
|
|
393
|
-
) as any,
|
|
394
|
-
poll: Effect.fnUntraced(
|
|
395
|
-
function*(executionId: string) {
|
|
396
|
-
const engine = yield* EngineTag
|
|
397
|
-
return yield* engine.poll(self, executionId)
|
|
398
|
-
},
|
|
399
|
-
(effect, executionId) =>
|
|
400
|
-
Effect.withSpan(effect, `${options.name}.poll`, {
|
|
401
|
-
captureStackTrace: false,
|
|
402
|
-
attributes: { executionId }
|
|
403
|
-
})
|
|
404
|
-
),
|
|
405
|
-
interrupt: Effect.fnUntraced(
|
|
406
|
-
function*(executionId: string) {
|
|
407
|
-
const engine = yield* EngineTag
|
|
408
|
-
yield* engine.interrupt(self, executionId)
|
|
409
|
-
},
|
|
410
|
-
(effect, executionId) =>
|
|
411
|
-
Effect.withSpan(effect, `${options.name}.interrupt`, {
|
|
412
|
-
captureStackTrace: false,
|
|
413
|
-
attributes: { executionId }
|
|
414
|
-
})
|
|
415
|
-
),
|
|
416
|
-
resume: Effect.fnUntraced(
|
|
417
|
-
function*(executionId: string) {
|
|
418
|
-
const engine = yield* EngineTag
|
|
419
|
-
yield* engine.resume(self, executionId)
|
|
420
|
-
},
|
|
421
|
-
(effect, executionId) =>
|
|
422
|
-
Effect.withSpan(effect, `${options.name}.resume`, {
|
|
423
|
-
captureStackTrace: false,
|
|
424
|
-
attributes: { executionId }
|
|
425
|
-
})
|
|
426
|
-
),
|
|
427
|
-
toLayer: (execute) =>
|
|
428
|
-
Layer.effectDiscard(
|
|
429
|
-
Effect.gen(function*() {
|
|
430
|
-
const engine = yield* EngineTag
|
|
431
|
-
return yield* engine.register(self, execute)
|
|
432
|
-
})
|
|
433
|
-
),
|
|
434
|
-
executionId: (payload) =>
|
|
435
|
-
Effect.flatMap(
|
|
436
|
-
Effect.orDie(self.payloadSchema.makeEffect(payload)),
|
|
437
|
-
makeExecutionId
|
|
438
|
-
),
|
|
439
|
-
withCompensation
|
|
440
|
-
}
|
|
441
|
-
|
|
442
|
-
return self
|
|
443
|
-
}
|
|
471
|
+
idempotencyKey: options.idempotencyKey as any,
|
|
472
|
+
suspendedRetrySchedule: options.suspendedRetrySchedule
|
|
473
|
+
})
|
|
444
474
|
|
|
445
475
|
const ResultTypeId = "~effect/workflow/Workflow/Result"
|
|
446
476
|
|
|
@@ -539,15 +569,15 @@ export class Complete<A, E> extends Data.TaggedClass("Complete")<{
|
|
|
539
569
|
[Schema.Exit(options.success, options.error, Schema.Defect)],
|
|
540
570
|
([exit]) => (input, ast, options) => {
|
|
541
571
|
if (!(isResult(input) && input._tag === "Complete")) {
|
|
542
|
-
return Effect.fail(new
|
|
572
|
+
return Effect.fail(new SchemaIssue.InvalidType(ast, Option.some(input)))
|
|
543
573
|
}
|
|
544
574
|
return Effect.mapBothEager(
|
|
545
|
-
|
|
575
|
+
SchemaParser.decodeEffect(exit)(input.exit, options),
|
|
546
576
|
{
|
|
547
577
|
onSuccess: (exit) => new Complete({ exit }),
|
|
548
578
|
onFailure: (issue) =>
|
|
549
|
-
new
|
|
550
|
-
new
|
|
579
|
+
new SchemaIssue.Composite(ast, Option.some(input), [
|
|
580
|
+
new SchemaIssue.Pointer(["exit"], issue)
|
|
551
581
|
])
|
|
552
582
|
}
|
|
553
583
|
)
|
|
@@ -794,6 +824,11 @@ export const addFinalizer: <R>(
|
|
|
794
824
|
/**
|
|
795
825
|
* Adds compensation logic to an effect inside a Workflow.
|
|
796
826
|
*
|
|
827
|
+
* **When to use**
|
|
828
|
+
*
|
|
829
|
+
* Use when a top-level workflow step needs compensating cleanup if the overall
|
|
830
|
+
* workflow later fails after the step succeeds.
|
|
831
|
+
*
|
|
797
832
|
* **Details**
|
|
798
833
|
*
|
|
799
834
|
* The compensation finalizer is called if the entire workflow fails, allowing you to perform cleanup or other actions based on the success value and the cause of the workflow failure.
|
|
@@ -809,6 +844,11 @@ export const withCompensation: {
|
|
|
809
844
|
/**
|
|
810
845
|
* Adds compensation logic to an effect inside a Workflow.
|
|
811
846
|
*
|
|
847
|
+
* **When to use**
|
|
848
|
+
*
|
|
849
|
+
* Use when a top-level workflow step needs compensating cleanup if the overall
|
|
850
|
+
* workflow later fails after the step succeeds.
|
|
851
|
+
*
|
|
812
852
|
* **Details**
|
|
813
853
|
*
|
|
814
854
|
* The compensation finalizer is called if the entire workflow fails, allowing you to perform cleanup or other actions based on the success value and the cause of the workflow failure.
|
|
@@ -828,6 +868,11 @@ export const withCompensation: {
|
|
|
828
868
|
/**
|
|
829
869
|
* Adds compensation logic to an effect inside a Workflow.
|
|
830
870
|
*
|
|
871
|
+
* **When to use**
|
|
872
|
+
*
|
|
873
|
+
* Use when a top-level workflow step needs compensating cleanup if the overall
|
|
874
|
+
* workflow later fails after the step succeeds.
|
|
875
|
+
*
|
|
831
876
|
* **Details**
|
|
832
877
|
*
|
|
833
878
|
* The compensation finalizer is called if the entire workflow fails, allowing you to perform cleanup or other actions based on the success value and the cause of the workflow failure.
|
|
@@ -372,8 +372,16 @@ export interface Encoded {
|
|
|
372
372
|
|
|
373
373
|
/**
|
|
374
374
|
* Builds a typed `WorkflowEngine` service from a low-level encoded
|
|
375
|
-
* implementation.
|
|
376
|
-
*
|
|
375
|
+
* implementation.
|
|
376
|
+
*
|
|
377
|
+
* **When to use**
|
|
378
|
+
*
|
|
379
|
+
* Use when wiring a trusted low-level workflow engine implementation into the
|
|
380
|
+
* typed `WorkflowEngine` service.
|
|
381
|
+
*
|
|
382
|
+
* **Gotchas**
|
|
383
|
+
*
|
|
384
|
+
* The implementation must correctly persist, resume, and encode workflow state.
|
|
377
385
|
*
|
|
378
386
|
* @category constructors
|
|
379
387
|
* @since 4.0.0
|
|
@@ -461,7 +469,7 @@ export const makeUnsafe = (options: Encoded): WorkflowEngine["Service"] =>
|
|
|
461
469
|
).pipe(
|
|
462
470
|
Effect.catch(() =>
|
|
463
471
|
Effect.die(
|
|
464
|
-
`${self.
|
|
472
|
+
`${self._tag}.execute: suspendedRetrySchedule exhausted`
|
|
465
473
|
)
|
|
466
474
|
)
|
|
467
475
|
)
|
|
@@ -616,7 +624,7 @@ export const layerMemory: Layer.Layer<WorkflowEngine> = Layer.effect(WorkflowEng
|
|
|
616
624
|
return
|
|
617
625
|
}
|
|
618
626
|
|
|
619
|
-
const entry = workflows.get(state.instance.workflow.
|
|
627
|
+
const entry = workflows.get(state.instance.workflow._tag)!
|
|
620
628
|
const instance = WorkflowInstance.initial(state.instance.workflow, state.instance.executionId)
|
|
621
629
|
instance.interrupted = state.instance.interrupted
|
|
622
630
|
state.instance = instance
|
|
@@ -647,16 +655,16 @@ export const layerMemory: Layer.Layer<WorkflowEngine> = Layer.effect(WorkflowEng
|
|
|
647
655
|
|
|
648
656
|
const engine = makeUnsafe({
|
|
649
657
|
register: Effect.fnUntraced(function*(workflow, execute) {
|
|
650
|
-
workflows.set(workflow.
|
|
658
|
+
workflows.set(workflow._tag, {
|
|
651
659
|
workflow,
|
|
652
660
|
execute,
|
|
653
661
|
scope: yield* Effect.scope
|
|
654
662
|
})
|
|
655
663
|
}),
|
|
656
664
|
execute: Effect.fnUntraced(function*(workflow, options) {
|
|
657
|
-
const entry = workflows.get(workflow.
|
|
665
|
+
const entry = workflows.get(workflow._tag)
|
|
658
666
|
if (!entry) {
|
|
659
|
-
return yield* Effect.orDie(Effect.fail(`Workflow ${workflow.
|
|
667
|
+
return yield* Effect.orDie(Effect.fail(`Workflow ${workflow._tag} is not registered`))
|
|
660
668
|
}
|
|
661
669
|
|
|
662
670
|
let state = executions.get(options.executionId)
|
|
@@ -745,7 +753,7 @@ export const layerMemory: Layer.Layer<WorkflowEngine> = Layer.effect(WorkflowEng
|
|
|
745
753
|
}),
|
|
746
754
|
scheduleClock: (workflow, options) =>
|
|
747
755
|
engine.deferredDone(options.clock.deferred, {
|
|
748
|
-
workflowName: workflow.
|
|
756
|
+
workflowName: workflow._tag,
|
|
749
757
|
executionId: options.executionId,
|
|
750
758
|
deferredName: options.clock.deferred.name,
|
|
751
759
|
exit: Exit.void
|
|
@@ -43,8 +43,7 @@ import type * as Workflow from "./Workflow.ts"
|
|
|
43
43
|
* import { RpcServer } from "effect/unstable/rpc"
|
|
44
44
|
* import { Workflow, WorkflowProxy, WorkflowProxyServer } from "effect/unstable/workflow"
|
|
45
45
|
*
|
|
46
|
-
* const EmailWorkflow = Workflow.make({
|
|
47
|
-
* name: "EmailWorkflow",
|
|
46
|
+
* const EmailWorkflow = Workflow.make("EmailWorkflow", {
|
|
48
47
|
* payload: {
|
|
49
48
|
* id: Schema.String,
|
|
50
49
|
* to: Schema.String
|
|
@@ -82,15 +81,15 @@ export const toRpcGroup = <
|
|
|
82
81
|
for (const workflow_ of workflows) {
|
|
83
82
|
const workflow = workflow_ as Workflow.AnyWithProps
|
|
84
83
|
rpcs.push(
|
|
85
|
-
Rpc.make(`${prefix}${workflow.
|
|
84
|
+
Rpc.make(`${prefix}${workflow._tag}`, {
|
|
86
85
|
payload: workflow.payloadSchema,
|
|
87
86
|
error: workflow.errorSchema,
|
|
88
87
|
success: workflow.successSchema
|
|
89
88
|
}).annotateMerge(workflow.annotations),
|
|
90
|
-
Rpc.make(`${prefix}${workflow.
|
|
89
|
+
Rpc.make(`${prefix}${workflow._tag}Discard`, {
|
|
91
90
|
payload: workflow.payloadSchema
|
|
92
91
|
}).annotateMerge(workflow.annotations),
|
|
93
|
-
Rpc.make(`${prefix}${workflow.
|
|
92
|
+
Rpc.make(`${prefix}${workflow._tag}Resume`, { payload: ResumePayload })
|
|
94
93
|
.annotateMerge(workflow.annotations)
|
|
95
94
|
)
|
|
96
95
|
}
|
|
@@ -125,8 +124,7 @@ export type ConvertRpcs<Workflows extends Workflow.Any, Prefix extends string> =
|
|
|
125
124
|
* import { HttpApi, HttpApiBuilder } from "effect/unstable/httpapi"
|
|
126
125
|
* import { Workflow, WorkflowProxy, WorkflowProxyServer } from "effect/unstable/workflow"
|
|
127
126
|
*
|
|
128
|
-
* const EmailWorkflow = Workflow.make({
|
|
129
|
-
* name: "EmailWorkflow",
|
|
127
|
+
* const EmailWorkflow = Workflow.make("EmailWorkflow", {
|
|
130
128
|
* payload: {
|
|
131
129
|
* id: Schema.String,
|
|
132
130
|
* to: Schema.String
|
|
@@ -161,17 +159,17 @@ export const toHttpApiGroup = <const Name extends string, const Workflows extend
|
|
|
161
159
|
let group = HttpApiGroup.make(name)
|
|
162
160
|
for (const workflow_ of workflows) {
|
|
163
161
|
const workflow = workflow_ as Workflow.AnyWithProps
|
|
164
|
-
const path = `/${tagToPath(workflow.
|
|
162
|
+
const path = `/${tagToPath(workflow._tag)}` as const
|
|
165
163
|
group = group.add(
|
|
166
|
-
HttpApiEndpoint.post(workflow.
|
|
164
|
+
HttpApiEndpoint.post(workflow._tag, path, {
|
|
167
165
|
payload: workflow.payloadSchema,
|
|
168
166
|
success: workflow.successSchema,
|
|
169
167
|
error: workflow.errorSchema
|
|
170
168
|
}).annotateMerge(workflow.annotations),
|
|
171
|
-
HttpApiEndpoint.post(workflow.
|
|
169
|
+
HttpApiEndpoint.post(workflow._tag + "Discard", `${path}/discard`, {
|
|
172
170
|
payload: workflow.payloadSchema
|
|
173
171
|
}).annotateMerge(workflow.annotations),
|
|
174
|
-
HttpApiEndpoint.post(workflow.
|
|
172
|
+
HttpApiEndpoint.post(workflow._tag + "Resume", `${path}/resume`, {
|
|
175
173
|
payload: ResumePayload
|
|
176
174
|
}).annotateMerge(workflow.annotations)
|
|
177
175
|
) as any
|
|
@@ -67,35 +67,35 @@ export const layerHttpApi = <
|
|
|
67
67
|
const workflow = workflow_ as Workflow.AnyWithProps
|
|
68
68
|
handlers = handlers
|
|
69
69
|
.handle(
|
|
70
|
-
workflow.
|
|
70
|
+
workflow._tag as any,
|
|
71
71
|
({ payload }: { payload: any }) =>
|
|
72
72
|
workflow.execute(payload).pipe(
|
|
73
73
|
Effect.tapDefect(Effect.logError),
|
|
74
74
|
Effect.annotateLogs({
|
|
75
75
|
module: "WorkflowProxyServer",
|
|
76
|
-
method: workflow.
|
|
76
|
+
method: workflow._tag
|
|
77
77
|
})
|
|
78
78
|
)
|
|
79
79
|
)
|
|
80
80
|
.handle(
|
|
81
|
-
workflow.
|
|
81
|
+
workflow._tag + "Discard" as any,
|
|
82
82
|
({ payload }: { payload: any }) =>
|
|
83
83
|
workflow.execute(payload, { discard: true } as any).pipe(
|
|
84
84
|
Effect.tapDefect(Effect.logError),
|
|
85
85
|
Effect.annotateLogs({
|
|
86
86
|
module: "WorkflowProxyServer",
|
|
87
|
-
method: workflow.
|
|
87
|
+
method: workflow._tag + "Discard"
|
|
88
88
|
})
|
|
89
89
|
)
|
|
90
90
|
)
|
|
91
91
|
.handle(
|
|
92
|
-
workflow.
|
|
92
|
+
workflow._tag + "Resume" as any,
|
|
93
93
|
({ payload }: { payload: any }) =>
|
|
94
94
|
workflow.resume(payload.executionId).pipe(
|
|
95
95
|
Effect.tapDefect(Effect.logError),
|
|
96
96
|
Effect.annotateLogs({
|
|
97
97
|
module: "WorkflowProxyServer",
|
|
98
|
-
method: workflow.
|
|
98
|
+
method: workflow._tag + "Resume"
|
|
99
99
|
})
|
|
100
100
|
)
|
|
101
101
|
)
|
|
@@ -127,7 +127,7 @@ export const layerRpcHandlers = <
|
|
|
127
127
|
const handlers = new Map<string, Rpc.Handler<string>>()
|
|
128
128
|
for (const workflow_ of workflows) {
|
|
129
129
|
const workflow = workflow_ as Workflow.AnyWithProps
|
|
130
|
-
const tag = `${prefix}${workflow.
|
|
130
|
+
const tag = `${prefix}${workflow._tag}`
|
|
131
131
|
const tagDiscard = `${tag}Discard`
|
|
132
132
|
const tagResume = `${tag}Resume`
|
|
133
133
|
const key = `effect/rpc/Rpc/${tag}`
|