@temporalio/workflow 1.4.4 → 1.5.1
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/lib/cancellation-scope.d.ts +1 -2
- package/lib/cancellation-scope.js +6 -4
- package/lib/cancellation-scope.js.map +1 -1
- package/lib/errors.d.ts +0 -1
- package/lib/errors.js +1 -3
- package/lib/errors.js.map +1 -1
- package/lib/index.d.ts +4 -3
- package/lib/index.js +1 -3
- package/lib/index.js.map +1 -1
- package/lib/interceptors.d.ts +1 -1
- package/lib/interfaces.d.ts +13 -3
- package/lib/internals.d.ts +81 -72
- package/lib/internals.js +328 -305
- package/lib/internals.js.map +1 -1
- package/lib/stack-helpers.js +1 -1
- package/lib/stack-helpers.js.map +1 -1
- package/lib/worker-interface.d.ts +3 -27
- package/lib/worker-interface.js +57 -100
- package/lib/worker-interface.js.map +1 -1
- package/lib/workflow.js +92 -86
- package/lib/workflow.js.map +1 -1
- package/package.json +4 -4
- package/src/cancellation-scope.ts +7 -5
- package/src/errors.ts +0 -2
- package/src/index.ts +16 -5
- package/src/interceptors.ts +1 -1
- package/src/interfaces.ts +15 -3
- package/src/internals.ts +403 -347
- package/src/stack-helpers.ts +1 -1
- package/src/worker-interface.ts +59 -105
- package/src/workflow.ts +93 -88
|
@@ -114,10 +114,9 @@ export declare class CancellationScope {
|
|
|
114
114
|
*/
|
|
115
115
|
export declare const storage: ALS<CancellationScope>;
|
|
116
116
|
export declare class RootCancellationScope extends CancellationScope {
|
|
117
|
+
constructor();
|
|
117
118
|
cancel(): void;
|
|
118
119
|
}
|
|
119
|
-
/** There can only be one of these */
|
|
120
|
-
export declare const ROOT_SCOPE: RootCancellationScope;
|
|
121
120
|
/** This function is here to avoid a circular dependency between this module and workflow.ts */
|
|
122
121
|
declare let sleep: (_: number | string) => Promise<void>;
|
|
123
122
|
export declare function registerSleepImplementation(fn: typeof sleep): void;
|
|
@@ -12,7 +12,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
12
12
|
};
|
|
13
13
|
var _CancellationScope_cancelRequested;
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.registerSleepImplementation = exports.
|
|
15
|
+
exports.registerSleepImplementation = exports.RootCancellationScope = exports.storage = exports.CancellationScope = exports.AsyncLocalStorage = void 0;
|
|
16
16
|
const common_1 = require("@temporalio/common");
|
|
17
17
|
const stack_helpers_1 = require("./stack-helpers");
|
|
18
18
|
// AsyncLocalStorage is injected via vm module into global scope.
|
|
@@ -118,7 +118,8 @@ class CancellationScope {
|
|
|
118
118
|
* Get the current "active" scope
|
|
119
119
|
*/
|
|
120
120
|
static current() {
|
|
121
|
-
|
|
121
|
+
// Using globals directly instead of a helper function to avoid circular import
|
|
122
|
+
return exports.storage.getStore() ?? globalThis.__TEMPORAL__.activator.rootScope;
|
|
122
123
|
}
|
|
123
124
|
/** Alias to `new CancellationScope({ cancellable: true }).run(fn)` */
|
|
124
125
|
static cancellable(fn) {
|
|
@@ -140,13 +141,14 @@ _CancellationScope_cancelRequested = new WeakMap();
|
|
|
140
141
|
*/
|
|
141
142
|
exports.storage = new exports.AsyncLocalStorage();
|
|
142
143
|
class RootCancellationScope extends CancellationScope {
|
|
144
|
+
constructor() {
|
|
145
|
+
super({ cancellable: true, parent: NO_PARENT });
|
|
146
|
+
}
|
|
143
147
|
cancel() {
|
|
144
148
|
this.reject(new common_1.CancelledFailure('Workflow cancelled'));
|
|
145
149
|
}
|
|
146
150
|
}
|
|
147
151
|
exports.RootCancellationScope = RootCancellationScope;
|
|
148
|
-
/** There can only be one of these */
|
|
149
|
-
exports.ROOT_SCOPE = new RootCancellationScope({ cancellable: true, parent: NO_PARENT });
|
|
150
152
|
/** This function is here to avoid a circular dependency between this module and workflow.ts */
|
|
151
153
|
let sleep = (_) => {
|
|
152
154
|
throw new common_1.IllegalStateError('Workflow has not been properly initialized');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cancellation-scope.js","sourceRoot":"","sources":["../src/cancellation-scope.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"cancellation-scope.js","sourceRoot":"","sources":["../src/cancellation-scope.ts"],"names":[],"mappings":"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"}
|
package/lib/errors.d.ts
CHANGED
package/lib/errors.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isCancellation = exports.DeterminismViolationError = exports.WorkflowError =
|
|
4
|
-
var common_1 = require("@temporalio/common");
|
|
5
|
-
Object.defineProperty(exports, "WorkflowExecutionAlreadyStartedError", { enumerable: true, get: function () { return common_1.WorkflowExecutionAlreadyStartedError; } });
|
|
3
|
+
exports.isCancellation = exports.DeterminismViolationError = exports.WorkflowError = void 0;
|
|
6
4
|
/**
|
|
7
5
|
* Base class for all workflow errors
|
|
8
6
|
*/
|
package/lib/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AAAA
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAa,aAAc,SAAQ,KAAK;IAAxC;;QACkB,SAAI,GAAW,eAAe,CAAC;IACjD,CAAC;CAAA;AAFD,sCAEC;AAED;;GAEG;AACH,MAAa,yBAA0B,SAAQ,aAAa;IAA5D;;QACkB,SAAI,GAAW,2BAA2B,CAAC;IAC7D,CAAC;CAAA;AAFD,8DAEC;AAED,SAAS,cAAc,CAAC,GAAY;IAClC,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,IAAI,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACrG,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,GAAY;IACzC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,OAAO,CACL,GAAG,CAAC,IAAI,KAAK,kBAAkB;QAC/B,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,iBAAiB,IAAI,GAAG,CAAC,IAAI,KAAK,sBAAsB,CAAC;YACtE,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC;YACzB,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,kBAAkB,CAAC,CACzC,CAAC;AACJ,CAAC;AARD,wCAQC"}
|
package/lib/index.d.ts
CHANGED
|
@@ -45,12 +45,13 @@
|
|
|
45
45
|
*
|
|
46
46
|
* @module
|
|
47
47
|
*/
|
|
48
|
-
export { ActivityCancellationType, ActivityFailure,
|
|
48
|
+
export { ActivityCancellationType, ActivityFailure, ActivityOptions, ApplicationFailure, CancelledFailure, ChildWorkflowFailure, defaultPayloadConverter, PayloadConverter, RetryPolicy, rootCause, ServerFailure, TemporalFailure, TerminatedFailure, TimeoutFailure, } from '@temporalio/common';
|
|
49
49
|
export * from '@temporalio/common/lib/errors';
|
|
50
|
-
export
|
|
50
|
+
export { ActivityFunction, ActivityInterface, // eslint-disable-line deprecation/deprecation
|
|
51
|
+
Payload, QueryDefinition, SearchAttributes, SearchAttributeValue, SignalDefinition, UntypedActivities, Workflow, WorkflowQueryType, WorkflowResultType, WorkflowReturnType, WorkflowSignalType, } from '@temporalio/common/lib/interfaces';
|
|
51
52
|
export * from '@temporalio/common/lib/workflow-handle';
|
|
52
53
|
export * from '@temporalio/common/lib/workflow-options';
|
|
53
|
-
export { AsyncLocalStorage, CancellationScope, CancellationScopeOptions
|
|
54
|
+
export { AsyncLocalStorage, CancellationScope, CancellationScopeOptions } from './cancellation-scope';
|
|
54
55
|
export * from './errors';
|
|
55
56
|
export * from './interceptors';
|
|
56
57
|
export { ChildWorkflowCancellationType, ChildWorkflowOptions, ContinueAsNew, ContinueAsNewOptions, EnhancedStackTrace, FileLocation, FileSlice, ParentClosePolicy, ParentWorkflowInfo, SDKInfo, StackTrace, UnsafeWorkflowInfo, WorkflowInfo, } from './interfaces';
|
package/lib/index.js
CHANGED
|
@@ -61,7 +61,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
61
61
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
62
62
|
};
|
|
63
63
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
64
|
-
exports.Trigger = exports.ParentClosePolicy = exports.ContinueAsNew = exports.ChildWorkflowCancellationType = exports.
|
|
64
|
+
exports.Trigger = exports.ParentClosePolicy = exports.ContinueAsNew = exports.ChildWorkflowCancellationType = exports.CancellationScope = exports.AsyncLocalStorage = exports.TimeoutFailure = exports.TerminatedFailure = exports.TemporalFailure = exports.ServerFailure = exports.rootCause = exports.defaultPayloadConverter = exports.ChildWorkflowFailure = exports.CancelledFailure = exports.ApplicationFailure = exports.ActivityFailure = exports.ActivityCancellationType = void 0;
|
|
65
65
|
var common_1 = require("@temporalio/common");
|
|
66
66
|
Object.defineProperty(exports, "ActivityCancellationType", { enumerable: true, get: function () { return common_1.ActivityCancellationType; } });
|
|
67
67
|
Object.defineProperty(exports, "ActivityFailure", { enumerable: true, get: function () { return common_1.ActivityFailure; } });
|
|
@@ -75,13 +75,11 @@ Object.defineProperty(exports, "TemporalFailure", { enumerable: true, get: funct
|
|
|
75
75
|
Object.defineProperty(exports, "TerminatedFailure", { enumerable: true, get: function () { return common_1.TerminatedFailure; } });
|
|
76
76
|
Object.defineProperty(exports, "TimeoutFailure", { enumerable: true, get: function () { return common_1.TimeoutFailure; } });
|
|
77
77
|
__exportStar(require("@temporalio/common/lib/errors"), exports);
|
|
78
|
-
__exportStar(require("@temporalio/common/lib/interfaces"), exports);
|
|
79
78
|
__exportStar(require("@temporalio/common/lib/workflow-handle"), exports);
|
|
80
79
|
__exportStar(require("@temporalio/common/lib/workflow-options"), exports);
|
|
81
80
|
var cancellation_scope_1 = require("./cancellation-scope");
|
|
82
81
|
Object.defineProperty(exports, "AsyncLocalStorage", { enumerable: true, get: function () { return cancellation_scope_1.AsyncLocalStorage; } });
|
|
83
82
|
Object.defineProperty(exports, "CancellationScope", { enumerable: true, get: function () { return cancellation_scope_1.CancellationScope; } });
|
|
84
|
-
Object.defineProperty(exports, "ROOT_SCOPE", { enumerable: true, get: function () { return cancellation_scope_1.ROOT_SCOPE; } });
|
|
85
83
|
__exportStar(require("./errors"), exports);
|
|
86
84
|
__exportStar(require("./interceptors"), exports);
|
|
87
85
|
var interfaces_1 = require("./interfaces");
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;;;;;;;;;;;;;;;;;AAEH,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;;;;;;;;;;;;;;;;;AAEH,6CAe4B;AAd1B,kHAAA,wBAAwB,OAAA;AACxB,yGAAA,eAAe,OAAA;AAEf,4GAAA,kBAAkB,OAAA;AAClB,0GAAA,gBAAgB,OAAA;AAChB,8GAAA,oBAAoB,OAAA;AACpB,iHAAA,uBAAuB,OAAA;AAGvB,mGAAA,SAAS,OAAA;AACT,uGAAA,aAAa,OAAA;AACb,yGAAA,eAAe,OAAA;AACf,2GAAA,iBAAiB,OAAA;AACjB,wGAAA,cAAc,OAAA;AAEhB,gEAA8C;AAgB9C,yEAAuD;AACvD,0EAAwD;AACxD,2DAAsG;AAA7F,uHAAA,iBAAiB,OAAA;AAAE,uHAAA,iBAAiB,OAAA;AAC7C,2CAAyB;AACzB,iDAA+B;AAC/B,2CAcsB;AAbpB,2HAAA,6BAA6B,OAAA;AAE7B,2GAAA,aAAa,OAAA;AAKb,+GAAA,iBAAiB,OAAA;AAQnB,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,6CAA2B"}
|
package/lib/interceptors.d.ts
CHANGED
|
@@ -173,7 +173,7 @@ export interface WorkflowInternalsInterceptor {
|
|
|
173
173
|
*
|
|
174
174
|
* Implement this method to perform any resource cleanup.
|
|
175
175
|
*/
|
|
176
|
-
dispose?(input: DisposeInput, next: Next<this, 'dispose'>):
|
|
176
|
+
dispose?(input: DisposeInput, next: Next<this, 'dispose'>): void;
|
|
177
177
|
}
|
|
178
178
|
/**
|
|
179
179
|
* A mapping from interceptor type to an optional list of interceptor implementations
|
package/lib/interfaces.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { CommonWorkflowOptions, SearchAttributes } from '@temporalio/common';
|
|
1
|
+
import type { RawSourceMap } from 'source-map';
|
|
2
|
+
import { RetryPolicy, TemporalFailure, CommonWorkflowOptions, SearchAttributes } from '@temporalio/common';
|
|
3
3
|
import type { coresdk } from '@temporalio/proto';
|
|
4
4
|
/**
|
|
5
5
|
* Workflow Execution information
|
|
@@ -156,7 +156,7 @@ export interface ContinueAsNewOptions {
|
|
|
156
156
|
/**
|
|
157
157
|
* Non-searchable attributes to attach to next Workflow run
|
|
158
158
|
*/
|
|
159
|
-
memo?: Record<string,
|
|
159
|
+
memo?: Record<string, unknown>;
|
|
160
160
|
/**
|
|
161
161
|
* Searchable attributes to attach to next Workflow run
|
|
162
162
|
*/
|
|
@@ -306,3 +306,13 @@ export interface EnhancedStackTrace {
|
|
|
306
306
|
sources: Record<string, FileSlice[]>;
|
|
307
307
|
stacks: StackTrace[];
|
|
308
308
|
}
|
|
309
|
+
export interface WorkflowCreateOptions {
|
|
310
|
+
info: WorkflowInfo;
|
|
311
|
+
randomnessSeed: number[];
|
|
312
|
+
now: number;
|
|
313
|
+
patches: string[];
|
|
314
|
+
showStackTraceSources: boolean;
|
|
315
|
+
}
|
|
316
|
+
export interface WorkflowCreateOptionsWithSourceMap extends WorkflowCreateOptions {
|
|
317
|
+
sourceMap: RawSourceMap;
|
|
318
|
+
}
|
package/lib/internals.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { FailureConverter, PayloadConverter } from '@temporalio/common';
|
|
2
1
|
import type { RawSourceMap } from 'source-map';
|
|
3
|
-
import { Workflow, WorkflowQueryType, WorkflowSignalType } from '@temporalio/common';
|
|
2
|
+
import { FailureConverter, PayloadConverter, Workflow, WorkflowQueryType, WorkflowSignalType, ProtoFailure } from '@temporalio/common';
|
|
4
3
|
import type { coresdk } from '@temporalio/proto';
|
|
5
4
|
import { RNG } from './alea';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
5
|
+
import { RootCancellationScope } from './cancellation-scope';
|
|
6
|
+
import { QueryInput, SignalInput, WorkflowExecuteInput, WorkflowInterceptors } from './interceptors';
|
|
7
|
+
import { FileLocation, WorkflowInfo, WorkflowCreateOptionsWithSourceMap } from './interfaces';
|
|
8
8
|
import { SinkCall } from './sinks';
|
|
9
9
|
export interface Stack {
|
|
10
10
|
formatted: string;
|
|
@@ -17,11 +17,9 @@ export interface PromiseStackStore {
|
|
|
17
17
|
childToParent: Map<Promise<unknown>, Set<Promise<unknown>>>;
|
|
18
18
|
promiseToStack: Map<Promise<unknown>, Stack>;
|
|
19
19
|
}
|
|
20
|
-
export declare type ResolveFunction<T = any> = (val: T) => any;
|
|
21
|
-
export declare type RejectFunction<E = any> = (val: E) => any;
|
|
22
20
|
export interface Completion {
|
|
23
|
-
resolve:
|
|
24
|
-
reject:
|
|
21
|
+
resolve(val: unknown): unknown;
|
|
22
|
+
reject(reason: unknown): unknown;
|
|
25
23
|
}
|
|
26
24
|
export interface Condition {
|
|
27
25
|
fn(): boolean;
|
|
@@ -36,43 +34,27 @@ export declare class LocalActivityDoBackoff {
|
|
|
36
34
|
constructor(backoff: coresdk.activity_result.IDoBackoff);
|
|
37
35
|
}
|
|
38
36
|
export declare type ActivationHandlerFunction<K extends keyof coresdk.workflow_activation.IWorkflowActivationJob> = (activation: NonNullable<coresdk.workflow_activation.IWorkflowActivationJob[K]>) => void;
|
|
37
|
+
/**
|
|
38
|
+
* Verifies all activation job handling methods are implemented
|
|
39
|
+
*/
|
|
39
40
|
export declare type ActivationHandler = {
|
|
40
41
|
[P in keyof coresdk.workflow_activation.IWorkflowActivationJob]: ActivationHandlerFunction<P>;
|
|
41
42
|
};
|
|
42
|
-
export declare class Activator implements ActivationHandler {
|
|
43
|
-
workflowFunctionWasCalled: boolean;
|
|
44
|
-
startWorkflowNextHandler({ args }: WorkflowExecuteInput): Promise<any>;
|
|
45
|
-
startWorkflow(activation: coresdk.workflow_activation.IStartWorkflow): void;
|
|
46
|
-
cancelWorkflow(_activation: coresdk.workflow_activation.ICancelWorkflow): void;
|
|
47
|
-
fireTimer(activation: coresdk.workflow_activation.IFireTimer): void;
|
|
48
|
-
resolveActivity(activation: coresdk.workflow_activation.IResolveActivity): void;
|
|
49
|
-
resolveChildWorkflowExecutionStart(activation: coresdk.workflow_activation.IResolveChildWorkflowExecutionStart): void;
|
|
50
|
-
resolveChildWorkflowExecution(activation: coresdk.workflow_activation.IResolveChildWorkflowExecution): void;
|
|
51
|
-
protected queryWorkflowNextHandler({ queryName, args }: QueryInput): Promise<unknown>;
|
|
52
|
-
queryWorkflow(activation: coresdk.workflow_activation.IQueryWorkflow): void;
|
|
53
|
-
signalWorkflowNextHandler({ signalName, args }: SignalInput): Promise<void>;
|
|
54
|
-
signalWorkflow(activation: coresdk.workflow_activation.ISignalWorkflow): void;
|
|
55
|
-
resolveSignalExternalWorkflow(activation: coresdk.workflow_activation.IResolveSignalExternalWorkflow): void;
|
|
56
|
-
resolveRequestCancelExternalWorkflow(activation: coresdk.workflow_activation.IResolveRequestCancelExternalWorkflow): void;
|
|
57
|
-
updateRandomSeed(activation: coresdk.workflow_activation.IUpdateRandomSeed): void;
|
|
58
|
-
notifyHasPatch(activation: coresdk.workflow_activation.INotifyHasPatch): void;
|
|
59
|
-
removeFromCache(): void;
|
|
60
|
-
}
|
|
61
|
-
export declare type WorkflowsImportFunc = () => Promise<Record<string, any>>;
|
|
62
|
-
export declare type InterceptorsImportFunc = () => Promise<Array<{
|
|
63
|
-
interceptors: WorkflowInterceptorsFactory;
|
|
64
|
-
}>>;
|
|
65
43
|
/**
|
|
66
|
-
*
|
|
44
|
+
* SDK Internal Patches are created by the SDK to avoid breaking history when behaviour
|
|
45
|
+
* of existing API need to be modified. This is the patch number supported by the current
|
|
46
|
+
* version of the SDK.
|
|
67
47
|
*
|
|
68
|
-
*
|
|
48
|
+
* History:
|
|
49
|
+
* 1: Fix `condition(..., 0)` is not the same as `condition(..., undefined)`
|
|
69
50
|
*/
|
|
70
|
-
export declare
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
51
|
+
export declare const LATEST_INTERNAL_PATCH_NUMBER = 1;
|
|
52
|
+
/**
|
|
53
|
+
* Keeps all of the Workflow runtime state like pending completions for activities and timers.
|
|
54
|
+
*
|
|
55
|
+
* Implements handlers for all workflow activation jobs.
|
|
56
|
+
*/
|
|
57
|
+
export declare class Activator implements ActivationHandler {
|
|
76
58
|
/**
|
|
77
59
|
* Map of task sequence to a Completion
|
|
78
60
|
*/
|
|
@@ -95,7 +77,7 @@ export declare class State {
|
|
|
95
77
|
* This is required because async interceptors might block workflow function invocation
|
|
96
78
|
* which delays query handler registration.
|
|
97
79
|
*/
|
|
98
|
-
readonly bufferedQueries: coresdk.workflow_activation.IQueryWorkflow[];
|
|
80
|
+
protected readonly bufferedQueries: coresdk.workflow_activation.IQueryWorkflow[];
|
|
99
81
|
/**
|
|
100
82
|
* Mapping of signal name to handler
|
|
101
83
|
*/
|
|
@@ -103,12 +85,13 @@ export declare class State {
|
|
|
103
85
|
/**
|
|
104
86
|
* Source map file for looking up the source files in response to __enhanced_stack_trace
|
|
105
87
|
*/
|
|
106
|
-
sourceMap: RawSourceMap
|
|
88
|
+
protected readonly sourceMap: RawSourceMap;
|
|
107
89
|
/**
|
|
108
90
|
* Whether or not to send the sources in enhanced stack trace query responses
|
|
109
91
|
*/
|
|
110
|
-
showStackTraceSources: boolean;
|
|
111
|
-
protected
|
|
92
|
+
protected readonly showStackTraceSources: boolean;
|
|
93
|
+
protected readonly promiseStackStore: PromiseStackStore;
|
|
94
|
+
readonly rootScope: RootCancellationScope;
|
|
112
95
|
/**
|
|
113
96
|
* Mapping of query name to handler
|
|
114
97
|
*/
|
|
@@ -116,15 +99,15 @@ export declare class State {
|
|
|
116
99
|
/**
|
|
117
100
|
* Loaded in {@link initRuntime}
|
|
118
101
|
*/
|
|
119
|
-
interceptors: Required<WorkflowInterceptors>;
|
|
102
|
+
readonly interceptors: Required<WorkflowInterceptors>;
|
|
120
103
|
/**
|
|
121
104
|
* Buffer that stores all generated commands, reset after each activation
|
|
122
105
|
*/
|
|
123
|
-
commands: coresdk.workflow_commands.IWorkflowCommand[];
|
|
106
|
+
protected commands: coresdk.workflow_commands.IWorkflowCommand[];
|
|
124
107
|
/**
|
|
125
108
|
* Stores all {@link condition}s that haven't been unblocked yet
|
|
126
109
|
*/
|
|
127
|
-
blockedConditions: Map<number, Condition>;
|
|
110
|
+
readonly blockedConditions: Map<number, Condition>;
|
|
128
111
|
/**
|
|
129
112
|
* Is this Workflow completed?
|
|
130
113
|
*
|
|
@@ -136,7 +119,13 @@ export declare class State {
|
|
|
136
119
|
/**
|
|
137
120
|
* Was this Workflow cancelled?
|
|
138
121
|
*/
|
|
139
|
-
cancelled: boolean;
|
|
122
|
+
protected cancelled: boolean;
|
|
123
|
+
/**
|
|
124
|
+
* This is tracked to allow buffering queries until a workflow function is called.
|
|
125
|
+
* TODO(bergundy): I don't think this makes sense since queries run last in an activation and must be responded to in
|
|
126
|
+
* the same activation.
|
|
127
|
+
*/
|
|
128
|
+
protected workflowFunctionWasCalled: boolean;
|
|
140
129
|
/**
|
|
141
130
|
* The next (incremental) sequence to assign when generating completable commands
|
|
142
131
|
*/
|
|
@@ -149,8 +138,10 @@ export declare class State {
|
|
|
149
138
|
condition: number;
|
|
150
139
|
stack: number;
|
|
151
140
|
};
|
|
152
|
-
|
|
153
|
-
|
|
141
|
+
/**
|
|
142
|
+
* This is set every time the workflow executes an activation
|
|
143
|
+
*/
|
|
144
|
+
now: number;
|
|
154
145
|
/**
|
|
155
146
|
* Reference to the current Workflow, initialized when a Workflow is started
|
|
156
147
|
*/
|
|
@@ -158,23 +149,11 @@ export declare class State {
|
|
|
158
149
|
/**
|
|
159
150
|
* Information about the current Workflow
|
|
160
151
|
*/
|
|
161
|
-
info
|
|
152
|
+
readonly info: WorkflowInfo;
|
|
162
153
|
/**
|
|
163
154
|
* A deterministic RNG, used by the isolate's overridden Math.random
|
|
164
155
|
*/
|
|
165
156
|
random: RNG;
|
|
166
|
-
/**
|
|
167
|
-
* Used to import the user workflows
|
|
168
|
-
*
|
|
169
|
-
* Injected on isolate context startup
|
|
170
|
-
*/
|
|
171
|
-
importWorkflows?: WorkflowsImportFunc;
|
|
172
|
-
/**
|
|
173
|
-
* Used to import the user interceptors
|
|
174
|
-
*
|
|
175
|
-
* Injected on isolate context startup
|
|
176
|
-
*/
|
|
177
|
-
importInterceptors?: InterceptorsImportFunc;
|
|
178
157
|
payloadConverter: PayloadConverter;
|
|
179
158
|
failureConverter: FailureConverter;
|
|
180
159
|
/**
|
|
@@ -185,7 +164,14 @@ export declare class State {
|
|
|
185
164
|
* Patches we sent to core {@link patched}
|
|
186
165
|
*/
|
|
187
166
|
readonly sentPatches: Set<string>;
|
|
167
|
+
/**
|
|
168
|
+
* SDK Internal Patches are created by the SDK to avoid breaking history when behaviour
|
|
169
|
+
* of existing API need to be modified.
|
|
170
|
+
*/
|
|
171
|
+
internalPatchNumber: number;
|
|
188
172
|
sinkCalls: SinkCall[];
|
|
173
|
+
constructor({ info, now, showStackTraceSources, sourceMap, randomnessSeed, patches, }: WorkflowCreateOptionsWithSourceMap);
|
|
174
|
+
protected getStackTraces(): Stack[];
|
|
189
175
|
getAndResetSinkCalls(): SinkCall[];
|
|
190
176
|
/**
|
|
191
177
|
* Buffer a Workflow command to be collected at the end of the current activation.
|
|
@@ -193,14 +179,37 @@ export declare class State {
|
|
|
193
179
|
* Prevents commands from being added after Workflow completion.
|
|
194
180
|
*/
|
|
195
181
|
pushCommand(cmd: coresdk.workflow_commands.IWorkflowCommand, complete?: boolean): void;
|
|
182
|
+
getAndResetCommands(): coresdk.workflow_commands.IWorkflowCommand[];
|
|
183
|
+
startWorkflowNextHandler({ args }: WorkflowExecuteInput): Promise<any>;
|
|
184
|
+
startWorkflow(activation: coresdk.workflow_activation.IStartWorkflow): void;
|
|
185
|
+
cancelWorkflow(_activation: coresdk.workflow_activation.ICancelWorkflow): void;
|
|
186
|
+
fireTimer(activation: coresdk.workflow_activation.IFireTimer): void;
|
|
187
|
+
resolveActivity(activation: coresdk.workflow_activation.IResolveActivity): void;
|
|
188
|
+
resolveChildWorkflowExecutionStart(activation: coresdk.workflow_activation.IResolveChildWorkflowExecutionStart): void;
|
|
189
|
+
resolveChildWorkflowExecution(activation: coresdk.workflow_activation.IResolveChildWorkflowExecution): void;
|
|
190
|
+
protected queryWorkflowNextHandler({ queryName, args }: QueryInput): Promise<unknown>;
|
|
191
|
+
queryWorkflow(activation: coresdk.workflow_activation.IQueryWorkflow): void;
|
|
192
|
+
signalWorkflowNextHandler({ signalName, args }: SignalInput): Promise<void>;
|
|
193
|
+
signalWorkflow(activation: coresdk.workflow_activation.ISignalWorkflow): void;
|
|
194
|
+
resolveSignalExternalWorkflow(activation: coresdk.workflow_activation.IResolveSignalExternalWorkflow): void;
|
|
195
|
+
resolveRequestCancelExternalWorkflow(activation: coresdk.workflow_activation.IResolveRequestCancelExternalWorkflow): void;
|
|
196
|
+
updateRandomSeed(activation: coresdk.workflow_activation.IUpdateRandomSeed): void;
|
|
197
|
+
notifyHasPatch(activation: coresdk.workflow_activation.INotifyHasPatch): void;
|
|
198
|
+
checkInternalPatchAtLeast(minimumPatchNumber: number): boolean;
|
|
199
|
+
removeFromCache(): void;
|
|
200
|
+
/**
|
|
201
|
+
* Transforms failures into a command to be sent to the server.
|
|
202
|
+
* Used to handle any failure emitted by the Workflow.
|
|
203
|
+
*/
|
|
204
|
+
handleWorkflowFailure(error: unknown): Promise<void>;
|
|
205
|
+
private completeQuery;
|
|
206
|
+
private failQuery;
|
|
207
|
+
/** Consume a completion if it exists in Workflow state */
|
|
208
|
+
private maybeConsumeCompletion;
|
|
209
|
+
/** Consume a completion if it exists in Workflow state, throws if it doesn't */
|
|
210
|
+
private consumeCompletion;
|
|
211
|
+
private completeWorkflow;
|
|
212
|
+
errorToFailure(err: unknown): ProtoFailure;
|
|
213
|
+
failureToError(failure: ProtoFailure): Error;
|
|
196
214
|
}
|
|
197
|
-
export declare
|
|
198
|
-
/**
|
|
199
|
-
* Transforms failures into a command to be sent to the server.
|
|
200
|
-
* Used to handle any failure emitted by the Workflow.
|
|
201
|
-
*/
|
|
202
|
-
export declare function handleWorkflowFailure(error: unknown): Promise<void>;
|
|
203
|
-
/** Consume a completion if it exists in Workflow state */
|
|
204
|
-
export declare function maybeConsumeCompletion(type: keyof State['completions'], taskSeq: number): Completion | undefined;
|
|
205
|
-
/** Consume a completion if it exists in Workflow state, throws if it doesn't */
|
|
206
|
-
export declare function consumeCompletion(type: keyof State['completions'], taskSeq: number): Completion;
|
|
215
|
+
export declare function getActivator(): Activator;
|