@temporalio/common 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.
- package/lib/activity-options.d.ts +6 -1
- package/lib/activity-options.js.map +1 -1
- package/lib/converter/failure-converter.d.ts +3 -3
- package/lib/converter/failure-converter.js +3 -1
- package/lib/converter/failure-converter.js.map +1 -1
- package/lib/converter/payload-converter.d.ts +2 -15
- package/lib/converter/payload-converter.js +6 -69
- package/lib/converter/payload-converter.js.map +1 -1
- package/lib/converter/payload-search-attributes.d.ts +26 -0
- package/lib/converter/payload-search-attributes.js +171 -0
- package/lib/converter/payload-search-attributes.js.map +1 -0
- package/lib/converter/protobuf-payload-converters.js +3 -2
- package/lib/converter/protobuf-payload-converters.js.map +1 -1
- package/lib/errors.d.ts +2 -1
- package/lib/errors.js +6 -1
- package/lib/errors.js.map +1 -1
- package/lib/failure.d.ts +20 -1
- package/lib/failure.js +47 -5
- package/lib/failure.js.map +1 -1
- package/lib/index.d.ts +7 -0
- package/lib/index.js +9 -0
- package/lib/index.js.map +1 -1
- package/lib/interfaces.d.ts +0 -7
- package/lib/interfaces.js.map +1 -1
- package/lib/internal-non-workflow/codec-helpers.d.ts +2 -2
- package/lib/internal-non-workflow/codec-types.d.ts +1 -1
- package/lib/internal-non-workflow/index.d.ts +0 -1
- package/lib/internal-non-workflow/index.js +0 -1
- package/lib/internal-non-workflow/index.js.map +1 -1
- package/lib/internal-workflow/index.d.ts +1 -0
- package/lib/internal-workflow/index.js +1 -0
- package/lib/internal-workflow/index.js.map +1 -1
- package/lib/internal-workflow/objects-helpers.d.ts +15 -0
- package/lib/internal-workflow/objects-helpers.js +29 -0
- package/lib/internal-workflow/objects-helpers.js.map +1 -0
- package/lib/logger.d.ts +32 -0
- package/lib/logger.js +91 -1
- package/lib/logger.js.map +1 -1
- package/lib/metrics.d.ts +181 -0
- package/lib/metrics.js +240 -0
- package/lib/metrics.js.map +1 -0
- package/lib/priority.d.ts +36 -0
- package/lib/priority.js +27 -0
- package/lib/priority.js.map +1 -0
- package/lib/search-attributes.d.ts +77 -0
- package/lib/search-attributes.js +233 -0
- package/lib/search-attributes.js.map +1 -0
- package/lib/type-helpers.d.ts +5 -1
- package/lib/type-helpers.js +0 -22
- package/lib/type-helpers.js.map +1 -1
- package/lib/versioning-intent-enum.d.ts +1 -1
- package/lib/versioning-intent-enum.js +1 -1
- package/lib/versioning-intent.d.ts +1 -1
- package/lib/worker-deployments.d.ts +47 -0
- package/lib/worker-deployments.js +32 -0
- package/lib/worker-deployments.js.map +1 -0
- package/lib/workflow-definition-options.d.ts +18 -0
- package/lib/workflow-definition-options.js +3 -0
- package/lib/workflow-definition-options.js.map +1 -0
- package/lib/workflow-options.d.ts +22 -2
- package/lib/workflow-options.js.map +1 -1
- package/package.json +6 -3
- package/src/activity-options.ts +7 -1
- package/src/converter/failure-converter.ts +9 -4
- package/src/converter/payload-converter.ts +7 -71
- package/src/converter/payload-search-attributes.ts +220 -0
- package/src/errors.ts +2 -1
- package/src/failure.ts +38 -3
- package/src/index.ts +13 -0
- package/src/interfaces.ts +0 -8
- package/src/internal-non-workflow/codec-helpers.ts +2 -2
- package/src/internal-non-workflow/codec-types.ts +10 -8
- package/src/internal-non-workflow/index.ts +0 -1
- package/src/internal-workflow/index.ts +1 -0
- package/src/internal-workflow/objects-helpers.ts +37 -0
- package/src/logger.ts +108 -0
- package/src/metrics.ts +443 -0
- package/src/priority.ts +54 -0
- package/src/search-attributes.ts +292 -0
- package/src/type-helpers.ts +11 -23
- package/src/versioning-intent-enum.ts +1 -1
- package/src/versioning-intent.ts +1 -1
- package/src/worker-deployments.ts +70 -0
- package/src/workflow-definition-options.ts +20 -0
- package/src/workflow-options.ts +27 -3
- package/lib/internal-non-workflow/utils.d.ts +0 -4
- package/lib/internal-non-workflow/utils.js +0 -10
- package/lib/internal-non-workflow/utils.js.map +0 -1
- package/src/internal-non-workflow/utils.ts +0 -6
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.TypedSearchAttributes = exports.TypedSearchAttributeUpdateValue = exports.TypedSearchAttributeValue = exports._ = exports.encodeSearchAttributeIndexedValueType = exports.SearchAttributeType = void 0;
|
|
5
|
+
exports.isValidValueForType = isValidValueForType;
|
|
6
|
+
exports.defineSearchAttributeKey = defineSearchAttributeKey;
|
|
7
|
+
const internal_workflow_1 = require("./internal-workflow");
|
|
8
|
+
exports.SearchAttributeType = {
|
|
9
|
+
TEXT: 'TEXT',
|
|
10
|
+
KEYWORD: 'KEYWORD',
|
|
11
|
+
INT: 'INT',
|
|
12
|
+
DOUBLE: 'DOUBLE',
|
|
13
|
+
BOOL: 'BOOL',
|
|
14
|
+
DATETIME: 'DATETIME',
|
|
15
|
+
KEYWORD_LIST: 'KEYWORD_LIST',
|
|
16
|
+
};
|
|
17
|
+
// Note: encodeSearchAttributeIndexedValueType exported for use in tests to register search attributes
|
|
18
|
+
// ts-prune-ignore-next
|
|
19
|
+
_a = (0, internal_workflow_1.makeProtoEnumConverters)({
|
|
20
|
+
[exports.SearchAttributeType.TEXT]: 1,
|
|
21
|
+
[exports.SearchAttributeType.KEYWORD]: 2,
|
|
22
|
+
[exports.SearchAttributeType.INT]: 3,
|
|
23
|
+
[exports.SearchAttributeType.DOUBLE]: 4,
|
|
24
|
+
[exports.SearchAttributeType.BOOL]: 5,
|
|
25
|
+
[exports.SearchAttributeType.DATETIME]: 6,
|
|
26
|
+
[exports.SearchAttributeType.KEYWORD_LIST]: 7,
|
|
27
|
+
UNSPECIFIED: 0,
|
|
28
|
+
}, 'INDEXED_VALUE_TYPE_'), exports.encodeSearchAttributeIndexedValueType = _a[0], exports._ = _a[1];
|
|
29
|
+
function isValidValueForType(type, value) {
|
|
30
|
+
switch (type) {
|
|
31
|
+
case exports.SearchAttributeType.TEXT:
|
|
32
|
+
case exports.SearchAttributeType.KEYWORD:
|
|
33
|
+
return typeof value === 'string';
|
|
34
|
+
case exports.SearchAttributeType.INT:
|
|
35
|
+
return Number.isInteger(value);
|
|
36
|
+
case exports.SearchAttributeType.DOUBLE:
|
|
37
|
+
return typeof value === 'number';
|
|
38
|
+
case exports.SearchAttributeType.BOOL:
|
|
39
|
+
return typeof value === 'boolean';
|
|
40
|
+
case exports.SearchAttributeType.DATETIME:
|
|
41
|
+
return value instanceof Date;
|
|
42
|
+
case exports.SearchAttributeType.KEYWORD_LIST:
|
|
43
|
+
return Array.isArray(value) && value.every((item) => typeof item === 'string');
|
|
44
|
+
default:
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function defineSearchAttributeKey(name, type) {
|
|
49
|
+
return { name, type };
|
|
50
|
+
}
|
|
51
|
+
class BaseSearchAttributeValue {
|
|
52
|
+
_type;
|
|
53
|
+
_value;
|
|
54
|
+
constructor(type, value) {
|
|
55
|
+
this._type = type;
|
|
56
|
+
this._value = value;
|
|
57
|
+
}
|
|
58
|
+
get type() {
|
|
59
|
+
return this._type;
|
|
60
|
+
}
|
|
61
|
+
get value() {
|
|
62
|
+
return this._value;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
// Internal type for class private data.
|
|
66
|
+
// Exported for use in payload conversion.
|
|
67
|
+
class TypedSearchAttributeValue extends BaseSearchAttributeValue {
|
|
68
|
+
}
|
|
69
|
+
exports.TypedSearchAttributeValue = TypedSearchAttributeValue;
|
|
70
|
+
// ts-prune-ignore-next
|
|
71
|
+
class TypedSearchAttributeUpdateValue extends BaseSearchAttributeValue {
|
|
72
|
+
}
|
|
73
|
+
exports.TypedSearchAttributeUpdateValue = TypedSearchAttributeUpdateValue;
|
|
74
|
+
class TypedSearchAttributes {
|
|
75
|
+
searchAttributes = {};
|
|
76
|
+
constructor(initialAttributes) {
|
|
77
|
+
if (initialAttributes === undefined)
|
|
78
|
+
return;
|
|
79
|
+
for (const pair of initialAttributes) {
|
|
80
|
+
if (pair.key.name in this.searchAttributes) {
|
|
81
|
+
throw new Error(`Duplicate search attribute key: ${pair.key.name}`);
|
|
82
|
+
}
|
|
83
|
+
this.searchAttributes[pair.key.name] = new TypedSearchAttributeValue(pair.key.type, pair.value);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
get(key) {
|
|
87
|
+
const attr = this.searchAttributes[key.name];
|
|
88
|
+
// Key not found or type mismatch.
|
|
89
|
+
if (attr === undefined || !isValidValueForType(key.type, attr.value)) {
|
|
90
|
+
return undefined;
|
|
91
|
+
}
|
|
92
|
+
return attr.value;
|
|
93
|
+
}
|
|
94
|
+
/** Returns a deep copy of the given TypedSearchAttributes instance */
|
|
95
|
+
copy() {
|
|
96
|
+
const state = {};
|
|
97
|
+
for (const [key, attr] of Object.entries(this.searchAttributes)) {
|
|
98
|
+
// Create a new instance with the same properties
|
|
99
|
+
let value = attr.value;
|
|
100
|
+
// For non-primitive types, create a deep copy
|
|
101
|
+
if (attr.value instanceof Date) {
|
|
102
|
+
value = new Date(attr.value);
|
|
103
|
+
}
|
|
104
|
+
else if (Array.isArray(attr.value)) {
|
|
105
|
+
value = [...attr.value];
|
|
106
|
+
}
|
|
107
|
+
state[key] = new TypedSearchAttributeValue(attr.type, value);
|
|
108
|
+
}
|
|
109
|
+
// Create return value with manually assigned state.
|
|
110
|
+
const res = new TypedSearchAttributes();
|
|
111
|
+
res.searchAttributes = state;
|
|
112
|
+
return res;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* @hidden
|
|
116
|
+
* Return JSON representation of this class as SearchAttributePair[]
|
|
117
|
+
* Default toJSON method is not used because it's JSON representation includes private state.
|
|
118
|
+
*/
|
|
119
|
+
toJSON() {
|
|
120
|
+
return this.getAll();
|
|
121
|
+
}
|
|
122
|
+
/** Returns a copy of the current TypedSearchAttributes instance with the updated attributes. */
|
|
123
|
+
updateCopy(updates) {
|
|
124
|
+
// Create a deep copy of the current instance.
|
|
125
|
+
const res = this.copy();
|
|
126
|
+
// Apply updates.
|
|
127
|
+
res.update(updates);
|
|
128
|
+
return res;
|
|
129
|
+
}
|
|
130
|
+
// Performs direct mutation on the current instance.
|
|
131
|
+
update(updates) {
|
|
132
|
+
// Apply updates.
|
|
133
|
+
for (const pair of updates) {
|
|
134
|
+
// Delete attribute.
|
|
135
|
+
if (pair.value === null) {
|
|
136
|
+
// Delete only if the update matches a key and type.
|
|
137
|
+
const attrVal = this.searchAttributes[pair.key.name];
|
|
138
|
+
if (attrVal && attrVal.type === pair.key.type) {
|
|
139
|
+
delete this.searchAttributes[pair.key.name];
|
|
140
|
+
}
|
|
141
|
+
continue;
|
|
142
|
+
}
|
|
143
|
+
// Add or update attribute.
|
|
144
|
+
this.searchAttributes[pair.key.name] = new TypedSearchAttributeValue(pair.key.type, pair.value);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
getAll() {
|
|
148
|
+
const res = [];
|
|
149
|
+
for (const [key, attr] of Object.entries(this.searchAttributes)) {
|
|
150
|
+
const attrKey = { name: key, type: attr.type };
|
|
151
|
+
// Sanity check, should always be legal.
|
|
152
|
+
if (isValidValueForType(attrKey.type, attr.value)) {
|
|
153
|
+
res.push({ key: attrKey, value: attr.value });
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
return res;
|
|
157
|
+
}
|
|
158
|
+
static getKeyFromUntyped(key, value // eslint-disable-line deprecation/deprecation
|
|
159
|
+
) {
|
|
160
|
+
if (value == null) {
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
// Unpack single-element arrays.
|
|
164
|
+
const val = value.length === 1 ? value[0] : value;
|
|
165
|
+
switch (typeof val) {
|
|
166
|
+
case 'string':
|
|
167
|
+
// Check if val is an ISO string, if so, return a DATETIME key.
|
|
168
|
+
if (!isNaN(Date.parse(val)) && Date.parse(val) === new Date(val).getTime()) {
|
|
169
|
+
return { name: key, type: exports.SearchAttributeType.DATETIME };
|
|
170
|
+
}
|
|
171
|
+
return { name: key, type: exports.SearchAttributeType.TEXT };
|
|
172
|
+
case 'number':
|
|
173
|
+
return {
|
|
174
|
+
name: key,
|
|
175
|
+
type: Number.isInteger(val) ? exports.SearchAttributeType.INT : exports.SearchAttributeType.DOUBLE,
|
|
176
|
+
};
|
|
177
|
+
case 'boolean':
|
|
178
|
+
return { name: key, type: exports.SearchAttributeType.BOOL };
|
|
179
|
+
case 'object':
|
|
180
|
+
if (val instanceof Date) {
|
|
181
|
+
return { name: key, type: exports.SearchAttributeType.DATETIME };
|
|
182
|
+
}
|
|
183
|
+
if (Array.isArray(val) && val.every((item) => typeof item === 'string')) {
|
|
184
|
+
return { name: key, type: exports.SearchAttributeType.KEYWORD_LIST };
|
|
185
|
+
}
|
|
186
|
+
return;
|
|
187
|
+
default:
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
static toMetadataType(type) {
|
|
192
|
+
switch (type) {
|
|
193
|
+
case exports.SearchAttributeType.TEXT:
|
|
194
|
+
return 'Text';
|
|
195
|
+
case exports.SearchAttributeType.KEYWORD:
|
|
196
|
+
return 'Keyword';
|
|
197
|
+
case exports.SearchAttributeType.INT:
|
|
198
|
+
return 'Int';
|
|
199
|
+
case exports.SearchAttributeType.DOUBLE:
|
|
200
|
+
return 'Double';
|
|
201
|
+
case exports.SearchAttributeType.BOOL:
|
|
202
|
+
return 'Bool';
|
|
203
|
+
case exports.SearchAttributeType.DATETIME:
|
|
204
|
+
return 'Datetime';
|
|
205
|
+
case exports.SearchAttributeType.KEYWORD_LIST:
|
|
206
|
+
return 'KeywordList';
|
|
207
|
+
default:
|
|
208
|
+
throw new Error(`Unknown search attribute type: ${type}`);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
static toSearchAttributeType(type) {
|
|
212
|
+
switch (type) {
|
|
213
|
+
case 'Text':
|
|
214
|
+
return exports.SearchAttributeType.TEXT;
|
|
215
|
+
case 'Keyword':
|
|
216
|
+
return exports.SearchAttributeType.KEYWORD;
|
|
217
|
+
case 'Int':
|
|
218
|
+
return exports.SearchAttributeType.INT;
|
|
219
|
+
case 'Double':
|
|
220
|
+
return exports.SearchAttributeType.DOUBLE;
|
|
221
|
+
case 'Bool':
|
|
222
|
+
return exports.SearchAttributeType.BOOL;
|
|
223
|
+
case 'Datetime':
|
|
224
|
+
return exports.SearchAttributeType.DATETIME;
|
|
225
|
+
case 'KeywordList':
|
|
226
|
+
return exports.SearchAttributeType.KEYWORD_LIST;
|
|
227
|
+
default:
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
exports.TypedSearchAttributes = TypedSearchAttributes;
|
|
233
|
+
//# sourceMappingURL=search-attributes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-attributes.js","sourceRoot":"","sources":["../src/search-attributes.ts"],"names":[],"mappings":"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"}
|
package/lib/type-helpers.d.ts
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
|
+
export type NonNullableObject<T> = {
|
|
2
|
+
[P in keyof T]-?: NonNullable<T[P]>;
|
|
3
|
+
};
|
|
1
4
|
/** Shorthand alias */
|
|
2
5
|
export type AnyFunc = (...args: any[]) => any;
|
|
3
6
|
/** A tuple without its last element */
|
|
4
7
|
export type OmitLast<T> = T extends [...infer REST, any] ? REST : never;
|
|
5
8
|
/** F with all arguments but the last */
|
|
6
9
|
export type OmitLastParam<F extends AnyFunc> = (...args: OmitLast<Parameters<F>>) => ReturnType<F>;
|
|
10
|
+
export type OmitFirst<T> = T extends [any, ...infer REST] ? REST : never;
|
|
11
|
+
export type OmitFirstParam<T> = T extends (...args: any[]) => any ? (...args: OmitFirst<Parameters<T>>) => ReturnType<T> : never;
|
|
7
12
|
/** Require that T has at least one of the provided properties defined */
|
|
8
13
|
export type RequireAtLeastOne<T, Keys extends keyof T = keyof T> = Pick<T, Exclude<keyof T, Keys>> & {
|
|
9
14
|
[K in Keys]-?: Required<Pick<T, K>> & Partial<Pick<T, Exclude<Keys, K>>>;
|
|
@@ -76,5 +81,4 @@ export type Class<E extends Error> = {
|
|
|
76
81
|
* checking for the presence of that symbol.
|
|
77
82
|
*/
|
|
78
83
|
export declare function SymbolBasedInstanceOfError<E extends Error>(markerName: string): (clazz: Class<E>) => void;
|
|
79
|
-
export declare function deepFreeze<T>(object: T): T;
|
|
80
84
|
export {};
|
package/lib/type-helpers.js
CHANGED
|
@@ -10,7 +10,6 @@ exports.errorMessage = errorMessage;
|
|
|
10
10
|
exports.errorCode = errorCode;
|
|
11
11
|
exports.assertNever = assertNever;
|
|
12
12
|
exports.SymbolBasedInstanceOfError = SymbolBasedInstanceOfError;
|
|
13
|
-
exports.deepFreeze = deepFreeze;
|
|
14
13
|
/** Verify that an type _Copy extends _Orig */
|
|
15
14
|
function checkExtends() {
|
|
16
15
|
// noop, just type check
|
|
@@ -112,25 +111,4 @@ function SymbolBasedInstanceOfError(markerName) {
|
|
|
112
111
|
});
|
|
113
112
|
};
|
|
114
113
|
}
|
|
115
|
-
// Thanks MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze
|
|
116
|
-
function deepFreeze(object) {
|
|
117
|
-
// Retrieve the property names defined on object
|
|
118
|
-
const propNames = Object.getOwnPropertyNames(object);
|
|
119
|
-
// Freeze properties before freezing self
|
|
120
|
-
for (const name of propNames) {
|
|
121
|
-
const value = object[name];
|
|
122
|
-
if (value && typeof value === 'object') {
|
|
123
|
-
try {
|
|
124
|
-
deepFreeze(value);
|
|
125
|
-
}
|
|
126
|
-
catch (_err) {
|
|
127
|
-
// This is okay, there are some typed arrays that cannot be frozen (encodingKeys)
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
else if (typeof value === 'function') {
|
|
131
|
-
Object.freeze(value);
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
return Object.freeze(object);
|
|
135
|
-
}
|
|
136
114
|
//# sourceMappingURL=type-helpers.js.map
|
package/lib/type-helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-helpers.js","sourceRoot":"","sources":["../src/type-helpers.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"type-helpers.js","sourceRoot":"","sources":["../src/type-helpers.ts"],"names":[],"mappings":";;AAwBA,oCAEC;AAkFD,4BAEC;AAED,wCAKC;AAED,4CAKC;AAED,0BAOC;AAED,oCAEC;AAKD,oCAOC;AAaD,8BAMC;AAKD,kCAEC;AA+BD,gEAwBC;AA/MD,8CAA8C;AAC9C,SAAgB,YAAY;IAC1B,wBAAwB;AAC1B,CAAC;AAkFD,SAAgB,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,SAAgB,cAAc,CAC5B,MAAS,EACT,IAAO;IAEP,OAAO,IAAI,IAAI,MAAM,CAAC;AACxB,CAAC;AAED,SAAgB,gBAAgB,CAC9B,MAAS,EACT,KAAU;IAEV,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC;AAC/C,CAAC;AAED,SAAgB,OAAO,CAAC,KAAc;IACpC,OAAO,CACL,QAAQ,CAAC,KAAK,CAAC;QACf,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAC9B,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;QACjC,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CACzD,CAAC;AACJ,CAAC;AAED,SAAgB,YAAY,CAAC,KAAc;IACzC,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC;AACvD,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,KAAc;IACzC,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAMD,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,SAAgB,SAAS,CAAC,KAAc;IACtC,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,IAAI,CAAC;IACpB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,GAAW,EAAE,CAAQ;IAC/C,MAAM,IAAI,SAAS,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;AACtC,CAAC;AAOD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,SAAgB,0BAA0B,CAAkB,UAAkB;IAC5E,OAAO,CAAC,KAAe,EAAQ,EAAE;QAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,UAAU,EAAE,CAAC,CAAC;QAExD,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QACxF,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QACnF,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE;YAC/C,4CAA4C;YAC5C,KAAK,EAAE,UAAqB,KAAa;gBACvC,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;oBACnB,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAK,KAAa,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;gBAC5D,CAAC;qBAAM,CAAC;oBACN,yGAAyG;oBACzG,wFAAwF;oBACxF,0GAA0G;oBAC1G,EAAE;oBACF,yGAAyG;oBACzG,4GAA4G;oBAC5G,4CAA4C;oBAC5C,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,4CAA4C;gBAC1F,CAAC;YACH,CAAC;SACF,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -2,7 +2,7 @@ import type { VersioningIntent as VersioningIntentString } from './versioning-in
|
|
|
2
2
|
/**
|
|
3
3
|
* Protobuf enum representation of {@link VersioningIntentString}.
|
|
4
4
|
*
|
|
5
|
-
* @experimental
|
|
5
|
+
* @experimental The Worker Versioning API is still being designed. Major changes are expected.
|
|
6
6
|
*/
|
|
7
7
|
export declare enum VersioningIntent {
|
|
8
8
|
UNSPECIFIED = 0,
|
|
@@ -8,7 +8,7 @@ const type_helpers_1 = require("./type-helpers");
|
|
|
8
8
|
/**
|
|
9
9
|
* Protobuf enum representation of {@link VersioningIntentString}.
|
|
10
10
|
*
|
|
11
|
-
* @experimental
|
|
11
|
+
* @experimental The Worker Versioning API is still being designed. Major changes are expected.
|
|
12
12
|
*/
|
|
13
13
|
var VersioningIntent;
|
|
14
14
|
(function (VersioningIntent) {
|
|
@@ -11,6 +11,6 @@
|
|
|
11
11
|
* current worker. The default behavior for starting Workflows is `DEFAULT`. The default behavior for Workflows starting
|
|
12
12
|
* Activities, starting Child Workflows, or Continuing As New is `COMPATIBLE`.
|
|
13
13
|
*
|
|
14
|
-
* @experimental
|
|
14
|
+
* @experimental The Worker Versioning API is still being designed. Major changes are expected.
|
|
15
15
|
*/
|
|
16
16
|
export type VersioningIntent = 'COMPATIBLE' | 'DEFAULT';
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { temporal } from '@temporalio/proto';
|
|
2
|
+
/**
|
|
3
|
+
* Represents the version of a specific worker deployment.
|
|
4
|
+
*
|
|
5
|
+
* @experimental Deployment based versioning is experimental and may change in the future.
|
|
6
|
+
*/
|
|
7
|
+
export interface WorkerDeploymentVersion {
|
|
8
|
+
readonly buildId: string;
|
|
9
|
+
readonly deploymentName: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* @returns The canonical representation of a deployment version, which is a string in the format
|
|
13
|
+
* `deploymentName.buildId`.
|
|
14
|
+
*/
|
|
15
|
+
export declare function toCanonicalString(version: WorkerDeploymentVersion): string;
|
|
16
|
+
/**
|
|
17
|
+
* Specifies when a workflow might move from a worker of one Build Id to another.
|
|
18
|
+
*
|
|
19
|
+
* * 'PINNED' - The workflow will be pinned to the current Build ID unless manually moved.
|
|
20
|
+
* * 'AUTO_UPGRADE' - The workflow will automatically move to the latest version (default Build ID
|
|
21
|
+
* of the task queue) when the next task is dispatched.
|
|
22
|
+
*
|
|
23
|
+
* @experimental Deployment based versioning is experimental and may change in the future.
|
|
24
|
+
*/
|
|
25
|
+
export declare const VersioningBehavior: {
|
|
26
|
+
readonly PINNED: "PINNED";
|
|
27
|
+
readonly AUTO_UPGRADE: "AUTO_UPGRADE";
|
|
28
|
+
};
|
|
29
|
+
export type VersioningBehavior = (typeof VersioningBehavior)[keyof typeof VersioningBehavior];
|
|
30
|
+
export declare const encodeVersioningBehavior: (input: "PINNED" | "AUTO_UPGRADE" | temporal.api.enums.v1.VersioningBehavior | "VERSIONING_BEHAVIOR_PINNED" | "VERSIONING_BEHAVIOR_AUTO_UPGRADE" | null | undefined) => temporal.api.enums.v1.VersioningBehavior | undefined, decodeVersioningBehavior: (input: temporal.api.enums.v1.VersioningBehavior | null | undefined) => "PINNED" | "AUTO_UPGRADE" | undefined;
|
|
31
|
+
/**
|
|
32
|
+
* Represents versioning overrides. For example, when starting workflows.
|
|
33
|
+
*/
|
|
34
|
+
export type VersioningOverride = PinnedVersioningOverride | 'AUTO_UPGRADE';
|
|
35
|
+
/**
|
|
36
|
+
* Workflow will be pinned to a specific deployment version.
|
|
37
|
+
*/
|
|
38
|
+
export interface PinnedVersioningOverride {
|
|
39
|
+
/**
|
|
40
|
+
* The worker deployment version to pin the workflow to.
|
|
41
|
+
*/
|
|
42
|
+
pinnedTo: WorkerDeploymentVersion;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* The workflow will auto-upgrade to the current deployment version on the next workflow task.
|
|
46
|
+
*/
|
|
47
|
+
export type AutoUpgradeVersioningOverride = 'AUTO_UPGRADE';
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.decodeVersioningBehavior = exports.encodeVersioningBehavior = exports.VersioningBehavior = void 0;
|
|
5
|
+
exports.toCanonicalString = toCanonicalString;
|
|
6
|
+
const internal_workflow_1 = require("./internal-workflow");
|
|
7
|
+
/**
|
|
8
|
+
* @returns The canonical representation of a deployment version, which is a string in the format
|
|
9
|
+
* `deploymentName.buildId`.
|
|
10
|
+
*/
|
|
11
|
+
function toCanonicalString(version) {
|
|
12
|
+
return `${version.deploymentName}.${version.buildId}`;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Specifies when a workflow might move from a worker of one Build Id to another.
|
|
16
|
+
*
|
|
17
|
+
* * 'PINNED' - The workflow will be pinned to the current Build ID unless manually moved.
|
|
18
|
+
* * 'AUTO_UPGRADE' - The workflow will automatically move to the latest version (default Build ID
|
|
19
|
+
* of the task queue) when the next task is dispatched.
|
|
20
|
+
*
|
|
21
|
+
* @experimental Deployment based versioning is experimental and may change in the future.
|
|
22
|
+
*/
|
|
23
|
+
exports.VersioningBehavior = {
|
|
24
|
+
PINNED: 'PINNED',
|
|
25
|
+
AUTO_UPGRADE: 'AUTO_UPGRADE',
|
|
26
|
+
};
|
|
27
|
+
_a = (0, internal_workflow_1.makeProtoEnumConverters)({
|
|
28
|
+
[exports.VersioningBehavior.PINNED]: 1,
|
|
29
|
+
[exports.VersioningBehavior.AUTO_UPGRADE]: 2,
|
|
30
|
+
UNSPECIFIED: 0,
|
|
31
|
+
}, 'VERSIONING_BEHAVIOR_'), exports.encodeVersioningBehavior = _a[0], exports.decodeVersioningBehavior = _a[1];
|
|
32
|
+
//# sourceMappingURL=worker-deployments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker-deployments.js","sourceRoot":"","sources":["../src/worker-deployments.ts"],"names":[],"mappings":";;;;AAiBA,8CAEC;AAlBD,2DAA8D;AAY9D;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,OAAgC;IAChE,OAAO,GAAG,OAAO,CAAC,cAAc,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;AACxD,CAAC;AAED;;;;;;;;GAQG;AACU,QAAA,kBAAkB,GAAG;IAChC,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,cAAc;CACpB,CAAC;AAGE,KAAuD,IAAA,2CAAuB,EAOzF;IACE,CAAC,0BAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;IAC9B,CAAC,0BAAkB,CAAC,YAAY,CAAC,EAAE,CAAC;IACpC,WAAW,EAAE,CAAC;CACN,EACV,sBAAsB,CACvB,EAba,gCAAwB,UAAE,gCAAwB,SAa9D"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { VersioningBehavior } from './worker-deployments';
|
|
2
|
+
/**
|
|
3
|
+
* Options that can be used when defining a workflow via {@link setWorkflowOptions}.
|
|
4
|
+
*/
|
|
5
|
+
export interface WorkflowDefinitionOptions {
|
|
6
|
+
versioningBehavior?: VersioningBehavior;
|
|
7
|
+
}
|
|
8
|
+
type AsyncFunction<Args extends any[], ReturnType> = (...args: Args) => Promise<ReturnType>;
|
|
9
|
+
export type WorkflowDefinitionOptionsOrGetter = WorkflowDefinitionOptions | (() => WorkflowDefinitionOptions);
|
|
10
|
+
/**
|
|
11
|
+
* @internal
|
|
12
|
+
* @hidden
|
|
13
|
+
* A workflow function that has been defined with options from {@link WorkflowDefinitionOptions}.
|
|
14
|
+
*/
|
|
15
|
+
export interface WorkflowFunctionWithOptions<Args extends any[], ReturnType> extends AsyncFunction<Args, ReturnType> {
|
|
16
|
+
workflowDefinitionOptions: WorkflowDefinitionOptionsOrGetter;
|
|
17
|
+
}
|
|
18
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-definition-options.js","sourceRoot":"","sources":["../src/workflow-definition-options.ts"],"names":[],"mappings":""}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import type { temporal } from '@temporalio/proto';
|
|
2
|
-
import {
|
|
2
|
+
import { Workflow } from './interfaces';
|
|
3
3
|
import { RetryPolicy } from './retry-policy';
|
|
4
4
|
import { Duration } from './time';
|
|
5
|
+
import { SearchAttributePair, SearchAttributes, TypedSearchAttributes } from './search-attributes';
|
|
6
|
+
import { Priority } from './priority';
|
|
7
|
+
import { WorkflowFunctionWithOptions } from './workflow-definition-options';
|
|
5
8
|
/**
|
|
6
9
|
* Defines what happens when trying to start a Workflow with the same ID as a *Closed* Workflow.
|
|
7
10
|
*
|
|
@@ -121,8 +124,25 @@ export interface BaseWorkflowOptions {
|
|
|
121
124
|
* https://docs.temporal.io/docs/typescript/search-attributes
|
|
122
125
|
*
|
|
123
126
|
* Values are always converted using {@link JsonPayloadConverter}, even when a custom data converter is provided.
|
|
127
|
+
*
|
|
128
|
+
* @deprecated Use {@link typedSearchAttributes} instead.
|
|
124
129
|
*/
|
|
125
130
|
searchAttributes?: SearchAttributes;
|
|
131
|
+
/**
|
|
132
|
+
* Specifies additional indexed information to attach to the Workflow Execution. More info:
|
|
133
|
+
* https://docs.temporal.io/docs/typescript/search-attributes
|
|
134
|
+
*
|
|
135
|
+
* Values are always converted using {@link JsonPayloadConverter}, even when a custom data converter is provided.
|
|
136
|
+
* Note that search attributes are not encoded, as such, do not include any sensitive information.
|
|
137
|
+
*
|
|
138
|
+
* If both {@link searchAttributes} and {@link typedSearchAttributes} are provided, conflicting keys will be overwritten
|
|
139
|
+
* by {@link typedSearchAttributes}.
|
|
140
|
+
*/
|
|
141
|
+
typedSearchAttributes?: SearchAttributePair[] | TypedSearchAttributes;
|
|
142
|
+
/**
|
|
143
|
+
* Priority of a workflow
|
|
144
|
+
*/
|
|
145
|
+
priority?: Priority;
|
|
126
146
|
}
|
|
127
147
|
export type WithWorkflowArgs<W extends Workflow, T> = T & (Parameters<W> extends [any, ...any[]] ? {
|
|
128
148
|
/**
|
|
@@ -161,4 +181,4 @@ export interface WorkflowDurationOptions {
|
|
|
161
181
|
workflowTaskTimeout?: Duration;
|
|
162
182
|
}
|
|
163
183
|
export type CommonWorkflowOptions = BaseWorkflowOptions & WorkflowDurationOptions;
|
|
164
|
-
export declare function extractWorkflowType<T extends Workflow>(workflowTypeOrFunc: string | T): string;
|
|
184
|
+
export declare function extractWorkflowType<T extends Workflow>(workflowTypeOrFunc: string | T | WorkflowFunctionWithOptions<any[], any>): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-options.js","sourceRoot":"","sources":["../src/workflow-options.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"workflow-options.js","sourceRoot":"","sources":["../src/workflow-options.ts"],"names":[],"mappings":";;;;AAsPA,kDAWC;AA7PD,2DAA8D;AAK9D;;;;;;;;;;GAUG;AACU,QAAA,qBAAqB,GAAG;IACnC;;;OAGG;IACH,eAAe,EAAE,iBAAiB;IAElC;;OAEG;IACH,2BAA2B,EAAE,6BAA6B;IAE1D;;OAEG;IACH,gBAAgB,EAAE,kBAAkB;IAEpC;;;;;;;OAOG;IACH,oBAAoB,EAAE,sBAAsB,EAAE,8CAA8C;IAE5F,gDAAgD;IAEhD;;;;OAIG;IACH,oCAAoC,EAAE,SAAS,EAAE,8CAA8C;IAE/F,uDAAuD;IACvD,wCAAwC,EAAE,iBAAiB,EAAE,8CAA8C;IAE3G,mEAAmE;IACnE,oDAAoD,EAAE,6BAA6B,EAAE,8CAA8C;IAEnI,wDAAwD;IACxD,yCAAyC,EAAE,kBAAkB,EAAE,8CAA8C;IAE7G,4DAA4D;IAC5D,6CAA6C,EAAE,sBAAsB,EAAE,8CAA8C;CAC7G,CAAC;AAGE,KAA6D,IAAA,2CAAuB,EAO/F;IACE,CAAC,6BAAqB,CAAC,eAAe,CAAC,EAAE,CAAC;IAC1C,CAAC,6BAAqB,CAAC,2BAA2B,CAAC,EAAE,CAAC;IACtD,CAAC,6BAAqB,CAAC,gBAAgB,CAAC,EAAE,CAAC;IAC3C,CAAC,6BAAqB,CAAC,oBAAoB,CAAC,EAAE,CAAC,EAAE,8CAA8C;IAC/F,WAAW,EAAE,CAAC;CACN,EACV,2BAA2B,CAC5B,EAfa,mCAA2B,UAAE,mCAA2B,SAepE;AAWW,QAAA,wBAAwB,GAAG;IACtC;;OAEG;IACH,IAAI,EAAE,MAAM;IAEZ;;OAEG;IACH,YAAY,EAAE,cAAc;IAE5B;;OAEG;IACH,kBAAkB,EAAE,oBAAoB;CAChC,CAAC;AAEE,KAAmE,IAAA,2CAAuB,EAOrG;IACE,CAAC,gCAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;IAClC,CAAC,gCAAwB,CAAC,YAAY,CAAC,EAAE,CAAC;IAC1C,CAAC,gCAAwB,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAChD,WAAW,EAAE,CAAC;CACN,EACV,8BAA8B,CAC/B,EAda,sCAA8B,UAAE,sCAA8B,SAc1E;AAuHF,SAAgB,mBAAmB,CACjC,kBAAwE;IAExE,IAAI,OAAO,kBAAkB,KAAK,QAAQ;QAAE,OAAO,kBAA4B,CAAC;IAChF,IAAI,OAAO,kBAAkB,KAAK,UAAU,EAAE,CAAC;QAC7C,IAAI,kBAAkB,EAAE,IAAI;YAAE,OAAO,kBAAkB,CAAC,IAAI,CAAC;QAC7D,MAAM,IAAI,SAAS,CAAC,2DAA2D,CAAC,CAAC;IACnF,CAAC;IACD,MAAM,IAAI,SAAS,CACjB,uEAAuE,OAAO,kBAAkB,GAAG,CACpG,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@temporalio/common",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.12.0-rc.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",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"author": "Temporal Technologies Inc. <sdk@temporal.io>",
|
|
13
13
|
"license": "MIT",
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@temporalio/proto": "1.
|
|
15
|
+
"@temporalio/proto": "1.12.0-rc.0",
|
|
16
16
|
"long": "^5.2.3",
|
|
17
17
|
"ms": "^3.0.0-canary.1",
|
|
18
18
|
"proto3-json-serializer": "^2.0.0"
|
|
@@ -32,9 +32,12 @@
|
|
|
32
32
|
"publishConfig": {
|
|
33
33
|
"access": "public"
|
|
34
34
|
},
|
|
35
|
+
"engines": {
|
|
36
|
+
"node": ">= 18.0.0"
|
|
37
|
+
},
|
|
35
38
|
"files": [
|
|
36
39
|
"src",
|
|
37
40
|
"lib"
|
|
38
41
|
],
|
|
39
|
-
"gitHead": "
|
|
42
|
+
"gitHead": "3e02f59f5c3edbdd3a4d05bc77c3bee9dbdc1226"
|
|
40
43
|
}
|
package/src/activity-options.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { RetryPolicy } from './retry-policy';
|
|
|
3
3
|
import { Duration } from './time';
|
|
4
4
|
import { VersioningIntent } from './versioning-intent';
|
|
5
5
|
import { makeProtoEnumConverters } from './internal-workflow';
|
|
6
|
+
import { Priority } from './priority';
|
|
6
7
|
|
|
7
8
|
export const ActivityCancellationType = {
|
|
8
9
|
TRY_CANCEL: 'TRY_CANCEL',
|
|
@@ -119,9 +120,14 @@ export interface ActivityOptions {
|
|
|
119
120
|
*
|
|
120
121
|
* @default 'COMPATIBLE'
|
|
121
122
|
*
|
|
122
|
-
* @experimental
|
|
123
|
+
* @experimental The Worker Versioning API is still being designed. Major changes are expected.
|
|
123
124
|
*/
|
|
124
125
|
versioningIntent?: VersioningIntent;
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Priority of this activity
|
|
129
|
+
*/
|
|
130
|
+
priority?: Priority;
|
|
125
131
|
}
|
|
126
132
|
|
|
127
133
|
/**
|
|
@@ -3,8 +3,10 @@ import {
|
|
|
3
3
|
ApplicationFailure,
|
|
4
4
|
CancelledFailure,
|
|
5
5
|
ChildWorkflowFailure,
|
|
6
|
+
decodeApplicationFailureCategory,
|
|
6
7
|
decodeRetryState,
|
|
7
8
|
decodeTimeoutType,
|
|
9
|
+
encodeApplicationFailureCategory,
|
|
8
10
|
encodeRetryState,
|
|
9
11
|
encodeTimeoutType,
|
|
10
12
|
FAILURE_SOURCE,
|
|
@@ -75,7 +77,7 @@ export interface FailureConverter {
|
|
|
75
77
|
*
|
|
76
78
|
* The returned error must be an instance of `TemporalFailure`.
|
|
77
79
|
*/
|
|
78
|
-
failureToError(err: ProtoFailure, payloadConverter: PayloadConverter):
|
|
80
|
+
failureToError(err: ProtoFailure, payloadConverter: PayloadConverter): Error;
|
|
79
81
|
}
|
|
80
82
|
|
|
81
83
|
/**
|
|
@@ -127,7 +129,9 @@ export class DefaultFailureConverter implements FailureConverter {
|
|
|
127
129
|
failure.applicationFailureInfo.type,
|
|
128
130
|
Boolean(failure.applicationFailureInfo.nonRetryable),
|
|
129
131
|
arrayFromPayloads(payloadConverter, failure.applicationFailureInfo.details?.payloads),
|
|
130
|
-
this.optionalFailureToOptionalError(failure.cause, payloadConverter)
|
|
132
|
+
this.optionalFailureToOptionalError(failure.cause, payloadConverter),
|
|
133
|
+
undefined,
|
|
134
|
+
decodeApplicationFailureCategory(failure.applicationFailureInfo.category)
|
|
131
135
|
);
|
|
132
136
|
}
|
|
133
137
|
if (failure.serverFailureInfo) {
|
|
@@ -198,7 +202,7 @@ export class DefaultFailureConverter implements FailureConverter {
|
|
|
198
202
|
);
|
|
199
203
|
}
|
|
200
204
|
|
|
201
|
-
failureToError(failure: ProtoFailure, payloadConverter: PayloadConverter):
|
|
205
|
+
failureToError(failure: ProtoFailure, payloadConverter: PayloadConverter): Error {
|
|
202
206
|
if (failure.encodedAttributes) {
|
|
203
207
|
const attrs = payloadConverter.fromPayload<DefaultEncodedFailureAttributes>(failure.encodedAttributes);
|
|
204
208
|
// Don't apply encodedAttributes unless they conform to an expected schema
|
|
@@ -273,6 +277,7 @@ export class DefaultFailureConverter implements FailureConverter {
|
|
|
273
277
|
? { payloads: toPayloads(payloadConverter, ...err.details) }
|
|
274
278
|
: undefined,
|
|
275
279
|
nextRetryDelay: msOptionalToTs(err.nextRetryDelay),
|
|
280
|
+
category: encodeApplicationFailureCategory(err.category),
|
|
276
281
|
},
|
|
277
282
|
};
|
|
278
283
|
}
|
|
@@ -351,7 +356,7 @@ export class DefaultFailureConverter implements FailureConverter {
|
|
|
351
356
|
optionalFailureToOptionalError(
|
|
352
357
|
failure: ProtoFailure | undefined | null,
|
|
353
358
|
payloadConverter: PayloadConverter
|
|
354
|
-
):
|
|
359
|
+
): Error | undefined {
|
|
355
360
|
return failure ? this.failureToError(failure, payloadConverter) : undefined;
|
|
356
361
|
}
|
|
357
362
|
|