@effect/workflow 0.1.0

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.
Files changed (58) hide show
  1. package/Activity/package.json +6 -0
  2. package/DurableClock/package.json +6 -0
  3. package/DurableDeferred/package.json +6 -0
  4. package/LICENSE +21 -0
  5. package/README.md +133 -0
  6. package/Workflow/package.json +6 -0
  7. package/WorkflowEngine/package.json +6 -0
  8. package/dist/cjs/Activity.js +100 -0
  9. package/dist/cjs/Activity.js.map +1 -0
  10. package/dist/cjs/DurableClock.js +49 -0
  11. package/dist/cjs/DurableClock.js.map +1 -0
  12. package/dist/cjs/DurableDeferred.js +158 -0
  13. package/dist/cjs/DurableDeferred.js.map +1 -0
  14. package/dist/cjs/Workflow.js +198 -0
  15. package/dist/cjs/Workflow.js.map +1 -0
  16. package/dist/cjs/WorkflowEngine.js +25 -0
  17. package/dist/cjs/WorkflowEngine.js.map +1 -0
  18. package/dist/cjs/index.js +18 -0
  19. package/dist/cjs/index.js.map +1 -0
  20. package/dist/cjs/internal/crypto.js +19 -0
  21. package/dist/cjs/internal/crypto.js.map +1 -0
  22. package/dist/dts/Activity.d.ts +70 -0
  23. package/dist/dts/Activity.d.ts.map +1 -0
  24. package/dist/dts/DurableClock.d.ts +42 -0
  25. package/dist/dts/DurableClock.d.ts.map +1 -0
  26. package/dist/dts/DurableDeferred.d.ts +252 -0
  27. package/dist/dts/DurableDeferred.d.ts.map +1 -0
  28. package/dist/dts/Workflow.d.ts +211 -0
  29. package/dist/dts/Workflow.d.ts.map +1 -0
  30. package/dist/dts/WorkflowEngine.d.ts +91 -0
  31. package/dist/dts/WorkflowEngine.d.ts.map +1 -0
  32. package/dist/dts/index.d.ts +21 -0
  33. package/dist/dts/index.d.ts.map +1 -0
  34. package/dist/dts/internal/crypto.d.ts +2 -0
  35. package/dist/dts/internal/crypto.d.ts.map +1 -0
  36. package/dist/esm/Activity.js +90 -0
  37. package/dist/esm/Activity.js.map +1 -0
  38. package/dist/esm/DurableClock.js +40 -0
  39. package/dist/esm/DurableClock.js.map +1 -0
  40. package/dist/esm/DurableDeferred.js +155 -0
  41. package/dist/esm/DurableDeferred.js.map +1 -0
  42. package/dist/esm/Workflow.js +183 -0
  43. package/dist/esm/Workflow.js.map +1 -0
  44. package/dist/esm/WorkflowEngine.js +15 -0
  45. package/dist/esm/WorkflowEngine.js.map +1 -0
  46. package/dist/esm/index.js +21 -0
  47. package/dist/esm/index.js.map +1 -0
  48. package/dist/esm/internal/crypto.js +11 -0
  49. package/dist/esm/internal/crypto.js.map +1 -0
  50. package/dist/esm/package.json +4 -0
  51. package/package.json +74 -0
  52. package/src/Activity.ts +177 -0
  53. package/src/DurableClock.ts +82 -0
  54. package/src/DurableDeferred.ts +461 -0
  55. package/src/Workflow.ts +401 -0
  56. package/src/WorkflowEngine.ts +122 -0
  57. package/src/index.ts +24 -0
  58. package/src/internal/crypto.ts +15 -0
