@temporalio/workflow 1.11.7 → 1.12.0-rc.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.
@@ -36,51 +36,65 @@ function initRuntime(options) {
36
36
  // We do this before importing any user code so user code can statically reference @temporalio/workflow functions
37
37
  // as well as Date and Math.random.
38
38
  (0, global_attributes_1.setActivatorUntyped)(activator);
39
- // webpack alias to payloadConverterPath
40
- // eslint-disable-next-line @typescript-eslint/no-require-imports
41
- const customPayloadConverter = require('__temporal_custom_payload_converter').payloadConverter;
42
- // The `payloadConverter` export is validated in the Worker
43
- if (customPayloadConverter != null) {
44
- activator.payloadConverter = customPayloadConverter;
45
- }
46
- // webpack alias to failureConverterPath
47
- // eslint-disable-next-line @typescript-eslint/no-require-imports
48
- const customFailureConverter = require('__temporal_custom_failure_converter').failureConverter;
49
- // The `failureConverter` export is validated in the Worker
50
- if (customFailureConverter != null) {
51
- activator.failureConverter = customFailureConverter;
52
- }
53
- const { importWorkflows, importInterceptors } = global.__TEMPORAL__;
54
- if (importWorkflows === undefined || importInterceptors === undefined) {
55
- throw new common_1.IllegalStateError('Workflow bundle did not register import hooks');
56
- }
57
- const interceptors = importInterceptors();
58
- for (const mod of interceptors) {
59
- const factory = mod.interceptors;
60
- if (factory !== undefined) {
61
- if (typeof factory !== 'function') {
62
- throw new TypeError(`Failed to initialize workflows interceptors: expected a function, but got: '${factory}'`);
39
+ activator.rethrowSynchronously = true;
40
+ try {
41
+ // webpack alias to payloadConverterPath
42
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
43
+ const customPayloadConverter = require('__temporal_custom_payload_converter').payloadConverter;
44
+ // The `payloadConverter` export is validated in the Worker
45
+ if (customPayloadConverter != null) {
46
+ activator.payloadConverter = customPayloadConverter;
47
+ }
48
+ // webpack alias to failureConverterPath
49
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
50
+ const customFailureConverter = require('__temporal_custom_failure_converter').failureConverter;
51
+ // The `failureConverter` export is validated in the Worker
52
+ if (customFailureConverter != null) {
53
+ activator.failureConverter = customFailureConverter;
54
+ }
55
+ const { importWorkflows, importInterceptors } = global.__TEMPORAL__;
56
+ if (importWorkflows === undefined || importInterceptors === undefined) {
57
+ throw new common_1.IllegalStateError('Workflow bundle did not register import hooks');
58
+ }
59
+ const interceptors = importInterceptors();
60
+ for (const mod of interceptors) {
61
+ const factory = mod.interceptors;
62
+ if (factory !== undefined) {
63
+ if (typeof factory !== 'function') {
64
+ throw new TypeError(`Failed to initialize workflows interceptors: expected a function, but got: '${factory}'`);
65
+ }
66
+ const interceptors = factory();
67
+ activator.interceptors.inbound.push(...(interceptors.inbound ?? []));
68
+ activator.interceptors.outbound.push(...(interceptors.outbound ?? []));
69
+ activator.interceptors.internals.push(...(interceptors.internals ?? []));
70
+ }
71
+ }
72
+ const mod = importWorkflows();
73
+ const workflowFn = mod[activator.info.workflowType];
74
+ const defaultWorkflowFn = mod['default'];
75
+ if (typeof workflowFn === 'function') {
76
+ activator.workflow = workflowFn;
77
+ }
78
+ else if (typeof defaultWorkflowFn === 'function') {
79
+ activator.workflow = defaultWorkflowFn;
80
+ }
81
+ else {
82
+ const details = workflowFn === undefined
83
+ ? 'no such function is exported by the workflow bundle'
84
+ : `expected a function, but got: '${typeof workflowFn}'`;
85
+ throw new TypeError(`Failed to initialize workflow of type '${activator.info.workflowType}': ${details}`);
86
+ }
87
+ if (isWorkflowFunctionWithOptions(activator.workflow)) {
88
+ if (typeof activator.workflow.workflowDefinitionOptions === 'object') {
89
+ activator.versioningBehavior = activator.workflow.workflowDefinitionOptions.versioningBehavior;
90
+ }
91
+ else {
92
+ activator.workflowDefinitionOptionsGetter = activator.workflow.workflowDefinitionOptions;
63
93
  }
64
- const interceptors = factory();
65
- activator.interceptors.inbound.push(...(interceptors.inbound ?? []));
66
- activator.interceptors.outbound.push(...(interceptors.outbound ?? []));
67
- activator.interceptors.internals.push(...(interceptors.internals ?? []));
68
94
  }
69
95
  }
70
- const mod = importWorkflows();
71
- const workflowFn = mod[activator.info.workflowType];
72
- const defaultWorkflowFn = mod['default'];
73
- if (typeof workflowFn === 'function') {
74
- activator.workflow = workflowFn;
75
- }
76
- else if (typeof defaultWorkflowFn === 'function') {
77
- activator.workflow = defaultWorkflowFn;
78
- }
79
- else {
80
- const details = workflowFn === undefined
81
- ? 'no such function is exported by the workflow bundle'
82
- : `expected a function, but got: '${typeof workflowFn}'`;
83
- throw new TypeError(`Failed to initialize workflow of type '${activator.info.workflowType}': ${details}`);
96
+ finally {
97
+ activator.rethrowSynchronously = false;
84
98
  }
85
99
  }
86
100
  /**
@@ -107,46 +121,64 @@ function fixPrototypes(obj) {
107
121
  * Initialize the workflow. Or to be exact, _complete_ initialization, as most part has been done in constructor).
108
122
  */
109
123
  function initialize(initializeWorkflowJob) {
110
- (0, global_attributes_1.getActivator)().initializeWorkflow(initializeWorkflowJob);
124
+ const activator = (0, global_attributes_1.getActivator)();
125
+ activator.rethrowSynchronously = true;
126
+ try {
127
+ activator.initializeWorkflow(initializeWorkflowJob);
128
+ }
129
+ finally {
130
+ activator.rethrowSynchronously = false;
131
+ }
111
132
  }
112
133
  /**
113
- * Run a chunk of activation jobs
134
+ * Run a chunk of activation jobs.
135
+ *
136
+ * Notice that this function is not async and runs _inside_ the VM context. Therefore, no microtask
137
+ * will get executed _while_ this function is active; they will however get executed _after_ this
138
+ * function returns (i.e. all outstanding microtasks in the VM will get executed before execution
139
+ * resumes out of the VM, in `vm-shared.ts:activate()`).
114
140
  */
115
141
  function activate(activation, batchIndex = 0) {
116
142
  const activator = (0, global_attributes_1.getActivator)();
117
- const intercept = (0, interceptors_1.composeInterceptors)(activator.interceptors.internals, 'activate', ({ activation }) => {
118
- // Cast from the interface to the class which has the `variant` attribute.
119
- // This is safe because we know that activation is a proto class.
120
- const jobs = activation.jobs;
121
- // Initialization will have been handled already, but we might still need to start the workflow function
122
- const startWorkflowJob = jobs[0].variant === 'initializeWorkflow' ? jobs.shift()?.initializeWorkflow : undefined;
123
- for (const job of jobs) {
124
- if (job.variant === undefined)
125
- throw new TypeError('Expected job.variant to be defined');
126
- const variant = job[job.variant];
127
- if (!variant)
128
- throw new TypeError(`Expected job.${job.variant} to be set`);
129
- activator[job.variant](variant /* TS can't infer this type */);
130
- if (job.variant !== 'queryWorkflow')
143
+ activator.rethrowSynchronously = true;
144
+ try {
145
+ const intercept = (0, interceptors_1.composeInterceptors)(activator.interceptors.internals, 'activate', ({ activation }) => {
146
+ // Cast from the interface to the class which has the `variant` attribute.
147
+ // This is safe because we know that activation is a proto class.
148
+ const jobs = activation.jobs;
149
+ // Initialization will have been handled already, but we might still need to start the workflow function
150
+ const startWorkflowJob = jobs[0].variant === 'initializeWorkflow' ? jobs.shift()?.initializeWorkflow : undefined;
151
+ for (const job of jobs) {
152
+ if (job.variant === undefined)
153
+ throw new TypeError('Expected job.variant to be defined');
154
+ const variant = job[job.variant];
155
+ if (!variant)
156
+ throw new TypeError(`Expected job.${job.variant} to be set`);
157
+ activator[job.variant](variant /* TS can't infer this type */);
158
+ if (job.variant !== 'queryWorkflow')
159
+ tryUnblockConditions();
160
+ }
161
+ if (startWorkflowJob) {
162
+ const safeJobTypes = [
163
+ 'initializeWorkflow',
164
+ 'signalWorkflow',
165
+ 'doUpdate',
166
+ 'cancelWorkflow',
167
+ 'updateRandomSeed',
168
+ ];
169
+ if (jobs.some((job) => !safeJobTypes.includes(job.variant))) {
170
+ throw new TypeError('Received both initializeWorkflow and non-signal/non-update jobs in the same activation: ' +
171
+ JSON.stringify(jobs.map((job) => job.variant)));
172
+ }
173
+ activator.startWorkflow(startWorkflowJob);
131
174
  tryUnblockConditions();
132
- }
133
- if (startWorkflowJob) {
134
- const safeJobTypes = [
135
- 'initializeWorkflow',
136
- 'signalWorkflow',
137
- 'doUpdate',
138
- 'cancelWorkflow',
139
- 'updateRandomSeed',
140
- ];
141
- if (jobs.some((job) => !safeJobTypes.includes(job.variant))) {
142
- throw new TypeError('Received both initializeWorkflow and non-signal/non-update jobs in the same activation: ' +
143
- JSON.stringify(jobs.map((job) => job.variant)));
144
175
  }
145
- activator.startWorkflow(startWorkflowJob);
146
- tryUnblockConditions();
147
- }
148
- });
149
- intercept({ activation, batchIndex });
176
+ });
177
+ intercept({ activation, batchIndex });
178
+ }
179
+ finally {
180
+ activator.rethrowSynchronously = false;
181
+ }
150
182
  }
151
183
  /**
152
184
  * Conclude a single activation.
@@ -156,17 +188,27 @@ function activate(activation, batchIndex = 0) {
156
188
  */
157
189
  function concludeActivation() {
158
190
  const activator = (0, global_attributes_1.getActivator)();
159
- activator.rejectBufferedUpdates();
160
- const intercept = (0, interceptors_1.composeInterceptors)(activator.interceptors.internals, 'concludeActivation', (input) => input);
161
- const activationCompletion = activator.concludeActivation();
162
- const { commands } = intercept({ commands: activationCompletion.commands });
163
- if (activator.completed) {
164
- activator.warnIfUnfinishedHandlers();
191
+ activator.rethrowSynchronously = true;
192
+ try {
193
+ activator.rejectBufferedUpdates();
194
+ const intercept = (0, interceptors_1.composeInterceptors)(activator.interceptors.internals, 'concludeActivation', (input) => input);
195
+ const activationCompletion = activator.concludeActivation();
196
+ const { commands } = intercept({ commands: activationCompletion.commands });
197
+ if (activator.completed) {
198
+ activator.warnIfUnfinishedHandlers();
199
+ }
200
+ return {
201
+ runId: activator.info.runId,
202
+ successful: {
203
+ ...activationCompletion,
204
+ commands,
205
+ versioningBehavior: (0, common_1.encodeVersioningBehavior)(activationCompletion.versioningBehavior),
206
+ },
207
+ };
208
+ }
209
+ finally {
210
+ activator.rethrowSynchronously = false;
165
211
  }
166
- return {
167
- runId: activator.info.runId,
168
- successful: { ...activationCompletion, commands },
169
- };
170
212
  }
171
213
  /**
172
214
  * Loop through all blocked conditions, evaluate and unblock if possible.
@@ -174,28 +216,48 @@ function concludeActivation() {
174
216
  * @returns number of unblocked conditions.
175
217
  */
176
218
  function tryUnblockConditions() {
177
- let numUnblocked = 0;
178
- for (;;) {
179
- const prevUnblocked = numUnblocked;
180
- for (const [seq, cond] of (0, global_attributes_1.getActivator)().blockedConditions.entries()) {
181
- if (cond.fn()) {
182
- cond.resolve();
183
- numUnblocked++;
184
- // It is safe to delete elements during map iteration
185
- (0, global_attributes_1.getActivator)().blockedConditions.delete(seq);
219
+ const activator = (0, global_attributes_1.getActivator)();
220
+ activator.rethrowSynchronously = true;
221
+ try {
222
+ let numUnblocked = 0;
223
+ for (;;) {
224
+ activator.maybeRethrowWorkflowTaskError();
225
+ const prevUnblocked = numUnblocked;
226
+ for (const [seq, cond] of activator.blockedConditions.entries()) {
227
+ if (cond.fn()) {
228
+ cond.resolve();
229
+ numUnblocked++;
230
+ // It is safe to delete elements during map iteration
231
+ activator.blockedConditions.delete(seq);
232
+ }
233
+ }
234
+ if (prevUnblocked === numUnblocked) {
235
+ break;
186
236
  }
187
237
  }
188
- if (prevUnblocked === numUnblocked) {
189
- break;
190
- }
238
+ return numUnblocked;
239
+ }
240
+ finally {
241
+ activator.rethrowSynchronously = false;
191
242
  }
192
- return numUnblocked;
193
243
  }
194
244
  function dispose() {
195
- const dispose = (0, interceptors_1.composeInterceptors)((0, global_attributes_1.getActivator)().interceptors.internals, 'dispose', async () => {
196
- (0, cancellation_scope_1.disableStorage)();
197
- (0, update_scope_1.disableUpdateStorage)();
198
- });
199
- dispose({});
245
+ const activator = (0, global_attributes_1.getActivator)();
246
+ activator.rethrowSynchronously = true;
247
+ try {
248
+ const dispose = (0, interceptors_1.composeInterceptors)(activator.interceptors.internals, 'dispose', async () => {
249
+ (0, cancellation_scope_1.disableStorage)();
250
+ (0, update_scope_1.disableUpdateStorage)();
251
+ });
252
+ dispose({});
253
+ }
254
+ finally {
255
+ activator.rethrowSynchronously = false;
256
+ }
257
+ }
258
+ function isWorkflowFunctionWithOptions(obj) {
259
+ if (obj == null)
260
+ return false;
261
+ return Object.hasOwn(obj, 'workflowDefinitionOptions');
200
262
  }
201
263
  //# sourceMappingURL=worker-interface.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"worker-interface.js","sourceRoot":"","sources":["../src/worker-interface.ts"],"names":[],"mappings":";;AA0BA,kCA8DC;AAwBD,gCAEC;AAKD,4BAyCC;AAQD,gDAcC;AAOD,oDAiBC;AAED,0BAMC;AAtND;;;;GAIG;AACH,+CAAuD;AACvD,sEAA0E;AAE1E,6DAAsD;AACtD,iDAAsD;AAGtD,2CAAwC;AACxC,2DAAwE;AAKxE,MAAM,MAAM,GAAG,UAAiB,CAAC;AACjC,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC;AAErC;;;;GAIG;AACH,SAAgB,WAAW,CAAC,OAAsC;IAChE,MAAM,SAAS,GAAG,IAAI,qBAAS,CAAC;QAC9B,GAAG,OAAO;QACV,IAAI,EAAE,aAAa,CAAC;YAClB,GAAG,OAAO,CAAC,IAAI;YACf,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,YAAY,CAAC,GAAG,EAAE;SAC1D,CAAC;KACH,CAAC,CAAC;IACH,+EAA+E;IAC/E,iHAAiH;IACjH,mCAAmC;IACnC,IAAA,uCAAmB,EAAC,SAAS,CAAC,CAAC;IAE/B,wCAAwC;IACxC,iEAAiE;IACjE,MAAM,sBAAsB,GAAG,OAAO,CAAC,qCAAqC,CAAC,CAAC,gBAAgB,CAAC;IAC/F,2DAA2D;IAC3D,IAAI,sBAAsB,IAAI,IAAI,EAAE,CAAC;QACnC,SAAS,CAAC,gBAAgB,GAAG,sBAAsB,CAAC;IACtD,CAAC;IACD,wCAAwC;IACxC,iEAAiE;IACjE,MAAM,sBAAsB,GAAG,OAAO,CAAC,qCAAqC,CAAC,CAAC,gBAAgB,CAAC;IAC/F,2DAA2D;IAC3D,IAAI,sBAAsB,IAAI,IAAI,EAAE,CAAC;QACnC,SAAS,CAAC,gBAAgB,GAAG,sBAAsB,CAAC;IACtD,CAAC;IAED,MAAM,EAAE,eAAe,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC;IACpE,IAAI,eAAe,KAAK,SAAS,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;QACtE,MAAM,IAAI,0BAAiB,CAAC,+CAA+C,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;IAC1C,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAgC,GAAG,CAAC,YAAY,CAAC;QAC9D,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;gBAClC,MAAM,IAAI,SAAS,CAAC,+EAA+E,OAAO,GAAG,CAAC,CAAC;YACjH,CAAC;YACD,MAAM,YAAY,GAAG,OAAO,EAAE,CAAC;YAC/B,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;YACrE,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;YACvE,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;IAC9B,MAAM,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACpD,MAAM,iBAAiB,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;IAEzC,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE,CAAC;QACrC,SAAS,CAAC,QAAQ,GAAG,UAAU,CAAC;IAClC,CAAC;SAAM,IAAI,OAAO,iBAAiB,KAAK,UAAU,EAAE,CAAC;QACnD,SAAS,CAAC,QAAQ,GAAG,iBAAiB,CAAC;IACzC,CAAC;SAAM,CAAC;QACN,MAAM,OAAO,GACX,UAAU,KAAK,SAAS;YACtB,CAAC,CAAC,qDAAqD;YACvD,CAAC,CAAC,kCAAkC,OAAO,UAAU,GAAG,CAAC;QAC7D,MAAM,IAAI,SAAS,CAAC,0CAA0C,SAAS,CAAC,IAAI,CAAC,YAAY,MAAM,OAAO,EAAE,CAAC,CAAC;IAC5G,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CAAI,GAAM;IAC9B,IAAI,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC3C,QAAQ,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;YACtD,KAAK,OAAO;gBACV,OAAO,KAAK,CAAC,IAAI,CAAE,GAAsB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAM,CAAC;YACrE,KAAK,MAAM;gBACT,OAAO,IAAI,IAAI,CAAC,GAAsB,CAAM,CAAC;YAC/C;gBACE,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAM,CAAC;QAC9G,CAAC;IACH,CAAC;;QAAM,OAAO,GAAG,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,SAAgB,UAAU,CAAC,qBAAsE;IAC/F,IAAA,gCAAY,GAAE,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,SAAgB,QAAQ,CAAC,UAA2D,EAAE,UAAU,GAAG,CAAC;IAClG,MAAM,SAAS,GAAG,IAAA,gCAAY,GAAE,CAAC;IACjC,MAAM,SAAS,GAAG,IAAA,kCAAmB,EAAC,SAAS,CAAC,YAAY,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;QACrG,0EAA0E;QAC1E,iEAAiE;QACjE,MAAM,IAAI,GAAG,UAAU,CAAC,IAA2D,CAAC;QAEpF,wGAAwG;QACxG,MAAM,gBAAgB,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;QAEjH,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS;gBAAE,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAC;YAEzF,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACjC,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,SAAS,CAAC,gBAAgB,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC;YAE3E,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAc,CAAC,8BAA8B,CAAC,CAAC;YAEtE,IAAI,GAAG,CAAC,OAAO,KAAK,eAAe;gBAAE,oBAAoB,EAAE,CAAC;QAC9D,CAAC;QAED,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,YAAY,GAAmE;gBACnF,oBAAoB;gBACpB,gBAAgB;gBAChB,UAAU;gBACV,gBAAgB;gBAChB,kBAAkB;aACnB,CAAC;YACF,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;gBAC5D,MAAM,IAAI,SAAS,CACjB,0FAA0F;oBACxF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CACjD,CAAC;YACJ,CAAC;YAED,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;YAC1C,oBAAoB,EAAE,CAAC;QACzB,CAAC;IACH,CAAC,CAAC,CAAC;IACH,SAAS,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;AACxC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,kBAAkB;IAChC,MAAM,SAAS,GAAG,IAAA,gCAAY,GAAE,CAAC;IACjC,SAAS,CAAC,qBAAqB,EAAE,CAAC;IAClC,MAAM,SAAS,GAAG,IAAA,kCAAmB,EAAC,SAAS,CAAC,YAAY,CAAC,SAAS,EAAE,oBAAoB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;IAChH,MAAM,oBAAoB,GAAG,SAAS,CAAC,kBAAkB,EAAE,CAAC;IAC5D,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,EAAE,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC5E,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;QACxB,SAAS,CAAC,wBAAwB,EAAE,CAAC;IACvC,CAAC;IAED,OAAO;QACL,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK;QAC3B,UAAU,EAAE,EAAE,GAAG,oBAAoB,EAAE,QAAQ,EAAE;KAClD,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAgB,oBAAoB;IAClC,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,SAAS,CAAC;QACR,MAAM,aAAa,GAAG,YAAY,CAAC;QACnC,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAA,gCAAY,GAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,EAAE,CAAC;YACrE,IAAI,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;gBACd,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,YAAY,EAAE,CAAC;gBACf,qDAAqD;gBACrD,IAAA,gCAAY,GAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QACD,IAAI,aAAa,KAAK,YAAY,EAAE,CAAC;YACnC,MAAM;QACR,CAAC;IACH,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAgB,OAAO;IACrB,MAAM,OAAO,GAAG,IAAA,kCAAmB,EAAC,IAAA,gCAAY,GAAE,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,IAAI,EAAE;QAC/F,IAAA,mCAAc,GAAE,CAAC;QACjB,IAAA,mCAAoB,GAAE,CAAC;IACzB,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,CAAC,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"worker-interface.js","sourceRoot":"","sources":["../src/worker-interface.ts"],"names":[],"mappings":"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"}
package/lib/workflow.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { ActivityFunction, ActivityOptions, LocalActivityOptions, QueryDefinition, SearchAttributes, SignalDefinition, UntypedActivities, UpdateDefinition, WithWorkflowArgs, Workflow, WorkflowResultType, WorkflowReturnType } from '@temporalio/common';
1
+ import { ActivityFunction, ActivityOptions, LocalActivityOptions, QueryDefinition, SearchAttributes, SignalDefinition, UntypedActivities, UpdateDefinition, WithWorkflowArgs, Workflow, WorkflowResultType, WorkflowReturnType, SearchAttributeUpdatePair, WorkflowDefinitionOptionsOrGetter } from '@temporalio/common';
2
2
  import { Duration } from '@temporalio/common/lib/time';
3
3
  import { temporal } from '@temporalio/proto';
4
- import { ChildWorkflowOptions, ChildWorkflowOptionsWithDefaults, ContinueAsNewOptions, DefaultSignalHandler, EnhancedStackTrace, Handler, QueryHandlerOptions, SignalHandlerOptions, UpdateHandlerOptions, WorkflowInfo, UpdateInfo } from './interfaces';
4
+ import { ChildWorkflowOptions, ChildWorkflowOptionsWithDefaults, ContinueAsNewOptions, DefaultSignalHandler, EnhancedStackTrace, Handler, QueryHandlerOptions, SignalHandlerOptions, UpdateHandlerOptions, WorkflowInfo, UpdateInfo, DefaultUpdateHandler, DefaultQueryHandler } from './interfaces';
5
5
  import { ChildWorkflowHandle, ExternalWorkflowHandle } from './workflow-handle';
6
6
  /**
7
7
  * Adds default values of `workflowId` and `cancellationType` to given workflow options.
@@ -262,14 +262,15 @@ export declare function makeContinueAsNewFunc<F extends Workflow>(options?: Cont
262
262
  *
263
263
  * @example
264
264
  *
265
- *```ts
265
+ * ```ts
266
266
  *import { continueAsNew } from '@temporalio/workflow';
267
+ import { SearchAttributeType } from '@temporalio/common';
267
268
  *
268
269
  *export async function myWorkflow(n: number): Promise<void> {
269
270
  * // ... Workflow logic
270
271
  * await continueAsNew<typeof myWorkflow>(n + 1);
271
272
  *}
272
- *```
273
+ * ```
273
274
  */
274
275
  export declare function continueAsNew<F extends Workflow>(...args: Parameters<F>): Promise<never>;
275
276
  /**
@@ -365,29 +366,55 @@ export declare function setHandler<Ret, Args extends any[], T extends UpdateDefi
365
366
  *
366
367
  * Signals are dispatched to the default signal handler in the order that they were accepted by the server.
367
368
  *
368
- * If this function is called multiple times for a given signal or query name the last handler will overwrite any previous calls.
369
+ * If this function is called multiple times for a given signal name the last handler will overwrite any previous calls.
369
370
  *
370
371
  * @param handler a function that will handle signals for non-registered signal names, or `undefined` to unset the handler.
371
372
  */
372
373
  export declare function setDefaultSignalHandler(handler: DefaultSignalHandler | undefined): void;
374
+ /**
375
+ * Set a update handler function that will handle updates calls for non-registered update names.
376
+ *
377
+ * Updates are dispatched to the default update handler in the order that they were accepted by the server.
378
+ *
379
+ * If this function is called multiple times for a given update name the last handler will overwrite any previous calls.
380
+ *
381
+ * @param handler a function that will handle updates for non-registered update names, or `undefined` to unset the handler.
382
+ */
383
+ export declare function setDefaultUpdateHandler(handler: DefaultUpdateHandler | undefined): void;
384
+ /**
385
+ * Set a query handler function that will handle query calls for non-registered query names.
386
+ *
387
+ * Queries are dispatched to the default query handler in the order that they were accepted by the server.
388
+ *
389
+ * If this function is called multiple times for a given query name the last handler will overwrite any previous calls.
390
+ *
391
+ * @param handler a function that will handle queries for non-registered query names, or `undefined` to unset the handler.
392
+ */
393
+ export declare function setDefaultQueryHandler(handler: DefaultQueryHandler | undefined): void;
373
394
  /**
374
395
  * Updates this Workflow's Search Attributes by merging the provided `searchAttributes` with the existing Search
375
396
  * Attributes, `workflowInfo().searchAttributes`.
376
397
  *
377
- * For example, this Workflow code:
398
+ * Search attributes can be upserted using either SearchAttributes (deprecated) or SearchAttributeUpdatePair[] (preferred)
399
+ *
400
+ * Upserting a workflow's search attributes using SearchAttributeUpdatePair[]:
378
401
  *
379
402
  * ```ts
380
- * upsertSearchAttributes({
381
- * CustomIntField: [1],
382
- * CustomBoolField: [true]
383
- * });
384
- * upsertSearchAttributes({
385
- * CustomIntField: [42],
386
- * CustomKeywordField: ['durable code', 'is great']
387
- * });
403
+ * const intKey = defineSearchKey('CustomIntField', 'INT');
404
+ * const boolKey = defineSearchKey('CustomBoolField', 'BOOL');
405
+ * const keywordListKey = defineSearchKey('CustomKeywordField', 'KEYWORD_LIST');
406
+ *
407
+ * upsertSearchAttributes([
408
+ * defineSearchAttribute(intKey, 1),
409
+ * defineSearchAttribute(boolKey, true)
410
+ * ]);
411
+ * upsertSearchAttributes([
412
+ * defineSearchAttribute(intKey, 42),
413
+ * defineSearchAttribute(keywordListKey, ['durable code', 'is great'])
414
+ * ]);
388
415
  * ```
389
416
  *
390
- * would result in the Workflow having these Search Attributes:
417
+ * Would result in the Workflow having these Search Attributes:
391
418
  *
392
419
  * ```ts
393
420
  * {
@@ -397,9 +424,11 @@ export declare function setDefaultSignalHandler(handler: DefaultSignalHandler |
397
424
  * }
398
425
  * ```
399
426
  *
400
- * @param searchAttributes The Record to merge. Use a value of `[]` to clear a Search Attribute.
427
+ * @param searchAttributes The Record to merge.
428
+ * If using SearchAttributeUpdatePair[] (preferred), set a value to null to remove the search attribute.
429
+ * If using SearchAttributes (deprecated), set a value to undefined or an empty list to remove the search attribute.
401
430
  */
402
- export declare function upsertSearchAttributes(searchAttributes: SearchAttributes): void;
431
+ export declare function upsertSearchAttributes(searchAttributes: SearchAttributes | SearchAttributeUpdatePair[]): void;
403
432
  /**
404
433
  * Updates this Workflow's Memos by merging the provided `memo` with existing
405
434
  * Memos (as returned by `workflowInfo().memo`).
@@ -450,6 +479,35 @@ export declare function upsertMemo(memo: Record<string, unknown>): void;
450
479
  * @returns true if there are no in-progress update or signal handler executions.
451
480
  */
452
481
  export declare function allHandlersFinished(): boolean;
482
+ /**
483
+ * Can be used to alter workflow functions with certain options specified at definition time.
484
+ *
485
+ * @example
486
+ * For example:
487
+ * ```ts
488
+ * setWorkflowOptions({ versioningBehavior: 'PINNED' }, myWorkflow);
489
+ * export async function myWorkflow(): Promise<string> {
490
+ * // Workflow code here
491
+ * return "hi";
492
+ * }
493
+ * ```
494
+ *
495
+ * @example
496
+ * To annotate a default or dynamic workflow:
497
+ * ```ts
498
+ * export default async function (): Promise<string> {
499
+ * // Workflow code here
500
+ * return "hi";
501
+ * }
502
+ * setWorkflowOptions({ versioningBehavior: 'PINNED' }, module.exports.default);
503
+ * ```
504
+ *
505
+ * @param options Options for the workflow defintion, or a function that returns options. If a
506
+ * function is provided, it will be called once just before the workflow function is called for the
507
+ * first time. It is safe to call {@link workflowInfo} inside such a function.
508
+ * @param fn The workflow function.
509
+ */
510
+ export declare function setWorkflowOptions<A extends any[], RT>(options: WorkflowDefinitionOptionsOrGetter, fn: (...args: A) => Promise<RT>): void;
453
511
  export declare const stackTraceQuery: QueryDefinition<string, [], string>;
454
512
  export declare const enhancedStackTraceQuery: QueryDefinition<EnhancedStackTrace, [], string>;
455
513
  export declare const workflowMetadataQuery: QueryDefinition<temporal.api.sdk.v1.IWorkflowMetadata, [], string>;