@temporalio/workflow 1.8.5 → 1.9.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.
package/lib/internals.js CHANGED
@@ -1,15 +1,9 @@
1
1
  "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
9
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
10
4
  };
11
5
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.getActivator = exports.maybeGetActivator = exports.Activator = exports.LocalActivityDoBackoff = void 0;
6
+ exports.Activator = void 0;
13
7
  const common_1 = require("@temporalio/common");
14
8
  const interceptors_1 = require("@temporalio/common/lib/interceptors");
15
9
  const type_helpers_1 = require("@temporalio/common/lib/type-helpers");
@@ -19,7 +13,7 @@ const errors_1 = require("./errors");
19
13
  const interfaces_1 = require("./interfaces");
20
14
  const stack_helpers_1 = require("./stack-helpers");
21
15
  const pkg_1 = __importDefault(require("./pkg"));
22
- const global_attributes_1 = require("./global-attributes");
16
+ const logs_1 = require("./logs");
23
17
  var StartChildWorkflowExecutionFailedCause;
24
18
  (function (StartChildWorkflowExecutionFailedCause) {
25
19
  StartChildWorkflowExecutionFailedCause[StartChildWorkflowExecutionFailedCause["START_CHILD_WORKFLOW_EXECUTION_FAILED_CAUSE_UNSPECIFIED"] = 0] = "START_CHILD_WORKFLOW_EXECUTION_FAILED_CAUSE_UNSPECIFIED";
@@ -27,19 +21,6 @@ var StartChildWorkflowExecutionFailedCause;
27
21
  })(StartChildWorkflowExecutionFailedCause || (StartChildWorkflowExecutionFailedCause = {}));
28
22
  (0, type_helpers_1.checkExtends)();
29
23
  (0, type_helpers_1.checkExtends)();
30
- /**
31
- * A class that acts as a marker for this special result type
32
- */
33
- let LocalActivityDoBackoff = class LocalActivityDoBackoff extends Error {
34
- constructor(backoff) {
35
- super();
36
- this.backoff = backoff;
37
- }
38
- };
39
- LocalActivityDoBackoff = __decorate([
40
- (0, type_helpers_1.SymbolBasedInstanceOfError)('LocalActivityDoBackoff')
41
- ], LocalActivityDoBackoff);
42
- exports.LocalActivityDoBackoff = LocalActivityDoBackoff;
43
24
  /**
44
25
  * Keeps all of the Workflow runtime state like pending completions for activities and timers.
45
26
  *
@@ -62,6 +43,10 @@ class Activator {
62
43
  signalWorkflow: new Map(),
63
44
  cancelWorkflow: new Map(),
64
45
  };
46
+ /**
47
+ * Holds buffered Update calls until a handler is registered
48
+ */
49
+ this.bufferedUpdates = Array();
65
50
  /**
66
51
  * Holds buffered signal calls until a handler is registered
67
52
  */
@@ -74,6 +59,10 @@ class Activator {
74
59
  * which delays query handler registration.
75
60
  */
76
61
  this.bufferedQueries = Array();
62
+ /**
63
+ * Mapping of update name to handler and validator
64
+ */
65
+ this.updateHandlers = new Map();
77
66
  /**
78
67
  * Mapping of signal name to handler
79
68
  */
@@ -193,6 +182,9 @@ class Activator {
193
182
  }
194
183
  }
195
184
  }