@@ -0,0 +1,252 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import type * as Brand from "effect/Brand";
5
+ import type * as Cause from "effect/Cause";
6
+ import * as Effect from "effect/Effect";
7
+ import * as Exit from "effect/Exit";
8
+ import * as Schema from "effect/Schema";
9
+ import type * as Workflow from "./Workflow.js";
10
+ import type { WorkflowEngine, WorkflowInstance } from "./WorkflowEngine.js";
11
+ /**
12
+ * @since 1.0.0
13
+ * @category Symbols
14
+ */
15
+ export declare const TypeId: unique symbol;
16
+ /**
17
+ * @since 1.0.0
18
+ * @category Symbols
19
+ */
20
+ export type TypeId = typeof TypeId;
21
+ /**
22
+ * @since 1.0.0
23
+ * @category Models
24
+ */
25
+ export interface DurableDeferred<Success extends Schema.Schema.Any, Error extends Schema.Schema.All = typeof Schema.Never> {
26
+ readonly [TypeId]: TypeId;
27
+ readonly name: string;
28
+ readonly successSchema: Success;
29
+ readonly errorSchema: Error;
30
+ readonly exitSchema: Schema.Exit<Success, Error, typeof Schema.Defect>;
31
+ }
32
+ /**
33
+ * @since 1.0.0
34
+ * @category Models
35
+ */
36
+ export interface Any {
37
+ readonly [TypeId]: TypeId;
38
+ readonly name: string;
39
+ readonly successSchema: Schema.Schema.Any;
40
+ readonly errorSchema: Schema.Schema.All;
41
+ readonly exitSchema: Schema.Exit<any, any, any>;
42
+ }
43
+ /**
44
+ * @since 1.0.0
45
+ * @category Constructors
46
+ */
47
+ export declare const make: <Success extends Schema.Schema.Any = typeof Schema.Void, Error extends Schema.Schema.All = typeof Schema.Never>(name: string, options?: {
48
+ readonly success?: Success;
49
+ readonly error?: Error;
50
+ }) => DurableDeferred<Success, Error>;
51
+ declare const await_: <Success extends Schema.Schema.Any, Error extends Schema.Schema.All>(self: DurableDeferred<Success, Error>) => Effect.Effect<Success["Type"], Error["Type"], WorkflowEngine | WorkflowInstance | Success["Context"] | Error["Context"]>;
52
+ export {
53
+ /**
54
+ * @since 1.0.0
55
+ * @category Combinators
56
+ */
57
+ await_ as await };
58
+ /**
59
+ * @since 1.0.0
60
+ * @category Token
61
+ */
62
+ export declare const TokenTypeId: unique symbol;
63
+ /**
64
+ * @since 1.0.0
65
+ * @category Token
66
+ */
67
+ export type TokenTypeId = typeof TokenTypeId;
68
+ /**
69
+ * @since 1.0.0
70
+ * @category Token
71
+ */
72
+ export type Token = Brand.Branded<string, TokenTypeId>;
73
+ /**
74
+ * @since 1.0.0
75
+ * @category Token
76
+ */
77
+ export declare const Token: Schema.brand<typeof Schema.String, typeof TokenTypeId>;
78
+ declare const TokenParsed_base: Schema.Class<TokenParsed, {
79
+ workflowName: typeof Schema.String;
80
+ executionId: typeof Schema.String;
81
+ deferredName: typeof Schema.String;
82
+ }, Schema.Struct.Encoded<{
83
+ workflowName: typeof Schema.String;
84
+ executionId: typeof Schema.String;
85
+ deferredName: typeof Schema.String;
86
+ }>, never, {
87
+ readonly executionId: string;
88
+ } & {
89
+ readonly workflowName: string;
90
+ } & {
91
+ readonly deferredName: string;
92
+ }, {}, {}>;
93
+ /**
94
+ * @since 1.0.0
95
+ * @category Token
96
+ */
97
+ export declare class TokenParsed extends TokenParsed_base {
98
+ /**
99
+ * @since 1.0.0
100
+ */
101
+ get asToken(): Token;
102
+ /**
103
+ * @since 1.0.0
104
+ */
105
+ static readonly FromString: Schema.Schema<TokenParsed, string>;
106
+ /**
107
+ * @since 1.0.0
108
+ */
109
+ static readonly fromString: (i: string, overrideOptions?: import("effect/SchemaAST").ParseOptions) => TokenParsed;
110
+ /**
111
+ * @since 1.0.0
112
+ */
113
+ static readonly encode: (a: TokenParsed, overrideOptions?: import("effect/SchemaAST").ParseOptions) => string;
114
+ }
115
+ /**
116
+ * @since 1.0.0
117
+ * @category Token
118
+ */
119
+ export declare const token: <Success extends Schema.Schema.Any, Error extends Schema.Schema.All>(self: DurableDeferred<Success, Error>) => Effect.Effect<Token, never, WorkflowInstance>;
120
+ /**
121
+ * @since 1.0.0
122
+ * @category Token
123
+ */
124
+ export declare const tokenFromExecutionId: {
125
+ /**
126
+ * @since 1.0.0
127
+ * @category Token
128
+ */
129
+ (options: {
130
+ readonly workflow: Workflow.Any;
131
+ readonly executionId: string;
132
+ }): <Success extends Schema.Schema.Any, Error extends Schema.Schema.All>(self: DurableDeferred<Success, Error>) => Token;
133
+ /**
134
+ * @since 1.0.0
135
+ * @category Token
136
+ */
137
+ <Success extends Schema.Schema.Any, Error extends Schema.Schema.All>(self: DurableDeferred<Success, Error>, options: {
138
+ readonly workflow: Workflow.Any;
139
+ readonly executionId: string;
140
+ }): Token;
141
+ };
142
+ /**
143
+ * @since 1.0.0
144
+ * @category Token
145
+ */
146
+ export declare const tokenFromPayload: {
147
+ /**
148
+ * @since 1.0.0
149
+ * @category Token
150
+ */
151
+ <W extends Workflow.Any>(options: {
152
+ readonly workflow: W;
153
+ readonly payload: Schema.Simplify<Schema.Struct.Constructor<W["payloadSchema"]["fields"]>>;
154
+ }): <Success extends Schema.Schema.Any, Error extends Schema.Schema.All>(self: DurableDeferred<Success, Error>) => Effect.Effect<Token>;
155
+ /**
156
+ * @since 1.0.0
157
+ * @category Token
158
+ */
159
+ <Success extends Schema.Schema.Any, Error extends Schema.Schema.All, W extends Workflow.Any>(self: DurableDeferred<Success, Error>, options: {
160
+ readonly workflow: W;
161
+ readonly payload: Schema.Simplify<Schema.Struct.Constructor<W["payloadSchema"]["fields"]>>;
162
+ }): Effect.Effect<Token>;
163
+ };
164
+ /**
165
+ * @since 1.0.0
166
+ * @category Combinators
167
+ */
168
+ export declare const done: {
169
+ /**
170
+ * @since 1.0.0
171
+ * @category Combinators
172
+ */
173
+ <Success extends Schema.Schema.Any, Error extends Schema.Schema.All>(options: {
174
+ readonly token: Token;
175
+ readonly exit: Exit.Exit<Success["Type"], Error["Type"]>;
176
+ }): (self: DurableDeferred<Success, Error>) => Effect.Effect<void, never, WorkflowEngine | Success["Context"] | Error["Context"]>;
177
+ /**
178
+ * @since 1.0.0
179
+ * @category Combinators
180
+ */
181
+ <Success extends Schema.Schema.Any, Error extends Schema.Schema.All>(self: DurableDeferred<Success, Error>, options: {
182
+ readonly token: Token;
183
+ readonly exit: Exit.Exit<Success["Type"], Error["Type"]>;
184
+ }): Effect.Effect<void, never, WorkflowEngine | Success["Context"] | Error["Context"]>;
185
+ };
186
+ /**
187
+ * @since 1.0.0
188
+ * @category Combinators
189
+ */
190
+ export declare const succeed: {
191
+ /**
192
+ * @since 1.0.0
193
+ * @category Combinators
194
+ */
195
+ <Success extends Schema.Schema.Any, Error extends Schema.Schema.All>(options: {
196
+ readonly token: Token;
197
+ readonly value: Success["Type"];
198
+ }): (self: DurableDeferred<Success, Error>) => Effect.Effect<void, never, WorkflowEngine | Success["Context"]>;
199
+ /**
200
+ * @since 1.0.0
201
+ * @category Combinators
202
+ */
203
+ <Success extends Schema.Schema.Any, Error extends Schema.Schema.All>(self: DurableDeferred<Success, Error>, options: {
204
+ readonly token: Token;
205
+ readonly value: Success["Type"];
206
+ }): Effect.Effect<void, never, WorkflowEngine | Success["Context"]>;
207
+ };
208
+ /**
209
+ * @since 1.0.0
210
+ * @category Combinators
211
+ */
212
+ export declare const fail: {
213
+ /**
214
+ * @since 1.0.0
215
+ * @category Combinators
216
+ */
217
+ <Success extends Schema.Schema.Any, Error extends Schema.Schema.All>(options: {
218
+ readonly token: Token;
219
+ readonly error: Error["Type"];
220
+ }): (self: DurableDeferred<Success, Error>) => Effect.Effect<void, never, WorkflowEngine | Error["Context"]>;
221
+ /**
222
+ * @since 1.0.0
223
+ * @category Combinators
224
+ */
225
+ <Success extends Schema.Schema.Any, Error extends Schema.Schema.All>(self: DurableDeferred<Success, Error>, options: {
226
+ readonly token: Token;
227
+ readonly error: Error["Type"];
228
+ }): Effect.Effect<void, never, WorkflowEngine | Error["Context"]>;
229
+ };
230
+ /**
231
+ * @since 1.0.0
232
+ * @category Combinators
233
+ */
234
+ export declare const failCause: {
235
+ /**
236
+ * @since 1.0.0
237
+ * @category Combinators
238
+ */
239
+ <Success extends Schema.Schema.Any, Error extends Schema.Schema.All>(options: {
240
+ readonly token: Token;
241
+ readonly cause: Cause.Cause<Error["Type"]>;
242
+ }): (self: DurableDeferred<Success, Error>) => Effect.Effect<void, never, WorkflowEngine | Error["Context"]>;
243
+ /**
244
+ * @since 1.0.0
245
+ * @category Combinators
246
+ */
247
+ <Success extends Schema.Schema.Any, Error extends Schema.Schema.All>(self: DurableDeferred<Success, Error>, options: {
248
+ readonly token: Token;
249
+ readonly cause: Cause.Cause<Error["Type"]>;
250
+ }): Effect.Effect<void, never, WorkflowEngine | Error["Context"]>;
251
+ };
252
+ //# sourceMappingURL=DurableDeferred.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DurableDeferred.d.ts","sourceRoot":"","sources":["../../src/DurableDeferred.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,211 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as Exit from "effect/Exit";
3
+ import * as Layer from "effect/Layer";
4
+ import type { Pipeable } from "effect/Pipeable";
5
+ import * as PrimaryKey from "effect/PrimaryKey";
6
+ import * as Schedule from "effect/Schedule";
7
+ import * as Schema from "effect/Schema";
8
+ import type * as AST from "effect/SchemaAST";
9
+ import type { WorkflowEngine, WorkflowInstance } from "./WorkflowEngine.js";
10
+ /**
11
+ * @since 1.0.0
12
+ * @category Symbols
13
+ */
14
+ export declare const TypeId: unique symbol;
15
+ /**
16
+ * @since 1.0.0
17
+ * @category Symbols
18
+ */
19
+ export type TypeId = typeof TypeId;
20
+ /**
21
+ * @since 1.0.0
22
+ * @category Models
23
+ */
24
+ export interface Workflow<Name extends string, Payload extends AnyStructSchema, Success extends Schema.Schema.Any, Error extends Schema.Schema.All> {
25
+ readonly [TypeId]: TypeId;
26
+ readonly name: Name;
27
+ readonly payloadSchema: Payload;
28
+ readonly successSchema: Success;
29
+ readonly errorSchema: Error;
30
+ /**
31
+ * Execute the workflow with the given payload.
32
+ */
33
+ readonly execute: <const Discard extends boolean = false>(payload: [keyof Payload["fields"]] extends [never] ? void : Schema.Simplify<Schema.Struct.Constructor<Payload["fields"]>>, options?: {
34
+ readonly discard?: Discard;
35
+ }) => Effect.Effect<Discard extends true ? void : Success["Type"], Discard extends true ? never : Error["Type"], WorkflowEngine | Registration<Name> | Payload["Context"] | Success["Context"] | Error["Context"]>;
36
+ /**
37
+ * Interrupt a workflow execution for the given execution ID.
38
+ */
39
+ readonly interrupt: (executionId: string) => Effect.Effect<void, never, WorkflowEngine | Registration<Name>>;
40
+ /**
41
+ * Create a layer that registers the workflow and provides an effect to
42
+ * execute it.
43
+ */
44
+ readonly toLayer: <R>(execute: (payload: Payload["Type"], executionId: string) => Effect.Effect<Success["Type"], Error["Type"], R>) => Layer.Layer<Registration<Name> | WorkflowEngine, never, WorkflowEngine | Exclude<R, WorkflowEngine | WorkflowInstance> | Payload["Context"] | Success["Context"] | Error["Context"]>;
45
+ /**
46
+ * For the given payload, compute the deterministic execution ID.
47
+ */
48
+ readonly executionId: (payload: Schema.Simplify<Schema.Struct.Constructor<Payload["fields"]>>) => Effect.Effect<string>;
49
+ }
50
+ /**
51
+ * @since 1.0.0
52
+ */
53
+ export interface AnyStructSchema extends Pipeable {
54
+ readonly [Schema.TypeId]: any;
55
+ readonly make: any;
56
+ readonly Type: any;
57
+ readonly Encoded: any;
58
+ readonly Context: any;
59
+ readonly ast: AST.AST;
60
+ readonly fields: Schema.Struct.Fields;
61
+ readonly annotations: any;
62
+ }
63
+ /**
64
+ * @since 1.0.0
65
+ * @category constructors
66
+ */
67
+ export interface AnyTaggedRequestSchema extends AnyStructSchema {
68
+ readonly _tag: string;
69
+ readonly Type: PrimaryKey.PrimaryKey;
70
+ readonly success: Schema.Schema.Any;
71
+ readonly failure: Schema.Schema.All;
72
+ }
73
+ /**
74
+ * @since 1.0.0
75
+ * @category Models
76
+ */
77
+ export interface Registration<Name extends string> {
78
+ readonly _: unique symbol;
79
+ readonly name: Name;
80
+ }
81
+ /**
82
+ * @since 1.0.0
83
+ * @category Models
84
+ */
85
+ export interface Any {
86
+ readonly [TypeId]: TypeId;
87
+ readonly name: string;
88
+ readonly payloadSchema: AnyStructSchema;
89
+ readonly successSchema: Schema.Schema.Any;
90
+ readonly errorSchema: Schema.Schema.All;
91
+ readonly executionId: (payload: any) => Effect.Effect<string>;
92
+ }
93
+ /**
94
+ * @since 1.0.0
95
+ * @category Constructors
96
+ */
97
+ export declare const make: <const Name extends string, Payload extends Schema.Struct.Fields | AnyStructSchema, Success extends Schema.Schema.Any = typeof Schema.Void, Error extends Schema.Schema.All = typeof Schema.Never>(options: {
98
+ readonly name: Name;
99
+ readonly payload: Payload;
100
+ readonly idempotencyKey: (payload: Payload extends Schema.Struct.Fields ? Schema.Struct.Type<Payload> : Payload["Type"]) => string;
101
+ readonly success?: Success;
102
+ readonly error?: Error;
103
+ readonly suspendedRetrySchedule?: Schedule.Schedule<any, unknown> | undefined;
104
+ }) => Workflow<Name, Payload extends Schema.Struct.Fields ? Schema.Struct<Payload> : Payload, Success, Error>;
105
+ /**
106
+ * @since 1.0.0
107
+ * @category Constructors
108
+ */
109
+ export declare const fromTaggedRequest: <S extends AnyTaggedRequestSchema>(schema: S, options?: {
110
+ readonly suspendedRetrySchedule?: Schedule.Schedule<any, unknown> | undefined;
111
+ }) => Workflow<S["_tag"], S, S["success"], S["failure"]>;
112
+ /**
113
+ * @since 1.0.0
114
+ * @category Result
115
+ */
116
+ export declare const ResultTypeId: unique symbol;
117
+ /**
118
+ * @since 1.0.0
119
+ * @category Result
120
+ */
121
+ export type ResultTypeId = typeof ResultTypeId;
122
+ /**
123
+ * @since 1.0.0
124
+ * @category Result
125
+ */
126
+ export declare const isResult: <A = unknown, E = unknown>(u: unknown) => u is Result<A, E>;
127
+ /**
128
+ * @since 1.0.0
129
+ * @category Result
130
+ */
131
+ export type Result<A, E> = Complete<A, E> | Suspended;
132
+ /**
133
+ * @since 1.0.0
134
+ * @category Result
135
+ */
136
+ export type ResultEncoded<A, E> = CompleteEncoded<A, E> | typeof Suspended.Encoded;
137
+ declare const Complete_base: new <A_1 extends Record<string, any> = {}>(args: import("effect/Types").Equals<A_1, {}> extends true ? void : { readonly [P in keyof A_1 as P extends "_tag" ? never : P]: A_1[P]; }) => Readonly<A_1> & {
138
+ readonly _tag: "Complete";
139
+ };
140
+ /**
141
+ * @since 1.0.0
142
+ * @category Result
143
+ */
144
+ export declare class Complete<A, E> extends Complete_base<{
145
+ readonly exit: Exit.Exit<A, E>;
146
+ }> {
147
+ /**
148
+ * @since 1.0.0
149
+ */
150
+ readonly [ResultTypeId]: ResultTypeId;
151
+ /**
152
+ * @since 1.0.0
153
+ */
154
+ static SchemaFromSelf<Success extends Schema.Schema.Any, Error extends Schema.Schema.All>(_options: {
155
+ readonly success: Success;
156
+ readonly error: Error;
157
+ }): Schema.Schema<Complete<Success["Type"], Error["Type"]>>;
158
+ /**
159
+ * @since 1.0.0
160
+ */
161
+ static SchemaEncoded<Success extends Schema.Schema.Any, Error extends Schema.Schema.All>(options: {
162
+ readonly success: Success;
163
+ readonly error: Error;
164
+ }): Schema.Struct<{
165
+ _tag: Schema.tag<"Complete">;
166
+ exit: Schema.Exit<Success, Error, typeof Schema.Defect>;
167
+ }>;
168
+ /**
169
+ * @since 1.0.0
170
+ */
171
+ static Schema<Success extends Schema.Schema.Any, Error extends Schema.Schema.All>(options: {
172
+ readonly success: Success;
173
+ readonly error: Error;
174
+ }): Schema.Schema<Complete<Success["Type"], Error["Type"]>, CompleteEncoded<Success["Encoded"], Error["Encoded"]>>;
175
+ }
176
+ /**
177
+ * @since 1.0.0
178
+ * @category Result
179
+ */
180
+ export interface CompleteEncoded<A, E> {
181
+ readonly _tag: "Complete";
182
+ readonly exit: Schema.ExitEncoded<A, E, unknown>;
183
+ }
184
+ declare const Suspended_base: Schema.TaggedClass<Suspended, "Suspended", {
185
+ readonly _tag: Schema.tag<"Suspended">;
186
+ }>;
187
+ /**
188
+ * @since 1.0.0
189
+ * @category Result
190
+ */
191
+ export declare class Suspended extends Suspended_base {
192
+ /**
193
+ * @since 1.0.0
194
+ */
195
+ readonly [ResultTypeId]: ResultTypeId;
196
+ }
197
+ /**
198
+ * @since 1.0.0
199
+ * @category Result
200
+ */
201
+ export declare const Result: <Success extends Schema.Schema.Any, Error extends Schema.Schema.All>(options: {
202
+ readonly success: Success;
203
+ readonly error: Error;
204
+ }) => Schema.Schema<Result<Success["Type"], Error["Type"]>, ResultEncoded<Success["Encoded"], Error["Encoded"]>, Success["Context"] | Error["Context"]>;
205
+ /**
206
+ * @since 1.0.0
207
+ * @category Result
208
+ */
209
+ export declare const intoResult: <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<Result<A, E>, never, R | WorkflowInstance>;
210
+ export {};
211
+ //# sourceMappingURL=Workflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Workflow.d.ts","sourceRoot":"","sources":["../../src/Workflow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import * as Context from "effect/Context";
5
+ import type * as Effect from "effect/Effect";
6
+ import type * as Option from "effect/Option";
7
+ import type * as Schema from "effect/Schema";
8
+ import type * as Activity from "./Activity.js";
9
+ import type { DurableClock } from "./DurableClock.js";
10
+ import type * as DurableDeferred from "./DurableDeferred.js";
11
+ import type * as Workflow from "./Workflow.js";
12
+ declare const WorkflowEngine_base: Context.TagClass<WorkflowEngine, "@effect/workflow/WorkflowEngine", {
13
+ /**
14
+ * Register a workflow with the engine.
15
+ */
16
+ readonly register: (workflow: Workflow.Any, execute: (payload: object, executionId: string) => Effect.Effect<unknown, unknown, WorkflowInstance | WorkflowEngine>) => Effect.Effect<void>;
17
+ /**
18
+ * Execute a registered workflow.
19
+ */
20
+ readonly execute: <const Discard extends boolean>(options: {
21
+ readonly workflow: Workflow.Any;
22
+ readonly executionId: string;
23
+ readonly payload: object;
24
+ readonly discard: Discard;
25
+ }) => Effect.Effect<Discard extends true ? void : Workflow.Result<unknown, unknown>>;
26
+ /**
27
+ * Interrupt a registered workflow.
28
+ */
29
+ readonly interrupt: (workflow: Workflow.Any, executionId: string) => Effect.Effect<void>;
30
+ /**
31
+ * Resume a suspended workflow.
32
+ */
33
+ readonly resume: (workflowName: string, executionId: string) => Effect.Effect<void>;
34
+ /**
35
+ * Execute an activity from a workflow.
36
+ */
37
+ readonly activityExecute: (options: {
38
+ readonly activity: Activity.Any;
39
+ readonly attempt: number;
40
+ }) => Effect.Effect<Workflow.Result<unknown, unknown>, never, WorkflowInstance>;
41
+ /**
42
+ * Try to retrieve the result of an DurableDeferred
43
+ */
44
+ readonly deferredResult: (deferred: DurableDeferred.Any) => Effect.Effect<Option.Option<Schema.ExitEncoded<unknown, unknown, unknown>>, never, WorkflowInstance>;
45
+ /**
46
+ * Set the result of a DurableDeferred, and then resume any waiting
47
+ * workflows.
48
+ */
49
+ readonly deferredDone: (options: {
50
+ readonly workflowName: string;
51
+ readonly executionId: string;
52
+ readonly deferred: DurableDeferred.Any;
53
+ readonly exit: Schema.ExitEncoded<unknown, unknown, unknown>;
54
+ }) => Effect.Effect<void>;
55
+ /**
56
+ * Schedule a wake up for a DurableClock
57
+ */
58
+ readonly scheduleClock: (options: {
59
+ readonly workflow: Workflow.Any;
60
+ readonly executionId: string;
61
+ readonly clock: DurableClock;
62
+ }) => Effect.Effect<void>;
63
+ }>;
64
+ /**
65
+ * @since 1.0.0
66
+ * @category Services
67
+ */
68
+ export declare class WorkflowEngine extends WorkflowEngine_base {
69
+ }
70
+ declare const WorkflowInstance_base: Context.TagClass<WorkflowInstance, "@effect/workflow/WorkflowEngine/WorkflowInstance", {
71
+ /**
72
+ * The workflow execution ID.
73
+ */
74
+ readonly executionId: string;
75
+ /**
76
+ * The workflow definition.
77
+ */
78
+ readonly workflow: Workflow.Any;
79
+ /**
80
+ * Whether the workflow has requested to be suspended.
81
+ */
82
+ suspended: boolean;
83
+ }>;
84
+ /**
85
+ * @since 1.0.0
86
+ * @category Services
87
+ */
88
+ export declare class WorkflowInstance extends WorkflowInstance_base {
89
+ }
90
+ export {};
91
+ //# sourceMappingURL=WorkflowEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowEngine.d.ts","sourceRoot":"","sources":["../../src/WorkflowEngine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ export * as Activity from "./Activity.js";
5
+ /**
6
+ * @since 1.0.0
7
+ */
8
+ export * as DurableClock from "./DurableClock.js";
9
+ /**
10
+ * @since 1.0.0
11
+ */
12
+ export * as DurableDeferred from "./DurableDeferred.js";
13
+ /**
14
+ * @since 1.0.0
15
+ */
16
+ export * as Workflow from "./Workflow.js";
17
+ /**
18
+ * @since 1.0.0
19
+ */
20
+ export * as WorkflowEngine from "./WorkflowEngine.js";
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AAEvD;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=crypto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../../src/internal/crypto.ts"],"names":[],"mappings":""}