@temporal-contract/worker 2.0.0 → 2.2.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.
- package/dist/activity.cjs +1 -1
- package/dist/activity.d.cts +27 -4
- package/dist/activity.d.cts.map +1 -1
- package/dist/activity.d.mts +28 -5
- package/dist/activity.d.mts.map +1 -1
- package/dist/activity.mjs +1 -1
- package/dist/activity.mjs.map +1 -1
- package/dist/{errors-BeIXtRJe.d.cts → errors-DTq5OTwH.d.cts} +64 -5
- package/dist/{errors-BeIXtRJe.d.cts.map → errors-DTq5OTwH.d.cts.map} +1 -1
- package/dist/{errors-BjNG_jUi.d.mts → errors-DbPMxULo.d.mts} +64 -5
- package/dist/{errors-BjNG_jUi.d.mts.map → errors-DbPMxULo.d.mts.map} +1 -1
- package/dist/{internal--45IXCxX.mjs → internal-BzG1KhEK.mjs} +127 -49
- package/dist/internal-BzG1KhEK.mjs.map +1 -0
- package/dist/{internal-C8MB-kez.cjs → internal-Cwch3OHR.cjs} +151 -55
- package/dist/worker.d.mts +1 -1
- package/dist/workflow.cjs +169 -119
- package/dist/workflow.d.cts +81 -69
- package/dist/workflow.d.cts.map +1 -1
- package/dist/workflow.d.mts +81 -68
- package/dist/workflow.d.mts.map +1 -1
- package/dist/workflow.mjs +168 -121
- package/dist/workflow.mjs.map +1 -1
- package/package.json +6 -6
- package/dist/internal--45IXCxX.mjs.map +0 -1
package/dist/workflow.d.cts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { _ as
|
|
2
|
-
import { ActivityDefinition, ContractDefinition, QueryDefinition, SignalDefinition, UpdateDefinition,
|
|
1
|
+
import { _ as ClientInferOutput, a as ChildWorkflowError, c as QueryOutputValidationError, d as UpdateOutputValidationError, f as WorkflowCancelledError, g as ClientInferInput, h as WorkflowScopeError, i as ChildWorkflowCancelledError, l as SignalInputValidationError, m as WorkflowOutputValidationError, n as ActivityInputValidationError, o as ChildWorkflowNotFoundError, p as WorkflowInputValidationError, r as ActivityOutputValidationError, s as QueryInputValidationError, u as UpdateInputValidationError, v as WorkerInferInput, y as WorkerInferOutput } from "./errors-DTq5OTwH.cjs";
|
|
2
|
+
import { ActivityDefinition, AnyWorkflowDefinition, ContractDefinition, QueryDefinition, QueryNamesOf, SignalDefinition, SignalNamesOf, UpdateDefinition, UpdateNamesOf } from "@temporal-contract/contract";
|
|
3
3
|
import { ResultAsync } from "neverthrow";
|
|
4
4
|
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
5
5
|
import { ActivityOptions, ChildWorkflowOptions, ContinueAsNewOptions, WorkflowInfo } from "@temporalio/workflow";
|
|
6
|
-
|
|
7
6
|
//#region src/handlers.d.ts
|
|
8
7
|
/**
|
|
9
8
|
* Signal handler implementation
|
|
@@ -35,6 +34,51 @@ type UpdateHandlerImplementation<TUpdate extends UpdateDefinition> = (args: Work
|
|
|
35
34
|
*/
|
|
36
35
|
type TypedContinueAsNewOptions = Omit<ContinueAsNewOptions, "workflowType" | "taskQueue">;
|
|
37
36
|
//#endregion
|
|
37
|
+
//#region src/child-workflow.d.ts
|
|
38
|
+
/**
|
|
39
|
+
* Options for starting a child workflow. `taskQueue` and `args` come from
|
|
40
|
+
* the contract; everything else is forwarded to Temporal's
|
|
41
|
+
* `startChild` / `executeChild`.
|
|
42
|
+
*/
|
|
43
|
+
type TypedChildWorkflowOptions<TChildContract extends ContractDefinition, TChildWorkflowName extends keyof TChildContract["workflows"] & string> = Omit<ChildWorkflowOptions, "taskQueue" | "args"> & {
|
|
44
|
+
args: ClientInferInput<TChildContract["workflows"][TChildWorkflowName]>;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Typed handle for a child workflow with neverthrow `ResultAsync` pattern.
|
|
48
|
+
*/
|
|
49
|
+
type TypedChildWorkflowHandle<TWorkflow extends AnyWorkflowDefinition> = {
|
|
50
|
+
/**
|
|
51
|
+
* Get child workflow result with `ResultAsync` pattern.
|
|
52
|
+
*/
|
|
53
|
+
result: () => ResultAsync<ClientInferOutput<TWorkflow>, ChildWorkflowError | ChildWorkflowCancelledError>;
|
|
54
|
+
/**
|
|
55
|
+
* Child workflow ID.
|
|
56
|
+
*/
|
|
57
|
+
workflowId: string;
|
|
58
|
+
};
|
|
59
|
+
//#endregion
|
|
60
|
+
//#region src/activities-proxy.d.ts
|
|
61
|
+
/**
|
|
62
|
+
* Activity function signature from workflow execution perspective.
|
|
63
|
+
*
|
|
64
|
+
* Workflows call activities with validated input (z.input parsed) and receive validated output (z.output).
|
|
65
|
+
*/
|
|
66
|
+
type WorkflowInferActivity<TActivity extends ActivityDefinition> = (args: ClientInferInput<TActivity>) => Promise<ClientInferOutput<TActivity>>;
|
|
67
|
+
/**
|
|
68
|
+
* All global activities from a contract (workflow execution perspective).
|
|
69
|
+
*/
|
|
70
|
+
type WorkflowInferActivities<TContract extends ContractDefinition> = TContract["activities"] extends Record<string, ActivityDefinition> ? { [K in keyof TContract["activities"]]: WorkflowInferActivity<TContract["activities"][K]> } : {};
|
|
71
|
+
/**
|
|
72
|
+
* Workflow-specific activities (workflow execution perspective).
|
|
73
|
+
*/
|
|
74
|
+
type WorkflowInferWorkflowActivities<T extends AnyWorkflowDefinition> = T["activities"] extends Record<string, ActivityDefinition> ? { [K in keyof T["activities"]]: WorkflowInferActivity<T["activities"][K]> } : {};
|
|
75
|
+
/**
|
|
76
|
+
* All activities available in a workflow context (workflow execution perspective).
|
|
77
|
+
*
|
|
78
|
+
* Combines workflow-specific activities with global contract activities.
|
|
79
|
+
*/
|
|
80
|
+
type WorkflowInferWorkflowContextActivities<TContract extends ContractDefinition, TWorkflowName extends keyof TContract["workflows"] & string> = WorkflowInferWorkflowActivities<TContract["workflows"][TWorkflowName]> & WorkflowInferActivities<TContract>;
|
|
81
|
+
//#endregion
|
|
38
82
|
//#region src/workflow.d.ts
|
|
39
83
|
/**
|
|
40
84
|
* Create a typed workflow implementation with automatic validation
|
|
@@ -109,7 +153,7 @@ type TypedContinueAsNewOptions = Omit<ContinueAsNewOptions, "workflowType" | "ta
|
|
|
109
153
|
* });
|
|
110
154
|
* ```
|
|
111
155
|
*/
|
|
112
|
-
declare function declareWorkflow<TContract extends ContractDefinition, TWorkflowName extends keyof TContract["workflows"]>({
|
|
156
|
+
declare function declareWorkflow<TContract extends ContractDefinition, TWorkflowName extends keyof TContract["workflows"] & string>({
|
|
113
157
|
workflowName,
|
|
114
158
|
contract,
|
|
115
159
|
implementation,
|
|
@@ -120,11 +164,11 @@ declare function declareWorkflow<TContract extends ContractDefinition, TWorkflow
|
|
|
120
164
|
* Union of all activity names available to a workflow — the workflow-local
|
|
121
165
|
* activities plus the contract's global activities.
|
|
122
166
|
*/
|
|
123
|
-
type ActivityNamesFor<TContract extends ContractDefinition, TWorkflowName extends keyof TContract["workflows"]> = (TContract["workflows"][TWorkflowName]["activities"] extends Record<string, ActivityDefinition> ? keyof TContract["workflows"][TWorkflowName]["activities"] & string : never) | (TContract["activities"] extends Record<string, ActivityDefinition> ? keyof TContract["activities"] & string : never);
|
|
167
|
+
type ActivityNamesFor<TContract extends ContractDefinition, TWorkflowName extends keyof TContract["workflows"] & string> = (TContract["workflows"][TWorkflowName]["activities"] extends Record<string, ActivityDefinition> ? keyof TContract["workflows"][TWorkflowName]["activities"] & string : never) | (TContract["activities"] extends Record<string, ActivityDefinition> ? keyof TContract["activities"] & string : never);
|
|
124
168
|
/**
|
|
125
169
|
* Options for declaring a workflow implementation
|
|
126
170
|
*/
|
|
127
|
-
type DeclareWorkflowOptions<TContract extends ContractDefinition, TWorkflowName extends keyof TContract["workflows"]> = {
|
|
171
|
+
type DeclareWorkflowOptions<TContract extends ContractDefinition, TWorkflowName extends keyof TContract["workflows"] & string> = {
|
|
128
172
|
workflowName: TWorkflowName;
|
|
129
173
|
contract: TContract;
|
|
130
174
|
implementation: WorkflowImplementation<TContract, TWorkflowName>;
|
|
@@ -178,7 +222,7 @@ type DeclareWorkflowOptions<TContract extends ContractDefinition, TWorkflowName
|
|
|
178
222
|
* Receives a workflow context (with typed activities and utilities) and validated input arguments.
|
|
179
223
|
* Returns the workflow output which will be validated against the contract schema.
|
|
180
224
|
*/
|
|
181
|
-
type WorkflowImplementation<TContract extends ContractDefinition, TWorkflowName extends keyof TContract["workflows"]> = (context: WorkflowContext<TContract, TWorkflowName>, args: WorkerInferInput<TContract["workflows"][TWorkflowName]>) => Promise<WorkerInferOutput<TContract["workflows"][TWorkflowName]>>;
|
|
225
|
+
type WorkflowImplementation<TContract extends ContractDefinition, TWorkflowName extends keyof TContract["workflows"] & string> = (context: WorkflowContext<TContract, TWorkflowName>, args: WorkerInferInput<TContract["workflows"][TWorkflowName]>) => Promise<WorkerInferOutput<TContract["workflows"][TWorkflowName]>>;
|
|
182
226
|
/**
|
|
183
227
|
* Workflow execution context providing typed activities, workflow info, and interaction handlers
|
|
184
228
|
*
|
|
@@ -188,8 +232,8 @@ type WorkflowImplementation<TContract extends ContractDefinition, TWorkflowName
|
|
|
188
232
|
* - Signal, query, and update handler registration
|
|
189
233
|
* - Child workflow execution capabilities
|
|
190
234
|
*/
|
|
191
|
-
type WorkflowContext<TContract extends ContractDefinition, TWorkflowName extends keyof TContract["workflows"]> = {
|
|
192
|
-
activities: WorkflowInferWorkflowContextActivities<TContract, TWorkflowName
|
|
235
|
+
type WorkflowContext<TContract extends ContractDefinition, TWorkflowName extends keyof TContract["workflows"] & string> = {
|
|
236
|
+
activities: Readonly<WorkflowInferWorkflowContextActivities<TContract, TWorkflowName>>;
|
|
193
237
|
info: WorkflowInfo;
|
|
194
238
|
/**
|
|
195
239
|
* Define a signal handler within the workflow implementation
|
|
@@ -208,7 +252,7 @@ type WorkflowContext<TContract extends ContractDefinition, TWorkflowName extends
|
|
|
208
252
|
* }
|
|
209
253
|
* ```
|
|
210
254
|
*/
|
|
211
|
-
defineSignal: <K extends
|
|
255
|
+
defineSignal: <K extends SignalNamesOf<TContract["workflows"][TWorkflowName]>>(signalName: K, handler: SignalHandlerImplementation<NonNullable<TContract["workflows"][TWorkflowName]["signals"]> extends Record<string, SignalDefinition> ? NonNullable<TContract["workflows"][TWorkflowName]["signals"]>[K] extends SignalDefinition ? NonNullable<TContract["workflows"][TWorkflowName]["signals"]>[K] : never : never>) => void;
|
|
212
256
|
/**
|
|
213
257
|
* Define a query handler within the workflow implementation
|
|
214
258
|
* Allows the query handler to access workflow state
|
|
@@ -226,7 +270,7 @@ type WorkflowContext<TContract extends ContractDefinition, TWorkflowName extends
|
|
|
226
270
|
* }
|
|
227
271
|
* ```
|
|
228
272
|
*/
|
|
229
|
-
defineQuery: <K extends
|
|
273
|
+
defineQuery: <K extends QueryNamesOf<TContract["workflows"][TWorkflowName]>>(queryName: K, handler: QueryHandlerImplementation<NonNullable<TContract["workflows"][TWorkflowName]["queries"]> extends Record<string, QueryDefinition> ? NonNullable<TContract["workflows"][TWorkflowName]["queries"]>[K] extends QueryDefinition ? NonNullable<TContract["workflows"][TWorkflowName]["queries"]>[K] : never : never>) => void;
|
|
230
274
|
/**
|
|
231
275
|
* Define an update handler within the workflow implementation
|
|
232
276
|
* Allows the update handler to access and modify workflow state
|
|
@@ -245,7 +289,7 @@ type WorkflowContext<TContract extends ContractDefinition, TWorkflowName extends
|
|
|
245
289
|
* }
|
|
246
290
|
* ```
|
|
247
291
|
*/
|
|
248
|
-
defineUpdate: <K extends
|
|
292
|
+
defineUpdate: <K extends UpdateNamesOf<TContract["workflows"][TWorkflowName]>>(updateName: K, handler: UpdateHandlerImplementation<NonNullable<TContract["workflows"][TWorkflowName]["updates"]> extends Record<string, UpdateDefinition> ? NonNullable<TContract["workflows"][TWorkflowName]["updates"]>[K] extends UpdateDefinition ? NonNullable<TContract["workflows"][TWorkflowName]["updates"]>[K] : never : never>) => void;
|
|
249
293
|
/**
|
|
250
294
|
* Start a child workflow and return a typed handle with ResultAsync pattern
|
|
251
295
|
*
|
|
@@ -276,7 +320,7 @@ type WorkflowContext<TContract extends ContractDefinition, TWorkflowName extends
|
|
|
276
320
|
* );
|
|
277
321
|
* ```
|
|
278
322
|
*/
|
|
279
|
-
startChildWorkflow: <TChildContract extends ContractDefinition, TChildWorkflowName extends keyof TChildContract["workflows"]>(contract: TChildContract, workflowName: TChildWorkflowName, options: TypedChildWorkflowOptions<TChildContract, TChildWorkflowName>) => ResultAsync<TypedChildWorkflowHandle<TChildContract["workflows"][TChildWorkflowName]>, ChildWorkflowError>;
|
|
323
|
+
startChildWorkflow: <TChildContract extends ContractDefinition, TChildWorkflowName extends keyof TChildContract["workflows"] & string>(contract: TChildContract, workflowName: TChildWorkflowName, options: TypedChildWorkflowOptions<TChildContract, TChildWorkflowName>) => ResultAsync<TypedChildWorkflowHandle<TChildContract["workflows"][TChildWorkflowName]>, ChildWorkflowError | ChildWorkflowCancelledError | ChildWorkflowNotFoundError>;
|
|
280
324
|
/**
|
|
281
325
|
* Execute a child workflow (start and wait for result) with ResultAsync pattern
|
|
282
326
|
*
|
|
@@ -304,7 +348,7 @@ type WorkflowContext<TContract extends ContractDefinition, TWorkflowName extends
|
|
|
304
348
|
* );
|
|
305
349
|
* ```
|
|
306
350
|
*/
|
|
307
|
-
executeChildWorkflow: <TChildContract extends ContractDefinition, TChildWorkflowName extends keyof TChildContract["workflows"]>(contract: TChildContract, workflowName: TChildWorkflowName, options: TypedChildWorkflowOptions<TChildContract, TChildWorkflowName>) => ResultAsync<ClientInferOutput<TChildContract["workflows"][TChildWorkflowName]>, ChildWorkflowError>;
|
|
351
|
+
executeChildWorkflow: <TChildContract extends ContractDefinition, TChildWorkflowName extends keyof TChildContract["workflows"] & string>(contract: TChildContract, workflowName: TChildWorkflowName, options: TypedChildWorkflowOptions<TChildContract, TChildWorkflowName>) => ResultAsync<ClientInferOutput<TChildContract["workflows"][TChildWorkflowName]>, ChildWorkflowError | ChildWorkflowCancelledError | ChildWorkflowNotFoundError>;
|
|
308
352
|
/**
|
|
309
353
|
* Run `fn` inside a cancellable Temporal scope. If the workflow (or an
|
|
310
354
|
* ancestor scope) is cancelled while `fn` is in flight, the resulting
|
|
@@ -312,9 +356,11 @@ type WorkflowContext<TContract extends ContractDefinition, TWorkflowName extends
|
|
|
312
356
|
* rejecting — letting callers handle cancellation explicitly, typically
|
|
313
357
|
* to perform a graceful exit from the current step.
|
|
314
358
|
*
|
|
315
|
-
* Non-cancellation errors thrown by `fn`
|
|
316
|
-
*
|
|
317
|
-
* `
|
|
359
|
+
* Non-cancellation errors thrown by `fn` resolve to
|
|
360
|
+
* `err(WorkflowScopeError)` (with the original error preserved on
|
|
361
|
+
* `cause`). Both failure modes ride neverthrow's railway, so
|
|
362
|
+
* `result.match(...)` is exhaustive — nothing escapes as an unhandled
|
|
363
|
+
* rejection.
|
|
318
364
|
*
|
|
319
365
|
* @example
|
|
320
366
|
* ```ts
|
|
@@ -324,29 +370,34 @@ type WorkflowContext<TContract extends ContractDefinition, TWorkflowName extends
|
|
|
324
370
|
* });
|
|
325
371
|
*
|
|
326
372
|
* if (result.isErr()) {
|
|
327
|
-
*
|
|
328
|
-
*
|
|
329
|
-
* await context.
|
|
330
|
-
*
|
|
331
|
-
*
|
|
373
|
+
* if (result.error instanceof WorkflowCancelledError) {
|
|
374
|
+
* // workflow was cancelled — perform cleanup that must not be cancelled:
|
|
375
|
+
* await context.nonCancellableScope(async () => {
|
|
376
|
+
* await context.activities.releaseResources(args);
|
|
377
|
+
* });
|
|
378
|
+
* return { status: "cancelled" };
|
|
379
|
+
* }
|
|
380
|
+
* // result.error instanceof WorkflowScopeError — domain failure
|
|
381
|
+
* return { status: "failed" };
|
|
332
382
|
* }
|
|
333
383
|
*
|
|
334
384
|
* return { status: "ok" };
|
|
335
385
|
* }
|
|
336
386
|
* ```
|
|
337
387
|
*/
|
|
338
|
-
cancellableScope: <T>(fn: () => T | Promise<T>) => ResultAsync<T, WorkflowCancelledError>;
|
|
388
|
+
cancellableScope: <T>(fn: () => T | Promise<T>) => ResultAsync<T, WorkflowCancelledError | WorkflowScopeError>;
|
|
339
389
|
/**
|
|
340
390
|
* Run `fn` inside a non-cancellable Temporal scope. Cancellation requests
|
|
341
391
|
* from outside the scope are ignored for its duration — the idiomatic way
|
|
342
392
|
* to perform cleanup work that must not be interrupted.
|
|
343
393
|
*
|
|
344
394
|
* Returns the same `ResultAsync<...>` shape as
|
|
345
|
-
* {@link WorkflowContext.cancellableScope} for symmetry; the
|
|
346
|
-
* branch only triggers when cancellation is
|
|
347
|
-
* scope, which is rare.
|
|
395
|
+
* {@link WorkflowContext.cancellableScope} for symmetry; the
|
|
396
|
+
* `err(WorkflowCancelledError)` branch only triggers when cancellation is
|
|
397
|
+
* raised from *inside* the scope, which is rare. Non-cancellation errors
|
|
398
|
+
* surface as `err(WorkflowScopeError)`.
|
|
348
399
|
*/
|
|
349
|
-
nonCancellableScope: <T>(fn: () => T | Promise<T>) => ResultAsync<T, WorkflowCancelledError>;
|
|
400
|
+
nonCancellableScope: <T>(fn: () => T | Promise<T>) => ResultAsync<T, WorkflowCancelledError | WorkflowScopeError>;
|
|
350
401
|
/**
|
|
351
402
|
* Continue this workflow execution as a new run, optionally with a different
|
|
352
403
|
* workflow type from another contract.
|
|
@@ -376,48 +427,9 @@ type WorkflowContext<TContract extends ContractDefinition, TWorkflowName extends
|
|
|
376
427
|
*/
|
|
377
428
|
continueAsNew: {
|
|
378
429
|
/** Same-workflow continuation — args typed against this workflow's input. */(args: ClientInferInput<TContract["workflows"][TWorkflowName]>, options?: TypedContinueAsNewOptions): Promise<never>; /** Cross-contract continuation — args typed against the destination workflow. */
|
|
379
|
-
<TOtherContract extends ContractDefinition, TOtherWorkflowName extends keyof TOtherContract["workflows"]>(contract: TOtherContract, workflowName: TOtherWorkflowName, args: ClientInferInput<TOtherContract["workflows"][TOtherWorkflowName]>, options?: TypedContinueAsNewOptions): Promise<never>;
|
|
430
|
+
<TOtherContract extends ContractDefinition, TOtherWorkflowName extends keyof TOtherContract["workflows"] & string>(contract: TOtherContract, workflowName: TOtherWorkflowName, args: ClientInferInput<TOtherContract["workflows"][TOtherWorkflowName]>, options?: TypedContinueAsNewOptions): Promise<never>;
|
|
380
431
|
};
|
|
381
|
-
};
|
|
382
|
-
/**
|
|
383
|
-
* Options for starting a child workflow
|
|
384
|
-
*/
|
|
385
|
-
type TypedChildWorkflowOptions<TChildContract extends ContractDefinition, TChildWorkflowName extends keyof TChildContract["workflows"]> = Omit<ChildWorkflowOptions, "taskQueue" | "args"> & {
|
|
386
|
-
args: ClientInferInput<TChildContract["workflows"][TChildWorkflowName]>;
|
|
387
|
-
};
|
|
388
|
-
/**
|
|
389
|
-
* Typed handle for a child workflow with neverthrow ResultAsync pattern
|
|
390
|
-
*/
|
|
391
|
-
type TypedChildWorkflowHandle<TWorkflow extends WorkflowDefinition> = {
|
|
392
|
-
/**
|
|
393
|
-
* Get child workflow result with Result pattern
|
|
394
|
-
*/
|
|
395
|
-
result: () => ResultAsync<ClientInferOutput<TWorkflow>, ChildWorkflowError>;
|
|
396
|
-
/**
|
|
397
|
-
* Child workflow ID
|
|
398
|
-
*/
|
|
399
|
-
workflowId: string;
|
|
400
|
-
};
|
|
401
|
-
/**
|
|
402
|
-
* Activity function signature from workflow execution perspective
|
|
403
|
-
*
|
|
404
|
-
* Workflows call activities with validated input (z.input parsed) and receive validated output (z.output)
|
|
405
|
-
*/
|
|
406
|
-
type WorkflowInferActivity<TActivity extends ActivityDefinition> = (args: ClientInferInput<TActivity>) => Promise<ClientInferOutput<TActivity>>;
|
|
407
|
-
/**
|
|
408
|
-
* All global activities from a contract (workflow execution perspective)
|
|
409
|
-
*/
|
|
410
|
-
type WorkflowInferActivities<TContract extends ContractDefinition> = TContract["activities"] extends Record<string, ActivityDefinition> ? { [K in keyof TContract["activities"]]: WorkflowInferActivity<TContract["activities"][K]> } : {};
|
|
411
|
-
/**
|
|
412
|
-
* Workflow-specific activities (workflow execution perspective)
|
|
413
|
-
*/
|
|
414
|
-
type WorkflowInferWorkflowActivities<T extends WorkflowDefinition> = T["activities"] extends Record<string, ActivityDefinition> ? { [K in keyof T["activities"]]: WorkflowInferActivity<T["activities"][K]> } : {};
|
|
415
|
-
/**
|
|
416
|
-
* All activities available in a workflow context (workflow execution perspective)
|
|
417
|
-
*
|
|
418
|
-
* Combines workflow-specific activities with global contract activities
|
|
419
|
-
*/
|
|
420
|
-
type WorkflowInferWorkflowContextActivities<TContract extends ContractDefinition, TWorkflowName extends keyof TContract["workflows"]> = WorkflowInferWorkflowActivities<TContract["workflows"][TWorkflowName]> & WorkflowInferActivities<TContract>; //# sourceMappingURL=workflow.d.ts.map
|
|
432
|
+
}; //# sourceMappingURL=workflow.d.ts.map
|
|
421
433
|
//#endregion
|
|
422
|
-
export { ActivityInputValidationError, ActivityOutputValidationError, ChildWorkflowError, ChildWorkflowNotFoundError, QueryInputValidationError, QueryOutputValidationError, SignalInputValidationError, UpdateInputValidationError, UpdateOutputValidationError, WorkflowCancelledError, WorkflowInputValidationError, WorkflowOutputValidationError, declareWorkflow };
|
|
434
|
+
export { ActivityInputValidationError, ActivityOutputValidationError, ChildWorkflowCancelledError, ChildWorkflowError, ChildWorkflowNotFoundError, QueryInputValidationError, QueryOutputValidationError, SignalInputValidationError, UpdateInputValidationError, UpdateOutputValidationError, WorkflowCancelledError, WorkflowInputValidationError, WorkflowOutputValidationError, WorkflowScopeError, declareWorkflow };
|
|
423
435
|
//# sourceMappingURL=workflow.d.cts.map
|
package/dist/workflow.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.d.cts","names":[],"sources":["../src/handlers.ts","../src/internal.ts","../src/workflow.ts"],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"workflow.d.cts","names":[],"sources":["../src/handlers.ts","../src/internal.ts","../src/child-workflow.ts","../src/activities-proxy.ts","../src/workflow.ts"],"mappings":"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"}
|
package/dist/workflow.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { _ as
|
|
1
|
+
import { _ as ClientInferOutput, a as ChildWorkflowError, c as QueryOutputValidationError, d as UpdateOutputValidationError, f as WorkflowCancelledError, g as ClientInferInput, h as WorkflowScopeError, i as ChildWorkflowCancelledError, l as SignalInputValidationError, m as WorkflowOutputValidationError, n as ActivityInputValidationError, o as ChildWorkflowNotFoundError, p as WorkflowInputValidationError, r as ActivityOutputValidationError, s as QueryInputValidationError, u as UpdateInputValidationError, v as WorkerInferInput, y as WorkerInferOutput } from "./errors-DbPMxULo.mjs";
|
|
2
|
+
import { ActivityDefinition, AnyWorkflowDefinition, ContractDefinition, QueryDefinition, QueryNamesOf, SignalDefinition, SignalNamesOf, UpdateDefinition, UpdateNamesOf } from "@temporal-contract/contract";
|
|
2
3
|
import { ActivityOptions, ChildWorkflowOptions, ContinueAsNewOptions, WorkflowInfo } from "@temporalio/workflow";
|
|
3
4
|
import { ResultAsync } from "neverthrow";
|
|
4
|
-
import { ActivityDefinition, ContractDefinition, QueryDefinition, SignalDefinition, UpdateDefinition, WorkflowDefinition } from "@temporal-contract/contract";
|
|
5
5
|
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
6
6
|
|
|
7
7
|
//#region src/handlers.d.ts
|
|
@@ -35,6 +35,51 @@ type UpdateHandlerImplementation<TUpdate extends UpdateDefinition> = (args: Work
|
|
|
35
35
|
*/
|
|
36
36
|
type TypedContinueAsNewOptions = Omit<ContinueAsNewOptions, "workflowType" | "taskQueue">;
|
|
37
37
|
//#endregion
|
|
38
|
+
//#region src/child-workflow.d.ts
|
|
39
|
+
/**
|
|
40
|
+
* Options for starting a child workflow. `taskQueue` and `args` come from
|
|
41
|
+
* the contract; everything else is forwarded to Temporal's
|
|
42
|
+
* `startChild` / `executeChild`.
|
|
43
|
+
*/
|
|
44
|
+
type TypedChildWorkflowOptions<TChildContract extends ContractDefinition, TChildWorkflowName extends keyof TChildContract["workflows"] & string> = Omit<ChildWorkflowOptions, "taskQueue" | "args"> & {
|
|
45
|
+
args: ClientInferInput<TChildContract["workflows"][TChildWorkflowName]>;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Typed handle for a child workflow with neverthrow `ResultAsync` pattern.
|
|
49
|
+
*/
|
|
50
|
+
type TypedChildWorkflowHandle<TWorkflow extends AnyWorkflowDefinition> = {
|
|
51
|
+
/**
|
|
52
|
+
* Get child workflow result with `ResultAsync` pattern.
|
|
53
|
+
*/
|
|
54
|
+
result: () => ResultAsync<ClientInferOutput<TWorkflow>, ChildWorkflowError | ChildWorkflowCancelledError>;
|
|
55
|
+
/**
|
|
56
|
+
* Child workflow ID.
|
|
57
|
+
*/
|
|
58
|
+
workflowId: string;
|
|
59
|
+
};
|
|
60
|
+
//#endregion
|
|
61
|
+
//#region src/activities-proxy.d.ts
|
|
62
|
+
/**
|
|
63
|
+
* Activity function signature from workflow execution perspective.
|
|
64
|
+
*
|
|
65
|
+
* Workflows call activities with validated input (z.input parsed) and receive validated output (z.output).
|
|
66
|
+
*/
|
|
67
|
+
type WorkflowInferActivity<TActivity extends ActivityDefinition> = (args: ClientInferInput<TActivity>) => Promise<ClientInferOutput<TActivity>>;
|
|
68
|
+
/**
|
|
69
|
+
* All global activities from a contract (workflow execution perspective).
|
|
70
|
+
*/
|
|
71
|
+
type WorkflowInferActivities<TContract extends ContractDefinition> = TContract["activities"] extends Record<string, ActivityDefinition> ? { [K in keyof TContract["activities"]]: WorkflowInferActivity<TContract["activities"][K]> } : {};
|
|
72
|
+
/**
|
|
73
|
+
* Workflow-specific activities (workflow execution perspective).
|
|
74
|
+
*/
|
|
75
|
+
type WorkflowInferWorkflowActivities<T extends AnyWorkflowDefinition> = T["activities"] extends Record<string, ActivityDefinition> ? { [K in keyof T["activities"]]: WorkflowInferActivity<T["activities"][K]> } : {};
|
|
76
|
+
/**
|
|
77
|
+
* All activities available in a workflow context (workflow execution perspective).
|
|
78
|
+
*
|
|
79
|
+
* Combines workflow-specific activities with global contract activities.
|
|
80
|
+
*/
|
|
81
|
+
type WorkflowInferWorkflowContextActivities<TContract extends ContractDefinition, TWorkflowName extends keyof TContract["workflows"] & string> = WorkflowInferWorkflowActivities<TContract["workflows"][TWorkflowName]> & WorkflowInferActivities<TContract>;
|
|
82
|
+
//#endregion
|
|
38
83
|
//#region src/workflow.d.ts
|
|
39
84
|
/**
|
|
40
85
|
* Create a typed workflow implementation with automatic validation
|
|
@@ -109,7 +154,7 @@ type TypedContinueAsNewOptions = Omit<ContinueAsNewOptions, "workflowType" | "ta
|
|
|
109
154
|
* });
|
|
110
155
|
* ```
|
|
111
156
|
*/
|
|
112
|
-
declare function declareWorkflow<TContract extends ContractDefinition, TWorkflowName extends keyof TContract["workflows"]>({
|
|
157
|
+
declare function declareWorkflow<TContract extends ContractDefinition, TWorkflowName extends keyof TContract["workflows"] & string>({
|
|
113
158
|
workflowName,
|
|
114
159
|
contract,
|
|
115
160
|
implementation,
|
|
@@ -120,11 +165,11 @@ declare function declareWorkflow<TContract extends ContractDefinition, TWorkflow
|
|
|
120
165
|
* Union of all activity names available to a workflow — the workflow-local
|
|
121
166
|
* activities plus the contract's global activities.
|
|
122
167
|
*/
|
|
123
|
-
type ActivityNamesFor<TContract extends ContractDefinition, TWorkflowName extends keyof TContract["workflows"]> = (TContract["workflows"][TWorkflowName]["activities"] extends Record<string, ActivityDefinition> ? keyof TContract["workflows"][TWorkflowName]["activities"] & string : never) | (TContract["activities"] extends Record<string, ActivityDefinition> ? keyof TContract["activities"] & string : never);
|
|
168
|
+
type ActivityNamesFor<TContract extends ContractDefinition, TWorkflowName extends keyof TContract["workflows"] & string> = (TContract["workflows"][TWorkflowName]["activities"] extends Record<string, ActivityDefinition> ? keyof TContract["workflows"][TWorkflowName]["activities"] & string : never) | (TContract["activities"] extends Record<string, ActivityDefinition> ? keyof TContract["activities"] & string : never);
|
|
124
169
|
/**
|
|
125
170
|
* Options for declaring a workflow implementation
|
|
126
171
|
*/
|
|
127
|
-
type DeclareWorkflowOptions<TContract extends ContractDefinition, TWorkflowName extends keyof TContract["workflows"]> = {
|
|
172
|
+
type DeclareWorkflowOptions<TContract extends ContractDefinition, TWorkflowName extends keyof TContract["workflows"] & string> = {
|
|
128
173
|
workflowName: TWorkflowName;
|
|
129
174
|
contract: TContract;
|
|
130
175
|
implementation: WorkflowImplementation<TContract, TWorkflowName>;
|
|
@@ -178,7 +223,7 @@ type DeclareWorkflowOptions<TContract extends ContractDefinition, TWorkflowName
|
|
|
178
223
|
* Receives a workflow context (with typed activities and utilities) and validated input arguments.
|
|
179
224
|
* Returns the workflow output which will be validated against the contract schema.
|
|
180
225
|
*/
|
|
181
|
-
type WorkflowImplementation<TContract extends ContractDefinition, TWorkflowName extends keyof TContract["workflows"]> = (context: WorkflowContext<TContract, TWorkflowName>, args: WorkerInferInput<TContract["workflows"][TWorkflowName]>) => Promise<WorkerInferOutput<TContract["workflows"][TWorkflowName]>>;
|
|
226
|
+
type WorkflowImplementation<TContract extends ContractDefinition, TWorkflowName extends keyof TContract["workflows"] & string> = (context: WorkflowContext<TContract, TWorkflowName>, args: WorkerInferInput<TContract["workflows"][TWorkflowName]>) => Promise<WorkerInferOutput<TContract["workflows"][TWorkflowName]>>;
|
|
182
227
|
/**
|
|
183
228
|
* Workflow execution context providing typed activities, workflow info, and interaction handlers
|
|
184
229
|
*
|
|
@@ -188,8 +233,8 @@ type WorkflowImplementation<TContract extends ContractDefinition, TWorkflowName
|
|
|
188
233
|
* - Signal, query, and update handler registration
|
|
189
234
|
* - Child workflow execution capabilities
|
|
190
235
|
*/
|
|
191
|
-
type WorkflowContext<TContract extends ContractDefinition, TWorkflowName extends keyof TContract["workflows"]> = {
|
|
192
|
-
activities: WorkflowInferWorkflowContextActivities<TContract, TWorkflowName
|
|
236
|
+
type WorkflowContext<TContract extends ContractDefinition, TWorkflowName extends keyof TContract["workflows"] & string> = {
|
|
237
|
+
activities: Readonly<WorkflowInferWorkflowContextActivities<TContract, TWorkflowName>>;
|
|
193
238
|
info: WorkflowInfo;
|
|
194
239
|
/**
|
|
195
240
|
* Define a signal handler within the workflow implementation
|
|
@@ -208,7 +253,7 @@ type WorkflowContext<TContract extends ContractDefinition, TWorkflowName extends
|
|
|
208
253
|
* }
|
|
209
254
|
* ```
|
|
210
255
|
*/
|
|
211
|
-
defineSignal: <K extends
|
|
256
|
+
defineSignal: <K extends SignalNamesOf<TContract["workflows"][TWorkflowName]>>(signalName: K, handler: SignalHandlerImplementation<NonNullable<TContract["workflows"][TWorkflowName]["signals"]> extends Record<string, SignalDefinition> ? NonNullable<TContract["workflows"][TWorkflowName]["signals"]>[K] extends SignalDefinition ? NonNullable<TContract["workflows"][TWorkflowName]["signals"]>[K] : never : never>) => void;
|
|
212
257
|
/**
|
|
213
258
|
* Define a query handler within the workflow implementation
|
|
214
259
|
* Allows the query handler to access workflow state
|
|
@@ -226,7 +271,7 @@ type WorkflowContext<TContract extends ContractDefinition, TWorkflowName extends
|
|
|
226
271
|
* }
|
|
227
272
|
* ```
|
|
228
273
|
*/
|
|
229
|
-
defineQuery: <K extends
|
|
274
|
+
defineQuery: <K extends QueryNamesOf<TContract["workflows"][TWorkflowName]>>(queryName: K, handler: QueryHandlerImplementation<NonNullable<TContract["workflows"][TWorkflowName]["queries"]> extends Record<string, QueryDefinition> ? NonNullable<TContract["workflows"][TWorkflowName]["queries"]>[K] extends QueryDefinition ? NonNullable<TContract["workflows"][TWorkflowName]["queries"]>[K] : never : never>) => void;
|
|
230
275
|
/**
|
|
231
276
|
* Define an update handler within the workflow implementation
|
|
232
277
|
* Allows the update handler to access and modify workflow state
|
|
@@ -245,7 +290,7 @@ type WorkflowContext<TContract extends ContractDefinition, TWorkflowName extends
|
|
|
245
290
|
* }
|
|
246
291
|
* ```
|
|
247
292
|
*/
|
|
248
|
-
defineUpdate: <K extends
|
|
293
|
+
defineUpdate: <K extends UpdateNamesOf<TContract["workflows"][TWorkflowName]>>(updateName: K, handler: UpdateHandlerImplementation<NonNullable<TContract["workflows"][TWorkflowName]["updates"]> extends Record<string, UpdateDefinition> ? NonNullable<TContract["workflows"][TWorkflowName]["updates"]>[K] extends UpdateDefinition ? NonNullable<TContract["workflows"][TWorkflowName]["updates"]>[K] : never : never>) => void;
|
|
249
294
|
/**
|
|
250
295
|
* Start a child workflow and return a typed handle with ResultAsync pattern
|
|
251
296
|
*
|
|
@@ -276,7 +321,7 @@ type WorkflowContext<TContract extends ContractDefinition, TWorkflowName extends
|
|
|
276
321
|
* );
|
|
277
322
|
* ```
|
|
278
323
|
*/
|
|
279
|
-
startChildWorkflow: <TChildContract extends ContractDefinition, TChildWorkflowName extends keyof TChildContract["workflows"]>(contract: TChildContract, workflowName: TChildWorkflowName, options: TypedChildWorkflowOptions<TChildContract, TChildWorkflowName>) => ResultAsync<TypedChildWorkflowHandle<TChildContract["workflows"][TChildWorkflowName]>, ChildWorkflowError>;
|
|
324
|
+
startChildWorkflow: <TChildContract extends ContractDefinition, TChildWorkflowName extends keyof TChildContract["workflows"] & string>(contract: TChildContract, workflowName: TChildWorkflowName, options: TypedChildWorkflowOptions<TChildContract, TChildWorkflowName>) => ResultAsync<TypedChildWorkflowHandle<TChildContract["workflows"][TChildWorkflowName]>, ChildWorkflowError | ChildWorkflowCancelledError | ChildWorkflowNotFoundError>;
|
|
280
325
|
/**
|
|
281
326
|
* Execute a child workflow (start and wait for result) with ResultAsync pattern
|
|
282
327
|
*
|
|
@@ -304,7 +349,7 @@ type WorkflowContext<TContract extends ContractDefinition, TWorkflowName extends
|
|
|
304
349
|
* );
|
|
305
350
|
* ```
|
|
306
351
|
*/
|
|
307
|
-
executeChildWorkflow: <TChildContract extends ContractDefinition, TChildWorkflowName extends keyof TChildContract["workflows"]>(contract: TChildContract, workflowName: TChildWorkflowName, options: TypedChildWorkflowOptions<TChildContract, TChildWorkflowName>) => ResultAsync<ClientInferOutput<TChildContract["workflows"][TChildWorkflowName]>, ChildWorkflowError>;
|
|
352
|
+
executeChildWorkflow: <TChildContract extends ContractDefinition, TChildWorkflowName extends keyof TChildContract["workflows"] & string>(contract: TChildContract, workflowName: TChildWorkflowName, options: TypedChildWorkflowOptions<TChildContract, TChildWorkflowName>) => ResultAsync<ClientInferOutput<TChildContract["workflows"][TChildWorkflowName]>, ChildWorkflowError | ChildWorkflowCancelledError | ChildWorkflowNotFoundError>;
|
|
308
353
|
/**
|
|
309
354
|
* Run `fn` inside a cancellable Temporal scope. If the workflow (or an
|
|
310
355
|
* ancestor scope) is cancelled while `fn` is in flight, the resulting
|
|
@@ -312,9 +357,11 @@ type WorkflowContext<TContract extends ContractDefinition, TWorkflowName extends
|
|
|
312
357
|
* rejecting — letting callers handle cancellation explicitly, typically
|
|
313
358
|
* to perform a graceful exit from the current step.
|
|
314
359
|
*
|
|
315
|
-
* Non-cancellation errors thrown by `fn`
|
|
316
|
-
*
|
|
317
|
-
* `
|
|
360
|
+
* Non-cancellation errors thrown by `fn` resolve to
|
|
361
|
+
* `err(WorkflowScopeError)` (with the original error preserved on
|
|
362
|
+
* `cause`). Both failure modes ride neverthrow's railway, so
|
|
363
|
+
* `result.match(...)` is exhaustive — nothing escapes as an unhandled
|
|
364
|
+
* rejection.
|
|
318
365
|
*
|
|
319
366
|
* @example
|
|
320
367
|
* ```ts
|
|
@@ -324,29 +371,34 @@ type WorkflowContext<TContract extends ContractDefinition, TWorkflowName extends
|
|
|
324
371
|
* });
|
|
325
372
|
*
|
|
326
373
|
* if (result.isErr()) {
|
|
327
|
-
*
|
|
328
|
-
*
|
|
329
|
-
* await context.
|
|
330
|
-
*
|
|
331
|
-
*
|
|
374
|
+
* if (result.error instanceof WorkflowCancelledError) {
|
|
375
|
+
* // workflow was cancelled — perform cleanup that must not be cancelled:
|
|
376
|
+
* await context.nonCancellableScope(async () => {
|
|
377
|
+
* await context.activities.releaseResources(args);
|
|
378
|
+
* });
|
|
379
|
+
* return { status: "cancelled" };
|
|
380
|
+
* }
|
|
381
|
+
* // result.error instanceof WorkflowScopeError — domain failure
|
|
382
|
+
* return { status: "failed" };
|
|
332
383
|
* }
|
|
333
384
|
*
|
|
334
385
|
* return { status: "ok" };
|
|
335
386
|
* }
|
|
336
387
|
* ```
|
|
337
388
|
*/
|
|
338
|
-
cancellableScope: <T>(fn: () => T | Promise<T>) => ResultAsync<T, WorkflowCancelledError>;
|
|
389
|
+
cancellableScope: <T>(fn: () => T | Promise<T>) => ResultAsync<T, WorkflowCancelledError | WorkflowScopeError>;
|
|
339
390
|
/**
|
|
340
391
|
* Run `fn` inside a non-cancellable Temporal scope. Cancellation requests
|
|
341
392
|
* from outside the scope are ignored for its duration — the idiomatic way
|
|
342
393
|
* to perform cleanup work that must not be interrupted.
|
|
343
394
|
*
|
|
344
395
|
* Returns the same `ResultAsync<...>` shape as
|
|
345
|
-
* {@link WorkflowContext.cancellableScope} for symmetry; the
|
|
346
|
-
* branch only triggers when cancellation is
|
|
347
|
-
* scope, which is rare.
|
|
396
|
+
* {@link WorkflowContext.cancellableScope} for symmetry; the
|
|
397
|
+
* `err(WorkflowCancelledError)` branch only triggers when cancellation is
|
|
398
|
+
* raised from *inside* the scope, which is rare. Non-cancellation errors
|
|
399
|
+
* surface as `err(WorkflowScopeError)`.
|
|
348
400
|
*/
|
|
349
|
-
nonCancellableScope: <T>(fn: () => T | Promise<T>) => ResultAsync<T, WorkflowCancelledError>;
|
|
401
|
+
nonCancellableScope: <T>(fn: () => T | Promise<T>) => ResultAsync<T, WorkflowCancelledError | WorkflowScopeError>;
|
|
350
402
|
/**
|
|
351
403
|
* Continue this workflow execution as a new run, optionally with a different
|
|
352
404
|
* workflow type from another contract.
|
|
@@ -376,48 +428,9 @@ type WorkflowContext<TContract extends ContractDefinition, TWorkflowName extends
|
|
|
376
428
|
*/
|
|
377
429
|
continueAsNew: {
|
|
378
430
|
/** Same-workflow continuation — args typed against this workflow's input. */(args: ClientInferInput<TContract["workflows"][TWorkflowName]>, options?: TypedContinueAsNewOptions): Promise<never>; /** Cross-contract continuation — args typed against the destination workflow. */
|
|
379
|
-
<TOtherContract extends ContractDefinition, TOtherWorkflowName extends keyof TOtherContract["workflows"]>(contract: TOtherContract, workflowName: TOtherWorkflowName, args: ClientInferInput<TOtherContract["workflows"][TOtherWorkflowName]>, options?: TypedContinueAsNewOptions): Promise<never>;
|
|
431
|
+
<TOtherContract extends ContractDefinition, TOtherWorkflowName extends keyof TOtherContract["workflows"] & string>(contract: TOtherContract, workflowName: TOtherWorkflowName, args: ClientInferInput<TOtherContract["workflows"][TOtherWorkflowName]>, options?: TypedContinueAsNewOptions): Promise<never>;
|
|
380
432
|
};
|
|
381
|
-
};
|
|
382
|
-
/**
|
|
383
|
-
* Options for starting a child workflow
|
|
384
|
-
*/
|
|
385
|
-
type TypedChildWorkflowOptions<TChildContract extends ContractDefinition, TChildWorkflowName extends keyof TChildContract["workflows"]> = Omit<ChildWorkflowOptions, "taskQueue" | "args"> & {
|
|
386
|
-
args: ClientInferInput<TChildContract["workflows"][TChildWorkflowName]>;
|
|
387
|
-
};
|
|
388
|
-
/**
|
|
389
|
-
* Typed handle for a child workflow with neverthrow ResultAsync pattern
|
|
390
|
-
*/
|
|
391
|
-
type TypedChildWorkflowHandle<TWorkflow extends WorkflowDefinition> = {
|
|
392
|
-
/**
|
|
393
|
-
* Get child workflow result with Result pattern
|
|
394
|
-
*/
|
|
395
|
-
result: () => ResultAsync<ClientInferOutput<TWorkflow>, ChildWorkflowError>;
|
|
396
|
-
/**
|
|
397
|
-
* Child workflow ID
|
|
398
|
-
*/
|
|
399
|
-
workflowId: string;
|
|
400
|
-
};
|
|
401
|
-
/**
|
|
402
|
-
* Activity function signature from workflow execution perspective
|
|
403
|
-
*
|
|
404
|
-
* Workflows call activities with validated input (z.input parsed) and receive validated output (z.output)
|
|
405
|
-
*/
|
|
406
|
-
type WorkflowInferActivity<TActivity extends ActivityDefinition> = (args: ClientInferInput<TActivity>) => Promise<ClientInferOutput<TActivity>>;
|
|
407
|
-
/**
|
|
408
|
-
* All global activities from a contract (workflow execution perspective)
|
|
409
|
-
*/
|
|
410
|
-
type WorkflowInferActivities<TContract extends ContractDefinition> = TContract["activities"] extends Record<string, ActivityDefinition> ? { [K in keyof TContract["activities"]]: WorkflowInferActivity<TContract["activities"][K]> } : {};
|
|
411
|
-
/**
|
|
412
|
-
* Workflow-specific activities (workflow execution perspective)
|
|
413
|
-
*/
|
|
414
|
-
type WorkflowInferWorkflowActivities<T extends WorkflowDefinition> = T["activities"] extends Record<string, ActivityDefinition> ? { [K in keyof T["activities"]]: WorkflowInferActivity<T["activities"][K]> } : {};
|
|
415
|
-
/**
|
|
416
|
-
* All activities available in a workflow context (workflow execution perspective)
|
|
417
|
-
*
|
|
418
|
-
* Combines workflow-specific activities with global contract activities
|
|
419
|
-
*/
|
|
420
|
-
type WorkflowInferWorkflowContextActivities<TContract extends ContractDefinition, TWorkflowName extends keyof TContract["workflows"]> = WorkflowInferWorkflowActivities<TContract["workflows"][TWorkflowName]> & WorkflowInferActivities<TContract>; //# sourceMappingURL=workflow.d.ts.map
|
|
433
|
+
}; //# sourceMappingURL=workflow.d.ts.map
|
|
421
434
|
//#endregion
|
|
422
|
-
export { ActivityInputValidationError, ActivityOutputValidationError, ChildWorkflowError, ChildWorkflowNotFoundError, QueryInputValidationError, QueryOutputValidationError, SignalInputValidationError, UpdateInputValidationError, UpdateOutputValidationError, WorkflowCancelledError, WorkflowInputValidationError, WorkflowOutputValidationError, declareWorkflow };
|
|
435
|
+
export { ActivityInputValidationError, ActivityOutputValidationError, ChildWorkflowCancelledError, ChildWorkflowError, ChildWorkflowNotFoundError, QueryInputValidationError, QueryOutputValidationError, SignalInputValidationError, UpdateInputValidationError, UpdateOutputValidationError, WorkflowCancelledError, WorkflowInputValidationError, WorkflowOutputValidationError, WorkflowScopeError, declareWorkflow };
|
|
423
436
|
//# sourceMappingURL=workflow.d.mts.map
|
package/dist/workflow.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.d.mts","names":[],"sources":["../src/handlers.ts","../src/internal.ts","../src/workflow.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"workflow.d.mts","names":[],"sources":["../src/handlers.ts","../src/internal.ts","../src/child-workflow.ts","../src/activities-proxy.ts","../src/workflow.ts"],"mappings":";;;;;;;;;;;;;KAkCY,2BAAA,iBAA4C,gBAAA,KACtD,IAAA,EAAM,gBAAA,CAAiB,OAAA,aACb,OAAA;;;;;;;KAQA,0BAAA,gBAA0C,eAAA,KACpD,IAAA,EAAM,gBAAA,CAAiB,MAAA,MACpB,iBAAA,CAAkB,MAAA;;;;;;;KAQX,2BAAA,iBAA4C,gBAAA,KACtD,IAAA,EAAM,gBAAA,CAAiB,OAAA,MACpB,OAAA,CAAQ,iBAAA,CAAkB,OAAA;;;;;;;;KCsFnB,yBAAA,GAA4B,IAAA,CAAK,oBAAA;;;;;;;;KChHjC,yBAAA,wBACa,kBAAA,mCACU,cAAA,0BAC/B,IAAA,CAAK,oBAAA;EACP,IAAA,EAAM,gBAAA,CAAiB,cAAA,cAA4B,kBAAA;AAAA;;;;KAMzC,wBAAA,mBAA2C,qBAAA;EFJ3C;;;EEQV,MAAA,QAAc,WAAA,CACZ,iBAAA,CAAkB,SAAA,GAClB,kBAAA,GAAqB,2BAAA;EFFa;;;EEQpC,UAAA;AAAA;;;AFlBF;;;;;AAAA,KGfY,qBAAA,mBAAwC,kBAAA,KAClD,IAAA,EAAM,gBAAA,CAAiB,SAAA,MACpB,OAAA,CAAQ,iBAAA,CAAkB,SAAA;;;;KAKnB,uBAAA,mBAA0C,kBAAA,IACpD,SAAA,uBAAgC,MAAA,SAAe,kBAAA,kBAE7B,SAAA,iBAA0B,qBAAA,CAAsB,SAAA,eAAwB,CAAA;;;;KAOhF,+BAAA,WAA0C,qBAAA,IACpD,CAAA,uBAAwB,MAAA,SAAe,kBAAA,kBAErB,CAAA,iBAAkB,qBAAA,CAAsB,CAAA,eAAgB,CAAA;;;;;;KAShE,sCAAA,mBACQ,kBAAA,8BACU,SAAA,0BAC1B,+BAAA,CAAgC,SAAA,cAAuB,aAAA,KACzD,uBAAA,CAAwB,SAAA;;;;;;;;;;;;;;;;;;AHR1B;;;;;;;;;;;;;;;;;;;AAUA;;;;;;;;;;;;;;;;;;;;;;;;ACwFA;;;;;;;;AChHA;;;;;;;iBEwHgB,eAAA,mBACI,kBAAA,8BACU,SAAA,uBAAA,CAAA;EAE5B,YAAA;EACA,QAAA;EACA,cAAA;EACA,eAAA;EACA;AAAA,GACC,sBAAA,CAAuB,SAAA,EAAW,aAAA,QAChC,IAAA,gBACA,OAAA,CAAQ,iBAAA,CAAkB,SAAA,cAAuB,aAAA;;;;;KA0IjD,gBAAA,mBACe,kBAAA,8BACU,SAAA,2BAEzB,SAAA,cAAuB,aAAA,wBAAqC,MAAA,SAAe,kBAAA,UAClE,SAAA,cAAuB,aAAA,qCAEhC,SAAA,uBAAgC,MAAA,SAAe,kBAAA,UACtC,SAAA;;;;KAMT,sBAAA,mBACe,kBAAA,8BACU,SAAA;EAE5B,YAAA,EAAc,aAAA;EACd,QAAA,EAAU,SAAA;EACV,cAAA,EAAgB,sBAAA,CAAuB,SAAA,EAAW,aAAA;EF7R3B;;;;AAMzB;;;;;;;;;;;;;;;EE2SE,eAAA,EAAiB,eAAA;EFtSG;;;;;;;;;AC1BtB;;;;;;;;;;;;;ECuVE,qBAAA,GAAwB,OAAA,CACtB,MAAA,CAAO,gBAAA,CAAiB,SAAA,EAAW,aAAA,GAAgB,eAAA;AAAA;;;;;;;KAUlD,sBAAA,mBACe,kBAAA,8BACU,SAAA,2BAE5B,OAAA,EAAS,eAAA,CAAgB,SAAA,EAAW,aAAA,GACpC,IAAA,EAAM,gBAAA,CAAiB,SAAA,cAAuB,aAAA,OAC3C,OAAA,CAAQ,iBAAA,CAAkB,SAAA,cAAuB,aAAA;;;;;;;;;;KAWjD,eAAA,mBACe,kBAAA,8BACU,SAAA;EAE5B,UAAA,EAAY,QAAA,CAAS,sCAAA,CAAuC,SAAA,EAAW,aAAA;EACvE,IAAA,EAAM,YAAA;EDjX4B;;;;;;;;;;;;AAUpC;;;;;EC0XE,YAAA,aAAyB,aAAA,CAAc,SAAA,cAAuB,aAAA,IAC5D,UAAA,EAAY,CAAA,EACZ,OAAA,EAAS,2BAAA,CACP,WAAA,CAAY,SAAA,cAAuB,aAAA,sBAAmC,MAAA,SAEpE,gBAAA,IAEE,WAAA,CAAY,SAAA,cAAuB,aAAA,cAA2B,CAAA,UAAW,gBAAA,GACvE,WAAA,CAAY,SAAA,cAAuB,aAAA,cAA2B,CAAA;EDjYhD;;;;;;;;;;;;;;;;;ECwZxB,WAAA,aAAwB,YAAA,CAAa,SAAA,cAAuB,aAAA,IAC1D,SAAA,EAAW,CAAA,EACX,OAAA,EAAS,0BAAA,CACP,WAAA,CAAY,SAAA,cAAuB,aAAA,sBAAmC,MAAA,SAEpE,eAAA,IAEE,WAAA,CAAY,SAAA,cAAuB,aAAA,cAA2B,CAAA,UAAW,eAAA,GACvE,WAAA,CAAY,SAAA,cAAuB,aAAA,cAA2B,CAAA;ED9ZG;AAS7E;;;;;;;;;;;;;;;;;EC6aE,YAAA,aAAyB,aAAA,CAAc,SAAA,cAAuB,aAAA,IAC5D,UAAA,EAAY,CAAA,EACZ,OAAA,EAAS,2BAAA,CACP,WAAA,CAAY,SAAA,cAAuB,aAAA,sBAAmC,MAAA,SAEpE,gBAAA,IAEE,WAAA,CAAY,SAAA,cAAuB,aAAA,cAA2B,CAAA,UAAW,gBAAA,GACvE,WAAA,CAAY,SAAA,cAAuB,aAAA,cAA2B,CAAA;EDlbf;;;;;;;;ACmG3D;;;;;;;;;;;;;;;;;;;;;;EAmXE,kBAAA,0BACyB,kBAAA,mCACU,cAAA,wBAEjC,QAAA,EAAU,cAAA,EACV,YAAA,EAAc,kBAAA,EACd,OAAA,EAAS,yBAAA,CAA0B,cAAA,EAAgB,kBAAA,MAChD,WAAA,CACH,wBAAA,CAAyB,cAAA,cAA4B,kBAAA,IACrD,kBAAA,GAAqB,2BAAA,GAA8B,0BAAA;EAxXrD;;;;;;;;;;;;;;;;;;;;AA2ID;;;;;;;EA2QC,oBAAA,0BACyB,kBAAA,mCACU,cAAA,wBAEjC,QAAA,EAAU,cAAA,EACV,YAAA,EAAc,kBAAA,EACd,OAAA,EAAS,yBAAA,CAA0B,cAAA,EAAgB,kBAAA,MAChD,WAAA,CACH,iBAAA,CAAkB,cAAA,cAA4B,kBAAA,IAC9C,kBAAA,GAAqB,2BAAA,GAA8B,0BAAA;EA1QU;;;;;;;;;;;;;;;;;;;;;;;;;AAI1C;;;;;;;;;;;EA6SrB,gBAAA,MACE,EAAA,QAAU,CAAA,GAAI,OAAA,CAAQ,CAAA,MACnB,WAAA,CAAY,CAAA,EAAG,sBAAA,GAAyB,kBAAA;EAvPR;;;;;;;;;;;EAoQrC,mBAAA,MACE,EAAA,QAAU,CAAA,GAAI,OAAA,CAAQ,CAAA,MACnB,WAAA,CAAY,CAAA,EAAG,sBAAA,GAAyB,kBAAA;EApT/B;;;;;;;;;;;;;;;;;;AA8CsD;;;;;;;;;EAmSpE,aAAA;IApRM,8EAuRF,IAAA,EAAM,gBAAA,CAAiB,SAAA,cAAuB,aAAA,IAC9C,OAAA,GAAU,yBAAA,GACT,OAAA,SAxR+C;IAAA,wBA2RzB,kBAAA,mCACU,cAAA,wBAEjC,QAAA,EAAU,cAAA,EACV,YAAA,EAAc,kBAAA,EACd,IAAA,EAAM,gBAAA,CAAiB,cAAA,cAA4B,kBAAA,IACnD,OAAA,GAAU,yBAAA,GACT,OAAA;EAAA;AAAA"}
|