185
+ mutateWorkflowInfo(fn) {
186
+ this.info = fn(this.info);
187
+ }
196
188
  getStackTraces() {
197
189
  const { childToParent, promiseToStack } = this.promiseStackStore;
198
190
  const internalNodes = [...childToParent.values()].reduce((acc, curr) => {
@@ -249,8 +241,7 @@ class Activator {
249
241
  promise = workflow(...args);
250
242
  }
251
243
  finally {
252
- // Guarantee this runs even if there was an exception when invoking the Workflow function
253
- // Otherwise this Workflow will now be queryable.
244
+ // Queries must be handled even if there was an exception when invoking the Workflow function.
254
245
  this.workflowFunctionWasCalled = true;
255
246
  // Empty the buffer
256
247
  const buffer = this.bufferedQueries.splice(0);
@@ -262,10 +253,10 @@ class Activator {
262
253
  }
263
254
  startWorkflow(activation) {
264
255
  const execute = (0, interceptors_1.composeInterceptors)(this.interceptors.inbound, 'execute', this.startWorkflowNextHandler.bind(this));
265
- (0, stack_helpers_1.untrackPromise)(execute({
256
+ (0, stack_helpers_1.untrackPromise)((0, logs_1.executeWithLifecycleLogging)(() => execute({
266
257
  headers: activation.headers ?? {},
267
258
  args: (0, common_1.arrayFromPayloads)(this.payloadConverter, activation.arguments),
268
- }).then(this.completeWorkflow.bind(this), this.handleWorkflowFailure.bind(this)));
259
+ })).then(this.completeWorkflow.bind(this), this.handleWorkflowFailure.bind(this)));
269
260
  }
270
261
  cancelWorkflow(_activation) {
271
262
  this.cancelled = true;
@@ -298,7 +289,7 @@ class Activator {
298
289
  reject(err);
299
290
  }
300
291
  else if (activation.result.backoff) {
301
- reject(new LocalActivityDoBackoff(activation.result.backoff));
292
+ reject(new errors_1.LocalActivityDoBackoff(activation.result.backoff));
302
293
  }
303
294
  }
304
295
  resolveChildWorkflowExecutionStart(activation) {
@@ -351,7 +342,7 @@ class Activator {
351
342
  reject(this.failureToError(failure));
352
343
  }
353
344
  }
354
- // Intentionally not made function async so this handler doesn't show up in the stack trace
345
+ // Intentionally non-async function so this handler doesn't show up in the stack trace
355
346
  queryWorkflowNextHandler({ queryName, args }) {
356
347
  const fn = this.queryHandlers.get(queryName);
357
348
  if (fn === undefined) {
@@ -387,6 +378,115 @@ class Activator {
387
378
  headers: headers ?? {},
388
379
  }).then((result) => this.completeQuery(queryId, result), (reason) => this.failQuery(queryId, reason));
389
380
  }
381
+ doUpdate(activation) {
382
+ const { id: updateId, protocolInstanceId, name, headers, runValidator } = activation;
383
+ if (!updateId) {
384
+ throw new TypeError('Missing activation update id');
385
+ }
386
+ if (!name) {
387
+ throw new TypeError('Missing activation update name');
388
+ }
389
+ if (!protocolInstanceId) {
390
+ throw new TypeError('Missing activation update protocolInstanceId');
391
+ }
392
+ if (!this.updateHandlers.has(name)) {
393
+ this.bufferedUpdates.push(activation);
394
+ return;
395
+ }
396
+ const makeInput = () => ({
397
+ updateId,
398
+ args: (0, common_1.arrayFromPayloads)(this.payloadConverter, activation.input),
399
+ name,
400
+ headers: headers ?? {},
401
+ });
402
+ // The implementation below is responsible for upholding, and constrained
403
+ // by, the following contract:
404
+ //
405
+ // 1. If no validator is present then validation interceptors will not be run.
406
+ //
407
+ // 2. During validation, any error must fail the Update; during the Update
408
+ // itself, Temporal errors fail the Update whereas other errors fail the
409
+ // activation.
410
+ //
411
+ // 3. The handler must not see any mutations of the arguments made by the
412
+ // validator.
413
+ //
414
+ // 4. Any error when decoding/deserializing input must be caught and result
415
+ // in rejection of the Update before it is accepted, even if there is no
416
+ // validator.
417
+ //
418
+ // 5. The initial synchronous portion of the (async) Update handler should
419
+ // be executed after the (sync) validator completes such that there is
420
+ // minimal opportunity for a different concurrent task to be scheduled
421
+ // between them.
422
+ //
423
+ // 6. The stack trace view provided in the Temporal UI must not be polluted
424
+ // by promises that do not derive from user code. This implies that
425
+ // async/await syntax may not be used.
426
+ //
427
+ // Note that there is a deliberately unhandled promise rejection below.
428
+ // These are caught elsewhere and fail the corresponding activation.
429
+ let input;
430
+ try {
431
+ if (runValidator && this.updateHandlers.get(name)?.validator) {
432
+ const validate = (0, interceptors_1.composeInterceptors)(this.interceptors.inbound, 'validateUpdate', this.validateUpdateNextHandler.bind(this));
433
+ validate(makeInput());
434
+ }
435
+ input = makeInput();
436
+ }
437
+ catch (error) {
438
+ this.rejectUpdate(protocolInstanceId, error);
439
+ return;
440
+ }
441
+ const execute = (0, interceptors_1.composeInterceptors)(this.interceptors.inbound, 'handleUpdate', this.updateNextHandler.bind(this));
442
+ this.acceptUpdate(protocolInstanceId);
443
+ (0, stack_helpers_1.untrackPromise)(execute(input)
444
+ .then((result) => this.completeUpdate(protocolInstanceId, result))
445
+ .catch((error) => {
446
+ if (error instanceof common_1.TemporalFailure) {
447
+ this.rejectUpdate(protocolInstanceId, error);
448
+ }
449
+ else {
450
+ throw error;
451
+ }
452
+ }));
453
+ }
454
+ async updateNextHandler({ name, args }) {
455
+ const entry = this.updateHandlers.get(name);
456
+ if (!entry) {
457
+ return Promise.reject(new common_1.IllegalStateError(`No registered update handler for update: ${name}`));
458
+ }
459
+ const { handler } = entry;
460
+ return await handler(...args);
461
+ }
462
+ validateUpdateNextHandler({ name, args }) {
463
+ const { validator } = this.updateHandlers.get(name) ?? {};
464
+ if (validator) {
465
+ validator(...args);
466
+ }
467
+ }
468
+ dispatchBufferedUpdates() {
469
+ const bufferedUpdates = this.bufferedUpdates;
470
+ while (bufferedUpdates.length) {
471
+ const foundIndex = bufferedUpdates.findIndex((update) => this.updateHandlers.has(update.name));
472
+ if (foundIndex === -1) {
473
+ // No buffered Updates have a handler yet.
474
+ break;
475
+ }
476
+ const [update] = bufferedUpdates.splice(foundIndex, 1);
477
+ this.doUpdate(update);
478
+ }
479
+ }
480
+ rejectBufferedUpdates() {
481
+ while (this.bufferedUpdates.length) {
482
+ const update = this.bufferedUpdates.shift();
483
+ if (update) {
484
+ this.rejectUpdate(
485
+ /* eslint-disable @typescript-eslint/no-non-null-assertion */
486
+ update.protocolInstanceId, common_1.ApplicationFailure.nonRetryable(`No registered handler for update: ${update.name}`));
487
+ }
488
+ }
489
+ }
390
490
  async signalWorkflowNextHandler({ signalName, args }) {
391
491
  const fn = this.signalHandlers.get(signalName);
392
492
  if (fn) {
@@ -396,7 +496,7 @@ class Activator {
396
496
  return await this.defaultSignalHandler(signalName, ...args);
397
497
  }
398
498
  else {
399
- throw new common_1.IllegalStateError(`No registered signal handler for signal ${signalName}`);
499
+ throw new common_1.IllegalStateError(`No registered signal handler for signal: ${signalName}`);
400
500
  }
401
501
  }
402
502
  signalWorkflow(activation) {
@@ -424,7 +524,7 @@ class Activator {
424
524
  this.signalWorkflow(bufferedSignals.shift());
425
525
  }
426
526
  else {
427
- const foundIndex = bufferedSignals.findIndex((signal) => this.signalHandlers.has(signal.signalName ?? ''));
527
+ const foundIndex = bufferedSignals.findIndex((signal) => this.signalHandlers.has(signal.signalName));
428
528
  if (foundIndex === -1)
429
529
  break;
430
530
  const [signal] = bufferedSignals.splice(foundIndex, 1);
@@ -502,6 +602,22 @@ class Activator {
502
602
  },
503
603
  });
504
604
  }
605
+ acceptUpdate(protocolInstanceId) {
606
+ this.pushCommand({ updateResponse: { protocolInstanceId, accepted: {} } });
607
+ }
608
+ completeUpdate(protocolInstanceId, result) {
609
+ this.pushCommand({
610
+ updateResponse: { protocolInstanceId, completed: this.payloadConverter.toPayload(result) },
611
+ });
612
+ }
613
+ rejectUpdate(protocolInstanceId, error) {
614
+ this.pushCommand({
615
+ updateResponse: {
616
+ protocolInstanceId,
617
+ rejected: this.errorToFailure((0, common_1.ensureTemporalFailure)(error)),
618
+ },
619
+ });
620
+ }
505
621
  /** Consume a completion if it exists in Workflow state */
506
622
  maybeConsumeCompletion(type, taskSeq) {
507
623
  const completion = this.completions[type].get(taskSeq);
@@ -533,18 +649,6 @@ class Activator {
533
649
  }
534
650
  }
535
651
  exports.Activator = Activator;
536
- function maybeGetActivator() {
537
- return (0, global_attributes_1.maybeGetActivatorUntyped)();
538
- }
539
- exports.maybeGetActivator = maybeGetActivator;
540
- function getActivator() {
541
- const activator = maybeGetActivator();
542
- if (activator === undefined) {
543
- throw new common_1.IllegalStateError('Workflow uninitialized');
544
- }
545
- return activator;
546
- }
547
- exports.getActivator = getActivator;
548
652
  function getSeq(activation) {
549
653
  const seq = activation.seq;
550
654
  if (seq === undefined || seq === null) {
@@ -1 +1 @@
1
- {"version":3,"file":"internals.js","sourceRoot":"","sources":["../src/internals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"internals.js","sourceRoot":"","sources":["../src/internals.ts"],"names":[],"mappings":";;;;;;AACA,+CAiB4B;AAC5B,sEAA0E;AAC1E,sEAAmE;AAEnE,iCAAmC;AACnC,6DAA6D;AAC7D,qCAA6F;AAE7F,6CASsB;AAEtB,mDAAiD;AACjD,gDAAwB;AACxB,iCAAqD;AAErD,IAAK,sCAGJ;AAHD,WAAK,sCAAsC;IACzC,yMAA2D,CAAA;IAC3D,iOAAuE,CAAA;AACzE,CAAC,EAHI,sCAAsC,KAAtC,sCAAsC,QAG1C;AAED,IAAA,2BAAY,GAAyG,CAAC;AACtH,IAAA,2BAAY,GAAyG,CAAC;AAoCtH;;;;GAIG;AACH,MAAa,SAAS;IA0MpB,YAAY,EACV,IAAI,EACJ,GAAG,EACH,qBAAqB,EACrB,SAAS,EACT,YAAY,EACZ,cAAc,EACd,OAAO,EACP,uBAAuB,GACO;QAlNhC;;WAEG;QACM,gBAAW,GAAG,IAAI,GAAG,EAAmB,CAAC;QAClD;;WAEG;QACM,gBAAW,GAAG;YACrB,KAAK,EAAE,IAAI,GAAG,EAAsB;YACpC,QAAQ,EAAE,IAAI,GAAG,EAAsB;YACvC,kBAAkB,EAAE,IAAI,GAAG,EAAsB;YACjD,qBAAqB,EAAE,IAAI,GAAG,EAAsB;YACpD,cAAc,EAAE,IAAI,GAAG,EAAsB;YAC7C,cAAc,EAAE,IAAI,GAAG,EAAsB;SAC9C,CAAC;QAEF;;WAEG;QACM,oBAAe,GAAG,KAAK,EAAyC,CAAC;QAE1E;;WAEG;QACM,oBAAe,GAAG,KAAK,EAA+C,CAAC;QAEhF;;;;;;WAMG;QACgB,oBAAe,GAAG,KAAK,EAA8C,CAAC;QAEzF;;WAEG;QACM,mBAAc,GAAG,IAAI,GAAG,EAAoF,CAAC;QAEtH;;WAEG;QACM,mBAAc,GAAG,IAAI,GAAG,EAA8B,CAAC;QAiBvD,sBAAiB,GAAsB;YAC9C,cAAc,EAAE,IAAI,GAAG,EAAE;YACzB,aAAa,EAAE,IAAI,GAAG,EAAE;SACzB,CAAC;QAEc,cAAS,GAAG,IAAI,0CAAqB,EAAE,CAAC;QAExD;;WAEG;QACa,kBAAa,GAAG,IAAI,GAAG,CAA4B;YACjE;gBACE,eAAe;gBACf,GAAG,EAAE;oBACH,OAAO,IAAI,CAAC,cAAc,EAAE;yBACzB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;yBACvB,IAAI,CAAC,MAAM,CAAC,CAAC;gBAClB,CAAC;aACF;YACD;gBACE,wBAAwB;gBACxB,GAAuB,EAAE;oBACvB,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;oBAC3B,MAAM,GAAG,GAAY,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,aAAG,CAAC,OAAO,EAAE,CAAC;oBAClE,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;oBACzF,MAAM,OAAO,GAAgC,EAAE,CAAC;oBAChD,IAAI,IAAI,CAAC,qBAAqB,EAAE;wBAC9B,KAAK,MAAM,EAAE,SAAS,EAAE,IAAI,MAAM,EAAE;4BAClC,KAAK,MAAM,EAAE,QAAQ,EAAE,IAAI,SAAS,EAAE;gCACpC,IAAI,CAAC,QAAQ;oCAAE,SAAS;gCACxB,MAAM,OAAO,GAAG,SAAS,EAAE,cAAc,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;gCAClF,IAAI,CAAC,OAAO;oCAAE,SAAS;gCACvB,OAAO,CAAC,QAAQ,CAAC,GAAG;oCAClB;wCACE,OAAO;wCACP,UAAU,EAAE,CAAC;qCACd;iCACF,CAAC;6BACH;yBACF;qBACF;oBACD,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;gBAClC,CAAC;aACF;SACF,CAAC,CAAC;QAEH;;WAEG;QACa,iBAAY,GAAmC,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;QAE5G;;WAEG;QACO,aAAQ,GAAiD,EAAE,CAAC;QAEtE;;WAEG;QACa,sBAAiB,GAAG,IAAI,GAAG,EAAqB,CAAC;QAEjE;;;;;;WAMG;QACI,cAAS,GAAG,KAAK,CAAC;QAEzB;;WAEG;QACO,cAAS,GAAG,KAAK,CAAC;QAE5B;;;;WAIG;QACO,8BAAyB,GAAG,KAAK,CAAC;QAE5C;;WAEG;QACI,aAAQ,GAAG;YAChB,KAAK,EAAE,CAAC;YACR,QAAQ,EAAE,CAAC;YACX,aAAa,EAAE,CAAC;YAChB,cAAc,EAAE,CAAC;YACjB,cAAc,EAAE,CAAC;YACjB,SAAS,EAAE,CAAC;YACZ,uDAAuD;YACvD,KAAK,EAAE,CAAC;SACT,CAAC;QAsBK,qBAAgB,GAAqB,gCAAuB,CAAC;QAC7D,qBAAgB,GAAqB,gCAAuB,CAAC;QAEpE;;WAEG;QACa,wBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;QAExD;;WAEG;QACa,gBAAW,GAAG,IAAI,GAAG,EAAU,CAAC;QAEhD;;WAEG;QACH,cAAS,GAAG,KAAK,EAAY,CAAC;QAmB5B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QACnD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,IAAA,WAAI,EAAC,cAAc,CAAC,CAAC;QACnC,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;QAEvD,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;YAC3B,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE;gBAC7B,IAAI,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;aAClC;SACF;IACH,CAAC;IAED,kBAAkB,CAAC,EAAwC;QACzD,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAES,cAAc;QACtB,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACjE,MAAM,aAAa,GAAG,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YACrE,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE;gBACpB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aACZ;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QACd,MAAM,MAAM,GAAG,IAAI,GAAG,EAAiB,CAAC;QACxC,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,IAAI,EAAE,EAAE;YACxC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBAC7B,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACxC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS;oBAAE,SAAS;gBACzC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;aACpC;SACF;QACD,0DAA0D;QAC1D,MAAM,CAAC,MAAM,CAAC,mCAAmC,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,qCAAqC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;IAED,oBAAoB;QAClB,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,GAA+C,EAAE,QAAQ,GAAG,KAAK;QAC3E,oDAAoD;QACpD,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,cAAc;YAAE,OAAO;QAClD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;IACH,CAAC;IAED,mBAAmB;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,KAAK,CAAC,wBAAwB,CAAC,EAAE,IAAI,EAAwB;QAClE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC1B,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC1B,MAAM,IAAI,0BAAiB,CAAC,wBAAwB,CAAC,CAAC;SACvD;QACD,IAAI,OAAqB,CAAC;QAC1B,IAAI;YACF,OAAO,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;SAC7B;gBAAS;YACR,8FAA8F;YAC9F,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;YACtC,mBAAmB;YACnB,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC9C,KAAK,MAAM,UAAU,IAAI,MAAM,EAAE;gBAC/B,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;aAChC;SACF;QACD,OAAO,MAAM,OAAO,CAAC;IACvB,CAAC;IAEM,aAAa,CAAC,UAAsD;QACzE,MAAM,OAAO,GAAG,IAAA,kCAAmB,EAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEpH,IAAA,8BAAc,EACZ,IAAA,kCAA2B,EAAC,GAAG,EAAE,CAC/B,OAAO,CAAC;YACN,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,EAAE;YACjC,IAAI,EAAE,IAAA,0BAAiB,EAAC,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,SAAS,CAAC;SACrE,CAAC,CACH,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAChF,CAAC;IACJ,CAAC;IAEM,cAAc,CAAC,WAAwD;QAC5E,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IAC1B,CAAC;IAEM,SAAS,CAAC,UAAkD;QACjE,mFAAmF;QACnF,6EAA6E;QAC7E,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QAC5E,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;IAEM,eAAe,CAAC,UAAwD;QAC7E,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACtB,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;SACtE;QACD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QACnF,IAAI,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE;YAC/B,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC;YAC9C,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAClG,OAAO,CAAC,MAAM,CAAC,CAAC;SACjB;aAAM,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE;YACnC,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;YAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/D,MAAM,CAAC,GAAG,CAAC,CAAC;SACb;aAAM,IAAI,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE;YACtC,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC;YAChD,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/D,MAAM,CAAC,GAAG,CAAC,CAAC;SACb;aAAM,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE;YACpC,MAAM,CAAC,IAAI,+BAAsB,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;SAC/D;IACH,CAAC;IAEM,kCAAkC,CACvC,UAA2E;QAE3E,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QAC7F,IAAI,UAAU,CAAC,SAAS,EAAE;YACxB,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SACrC;aAAM,IAAI,UAAU,CAAC,MAAM,EAAE;YAC5B,IACE,UAAU,CAAC,MAAM,CAAC,KAAK;gBACvB,sCAAsC,CAAC,mEAAmE,EAC1G;gBACA,MAAM,IAAI,0BAAiB,CAAC,oDAAoD,CAAC,CAAC;aACnF;YACD,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;gBACvF,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;aAC7D;YACD,MAAM,CACJ,IAAI,6CAAoC,CACtC,oCAAoC,EACpC,UAAU,CAAC,MAAM,CAAC,UAAU,EAC5B,UAAU,CAAC,MAAM,CAAC,YAAY,CAC/B,CACF,CAAC;SACH;aAAM,IAAI,UAAU,CAAC,SAAS,EAAE;YAC/B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE;gBACjC,MAAM,IAAI,SAAS,CAAC,qCAAqC,CAAC,CAAC;aAC5D;YACD,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;SAC3D;aAAM;YACL,MAAM,IAAI,SAAS,CAAC,uDAAuD,CAAC,CAAC;SAC9E;IACH,CAAC;IAEM,6BAA6B,CAAC,UAAsE;QACzG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACtB,MAAM,IAAI,SAAS,CAAC,6DAA6D,CAAC,CAAC;SACpF;QACD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QAChG,IAAI,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE;YAC/B,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC;YAC9C,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAClG,OAAO,CAAC,MAAM,CAAC,CAAC;SACjB;aAAM,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE;YACnC,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;YAC7C,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,EAAE;gBAC7C,MAAM,IAAI,SAAS,CAAC,6CAA6C,CAAC,CAAC;aACpE;YACD,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;SACtC;aAAM,IAAI,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE;YACtC,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC;YAChD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,EAAE;gBAC7C,MAAM,IAAI,SAAS,CAAC,gDAAgD,CAAC,CAAC;aACvE;YACD,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;SACtC;IACH,CAAC;IAED,sFAAsF;IAC5E,wBAAwB,CAAC,EAAE,SAAS,EAAE,IAAI,EAAc;QAChE,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,EAAE,KAAK,SAAS,EAAE;YACpB,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjE,iBAAiB;YACjB,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,cAAc,CAChB,2CAA2C,SAAS,0BAA0B,eAAe,GAAG,CACjG,CACF,CAAC;SACH;QACD,IAAI;YACF,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;YACxB,IAAI,GAAG,YAAY,OAAO,EAAE;gBAC1B,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,kCAAyB,CAAC,4CAA4C,CAAC,CAAC,CAAC;aACpG;YACD,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC7B;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IAEM,aAAa,CAAC,UAAsD;QACzE,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE;YACnC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACtC,OAAO;SACR;QAED,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;QACnD,IAAI,CAAC,CAAC,SAAS,IAAI,OAAO,CAAC,EAAE;YAC3B,MAAM,IAAI,SAAS,CAAC,qCAAqC,CAAC,CAAC;SAC5D;QAED,MAAM,OAAO,GAAG,IAAA,kCAAmB,EACjC,IAAI,CAAC,YAAY,CAAC,OAAO,EACzB,aAAa,EACb,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CACzC,CAAC;QACF,OAAO,CAAC;YACN,SAAS,EAAE,SAAS;YACpB,IAAI,EAAE,IAAA,0BAAiB,EAAC,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,SAAS,CAAC;YACpE,OAAO;YACP,OAAO,EAAE,OAAO,IAAI,EAAE;SACvB,CAAC,CAAC,IAAI,CACL,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,EAC/C,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAC5C,CAAC;IACJ,CAAC;IAEM,QAAQ,CAAC,UAAiD;QAC/D,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC;QACrF,IAAI,CAAC,QAAQ,EAAE;YACb,MAAM,IAAI,SAAS,CAAC,8BAA8B,CAAC,CAAC;SACrD;QACD,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;SACvD;QACD,IAAI,CAAC,kBAAkB,EAAE;YACvB,MAAM,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAC;SACrE;QACD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAClC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACtC,OAAO;SACR;QAED,MAAM,SAAS,GAAG,GAAgB,EAAE,CAAC,CAAC;YACpC,QAAQ;YACR,IAAI,EAAE,IAAA,0BAAiB,EAAC,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,KAAK,CAAC;YAChE,IAAI;YACJ,OAAO,EAAE,OAAO,IAAI,EAAE;SACvB,CAAC,CAAC;QAEH,yEAAyE;QACzE,8BAA8B;QAC9B,EAAE;QACF,8EAA8E;QAC9E,EAAE;QACF,0EAA0E;QAC1E,2EAA2E;QAC3E,iBAAiB;QACjB,EAAE;QACF,yEAAyE;QACzE,gBAAgB;QAChB,EAAE;QACF,2EAA2E;QAC3E,2EAA2E;QAC3E,gBAAgB;QAChB,EAAE;QACF,0EAA0E;QAC1E,yEAAyE;QACzE,yEAAyE;QACzE,mBAAmB;QACnB,EAAE;QACF,2EAA2E;QAC3E,sEAAsE;QACtE,yCAAyC;QACzC,EAAE;QACF,uEAAuE;QACvE,oEAAoE;QACpE,IAAI,KAAkB,CAAC;QACvB,IAAI;YACF,IAAI,YAAY,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE;gBAC5D,MAAM,QAAQ,GAAG,IAAA,kCAAmB,EAClC,IAAI,CAAC,YAAY,CAAC,OAAO,EACzB,gBAAgB,EAChB,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAC1C,CAAC;gBACF,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;aACvB;YACD,KAAK,GAAG,SAAS,EAAE,CAAC;SACrB;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;YAC7C,OAAO;SACR;QACD,MAAM,OAAO,GAAG,IAAA,kCAAmB,EAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAClH,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;QACtC,IAAA,8BAAc,EACZ,OAAO,CAAC,KAAK,CAAC;aACX,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;aACjE,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACf,IAAI,KAAK,YAAY,wBAAe,EAAE;gBACpC,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;aAC9C;iBAAM;gBACL,MAAM,KAAK,CAAC;aACb;QACH,CAAC,CAAC,CACL,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAe;QAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,0BAAiB,CAAC,4CAA4C,IAAI,EAAE,CAAC,CAAC,CAAC;SAClG;QACD,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QAC1B,OAAO,MAAM,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IAChC,CAAC;IAES,yBAAyB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAe;QAC7D,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC1D,IAAI,SAAS,EAAE;YACb,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;SACpB;IACH,CAAC;IAEM,uBAAuB;QAC5B,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC7C,OAAO,eAAe,CAAC,MAAM,EAAE;YAC7B,MAAM,UAAU,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAc,CAAC,CAAC,CAAC;YACzG,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE;gBACrB,0CAA0C;gBAC1C,MAAM;aACP;YACD,MAAM,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YACvD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SACvB;IACH,CAAC;IAEM,qBAAqB;QAC1B,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;YAClC,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAC5C,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,YAAY;gBACf,6DAA6D;gBAC7D,MAAM,CAAC,kBAAmB,EAC1B,2BAAkB,CAAC,YAAY,CAAC,qCAAqC,MAAM,CAAC,IAAI,EAAE,CAAC,CACpF,CAAC;aACH;SACF;IACH,CAAC;IAEM,KAAK,CAAC,yBAAyB,CAAC,EAAE,UAAU,EAAE,IAAI,EAAe;QACtE,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,EAAE,EAAE;YACN,OAAO,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;SAC1B;aAAM,IAAI,IAAI,CAAC,oBAAoB,EAAE;YACpC,OAAO,MAAM,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,CAAC;SAC7D;aAAM;YACL,MAAM,IAAI,0BAAiB,CAAC,4CAA4C,UAAU,EAAE,CAAC,CAAC;SACvF;IACH,CAAC;IAEM,cAAc,CAAC,UAAuD;QAC3E,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;QAC3C,IAAI,CAAC,UAAU,EAAE;YACf,MAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC,CAAC;SACtD;QAED,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;YACtE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACtC,OAAO;SACR;QAED,MAAM,OAAO,GAAG,IAAA,kCAAmB,EACjC,IAAI,CAAC,YAAY,CAAC,OAAO,EACzB,cAAc,EACd,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAC1C,CAAC;QACF,OAAO,CAAC;YACN,IAAI,EAAE,IAAA,0BAAiB,EAAC,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,KAAK,CAAC;YAChE,UAAU;YACV,OAAO,EAAE,OAAO,IAAI,EAAE;SACvB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAClD,CAAC;IAEM,uBAAuB;QAC5B,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC7C,OAAO,eAAe,CAAC,MAAM,EAAE;YAC7B,IAAI,IAAI,CAAC,oBAAoB,EAAE;gBAC7B,oEAAoE;gBACpE,oEAAoE;gBACpE,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,KAAK,EAAG,CAAC,CAAC;aAC/C;iBAAM;gBACL,MAAM,UAAU,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,UAAoB,CAAC,CAAC,CAAC;gBAC/G,IAAI,UAAU,KAAK,CAAC,CAAC;oBAAE,MAAM;gBAC7B,MAAM,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;gBACvD,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;aAC7B;SACF;IACH,CAAC;IAEM,6BAA6B,CAAC,UAAsE;QACzG,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QACzF,IAAI,UAAU,CAAC,OAAO,EAAE;YACtB,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;SACjD;aAAM;YACL,OAAO,CAAC,SAAS,CAAC,CAAC;SACpB;IACH,CAAC;IAEM,oCAAoC,CACzC,UAA6E;QAE7E,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QACzF,IAAI,UAAU,CAAC,OAAO,EAAE;YACtB,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;SACjD;aAAM;YACL,OAAO,CAAC,SAAS,CAAC,CAAC;SACpB;IACH,CAAC;IAEM,gBAAgB,CAAC,UAAyD;QAC/E,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;YAC9B,MAAM,IAAI,SAAS,CAAC,mDAAmD,CAAC,CAAC;SAC1E;QACD,IAAI,CAAC,MAAM,GAAG,IAAA,WAAI,EAAC,UAAU,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1D,CAAC;IAEM,cAAc,CAAC,UAAuD;QAC3E,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;YACvB,MAAM,IAAI,SAAS,CAAC,qCAAqC,CAAC,CAAC;SAC5D;QACD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;IAEM,eAAe;QACpB,MAAM,IAAI,0BAAiB,CAAC,0DAA0D,CAAC,CAAC;IAC1F,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,qBAAqB,CAAC,KAAc;QACxC,IAAI,IAAI,CAAC,SAAS,IAAI,IAAA,uBAAc,EAAC,KAAK,CAAC,EAAE;YAC3C,IAAI,CAAC,WAAW,CAAC,EAAE,uBAAuB,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;SACzD;aAAM,IAAI,KAAK,YAAY,0BAAa,EAAE;YACzC,IAAI,CAAC,WAAW,CAAC,EAAE,8BAA8B,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;SAC3E;aAAM;YACL,IAAI,CAAC,CAAC,KAAK,YAAY,wBAAe,CAAC,EAAE;gBACvC,wEAAwE;gBACxE,iCAAiC;gBACjC,MAAM,KAAK,CAAC;aACb;YAED,IAAI,CAAC,WAAW,CACd;gBACE,qBAAqB,EAAE;oBACrB,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;iBACpC;aACF,EACD,IAAI,CACL,CAAC;SACH;IACH,CAAC;IAEO,aAAa,CAAC,OAAe,EAAE,MAAe;QACpD,IAAI,CAAC,WAAW,CAAC;YACf,cAAc,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE;SAC9F,CAAC,CAAC;IACL,CAAC;IAEO,SAAS,CAAC,OAAe,EAAE,KAAc;QAC/C,IAAI,CAAC,WAAW,CAAC;YACf,cAAc,EAAE;gBACd,OAAO;gBACP,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,IAAA,8BAAqB,EAAC,KAAK,CAAC,CAAC;aAC1D;SACF,CAAC,CAAC;IACL,CAAC;IAEO,YAAY,CAAC,kBAA0B;QAC7C,IAAI,CAAC,WAAW,CAAC,EAAE,cAAc,EAAE,EAAE,kBAAkB,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7E,CAAC;IAEO,cAAc,CAAC,kBAA0B,EAAE,MAAe;QAChE,IAAI,CAAC,WAAW,CAAC;YACf,cAAc,EAAE,EAAE,kBAAkB,EAAE,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;SAC3F,CAAC,CAAC;IACL,CAAC;IAEO,YAAY,CAAC,kBAA0B,EAAE,KAAc;QAC7D,IAAI,CAAC,WAAW,CAAC;YACf,cAAc,EAAE;gBACd,kBAAkB;gBAClB,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,IAAA,8BAAqB,EAAC,KAAK,CAAC,CAAC;aAC5D;SACF,CAAC,CAAC;IACL,CAAC;IAED,0DAA0D;IAClD,sBAAsB,CAAC,IAAoC,EAAE,OAAe;QAClF,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,UAAU,KAAK,SAAS,EAAE;YAC5B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;SACxC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,gFAAgF;IACxE,iBAAiB,CAAC,IAAoC,EAAE,OAAe;QAC7E,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9D,IAAI,UAAU,KAAK,SAAS,EAAE;YAC5B,MAAM,IAAI,0BAAiB,CAAC,6BAA6B,OAAO,EAAE,CAAC,CAAC;SACrE;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,gBAAgB,CAAC,MAAe;QACtC,IAAI,CAAC,WAAW,CACd;YACE,yBAAyB,EAAE;gBACzB,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC;aAChD;SACF,EACD,IAAI,CACL,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,GAAY;QACzB,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC1E,CAAC;IAED,cAAc,CAAC,OAAqB;QAClC,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC9E,CAAC;CACF;AAxvBD,8BAwvBC;AAED,SAAS,MAAM,CAAoC,UAAa;IAC9D,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;IAC3B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;QACrC,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;KAC7D;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
package/lib/logs.d.ts ADDED
@@ -0,0 +1,50 @@
1
+ import { type Sink, type Sinks } from './sinks';
2
+ import { WorkflowInfo } from './interfaces';
3
+ export interface WorkflowLogger extends Sink {
4
+ trace(message: string, attrs?: Record<string, unknown>): void;
5
+ debug(message: string, attrs?: Record<string, unknown>): void;
6
+ info(message: string, attrs?: Record<string, unknown>): void;
7
+ warn(message: string, attrs?: Record<string, unknown>): void;
8
+ error(message: string, attrs?: Record<string, unknown>): void;
9
+ }
10
+ /**
11
+ * Sink interface for forwarding logs from the Workflow sandbox to the Worker
12
+ *
13
+ * @deprecated Do not use LoggerSinks directly. To log from Workflow code, use the `log` object
14
+ * exported by the `@temporalio/workflow` package. To capture log messages emitted
15
+ * by Workflow code, set the {@link Runtime.logger} property.
16
+ */
17
+ export interface LoggerSinksDeprecated extends Sinks {
18
+ /**
19
+ * @deprecated Do not use LoggerSinks directly. To log from Workflow code, use the `log` object
20
+ * exported by the `@temporalio/workflow` package. To capture log messages emitted
21
+ * by Workflow code, set the {@link Runtime.logger} property.
22
+ */
23
+ defaultWorkerLogger: WorkflowLogger;
24
+ }
25
+ /**
26
+ * Sink interface for forwarding logs from the Workflow sandbox to the Worker
27
+ */
28
+ export interface LoggerSinksInternal extends Sinks {
29
+ __temporal_logger: WorkflowLogger;
30
+ }
31
+ /**
32
+ * Default workflow logger.
33
+ *
34
+ * This logger is replay-aware and will omit log messages on workflow replay. Messages emitted by this logger are
35
+ * funnelled through a sink that forwards them to the logger registered on {@link Runtime.logger}.
36
+ *
37
+ * Notice that since sinks are used to power this logger, any log attributes must be transferable via the
38
+ * {@link https://nodejs.org/api/worker_threads.html#worker_threads_port_postmessage_value_transferlist | postMessage}
39
+ * API.
40
+ *
41
+ * NOTE: Specifying a custom logger through {@link defaultSink} or by manually registering a sink named
42
+ * `defaultWorkerLogger` has been deprecated. Please use {@link Runtime.logger} instead.
43
+ */
44
+ export declare const log: WorkflowLogger;
45
+ export declare function executeWithLifecycleLogging(fn: () => Promise<unknown>): Promise<unknown>;
46
+ /**
47
+ * Returns a map of attributes to be set _by default_ on log messages for a given Workflow.
48
+ * Note that this function may be called from outside of the Workflow context (eg. by the worker itself).
49
+ */
50
+ export declare function workflowLogAttributes(info: WorkflowInfo): Record<string, unknown>;
package/lib/logs.js ADDED
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.workflowLogAttributes = exports.executeWithLifecycleLogging = exports.log = void 0;
4
+ const interceptors_1 = require("@temporalio/common/lib/interceptors");
5
+ const stack_helpers_1 = require("./stack-helpers");
6
+ const sinks_1 = require("./sinks");
7
+ const errors_1 = require("./errors");
8
+ const interfaces_1 = require("./interfaces");
9
+ const global_attributes_1 = require("./global-attributes");
10
+ const loggerSink = (0, sinks_1.proxySinks)().__temporal_logger;
11
+ /**
12
+ * Symbol used by the SDK logger to extract a timestamp from log attributes.
13
+ * Also defined in `worker/logger.ts` - intentionally not shared.
14
+ */
15
+ const LogTimestamp = Symbol.for('log_timestamp');
16
+ /**
17
+ * Default workflow logger.
18
+ *
19
+ * This logger is replay-aware and will omit log messages on workflow replay. Messages emitted by this logger are
20
+ * funnelled through a sink that forwards them to the logger registered on {@link Runtime.logger}.
21
+ *
22
+ * Notice that since sinks are used to power this logger, any log attributes must be transferable via the
23
+ * {@link https://nodejs.org/api/worker_threads.html#worker_threads_port_postmessage_value_transferlist | postMessage}
24
+ * API.
25
+ *
26
+ * NOTE: Specifying a custom logger through {@link defaultSink} or by manually registering a sink named
27
+ * `defaultWorkerLogger` has been deprecated. Please use {@link Runtime.logger} instead.
28
+ */
29
+ exports.log = Object.fromEntries(['trace', 'debug', 'info', 'warn', 'error'].map((level) => {
30
+ return [
31
+ level,
32
+ (message, attrs) => {
33
+ const activator = (0, global_attributes_1.assertInWorkflowContext)('Workflow.log(...) may only be used from workflow context.');
34
+ const getLogAttributes = (0, interceptors_1.composeInterceptors)(activator.interceptors.outbound, 'getLogAttributes', (a) => a);
35
+ return loggerSink[level](message, {
36
+ // Inject the call time in nanosecond resolution as expected by the worker logger.
37
+ [LogTimestamp]: activator.getTimeOfDay(),
38
+ ...getLogAttributes(workflowLogAttributes(activator.info)),
39
+ ...attrs,
40
+ });
41
+ },
42
+ ];
43
+ }));
44
+ function executeWithLifecycleLogging(fn) {
45
+ exports.log.debug('Workflow started');
46
+ const p = fn().then((res) => {
47
+ exports.log.debug('Workflow completed');
48
+ return res;
49
+ }, (error) => {
50
+ // Avoid using instanceof checks in case the modules they're defined in loaded more than once,
51
+ // e.g. by jest or when multiple versions are installed.
52
+ if (typeof error === 'object' && error != null) {
53
+ if ((0, errors_1.isCancellation)(error)) {
54
+ exports.log.debug('Workflow completed as cancelled');
55
+ throw error;
56
+ }
57
+ else if (error instanceof interfaces_1.ContinueAsNew) {
58
+ exports.log.debug('Workflow continued as new');
59
+ throw error;
60
+ }
61
+ }
62
+ exports.log.warn('Workflow failed', { error });
63
+ throw error;
64
+ });
65
+ // Avoid showing this interceptor in stack trace query
66
+ (0, stack_helpers_1.untrackPromise)(p);
67
+ return p;
68
+ }
69
+ exports.executeWithLifecycleLogging = executeWithLifecycleLogging;
70
+ /**
71
+ * Returns a map of attributes to be set _by default_ on log messages for a given Workflow.
72
+ * Note that this function may be called from outside of the Workflow context (eg. by the worker itself).
73
+ */
74
+ function workflowLogAttributes(info) {
75
+ return {
76
+ namespace: info.namespace,
77
+ taskQueue: info.taskQueue,
78
+ workflowId: info.workflowId,
79
+ runId: info.runId,
80
+ workflowType: info.workflowType,
81
+ };
82
+ }
83
+ exports.workflowLogAttributes = workflowLogAttributes;
84
+ //# sourceMappingURL=logs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.js","sourceRoot":"","sources":["../src/logs.ts"],"names":[],"mappings":";;;AAAA,sEAA0E;AAC1E,mDAAiD;AACjD,mCAA4D;AAC5D,qCAA0C;AAC1C,6CAA2D;AAC3D,2DAA8D;AAiC9D,MAAM,UAAU,GAAG,IAAA,kBAAU,GAAuB,CAAC,iBAAiB,CAAC;AAEvE;;;GAGG;AACH,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAEjD;;;;;;;;;;;;GAYG;AACU,QAAA,GAAG,GAAmB,MAAM,CAAC,WAAW,CAClD,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAiC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;IACzF,OAAO;QACL,KAAK;QACL,CAAC,OAAe,EAAE,KAA+B,EAAE,EAAE;YACnD,MAAM,SAAS,GAAG,IAAA,2CAAuB,EAAC,2DAA2D,CAAC,CAAC;YACvG,MAAM,gBAAgB,GAAG,IAAA,kCAAmB,EAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5G,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE;gBAChC,kFAAkF;gBAClF,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC,YAAY,EAAE;gBACxC,GAAG,gBAAgB,CAAC,qBAAqB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC1D,GAAG,KAAK;aACT,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC,CAAC,CACI,CAAC;AAET,SAAgB,2BAA2B,CAAC,EAA0B;IACpE,WAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC9B,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CACjB,CAAC,GAAG,EAAE,EAAE;QACN,WAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAChC,OAAO,GAAG,CAAC;IACb,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;QACR,8FAA8F;QAC9F,wDAAwD;QACxD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,IAAI,EAAE;YAC9C,IAAI,IAAA,uBAAc,EAAC,KAAK,CAAC,EAAE;gBACzB,WAAG,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;gBAC7C,MAAM,KAAK,CAAC;aACb;iBAAM,IAAI,KAAK,YAAY,0BAAa,EAAE;gBACzC,WAAG,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;gBACvC,MAAM,KAAK,CAAC;aACb;SACF;QACD,WAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACvC,MAAM,KAAK,CAAC;IACd,CAAC,CACF,CAAC;IACF,sDAAsD;IACtD,IAAA,8BAAc,EAAC,CAAC,CAAC,CAAC;IAClB,OAAO,CAAC,CAAC;AACX,CAAC;AA1BD,kEA0BC;AAED;;;GAGG;AACH,SAAgB,qBAAqB,CAAC,IAAkB;IACtD,OAAO;QACL,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,YAAY,EAAE,IAAI,CAAC,YAAY;KAChC,CAAC;AACJ,CAAC;AARD,sDAQC"}
package/lib/sinks.d.ts CHANGED
@@ -39,14 +39,33 @@ export interface SinkCall {
39
39
  workflowInfo: WorkflowInfo;
40
40
  }
41
41
  /**
42
- * Sink interface for forwarding logs from the Workflow sandbox to the Worker
42
+ * Get a reference to Sinks for exporting data out of the Workflow.
43
+ *
44
+ * These Sinks **must** be registered with the Worker in order for this
45
+ * mechanism to work.
46
+ *
47
+ * @example
48
+ * ```ts
49
+ * import { proxySinks, Sinks } from '@temporalio/workflow';
50
+ *
51
+ * interface MySinks extends Sinks {
52
+ * logger: {
53
+ * info(message: string): void;
54
+ * error(message: string): void;
55
+ * };
56
+ * }
57
+ *
58
+ * const { logger } = proxySinks<MyDependencies>();
59
+ * logger.info('setting up');
60
+ *
61
+ * export function myWorkflow() {
62
+ * return {
63
+ * async execute() {
64
+ * logger.info("hey ho");
65
+ * logger.error("lets go");
66
+ * }
67
+ * };
68
+ * }
69
+ * ```
43
70
  */
44
- export interface LoggerSinks extends Sinks {
45
- defaultWorkerLogger: {
46
- trace(message: string, attrs?: Record<string, unknown>): void;
47
- debug(message: string, attrs?: Record<string, unknown>): void;
48
- info(message: string, attrs?: Record<string, unknown>): void;
49
- warn(message: string, attrs?: Record<string, unknown>): void;
50
- error(message: string, attrs?: Record<string, unknown>): void;
51
- };
52
- }
71
+ export declare function proxySinks<T extends Sinks>(): T;
package/lib/sinks.js CHANGED
@@ -15,4 +15,61 @@
15
15
  * @module
16
16
  */
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.proxySinks = void 0;
19
+ const global_attributes_1 = require("./global-attributes");
20
+ /**
21
+ * Get a reference to Sinks for exporting data out of the Workflow.
22
+ *
23
+ * These Sinks **must** be registered with the Worker in order for this
24
+ * mechanism to work.
25
+ *
26
+ * @example
27
+ * ```ts
28
+ * import { proxySinks, Sinks } from '@temporalio/workflow';
29
+ *
30
+ * interface MySinks extends Sinks {
31
+ * logger: {
32
+ * info(message: string): void;
33
+ * error(message: string): void;
34
+ * };
35
+ * }
36
+ *
37
+ * const { logger } = proxySinks<MyDependencies>();
38
+ * logger.info('setting up');
39
+ *
40
+ * export function myWorkflow() {
41
+ * return {
42
+ * async execute() {
43
+ * logger.info("hey ho");
44
+ * logger.error("lets go");
45
+ * }
46
+ * };
47
+ * }
48
+ * ```
49
+ */
50
+ function proxySinks() {
51
+ return new Proxy({}, {
52
+ get(_, ifaceName) {
53
+ return new Proxy({}, {
54
+ get(_, fnName) {
55
+ return (...args) => {
56
+ const activator = (0, global_attributes_1.assertInWorkflowContext)('Proxied sinks functions may only be used from a Workflow Execution.');
57
+ activator.sinkCalls.push({
58
+ ifaceName: ifaceName,
59
+ fnName: fnName,
60
+ // Sink function doesn't get called immediately. Make a clone of the sink's args, so that further mutations
61
+ // to these objects don't corrupt the args that the sink function will receive. Only available from node 17.
62
+ args: globalThis.structuredClone ? globalThis.structuredClone(args) : args,
63
+ // activator.info is internally copy-on-write. This ensure that any further mutations
64
+ // to the workflow state in the context of the present activation will not corrupt the
65
+ // workflowInfo state that gets passed when the sink function actually gets called.
66
+ workflowInfo: activator.info,
67
+ });
68
+ };
69
+ },
70
+ });
71
+ },
72
+ });
73
+ }
74
+ exports.proxySinks = proxySinks;
18
75
  //# sourceMappingURL=sinks.js.map
package/lib/sinks.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sinks.js","sourceRoot":"","sources":["../src/sinks.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG"}
1
+ {"version":3,"file":"sinks.js","sourceRoot":"","sources":["../src/sinks.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAGH,2DAA8D;AA6B9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,SAAgB,UAAU;IACxB,OAAO,IAAI,KAAK,CACd,EAAE,EACF;QACE,GAAG,CAAC,CAAC,EAAE,SAAS;YACd,OAAO,IAAI,KAAK,CACd,EAAE,EACF;gBACE,GAAG,CAAC,CAAC,EAAE,MAAM;oBACX,OAAO,CAAC,GAAG,IAAW,EAAE,EAAE;wBACxB,MAAM,SAAS,GAAG,IAAA,2CAAuB,EACvC,qEAAqE,CACtE,CAAC;wBACF,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC;4BACvB,SAAS,EAAE,SAAmB;4BAC9B,MAAM,EAAE,MAAgB;4BACxB,2GAA2G;4BAC3G,4GAA4G;4BAC5G,IAAI,EAAG,UAAkB,CAAC,eAAe,CAAC,CAAC,CAAE,UAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;4BAC5F,qFAAqF;4BACrF,sFAAsF;4BACtF,mFAAmF;4BACnF,YAAY,EAAE,SAAS,CAAC,IAAI;yBAC7B,CAAC,CAAC;oBACL,CAAC,CAAC;gBACJ,CAAC;aACF,CACF,CAAC;QACJ,CAAC;KACF,CACK,CAAC;AACX,CAAC;AA/BD,gCA+BC"}
@@ -1,6 +1,6 @@
1
- import type { coresdk } from '@temporalio/proto';
1
+ import { coresdk } from '@temporalio/proto';
2
2
  import { WorkflowCreateOptionsInternal } from './interfaces';
3
- import { SinkCall } from './sinks';
3
+ import { type SinkCall } from './sinks';
4
4
  export { PromiseStackStore } from './internals';
5
5
  export declare function overrideGlobals(): void;
6
6
  /**