@temporalio/common 1.0.1 → 1.3.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/failure.d.ts CHANGED
@@ -23,14 +23,9 @@ export declare type WorkflowExecution = temporal.api.common.v1.IWorkflowExecutio
23
23
  /**
24
24
  * Represents failures that can cross Workflow and Activity boundaries.
25
25
  *
26
- * Only exceptions that extend this class will be propagated to the caller.
26
+ * **Never extend this class or any of its children.**
27
27
  *
28
- * **Never extend this class or any of its derivatives.** They are to be used by the SDK code
29
- * only. Throw an instance {@link ApplicationFailure} to pass application specific errors between
30
- * Workflows and Activities.
31
- *
32
- * Any unhandled exception thrown by an Activity or Workflow will be converted to an instance of
33
- * {@link ApplicationFailure}.
28
+ * The only child class you should ever throw from your code is {@link ApplicationFailure}.
34
29
  */
35
30
  export declare class TemporalFailure extends Error {
36
31
  readonly cause?: Error | undefined;
@@ -41,7 +36,7 @@ export declare class TemporalFailure extends Error {
41
36
  * Only present if this error was generated from an external operation.
42
37
  */
43
38
  failure?: ProtoFailure;
44
- constructor(message: string | undefined, cause?: Error | undefined);
39
+ constructor(message?: string | undefined | null, cause?: Error | undefined);
45
40
  }
46
41
  /** Exceptions originated at the Temporal service. */
47
42
  export declare class ServerFailure extends TemporalFailure {
@@ -59,26 +54,40 @@ export declare class ServerFailure extends TemporalFailure {
59
54
  * `ApplicationFailure`, the Workflow Execution will fail.
60
55
  *
61
56
  * In Activities, you can either throw an `ApplicationFailure` or another `Error` to fail the Activity Task. In the
62
- * latter case, the `Error` will be converted to an `ApplicationFailure`. If the
63
- * {@link https://docs.temporal.io/concepts/what-is-an-activity-execution | Activity Execution} fails, the
64
- * `ApplicationFailure` from the last Activity Task will be the `cause` of the {@link ActivityFailure} thrown in the
65
- * Workflow.
66
- *
67
- * The conversion of an error that doesn't extend {@link TemporalFailure} to an `ApplicationFailure` is done as
68
- * following:
57
+ * latter case, the `Error` will be converted to an `ApplicationFailure`. The conversion is done as following:
69
58
  *
70
59
  * - `type` is set to `error.constructor?.name ?? error.name`
71
60
  * - `message` is set to `error.message`
72
61
  * - `nonRetryable` is set to false
73
62
  * - `details` are set to null
74
63
  * - stack trace is copied from the original error
64
+ *
65
+ * When an {@link https://docs.temporal.io/concepts/what-is-an-activity-execution | Activity Execution} fails, the
66
+ * `ApplicationFailure` from the last Activity Task will be the `cause` of the {@link ActivityFailure} thrown in the
67
+ * Workflow.
75
68
  */
76
69
  export declare class ApplicationFailure extends TemporalFailure {
77
- readonly type: string | undefined | null;
78
- readonly nonRetryable: boolean;
79
- readonly details?: unknown[] | undefined;
70
+ readonly type?: string | null | undefined;
71
+ readonly nonRetryable?: boolean | null | undefined;
72
+ readonly details?: unknown[] | null | undefined;
80
73
  readonly name: string;
81
- constructor(message: string | undefined, type: string | undefined | null, nonRetryable: boolean, details?: unknown[] | undefined, cause?: Error);
74
+ /**
75
+ * Alternatively, use {@link fromError} or {@link create}.
76
+ */
77
+ constructor(message?: string | undefined | null, type?: string | null | undefined, nonRetryable?: boolean | null | undefined, details?: unknown[] | null | undefined, cause?: Error);
78
+ /**
79
+ * Create a new `ApplicationFailure` from an Error object.
80
+ *
81
+ * First calls {@link ensureApplicationFailure | `ensureApplicationFailure(error)`} and then overrides any fields
82
+ * provided in `overrides`.
83
+ */
84
+ static fromError(error: Error | unknown, overrides?: ApplicationFailureOptions): ApplicationFailure;
85
+ /**
86
+ * Create a new `ApplicationFailure`.
87
+ *
88
+ * By default, will be retryable (unless its `type` is included in {@link RetryPolicy.nonRetryableErrorTypes}).
89
+ */
90
+ static create(options: ApplicationFailureOptions): ApplicationFailure;
82
91
  /**
83
92
  * Get a new `ApplicationFailure` with the {@link nonRetryable} flag set to false. Note that this error will still
84
93
  * not be retried if its `type` is included in {@link RetryPolicy.nonRetryableErrorTypes}.
@@ -87,7 +96,7 @@ export declare class ApplicationFailure extends TemporalFailure {
87
96
  * @param type Optional error type (used by {@link RetryPolicy.nonRetryableErrorTypes})
88
97
  * @param details Optional details about the failure. Serialized by the Worker's {@link PayloadConverter}.
89
98
  */
90
- static retryable(message: string | undefined, type?: string, ...details: unknown[]): ApplicationFailure;
99
+ static retryable(message?: string | null, type?: string | null, ...details: unknown[]): ApplicationFailure;
91
100
  /**
92
101
  * Get a new `ApplicationFailure` with the {@link nonRetryable} flag set to true.
93
102
  *
@@ -98,7 +107,31 @@ export declare class ApplicationFailure extends TemporalFailure {
98
107
  * @param type Optional error type
99
108
  * @param details Optional details about the failure. Serialized by the Worker's {@link PayloadConverter}.
100
109
  */
101
- static nonRetryable(message: string | undefined, type?: string, ...details: unknown[]): ApplicationFailure;
110
+ static nonRetryable(message?: string | null, type?: string | null, ...details: unknown[]): ApplicationFailure;
111
+ }
112
+ export interface ApplicationFailureOptions {
113
+ /**
114
+ * Error message
115
+ */
116
+ message?: string;
117
+ /**
118
+ * Error type (used by {@link RetryPolicy.nonRetryableErrorTypes})
119
+ */
120
+ type?: string;
121
+ /**
122
+ * Whether the current Activity or Workflow can be retried
123
+ *
124
+ * @default false
125
+ */
126
+ nonRetryable?: boolean;
127
+ /**
128
+ * Details about the failure. Serialized by the Worker's {@link PayloadConverter}.
129
+ */
130
+ details?: unknown[];
131
+ /**
132
+ * Cause of the failure
133
+ */
134
+ cause?: Error;
102
135
  }
103
136
  /**
104
137
  * This error is thrown when Cancellation has been requested. To allow Cancellation to happen, let it propagate. To
@@ -169,13 +202,15 @@ export declare function cutoffStackTrace(stack?: string): string;
169
202
  */
170
203
  export declare function errorToFailure(err: unknown, payloadConverter: PayloadConverter): ProtoFailure;
171
204
  /**
172
- * If `err` is an Error it is turned into an `ApplicationFailure`.
205
+ * If `error` is already an `ApplicationFailure`, returns `error`.
173
206
  *
174
- * If `err` was already a `ApplicationFailure`, returns the original error.
207
+ * Otherwise, converts `error` into an `ApplicationFailure` with:
175
208
  *
176
- * Otherwise returns an `ApplicationFailure` with `String(err)` as the message.
209
+ * - `message`: `error.message` or `String(error)`
210
+ * - `type`: `error.constructor.name` or `error.name`
211
+ * - `stack`: `error.stack` or `''`
177
212
  */
178
- export declare function ensureApplicationFailure(err: unknown): ApplicationFailure;
213
+ export declare function ensureApplicationFailure(error: unknown): ApplicationFailure;
179
214
  /**
180
215
  * If `err` is an Error it is turned into an `ApplicationFailure`.
181
216
  *
package/lib/failure.js CHANGED
@@ -15,6 +15,7 @@ var TimeoutType;
15
15
  TimeoutType[TimeoutType["TIMEOUT_TYPE_HEARTBEAT"] = 4] = "TIMEOUT_TYPE_HEARTBEAT";
16
16
  })(TimeoutType = exports.TimeoutType || (exports.TimeoutType = {}));
17
17
  (0, internal_workflow_common_1.checkExtends)();
18
+ (0, internal_workflow_common_1.checkExtends)();
18
19
  // Avoid importing the proto implementation to reduce workflow bundle size
19
20
  // Copied from temporal.api.enums.v1.RetryState
20
21
  var RetryState;
@@ -29,17 +30,13 @@ var RetryState;
29
30
  RetryState[RetryState["RETRY_STATE_CANCEL_REQUESTED"] = 7] = "RETRY_STATE_CANCEL_REQUESTED";
30
31
  })(RetryState = exports.RetryState || (exports.RetryState = {}));
31
32
  (0, internal_workflow_common_1.checkExtends)();
33
+ (0, internal_workflow_common_1.checkExtends)();
32
34
  /**
33
35
  * Represents failures that can cross Workflow and Activity boundaries.
34
36
  *
35
- * Only exceptions that extend this class will be propagated to the caller.
37
+ * **Never extend this class or any of its children.**
36
38
  *
37
- * **Never extend this class or any of its derivatives.** They are to be used by the SDK code
38
- * only. Throw an instance {@link ApplicationFailure} to pass application specific errors between
39
- * Workflows and Activities.
40
- *
41
- * Any unhandled exception thrown by an Activity or Workflow will be converted to an instance of
42
- * {@link ApplicationFailure}.
39
+ * The only child class you should ever throw from your code is {@link ApplicationFailure}.
43
40
  */
44
41
  class TemporalFailure extends Error {
45
42
  constructor(message, cause) {
@@ -68,21 +65,22 @@ exports.ServerFailure = ServerFailure;
68
65
  * `ApplicationFailure`, the Workflow Execution will fail.
69
66
  *
70
67
  * In Activities, you can either throw an `ApplicationFailure` or another `Error` to fail the Activity Task. In the
71
- * latter case, the `Error` will be converted to an `ApplicationFailure`. If the
72
- * {@link https://docs.temporal.io/concepts/what-is-an-activity-execution | Activity Execution} fails, the
73
- * `ApplicationFailure` from the last Activity Task will be the `cause` of the {@link ActivityFailure} thrown in the
74
- * Workflow.
75
- *
76
- * The conversion of an error that doesn't extend {@link TemporalFailure} to an `ApplicationFailure` is done as
77
- * following:
68
+ * latter case, the `Error` will be converted to an `ApplicationFailure`. The conversion is done as following:
78
69
  *
79
70
  * - `type` is set to `error.constructor?.name ?? error.name`
80
71
  * - `message` is set to `error.message`
81
72
  * - `nonRetryable` is set to false
82
73
  * - `details` are set to null
83
74
  * - stack trace is copied from the original error
75
+ *
76
+ * When an {@link https://docs.temporal.io/concepts/what-is-an-activity-execution | Activity Execution} fails, the
77
+ * `ApplicationFailure` from the last Activity Task will be the `cause` of the {@link ActivityFailure} thrown in the
78
+ * Workflow.
84
79
  */
85
80
  class ApplicationFailure extends TemporalFailure {
81
+ /**
82
+ * Alternatively, use {@link fromError} or {@link create}.
83
+ */
86
84
  constructor(message, type, nonRetryable, details, cause) {
87
85
  super(message, cause);
88
86
  this.type = type;
@@ -90,6 +88,26 @@ class ApplicationFailure extends TemporalFailure {
90
88
  this.details = details;
91
89
  this.name = 'ApplicationFailure';
92
90
  }
91
+ /**
92
+ * Create a new `ApplicationFailure` from an Error object.
93
+ *
94
+ * First calls {@link ensureApplicationFailure | `ensureApplicationFailure(error)`} and then overrides any fields
95
+ * provided in `overrides`.
96
+ */
97
+ static fromError(error, overrides) {
98
+ const failure = ensureApplicationFailure(error);
99
+ Object.assign(failure, overrides);
100
+ return failure;
101
+ }
102
+ /**
103
+ * Create a new `ApplicationFailure`.
104
+ *
105
+ * By default, will be retryable (unless its `type` is included in {@link RetryPolicy.nonRetryableErrorTypes}).
106
+ */
107
+ static create(options) {
108
+ const { message, type, nonRetryable = false, details, cause } = options;
109
+ return new this(message, type, nonRetryable, details, cause);
110
+ }
93
111
  /**
94
112
  * Get a new `ApplicationFailure` with the {@link nonRetryable} flag set to false. Note that this error will still
95
113
  * not be retried if its `type` is included in {@link RetryPolicy.nonRetryableErrorTypes}.
@@ -326,27 +344,23 @@ function errorToFailure(err, payloadConverter) {
326
344
  }
327
345
  exports.errorToFailure = errorToFailure;
328
346
  /**
329
- * If `err` is an Error it is turned into an `ApplicationFailure`.
347
+ * If `error` is already an `ApplicationFailure`, returns `error`.
330
348
  *
331
- * If `err` was already a `ApplicationFailure`, returns the original error.
349
+ * Otherwise, converts `error` into an `ApplicationFailure` with:
332
350
  *
333
- * Otherwise returns an `ApplicationFailure` with `String(err)` as the message.
351
+ * - `message`: `error.message` or `String(error)`
352
+ * - `type`: `error.constructor.name` or `error.name`
353
+ * - `stack`: `error.stack` or `''`
334
354
  */
335
- function ensureApplicationFailure(err) {
336
- if (err instanceof ApplicationFailure) {
337
- return err;
338
- }
339
- if (err instanceof Error) {
340
- const name = err.constructor?.name ?? err.name;
341
- const failure = new ApplicationFailure(err.message, name, false);
342
- failure.stack = err.stack;
343
- return failure;
344
- }
345
- else {
346
- const failure = new ApplicationFailure(String(err), undefined, false);
347
- failure.stack = '';
348
- return failure;
355
+ function ensureApplicationFailure(error) {
356
+ if (error instanceof ApplicationFailure) {
357
+ return error;
349
358
  }
359
+ const message = ((0, internal_workflow_common_1.isRecord)(error) && String(error.message)) || String(error);
360
+ const type = ((0, internal_workflow_common_1.isRecord)(error) && (error.constructor?.name ?? error.name)) || undefined;
361
+ const failure = ApplicationFailure.create({ message, type, nonRetryable: false });
362
+ failure.stack = ((0, internal_workflow_common_1.isRecord)(error) && String(error.stack)) || '';
363
+ return failure;
350
364
  }
351
365
  exports.ensureApplicationFailure = ensureApplicationFailure;
352
366
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"failure.js","sourceRoot":"","sources":["../src/failure.ts"],"names":[],"mappings":";;;AAAA,mFAAgG;AAEhG,qEAAqH;AAExG,QAAA,cAAc,GAAG,eAAe,CAAC;AAG9C,0EAA0E;AAC1E,gDAAgD;AAChD,IAAY,WAMX;AAND,WAAY,WAAW;IACrB,qFAA4B,CAAA;IAC5B,2FAA+B,CAAA;IAC/B,iGAAkC,CAAA;IAClC,iGAAkC,CAAA;IAClC,iFAA0B,CAAA;AAC5B,CAAC,EANW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAMtB;AAED,IAAA,uCAAY,GAAkD,CAAC;AAE/D,0EAA0E;AAC1E,+CAA+C;AAC/C,IAAY,UASX;AATD,WAAY,UAAU;IACpB,iFAA2B,CAAA;IAC3B,iFAA2B,CAAA;IAC3B,qGAAqC,CAAA;IACrC,yEAAuB,CAAA;IACvB,2GAAwC,CAAA;IACxC,mGAAoC,CAAA;IACpC,qGAAqC,CAAA;IACrC,2FAAgC,CAAA;AAClC,CAAC,EATW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QASrB;AAED,IAAA,uCAAY,GAAgD,CAAC;AAI7D;;;;;;;;;;;GAWG;AACH,MAAa,eAAgB,SAAQ,KAAK;IASxC,YAAY,OAA2B,EAAkB,KAAa;QACpE,KAAK,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC;QAD2B,UAAK,GAAL,KAAK,CAAQ;QARtD,SAAI,GAAW,iBAAiB,CAAC;IAUjD,CAAC;CACF;AAZD,0CAYC;AAED,qDAAqD;AACrD,MAAa,aAAc,SAAQ,eAAe;IAGhD,YAAY,OAA2B,EAAkB,YAAqB,EAAE,KAAa;QAC3F,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QADiC,iBAAY,GAAZ,YAAY,CAAS;QAF9D,SAAI,GAAW,eAAe,CAAC;IAI/C,CAAC;CACF;AAND,sCAMC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAa,kBAAmB,SAAQ,eAAe;IAGrD,YACE,OAA2B,EACX,IAA+B,EAC/B,YAAqB,EACrB,OAAmB,EACnC,KAAa;QAEb,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QALN,SAAI,GAAJ,IAAI,CAA2B;QAC/B,iBAAY,GAAZ,YAAY,CAAS;QACrB,YAAO,GAAP,OAAO,CAAY;QANrB,SAAI,GAAW,oBAAoB,CAAC;IAUpD,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,SAAS,CAAC,OAA2B,EAAE,IAAa,EAAE,GAAG,OAAkB;QACvF,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;;;;;OASG;IACI,MAAM,CAAC,YAAY,CAAC,OAA2B,EAAE,IAAa,EAAE,GAAG,OAAkB;QAC1F,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;CACF;AAtCD,gDAsCC;AAED;;;;;;GAMG;AACH,MAAa,gBAAiB,SAAQ,eAAe;IAGnD,YAAY,OAA2B,EAAkB,UAAqB,EAAE,EAAE,KAAa;QAC7F,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QADiC,YAAO,GAAP,OAAO,CAAgB;QAFhE,SAAI,GAAW,kBAAkB,CAAC;IAIlD,CAAC;CACF;AAND,4CAMC;AAED;;GAEG;AACH,MAAa,iBAAkB,SAAQ,eAAe;IAGpD,YAAY,OAA2B,EAAE,KAAa;QACpD,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAHR,SAAI,GAAW,mBAAmB,CAAC;IAInD,CAAC;CACF;AAND,8CAMC;AAED;;GAEG;AACH,MAAa,cAAe,SAAQ,eAAe;IAGjD,YACE,OAA2B,EACX,oBAA6B,EAC7B,WAAwB;QAExC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,yBAAoB,GAApB,oBAAoB,CAAS;QAC7B,gBAAW,GAAX,WAAW,CAAa;QAL1B,SAAI,GAAW,gBAAgB,CAAC;IAQhD,CAAC;CACF;AAVD,wCAUC;AAED;;;;;GAKG;AACH,MAAa,eAAgB,SAAQ,eAAe;IAGlD,YACkB,YAAoB,EACpB,UAA8B,EAC9B,UAAsB,EACtB,QAA4B,EAC5C,KAAa;QAEb,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;QAN1B,iBAAY,GAAZ,YAAY,CAAQ;QACpB,eAAU,GAAV,UAAU,CAAoB;QAC9B,eAAU,GAAV,UAAU,CAAY;QACtB,aAAQ,GAAR,QAAQ,CAAoB;QAN9B,SAAI,GAAW,iBAAiB,CAAC;IAUjD,CAAC;CACF;AAZD,0CAYC;AAED;;;;;GAKG;AACH,MAAa,oBAAqB,SAAQ,eAAe;IAGvD,YACkB,SAA6B,EAC7B,SAA4B,EAC5B,YAAoB,EACpB,UAAsB,EACtC,KAAa;QAEb,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;QANhC,cAAS,GAAT,SAAS,CAAoB;QAC7B,cAAS,GAAT,SAAS,CAAmB;QAC5B,iBAAY,GAAZ,YAAY,CAAQ;QACpB,eAAU,GAAV,UAAU,CAAY;QANxB,SAAI,GAAW,sBAAsB,CAAC;IAUtD,CAAC;CACF;AAZD,oDAYC;AAED;;GAEG;AACH,SAAgB,8BAA8B,CAC5C,GAAY,EACZ,gBAAkC;IAElC,OAAO,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACjE,CAAC;AALD,wEAKC;AAED;;GAEG;AACH,MAAM,qBAAqB,GAAG;IAC5B,yBAAyB;IACzB,uFAAuF;IACvF,0BAA0B;IAC1B,kGAAkG;IAClG,uCAAuC;IACvC,2DAA2D;CAC5D,CAAC;AAEF;;GAEG;AACH,SAAgB,gBAAgB,CAAC,KAAc;IAC7C,MAAM,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,KAAK,EAAU,CAAC;IAC5B,QAAQ,EAAE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QAClC,KAAK,MAAM,OAAO,IAAI,qBAAqB,EAAE;YAC3C,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,MAAM,QAAQ,CAAC;SACxC;QACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAChB;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAVD,4CAUC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,GAAY,EAAE,gBAAkC;IAC7E,IAAI,GAAG,YAAY,eAAe,EAAE;QAClC,IAAI,GAAG,CAAC,OAAO;YAAE,OAAO,GAAG,CAAC,OAAO,CAAC;QAEpC,MAAM,IAAI,GAAG;YACX,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,UAAU,EAAE,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC;YACvC,KAAK,EAAE,8BAA8B,CAAC,GAAG,CAAC,KAAK,EAAE,gBAAgB,CAAC;YAClE,MAAM,EAAE,sBAAc;SACvB,CAAC;QACF,IAAI,GAAG,YAAY,eAAe,EAAE;YAClC,OAAO;gBACL,GAAG,IAAI;gBACP,mBAAmB,EAAE;oBACnB,GAAG,GAAG;oBACN,YAAY,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,YAAY,EAAE;iBACzC;aACF,CAAC;SACH;QACD,IAAI,GAAG,YAAY,oBAAoB,EAAE;YACvC,OAAO;gBACL,GAAG,IAAI;gBACP,iCAAiC,EAAE;oBACjC,GAAG,GAAG;oBACN,iBAAiB,EAAE,GAAG,CAAC,SAAS;oBAChC,YAAY,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,YAAY,EAAE;iBACzC;aACF,CAAC;SACH;QACD,IAAI,GAAG,YAAY,kBAAkB,EAAE;YACrC,OAAO;gBACL,GAAG,IAAI;gBACP,sBAAsB,EAAE;oBACtB,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,YAAY,EAAE,GAAG,CAAC,YAAY;oBAC9B,OAAO,EACL,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAA,8BAAU,EAAC,gBAAgB,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;iBAC7G;aACF,CAAC;SACH;QACD,IAAI,GAAG,YAAY,gBAAgB,EAAE;YACnC,OAAO;gBACL,GAAG,IAAI;gBACP,mBAAmB,EAAE;oBACnB,OAAO,EACL,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAA,8BAAU,EAAC,gBAAgB,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;iBAC7G;aACF,CAAC;SACH;QACD,IAAI,GAAG,YAAY,cAAc,EAAE;YACjC,OAAO;gBACL,GAAG,IAAI;gBACP,kBAAkB,EAAE;oBAClB,WAAW,EAAE,GAAG,CAAC,WAAW;oBAC5B,oBAAoB,EAAE,GAAG,CAAC,oBAAoB;wBAC5C,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAA,8BAAU,EAAC,gBAAgB,EAAE,GAAG,CAAC,oBAAoB,CAAC,EAAE;wBACtE,CAAC,CAAC,SAAS;iBACd;aACF,CAAC;SACH;QACD,IAAI,GAAG,YAAY,iBAAiB,EAAE;YACpC,OAAO;gBACL,GAAG,IAAI;gBACP,qBAAqB,EAAE,EAAE;aAC1B,CAAC;SACH;QACD,IAAI,GAAG,YAAY,aAAa,EAAE;YAChC,OAAO;gBACL,GAAG,IAAI;gBACP,iBAAiB,EAAE,EAAE,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE;aACtD,CAAC;SACH;QACD,yBAAyB;QACzB,OAAO,IAAI,CAAC;KACb;IAED,MAAM,IAAI,GAAG;QACX,MAAM,EAAE,sBAAc;KACvB,CAAC;IAEF,IAAI,IAAA,mCAAQ,EAAC,GAAG,CAAC,IAAI,IAAA,2CAAgB,EAAC,GAAG,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,EAAE;QAChE,OAAO;YACL,GAAG,IAAI;YACP,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE;YAClC,UAAU,EAAE,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC/C,KAAK,EAAE,8BAA8B,CAAC,GAAG,CAAC,KAAK,EAAE,gBAAgB,CAAC;SACnE,CAAC;KACH;IAED,MAAM,cAAc,GAAG,0HAA0H,CAAC;IAElJ,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,GAAG,cAAc,EAAE,CAAC;KACnD;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI;YACF,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;SAC/B;QAAC,OAAO,IAAI,EAAE;YACb,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;SACvB;QACD,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,OAAO,GAAG,cAAc,EAAE,CAAC;KACvD;IAED,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,cAAc,EAAE,CAAC;AAC5D,CAAC;AAzGD,wCAyGC;AAED;;;;;;GAMG;AACH,SAAgB,wBAAwB,CAAC,GAAY;IACnD,IAAI,GAAG,YAAY,kBAAkB,EAAE;QACrC,OAAO,GAAG,CAAC;KACZ;IACD,IAAI,GAAG,YAAY,KAAK,EAAE;QACxB,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,EAAE,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC;QAC/C,MAAM,OAAO,GAAG,IAAI,kBAAkB,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACjE,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;QAC1B,OAAO,OAAO,CAAC;KAChB;SAAM;QACL,MAAM,OAAO,GAAG,IAAI,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QACtE,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC;QACnB,OAAO,OAAO,CAAC;KAChB;AACH,CAAC;AAdD,4DAcC;AAED;;;;;;GAMG;AACH,SAAgB,qBAAqB,CAAC,GAAY;IAChD,IAAI,GAAG,YAAY,eAAe,EAAE;QAClC,OAAO,GAAG,CAAC;KACZ;IACD,OAAO,wBAAwB,CAAC,GAAG,CAAC,CAAC;AACvC,CAAC;AALD,sDAKC;AAED;;GAEG;AACH,SAAgB,8BAA8B,CAC5C,OAAwC,EACxC,gBAAkC;IAElC,OAAO,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACzE,CAAC;AALD,wEAKC;AAED;;;;GAIG;AACH,SAAgB,mBAAmB,CAAC,OAAqB,EAAE,gBAAkC;IAC3F,IAAI,OAAO,CAAC,sBAAsB,EAAE;QAClC,OAAO,IAAI,kBAAkB,CAC3B,OAAO,CAAC,OAAO,IAAI,SAAS,EAC5B,OAAO,CAAC,sBAAsB,CAAC,IAAI,EACnC,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,YAAY,CAAC,EACpD,IAAA,qCAAiB,EAAC,gBAAgB,EAAE,OAAO,CAAC,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,EACrF,8BAA8B,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAChE,CAAC;KACH;IACD,IAAI,OAAO,CAAC,iBAAiB,EAAE;QAC7B,OAAO,IAAI,aAAa,CACtB,OAAO,CAAC,OAAO,IAAI,SAAS,EAC5B,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,EAC/C,8BAA8B,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAChE,CAAC;KACH;IACD,IAAI,OAAO,CAAC,kBAAkB,EAAE;QAC9B,OAAO,IAAI,cAAc,CACvB,OAAO,CAAC,OAAO,IAAI,SAAS,EAC5B,IAAA,uCAAmB,EAAC,gBAAgB,EAAE,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,oBAAoB,EAAE,QAAQ,CAAC,EACnG,OAAO,CAAC,kBAAkB,CAAC,WAAW,IAAI,WAAW,CAAC,wBAAwB,CAC/E,CAAC;KACH;IACD,IAAI,OAAO,CAAC,qBAAqB,EAAE;QACjC,OAAO,IAAI,iBAAiB,CAC1B,OAAO,CAAC,OAAO,IAAI,SAAS,EAC5B,8BAA8B,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAChE,CAAC;KACH;IACD,IAAI,OAAO,CAAC,mBAAmB,EAAE;QAC/B,OAAO,IAAI,gBAAgB,CACzB,OAAO,CAAC,OAAO,IAAI,SAAS,EAC5B,IAAA,qCAAiB,EAAC,gBAAgB,EAAE,OAAO,CAAC,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,EAClF,8BAA8B,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAChE,CAAC;KACH;IACD,IAAI,OAAO,CAAC,wBAAwB,EAAE;QACpC,OAAO,IAAI,kBAAkB,CAC3B,OAAO,CAAC,OAAO,IAAI,SAAS,EAC5B,eAAe,EACf,KAAK,EACL,IAAA,qCAAiB,EAAC,gBAAgB,EAAE,OAAO,CAAC,wBAAwB,CAAC,oBAAoB,EAAE,QAAQ,CAAC,EACpG,8BAA8B,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAChE,CAAC;KACH;IACD,IAAI,OAAO,CAAC,iCAAiC,EAAE;QAC7C,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,iCAAiC,CAAC;QAC7G,IAAI,CAAC,CAAC,YAAY,EAAE,IAAI,IAAI,iBAAiB,CAAC,EAAE;YAC9C,MAAM,IAAI,SAAS,CAAC,yDAAyD,CAAC,CAAC;SAChF;QACD,OAAO,IAAI,oBAAoB,CAC7B,SAAS,IAAI,SAAS,EACtB,iBAAiB,EACjB,YAAY,CAAC,IAAI,EACjB,UAAU,IAAI,UAAU,CAAC,uBAAuB,EAChD,8BAA8B,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAChE,CAAC;KACH;IACD,IAAI,OAAO,CAAC,mBAAmB,EAAE;QAC/B,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,EAAE;YACnD,MAAM,IAAI,SAAS,CAAC,mDAAmD,CAAC,CAAC;SAC1E;QACD,OAAO,IAAI,eAAe,CACxB,OAAO,CAAC,mBAAmB,CAAC,YAAY,CAAC,IAAI,EAC7C,OAAO,CAAC,mBAAmB,CAAC,UAAU,IAAI,SAAS,EACnD,OAAO,CAAC,mBAAmB,CAAC,UAAU,IAAI,UAAU,CAAC,uBAAuB,EAC5E,OAAO,CAAC,mBAAmB,CAAC,QAAQ,IAAI,SAAS,EACjD,8BAA8B,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAChE,CAAC;KACH;IACD,OAAO,IAAI,eAAe,CACxB,OAAO,CAAC,OAAO,IAAI,SAAS,EAC5B,8BAA8B,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAChE,CAAC;AACJ,CAAC;AA3ED,kDA2EC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,OAAqB,EAAE,gBAAkC;IACtF,MAAM,GAAG,GAAG,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAC3D,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;IACrC,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;IACtB,OAAO,GAAG,CAAC;AACb,CAAC;AALD,wCAKC;AAED;;;;;GAKG;AACH,SAAgB,SAAS,CAAC,KAAc;IACtC,IAAI,KAAK,YAAY,eAAe,EAAE;QACpC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;KAC7D;IACD,IAAI,KAAK,YAAY,KAAK,EAAE;QAC1B,OAAO,KAAK,CAAC,OAAO,CAAC;KACtB;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,OAAO,KAAK,CAAC;KACd;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAXD,8BAWC"}
1
+ {"version":3,"file":"failure.js","sourceRoot":"","sources":["../src/failure.ts"],"names":[],"mappings":";;;AAAA,mFAAgG;AAEhG,qEAAqH;AAExG,QAAA,cAAc,GAAG,eAAe,CAAC;AAG9C,0EAA0E;AAC1E,gDAAgD;AAChD,IAAY,WAMX;AAND,WAAY,WAAW;IACrB,qFAA4B,CAAA;IAC5B,2FAA+B,CAAA;IAC/B,iGAAkC,CAAA;IAClC,iGAAkC,CAAA;IAClC,iFAA0B,CAAA;AAC5B,CAAC,EANW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAMtB;AAED,IAAA,uCAAY,GAAkD,CAAC;AAC/D,IAAA,uCAAY,GAAkD,CAAC;AAE/D,0EAA0E;AAC1E,+CAA+C;AAC/C,IAAY,UASX;AATD,WAAY,UAAU;IACpB,iFAA2B,CAAA;IAC3B,iFAA2B,CAAA;IAC3B,qGAAqC,CAAA;IACrC,yEAAuB,CAAA;IACvB,2GAAwC,CAAA;IACxC,mGAAoC,CAAA;IACpC,qGAAqC,CAAA;IACrC,2FAAgC,CAAA;AAClC,CAAC,EATW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QASrB;AAED,IAAA,uCAAY,GAAgD,CAAC;AAC7D,IAAA,uCAAY,GAAgD,CAAC;AAI7D;;;;;;GAMG;AACH,MAAa,eAAgB,SAAQ,KAAK;IASxC,YAAY,OAAmC,EAAkB,KAAa;QAC5E,KAAK,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC;QADmC,UAAK,GAAL,KAAK,CAAQ;QAR9D,SAAI,GAAW,iBAAiB,CAAC;IAUjD,CAAC;CACF;AAZD,0CAYC;AAED,qDAAqD;AACrD,MAAa,aAAc,SAAQ,eAAe;IAGhD,YAAY,OAA2B,EAAkB,YAAqB,EAAE,KAAa;QAC3F,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QADiC,iBAAY,GAAZ,YAAY,CAAS;QAF9D,SAAI,GAAW,eAAe,CAAC;IAI/C,CAAC;CACF;AAND,sCAMC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAa,kBAAmB,SAAQ,eAAe;IAGrD;;OAEG;IACH,YACE,OAAmC,EACnB,IAAgC,EAChC,YAAyC,EACzC,OAAsC,EACtD,KAAa;QAEb,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QALN,SAAI,GAAJ,IAAI,CAA4B;QAChC,iBAAY,GAAZ,YAAY,CAA6B;QACzC,YAAO,GAAP,OAAO,CAA+B;QATxC,SAAI,GAAW,oBAAoB,CAAC;IAapD,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,SAAS,CAAC,KAAsB,EAAE,SAAqC;QACnF,MAAM,OAAO,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAClC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,MAAM,CAAC,OAAkC;QACrD,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,GAAG,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;QACxE,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,SAAS,CAAC,OAAuB,EAAE,IAAoB,EAAE,GAAG,OAAkB;QAC1F,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;;;;;OASG;IACI,MAAM,CAAC,YAAY,CAAC,OAAuB,EAAE,IAAoB,EAAE,GAAG,OAAkB;QAC7F,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;CACF;AA/DD,gDA+DC;AA+BD;;;;;;GAMG;AACH,MAAa,gBAAiB,SAAQ,eAAe;IAGnD,YAAY,OAA2B,EAAkB,UAAqB,EAAE,EAAE,KAAa;QAC7F,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QADiC,YAAO,GAAP,OAAO,CAAgB;QAFhE,SAAI,GAAW,kBAAkB,CAAC;IAIlD,CAAC;CACF;AAND,4CAMC;AAED;;GAEG;AACH,MAAa,iBAAkB,SAAQ,eAAe;IAGpD,YAAY,OAA2B,EAAE,KAAa;QACpD,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAHR,SAAI,GAAW,mBAAmB,CAAC;IAInD,CAAC;CACF;AAND,8CAMC;AAED;;GAEG;AACH,MAAa,cAAe,SAAQ,eAAe;IAGjD,YACE,OAA2B,EACX,oBAA6B,EAC7B,WAAwB;QAExC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,yBAAoB,GAApB,oBAAoB,CAAS;QAC7B,gBAAW,GAAX,WAAW,CAAa;QAL1B,SAAI,GAAW,gBAAgB,CAAC;IAQhD,CAAC;CACF;AAVD,wCAUC;AAED;;;;;GAKG;AACH,MAAa,eAAgB,SAAQ,eAAe;IAGlD,YACkB,YAAoB,EACpB,UAA8B,EAC9B,UAAsB,EACtB,QAA4B,EAC5C,KAAa;QAEb,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;QAN1B,iBAAY,GAAZ,YAAY,CAAQ;QACpB,eAAU,GAAV,UAAU,CAAoB;QAC9B,eAAU,GAAV,UAAU,CAAY;QACtB,aAAQ,GAAR,QAAQ,CAAoB;QAN9B,SAAI,GAAW,iBAAiB,CAAC;IAUjD,CAAC;CACF;AAZD,0CAYC;AAED;;;;;GAKG;AACH,MAAa,oBAAqB,SAAQ,eAAe;IAGvD,YACkB,SAA6B,EAC7B,SAA4B,EAC5B,YAAoB,EACpB,UAAsB,EACtC,KAAa;QAEb,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;QANhC,cAAS,GAAT,SAAS,CAAoB;QAC7B,cAAS,GAAT,SAAS,CAAmB;QAC5B,iBAAY,GAAZ,YAAY,CAAQ;QACpB,eAAU,GAAV,UAAU,CAAY;QANxB,SAAI,GAAW,sBAAsB,CAAC;IAUtD,CAAC;CACF;AAZD,oDAYC;AAED;;GAEG;AACH,SAAgB,8BAA8B,CAC5C,GAAY,EACZ,gBAAkC;IAElC,OAAO,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACjE,CAAC;AALD,wEAKC;AAED;;GAEG;AACH,MAAM,qBAAqB,GAAG;IAC5B,yBAAyB;IACzB,uFAAuF;IACvF,0BAA0B;IAC1B,kGAAkG;IAClG,uCAAuC;IACvC,2DAA2D;CAC5D,CAAC;AAEF;;GAEG;AACH,SAAgB,gBAAgB,CAAC,KAAc;IAC7C,MAAM,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,KAAK,EAAU,CAAC;IAC5B,QAAQ,EAAE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QAClC,KAAK,MAAM,OAAO,IAAI,qBAAqB,EAAE;YAC3C,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,MAAM,QAAQ,CAAC;SACxC;QACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAChB;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAVD,4CAUC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,GAAY,EAAE,gBAAkC;IAC7E,IAAI,GAAG,YAAY,eAAe,EAAE;QAClC,IAAI,GAAG,CAAC,OAAO;YAAE,OAAO,GAAG,CAAC,OAAO,CAAC;QAEpC,MAAM,IAAI,GAAG;YACX,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,UAAU,EAAE,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC;YACvC,KAAK,EAAE,8BAA8B,CAAC,GAAG,CAAC,KAAK,EAAE,gBAAgB,CAAC;YAClE,MAAM,EAAE,sBAAc;SACvB,CAAC;QACF,IAAI,GAAG,YAAY,eAAe,EAAE;YAClC,OAAO;gBACL,GAAG,IAAI;gBACP,mBAAmB,EAAE;oBACnB,GAAG,GAAG;oBACN,YAAY,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,YAAY,EAAE;iBACzC;aACF,CAAC;SACH;QACD,IAAI,GAAG,YAAY,oBAAoB,EAAE;YACvC,OAAO;gBACL,GAAG,IAAI;gBACP,iCAAiC,EAAE;oBACjC,GAAG,GAAG;oBACN,iBAAiB,EAAE,GAAG,CAAC,SAAS;oBAChC,YAAY,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,YAAY,EAAE;iBACzC;aACF,CAAC;SACH;QACD,IAAI,GAAG,YAAY,kBAAkB,EAAE;YACrC,OAAO;gBACL,GAAG,IAAI;gBACP,sBAAsB,EAAE;oBACtB,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,YAAY,EAAE,GAAG,CAAC,YAAY;oBAC9B,OAAO,EACL,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAA,8BAAU,EAAC,gBAAgB,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;iBAC7G;aACF,CAAC;SACH;QACD,IAAI,GAAG,YAAY,gBAAgB,EAAE;YACnC,OAAO;gBACL,GAAG,IAAI;gBACP,mBAAmB,EAAE;oBACnB,OAAO,EACL,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAA,8BAAU,EAAC,gBAAgB,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;iBAC7G;aACF,CAAC;SACH;QACD,IAAI,GAAG,YAAY,cAAc,EAAE;YACjC,OAAO;gBACL,GAAG,IAAI;gBACP,kBAAkB,EAAE;oBAClB,WAAW,EAAE,GAAG,CAAC,WAAW;oBAC5B,oBAAoB,EAAE,GAAG,CAAC,oBAAoB;wBAC5C,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAA,8BAAU,EAAC,gBAAgB,EAAE,GAAG,CAAC,oBAAoB,CAAC,EAAE;wBACtE,CAAC,CAAC,SAAS;iBACd;aACF,CAAC;SACH;QACD,IAAI,GAAG,YAAY,iBAAiB,EAAE;YACpC,OAAO;gBACL,GAAG,IAAI;gBACP,qBAAqB,EAAE,EAAE;aAC1B,CAAC;SACH;QACD,IAAI,GAAG,YAAY,aAAa,EAAE;YAChC,OAAO;gBACL,GAAG,IAAI;gBACP,iBAAiB,EAAE,EAAE,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE;aACtD,CAAC;SACH;QACD,yBAAyB;QACzB,OAAO,IAAI,CAAC;KACb;IAED,MAAM,IAAI,GAAG;QACX,MAAM,EAAE,sBAAc;KACvB,CAAC;IAEF,IAAI,IAAA,mCAAQ,EAAC,GAAG,CAAC,IAAI,IAAA,2CAAgB,EAAC,GAAG,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,EAAE;QAChE,OAAO;YACL,GAAG,IAAI;YACP,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE;YAClC,UAAU,EAAE,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC/C,KAAK,EAAE,8BAA8B,CAAC,GAAG,CAAC,KAAK,EAAE,gBAAgB,CAAC;SACnE,CAAC;KACH;IAED,MAAM,cAAc,GAAG,0HAA0H,CAAC;IAElJ,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,GAAG,cAAc,EAAE,CAAC;KACnD;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI;YACF,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;SAC/B;QAAC,OAAO,IAAI,EAAE;YACb,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;SACvB;QACD,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,OAAO,GAAG,cAAc,EAAE,CAAC;KACvD;IAED,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,cAAc,EAAE,CAAC;AAC5D,CAAC;AAzGD,wCAyGC;AAED;;;;;;;;GAQG;AACH,SAAgB,wBAAwB,CAAC,KAAc;IACrD,IAAI,KAAK,YAAY,kBAAkB,EAAE;QACvC,OAAO,KAAK,CAAC;KACd;IAED,MAAM,OAAO,GAAG,CAAC,IAAA,mCAAQ,EAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5E,MAAM,IAAI,GAAG,CAAC,IAAA,mCAAQ,EAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,SAAS,CAAC;IACvF,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;IAClF,OAAO,CAAC,KAAK,GAAG,CAAC,IAAA,mCAAQ,EAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/D,OAAO,OAAO,CAAC;AACjB,CAAC;AAVD,4DAUC;AAED;;;;;;GAMG;AACH,SAAgB,qBAAqB,CAAC,GAAY;IAChD,IAAI,GAAG,YAAY,eAAe,EAAE;QAClC,OAAO,GAAG,CAAC;KACZ;IACD,OAAO,wBAAwB,CAAC,GAAG,CAAC,CAAC;AACvC,CAAC;AALD,sDAKC;AAED;;GAEG;AACH,SAAgB,8BAA8B,CAC5C,OAAwC,EACxC,gBAAkC;IAElC,OAAO,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACzE,CAAC;AALD,wEAKC;AAED;;;;GAIG;AACH,SAAgB,mBAAmB,CAAC,OAAqB,EAAE,gBAAkC;IAC3F,IAAI,OAAO,CAAC,sBAAsB,EAAE;QAClC,OAAO,IAAI,kBAAkB,CAC3B,OAAO,CAAC,OAAO,IAAI,SAAS,EAC5B,OAAO,CAAC,sBAAsB,CAAC,IAAI,EACnC,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,YAAY,CAAC,EACpD,IAAA,qCAAiB,EAAC,gBAAgB,EAAE,OAAO,CAAC,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,EACrF,8BAA8B,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAChE,CAAC;KACH;IACD,IAAI,OAAO,CAAC,iBAAiB,EAAE;QAC7B,OAAO,IAAI,aAAa,CACtB,OAAO,CAAC,OAAO,IAAI,SAAS,EAC5B,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,EAC/C,8BAA8B,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAChE,CAAC;KACH;IACD,IAAI,OAAO,CAAC,kBAAkB,EAAE;QAC9B,OAAO,IAAI,cAAc,CACvB,OAAO,CAAC,OAAO,IAAI,SAAS,EAC5B,IAAA,uCAAmB,EAAC,gBAAgB,EAAE,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,oBAAoB,EAAE,QAAQ,CAAC,EACnG,OAAO,CAAC,kBAAkB,CAAC,WAAW,IAAI,WAAW,CAAC,wBAAwB,CAC/E,CAAC;KACH;IACD,IAAI,OAAO,CAAC,qBAAqB,EAAE;QACjC,OAAO,IAAI,iBAAiB,CAC1B,OAAO,CAAC,OAAO,IAAI,SAAS,EAC5B,8BAA8B,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAChE,CAAC;KACH;IACD,IAAI,OAAO,CAAC,mBAAmB,EAAE;QAC/B,OAAO,IAAI,gBAAgB,CACzB,OAAO,CAAC,OAAO,IAAI,SAAS,EAC5B,IAAA,qCAAiB,EAAC,gBAAgB,EAAE,OAAO,CAAC,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,EAClF,8BAA8B,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAChE,CAAC;KACH;IACD,IAAI,OAAO,CAAC,wBAAwB,EAAE;QACpC,OAAO,IAAI,kBAAkB,CAC3B,OAAO,CAAC,OAAO,IAAI,SAAS,EAC5B,eAAe,EACf,KAAK,EACL,IAAA,qCAAiB,EAAC,gBAAgB,EAAE,OAAO,CAAC,wBAAwB,CAAC,oBAAoB,EAAE,QAAQ,CAAC,EACpG,8BAA8B,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAChE,CAAC;KACH;IACD,IAAI,OAAO,CAAC,iCAAiC,EAAE;QAC7C,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,iCAAiC,CAAC;QAC7G,IAAI,CAAC,CAAC,YAAY,EAAE,IAAI,IAAI,iBAAiB,CAAC,EAAE;YAC9C,MAAM,IAAI,SAAS,CAAC,yDAAyD,CAAC,CAAC;SAChF;QACD,OAAO,IAAI,oBAAoB,CAC7B,SAAS,IAAI,SAAS,EACtB,iBAAiB,EACjB,YAAY,CAAC,IAAI,EACjB,UAAU,IAAI,UAAU,CAAC,uBAAuB,EAChD,8BAA8B,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAChE,CAAC;KACH;IACD,IAAI,OAAO,CAAC,mBAAmB,EAAE;QAC/B,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,EAAE;YACnD,MAAM,IAAI,SAAS,CAAC,mDAAmD,CAAC,CAAC;SAC1E;QACD,OAAO,IAAI,eAAe,CACxB,OAAO,CAAC,mBAAmB,CAAC,YAAY,CAAC,IAAI,EAC7C,OAAO,CAAC,mBAAmB,CAAC,UAAU,IAAI,SAAS,EACnD,OAAO,CAAC,mBAAmB,CAAC,UAAU,IAAI,UAAU,CAAC,uBAAuB,EAC5E,OAAO,CAAC,mBAAmB,CAAC,QAAQ,IAAI,SAAS,EACjD,8BAA8B,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAChE,CAAC;KACH;IACD,OAAO,IAAI,eAAe,CACxB,OAAO,CAAC,OAAO,IAAI,SAAS,EAC5B,8BAA8B,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAChE,CAAC;AACJ,CAAC;AA3ED,kDA2EC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,OAAqB,EAAE,gBAAkC;IACtF,MAAM,GAAG,GAAG,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAC3D,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;IACrC,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;IACtB,OAAO,GAAG,CAAC;AACb,CAAC;AALD,wCAKC;AAED;;;;;GAKG;AACH,SAAgB,SAAS,CAAC,KAAc;IACtC,IAAI,KAAK,YAAY,eAAe,EAAE;QACpC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;KAC7D;IACD,IAAI,KAAK,YAAY,KAAK,EAAE;QAC1B,OAAO,KAAK,CAAC,OAAO,CAAC;KACtB;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,OAAO,KAAK,CAAC;KACd;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAXD,8BAWC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@temporalio/common",
3
- "version": "1.0.1",
3
+ "version": "1.3.0",
4
4
  "description": "Common library for code that's used across the Client, Worker, and/or Workflow",
5
5
  "main": "lib/index.js",
6
6
  "types": "./lib/index.d.ts",
@@ -13,9 +13,9 @@
13
13
  "license": "MIT",
14
14
  "dependencies": {
15
15
  "@opentelemetry/api": "^1.0.3",
16
- "@temporalio/internal-workflow-common": "^1.0.1",
17
- "@temporalio/proto": "^1.0.1",
18
- "proto3-json-serializer": "^1.0.2",
16
+ "@temporalio/internal-workflow-common": "^1.3.0",
17
+ "@temporalio/proto": "^1.3.0",
18
+ "proto3-json-serializer": "^1.0.3",
19
19
  "protobufjs": "^7.0.0"
20
20
  },
21
21
  "bugs": {
@@ -29,5 +29,5 @@
29
29
  "src",
30
30
  "lib"
31
31
  ],
32
- "gitHead": "a1dae539e72b6b088b400998d7bef482e8ed52f1"
32
+ "gitHead": "966d51d3545a5e84102190f5b762160b9dfe99c2"
33
33
  }
package/src/failure.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { checkExtends, hasOwnProperties, isRecord } from '@temporalio/internal-workflow-common';
2
2
  import type { temporal } from '@temporalio/proto';
3
- import { PayloadConverter, arrayFromPayloads, fromPayloadsAtIndex, toPayloads } from './converter/payload-converter';
3
+ import { arrayFromPayloads, fromPayloadsAtIndex, PayloadConverter, toPayloads } from './converter/payload-converter';
4
4
 
5
5
  export const FAILURE_SOURCE = 'TypeScriptSDK';
6
6
  export type ProtoFailure = temporal.api.failure.v1.IFailure;
@@ -16,6 +16,7 @@ export enum TimeoutType {
16
16
  }
17
17
 
18
18
  checkExtends<temporal.api.enums.v1.TimeoutType, TimeoutType>();
19
+ checkExtends<TimeoutType, temporal.api.enums.v1.TimeoutType>();
19
20
 
20
21
  // Avoid importing the proto implementation to reduce workflow bundle size
21
22
  // Copied from temporal.api.enums.v1.RetryState
@@ -31,20 +32,16 @@ export enum RetryState {
31
32
  }
32
33
 
33
34
  checkExtends<temporal.api.enums.v1.RetryState, RetryState>();
35
+ checkExtends<RetryState, temporal.api.enums.v1.RetryState>();
34
36
 
35
37
  export type WorkflowExecution = temporal.api.common.v1.IWorkflowExecution;
36
38
 
37
39
  /**
38
40
  * Represents failures that can cross Workflow and Activity boundaries.
39
41
  *
40
- * Only exceptions that extend this class will be propagated to the caller.
42
+ * **Never extend this class or any of its children.**
41
43
  *
42
- * **Never extend this class or any of its derivatives.** They are to be used by the SDK code
43
- * only. Throw an instance {@link ApplicationFailure} to pass application specific errors between
44
- * Workflows and Activities.
45
- *
46
- * Any unhandled exception thrown by an Activity or Workflow will be converted to an instance of
47
- * {@link ApplicationFailure}.
44
+ * The only child class you should ever throw from your code is {@link ApplicationFailure}.
48
45
  */
49
46
  export class TemporalFailure extends Error {
50
47
  public readonly name: string = 'TemporalFailure';
@@ -55,7 +52,7 @@ export class TemporalFailure extends Error {
55
52
  */
56
53
  public failure?: ProtoFailure;
57
54
 
58
- constructor(message: string | undefined, public readonly cause?: Error) {
55
+ constructor(message?: string | undefined | null, public readonly cause?: Error) {
59
56
  super(message ?? undefined);
60
57
  }
61
58
  }
@@ -79,33 +76,56 @@ export class ServerFailure extends TemporalFailure {
79
76
  * `ApplicationFailure`, the Workflow Execution will fail.
80
77
  *
81
78
  * In Activities, you can either throw an `ApplicationFailure` or another `Error` to fail the Activity Task. In the
82
- * latter case, the `Error` will be converted to an `ApplicationFailure`. If the
83
- * {@link https://docs.temporal.io/concepts/what-is-an-activity-execution | Activity Execution} fails, the
84
- * `ApplicationFailure` from the last Activity Task will be the `cause` of the {@link ActivityFailure} thrown in the
85
- * Workflow.
86
- *
87
- * The conversion of an error that doesn't extend {@link TemporalFailure} to an `ApplicationFailure` is done as
88
- * following:
79
+ * latter case, the `Error` will be converted to an `ApplicationFailure`. The conversion is done as following:
89
80
  *
90
81
  * - `type` is set to `error.constructor?.name ?? error.name`
91
82
  * - `message` is set to `error.message`
92
83
  * - `nonRetryable` is set to false
93
84
  * - `details` are set to null
94
85
  * - stack trace is copied from the original error
86
+ *
87
+ * When an {@link https://docs.temporal.io/concepts/what-is-an-activity-execution | Activity Execution} fails, the
88
+ * `ApplicationFailure` from the last Activity Task will be the `cause` of the {@link ActivityFailure} thrown in the
89
+ * Workflow.
95
90
  */
96
91
  export class ApplicationFailure extends TemporalFailure {
97
92
  public readonly name: string = 'ApplicationFailure';
98
93
 
94
+ /**
95
+ * Alternatively, use {@link fromError} or {@link create}.
96
+ */
99
97
  constructor(
100
- message: string | undefined,
101
- public readonly type: string | undefined | null,
102
- public readonly nonRetryable: boolean,
103
- public readonly details?: unknown[],
98
+ message?: string | undefined | null,
99
+ public readonly type?: string | undefined | null,
100
+ public readonly nonRetryable?: boolean | undefined | null,
101
+ public readonly details?: unknown[] | undefined | null,
104
102
  cause?: Error
105
103
  ) {
106
104
  super(message, cause);
107
105
  }
108
106
 
107
+ /**
108
+ * Create a new `ApplicationFailure` from an Error object.
109
+ *
110
+ * First calls {@link ensureApplicationFailure | `ensureApplicationFailure(error)`} and then overrides any fields
111
+ * provided in `overrides`.
112
+ */
113
+ public static fromError(error: Error | unknown, overrides?: ApplicationFailureOptions): ApplicationFailure {
114
+ const failure = ensureApplicationFailure(error);
115
+ Object.assign(failure, overrides);
116
+ return failure;
117
+ }
118
+
119
+ /**
120
+ * Create a new `ApplicationFailure`.
121
+ *
122
+ * By default, will be retryable (unless its `type` is included in {@link RetryPolicy.nonRetryableErrorTypes}).
123
+ */
124
+ public static create(options: ApplicationFailureOptions): ApplicationFailure {
125
+ const { message, type, nonRetryable = false, details, cause } = options;
126
+ return new this(message, type, nonRetryable, details, cause);
127
+ }
128
+
109
129
  /**
110
130
  * Get a new `ApplicationFailure` with the {@link nonRetryable} flag set to false. Note that this error will still
111
131
  * not be retried if its `type` is included in {@link RetryPolicy.nonRetryableErrorTypes}.
@@ -114,7 +134,7 @@ export class ApplicationFailure extends TemporalFailure {
114
134
  * @param type Optional error type (used by {@link RetryPolicy.nonRetryableErrorTypes})
115
135
  * @param details Optional details about the failure. Serialized by the Worker's {@link PayloadConverter}.
116
136
  */
117
- public static retryable(message: string | undefined, type?: string, ...details: unknown[]): ApplicationFailure {
137
+ public static retryable(message?: string | null, type?: string | null, ...details: unknown[]): ApplicationFailure {
118
138
  return new this(message, type ?? 'Error', false, details);
119
139
  }
120
140
 
@@ -128,11 +148,40 @@ export class ApplicationFailure extends TemporalFailure {
128
148
  * @param type Optional error type
129
149
  * @param details Optional details about the failure. Serialized by the Worker's {@link PayloadConverter}.
130
150
  */
131
- public static nonRetryable(message: string | undefined, type?: string, ...details: unknown[]): ApplicationFailure {
151
+ public static nonRetryable(message?: string | null, type?: string | null, ...details: unknown[]): ApplicationFailure {
132
152
  return new this(message, type ?? 'Error', true, details);
133
153
  }
134
154
  }
135
155
 
156
+ export interface ApplicationFailureOptions {
157
+ /**
158
+ * Error message
159
+ */
160
+ message?: string;
161
+
162
+ /**
163
+ * Error type (used by {@link RetryPolicy.nonRetryableErrorTypes})
164
+ */
165
+ type?: string;
166
+
167
+ /**
168
+ * Whether the current Activity or Workflow can be retried
169
+ *
170
+ * @default false
171
+ */
172
+ nonRetryable?: boolean;
173
+
174
+ /**
175
+ * Details about the failure. Serialized by the Worker's {@link PayloadConverter}.
176
+ */
177
+ details?: unknown[];
178
+
179
+ /**
180
+ * Cause of the failure
181
+ */
182
+ cause?: Error;
183
+ }
184
+
136
185
  /**
137
186
  * This error is thrown when Cancellation has been requested. To allow Cancellation to happen, let it propagate. To
138
187
  * ignore Cancellation, catch it and continue executing. Note that Cancellation can only be requested a single time, so
@@ -362,26 +411,24 @@ export function errorToFailure(err: unknown, payloadConverter: PayloadConverter)
362
411
  }
363
412
 
364
413
  /**
365
- * If `err` is an Error it is turned into an `ApplicationFailure`.
414
+ * If `error` is already an `ApplicationFailure`, returns `error`.
366
415
  *
367
- * If `err` was already a `ApplicationFailure`, returns the original error.
416
+ * Otherwise, converts `error` into an `ApplicationFailure` with:
368
417
  *
369
- * Otherwise returns an `ApplicationFailure` with `String(err)` as the message.
418
+ * - `message`: `error.message` or `String(error)`
419
+ * - `type`: `error.constructor.name` or `error.name`
420
+ * - `stack`: `error.stack` or `''`
370
421
  */
371
- export function ensureApplicationFailure(err: unknown): ApplicationFailure {
372
- if (err instanceof ApplicationFailure) {
373
- return err;
374
- }
375
- if (err instanceof Error) {
376
- const name = err.constructor?.name ?? err.name;
377
- const failure = new ApplicationFailure(err.message, name, false);
378
- failure.stack = err.stack;
379
- return failure;
380
- } else {
381
- const failure = new ApplicationFailure(String(err), undefined, false);
382
- failure.stack = '';
383
- return failure;
422
+ export function ensureApplicationFailure(error: unknown): ApplicationFailure {
423
+ if (error instanceof ApplicationFailure) {
424
+ return error;
384
425
  }
426
+
427
+ const message = (isRecord(error) && String(error.message)) || String(error);
428
+ const type = (isRecord(error) && (error.constructor?.name ?? error.name)) || undefined;
429
+ const failure = ApplicationFailure.create({ message, type, nonRetryable: false });
430
+ failure.stack = (isRecord(error) && String(error.stack)) || '';
431
+ return failure;
385
432
  }
386
433
 
387
434
  /**