@temporalio/common 1.12.1 → 1.12.3
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-cancellation-details.d.ts +25 -0
- package/lib/activity-cancellation-details.js +37 -0
- package/lib/activity-cancellation-details.js.map +1 -0
- package/lib/activity-options.d.ts +14 -0
- package/lib/converter/payload-converter.d.ts +16 -0
- package/lib/converter/payload-converter.js +29 -1
- package/lib/converter/payload-converter.js.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +3 -1
- package/lib/index.js.map +1 -1
- package/lib/internal-non-workflow/codec-helpers.d.ts +6 -0
- package/lib/internal-non-workflow/codec-helpers.js +29 -0
- package/lib/internal-non-workflow/codec-helpers.js.map +1 -1
- package/lib/internal-workflow/index.d.ts +1 -1
- package/lib/internal-workflow/index.js +6 -1
- package/lib/internal-workflow/index.js.map +1 -1
- package/lib/internal-workflow/objects-helpers.d.ts +10 -0
- package/lib/internal-workflow/objects-helpers.js +28 -0
- package/lib/internal-workflow/objects-helpers.js.map +1 -1
- package/lib/reserved.d.ts +16 -0
- package/lib/reserved.js +24 -0
- package/lib/reserved.js.map +1 -0
- package/lib/user-metadata.d.ts +12 -0
- package/lib/user-metadata.js +14 -0
- package/lib/user-metadata.js.map +1 -0
- package/lib/workflow-options.d.ts +14 -0
- package/lib/workflow-options.js.map +1 -1
- package/package.json +3 -3
- package/src/activity-cancellation-details.ts +52 -0
- package/src/activity-options.ts +16 -0
- package/src/converter/payload-converter.ts +35 -0
- package/src/index.ts +1 -0
- package/src/internal-non-workflow/codec-helpers.ts +48 -1
- package/src/internal-workflow/index.ts +6 -1
- package/src/internal-workflow/objects-helpers.ts +30 -0
- package/src/reserved.ts +26 -0
- package/src/user-metadata.ts +27 -0
- package/src/workflow-options.ts +15 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { coresdk } from '@temporalio/proto';
|
|
2
|
+
export interface ActivityCancellationDetailsHolder {
|
|
3
|
+
details?: ActivityCancellationDetails;
|
|
4
|
+
}
|
|
5
|
+
export interface ActivityCancellationDetailsOptions {
|
|
6
|
+
notFound?: boolean;
|
|
7
|
+
cancelRequested?: boolean;
|
|
8
|
+
paused?: boolean;
|
|
9
|
+
timedOut?: boolean;
|
|
10
|
+
workerShutdown?: boolean;
|
|
11
|
+
reset?: boolean;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Provides the reasons for the activity's cancellation. Cancellation details are set once and do not change once set.
|
|
15
|
+
*/
|
|
16
|
+
export declare class ActivityCancellationDetails {
|
|
17
|
+
readonly notFound: boolean;
|
|
18
|
+
readonly cancelRequested: boolean;
|
|
19
|
+
readonly paused: boolean;
|
|
20
|
+
readonly timedOut: boolean;
|
|
21
|
+
readonly workerShutdown: boolean;
|
|
22
|
+
readonly reset: boolean;
|
|
23
|
+
constructor(options?: ActivityCancellationDetailsOptions);
|
|
24
|
+
static fromProto(proto: coresdk.activity_task.IActivityCancellationDetails | null | undefined): ActivityCancellationDetails;
|
|
25
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ActivityCancellationDetails = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Provides the reasons for the activity's cancellation. Cancellation details are set once and do not change once set.
|
|
6
|
+
*/
|
|
7
|
+
class ActivityCancellationDetails {
|
|
8
|
+
notFound;
|
|
9
|
+
cancelRequested;
|
|
10
|
+
paused;
|
|
11
|
+
timedOut;
|
|
12
|
+
workerShutdown;
|
|
13
|
+
reset;
|
|
14
|
+
constructor(options = {}) {
|
|
15
|
+
this.notFound = options.notFound ?? false;
|
|
16
|
+
this.cancelRequested = options.cancelRequested ?? false;
|
|
17
|
+
this.paused = options.paused ?? false;
|
|
18
|
+
this.timedOut = options.timedOut ?? false;
|
|
19
|
+
this.workerShutdown = options.workerShutdown ?? false;
|
|
20
|
+
this.reset = options.reset ?? false;
|
|
21
|
+
}
|
|
22
|
+
static fromProto(proto) {
|
|
23
|
+
if (proto == null) {
|
|
24
|
+
return new ActivityCancellationDetails();
|
|
25
|
+
}
|
|
26
|
+
return new ActivityCancellationDetails({
|
|
27
|
+
notFound: proto.isNotFound ?? false,
|
|
28
|
+
cancelRequested: proto.isCancelled ?? false,
|
|
29
|
+
paused: proto.isPaused ?? false,
|
|
30
|
+
timedOut: proto.isTimedOut ?? false,
|
|
31
|
+
workerShutdown: proto.isWorkerShutdown ?? false,
|
|
32
|
+
reset: proto.isReset ?? false,
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.ActivityCancellationDetails = ActivityCancellationDetails;
|
|
37
|
+
//# sourceMappingURL=activity-cancellation-details.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity-cancellation-details.js","sourceRoot":"","sources":["../src/activity-cancellation-details.ts"],"names":[],"mappings":";;;AAgBA;;GAEG;AACH,MAAa,2BAA2B;IAC7B,QAAQ,CAAU;IAClB,eAAe,CAAU;IACzB,MAAM,CAAU;IAChB,QAAQ,CAAU;IAClB,cAAc,CAAU;IACxB,KAAK,CAAU;IAExB,YAAmB,UAA8C,EAAE;QACjE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC;QAC1C,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,KAAK,CAAC;QACxD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC;QAC1C,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,KAAK,CAAC;QACtD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,SAAS,CACd,KAA4E;QAE5E,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,OAAO,IAAI,2BAA2B,EAAE,CAAC;QAC3C,CAAC;QACD,OAAO,IAAI,2BAA2B,CAAC;YACrC,QAAQ,EAAE,KAAK,CAAC,UAAU,IAAI,KAAK;YACnC,eAAe,EAAE,KAAK,CAAC,WAAW,IAAI,KAAK;YAC3C,MAAM,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK;YAC/B,QAAQ,EAAE,KAAK,CAAC,UAAU,IAAI,KAAK;YACnC,cAAc,EAAE,KAAK,CAAC,gBAAgB,IAAI,KAAK;YAC/C,KAAK,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK;SAC9B,CAAC,CAAC;IACL,CAAC;CACF;AAhCD,kEAgCC"}
|
|
@@ -98,6 +98,13 @@ export interface ActivityOptions {
|
|
|
98
98
|
* @experimental The Worker Versioning API is still being designed. Major changes are expected.
|
|
99
99
|
*/
|
|
100
100
|
versioningIntent?: VersioningIntent;
|
|
101
|
+
/**
|
|
102
|
+
* A fixed, single-line summary for this workflow execution that may appear in the UI/CLI.
|
|
103
|
+
* This can be in single-line Temporal markdown format.
|
|
104
|
+
*
|
|
105
|
+
* @experimental User metadata is a new API and suspectible to change.
|
|
106
|
+
*/
|
|
107
|
+
summary?: string;
|
|
101
108
|
/**
|
|
102
109
|
* Priority of this activity
|
|
103
110
|
*/
|
|
@@ -160,4 +167,11 @@ export interface LocalActivityOptions {
|
|
|
160
167
|
* - `ABANDON` - Do not request cancellation of the activity and immediately report cancellation to the workflow.
|
|
161
168
|
*/
|
|
162
169
|
cancellationType?: ActivityCancellationType;
|
|
170
|
+
/**
|
|
171
|
+
* A fixed, single-line summary for this workflow execution that may appear in the UI/CLI.
|
|
172
|
+
* This can be in single-line Temporal markdown format.
|
|
173
|
+
*
|
|
174
|
+
* @experimental User metadata is a new API and suspectible to change.
|
|
175
|
+
*/
|
|
176
|
+
summary?: string;
|
|
163
177
|
}
|
|
@@ -31,6 +31,10 @@ export interface PayloadConverter {
|
|
|
31
31
|
* reason.
|
|
32
32
|
*/
|
|
33
33
|
export declare function toPayloads(converter: PayloadConverter, ...values: unknown[]): Payload[] | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* Run {@link PayloadConverter.toPayload} on an optional value, and then encode it.
|
|
36
|
+
*/
|
|
37
|
+
export declare function convertOptionalToPayload(payloadConverter: PayloadConverter, value: unknown): Payload | null | undefined;
|
|
34
38
|
/**
|
|
35
39
|
* Run {@link PayloadConverter.toPayload} on each value in the map.
|
|
36
40
|
*
|
|
@@ -54,6 +58,18 @@ export declare function fromPayloadsAtIndex<T>(converter: PayloadConverter, inde
|
|
|
54
58
|
*/
|
|
55
59
|
export declare function arrayFromPayloads(converter: PayloadConverter, payloads?: Payload[] | null): unknown[];
|
|
56
60
|
export declare function mapFromPayloads<K extends string, T = unknown>(converter: PayloadConverter, map?: Record<K, Payload> | null | undefined): Record<K, T> | undefined;
|
|
61
|
+
export declare const rawPayloadTypeBrand: unique symbol;
|
|
62
|
+
/**
|
|
63
|
+
* RawValue is a wrapper over a payload.
|
|
64
|
+
* A payload that belongs to a RawValue is special in that it bypasses user-defined payload converters,
|
|
65
|
+
* instead using the default payload converter. The payload still undergoes codec conversion.
|
|
66
|
+
*/
|
|
67
|
+
export declare class RawValue<T = unknown> {
|
|
68
|
+
private readonly _payload;
|
|
69
|
+
private readonly [rawPayloadTypeBrand];
|
|
70
|
+
constructor(value: T, payloadConverter?: PayloadConverter);
|
|
71
|
+
get payload(): Payload;
|
|
72
|
+
}
|
|
57
73
|
export interface PayloadConverterWithEncoding {
|
|
58
74
|
/**
|
|
59
75
|
* Converts a value to a {@link Payload}.
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.defaultPayloadConverter = exports.DefaultPayloadConverter = exports.JsonPayloadConverter = exports.BinaryPayloadConverter = exports.UndefinedPayloadConverter = exports.CompositePayloadConverter = void 0;
|
|
3
|
+
exports.defaultPayloadConverter = exports.DefaultPayloadConverter = exports.JsonPayloadConverter = exports.BinaryPayloadConverter = exports.UndefinedPayloadConverter = exports.CompositePayloadConverter = exports.RawValue = void 0;
|
|
4
4
|
exports.toPayloads = toPayloads;
|
|
5
|
+
exports.convertOptionalToPayload = convertOptionalToPayload;
|
|
5
6
|
exports.mapToPayloads = mapToPayloads;
|
|
6
7
|
exports.fromPayloadsAtIndex = fromPayloadsAtIndex;
|
|
7
8
|
exports.arrayFromPayloads = arrayFromPayloads;
|
|
@@ -24,6 +25,14 @@ function toPayloads(converter, ...values) {
|
|
|
24
25
|
}
|
|
25
26
|
return values.map((value) => converter.toPayload(value));
|
|
26
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Run {@link PayloadConverter.toPayload} on an optional value, and then encode it.
|
|
30
|
+
*/
|
|
31
|
+
function convertOptionalToPayload(payloadConverter, value) {
|
|
32
|
+
if (value == null)
|
|
33
|
+
return value;
|
|
34
|
+
return payloadConverter.toPayload(value);
|
|
35
|
+
}
|
|
27
36
|
/**
|
|
28
37
|
* Run {@link PayloadConverter.toPayload} on each value in the map.
|
|
29
38
|
*
|
|
@@ -67,6 +76,22 @@ function mapFromPayloads(converter, map) {
|
|
|
67
76
|
return [k, value];
|
|
68
77
|
}));
|
|
69
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* RawValue is a wrapper over a payload.
|
|
81
|
+
* A payload that belongs to a RawValue is special in that it bypasses user-defined payload converters,
|
|
82
|
+
* instead using the default payload converter. The payload still undergoes codec conversion.
|
|
83
|
+
*/
|
|
84
|
+
class RawValue {
|
|
85
|
+
_payload;
|
|
86
|
+
[exports.rawPayloadTypeBrand] = undefined;
|
|
87
|
+
constructor(value, payloadConverter = exports.defaultPayloadConverter) {
|
|
88
|
+
this._payload = payloadConverter.toPayload(value);
|
|
89
|
+
}
|
|
90
|
+
get payload() {
|
|
91
|
+
return this._payload;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
exports.RawValue = RawValue;
|
|
70
95
|
/**
|
|
71
96
|
* Tries to convert values to {@link Payload}s using the {@link PayloadConverterWithEncoding}s provided to the constructor, in the order provided.
|
|
72
97
|
*
|
|
@@ -90,6 +115,9 @@ class CompositePayloadConverter {
|
|
|
90
115
|
* Returns the first successful result, throws {@link ValueError} if there is no converter that can handle the value.
|
|
91
116
|
*/
|
|
92
117
|
toPayload(value) {
|
|
118
|
+
if (value instanceof RawValue) {
|
|
119
|
+
return value.payload;
|
|
120
|
+
}
|
|
93
121
|
for (const converter of this.converters) {
|
|
94
122
|
const result = converter.toPayload(value);
|
|
95
123
|
if (result !== undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payload-converter.js","sourceRoot":"","sources":["../../src/converter/payload-converter.ts"],"names":[],"mappings":";;;AAsCA,gCAMC;AAOD,sCAOC;AAaD,kDAMC;AAKD,8CAKC;AAED,0CAWC;
|
|
1
|
+
{"version":3,"file":"payload-converter.js","sourceRoot":"","sources":["../../src/converter/payload-converter.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* @module
|
|
5
5
|
*/
|
|
6
6
|
export * from './activity-options';
|
|
7
|
+
export { ActivityCancellationDetailsOptions, ActivityCancellationDetails } from './activity-cancellation-details';
|
|
7
8
|
export * from './converter/data-converter';
|
|
8
9
|
export * from './converter/failure-converter';
|
|
9
10
|
export * from './converter/payload-codec';
|
package/lib/index.js
CHANGED
|
@@ -31,7 +31,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
31
31
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
32
32
|
};
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
-
exports.defineSearchAttributeKey = exports.TypedSearchAttributes = exports.SearchAttributeType = void 0;
|
|
34
|
+
exports.defineSearchAttributeKey = exports.TypedSearchAttributes = exports.SearchAttributeType = exports.ActivityCancellationDetails = void 0;
|
|
35
35
|
exports.u8 = u8;
|
|
36
36
|
exports.str = str;
|
|
37
37
|
exports.errorMessage = errorMessage;
|
|
@@ -39,6 +39,8 @@ exports.errorCode = errorCode;
|
|
|
39
39
|
const encoding = __importStar(require("./encoding"));
|
|
40
40
|
const helpers = __importStar(require("./type-helpers"));
|
|
41
41
|
__exportStar(require("./activity-options"), exports);
|
|
42
|
+
var activity_cancellation_details_1 = require("./activity-cancellation-details");
|
|
43
|
+
Object.defineProperty(exports, "ActivityCancellationDetails", { enumerable: true, get: function () { return activity_cancellation_details_1.ActivityCancellationDetails; } });
|
|
42
44
|
__exportStar(require("./converter/data-converter"), exports);
|
|
43
45
|
__exportStar(require("./converter/failure-converter"), exports);
|
|
44
46
|
__exportStar(require("./converter/payload-codec"), exports);
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CH,gBAEC;AAQD,kBAEC;AAQD,oCAEC;AAQD,8BAEC;AAzED,qDAAuC;AACvC,wDAA0C;AAE1C,qDAAmC;AACnC,iFAAkH;AAArE,4IAAA,2BAA2B,OAAA;AACxE,6DAA2C;AAC3C,gEAA8C;AAC9C,4DAA0C;AAC1C,gEAA8C;AAC9C,oDAAkC;AAClC,oDAAkC;AAClC,2CAAyB;AACzB,4CAA0B;AAE1B,+CAA6B;AAC7B,2CAAyB;AACzB,6CAA2B;AAC3B,4CAA0B;AAC1B,iDAA+B;AAE/B,uDAAqC;AACrC,gEAA8C;AAC9C,oDAAkC;AAClC,qDAAmC;AACnC,sDAAoC;AACpC,yDAQ6B;AAL3B,wHAAA,mBAAmB,OAAA;AAGnB,0HAAA,qBAAqB,OAAA;AACrB,6HAAA,wBAAwB,OAAA;AAG1B;;;;;GAKG;AACH,SAAgB,EAAE,CAAC,CAAS;IAC1B,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;GAKG;AACH,SAAgB,GAAG,CAAC,GAAe;IACjC,OAAO,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,KAAc;IACzC,OAAO,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,SAAS,CAAC,KAAc;IACtC,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import type { temporal } from '@temporalio/proto';
|
|
1
2
|
import { Payload } from '../interfaces';
|
|
2
3
|
import { PayloadCodec } from '../converter/payload-codec';
|
|
3
4
|
import { ProtoFailure } from '../failure';
|
|
4
5
|
import { LoadedDataConverter } from '../converter/data-converter';
|
|
6
|
+
import { UserMetadata } from '../user-metadata';
|
|
5
7
|
import { DecodedPayload, DecodedProtoFailure, EncodedPayload, EncodedProtoFailure } from './codec-types';
|
|
6
8
|
/**
|
|
7
9
|
* Decode through each codec, starting with the last codec.
|
|
@@ -19,6 +21,8 @@ export declare function decodeOptional(codecs: PayloadCodec[], payloads: Payload
|
|
|
19
21
|
export declare function encodeOptionalSingle(codecs: PayloadCodec[], payload: Payload | null | undefined): Promise<EncodedPayload | null | undefined>;
|
|
20
22
|
/** Run {@link PayloadCodec.decode} on a single Payload */
|
|
21
23
|
export declare function decodeOptionalSingle(codecs: PayloadCodec[], payload: Payload | null | undefined): Promise<DecodedPayload | null | undefined>;
|
|
24
|
+
/** Run {@link PayloadCodec.decode} and convert from a single Payload */
|
|
25
|
+
export declare function decodeOptionalSinglePayload<T>(dataConverter: LoadedDataConverter, payload?: Payload | null | undefined): Promise<T | null | undefined>;
|
|
22
26
|
/**
|
|
23
27
|
* Run {@link PayloadConverter.toPayload} on value, and then encode it.
|
|
24
28
|
*/
|
|
@@ -80,3 +84,5 @@ export declare function noopEncodeMap<K extends string>(map: Record<K, Payload>
|
|
|
80
84
|
* Use this for headers, which we don't encode.
|
|
81
85
|
*/
|
|
82
86
|
export declare function noopDecodeMap<K extends string>(map: Record<K, Payload> | null | undefined): Record<K, DecodedPayload> | null | undefined;
|
|
87
|
+
export declare function encodeUserMetadata(dataConverter: LoadedDataConverter, staticSummary: string | undefined, staticDetails: string | undefined): Promise<temporal.api.sdk.v1.IUserMetadata | undefined>;
|
|
88
|
+
export declare function decodeUserMetadata(dataConverter: LoadedDataConverter, metadata: temporal.api.sdk.v1.IUserMetadata | undefined | null): Promise<UserMetadata>;
|
|
@@ -6,6 +6,7 @@ exports.encodeOptional = encodeOptional;
|
|
|
6
6
|
exports.decodeOptional = decodeOptional;
|
|
7
7
|
exports.encodeOptionalSingle = encodeOptionalSingle;
|
|
8
8
|
exports.decodeOptionalSingle = decodeOptionalSingle;
|
|
9
|
+
exports.decodeOptionalSinglePayload = decodeOptionalSinglePayload;
|
|
9
10
|
exports.encodeToPayload = encodeToPayload;
|
|
10
11
|
exports.decodeArrayFromPayloads = decodeArrayFromPayloads;
|
|
11
12
|
exports.decodeFromPayloadsAtIndex = decodeFromPayloadsAtIndex;
|
|
@@ -22,6 +23,8 @@ exports.encodeOptionalFailure = encodeOptionalFailure;
|
|
|
22
23
|
exports.decodeOptionalFailure = decodeOptionalFailure;
|
|
23
24
|
exports.noopEncodeMap = noopEncodeMap;
|
|
24
25
|
exports.noopDecodeMap = noopDecodeMap;
|
|
26
|
+
exports.encodeUserMetadata = encodeUserMetadata;
|
|
27
|
+
exports.decodeUserMetadata = decodeUserMetadata;
|
|
25
28
|
const payload_converter_1 = require("../converter/payload-converter");
|
|
26
29
|
const errors_1 = require("../errors");
|
|
27
30
|
/**
|
|
@@ -74,6 +77,14 @@ async function decodeOptionalSingle(codecs, payload) {
|
|
|
74
77
|
return payload;
|
|
75
78
|
return await decodeSingle(codecs, payload);
|
|
76
79
|
}
|
|
80
|
+
/** Run {@link PayloadCodec.decode} and convert from a single Payload */
|
|
81
|
+
async function decodeOptionalSinglePayload(dataConverter, payload) {
|
|
82
|
+
const { payloadConverter, payloadCodecs } = dataConverter;
|
|
83
|
+
const decoded = await decodeOptionalSingle(payloadCodecs, payload);
|
|
84
|
+
if (decoded == null)
|
|
85
|
+
return decoded;
|
|
86
|
+
return payloadConverter.fromPayload(decoded);
|
|
87
|
+
}
|
|
77
88
|
/**
|
|
78
89
|
* Run {@link PayloadConverter.toPayload} on value, and then encode it.
|
|
79
90
|
*/
|
|
@@ -293,4 +304,22 @@ function noopEncodeMap(map) {
|
|
|
293
304
|
function noopDecodeMap(map) {
|
|
294
305
|
return map;
|
|
295
306
|
}
|
|
307
|
+
async function encodeUserMetadata(dataConverter, staticSummary, staticDetails) {
|
|
308
|
+
if (staticSummary == null && staticDetails == null)
|
|
309
|
+
return undefined;
|
|
310
|
+
const { payloadConverter, payloadCodecs } = dataConverter;
|
|
311
|
+
const summary = await encodeOptionalSingle(payloadCodecs, (0, payload_converter_1.convertOptionalToPayload)(payloadConverter, staticSummary));
|
|
312
|
+
const details = await encodeOptionalSingle(payloadCodecs, (0, payload_converter_1.convertOptionalToPayload)(payloadConverter, staticDetails));
|
|
313
|
+
if (summary == null && details == null)
|
|
314
|
+
return undefined;
|
|
315
|
+
return { summary, details };
|
|
316
|
+
}
|
|
317
|
+
async function decodeUserMetadata(dataConverter, metadata) {
|
|
318
|
+
const res = { staticSummary: undefined, staticDetails: undefined };
|
|
319
|
+
if (metadata == null)
|
|
320
|
+
return res;
|
|
321
|
+
const staticSummary = (await decodeOptionalSinglePayload(dataConverter, metadata.summary)) ?? undefined;
|
|
322
|
+
const staticDetails = (await decodeOptionalSinglePayload(dataConverter, metadata.details)) ?? undefined;
|
|
323
|
+
return { staticSummary, staticDetails };
|
|
324
|
+
}
|
|
296
325
|
//# sourceMappingURL=codec-helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codec-helpers.js","sourceRoot":"","sources":["../../src/internal-non-workflow/codec-helpers.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"codec-helpers.js","sourceRoot":"","sources":["../../src/internal-non-workflow/codec-helpers.ts"],"names":[],"mappings":";;AAkBA,wBAKC;AAKD,wBAKC;AAGD,wCAMC;AAGD,wCAMC;AAaD,oDAMC;AAGD,oDAMC;AAGD,kEAQC;AAKD,0CAGC;AAKD,0DAMC;AAKD,8DAOC;AAKD,oFAQC;AAED,8CAQC;AAKD,4CAUC;AAKD,sDAeC;AAGD,8BAaC;AAKD,kDAeC;AAKD,oDAGC;AAKD,sCA8CC;AAKD,sCA8CC;AAKD,sDAMC;AAKD,sDAMC;AAMD,sCAIC;AAMD,sCAIC;AAED,gDAcC;AAED,gDAWC;AA1YD,sEAKwC;AACxC,sCAAkD;AAOlD;;GAEG;AACI,KAAK,UAAU,MAAM,CAAC,MAAsB,EAAE,QAAmB;IACtE,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,QAAQ,GAAG,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,QAA4B,CAAC;AACtC,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,MAAM,CAAC,MAAsB,EAAE,QAAmB;IACtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,QAAQ,GAAG,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,QAA4B,CAAC;AACtC,CAAC;AAED,oDAAoD;AAC7C,KAAK,UAAU,cAAc,CAClC,MAAsB,EACtB,QAAsC;IAEtC,IAAI,QAAQ,IAAI,IAAI;QAAE,OAAO,QAAQ,CAAC;IACtC,OAAO,MAAM,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACxC,CAAC;AAED,oDAAoD;AAC7C,KAAK,UAAU,cAAc,CAClC,MAAsB,EACtB,QAAsC;IAEtC,IAAI,QAAQ,IAAI,IAAI;QAAE,OAAO,QAAQ,CAAC;IACtC,OAAO,MAAM,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACxC,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,MAAsB,EAAE,OAAgB;IAClE,MAAM,eAAe,GAAG,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACxD,OAAO,eAAe,CAAC,CAAC,CAAmB,CAAC;AAC9C,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,MAAsB,EAAE,OAAgB;IAClE,MAAM,CAAC,cAAc,CAAC,GAAG,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACzD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,0DAA0D;AACnD,KAAK,UAAU,oBAAoB,CACxC,MAAsB,EACtB,OAAmC;IAEnC,IAAI,OAAO,IAAI,IAAI;QAAE,OAAO,OAAO,CAAC;IACpC,OAAO,MAAM,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC7C,CAAC;AAED,0DAA0D;AACnD,KAAK,UAAU,oBAAoB,CACxC,MAAsB,EACtB,OAAmC;IAEnC,IAAI,OAAO,IAAI,IAAI;QAAE,OAAO,OAAO,CAAC;IACpC,OAAO,MAAM,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC7C,CAAC;AAED,wEAAwE;AACjE,KAAK,UAAU,2BAA2B,CAC/C,aAAkC,EAClC,OAAoC;IAEpC,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAE,GAAG,aAAa,CAAC;IAC1D,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACnE,IAAI,OAAO,IAAI,IAAI;QAAE,OAAO,OAAO,CAAC;IACpC,OAAO,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,eAAe,CAAC,SAA8B,EAAE,KAAc;IAClF,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAE,GAAG,SAAS,CAAC;IACtD,OAAO,MAAM,YAAY,CAAC,aAAa,EAAE,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,uBAAuB,CAC3C,SAA8B,EAC9B,QAA2B;IAE3B,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAE,GAAG,SAAS,CAAC;IACtD,OAAO,IAAA,qCAAiB,EAAC,gBAAgB,EAAE,MAAM,cAAc,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC5F,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,yBAAyB,CAC7C,SAA8B,EAC9B,KAAa,EACb,QAA2B;IAE3B,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAE,GAAG,SAAS,CAAC;IACtD,OAAO,MAAM,IAAA,uCAAmB,EAAC,gBAAgB,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC3G,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,oCAAoC,CACxD,SAA8B,EAC9B,OAAwC;IAExC,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,GAAG,SAAS,CAAC;IACxE,OAAO,OAAO;QACZ,CAAC,CAAC,gBAAgB,CAAC,cAAc,CAAC,MAAM,aAAa,CAAC,aAAa,EAAE,OAAO,CAAC,EAAE,gBAAgB,CAAC;QAChG,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAEM,KAAK,UAAU,iBAAiB,CACrC,MAAsB,EACtB,QAAoD;IAEpD,IAAI,QAAQ,IAAI,IAAI;QAAE,OAAO,QAAQ,CAAC;IACtC,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACvG,CAAC;AACJ,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,gBAAgB,CACpC,SAA8B,EAC9B,GAAG,MAAiB;IAEpB,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAE,GAAG,SAAS,CAAC;IACtD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,QAAQ,GAAG,IAAA,8BAAU,EAAC,gBAAgB,EAAE,GAAG,MAAM,CAAC,CAAC;IACzD,OAAO,QAAQ,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACtE,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,qBAAqB,CACzC,SAA8B,EAC9B,GAA0C;IAE1C,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAE,GAAG,SAAS,CAAC;IACtD,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAyB,EAAE;QACpE,MAAM,CAAC,cAAc,CAAC,GAAG,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC,OAAkB,CAAC,CAAC,CAAC;QAC3E,MAAM,KAAK,GAAG,gBAAgB,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QAC3D,OAAO,CAAC,CAAM,EAAE,KAAK,CAAC,CAAC;IACzB,CAAC,CAAC,CACH,CACoB,CAAC;AAC1B,CAAC;AAED,6DAA6D;AACtD,KAAK,UAAU,SAAS,CAC7B,MAAsB,EACtB,GAA0C;IAE1C,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC9B,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACxC,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAgC,EAAE;QAC3E,OAAO,CAAC,CAAM,EAAE,MAAM,YAAY,CAAC,MAAM,EAAE,OAAkB,CAAC,CAAC,CAAC;IAClE,CAAC,CAAC,CACH,CAC2B,CAAC;AACjC,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,mBAAmB,CACvC,SAA8B,EAC9B,GAAuB;IAEvB,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAE,GAAG,SAAS,CAAC;IACtD,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAyB,EAAE;QAC9D,MAAM,OAAO,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAI,OAAO,KAAK,SAAS;YAAE,MAAM,IAAI,8BAAqB,CAAC,2BAA2B,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjG,MAAM,CAAC,cAAc,CAAC,GAAG,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,CAAM,EAAE,cAAc,CAAC,CAAC;IAClC,CAAC,CAAC,CACH,CACoB,CAAC;AAC1B,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,oBAAoB,CAAC,aAAkC,EAAE,KAAc;IAC3F,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,GAAG,aAAa,CAAC;IAC5E,OAAO,MAAM,aAAa,CAAC,aAAa,EAAE,gBAAgB,CAAC,cAAc,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC;AACtG,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,aAAa,CAAC,MAAsB,EAAE,OAAqB;IAC/E,OAAO;QACL,GAAG,OAAO;QACV,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;QACjH,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;QACxE,sBAAsB,EAAE,OAAO,CAAC,sBAAsB;YACpD,CAAC,CAAC;gBACE,GAAG,OAAO,CAAC,sBAAsB;gBACjC,OAAO,EAAE,OAAO,CAAC,sBAAsB,CAAC,OAAO;oBAC7C,CAAC,CAAC;wBACE,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;qBACtF;oBACH,CAAC,CAAC,SAAS;aACd;YACH,CAAC,CAAC,SAAS;QACb,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;YAC5C,CAAC,CAAC;gBACE,GAAG,OAAO,CAAC,kBAAkB;gBAC7B,oBAAoB,EAAE,OAAO,CAAC,kBAAkB,CAAC,oBAAoB;oBACnE,CAAC,CAAC;wBACE,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,QAAQ,IAAI,EAAE,CAAC;qBAC/F;oBACH,CAAC,CAAC,SAAS;aACd;YACH,CAAC,CAAC,SAAS;QACb,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;YAC9C,CAAC,CAAC;gBACE,GAAG,OAAO,CAAC,mBAAmB;gBAC9B,OAAO,EAAE,OAAO,CAAC,mBAAmB,CAAC,OAAO;oBAC1C,CAAC,CAAC;wBACE,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;qBACnF;oBACH,CAAC,CAAC,SAAS;aACd;YACH,CAAC,CAAC,SAAS;QACb,wBAAwB,EAAE,OAAO,CAAC,wBAAwB;YACxD,CAAC,CAAC;gBACE,GAAG,OAAO,CAAC,wBAAwB;gBACnC,oBAAoB,EAAE,OAAO,CAAC,wBAAwB,CAAC,oBAAoB;oBACzE,CAAC,CAAC;wBACE,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,wBAAwB,CAAC,oBAAoB,CAAC,QAAQ,IAAI,EAAE,CAAC;qBACrG;oBACH,CAAC,CAAC,SAAS;aACd;YACH,CAAC,CAAC,SAAS;KACd,CAAC;AACJ,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,aAAa,CAAC,MAAsB,EAAE,OAAqB;IAC/E,OAAO;QACL,GAAG,OAAO;QACV,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;QACjH,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;QACxE,sBAAsB,EAAE,OAAO,CAAC,sBAAsB;YACpD,CAAC,CAAC;gBACE,GAAG,OAAO,CAAC,sBAAsB;gBACjC,OAAO,EAAE,OAAO,CAAC,sBAAsB,CAAC,OAAO;oBAC7C,CAAC,CAAC;wBACE,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;qBACtF;oBACH,CAAC,CAAC,SAAS;aACd;YACH,CAAC,CAAC,SAAS;QACb,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;YAC5C,CAAC,CAAC;gBACE,GAAG,OAAO,CAAC,kBAAkB;gBAC7B,oBAAoB,EAAE,OAAO,CAAC,kBAAkB,CAAC,oBAAoB;oBACnE,CAAC,CAAC;wBACE,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,QAAQ,IAAI,EAAE,CAAC;qBAC/F;oBACH,CAAC,CAAC,SAAS;aACd;YACH,CAAC,CAAC,SAAS;QACb,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;YAC9C,CAAC,CAAC;gBACE,GAAG,OAAO,CAAC,mBAAmB;gBAC9B,OAAO,EAAE,OAAO,CAAC,mBAAmB,CAAC,OAAO;oBAC1C,CAAC,CAAC;wBACE,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;qBACnF;oBACH,CAAC,CAAC,SAAS;aACd;YACH,CAAC,CAAC,SAAS;QACb,wBAAwB,EAAE,OAAO,CAAC,wBAAwB;YACxD,CAAC,CAAC;gBACE,GAAG,OAAO,CAAC,wBAAwB;gBACnC,oBAAoB,EAAE,OAAO,CAAC,wBAAwB,CAAC,oBAAoB;oBACzE,CAAC,CAAC;wBACE,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,wBAAwB,CAAC,oBAAoB,CAAC,QAAQ,IAAI,EAAE,CAAC;qBACrG;oBACH,CAAC,CAAC,SAAS;aACd;YACH,CAAC,CAAC,SAAS;KACd,CAAC;AACJ,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,qBAAqB,CACzC,MAAsB,EACtB,OAAwC;IAExC,IAAI,OAAO,IAAI,IAAI;QAAE,OAAO,OAAO,CAAC;IACpC,OAAO,MAAM,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,qBAAqB,CACzC,MAAsB,EACtB,OAAwC;IAExC,IAAI,OAAO,IAAI,IAAI;QAAE,OAAO,OAAO,CAAC;IACpC,OAAO,MAAM,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,SAAgB,aAAa,CAC3B,GAA0C;IAE1C,OAAO,GAAmD,CAAC;AAC7D,CAAC;AAED;;;GAGG;AACH,SAAgB,aAAa,CAC3B,GAA0C;IAE1C,OAAO,GAAmD,CAAC;AAC7D,CAAC;AAEM,KAAK,UAAU,kBAAkB,CACtC,aAAkC,EAClC,aAAiC,EACjC,aAAiC;IAEjC,IAAI,aAAa,IAAI,IAAI,IAAI,aAAa,IAAI,IAAI;QAAE,OAAO,SAAS,CAAC;IAErE,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAE,GAAG,aAAa,CAAC;IAC1D,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,aAAa,EAAE,IAAA,4CAAwB,EAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC,CAAC;IACrH,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,aAAa,EAAE,IAAA,4CAAwB,EAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC,CAAC;IAErH,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI;QAAE,OAAO,SAAS,CAAC;IAEzD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAC9B,CAAC;AAEM,KAAK,UAAU,kBAAkB,CACtC,aAAkC,EAClC,QAA8D;IAE9D,MAAM,GAAG,GAAG,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC;IACnE,IAAI,QAAQ,IAAI,IAAI;QAAE,OAAO,GAAG,CAAC;IAEjC,MAAM,aAAa,GAAG,CAAC,MAAM,2BAA2B,CAAS,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,SAAS,CAAC;IAChH,MAAM,aAAa,GAAG,CAAC,MAAM,2BAA2B,CAAS,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,SAAS,CAAC;IAEhH,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;AAC1C,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export * from './enums-helpers';
|
|
2
|
-
export
|
|
2
|
+
export { filterNullAndUndefined, mergeObjects, deepMerge, } from './objects-helpers';
|
|
@@ -14,6 +14,11 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.deepMerge = exports.mergeObjects = exports.filterNullAndUndefined = void 0;
|
|
17
18
|
__exportStar(require("./enums-helpers"), exports);
|
|
18
|
-
|
|
19
|
+
var objects_helpers_1 = require("./objects-helpers");
|
|
20
|
+
Object.defineProperty(exports, "filterNullAndUndefined", { enumerable: true, get: function () { return objects_helpers_1.filterNullAndUndefined; } });
|
|
21
|
+
Object.defineProperty(exports, "mergeObjects", { enumerable: true, get: function () { return objects_helpers_1.mergeObjects; } });
|
|
22
|
+
// ts-prune-ignore-next
|
|
23
|
+
Object.defineProperty(exports, "deepMerge", { enumerable: true, get: function () { return objects_helpers_1.deepMerge; } });
|
|
19
24
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/internal-workflow/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/internal-workflow/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,qDAK2B;AAJzB,yHAAA,sBAAsB,OAAA;AACtB,+GAAA,YAAY,OAAA;AACZ,uBAAuB;AACvB,4GAAA,SAAS,OAAA"}
|
|
@@ -13,3 +13,13 @@ export declare function filterNullAndUndefined<T extends Record<string, any>>(ob
|
|
|
13
13
|
* - If there are no changes, then return `original`.
|
|
14
14
|
*/
|
|
15
15
|
export declare function mergeObjects<T extends Record<string, any>>(original: T, delta: T | undefined): T;
|
|
16
|
+
/**
|
|
17
|
+
* Recursively merges two objects, returning a new object.
|
|
18
|
+
*
|
|
19
|
+
* Properties from `source` will overwrite properties on `target`.
|
|
20
|
+
* Nested objects are merged recursively.
|
|
21
|
+
*
|
|
22
|
+
* Object fields in the returned object are references, as in,
|
|
23
|
+
* the returned object is not completely fresh.
|
|
24
|
+
*/
|
|
25
|
+
export declare function deepMerge<T extends Record<string, any>>(target: T, source: Partial<T>): T;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.filterNullAndUndefined = filterNullAndUndefined;
|
|
4
4
|
exports.mergeObjects = mergeObjects;
|
|
5
|
+
exports.deepMerge = deepMerge;
|
|
5
6
|
/**
|
|
6
7
|
* Helper to prevent `undefined` and `null` values overriding defaults when merging maps.
|
|
7
8
|
*/
|
|
@@ -26,4 +27,31 @@ function mergeObjects(original, delta) {
|
|
|
26
27
|
}
|
|
27
28
|
return changed ? merged : original;
|
|
28
29
|
}
|
|
30
|
+
function isObject(item) {
|
|
31
|
+
return item && typeof item === 'object' && !Array.isArray(item);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Recursively merges two objects, returning a new object.
|
|
35
|
+
*
|
|
36
|
+
* Properties from `source` will overwrite properties on `target`.
|
|
37
|
+
* Nested objects are merged recursively.
|
|
38
|
+
*
|
|
39
|
+
* Object fields in the returned object are references, as in,
|
|
40
|
+
* the returned object is not completely fresh.
|
|
41
|
+
*/
|
|
42
|
+
function deepMerge(target, source) {
|
|
43
|
+
const output = { ...target };
|
|
44
|
+
if (isObject(target) && isObject(source)) {
|
|
45
|
+
for (const key of Object.keys(source)) {
|
|
46
|
+
const sourceValue = source[key];
|
|
47
|
+
if (isObject(sourceValue) && key in target && isObject(target[key])) {
|
|
48
|
+
output[key] = deepMerge(target[key], sourceValue);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
output[key] = sourceValue;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return output;
|
|
56
|
+
}
|
|
29
57
|
//# sourceMappingURL=objects-helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"objects-helpers.js","sourceRoot":"","sources":["../../src/internal-workflow/objects-helpers.ts"],"names":[],"mappings":";;AAGA,wDAEC;AAaD,oCAkBC;
|
|
1
|
+
{"version":3,"file":"objects-helpers.js","sourceRoot":"","sources":["../../src/internal-workflow/objects-helpers.ts"],"names":[],"mappings":";;AAGA,wDAEC;AAaD,oCAkBC;AAeD,8BAeC;AAlED;;GAEG;AACH,SAAgB,sBAAsB,CAAgC,GAAM;IAC1E,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAQ,CAAC;AACvF,CAAC;AAaD,SAAgB,YAAY,CAC1B,QAAuB,EACvB,KAAoB;IAEpB,IAAI,QAAQ,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IACnC,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,QAAQ,CAAC;IAEnC,MAAM,MAAM,GAAwB,EAAE,GAAG,QAAQ,EAAE,CAAC;IACpD,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3C,IAAI,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACpB,IAAI,CAAC,IAAI,IAAI;gBAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;;gBAC3B,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACnB,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC,CAAC,CAAE,MAAY,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC5C,CAAC;AAED,SAAS,QAAQ,CAAC,IAAS;IACzB,OAAO,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAClE,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,SAAS,CAAgC,MAAS,EAAE,MAAkB;IACpF,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAE7B,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACzC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACtC,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,QAAQ,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAQ,CAAC,EAAE,CAAC;gBAC3E,MAAM,CAAC,GAAc,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC;YAC/D,CAAC;iBAAM,CAAC;gBACL,MAAc,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare const TEMPORAL_RESERVED_PREFIX = "__temporal_";
|
|
2
|
+
export declare const STACK_TRACE_QUERY_NAME = "__stack_trace";
|
|
3
|
+
export declare const ENHANCED_STACK_TRACE_QUERY_NAME = "__enhanced_stack_trace";
|
|
4
|
+
/**
|
|
5
|
+
* Valid entity types that can be checked for reserved name violations
|
|
6
|
+
*/
|
|
7
|
+
export type ReservedNameEntityType = 'query' | 'signal' | 'update' | 'activity' | 'task queue' | 'sink' | 'workflow';
|
|
8
|
+
/**
|
|
9
|
+
* Validates if the provided name contains any reserved prefixes or matches any reserved names.
|
|
10
|
+
* Throws a TypeError if validation fails, with a specific message indicating whether the issue
|
|
11
|
+
* is with a reserved prefix or an exact match to a reserved name.
|
|
12
|
+
*
|
|
13
|
+
* @param type The entity type being checked
|
|
14
|
+
* @param name The name to check against reserved prefixes/names
|
|
15
|
+
*/
|
|
16
|
+
export declare function throwIfReservedName(type: ReservedNameEntityType, name: string): void;
|
package/lib/reserved.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ENHANCED_STACK_TRACE_QUERY_NAME = exports.STACK_TRACE_QUERY_NAME = exports.TEMPORAL_RESERVED_PREFIX = void 0;
|
|
4
|
+
exports.throwIfReservedName = throwIfReservedName;
|
|
5
|
+
exports.TEMPORAL_RESERVED_PREFIX = '__temporal_';
|
|
6
|
+
exports.STACK_TRACE_QUERY_NAME = '__stack_trace';
|
|
7
|
+
exports.ENHANCED_STACK_TRACE_QUERY_NAME = '__enhanced_stack_trace';
|
|
8
|
+
/**
|
|
9
|
+
* Validates if the provided name contains any reserved prefixes or matches any reserved names.
|
|
10
|
+
* Throws a TypeError if validation fails, with a specific message indicating whether the issue
|
|
11
|
+
* is with a reserved prefix or an exact match to a reserved name.
|
|
12
|
+
*
|
|
13
|
+
* @param type The entity type being checked
|
|
14
|
+
* @param name The name to check against reserved prefixes/names
|
|
15
|
+
*/
|
|
16
|
+
function throwIfReservedName(type, name) {
|
|
17
|
+
if (name.startsWith(exports.TEMPORAL_RESERVED_PREFIX)) {
|
|
18
|
+
throw new TypeError(`Cannot use ${type} name: '${name}', with reserved prefix: '${exports.TEMPORAL_RESERVED_PREFIX}'`);
|
|
19
|
+
}
|
|
20
|
+
if (name === exports.STACK_TRACE_QUERY_NAME || name === exports.ENHANCED_STACK_TRACE_QUERY_NAME) {
|
|
21
|
+
throw new TypeError(`Cannot use ${type} name: '${name}', which is a reserved name`);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=reserved.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reserved.js","sourceRoot":"","sources":["../src/reserved.ts"],"names":[],"mappings":";;;AAiBA,kDAQC;AAzBY,QAAA,wBAAwB,GAAG,aAAa,CAAC;AACzC,QAAA,sBAAsB,GAAG,eAAe,CAAC;AACzC,QAAA,+BAA+B,GAAG,wBAAwB,CAAC;AAOxE;;;;;;;GAOG;AACH,SAAgB,mBAAmB,CAAC,IAA4B,EAAE,IAAY;IAC5E,IAAI,IAAI,CAAC,UAAU,CAAC,gCAAwB,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,SAAS,CAAC,cAAc,IAAI,WAAW,IAAI,6BAA6B,gCAAwB,GAAG,CAAC,CAAC;IACjH,CAAC;IAED,IAAI,IAAI,KAAK,8BAAsB,IAAI,IAAI,KAAK,uCAA+B,EAAE,CAAC;QAChF,MAAM,IAAI,SAAS,CAAC,cAAc,IAAI,WAAW,IAAI,6BAA6B,CAAC,CAAC;IACtF,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { temporal } from '@temporalio/proto';
|
|
2
|
+
import { PayloadConverter } from './converter/payload-converter';
|
|
3
|
+
/**
|
|
4
|
+
* User metadata that can be attached to workflow commands.
|
|
5
|
+
*/
|
|
6
|
+
export interface UserMetadata {
|
|
7
|
+
/** @experimental A fixed, single line summary of the command's purpose */
|
|
8
|
+
staticSummary?: string;
|
|
9
|
+
/** @experimental Fixed additional details about the command for longer-text description, can span multiple lines */
|
|
10
|
+
staticDetails?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function userMetadataToPayload(payloadConverter: PayloadConverter, staticSummary: string | undefined, staticDetails: string | undefined): temporal.api.sdk.v1.IUserMetadata | undefined;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.userMetadataToPayload = userMetadataToPayload;
|
|
4
|
+
const payload_converter_1 = require("./converter/payload-converter");
|
|
5
|
+
function userMetadataToPayload(payloadConverter, staticSummary, staticDetails) {
|
|
6
|
+
if (staticSummary == null && staticDetails == null)
|
|
7
|
+
return undefined;
|
|
8
|
+
const summary = (0, payload_converter_1.convertOptionalToPayload)(payloadConverter, staticSummary);
|
|
9
|
+
const details = (0, payload_converter_1.convertOptionalToPayload)(payloadConverter, staticDetails);
|
|
10
|
+
if (summary == null && details == null)
|
|
11
|
+
return undefined;
|
|
12
|
+
return { summary, details };
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=user-metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-metadata.js","sourceRoot":"","sources":["../src/user-metadata.ts"],"names":[],"mappings":";;AAaA,sDAaC;AAzBD,qEAA2F;AAY3F,SAAgB,qBAAqB,CACnC,gBAAkC,EAClC,aAAiC,EACjC,aAAiC;IAEjC,IAAI,aAAa,IAAI,IAAI,IAAI,aAAa,IAAI,IAAI;QAAE,OAAO,SAAS,CAAC;IAErE,MAAM,OAAO,GAAG,IAAA,4CAAwB,EAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAG,IAAA,4CAAwB,EAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;IAE1E,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI;QAAE,OAAO,SAAS,CAAC;IAEzD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAC9B,CAAC"}
|
|
@@ -139,6 +139,20 @@ export interface BaseWorkflowOptions {
|
|
|
139
139
|
* by {@link typedSearchAttributes}.
|
|
140
140
|
*/
|
|
141
141
|
typedSearchAttributes?: SearchAttributePair[] | TypedSearchAttributes;
|
|
142
|
+
/**
|
|
143
|
+
* General fixed details for this workflow execution that may appear in UI/CLI.
|
|
144
|
+
* This can be in Temporal markdown format and can span multiple lines.
|
|
145
|
+
*
|
|
146
|
+
* @experimental User metadata is a new API and suspectible to change.
|
|
147
|
+
*/
|
|
148
|
+
staticDetails?: string;
|
|
149
|
+
/**
|
|
150
|
+
* A single-line fixed summary for this workflow execution that may appear in the UI/CLI.
|
|
151
|
+
* This can be in single-line Temporal markdown format.
|
|
152
|
+
*
|
|
153
|
+
* @experimental User metadata is a new API and suspectible to change.
|
|
154
|
+
*/
|
|
155
|
+
staticSummary?: string;
|
|
142
156
|
/**
|
|
143
157
|
* Priority of a workflow
|
|
144
158
|
*/
|
|
@@ -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":";;;;AAqQA,kDAWC;AA5QD,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;AAsIF,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.12.
|
|
3
|
+
"version": "1.12.3",
|
|
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.12.
|
|
15
|
+
"@temporalio/proto": "1.12.3",
|
|
16
16
|
"long": "^5.2.3",
|
|
17
17
|
"ms": "^3.0.0-canary.1",
|
|
18
18
|
"proto3-json-serializer": "^2.0.0"
|
|
@@ -39,5 +39,5 @@
|
|
|
39
39
|
"src",
|
|
40
40
|
"lib"
|
|
41
41
|
],
|
|
42
|
-
"gitHead": "
|
|
42
|
+
"gitHead": "e25f1d5ddaf0b5c755457b1cc1dde7c6e089a63b"
|
|
43
43
|
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { coresdk } from '@temporalio/proto';
|
|
2
|
+
|
|
3
|
+
// ts-prune-ignore-next
|
|
4
|
+
export interface ActivityCancellationDetailsHolder {
|
|
5
|
+
details?: ActivityCancellationDetails;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export interface ActivityCancellationDetailsOptions {
|
|
9
|
+
notFound?: boolean;
|
|
10
|
+
cancelRequested?: boolean;
|
|
11
|
+
paused?: boolean;
|
|
12
|
+
timedOut?: boolean;
|
|
13
|
+
workerShutdown?: boolean;
|
|
14
|
+
reset?: boolean;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Provides the reasons for the activity's cancellation. Cancellation details are set once and do not change once set.
|
|
19
|
+
*/
|
|
20
|
+
export class ActivityCancellationDetails {
|
|
21
|
+
readonly notFound: boolean;
|
|
22
|
+
readonly cancelRequested: boolean;
|
|
23
|
+
readonly paused: boolean;
|
|
24
|
+
readonly timedOut: boolean;
|
|
25
|
+
readonly workerShutdown: boolean;
|
|
26
|
+
readonly reset: boolean;
|
|
27
|
+
|
|
28
|
+
public constructor(options: ActivityCancellationDetailsOptions = {}) {
|
|
29
|
+
this.notFound = options.notFound ?? false;
|
|
30
|
+
this.cancelRequested = options.cancelRequested ?? false;
|
|
31
|
+
this.paused = options.paused ?? false;
|
|
32
|
+
this.timedOut = options.timedOut ?? false;
|
|
33
|
+
this.workerShutdown = options.workerShutdown ?? false;
|
|
34
|
+
this.reset = options.reset ?? false;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
static fromProto(
|
|
38
|
+
proto: coresdk.activity_task.IActivityCancellationDetails | null | undefined
|
|
39
|
+
): ActivityCancellationDetails {
|
|
40
|
+
if (proto == null) {
|
|
41
|
+
return new ActivityCancellationDetails();
|
|
42
|
+
}
|
|
43
|
+
return new ActivityCancellationDetails({
|
|
44
|
+
notFound: proto.isNotFound ?? false,
|
|
45
|
+
cancelRequested: proto.isCancelled ?? false,
|
|
46
|
+
paused: proto.isPaused ?? false,
|
|
47
|
+
timedOut: proto.isTimedOut ?? false,
|
|
48
|
+
workerShutdown: proto.isWorkerShutdown ?? false,
|
|
49
|
+
reset: proto.isReset ?? false,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
package/src/activity-options.ts
CHANGED
|
@@ -125,6 +125,14 @@ export interface ActivityOptions {
|
|
|
125
125
|
*/
|
|
126
126
|
versioningIntent?: VersioningIntent; // eslint-disable-line deprecation/deprecation
|
|
127
127
|
|
|
128
|
+
/**
|
|
129
|
+
* A fixed, single-line summary for this workflow execution that may appear in the UI/CLI.
|
|
130
|
+
* This can be in single-line Temporal markdown format.
|
|
131
|
+
*
|
|
132
|
+
* @experimental User metadata is a new API and suspectible to change.
|
|
133
|
+
*/
|
|
134
|
+
summary?: string;
|
|
135
|
+
|
|
128
136
|
/**
|
|
129
137
|
* Priority of this activity
|
|
130
138
|
*/
|
|
@@ -193,4 +201,12 @@ export interface LocalActivityOptions {
|
|
|
193
201
|
* - `ABANDON` - Do not request cancellation of the activity and immediately report cancellation to the workflow.
|
|
194
202
|
*/
|
|
195
203
|
cancellationType?: ActivityCancellationType;
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
* A fixed, single-line summary for this workflow execution that may appear in the UI/CLI.
|
|
207
|
+
* This can be in single-line Temporal markdown format.
|
|
208
|
+
*
|
|
209
|
+
* @experimental User metadata is a new API and suspectible to change.
|
|
210
|
+
*/
|
|
211
|
+
summary?: string;
|
|
196
212
|
}
|
|
@@ -44,6 +44,18 @@ export function toPayloads(converter: PayloadConverter, ...values: unknown[]): P
|
|
|
44
44
|
return values.map((value) => converter.toPayload(value));
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
+
/**
|
|
48
|
+
* Run {@link PayloadConverter.toPayload} on an optional value, and then encode it.
|
|
49
|
+
*/
|
|
50
|
+
export function convertOptionalToPayload(
|
|
51
|
+
payloadConverter: PayloadConverter,
|
|
52
|
+
value: unknown
|
|
53
|
+
): Payload | null | undefined {
|
|
54
|
+
if (value == null) return value;
|
|
55
|
+
|
|
56
|
+
return payloadConverter.toPayload(value);
|
|
57
|
+
}
|
|
58
|
+
|
|
47
59
|
/**
|
|
48
60
|
* Run {@link PayloadConverter.toPayload} on each value in the map.
|
|
49
61
|
*
|
|
@@ -100,6 +112,25 @@ export function mapFromPayloads<K extends string, T = unknown>(
|
|
|
100
112
|
) as Record<K, T>;
|
|
101
113
|
}
|
|
102
114
|
|
|
115
|
+
export declare const rawPayloadTypeBrand: unique symbol;
|
|
116
|
+
/**
|
|
117
|
+
* RawValue is a wrapper over a payload.
|
|
118
|
+
* A payload that belongs to a RawValue is special in that it bypasses user-defined payload converters,
|
|
119
|
+
* instead using the default payload converter. The payload still undergoes codec conversion.
|
|
120
|
+
*/
|
|
121
|
+
export class RawValue<T = unknown> {
|
|
122
|
+
private readonly _payload: Payload;
|
|
123
|
+
private readonly [rawPayloadTypeBrand]: T = undefined as T;
|
|
124
|
+
|
|
125
|
+
constructor(value: T, payloadConverter: PayloadConverter = defaultPayloadConverter) {
|
|
126
|
+
this._payload = payloadConverter.toPayload(value);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
get payload(): Payload {
|
|
130
|
+
return this._payload;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
103
134
|
export interface PayloadConverterWithEncoding {
|
|
104
135
|
/**
|
|
105
136
|
* Converts a value to a {@link Payload}.
|
|
@@ -143,6 +174,9 @@ export class CompositePayloadConverter implements PayloadConverter {
|
|
|
143
174
|
* Returns the first successful result, throws {@link ValueError} if there is no converter that can handle the value.
|
|
144
175
|
*/
|
|
145
176
|
public toPayload<T>(value: T): Payload {
|
|
177
|
+
if (value instanceof RawValue) {
|
|
178
|
+
return value.payload;
|
|
179
|
+
}
|
|
146
180
|
for (const converter of this.converters) {
|
|
147
181
|
const result = converter.toPayload(value);
|
|
148
182
|
if (result !== undefined) {
|
|
@@ -160,6 +194,7 @@ export class CompositePayloadConverter implements PayloadConverter {
|
|
|
160
194
|
if (payload.metadata === undefined || payload.metadata === null) {
|
|
161
195
|
throw new ValueError('Missing payload metadata');
|
|
162
196
|
}
|
|
197
|
+
|
|
163
198
|
const encoding = decode(payload.metadata[METADATA_ENCODING_KEY]);
|
|
164
199
|
const converter = this.converterByEncoding.get(encoding);
|
|
165
200
|
if (converter === undefined) {
|
package/src/index.ts
CHANGED
|
@@ -8,6 +8,7 @@ import * as encoding from './encoding';
|
|
|
8
8
|
import * as helpers from './type-helpers';
|
|
9
9
|
|
|
10
10
|
export * from './activity-options';
|
|
11
|
+
export { ActivityCancellationDetailsOptions, ActivityCancellationDetails } from './activity-cancellation-details';
|
|
11
12
|
export * from './converter/data-converter';
|
|
12
13
|
export * from './converter/failure-converter';
|
|
13
14
|
export * from './converter/payload-codec';
|
|
@@ -1,9 +1,16 @@
|
|
|
1
|
+
import type { temporal } from '@temporalio/proto';
|
|
1
2
|
import { Payload } from '../interfaces';
|
|
2
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
arrayFromPayloads,
|
|
5
|
+
convertOptionalToPayload,
|
|
6
|
+
fromPayloadsAtIndex,
|
|
7
|
+
toPayloads,
|
|
8
|
+
} from '../converter/payload-converter';
|
|
3
9
|
import { PayloadConverterError } from '../errors';
|
|
4
10
|
import { PayloadCodec } from '../converter/payload-codec';
|
|
5
11
|
import { ProtoFailure } from '../failure';
|
|
6
12
|
import { LoadedDataConverter } from '../converter/data-converter';
|
|
13
|
+
import { UserMetadata } from '../user-metadata';
|
|
7
14
|
import { DecodedPayload, DecodedProtoFailure, EncodedPayload, EncodedProtoFailure } from './codec-types';
|
|
8
15
|
|
|
9
16
|
/**
|
|
@@ -72,6 +79,17 @@ export async function decodeOptionalSingle(
|
|
|
72
79
|
return await decodeSingle(codecs, payload);
|
|
73
80
|
}
|
|
74
81
|
|
|
82
|
+
/** Run {@link PayloadCodec.decode} and convert from a single Payload */
|
|
83
|
+
export async function decodeOptionalSinglePayload<T>(
|
|
84
|
+
dataConverter: LoadedDataConverter,
|
|
85
|
+
payload?: Payload | null | undefined
|
|
86
|
+
): Promise<T | null | undefined> {
|
|
87
|
+
const { payloadConverter, payloadCodecs } = dataConverter;
|
|
88
|
+
const decoded = await decodeOptionalSingle(payloadCodecs, payload);
|
|
89
|
+
if (decoded == null) return decoded;
|
|
90
|
+
return payloadConverter.fromPayload(decoded);
|
|
91
|
+
}
|
|
92
|
+
|
|
75
93
|
/**
|
|
76
94
|
* Run {@link PayloadConverter.toPayload} on value, and then encode it.
|
|
77
95
|
*/
|
|
@@ -348,3 +366,32 @@ export function noopDecodeMap<K extends string>(
|
|
|
348
366
|
): Record<K, DecodedPayload> | null | undefined {
|
|
349
367
|
return map as Record<K, DecodedPayload> | null | undefined;
|
|
350
368
|
}
|
|
369
|
+
|
|
370
|
+
export async function encodeUserMetadata(
|
|
371
|
+
dataConverter: LoadedDataConverter,
|
|
372
|
+
staticSummary: string | undefined,
|
|
373
|
+
staticDetails: string | undefined
|
|
374
|
+
): Promise<temporal.api.sdk.v1.IUserMetadata | undefined> {
|
|
375
|
+
if (staticSummary == null && staticDetails == null) return undefined;
|
|
376
|
+
|
|
377
|
+
const { payloadConverter, payloadCodecs } = dataConverter;
|
|
378
|
+
const summary = await encodeOptionalSingle(payloadCodecs, convertOptionalToPayload(payloadConverter, staticSummary));
|
|
379
|
+
const details = await encodeOptionalSingle(payloadCodecs, convertOptionalToPayload(payloadConverter, staticDetails));
|
|
380
|
+
|
|
381
|
+
if (summary == null && details == null) return undefined;
|
|
382
|
+
|
|
383
|
+
return { summary, details };
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
export async function decodeUserMetadata(
|
|
387
|
+
dataConverter: LoadedDataConverter,
|
|
388
|
+
metadata: temporal.api.sdk.v1.IUserMetadata | undefined | null
|
|
389
|
+
): Promise<UserMetadata> {
|
|
390
|
+
const res = { staticSummary: undefined, staticDetails: undefined };
|
|
391
|
+
if (metadata == null) return res;
|
|
392
|
+
|
|
393
|
+
const staticSummary = (await decodeOptionalSinglePayload<string>(dataConverter, metadata.summary)) ?? undefined;
|
|
394
|
+
const staticDetails = (await decodeOptionalSinglePayload<string>(dataConverter, metadata.details)) ?? undefined;
|
|
395
|
+
|
|
396
|
+
return { staticSummary, staticDetails };
|
|
397
|
+
}
|
|
@@ -35,3 +35,33 @@ export function mergeObjects<T extends Record<string, any>>(
|
|
|
35
35
|
|
|
36
36
|
return changed ? (merged as T) : original;
|
|
37
37
|
}
|
|
38
|
+
|
|
39
|
+
function isObject(item: any): item is Record<string, any> {
|
|
40
|
+
return item && typeof item === 'object' && !Array.isArray(item);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Recursively merges two objects, returning a new object.
|
|
45
|
+
*
|
|
46
|
+
* Properties from `source` will overwrite properties on `target`.
|
|
47
|
+
* Nested objects are merged recursively.
|
|
48
|
+
*
|
|
49
|
+
* Object fields in the returned object are references, as in,
|
|
50
|
+
* the returned object is not completely fresh.
|
|
51
|
+
*/
|
|
52
|
+
export function deepMerge<T extends Record<string, any>>(target: T, source: Partial<T>): T {
|
|
53
|
+
const output = { ...target };
|
|
54
|
+
|
|
55
|
+
if (isObject(target) && isObject(source)) {
|
|
56
|
+
for (const key of Object.keys(source)) {
|
|
57
|
+
const sourceValue = source[key];
|
|
58
|
+
if (isObject(sourceValue) && key in target && isObject(target[key] as any)) {
|
|
59
|
+
output[key as keyof T] = deepMerge(target[key], sourceValue);
|
|
60
|
+
} else {
|
|
61
|
+
(output as any)[key] = sourceValue;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
return output;
|
|
67
|
+
}
|
package/src/reserved.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export const TEMPORAL_RESERVED_PREFIX = '__temporal_';
|
|
2
|
+
export const STACK_TRACE_QUERY_NAME = '__stack_trace';
|
|
3
|
+
export const ENHANCED_STACK_TRACE_QUERY_NAME = '__enhanced_stack_trace';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Valid entity types that can be checked for reserved name violations
|
|
7
|
+
*/
|
|
8
|
+
export type ReservedNameEntityType = 'query' | 'signal' | 'update' | 'activity' | 'task queue' | 'sink' | 'workflow';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Validates if the provided name contains any reserved prefixes or matches any reserved names.
|
|
12
|
+
* Throws a TypeError if validation fails, with a specific message indicating whether the issue
|
|
13
|
+
* is with a reserved prefix or an exact match to a reserved name.
|
|
14
|
+
*
|
|
15
|
+
* @param type The entity type being checked
|
|
16
|
+
* @param name The name to check against reserved prefixes/names
|
|
17
|
+
*/
|
|
18
|
+
export function throwIfReservedName(type: ReservedNameEntityType, name: string): void {
|
|
19
|
+
if (name.startsWith(TEMPORAL_RESERVED_PREFIX)) {
|
|
20
|
+
throw new TypeError(`Cannot use ${type} name: '${name}', with reserved prefix: '${TEMPORAL_RESERVED_PREFIX}'`);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
if (name === STACK_TRACE_QUERY_NAME || name === ENHANCED_STACK_TRACE_QUERY_NAME) {
|
|
24
|
+
throw new TypeError(`Cannot use ${type} name: '${name}', which is a reserved name`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { temporal } from '@temporalio/proto';
|
|
2
|
+
import { convertOptionalToPayload, PayloadConverter } from './converter/payload-converter';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* User metadata that can be attached to workflow commands.
|
|
6
|
+
*/
|
|
7
|
+
export interface UserMetadata {
|
|
8
|
+
/** @experimental A fixed, single line summary of the command's purpose */
|
|
9
|
+
staticSummary?: string;
|
|
10
|
+
/** @experimental Fixed additional details about the command for longer-text description, can span multiple lines */
|
|
11
|
+
staticDetails?: string;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export function userMetadataToPayload(
|
|
15
|
+
payloadConverter: PayloadConverter,
|
|
16
|
+
staticSummary: string | undefined,
|
|
17
|
+
staticDetails: string | undefined
|
|
18
|
+
): temporal.api.sdk.v1.IUserMetadata | undefined {
|
|
19
|
+
if (staticSummary == null && staticDetails == null) return undefined;
|
|
20
|
+
|
|
21
|
+
const summary = convertOptionalToPayload(payloadConverter, staticSummary);
|
|
22
|
+
const details = convertOptionalToPayload(payloadConverter, staticDetails);
|
|
23
|
+
|
|
24
|
+
if (summary == null && details == null) return undefined;
|
|
25
|
+
|
|
26
|
+
return { summary, details };
|
|
27
|
+
}
|
package/src/workflow-options.ts
CHANGED
|
@@ -193,6 +193,21 @@ export interface BaseWorkflowOptions {
|
|
|
193
193
|
*/
|
|
194
194
|
typedSearchAttributes?: SearchAttributePair[] | TypedSearchAttributes;
|
|
195
195
|
|
|
196
|
+
/**
|
|
197
|
+
* General fixed details for this workflow execution that may appear in UI/CLI.
|
|
198
|
+
* This can be in Temporal markdown format and can span multiple lines.
|
|
199
|
+
*
|
|
200
|
+
* @experimental User metadata is a new API and suspectible to change.
|
|
201
|
+
*/
|
|
202
|
+
staticDetails?: string;
|
|
203
|
+
/**
|
|
204
|
+
* A single-line fixed summary for this workflow execution that may appear in the UI/CLI.
|
|
205
|
+
* This can be in single-line Temporal markdown format.
|
|
206
|
+
*
|
|
207
|
+
* @experimental User metadata is a new API and suspectible to change.
|
|
208
|
+
*/
|
|
209
|
+
staticSummary?: string;
|
|
210
|
+
|
|
196
211
|
/**
|
|
197
212
|
* Priority of a workflow
|
|
198
213
|
*/
|