@temporalio/common 1.11.8 → 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.
Files changed (87) hide show
  1. package/lib/activity-options.d.ts +6 -1
  2. package/lib/activity-options.js.map +1 -1
  3. package/lib/converter/failure-converter.d.ts +3 -3
  4. package/lib/converter/failure-converter.js +3 -1
  5. package/lib/converter/failure-converter.js.map +1 -1
  6. package/lib/converter/payload-converter.d.ts +2 -15
  7. package/lib/converter/payload-converter.js +6 -69
  8. package/lib/converter/payload-converter.js.map +1 -1
  9. package/lib/converter/payload-search-attributes.d.ts +26 -0
  10. package/lib/converter/payload-search-attributes.js +171 -0
  11. package/lib/converter/payload-search-attributes.js.map +1 -0
  12. package/lib/converter/protobuf-payload-converters.js +3 -2
  13. package/lib/converter/protobuf-payload-converters.js.map +1 -1
  14. package/lib/errors.d.ts +2 -1
  15. package/lib/errors.js +6 -1
  16. package/lib/errors.js.map +1 -1
  17. package/lib/failure.d.ts +20 -1
  18. package/lib/failure.js +47 -5
  19. package/lib/failure.js.map +1 -1
  20. package/lib/index.d.ts +7 -0
  21. package/lib/index.js +9 -0
  22. package/lib/index.js.map +1 -1
  23. package/lib/interfaces.d.ts +0 -7
  24. package/lib/interfaces.js.map +1 -1
  25. package/lib/internal-non-workflow/codec-helpers.d.ts +2 -2
  26. package/lib/internal-non-workflow/index.d.ts +0 -1
  27. package/lib/internal-non-workflow/index.js +0 -1
  28. package/lib/internal-non-workflow/index.js.map +1 -1
  29. package/lib/internal-workflow/index.d.ts +1 -0
  30. package/lib/internal-workflow/index.js +1 -0
  31. package/lib/internal-workflow/index.js.map +1 -1
  32. package/lib/internal-workflow/objects-helpers.d.ts +15 -0
  33. package/lib/internal-workflow/objects-helpers.js +29 -0
  34. package/lib/internal-workflow/objects-helpers.js.map +1 -0
  35. package/lib/logger.d.ts +32 -0
  36. package/lib/logger.js +91 -1
  37. package/lib/logger.js.map +1 -1
  38. package/lib/metrics.d.ts +181 -0
  39. package/lib/metrics.js +240 -0
  40. package/lib/metrics.js.map +1 -0
  41. package/lib/priority.d.ts +36 -0
  42. package/lib/priority.js +27 -0
  43. package/lib/priority.js.map +1 -0
  44. package/lib/search-attributes.d.ts +77 -0
  45. package/lib/search-attributes.js +233 -0
  46. package/lib/search-attributes.js.map +1 -0
  47. package/lib/type-helpers.d.ts +5 -1
  48. package/lib/type-helpers.js +0 -22
  49. package/lib/type-helpers.js.map +1 -1
  50. package/lib/versioning-intent-enum.d.ts +1 -1
  51. package/lib/versioning-intent-enum.js +1 -1
  52. package/lib/versioning-intent.d.ts +1 -1
  53. package/lib/worker-deployments.d.ts +47 -0
  54. package/lib/worker-deployments.js +32 -0
  55. package/lib/worker-deployments.js.map +1 -0
  56. package/lib/workflow-definition-options.d.ts +18 -0
  57. package/lib/workflow-definition-options.js +3 -0
  58. package/lib/workflow-definition-options.js.map +1 -0
  59. package/lib/workflow-options.d.ts +22 -2
  60. package/lib/workflow-options.js.map +1 -1
  61. package/package.json +6 -3
  62. package/src/activity-options.ts +7 -1
  63. package/src/converter/failure-converter.ts +9 -4
  64. package/src/converter/payload-converter.ts +7 -71
  65. package/src/converter/payload-search-attributes.ts +220 -0
  66. package/src/errors.ts +2 -1
  67. package/src/failure.ts +38 -3
  68. package/src/index.ts +13 -0
  69. package/src/interfaces.ts +0 -8
  70. package/src/internal-non-workflow/codec-helpers.ts +2 -2
  71. package/src/internal-non-workflow/index.ts +0 -1
  72. package/src/internal-workflow/index.ts +1 -0
  73. package/src/internal-workflow/objects-helpers.ts +37 -0
  74. package/src/logger.ts +108 -0
  75. package/src/metrics.ts +443 -0
  76. package/src/priority.ts +54 -0
  77. package/src/search-attributes.ts +292 -0
  78. package/src/type-helpers.ts +11 -23
  79. package/src/versioning-intent-enum.ts +1 -1
  80. package/src/versioning-intent.ts +1 -1
  81. package/src/worker-deployments.ts +70 -0
  82. package/src/workflow-definition-options.ts +20 -0
  83. package/src/workflow-options.ts +27 -3
  84. package/lib/internal-non-workflow/utils.d.ts +0 -4
  85. package/lib/internal-non-workflow/utils.js +0 -10
  86. package/lib/internal-non-workflow/utils.js.map +0 -1
  87. 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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"}
@@ -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 {};
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"type-helpers.js","sourceRoot":"","sources":["../src/type-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"type-helpers.js","sourceRoot":"","sources":["../src/type-helpers.ts"],"names":[],"mappings":"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"}
@@ -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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=workflow-definition-options.js.map
@@ -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 { SearchAttributes, Workflow } from './interfaces';
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":";;;;AAgOA,kDASC;AArOD,2DAA8D;AAE9D;;;;;;;;;;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;AAoGF,SAAgB,mBAAmB,CAAqB,kBAA8B;IACpF,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"}
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.11.8",
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.11.8",
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": "0a757c370012d89babb668fbd799d83b55c83a1b"
42
+ "gitHead": "3e02f59f5c3edbdd3a4d05bc77c3bee9dbdc1226"
40
43
  }
@@ -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): TemporalFailure;
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): TemporalFailure {
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
- ): TemporalFailure | undefined {
359
+ ): Error | undefined {
355
360
  return failure ? this.failureToError(failure, payloadConverter) : undefined;
356
361
  }
357
362