@workflow/core 4.2.5 → 4.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/classify-error.d.ts.map +1 -1
- package/dist/classify-error.js +5 -2
- package/dist/encryption.d.ts +7 -1
- package/dist/encryption.d.ts.map +1 -1
- package/dist/encryption.js +13 -6
- package/dist/events-consumer.d.ts +8 -0
- package/dist/events-consumer.d.ts.map +1 -1
- package/dist/events-consumer.js +19 -1
- package/dist/flushable-stream.d.ts.map +1 -1
- package/dist/flushable-stream.js +6 -2
- package/dist/private.d.ts +71 -0
- package/dist/private.d.ts.map +1 -1
- package/dist/private.js +66 -1
- package/dist/runtime/constants.d.ts +1 -0
- package/dist/runtime/constants.d.ts.map +1 -1
- package/dist/runtime/constants.js +5 -1
- package/dist/runtime/helpers.d.ts.map +1 -1
- package/dist/runtime/helpers.js +61 -9
- package/dist/runtime/step-handler.d.ts.map +1 -1
- package/dist/runtime/step-handler.js +3 -2
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +51 -15
- package/dist/serialization.d.ts +13 -1
- package/dist/serialization.d.ts.map +1 -1
- package/dist/serialization.js +150 -16
- package/dist/source-map.d.ts.map +1 -1
- package/dist/source-map.js +44 -6
- package/dist/step/context-storage.d.ts +2 -0
- package/dist/step/context-storage.d.ts.map +1 -1
- package/dist/step/context-storage.js +1 -1
- package/dist/step/writable-stream.d.ts.map +1 -1
- package/dist/step/writable-stream.js +23 -1
- package/dist/step.d.ts.map +1 -1
- package/dist/step.js +6 -6
- package/dist/symbols.d.ts +22 -0
- package/dist/symbols.d.ts.map +1 -1
- package/dist/symbols.js +23 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +2 -2
- package/dist/workflow/hook.d.ts.map +1 -1
- package/dist/workflow/hook.js +80 -31
- package/dist/workflow/sleep.d.ts.map +1 -1
- package/dist/workflow/sleep.js +27 -9
- package/dist/workflow.d.ts.map +1 -1
- package/dist/workflow.js +10 -14
- package/package.json +5 -5
package/dist/source-map.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-map.d.ts","sourceRoot":"","sources":["../src/source-map.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"source-map.d.ts","sourceRoot":"","sources":["../src/source-map.ts"],"names":[],"mappings":"AAqDA;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACnB,MAAM,CAsDR"}
|
package/dist/source-map.js
CHANGED
|
@@ -1,4 +1,44 @@
|
|
|
1
1
|
import { originalPositionFor, TraceMap } from '@jridgewell/trace-mapping';
|
|
2
|
+
function isBase64Char(code) {
|
|
3
|
+
return ((code >= 0x41 && code <= 0x5a) ||
|
|
4
|
+
(code >= 0x61 && code <= 0x7a) ||
|
|
5
|
+
(code >= 0x30 && code <= 0x39) ||
|
|
6
|
+
code === 0x2b ||
|
|
7
|
+
code === 0x2f ||
|
|
8
|
+
code === 0x3d);
|
|
9
|
+
}
|
|
10
|
+
function extractInlineSourceMapBase64(source) {
|
|
11
|
+
const sourceMapPrefix = '//# sourceMappingURL=data:application/json';
|
|
12
|
+
const base64Marker = ';base64,';
|
|
13
|
+
let scanFrom = 0;
|
|
14
|
+
while (scanFrom < source.length) {
|
|
15
|
+
const prefixIdx = source.indexOf(sourceMapPrefix, scanFrom);
|
|
16
|
+
if (prefixIdx === -1)
|
|
17
|
+
return undefined;
|
|
18
|
+
const base64Start = source.indexOf(base64Marker, prefixIdx + sourceMapPrefix.length);
|
|
19
|
+
if (base64Start === -1) {
|
|
20
|
+
scanFrom = prefixIdx + sourceMapPrefix.length;
|
|
21
|
+
continue;
|
|
22
|
+
}
|
|
23
|
+
const commaBefore = source.indexOf(',', prefixIdx);
|
|
24
|
+
if (commaBefore !== -1 && commaBefore < base64Start) {
|
|
25
|
+
scanFrom = base64Start + base64Marker.length;
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
const valueStart = base64Start + base64Marker.length;
|
|
29
|
+
let valueEnd = valueStart;
|
|
30
|
+
while (valueEnd < source.length) {
|
|
31
|
+
if (!isBase64Char(source.charCodeAt(valueEnd))) {
|
|
32
|
+
break;
|
|
33
|
+
}
|
|
34
|
+
valueEnd++;
|
|
35
|
+
}
|
|
36
|
+
if (valueEnd > valueStart) {
|
|
37
|
+
return source.slice(valueStart, valueEnd);
|
|
38
|
+
}
|
|
39
|
+
scanFrom = valueEnd;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
2
42
|
/**
|
|
3
43
|
* Remaps an error stack trace using inline source maps to show original source locations.
|
|
4
44
|
*
|
|
@@ -8,13 +48,11 @@ import { originalPositionFor, TraceMap } from '@jridgewell/trace-mapping';
|
|
|
8
48
|
* @returns The remapped stack trace with original source locations
|
|
9
49
|
*/
|
|
10
50
|
export function remapErrorStack(stack, filename, workflowCode) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
if (!sourceMapMatch) {
|
|
51
|
+
const base64 = extractInlineSourceMapBase64(workflowCode);
|
|
52
|
+
if (!base64) {
|
|
14
53
|
return stack; // No source map found
|
|
15
54
|
}
|
|
16
55
|
try {
|
|
17
|
-
const base64 = sourceMapMatch[1];
|
|
18
56
|
const sourceMapJson = Buffer.from(base64, 'base64').toString('utf-8');
|
|
19
57
|
const sourceMapData = JSON.parse(sourceMapJson);
|
|
20
58
|
// Use TraceMap (pure JS, no WASM required)
|
|
@@ -48,9 +86,9 @@ export function remapErrorStack(stack, filename, workflowCode) {
|
|
|
48
86
|
});
|
|
49
87
|
return remappedLines.join('\n');
|
|
50
88
|
}
|
|
51
|
-
catch
|
|
89
|
+
catch {
|
|
52
90
|
// If source map processing fails, return original stack
|
|
53
91
|
return stack;
|
|
54
92
|
}
|
|
55
93
|
}
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLW1hcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zb3VyY2UtbWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUxRSxTQUFTLFlBQVksQ0FBQyxJQUFZO0lBQ2hDLE9BQU8sQ0FDTCxDQUFDLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQztRQUM5QixDQUFDLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQztRQUM5QixDQUFDLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQztRQUM5QixJQUFJLEtBQUssSUFBSTtRQUNiLElBQUksS0FBSyxJQUFJO1FBQ2IsSUFBSSxLQUFLLElBQUksQ0FDZCxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsNEJBQTRCLENBQUMsTUFBYztJQUNsRCxNQUFNLGVBQWUsR0FBRyw0Q0FBNEMsQ0FBQztJQUNyRSxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUM7SUFDaEMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBRWpCLE9BQU8sUUFBUSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM1RCxJQUFJLFNBQVMsS0FBSyxDQUFDLENBQUM7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUV2QyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUNoQyxZQUFZLEVBQ1osU0FBUyxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQ25DLENBQUM7UUFDRixJQUFJLFdBQVcsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLFFBQVEsR0FBRyxTQUFTLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQztZQUM5QyxT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UUFBUSxDQUFDLElBQUksSUFBSSxXQUFXLENBQUM7Z0JBQzFELE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7Z0JBQ3RFLE9BQU8sVUFBVSxJQUFJLEtBQUssUUFBUSxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUMsSUFBSSxJQUFJLEdBQUcsR0FBRyxDQUFDO1lBQ3ZFLENBQUM7WUFFRCxPQUFPLElBQUksQ0FBQyxDQUFDLGdDQUFnQztRQUMvQyxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1Asd0RBQXdEO1FBQ3hELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBvcmlnaW5hbFBvc2l0aW9uRm9yLCBUcmFjZU1hcCB9IGZyb20gJ0BqcmlkZ2V3ZWxsL3RyYWNlLW1hcHBpbmcnO1xuXG5mdW5jdGlvbiBpc0Jhc2U2NENoYXIoY29kZTogbnVtYmVyKTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgKGNvZGUgPj0gMHg0MSAmJiBjb2RlIDw9IDB4NWEpIHx8XG4gICAgKGNvZGUgPj0gMHg2MSAmJiBjb2RlIDw9IDB4N2EpIHx8XG4gICAgKGNvZGUgPj0gMHgzMCAmJiBjb2RlIDw9IDB4MzkpIHx8XG4gICAgY29kZSA9PT0gMHgyYiB8fFxuICAgIGNvZGUgPT09IDB4MmYgfHxcbiAgICBjb2RlID09PSAweDNkXG4gICk7XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RJbmxpbmVTb3VyY2VNYXBCYXNlNjQoc291cmNlOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCBzb3VyY2VNYXBQcmVmaXggPSAnLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uJztcbiAgY29uc3QgYmFzZTY0TWFya2VyID0gJztiYXNlNjQsJztcbiAgbGV0IHNjYW5Gcm9tID0gMDtcblxuICB3aGlsZSAoc2NhbkZyb20gPCBzb3VyY2UubGVuZ3RoKSB7XG4gICAgY29uc3QgcHJlZml4SWR4ID0gc291cmNlLmluZGV4T2Yoc291cmNlTWFwUHJlZml4LCBzY2FuRnJvbSk7XG4gICAgaWYgKHByZWZpeElkeCA9PT0gLTEpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBiYXNlNjRTdGFydCA9IHNvdXJjZS5pbmRleE9mKFxuICAgICAgYmFzZTY0TWFya2VyLFxuICAgICAgcHJlZml4SWR4ICsgc291cmNlTWFwUHJlZml4Lmxlbmd0aFxuICAgICk7XG4gICAgaWYgKGJhc2U2NFN0YXJ0ID09PSAtMSkge1xuICAgICAgc2NhbkZyb20gPSBwcmVmaXhJZHggKyBzb3VyY2VNYXBQcmVmaXgubGVuZ3RoO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgY29tbWFCZWZvcmUgPSBzb3VyY2UuaW5kZXhPZignLCcsIHByZWZpeElkeCk7XG4gICAgaWYgKGNvbW1hQmVmb3JlICE9PSAtMSAmJiBjb21tYUJlZm9yZSA8IGJhc2U2NFN0YXJ0KSB7XG4gICAgICBzY2FuRnJvbSA9IGJhc2U2NFN0YXJ0ICsgYmFzZTY0TWFya2VyLmxlbmd0aDtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlU3RhcnQgPSBiYXNlNjRTdGFydCArIGJhc2U2NE1hcmtlci5sZW5ndGg7XG4gICAgbGV0IHZhbHVlRW5kID0gdmFsdWVTdGFydDtcbiAgICB3aGlsZSAodmFsdWVFbmQgPCBzb3VyY2UubGVuZ3RoKSB7XG4gICAgICBpZiAoIWlzQmFzZTY0Q2hhcihzb3VyY2UuY2hhckNvZGVBdCh2YWx1ZUVuZCkpKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgdmFsdWVFbmQrKztcbiAgICB9XG5cbiAgICBpZiAodmFsdWVFbmQgPiB2YWx1ZVN0YXJ0KSB7XG4gICAgICByZXR1cm4gc291cmNlLnNsaWNlKHZhbHVlU3RhcnQsIHZhbHVlRW5kKTtcbiAgICB9XG4gICAgc2NhbkZyb20gPSB2YWx1ZUVuZDtcbiAgfVxufVxuXG4vKipcbiAqIFJlbWFwcyBhbiBlcnJvciBzdGFjayB0cmFjZSB1c2luZyBpbmxpbmUgc291cmNlIG1hcHMgdG8gc2hvdyBvcmlnaW5hbCBzb3VyY2UgbG9jYXRpb25zLlxuICpcbiAqIEBwYXJhbSBzdGFjayAtIFRoZSBlcnJvciBzdGFjayB0cmFjZSB0byByZW1hcFxuICogQHBhcmFtIGZpbGVuYW1lIC0gVGhlIHdvcmtmbG93IGZpbGVuYW1lIHRvIG1hdGNoIGluIHN0YWNrIGZyYW1lc1xuICogQHBhcmFtIHdvcmtmbG93Q29kZSAtIFRoZSB3b3JrZmxvdyBidW5kbGUgY29kZSBjb250YWluaW5nIGlubGluZSBzb3VyY2UgbWFwc1xuICogQHJldHVybnMgVGhlIHJlbWFwcGVkIHN0YWNrIHRyYWNlIHdpdGggb3JpZ2luYWwgc291cmNlIGxvY2F0aW9uc1xuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtYXBFcnJvclN0YWNrKFxuICBzdGFjazogc3RyaW5nLFxuICBmaWxlbmFtZTogc3RyaW5nLFxuICB3b3JrZmxvd0NvZGU6IHN0cmluZ1xuKTogc3RyaW5nIHtcbiAgY29uc3QgYmFzZTY0ID0gZXh0cmFjdElubGluZVNvdXJjZU1hcEJhc2U2NCh3b3JrZmxvd0NvZGUpO1xuICBpZiAoIWJhc2U2NCkge1xuICAgIHJldHVybiBzdGFjazsgLy8gTm8gc291cmNlIG1hcCBmb3VuZFxuICB9XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBzb3VyY2VNYXBKc29uID0gQnVmZmVyLmZyb20oYmFzZTY0LCAnYmFzZTY0JykudG9TdHJpbmcoJ3V0Zi04Jyk7XG4gICAgY29uc3Qgc291cmNlTWFwRGF0YSA9IEpTT04ucGFyc2Uoc291cmNlTWFwSnNvbik7XG5cbiAgICAvLyBVc2UgVHJhY2VNYXAgKHB1cmUgSlMsIG5vIFdBU00gcmVxdWlyZWQpXG4gICAgY29uc3QgdHJhY2VyID0gbmV3IFRyYWNlTWFwKHNvdXJjZU1hcERhdGEpO1xuXG4gICAgLy8gUGFyc2UgYW5kIHJlbWFwIGVhY2ggbGluZSBpbiB0aGUgc3RhY2sgdHJhY2VcbiAgICBjb25zdCBsaW5lcyA9IHN0YWNrLnNwbGl0KCdcXG4nKTtcbiAgICBjb25zdCByZW1hcHBlZExpbmVzID0gbGluZXMubWFwKChsaW5lKSA9PiB7XG4gICAgICAvLyBNYXRjaCBzdGFjayBmcmFtZXM6IFwiYXQgZnVuY3Rpb25OYW1lIChmaWxlbmFtZTpsaW5lOmNvbHVtbilcIiBvciBcImF0IGZpbGVuYW1lOmxpbmU6Y29sdW1uXCJcbiAgICAgIGNvbnN0IGZyYW1lTWF0Y2ggPSBsaW5lLm1hdGNoKFxuICAgICAgICAvXlxccyphdFxccysoPzooLis/KVxccytcXCgpPyguKz8pOihcXGQrKTooXFxkKylcXCk/JC9cbiAgICAgICk7XG4gICAgICBpZiAoIWZyYW1lTWF0Y2gpIHtcbiAgICAgICAgcmV0dXJuIGxpbmU7IC8vIE5vdCBhIHN0YWNrIGZyYW1lLCByZXR1cm4gYXMtaXNcbiAgICAgIH1cblxuICAgICAgY29uc3QgWywgZnVuY3Rpb25OYW1lLCBmaWxlLCBsaW5lU3RyLCBjb2xTdHJdID0gZnJhbWVNYXRjaDtcblxuICAgICAgLy8gT25seSByZW1hcCBmcmFtZXMgZnJvbSBvdXIgd29ya2Zsb3cgZmlsZVxuICAgICAgaWYgKCFmaWxlLmluY2x1ZGVzKGZpbGVuYW1lKSkge1xuICAgICAgICByZXR1cm4gbGluZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbGluZU51bWJlciA9IHBhcnNlSW50KGxpbmVTdHIsIDEwKTtcbiAgICAgIGNvbnN0IGNvbHVtbk51bWJlciA9IHBhcnNlSW50KGNvbFN0ciwgMTApO1xuXG4gICAgICAvLyBNYXAgdG8gb3JpZ2luYWwgc291cmNlIHBvc2l0aW9uXG4gICAgICBjb25zdCBvcmlnaW5hbCA9IG9yaWdpbmFsUG9zaXRpb25Gb3IodHJhY2VyLCB7XG4gICAgICAgIGxpbmU6IGxpbmVOdW1iZXIsXG4gICAgICAgIGNvbHVtbjogY29sdW1uTnVtYmVyLFxuICAgICAgfSk7XG5cbiAgICAgIGlmIChvcmlnaW5hbC5zb3VyY2UgJiYgb3JpZ2luYWwubGluZSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBmdW5jID0gZnVuY3Rpb25OYW1lIHx8IG9yaWdpbmFsLm5hbWUgfHwgJ2Fub255bW91cyc7XG4gICAgICAgIGNvbnN0IGNvbCA9IG9yaWdpbmFsLmNvbHVtbiAhPT0gbnVsbCA/IG9yaWdpbmFsLmNvbHVtbiA6IGNvbHVtbk51bWJlcjtcbiAgICAgICAgcmV0dXJuIGAgICAgYXQgJHtmdW5jfSAoJHtvcmlnaW5hbC5zb3VyY2V9OiR7b3JpZ2luYWwubGluZX06JHtjb2x9KWA7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBsaW5lOyAvLyBDb3VsZG4ndCBtYXAsIHJldHVybiBvcmlnaW5hbFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlbWFwcGVkTGluZXMuam9pbignXFxuJyk7XG4gIH0gY2F0Y2gge1xuICAgIC8vIElmIHNvdXJjZSBtYXAgcHJvY2Vzc2luZyBmYWlscywgcmV0dXJuIG9yaWdpbmFsIHN0YWNrXG4gICAgcmV0dXJuIHN0YWNrO1xuICB9XG59XG4iXX0=
|
|
@@ -5,6 +5,8 @@ import type { StepMetadata } from './get-step-metadata.js';
|
|
|
5
5
|
export type StepContext = {
|
|
6
6
|
stepMetadata: StepMetadata;
|
|
7
7
|
workflowMetadata: WorkflowMetadata;
|
|
8
|
+
/** Deployment that owns the current workflow run, used for forwarded streams. */
|
|
9
|
+
workflowDeploymentId?: string;
|
|
8
10
|
ops: Promise<void>[];
|
|
9
11
|
closureVars?: Record<string, any>;
|
|
10
12
|
encryptionKey?: CryptoKey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-storage.d.ts","sourceRoot":"","sources":["../../src/step/context-storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,MAAM,WAAW,GAAG;IACxB,YAAY,EAAE,YAAY,CAAC;IAC3B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,aAAa,CAAC,EAAE,SAAS,CAAC;CAC3B,CAAC;AAoBF,eAAO,MAAM,cAAc,EAAE,iBAAiB,CAAC,WAAW,CAKjB,CAAC"}
|
|
1
|
+
{"version":3,"file":"context-storage.d.ts","sourceRoot":"","sources":["../../src/step/context-storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,MAAM,WAAW,GAAG;IACxB,YAAY,EAAE,YAAY,CAAC;IAC3B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,iFAAiF;IACjF,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,aAAa,CAAC,EAAE,SAAS,CAAC;CAC3B,CAAC;AAoBF,eAAO,MAAM,cAAc,EAAE,iBAAiB,CAAC,WAAW,CAKjB,CAAC"}
|
|
@@ -19,4 +19,4 @@ const CONTEXT_STORAGE_SYMBOL = Symbol.for('WORKFLOW_STEP_CONTEXT_STORAGE');
|
|
|
19
19
|
export const contextStorage = globalThis[CONTEXT_STORAGE_SYMBOL] ??
|
|
20
20
|
(globalThis[CONTEXT_STORAGE_SYMBOL] =
|
|
21
21
|
new AsyncLocalStorage());
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1zdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0ZXAvY29udGV4dC1zdG9yYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBZXJEOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILE1BQU0sc0JBQXNCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0FBRTNFLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FDdkIsVUFBa0IsQ0FBQyxzQkFBc0IsQ0FFN0I7SUFDZCxDQUFFLFVBQWtCLENBQUMsc0JBQXNCLENBQUM7UUFDMUMsSUFBSSxpQkFBaUIsRUFBZSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY0xvY2FsU3RvcmFnZSB9IGZyb20gJ25vZGU6YXN5bmNfaG9va3MnO1xuaW1wb3J0IHR5cGUgeyBDcnlwdG9LZXkgfSBmcm9tICcuLi9lbmNyeXB0aW9uLmpzJztcbmltcG9ydCB0eXBlIHsgV29ya2Zsb3dNZXRhZGF0YSB9IGZyb20gJy4uL3dvcmtmbG93L2dldC13b3JrZmxvdy1tZXRhZGF0YS5qcyc7XG5pbXBvcnQgdHlwZSB7IFN0ZXBNZXRhZGF0YSB9IGZyb20gJy4vZ2V0LXN0ZXAtbWV0YWRhdGEuanMnO1xuXG5leHBvcnQgdHlwZSBTdGVwQ29udGV4dCA9IHtcbiAgc3RlcE1ldGFkYXRhOiBTdGVwTWV0YWRhdGE7XG4gIHdvcmtmbG93TWV0YWRhdGE6IFdvcmtmbG93TWV0YWRhdGE7XG4gIC8qKiBEZXBsb3ltZW50IHRoYXQgb3ducyB0aGUgY3VycmVudCB3b3JrZmxvdyBydW4sIHVzZWQgZm9yIGZvcndhcmRlZCBzdHJlYW1zLiAqL1xuICB3b3JrZmxvd0RlcGxveW1lbnRJZD86IHN0cmluZztcbiAgb3BzOiBQcm9taXNlPHZvaWQ+W107XG4gIGNsb3N1cmVWYXJzPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgZW5jcnlwdGlvbktleT86IENyeXB0b0tleTtcbn07XG5cbi8qKlxuICogUHJvY2Vzcy13aWRlIHNpbmdsZXRvbiBBc3luY0xvY2FsU3RvcmFnZSBmb3Igc3RlcCBleGVjdXRpb24gY29udGV4dC5cbiAqXG4gKiBVc2VzIGBTeW1ib2wuZm9yKClgIG9uIGdsb2JhbFRoaXMgdG8gZ3VhcmFudGVlIGEgc2luZ2xlIGluc3RhbmNlIGV2ZW4gd2hlblxuICogYnVuZGxlcnMgKGUuZy4gVmVyY2VsJ3MgcHJvZHVjdGlvbiBidW5kbGVyKSBjcmVhdGUgbXVsdGlwbGUgY29waWVzIG9mIHRoaXNcbiAqIG1vZHVsZS4gV2l0aG91dCB0aGlzLCBgY29udGV4dFN0b3JhZ2UucnVuKClgIGluIHRoZSBzdGVwIGhhbmRsZXIgYW5kXG4gKiBgY29udGV4dFN0b3JhZ2UuZ2V0U3RvcmUoKWAgaW4gdXNlciBjb2RlICh2aWEgZ2V0V29ya2Zsb3dNZXRhZGF0YSAvXG4gKiBnZXRTdGVwTWV0YWRhdGEpIGNhbiByZWZlcmVuY2UgZGlmZmVyZW50IEFzeW5jTG9jYWxTdG9yYWdlIGluc3RhbmNlcyxcbiAqIGNhdXNpbmcgdGhlIHN0b3JlIHRvIGFwcGVhciBlbXB0eS5cbiAqXG4gKiBOb3RlIHRoYXQgd2Ugd2VyZSB1bmFibGUgdG8gcmVwcm9kdWNlIHRoaXMgaXNzdWUuIFRoaXMgaXMgYSBmaXggZm9yIHRoZSBvbmx5IHN5bnRoZXRpYyB3YXlcbiAqIHdheSBpbiB3aGljaCB3ZSBjb3VsZCBnZXQgdGhlIGJ1aWxkZXIgdG8gYnJlYWsgd2l0aCB0aGUgcmVwb3J0ZWQgZXJyb3IgbWVzc2FnZSwgYW5kXG4gKiBzZXJ2ZXMgYXMgZGVmZW5zZS1pbi1kZXB0aCwgc2luY2UgdGhlIGNoYW5nZSBpcyBvdGhlcndpc2Ugc2FmZS5cbiAqXG4gKiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvd29ya2Zsb3cvaXNzdWVzLzE1NzdcbiAqL1xuY29uc3QgQ09OVEVYVF9TVE9SQUdFX1NZTUJPTCA9IFN5bWJvbC5mb3IoJ1dPUktGTE9XX1NURVBfQ09OVEVYVF9TVE9SQUdFJyk7XG5cbmV4cG9ydCBjb25zdCBjb250ZXh0U3RvcmFnZTogQXN5bmNMb2NhbFN0b3JhZ2U8U3RlcENvbnRleHQ+ID1cbiAgKChnbG9iYWxUaGlzIGFzIGFueSlbQ09OVEVYVF9TVE9SQUdFX1NZTUJPTF0gYXNcbiAgICB8IEFzeW5jTG9jYWxTdG9yYWdlPFN0ZXBDb250ZXh0PlxuICAgIHwgdW5kZWZpbmVkKSA/P1xuICAoKGdsb2JhbFRoaXMgYXMgYW55KVtDT05URVhUX1NUT1JBR0VfU1lNQk9MXSA9XG4gICAgbmV3IEFzeW5jTG9jYWxTdG9yYWdlPFN0ZXBDb250ZXh0PigpKTtcbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writable-stream.d.ts","sourceRoot":"","sources":["../../src/step/writable-stream.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"writable-stream.d.ts","sourceRoot":"","sources":["../../src/step/writable-stream.ts"],"names":[],"mappings":"AAkBA;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,CAAC,GAAG,GAAG,EACjC,OAAO,GAAE,6BAAkC,GAC1C,cAAc,CAAC,CAAC,CAAC,CA4DnB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createFlushableState, flushablePipe, pollWritableLock, } from '../flushable-stream.js';
|
|
2
2
|
import { getExternalReducers, getSerializeStream, WorkflowServerWritableStream, } from '../serialization.js';
|
|
3
|
+
import { STREAM_NAME_SYMBOL, STREAM_SERVER_DEPLOYMENT_ID_SYMBOL, STREAM_SERVER_RUN_ID_SYMBOL, } from '../symbols.js';
|
|
3
4
|
import { getWorkflowRunStreamId } from '../util.js';
|
|
4
5
|
import { contextStorage } from './context-storage.js';
|
|
5
6
|
/**
|
|
@@ -33,7 +34,28 @@ export function getWritable(options = {}) {
|
|
|
33
34
|
// Errors are handled via state.reject
|
|
34
35
|
});
|
|
35
36
|
pollWritableLock(serialize.writable, state);
|
|
37
|
+
// Tag the writable with its underlying `(runId, name)` so downstream
|
|
38
|
+
// reducers can recognize that it's already backed by a workflow
|
|
39
|
+
// server stream. Calling `start(child, [args, theWritable])` from
|
|
40
|
+
// the same step uses these tags to emit `{ name, runId }` in the
|
|
41
|
+
// dehydrated descriptor, so the child's reviver can open the
|
|
42
|
+
// writable against the original `(runId, name)` directly — no
|
|
43
|
+
// in-process bridge tied to this step's lifetime.
|
|
44
|
+
Object.defineProperty(serialize.writable, STREAM_NAME_SYMBOL, {
|
|
45
|
+
value: name,
|
|
46
|
+
writable: false,
|
|
47
|
+
});
|
|
48
|
+
Object.defineProperty(serialize.writable, STREAM_SERVER_RUN_ID_SYMBOL, {
|
|
49
|
+
value: runId,
|
|
50
|
+
writable: false,
|
|
51
|
+
});
|
|
52
|
+
if (ctx.workflowDeploymentId) {
|
|
53
|
+
Object.defineProperty(serialize.writable, STREAM_SERVER_DEPLOYMENT_ID_SYMBOL, {
|
|
54
|
+
value: ctx.workflowDeploymentId,
|
|
55
|
+
writable: false,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
36
58
|
// Return the writable side of the transform stream
|
|
37
59
|
return serialize.writable;
|
|
38
60
|
}
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGFibGUtc3RyZWFtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0ZXAvd3JpdGFibGUtc3RyZWFtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsYUFBYSxFQUNiLGdCQUFnQixHQUNqQixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLDRCQUE0QixHQUM3QixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsa0NBQWtDLEVBQ2xDLDJCQUEyQixHQUM1QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBYXREOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQ3pCLFVBQXlDLEVBQUU7SUFFM0MsTUFBTSxHQUFHLEdBQUcsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3RDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNULE1BQU0sSUFBSSxLQUFLLENBQ2IsdUVBQXVFLENBQ3hFLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUM5QixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDO0lBQ2pELE1BQU0sSUFBSSxHQUFHLHNCQUFzQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztJQUV0RCxvRkFBb0Y7SUFDcEYsTUFBTSxTQUFTLEdBQUcsa0JBQWtCLENBQ2xDLG1CQUFtQixDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQ2xFLEdBQUcsQ0FBQyxhQUFhLENBQ2xCLENBQUM7SUFFRix3RUFBd0U7SUFDeEUsb0VBQW9FO0lBQ3BFLHdFQUF3RTtJQUN4RSwyQ0FBMkM7SUFDM0MsTUFBTSxjQUFjLEdBQUcsSUFBSSw0QkFBNEIsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDckUsTUFBTSxLQUFLLEdBQUcsb0JBQW9CLEVBQUUsQ0FBQztJQUNyQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFNUIsYUFBYSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsY0FBYyxFQUFFLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUU7UUFDbEUsc0NBQXNDO0lBQ3hDLENBQUMsQ0FBQyxDQUFDO0lBRUgsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUU1QyxxRUFBcUU7SUFDckUsZ0VBQWdFO0lBQ2hFLGtFQUFrRTtJQUNsRSxpRUFBaUU7SUFDakUsNkRBQTZEO0lBQzdELDhEQUE4RDtJQUM5RCxrREFBa0Q7SUFDbEQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLGtCQUFrQixFQUFFO1FBQzVELEtBQUssRUFBRSxJQUFJO1FBQ1gsUUFBUSxFQUFFLEtBQUs7S0FDaEIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLDJCQUEyQixFQUFFO1FBQ3JFLEtBQUssRUFBRSxLQUFLO1FBQ1osUUFBUSxFQUFFLEtBQUs7S0FDaEIsQ0FBQyxDQUFDO0lBQ0gsSUFBSSxHQUFHLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM3QixNQUFNLENBQUMsY0FBYyxDQUNuQixTQUFTLENBQUMsUUFBUSxFQUNsQixrQ0FBa0MsRUFDbEM7WUFDRSxLQUFLLEVBQUUsR0FBRyxDQUFDLG9CQUFvQjtZQUMvQixRQUFRLEVBQUUsS0FBSztTQUNoQixDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsbURBQW1EO0lBQ25ELE9BQU8sU0FBUyxDQUFDLFFBQVEsQ0FBQztBQUM1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgY3JlYXRlRmx1c2hhYmxlU3RhdGUsXG4gIGZsdXNoYWJsZVBpcGUsXG4gIHBvbGxXcml0YWJsZUxvY2ssXG59IGZyb20gJy4uL2ZsdXNoYWJsZS1zdHJlYW0uanMnO1xuaW1wb3J0IHtcbiAgZ2V0RXh0ZXJuYWxSZWR1Y2VycyxcbiAgZ2V0U2VyaWFsaXplU3RyZWFtLFxuICBXb3JrZmxvd1NlcnZlcldyaXRhYmxlU3RyZWFtLFxufSBmcm9tICcuLi9zZXJpYWxpemF0aW9uLmpzJztcbmltcG9ydCB7XG4gIFNUUkVBTV9OQU1FX1NZTUJPTCxcbiAgU1RSRUFNX1NFUlZFUl9ERVBMT1lNRU5UX0lEX1NZTUJPTCxcbiAgU1RSRUFNX1NFUlZFUl9SVU5fSURfU1lNQk9MLFxufSBmcm9tICcuLi9zeW1ib2xzLmpzJztcbmltcG9ydCB7IGdldFdvcmtmbG93UnVuU3RyZWFtSWQgfSBmcm9tICcuLi91dGlsLmpzJztcbmltcG9ydCB7IGNvbnRleHRTdG9yYWdlIH0gZnJvbSAnLi9jb250ZXh0LXN0b3JhZ2UuanMnO1xuXG4vKipcbiAqIFRoZSBvcHRpb25zIGZvciB7QGxpbmsgZ2V0V3JpdGFibGV9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtmbG93V3JpdGFibGVTdHJlYW1PcHRpb25zIHtcbiAgLyoqXG4gICAqIEFuIG9wdGlvbmFsIG5hbWVzcGFjZSB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIG11bHRpcGxlIHN0cmVhbXMgYXNzb2NpYXRlZFxuICAgKiB3aXRoIHRoZSBzYW1lIHdvcmtmbG93IHJ1bi5cbiAgICovXG4gIG5hbWVzcGFjZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgYSB3cml0YWJsZSBzdHJlYW0gdGhhdCBpcyBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQgd29ya2Zsb3cuXG4gKlxuICogVGhlIHdyaXRhYmxlIHN0cmVhbSBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIHdpdGhpbiBzdGVwIGZ1bmN0aW9ucyB0byB3cml0ZVxuICogZGF0YSB0aGF0IGNhbiBiZSByZWFkIG91dHNpZGUgdGhlIHdvcmtmbG93IGJ5IHVzaW5nIHRoZSByZWFkYWJsZSBtZXRob2Qgb2YgZ2V0UnVuLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gT3B0aW9uYWwgY29uZmlndXJhdGlvbiBmb3IgdGhlIHdyaXRhYmxlIHN0cmVhbVxuICogQHJldHVybnMgVGhlIHdyaXRhYmxlIHN0cmVhbSBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQgd29ya2Zsb3cgcnVuXG4gKiBAdGhyb3dzIEVycm9yIGlmIGNhbGxlZCBvdXRzaWRlIGEgd29ya2Zsb3cgb3Igc3RlcCBmdW5jdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0V3JpdGFibGU8VyA9IGFueT4oXG4gIG9wdGlvbnM6IFdvcmtmbG93V3JpdGFibGVTdHJlYW1PcHRpb25zID0ge31cbik6IFdyaXRhYmxlU3RyZWFtPFc+IHtcbiAgY29uc3QgY3R4ID0gY29udGV4dFN0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgaWYgKCFjdHgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnYGdldFdyaXRhYmxlKClgIGNhbiBvbmx5IGJlIGNhbGxlZCBpbnNpZGUgYSB3b3JrZmxvdyBvciBzdGVwIGZ1bmN0aW9uJ1xuICAgICk7XG4gIH1cblxuICBjb25zdCB7IG5hbWVzcGFjZSB9ID0gb3B0aW9ucztcbiAgY29uc3QgcnVuSWQgPSBjdHgud29ya2Zsb3dNZXRhZGF0YS53b3JrZmxvd1J1bklkO1xuICBjb25zdCBuYW1lID0gZ2V0V29ya2Zsb3dSdW5TdHJlYW1JZChydW5JZCwgbmFtZXNwYWNlKTtcblxuICAvLyBDcmVhdGUgYSB0cmFuc2Zvcm0gc3RyZWFtIHRoYXQgc2VyaWFsaXplcyBjaHVua3MgYW5kIHBpcGVzIHRvIHRoZSB3b3JrZmxvdyBzZXJ2ZXJcbiAgY29uc3Qgc2VyaWFsaXplID0gZ2V0U2VyaWFsaXplU3RyZWFtKFxuICAgIGdldEV4dGVybmFsUmVkdWNlcnMoZ2xvYmFsVGhpcywgY3R4Lm9wcywgcnVuSWQsIGN0eC5lbmNyeXB0aW9uS2V5KSxcbiAgICBjdHguZW5jcnlwdGlvbktleVxuICApO1xuXG4gIC8vIFVzZSBmbHVzaGFibGUgcGlwZSBzbyB0aGUgb3BzIHByb21pc2UgcmVzb2x2ZXMgd2hlbiB0aGUgdXNlciByZWxlYXNlc1xuICAvLyB0aGVpciB3cml0ZXIgbG9jaywgbm90IG9ubHkgd2hlbiB0aGUgc3RyZWFtIGlzIGV4cGxpY2l0bHkgY2xvc2VkLlxuICAvLyBXaXRob3V0IHRoaXMsIFZlcmNlbCBmdW5jdGlvbnMgaGFuZyB1bnRpbCB0aGUgcnVudGltZSB0aW1lb3V0IGJlY2F1c2VcbiAgLy8gLnBpcGVUbygpIG9ubHkgcmVzb2x2ZXMgb24gc3RyZWFtIGNsb3NlLlxuICBjb25zdCBzZXJ2ZXJXcml0YWJsZSA9IG5ldyBXb3JrZmxvd1NlcnZlcldyaXRhYmxlU3RyZWFtKG5hbWUsIHJ1bklkKTtcbiAgY29uc3Qgc3RhdGUgPSBjcmVhdGVGbHVzaGFibGVTdGF0ZSgpO1xuICBjdHgub3BzLnB1c2goc3RhdGUucHJvbWlzZSk7XG5cbiAgZmx1c2hhYmxlUGlwZShzZXJpYWxpemUucmVhZGFibGUsIHNlcnZlcldyaXRhYmxlLCBzdGF0ZSkuY2F0Y2goKCkgPT4ge1xuICAgIC8vIEVycm9ycyBhcmUgaGFuZGxlZCB2aWEgc3RhdGUucmVqZWN0XG4gIH0pO1xuXG4gIHBvbGxXcml0YWJsZUxvY2soc2VyaWFsaXplLndyaXRhYmxlLCBzdGF0ZSk7XG5cbiAgLy8gVGFnIHRoZSB3cml0YWJsZSB3aXRoIGl0cyB1bmRlcmx5aW5nIGAocnVuSWQsIG5hbWUpYCBzbyBkb3duc3RyZWFtXG4gIC8vIHJlZHVjZXJzIGNhbiByZWNvZ25pemUgdGhhdCBpdCdzIGFscmVhZHkgYmFja2VkIGJ5IGEgd29ya2Zsb3dcbiAgLy8gc2VydmVyIHN0cmVhbS4gQ2FsbGluZyBgc3RhcnQoY2hpbGQsIFthcmdzLCB0aGVXcml0YWJsZV0pYCBmcm9tXG4gIC8vIHRoZSBzYW1lIHN0ZXAgdXNlcyB0aGVzZSB0YWdzIHRvIGVtaXQgYHsgbmFtZSwgcnVuSWQgfWAgaW4gdGhlXG4gIC8vIGRlaHlkcmF0ZWQgZGVzY3JpcHRvciwgc28gdGhlIGNoaWxkJ3MgcmV2aXZlciBjYW4gb3BlbiB0aGVcbiAgLy8gd3JpdGFibGUgYWdhaW5zdCB0aGUgb3JpZ2luYWwgYChydW5JZCwgbmFtZSlgIGRpcmVjdGx5IOKAlCBub1xuICAvLyBpbi1wcm9jZXNzIGJyaWRnZSB0aWVkIHRvIHRoaXMgc3RlcCdzIGxpZmV0aW1lLlxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoc2VyaWFsaXplLndyaXRhYmxlLCBTVFJFQU1fTkFNRV9TWU1CT0wsIHtcbiAgICB2YWx1ZTogbmFtZSxcbiAgICB3cml0YWJsZTogZmFsc2UsXG4gIH0pO1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoc2VyaWFsaXplLndyaXRhYmxlLCBTVFJFQU1fU0VSVkVSX1JVTl9JRF9TWU1CT0wsIHtcbiAgICB2YWx1ZTogcnVuSWQsXG4gICAgd3JpdGFibGU6IGZhbHNlLFxuICB9KTtcbiAgaWYgKGN0eC53b3JrZmxvd0RlcGxveW1lbnRJZCkge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShcbiAgICAgIHNlcmlhbGl6ZS53cml0YWJsZSxcbiAgICAgIFNUUkVBTV9TRVJWRVJfREVQTE9ZTUVOVF9JRF9TWU1CT0wsXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiBjdHgud29ya2Zsb3dEZXBsb3ltZW50SWQsXG4gICAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgLy8gUmV0dXJuIHRoZSB3cml0YWJsZSBzaWRlIG9mIHRoZSB0cmFuc2Zvcm0gc3RyZWFtXG4gIHJldHVybiBzZXJpYWxpemUud3JpdGFibGU7XG59XG4iXX0=
|
package/dist/step.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step.d.ts","sourceRoot":"","sources":["../src/step.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,wBAAgB,aAAa,CAAC,GAAG,EAAE,2BAA2B,IACpC,IAAI,SAAS,YAAY,EAAE,EAAE,MAAM,EACzD,UAAU,MAAM,EAChB,gBAAgB,MAAM,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,YAI1C,OAAO,WACJ,IAAI,KACZ,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"step.d.ts","sourceRoot":"","sources":["../src/step.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,wBAAgB,aAAa,CAAC,GAAG,EAAE,2BAA2B,IACpC,IAAI,SAAS,YAAY,EAAE,EAAE,MAAM,EACzD,UAAU,MAAM,EAChB,gBAAgB,MAAM,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,YAI1C,OAAO,WACJ,IAAI,KACZ,OAAO,CAAC,MAAM,CAAC,CA2RrB"}
|
package/dist/step.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FatalError, ReplayDivergenceError } from '@workflow/errors';
|
|
2
2
|
import { withResolvers } from '@workflow/utils';
|
|
3
3
|
import { EventConsumerResult } from './events-consumer.js';
|
|
4
4
|
import { WorkflowSuspension } from './global.js';
|
|
@@ -63,7 +63,7 @@ export function createUseStep(ctx) {
|
|
|
63
63
|
: undefined;
|
|
64
64
|
if (typeof eventStepName === 'string' && eventStepName !== stepName) {
|
|
65
65
|
ctx.promiseQueue = ctx.promiseQueue.then(() => {
|
|
66
|
-
ctx.onWorkflowError(new
|
|
66
|
+
ctx.onWorkflowError(new ReplayDivergenceError(`Replay divergence: step event ${event.eventType} for ${correlationId} belongs to "${eventStepName}", but the current step consumer is "${stepName}"`, { eventId: event.eventId }));
|
|
67
67
|
});
|
|
68
68
|
return EventConsumerResult.Finished;
|
|
69
69
|
}
|
|
@@ -76,7 +76,7 @@ export function createUseStep(ctx) {
|
|
|
76
76
|
// This indicates event log corruption - step_created received
|
|
77
77
|
// but the step was never invoked in the workflow during replay.
|
|
78
78
|
ctx.promiseQueue = ctx.promiseQueue.then(() => {
|
|
79
|
-
reject(new
|
|
79
|
+
reject(new ReplayDivergenceError(`Replay divergence: step ${correlationId} (${stepName}) created but not found in invocation queue`, { eventId: event.eventId }));
|
|
80
80
|
});
|
|
81
81
|
return EventConsumerResult.Finished;
|
|
82
82
|
}
|
|
@@ -141,9 +141,9 @@ export function createUseStep(ctx) {
|
|
|
141
141
|
});
|
|
142
142
|
return EventConsumerResult.Finished;
|
|
143
143
|
}
|
|
144
|
-
//
|
|
144
|
+
// This replay installed a different consumer than the stored event needs.
|
|
145
145
|
ctx.promiseQueue = ctx.promiseQueue.then(() => {
|
|
146
|
-
ctx.onWorkflowError(new
|
|
146
|
+
ctx.onWorkflowError(new ReplayDivergenceError(`Replay divergence: Unexpected event type for step ${correlationId} (name: ${stepName}) "${event.eventType}"`, { eventId: event.eventId }));
|
|
147
147
|
});
|
|
148
148
|
return EventConsumerResult.Finished;
|
|
149
149
|
});
|
|
@@ -235,4 +235,4 @@ export function createUseStep(ctx) {
|
|
|
235
235
|
return stepFunction;
|
|
236
236
|
};
|
|
237
237
|
}
|
|
238
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zdGVwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFnQyxrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pDLE9BQU8sRUFDTCxnQkFBZ0IsR0FFakIsTUFBTSxjQUFjLENBQUM7QUFFdEIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFNUQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxHQUFnQztJQUM1RCxPQUFPLFNBQVMsT0FBTyxDQUNyQixRQUFnQixFQUNoQixhQUFrRDtRQUVsRCx1RkFBdUY7UUFDdkYsTUFBTSxZQUFZLEdBQUcsVUFFbkIsR0FBRyxJQUFVO1lBRWIsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsYUFBYSxFQUFVLENBQUM7WUFFN0QsTUFBTSxhQUFhLEdBQUcsUUFBUSxHQUFHLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQztZQUVuRCxNQUFNLFNBQVMsR0FBNEI7Z0JBQ3pDLElBQUksRUFBRSxNQUFNO2dCQUNaLGFBQWE7Z0JBQ2IsUUFBUTtnQkFDUixJQUFJO2FBQ0wsQ0FBQztZQUVGLHVFQUF1RTtZQUN2RSw4REFBOEQ7WUFDOUQsSUFBSSxJQUFJLEtBQUssU0FBUyxJQUFJLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLFVBQVUsRUFBRSxDQUFDO2dCQUMvRCxTQUFTLENBQUMsT0FBTyxHQUFHLElBQW9CLENBQUM7WUFDM0MsQ0FBQztZ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LEVBQUUsS0FBSzt3QkFDakIsWUFBWSxFQUFFLEtBQUs7cUJBQ3BCLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUNELE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRTtvQkFDMUMsS0FBSyxFQUFFLE9BQU87b0JBQ2QsUUFBUSxFQUFFLEtBQUs7b0JBQ2YsVUFBVSxFQUFFLEtBQUs7b0JBQ2pCLFlBQVksRUFBRSxLQUFLO2lCQUNwQixDQUFDLENBQUM7Z0JBQ0gsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUMzQixNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUU7d0JBQzFDLEtBQUssRUFBRSxXQUFXO3dCQUNsQixRQUFRLEVBQUUsS0FBSzt3QkFDZixVQUFVLEVBQUUsS0FBSzt3QkFDakIsWUFBWSxFQUFFLEtBQUs7cUJBQ3BCLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUNELE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztZQUNELFFBQVEsRUFBRSxLQUFLO1lBQ2YsVUFBVSxFQUFFLEtBQUs7WUFDakIsWUFBWSxFQUFFLEtBQUs7U0FDcEIsQ0FBQyxDQUFDO1FBRUgsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvcnJ1cHRlZEV2ZW50TG9nRXJyb3IsIEZhdGFsRXJyb3IgfSBmcm9tICdAd29ya2Zsb3cvZXJyb3JzJztcbmltcG9ydCB7IHdpdGhSZXNvbHZlcnMgfSBmcm9tICdAd29ya2Zsb3cvdXRpbHMnO1xuaW1wb3J0IHsgRXZlbnRDb25zdW1lclJlc3VsdCB9IGZyb20gJy4vZXZlbnRzLWNvbnN1bWVyLmpzJztcbmltcG9ydCB7IHR5cGUgU3RlcEludm9jYXRpb25RdWV1ZUl0ZW0sIFdvcmtmbG93U3VzcGVuc2lvbiB9IGZyb20gJy4vZ2xvYmFsLmpzJztcbmltcG9ydCB7IHN0ZXBMb2dnZXIgfSBmcm9tICcuL2xvZ2dlci5qcyc7XG5pbXBvcnQge1xuICBzY2hlZHVsZVdoZW5JZGxlLFxuICB0eXBlIFdvcmtmbG93T3JjaGVzdHJhdG9yQ29udGV4dCxcbn0gZnJvbSAnLi9wcml2YXRlLmpzJztcbmltcG9ydCB0eXBlIHsgU2VyaWFsaXphYmxlIH0gZnJvbSAnLi9zY2hlbWFzLmpzJztcbmltcG9ydCB7IGh5ZHJhdGVTdGVwUmV0dXJuVmFsdWUgfSBmcm9tICcuL3NlcmlhbGl6YXRpb24uanMnO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVXNlU3RlcChjdHg6IFdvcmtmbG93T3JjaGVzdHJhdG9yQ29udGV4dCkge1xuICByZXR1cm4gZnVuY3Rpb24gdXNlU3RlcDxBcmdzIGV4dGVuZHMgU2VyaWFsaXphYmxlW10sIFJlc3VsdD4oXG4gICAgc3RlcE5hbWU6IHN0cmluZyxcbiAgICBjbG9zdXJlVmFyc0ZuPzogKCkgPT4gUmVjb3JkPHN0cmluZywgU2VyaWFsaXphYmxlPlxuICApIHtcbiAgICAvLyBVc2UgYSByZWd1bGFyIGZ1bmN0aW9uIChub3QgYXJyb3cpIHNvIHdlIGNhbiBjYXB0dXJlIGB0aGlzYCB3aGVuIGludm9rZWQgYXMgYSBtZXRob2RcbiAgICBjb25zdCBzdGVwRnVuY3Rpb24gPSBmdW5jdGlvbiAoXG4gICAgICB0aGlzOiB1bmtub3duLFxuICAgICAgLi4uYXJnczogQXJnc1xuICAgICk6IFByb21pc2U8UmVzdWx0PiB7XG4gICAgICBjb25zdCB7IHByb21pc2UsIHJlc29sdmUsIHJlamVjdCB9ID0gd2l0aFJlc29sdmVyczxSZXN1bHQ+KCk7XG5cbiAgICAgIGNvbnN0IGNvcnJlbGF0aW9uSWQgPSBgc3RlcF8ke2N0eC5nZW5lcmF0ZVVsaWQoKX1gO1xuXG4gICAgICBjb25zdCBxdWV1ZUl0ZW06IFN0ZXBJbnZvY2F0aW9uUXVldWVJdGVtID0ge1xuICAgICAgICB0eXBlOiAnc3RlcCcsXG4gICAgICAgIGNvcnJlbGF0aW9uSWQsXG4gICAgICAgIHN0ZXBOYW1lLFxuICAgICAgICBhcmdzLFxuICAgICAgfTtcblxuICAgICAgLy8gQ2FwdHVyZSBgdGhpc2AgdmFsdWUgZm9yIG1ldGhvZCBpbnZvY2F0aW9ucyAoZS5nLiwgTXlDbGFzcy5tZXRob2QoKSlcbiAgICAgIC8vIE9ubHkgaW5jbHVkZSBpZiBgdGhpc2AgaXMgZGVmaW5lZCBhbmQgbm90IHRoZSBnbG9iYWwgb2JqZWN0XG4gICAgICBpZiAodGhpcyAhPT0gdW5kZWZpbmVkICYmIHRoaXMgIT09IG51bGwgJiYgdGhpcyAhPT0gZ2xvYmFsVGhpcykge1xuICAgICAgICBxdWV1ZUl0ZW0udGhpc1ZhbCA9IHRoaXMgYXMgU2VyaWFsaXphYmxlO1xuICAgICAgfVxuXG4gICAgICAvLyBJbnZva2UgdGhlIGNsb3N1cmUgdmFyaWFibGVzIGZ1bmN0aW9uIHRvIGdldCB0aGUgY2xvc3VyZSBzY29wZVxuICAgICAgY29uc3QgY2xvc3VyZVZhcnMgPSBjbG9zdXJlVmFyc0ZuPy4oKTtcbiAgICAgIGlmIChjbG9zdXJlVmFycykge1xuICAgICAgICBxdWV1ZUl0ZW0uY2xvc3VyZVZhcnMgPSBjbG9zdXJlVmFycztcbiAgICAgIH1cblxuICAgICAgY3R4Lmludm9jYXRpb25zUXVldWUuc2V0KGNvcnJlbGF0aW9uSWQsIHF1ZXVlSXRlbSk7XG5cbiAgICAgIHN0ZXBMb2dnZXIuZGVidWcoJ1N0ZXAgY29uc3VtZXIgc2V0dXAnLCB7XG4gICAgICAgIGNvcnJlbGF0aW9uSWQsXG4gICAgICAgIHN0ZXBOYW1lLFxuICAgICAgICBhcmdzLFxuICAgICAgfSk7XG4gICAgICBjdHguZXZlbnRzQ29uc3VtZXIuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICBpZiAoIWV2ZW50KSB7XG4gICAgICAgICAgLy8gV2UndmUgcmVhY2hlZCB0aGUgZW5kIG9mIHRoZSBldmVudHMsIHNvIHRoaXMgc3RlcCBoYXMgZWl0aGVyIG5vdCBiZWVuIHJ1biBvciBpcyBjdXJyZW50bHkgcnVubmluZy5cbiAgICAgICAgICAvLyBDcnVjaWFsbHksIGlmIHdlIGdvdCBoZXJlLCB0aGVuIHRoaXMgc3RlcCBQcm9taXNlIGRvZXNcbiAgICAgICAgICAvLyBub3QgcmVzb2x2ZSBzbyB0aGF0IHRoZSB1c2VyIHdvcmtmbG93IGNvZGUgZG9lcyBub3QgcHJvY2VlZCBhbnkgZnVydGhlci5cbiAgICAgICAgICAvLyBOb3RpZnkgdGhlIHdvcmtmbG93IGhhbmRsZXIgdGhhdCB0aGlzIHN0ZXAgaGFzIG5vdCBiZWVuIHJ1biAvIGhhcyBub3QgY29tcGxldGVkIHlldC5cbiAgICAgICAgICBzY2hlZHVsZVdoZW5JZGxlKGN0eCwgKCkgPT4ge1xuICAgICAgICAgICAgY3R4Lm9uV29ya2Zsb3dFcnJvcihcbiAgICAgICAgICAgICAgbmV3IFdvcmtmbG93U3VzcGVuc2lvbihjdHguaW52b2NhdGlvbnNRdWV1ZSwgY3R4Lmdsb2JhbFRoaXMpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiBFdmVudENvbnN1bWVyUmVzdWx0Lk5vdENvbnN1bWVkO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RlcExvZ2dlci5kZWJ1ZygnU3RlcCBjb25zdW1lciBldmVudCBwcm9jZXNzaW5nJywge1xuICAgICAgICAgIGNvcnJlbGF0aW9uSWQsXG4gICAgICAgICAgc3RlcE5hbWUsXG4gICAgICAgICAgYXJnczogYXJncy5qb2luKCcsICcpLFxuICAgICAgICAgIGluY29taW5nQ29ycmVsYXRpb25JZDogZXZlbnQuY29ycmVsYXRpb25JZCxcbiAgICAgICAgICBpc01hdGNoOiBjb3JyZWxhdGlvbklkID09PSBldmVudC5jb3JyZWxhdGlvbklkLFxuICAgICAgICAgIGV2ZW50VHlwZTogZXZlbnQuZXZlbnRUeXBlLFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoZXZlbnQuY29ycmVsYXRpb25JZCAhPT0gY29ycmVsYXRpb25JZCkge1xuICAgICAgICAgIC8vIFdlJ3JlIG5vdCBpbnRlcmVzdGVkIGluIHRoaXMgZXZlbnQgLSB0aGUgY29ycmVsYXRpb25JZCBiZWxvbmdzIHRvIGEgZGlmZmVyZW50IGVudGl0eVxuICAgICAgICAgIHJldHVybiBFdmVudENvbnN1bWVyUmVzdWx0Lk5vdENvbnN1bWVkO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZXZlbnRTdGVwTmFtZSA9XG4gICAgICAgICAgJ2V2ZW50RGF0YScgaW4gZXZlbnQgJiZcbiAgICAgICAgICBldmVudC5ldmVudERhdGEgJiZcbiAgICAgICAgICAnc3RlcE5hbWUnIGluIGV2ZW50LmV2ZW50RGF0YVxuICAgICAgICAgICAgPyBldmVudC5ldmVudERhdGEuc3RlcE5hbWVcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIGlmICh0eXBlb2YgZXZlbnRTdGVwTmFtZSA9PT0gJ3N0cmluZycgJiYgZXZlbnRTdGVwTmFtZSAhPT0gc3RlcE5hbWUpIHtcbiAgICAgICAgICBjdHgucHJvbWlzZVF1ZXVlID0gY3R4LnByb21pc2VRdWV1ZS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIGN0eC5vbldvcmtmbG93RXJyb3IoXG4gICAgICAgICAgICAgIG5ldyBDb3JydXB0ZWRFdmVudExvZ0Vycm9yKFxuICAgICAgICAgICAgICAgIGBDb3JydXB0ZWQgZXZlbnQgbG9nOiBzdGVwIGV2ZW50ICR7ZXZlbnQuZXZlbnRUeXBlfSBmb3IgJHtjb3JyZWxhdGlvbklkfSBiZWxvbmdzIHRvIFwiJHtldmVudFN0ZXBOYW1lfVwiLCBidXQgdGhlIGN1cnJlbnQgc3RlcCBjb25zdW1lciBpcyBcIiR7c3RlcE5hbWV9XCJgXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIEV2ZW50Q29uc3VtZXJSZXN1bHQuRmluaXNoZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXZlbnQuZXZlbnRUeXBlID09PSAnc3RlcF9jcmVhdGVkJykge1xuICAgICAgICAgIC8vIFN0ZXAgaGFzIGJlZW4gY3JlYXRlZCAocmVnaXN0ZXJlZCBmb3IgZXhlY3V0aW9uKSAtIG1hcmsgYXMgaGF2aW5nIGV2ZW50XG4gICAgICAgICAgLy8gYnV0IGtlZXAgaW4gcXVldWUgc28gc3VzcGVuc2lvbiBoYW5kbGVyIGtub3dzIHRvIHF1ZXVlIGV4ZWN1dGlvbiB3aXRob3V0XG4gICAgICAgICAgLy8gY3JlYXRpbmcgYSBkdXBsaWNhdGUgc3RlcF9jcmVhdGVkIGV2ZW50XG4gICAgICAgICAgY29uc3QgcXVldWVJdGVtID0gY3R4Lmludm9jYXRpb25zUXVldWUuZ2V0KGNvcnJlbGF0aW9uSWQpO1xuICAgICAgICAgIGlmICghcXVldWVJdGVtIHx8IHF1ZXVlSXRlbS50eXBlICE9PSAnc3RlcCcpIHtcbiAgICAgICAgICAgIC8vIFRoaXMgaW5kaWNhdGVzIGV2ZW50IGxvZyBjb3JydXB0aW9uIC0gc3RlcF9jcmVhdGVkIHJlY2VpdmVkXG4gICAgICAgICAgICAvLyBidXQgdGhlIHN0ZXAgd2FzIG5ldmVyIGludm9rZWQgaW4gdGhlIHdvcmtmbG93IGR1cmluZyByZXBsYXkuXG4gICAgICAgICAgICBjdHgucHJvbWlzZVF1ZXVlID0gY3R4LnByb21pc2VRdWV1ZS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgcmVqZWN0KFxuICAgICAgICAgICAgICAgIG5ldyBDb3JydXB0ZWRFdmVudExvZ0Vycm9yKFxuICAgICAgICAgICAgICAgICAgYENvcnJ1cHRlZCBldmVudCBsb2c6IHN0ZXAgJHtjb3JyZWxhdGlvbklkfSAoJHtzdGVwTmFtZX0pIGNyZWF0ZWQgYnV0IG5vdCBmb3VuZCBpbiBpbnZvY2F0aW9uIHF1ZXVlYFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIEV2ZW50Q29uc3VtZXJSZXN1bHQuRmluaXNoZWQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIHF1ZXVlSXRlbS5oYXNDcmVhdGVkRXZlbnQgPSB0cnVlO1xuICAgICAgICAgIC8vIENvbnRpbnVlIHdhaXRpbmcgZm9yIHN0ZXBfc3RhcnRlZC9zdGVwX2NvbXBsZXRlZC9zdGVwX2ZhaWxlZCBldmVudHNcbiAgICAgICAgICByZXR1cm4gRXZlbnRDb25zdW1lclJlc3VsdC5Db25zdW1lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChldmVudC5ldmVudFR5cGUgPT09ICdzdGVwX3N0YXJ0ZWQnKSB7XG4gICAgICAgICAgLy8gU3RlcCB3YXMgc3RhcnRlZCAtIGRvbid0IGRvIGFueXRoaW5nLiBUaGUgc3RlcCBpcyBsZWZ0IGluIHRoZSBpbnZvY2F0aW9uUXVldWUgd2hpY2hcbiAgICAgICAgICAvLyB3aWxsIGFsbG93IGl0IHRvIGJlIHJlLWVucXVldWVkLiBXZSByZWx5IG9uIHRoZSBxdWV1ZSdzIGlkZW1wb3RlbmN5IHRvIHByZXZlbnQgaXQgZnJvbVxuICAgICAgICAgIC8vIGFjdHVhbGx5IGJlaW5nIG92ZXIgZW5xdWV1ZWQuXG4gICAgICAgICAgcmV0dXJuIEV2ZW50Q29uc3VtZXJSZXN1bHQuQ29uc3VtZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXZlbnQuZXZlbnRUeXBlID09PSAnc3RlcF9yZXRyeWluZycpIHtcbiAgICAgICAgICAvLyBTdGVwIGlzIGJlaW5nIHJldHJpZWQgLSBqdXN0IGNvbnN1bWUgdGhlIGV2ZW50IGFuZCB3YWl0IGZvciBuZXh0IHN0ZXBfc3RhcnRlZFxuICAgICAgICAgIHJldHVybiBFdmVudENvbnN1bWVyUmVzdWx0LkNvbnN1bWVkO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGV2ZW50LmV2ZW50VHlwZSA9PT0gJ3N0ZXBfZmFpbGVkJykge1xuICAgICAgICAgIC8vIFRlcm1pbmFsIHN0YXRlIC0gd2UgY2FuIHJlbW92ZSB0aGUgaW52b2NhdGlvblF1ZXVlIGl0ZW1cbiAgICAgICAgICBjdHguaW52b2NhdGlvbnNRdWV1ZS5kZWxldGUoZXZlbnQuY29ycmVsYXRpb25JZCk7XG4gICAgICAgICAgLy8gU3RlcCBmYWlsZWQgLSBjaGFpbiB0aHJvdWdoIHByb21pc2VRdWV1ZSB0byBlbnN1cmVcbiAgICAgICAgICAvLyBkZXRlcm1pbmlzdGljIG9yZGVyaW5nIG9mIGFsbCBwcm9taXNlIHJlc29sdXRpb25zL3JlamVjdGlvbnMuXG4gICAgICAgICAgY3R4LnByb21pc2VRdWV1ZSA9IGN0eC5wcm9taXNlUXVldWUudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBlcnJvckRhdGEgPSBldmVudC5ldmVudERhdGEuZXJyb3I7XG4gICAgICAgICAgICBjb25zdCBpc0Vycm9yT2JqZWN0ID1cbiAgICAgICAgICAgICAgdHlwZW9mIGVycm9yRGF0YSA9PT0gJ29iamVjdCcgJiYgZXJyb3JEYXRhICE9PSBudWxsO1xuXG4gICAgICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBpc0Vycm9yT2JqZWN0XG4gICAgICAgICAgICAgID8gKGVycm9yRGF0YS5tZXNzYWdlID8/ICdVbmtub3duIGVycm9yJylcbiAgICAgICAgICAgICAgOiB0eXBlb2YgZXJyb3JEYXRhID09PSAnc3RyaW5nJ1xuICAgICAgICAgICAgICAgID8gZXJyb3JEYXRhXG4gICAgICAgICAgICAgICAgOiAnVW5rbm93biBlcnJvcic7XG5cbiAgICAgICAgICAgIGNvbnN0IGVycm9yU3RhY2sgPVxuICAgICAgICAgICAgICAoaXNFcnJvck9iamVjdCA/IGVycm9yRGF0YS5zdGFjayA6IHVuZGVmaW5lZCkgPz9cbiAgICAgICAgICAgICAgZXZlbnQuZXZlbnREYXRhLnN0YWNrO1xuXG4gICAgICAgICAgICBjb25zdCBlcnJvciA9IG5ldyBGYXRhbEVycm9yKGVycm9yTWVzc2FnZSk7XG4gICAgICAgICAgICBpZiAoZXJyb3JTdGFjaykge1xuICAgICAgICAgICAgICBlcnJvci5zdGFjayA9IGVycm9yU3RhY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiBFdmVudENvbnN1bWVyUmVzdWx0LkZpbmlzaGVkO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGV2ZW50LmV2ZW50VHlwZSA9PT0gJ3N0ZXBfY29tcGxldGVkJykge1xuICAgICAgICAgIC8vIFRlcm1pbmFsIHN0YXRlIC0gd2UgY2FuIHJlbW92ZSB0aGUgaW52b2NhdGlvblF1ZXVlIGl0ZW1cbiAgICAgICAgICBjdHguaW52b2NhdGlvbnNRdWV1ZS5kZWxldGUoZXZlbnQuY29ycmVsYXRpb25JZCk7XG5cbiAgICAgICAgICAvLyBTdGVwIGhhcyBjb21wbGV0ZWQsIHNvIHJlc29sdmUgdGhlIFByb21pc2Ugd2l0aCB0aGUgY2FjaGVkIHJlc3VsdC5cbiAgICAgICAgICAvLyBUaGUgaHlkcmF0aW9uIGlzIGFzeW5jIChlLmcuLCBkZWNyeXB0aW9uKSwgc28gd2UgY2hhaW4gaXQgdGhyb3VnaFxuICAgICAgICAgIC8vIGN0eC5wcm9taXNlUXVldWUgdG8gZW5zdXJlIHRoYXQgZXZlbiBpZiBkZXNlcmlhbGl6YXRpb25cbiAgICAgICAgICAvLyB0YWtlcyB2YXJpYWJsZSB0aW1lLCBwcm9taXNlcyByZXNvbHZlIGluIGV2ZW50IGxvZyBvcmRlci5cbiAgICAgICAgICAvLyBFYWNoIHN0ZXAncyBoeWRyYXRpb24gKyByZXNvbHZlIHdhaXRzIGZvciBhbGwgcHJpb3IgaHlkcmF0aW9uc1xuICAgICAgICAgIC8vIHRvIGNvbXBsZXRlIGJlZm9yZSBleGVjdXRpbmcsIHByZXNlcnZpbmcgZGV0ZXJtaW5pc3RpYyBvcmRlcmluZy5cbiAgICAgICAgICBjdHgucGVuZGluZ0RlbGl2ZXJpZXMrKztcbiAgICAgICAgICBjdHgucHJvbWlzZVF1ZXVlID0gY3R4LnByb21pc2VRdWV1ZS50aGVuKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IGh5ZHJhdGVkUmVzdWx0ID0gYXdhaXQgaHlkcmF0ZVN0ZXBSZXR1cm5WYWx1ZShcbiAgICAgICAgICAgICAgICBldmVudC5ldmVudERhdGEucmVzdWx0LFxuICAgICAgICAgICAgICAgIGN0eC5ydW5JZCxcbiAgICAgICAgICAgICAgICBjdHguZW5jcnlwdGlvbktleSxcbiAgICAgICAgICAgICAgICBjdHguZ2xvYmFsVGhpc1xuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICByZXNvbHZlKGh5ZHJhdGVkUmVzdWx0IGFzIFJlc3VsdCk7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgY3R4LnBlbmRpbmdEZWxpdmVyaWVzLS07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIEV2ZW50Q29uc3VtZXJSZXN1bHQuRmluaXNoZWQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBbiB1bmV4cGVjdGVkIGV2ZW50IHR5cGUgaGFzIGJlZW4gcmVjZWl2ZWQsIHRoaXMgZXZlbnQgbG9nIGxvb2tzIGNvcnJ1cHRlZC4gTGV0J3MgZmFpbCBpbW1lZGlhdGVseS5cbiAgICAgICAgY3R4LnByb21pc2VRdWV1ZSA9IGN0eC5wcm9taXNlUXVldWUudGhlbigoKSA9PiB7XG4gICAgICAgICAgY3R4Lm9uV29ya2Zsb3dFcnJvcihcbiAgICAgICAgICAgIG5ldyBDb3JydXB0ZWRFdmVudExvZ0Vycm9yKFxuICAgICAgICAgICAgICBgVW5leHBlY3RlZCBldmVudCB0eXBlIGZvciBzdGVwICR7Y29ycmVsYXRpb25JZH0gKG5hbWU6ICR7c3RlcE5hbWV9KSBcIiR7ZXZlbnQuZXZlbnRUeXBlfVwiYFxuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gRXZlbnRDb25zdW1lclJlc3VsdC5GaW5pc2hlZDtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gcHJvbWlzZTtcbiAgICB9O1xuXG4gICAgLy8gRW5zdXJlIHRoZSBcIm5hbWVcIiBwcm9wZXJ0eSBtYXRjaGVzIHRoZSBvcmlnaW5hbCBzdGVwIGZ1bmN0aW9uIG5hbWVcbiAgICAvLyBFeHRyYWN0IGZ1bmN0aW9uIG5hbWUgZnJvbSBzdGVwTmFtZSAoZm9ybWF0OiBcInN0ZXAvL2ZpbGVwYXRoLy9mdW5jdGlvbk5hbWVcIilcbiAgICBjb25zdCBmdW5jdGlvbk5hbWUgPSBzdGVwTmFtZS5zcGxpdCgnLy8nKS5wb3AoKTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoc3RlcEZ1bmN0aW9uLCAnbmFtZScsIHtcbiAgICAgIHZhbHVlOiBmdW5jdGlvbk5hbWUsXG4gICAgfSk7XG5cbiAgICAvLyBBZGQgdGhlIHN0ZXAgZnVuY3Rpb24gaWRlbnRpZmllciB0byB0aGUgc3RlcCBmdW5jdGlvbiBmb3Igc2VyaWFsaXphdGlvblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzdGVwRnVuY3Rpb24sICdzdGVwSWQnLCB7XG4gICAgICB2YWx1ZTogc3RlcE5hbWUsXG4gICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgfSk7XG5cbiAgICAvLyBTdG9yZSB0aGUgY2xvc3VyZSB2YXJpYWJsZXMgZnVuY3Rpb24gZm9yIHNlcmlhbGl6YXRpb25cbiAgICBpZiAoY2xvc3VyZVZhcnNGbikge1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHN0ZXBGdW5jdGlvbiwgJ19fY2xvc3VyZVZhcnNGbicsIHtcbiAgICAgICAgdmFsdWU6IGNsb3N1cmVWYXJzRm4sXG4gICAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBPdmVycmlkZSBgLmJpbmRgIHNvIHRoZSBib3VuZCBmdW5jdGlvbiBwcmVzZXJ2ZXMgdGhlIHN0ZXAgcHJveHlcbiAgICAvLyBtZXRhZGF0YSB0aGF0IGBnZXRTdGVwRnVuY3Rpb25SZWR1Y2VyYCByZWxpZXMgb24gZm9yIHNlcmlhbGl6YXRpb24uXG4gICAgLy8gV2l0aG91dCB0aGlzIG92ZXJyaWRlLCBgRnVuY3Rpb24ucHJvdG90eXBlLmJpbmRgIHdvdWxkIHJldHVybiBhIG5ld1xuICAgIC8vIGZ1bmN0aW9uIHRoYXQgZG9lc24ndCBpbmhlcml0IGBzdGVwSWRgLCBgX19jbG9zdXJlVmFyc0ZuYCwgb3IgYW55XG4gICAgLy8gb3RoZXIgb3duIHByb3BlcnRpZXMgb2YgdGhlIG9yaWdpbmFsIHByb3h5IOKAlCBzbyB0aGUgU3RlcEZ1bmN0aW9uXG4gICAgLy8gcmVkdWNlciB3b3VsZCByZWZ1c2UgdG8gc2VyaWFsaXplIGl0IChpdCdkIGxvb2sgbGlrZSBhIHBsYWluXG4gICAgLy8gZnVuY3Rpb24pLCBhbmQgYSBgdXNlU3RlcCguLi4pLmJpbmQodGhpcylgIHByb3h5IHRoYXQgZmxvd2VkXG4gICAgLy8gdGhyb3VnaCB3b3JrZmxvdyBzZXJpYWxpemF0aW9uIHdvdWxkIHNpbGVudGx5IGJyZWFrLlxuICAgIC8vXG4gICAgLy8gVGhlIG92ZXJyaWRlIHN0YXNoZXMgdGhyZWUgcGllY2VzIG9mIHN0YXRlIG9uIHRoZSBib3VuZCBmdW5jdGlvbiBzb1xuICAgIC8vIHRoZSByb3VuZCB0cmlwIGlzIGZhaXRoZnVsOlxuICAgIC8vICAgLSBgc3RlcElkYCAgICAgICAgICAgICDigJQgYWxyZWFkeSBzZXQgb24gdGhlIG9yaWdpbmFsIHByb3h5LlxuICAgIC8vICAgLSBgX19jbG9zdXJlVmFyc0ZuYCAgICDigJQgb25seSB3aGVuIHRoZSBvcmlnaW5hbCBwcm94eSBoYWQgb25lLlxuICAgIC8vICAgLSBgX19ib3VuZFRoaXNgICAgICAgICDigJQgdGhlIHJlY2VpdmVyIHBhc3NlZCB0byBgLmJpbmQodGhpc0FyZywg4oCmKWAuXG4gICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgQWx3YXlzIHNldCAoZXZlbiB3aGVuIGB0aGlzQXJnYCBpc1xuICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBudWxsYC9gdW5kZWZpbmVkYCkgc28gdGhlIHJlZHVjZXIgY2FuXG4gICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzdGluZ3Vpc2ggXCJ3YXMgYm91bmRcIiBmcm9tIFwid2Fzbid0XCIuXG4gICAgLy8gICAtIGBfX2JvdW5kQXJnc2AgICAgICAgIOKAlCBvbmx5IHdoZW4gdGhlIHVzZXIgc3VwcGxpZWQgcHJlZmlsbGVkXG4gICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJndW1lbnRzIChgLmJpbmQodGhpc0FyZywgeCwgeSlgKS4gVGhlXG4gICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgU1dDIHBsdWdpbiBvbmx5IGV2ZXIgZW1pdHMgYC5iaW5kKHRoaXMpYFxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZGF5LCBzbyB0aGlzIGlzIHJhcmUgaW4gcHJhY3RpY2U7IHdlXG4gICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RpbGwgY2FwdHVyZSBpdCBzbyB0aGUgcGFydGlhbCBhcmdzXG4gICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vydml2ZSBzZXJpYWxpemF0aW9uIHJhdGhlciB0aGFuXG4gICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lsZW50bHkgZGlzYXBwZWFyaW5nIG9uIHRoZSBzdGVwIHNpZGUuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHN0ZXBGdW5jdGlvbiwgJ2JpbmQnLCB7XG4gICAgICB2YWx1ZTogZnVuY3Rpb24gKFxuICAgICAgICB0aGlzOiB0eXBlb2Ygc3RlcEZ1bmN0aW9uLFxuICAgICAgICB0aGlzQXJnOiB1bmtub3duLFxuICAgICAgICAuLi5wYXJ0aWFsQXJnczogdW5rbm93bltdXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgYm91bmQgPSBGdW5jdGlvbi5wcm90b3R5cGUuYmluZC5jYWxsKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgdGhpc0FyZyxcbiAgICAgICAgICAuLi5wYXJ0aWFsQXJnc1xuICAgICAgICApO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYm91bmQsICdzdGVwSWQnLCB7XG4gICAgICAgICAgdmFsdWU6IHN0ZXBOYW1lLFxuICAgICAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGNsb3N1cmVWYXJzRm4pIHtcbiAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYm91bmQsICdfX2Nsb3N1cmVWYXJzRm4nLCB7XG4gICAgICAgICAgICB2YWx1ZTogY2xvc3VyZVZhcnNGbixcbiAgICAgICAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYm91bmQsICdfX2JvdW5kVGhpcycsIHtcbiAgICAgICAgICB2YWx1ZTogdGhpc0FyZyxcbiAgICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChwYXJ0aWFsQXJncy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGJvdW5kLCAnX19ib3VuZEFyZ3MnLCB7XG4gICAgICAgICAgICB2YWx1ZTogcGFydGlhbEFyZ3MsXG4gICAgICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGJvdW5kO1xuICAgICAgfSxcbiAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICB9KTtcblxuICAgIHJldHVybiBzdGVwRnVuY3Rpb247XG4gIH07XG59XG4iXX0=
|
|
238
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zdGVwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFnQyxrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pDLE9BQU8sRUFDTCxnQkFBZ0IsR0FFakIsTUFBTSxjQUFjLENBQUM7QUFFdEIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFNUQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxHQUFnQztJQUM1RCxPQUFPLFNBQVMsT0FBTyxDQUNyQixRQUFnQixFQUNoQixhQUFrRDtRQUVsRCx1RkFBdUY7UUFDdkYsTUFBTSxZQUFZLEdBQUcsVUFFbkIsR0FBRyxJQUFVO1lBRWIsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsYUFBYSxFQUFVLENBQUM7WUFFN0QsTUFBTSxhQUFhLEdBQUcsUUFBUSxHQUFHLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQztZQUVuRCxNQUFNLFNBQVMsR0FBNEI7Z0JBQ3pDLElBQUksRUFBRSxNQUFNO2dCQUNaLGFBQWE7Z0JBQ2IsUUFBUTtnQkFDUixJQUFJO2FBQ0wsQ0FBQztZQUVGLHVFQUF1RTtZQUN2RSw4REFBOEQ7WUFDOUQsSUFBSSxJQUFJLEtBQUssU0FBUyxJQUFJLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLFVBQVUsRUFBRSxDQUFDO2dCQUMvRCxTQUFTLENBQUMsT0FBTyxHQUFHLElBQW9CLENBQUM7WUFDM0MsQ0FBQztZ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SUFBSSxhQUFhLEVBQUUsQ0FBQztvQkFDbEIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLEVBQUU7d0JBQzlDLEtBQUssRUFBRSxhQUFhO3dCQUNwQixRQUFRLEVBQUUsS0FBSzt3QkFDZixVQUFVLEVBQUUsS0FBSzt3QkFDakIsWUFBWSxFQUFFLEtBQUs7cUJBQ3BCLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUNELE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRTtvQkFDMUMsS0FBSyxFQUFFLE9BQU87b0JBQ2QsUUFBUSxFQUFFLEtBQUs7b0JBQ2YsVUFBVSxFQUFFLEtBQUs7b0JBQ2pCLFlBQVksRUFBRSxLQUFLO2lCQUNwQixDQUFDLENBQUM7Z0JBQ0gsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUMzQixNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUU7d0JBQzFDLEtBQUssRUFBRSxXQUFXO3dCQUNsQixRQUFRLEVBQUUsS0FBSzt3QkFDZixVQUFVLEVBQUUsS0FBSzt3QkFDakIsWUFBWSxFQUFFLEtBQUs7cUJBQ3BCLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUNELE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztZQUNELFFBQVEsRUFBRSxLQUFLO1lBQ2YsVUFBVSxFQUFFLEtBQUs7WUFDakIsWUFBWSxFQUFFLEtBQUs7U0FDcEIsQ0FBQyxDQUFDO1FBRUgsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhdGFsRXJyb3IsIFJlcGxheURpdmVyZ2VuY2VFcnJvciB9IGZyb20gJ0B3b3JrZmxvdy9lcnJvcnMnO1xuaW1wb3J0IHsgd2l0aFJlc29sdmVycyB9IGZyb20gJ0B3b3JrZmxvdy91dGlscyc7XG5pbXBvcnQgeyBFdmVudENvbnN1bWVyUmVzdWx0IH0gZnJvbSAnLi9ldmVudHMtY29uc3VtZXIuanMnO1xuaW1wb3J0IHsgdHlwZSBTdGVwSW52b2NhdGlvblF1ZXVlSXRlbSwgV29ya2Zsb3dTdXNwZW5zaW9uIH0gZnJvbSAnLi9nbG9iYWwuanMnO1xuaW1wb3J0IHsgc3RlcExvZ2dlciB9IGZyb20gJy4vbG9nZ2VyLmpzJztcbmltcG9ydCB7XG4gIHNjaGVkdWxlV2hlbklkbGUsXG4gIHR5cGUgV29ya2Zsb3dPcmNoZXN0cmF0b3JDb250ZXh0LFxufSBmcm9tICcuL3ByaXZhdGUuanMnO1xuaW1wb3J0IHR5cGUgeyBTZXJpYWxpemFibGUgfSBmcm9tICcuL3NjaGVtYXMuanMnO1xuaW1wb3J0IHsgaHlkcmF0ZVN0ZXBSZXR1cm5WYWx1ZSB9IGZyb20gJy4vc2VyaWFsaXphdGlvbi5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVVc2VTdGVwKGN0eDogV29ya2Zsb3dPcmNoZXN0cmF0b3JDb250ZXh0KSB7XG4gIHJldHVybiBmdW5jdGlvbiB1c2VTdGVwPEFyZ3MgZXh0ZW5kcyBTZXJpYWxpemFibGVbXSwgUmVzdWx0PihcbiAgICBzdGVwTmFtZTogc3RyaW5nLFxuICAgIGNsb3N1cmVWYXJzRm4/OiAoKSA9PiBSZWNvcmQ8c3RyaW5nLCBTZXJpYWxpemFibGU+XG4gICkge1xuICAgIC8vIFVzZSBhIHJlZ3VsYXIgZnVuY3Rpb24gKG5vdCBhcnJvdykgc28gd2UgY2FuIGNhcHR1cmUgYHRoaXNgIHdoZW4gaW52b2tlZCBhcyBhIG1ldGhvZFxuICAgIGNvbnN0IHN0ZXBGdW5jdGlvbiA9IGZ1bmN0aW9uIChcbiAgICAgIHRoaXM6IHVua25vd24sXG4gICAgICAuLi5hcmdzOiBBcmdzXG4gICAgKTogUHJvbWlzZTxSZXN1bHQ+IHtcbiAgICAgIGNvbnN0IHsgcHJvbWlzZSwgcmVzb2x2ZSwgcmVqZWN0IH0gPSB3aXRoUmVzb2x2ZXJzPFJlc3VsdD4oKTtcblxuICAgICAgY29uc3QgY29ycmVsYXRpb25JZCA9IGBzdGVwXyR7Y3R4LmdlbmVyYXRlVWxpZCgpfWA7XG5cbiAgICAgIGNvbnN0IHF1ZXVlSXRlbTogU3RlcEludm9jYXRpb25RdWV1ZUl0ZW0gPSB7XG4gICAgICAgIHR5cGU6ICdzdGVwJyxcbiAgICAgICAgY29ycmVsYXRpb25JZCxcbiAgICAgICAgc3RlcE5hbWUsXG4gICAgICAgIGFyZ3MsXG4gICAgICB9O1xuXG4gICAgICAvLyBDYXB0dXJlIGB0aGlzYCB2YWx1ZSBmb3IgbWV0aG9kIGludm9jYXRpb25zIChlLmcuLCBNeUNsYXNzLm1ldGhvZCgpKVxuICAgICAgLy8gT25seSBpbmNsdWRlIGlmIGB0aGlzYCBpcyBkZWZpbmVkIGFuZCBub3QgdGhlIGdsb2JhbCBvYmplY3RcbiAgICAgIGlmICh0aGlzICE9PSB1bmRlZmluZWQgJiYgdGhpcyAhPT0gbnVsbCAmJiB0aGlzICE9PSBnbG9iYWxUaGlzKSB7XG4gICAgICAgIHF1ZXVlSXRlbS50aGlzVmFsID0gdGhpcyBhcyBTZXJpYWxpemFibGU7XG4gICAgICB9XG5cbiAgICAgIC8vIEludm9rZSB0aGUgY2xvc3VyZSB2YXJpYWJsZXMgZnVuY3Rpb24gdG8gZ2V0IHRoZSBjbG9zdXJlIHNjb3BlXG4gICAgICBjb25zdCBjbG9zdXJlVmFycyA9IGNsb3N1cmVWYXJzRm4/LigpO1xuICAgICAgaWYgKGNsb3N1cmVWYXJzKSB7XG4gICAgICAgIHF1ZXVlSXRlbS5jbG9zdXJlVmFycyA9IGNsb3N1cmVWYXJzO1xuICAgICAgfVxuXG4gICAgICBjdHguaW52b2NhdGlvbnNRdWV1ZS5zZXQoY29ycmVsYXRpb25JZCwgcXVldWVJdGVtKTtcblxuICAgICAgc3RlcExvZ2dlci5kZWJ1ZygnU3RlcCBjb25zdW1lciBzZXR1cCcsIHtcbiAgICAgICAgY29ycmVsYXRpb25JZCxcbiAgICAgICAgc3RlcE5hbWUsXG4gICAgICAgIGFyZ3MsXG4gICAgICB9KTtcbiAgICAgIGN0eC5ldmVudHNDb25zdW1lci5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmICghZXZlbnQpIHtcbiAgICAgICAgICAvLyBXZSd2ZSByZWFjaGVkIHRoZSBlbmQgb2YgdGhlIGV2ZW50cywgc28gdGhpcyBzdGVwIGhhcyBlaXRoZXIgbm90IGJlZW4gcnVuIG9yIGlzIGN1cnJlbnRseSBydW5uaW5nLlxuICAgICAgICAgIC8vIENydWNpYWxseSwgaWYgd2UgZ290IGhlcmUsIHRoZW4gdGhpcyBzdGVwIFByb21pc2UgZG9lc1xuICAgICAgICAgIC8vIG5vdCByZXNvbHZlIHNvIHRoYXQgdGhlIHVzZXIgd29ya2Zsb3cgY29kZSBkb2VzIG5vdCBwcm9jZWVkIGFueSBmdXJ0aGVyLlxuICAgICAgICAgIC8vIE5vdGlmeSB0aGUgd29ya2Zsb3cgaGFuZGxlciB0aGF0IHRoaXMgc3RlcCBoYXMgbm90IGJlZW4gcnVuIC8gaGFzIG5vdCBjb21wbGV0ZWQgeWV0LlxuICAgICAgICAgIHNjaGVkdWxlV2hlbklkbGUoY3R4LCAoKSA9PiB7XG4gICAgICAgICAgICBjdHgub25Xb3JrZmxvd0Vycm9yKFxuICAgICAgICAgICAgICBuZXcgV29ya2Zsb3dTdXNwZW5zaW9uKGN0eC5pbnZvY2F0aW9uc1F1ZXVlLCBjdHguZ2xvYmFsVGhpcylcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIEV2ZW50Q29uc3VtZXJSZXN1bHQuTm90Q29uc3VtZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBzdGVwTG9nZ2VyLmRlYnVnKCdTdGVwIGNvbnN1bWVyIGV2ZW50IHByb2Nlc3NpbmcnLCB7XG4gICAgICAgICAgY29ycmVsYXRpb25JZCxcbiAgICAgICAgICBzdGVwTmFtZSxcbiAgICAgICAgICBhcmdzOiBhcmdzLmpvaW4oJywgJyksXG4gICAgICAgICAgaW5jb21pbmdDb3JyZWxhdGlvbklkOiBldmVudC5jb3JyZWxhdGlvbklkLFxuICAgICAgICAgIGlzTWF0Y2g6IGNvcnJlbGF0aW9uSWQgPT09IGV2ZW50LmNvcnJlbGF0aW9uSWQsXG4gICAgICAgICAgZXZlbnRUeXBlOiBldmVudC5ldmVudFR5cGUsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChldmVudC5jb3JyZWxhdGlvbklkICE9PSBjb3JyZWxhdGlvbklkKSB7XG4gICAgICAgICAgLy8gV2UncmUgbm90IGludGVyZXN0ZWQgaW4gdGhpcyBldmVudCAtIHRoZSBjb3JyZWxhdGlvbklkIGJlbG9uZ3MgdG8gYSBkaWZmZXJlbnQgZW50aXR5XG4gICAgICAgICAgcmV0dXJuIEV2ZW50Q29uc3VtZXJSZXN1bHQuTm90Q29uc3VtZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBldmVudFN0ZXBOYW1lID1cbiAgICAgICAgICAnZXZlbnREYXRhJyBpbiBldmVudCAmJlxuICAgICAgICAgIGV2ZW50LmV2ZW50RGF0YSAmJlxuICAgICAgICAgICdzdGVwTmFtZScgaW4gZXZlbnQuZXZlbnREYXRhXG4gICAgICAgICAgICA/IGV2ZW50LmV2ZW50RGF0YS5zdGVwTmFtZVxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBldmVudFN0ZXBOYW1lID09PSAnc3RyaW5nJyAmJiBldmVudFN0ZXBOYW1lICE9PSBzdGVwTmFtZSkge1xuICAgICAgICAgIGN0eC5wcm9taXNlUXVldWUgPSBjdHgucHJvbWlzZVF1ZXVlLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgY3R4Lm9uV29ya2Zsb3dFcnJvcihcbiAgICAgICAgICAgICAgbmV3IFJlcGxheURpdmVyZ2VuY2VFcnJvcihcbiAgICAgICAgICAgICAgICBgUmVwbGF5IGRpdmVyZ2VuY2U6IHN0ZXAgZXZlbnQgJHtldmVudC5ldmVudFR5cGV9IGZvciAke2NvcnJlbGF0aW9uSWR9IGJlbG9uZ3MgdG8gXCIke2V2ZW50U3RlcE5hbWV9XCIsIGJ1dCB0aGUgY3VycmVudCBzdGVwIGNvbnN1bWVyIGlzIFwiJHtzdGVwTmFtZX1cImAsXG4gICAgICAgICAgICAgICAgeyBldmVudElkOiBldmVudC5ldmVudElkIH1cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gRXZlbnRDb25zdW1lclJlc3VsdC5GaW5pc2hlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChldmVudC5ldmVudFR5cGUgPT09ICdzdGVwX2NyZWF0ZWQnKSB7XG4gICAgICAgICAgLy8gU3RlcCBoYXMgYmVlbiBjcmVhdGVkIChyZWdpc3RlcmVkIGZvciBleGVjdXRpb24pIC0gbWFyayBhcyBoYXZpbmcgZXZlbnRcbiAgICAgICAgICAvLyBidXQga2VlcCBpbiBxdWV1ZSBzbyBzdXNwZW5zaW9uIGhhbmRsZXIga25vd3MgdG8gcXVldWUgZXhlY3V0aW9uIHdpdGhvdXRcbiAgICAgICAgICAvLyBjcmVhdGluZyBhIGR1cGxpY2F0ZSBzdGVwX2NyZWF0ZWQgZXZlbnRcbiAgICAgICAgICBjb25zdCBxdWV1ZUl0ZW0gPSBjdHguaW52b2NhdGlvbnNRdWV1ZS5nZXQoY29ycmVsYXRpb25JZCk7XG4gICAgICAgICAgaWYgKCFxdWV1ZUl0ZW0gfHwgcXVldWVJdGVtLnR5cGUgIT09ICdzdGVwJykge1xuICAgICAgICAgICAgLy8gVGhpcyBpbmRpY2F0ZXMgZXZlbnQgbG9nIGNvcnJ1cHRpb24gLSBzdGVwX2NyZWF0ZWQgcmVjZWl2ZWRcbiAgICAgICAgICAgIC8vIGJ1dCB0aGUgc3RlcCB3YXMgbmV2ZXIgaW52b2tlZCBpbiB0aGUgd29ya2Zsb3cgZHVyaW5nIHJlcGxheS5cbiAgICAgICAgICAgIGN0eC5wcm9taXNlUXVldWUgPSBjdHgucHJvbWlzZVF1ZXVlLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICByZWplY3QoXG4gICAgICAgICAgICAgICAgbmV3IFJlcGxheURpdmVyZ2VuY2VFcnJvcihcbiAgICAgICAgICAgICAgICAgIGBSZXBsYXkgZGl2ZXJnZW5jZTogc3RlcCAke2NvcnJlbGF0aW9uSWR9ICgke3N0ZXBOYW1lfSkgY3JlYXRlZCBidXQgbm90IGZvdW5kIGluIGludm9jYXRpb24gcXVldWVgLFxuICAgICAgICAgICAgICAgICAgeyBldmVudElkOiBldmVudC5ldmVudElkIH1cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBFdmVudENvbnN1bWVyUmVzdWx0LkZpbmlzaGVkO1xuICAgICAgICAgIH1cbiAgICAgICAgICBxdWV1ZUl0ZW0uaGFzQ3JlYXRlZEV2ZW50ID0gdHJ1ZTtcbiAgICAgICAgICAvLyBDb250aW51ZSB3YWl0aW5nIGZvciBzdGVwX3N0YXJ0ZWQvc3RlcF9jb21wbGV0ZWQvc3RlcF9mYWlsZWQgZXZlbnRzXG4gICAgICAgICAgcmV0dXJuIEV2ZW50Q29uc3VtZXJSZXN1bHQuQ29uc3VtZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXZlbnQuZXZlbnRUeXBlID09PSAnc3RlcF9zdGFydGVkJykge1xuICAgICAgICAgIC8vIFN0ZXAgd2FzIHN0YXJ0ZWQgLSBkb24ndCBkbyBhbnl0aGluZy4gVGhlIHN0ZXAgaXMgbGVmdCBpbiB0aGUgaW52b2NhdGlvblF1ZXVlIHdoaWNoXG4gICAgICAgICAgLy8gd2lsbCBhbGxvdyBpdCB0byBiZSByZS1lbnF1ZXVlZC4gV2UgcmVseSBvbiB0aGUgcXVldWUncyBpZGVtcG90ZW5jeSB0byBwcmV2ZW50IGl0IGZyb21cbiAgICAgICAgICAvLyBhY3R1YWxseSBiZWluZyBvdmVyIGVucXVldWVkLlxuICAgICAgICAgIHJldHVybiBFdmVudENvbnN1bWVyUmVzdWx0LkNvbnN1bWVkO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGV2ZW50LmV2ZW50VHlwZSA9PT0gJ3N0ZXBfcmV0cnlpbmcnKSB7XG4gICAgICAgICAgLy8gU3RlcCBpcyBiZWluZyByZXRyaWVkIC0ganVzdCBjb25zdW1lIHRoZSBldmVudCBhbmQgd2FpdCBmb3IgbmV4dCBzdGVwX3N0YXJ0ZWRcbiAgICAgICAgICByZXR1cm4gRXZlbnRDb25zdW1lclJlc3VsdC5Db25zdW1lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChldmVudC5ldmVudFR5cGUgPT09ICdzdGVwX2ZhaWxlZCcpIHtcbiAgICAgICAgICAvLyBUZXJtaW5hbCBzdGF0ZSAtIHdlIGNhbiByZW1vdmUgdGhlIGludm9jYXRpb25RdWV1ZSBpdGVtXG4gICAgICAgICAgY3R4Lmludm9jYXRpb25zUXVldWUuZGVsZXRlKGV2ZW50LmNvcnJlbGF0aW9uSWQpO1xuICAgICAgICAgIC8vIFN0ZXAgZmFpbGVkIC0gY2hhaW4gdGhyb3VnaCBwcm9taXNlUXVldWUgdG8gZW5zdXJlXG4gICAgICAgICAgLy8gZGV0ZXJtaW5pc3RpYyBvcmRlcmluZyBvZiBhbGwgcHJvbWlzZSByZXNvbHV0aW9ucy9yZWplY3Rpb25zLlxuICAgICAgICAgIGN0eC5wcm9taXNlUXVldWUgPSBjdHgucHJvbWlzZVF1ZXVlLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZXJyb3JEYXRhID0gZXZlbnQuZXZlbnREYXRhLmVycm9yO1xuICAgICAgICAgICAgY29uc3QgaXNFcnJvck9iamVjdCA9XG4gICAgICAgICAgICAgIHR5cGVvZiBlcnJvckRhdGEgPT09ICdvYmplY3QnICYmIGVycm9yRGF0YSAhPT0gbnVsbDtcblxuICAgICAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gaXNFcnJvck9iamVjdFxuICAgICAgICAgICAgICA/IChlcnJvckRhdGEubWVzc2FnZSA/PyAnVW5rbm93biBlcnJvcicpXG4gICAgICAgICAgICAgIDogdHlwZW9mIGVycm9yRGF0YSA9PT0gJ3N0cmluZydcbiAgICAgICAgICAgICAgICA/IGVycm9yRGF0YVxuICAgICAgICAgICAgICAgIDogJ1Vua25vd24gZXJyb3InO1xuXG4gICAgICAgICAgICBjb25zdCBlcnJvclN0YWNrID1cbiAgICAgICAgICAgICAgKGlzRXJyb3JPYmplY3QgPyBlcnJvckRhdGEuc3RhY2sgOiB1bmRlZmluZWQpID8/XG4gICAgICAgICAgICAgIGV2ZW50LmV2ZW50RGF0YS5zdGFjaztcblxuICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRmF0YWxFcnJvcihlcnJvck1lc3NhZ2UpO1xuICAgICAgICAgICAgaWYgKGVycm9yU3RhY2spIHtcbiAgICAgICAgICAgICAgZXJyb3Iuc3RhY2sgPSBlcnJvclN0YWNrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gRXZlbnRDb25zdW1lclJlc3VsdC5GaW5pc2hlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChldmVudC5ldmVudFR5cGUgPT09ICdzdGVwX2NvbXBsZXRlZCcpIHtcbiAgICAgICAgICAvLyBUZXJtaW5hbCBzdGF0ZSAtIHdlIGNhbiByZW1vdmUgdGhlIGludm9jYXRpb25RdWV1ZSBpdGVtXG4gICAgICAgICAgY3R4Lmludm9jYXRpb25zUXVldWUuZGVsZXRlKGV2ZW50LmNvcnJlbGF0aW9uSWQpO1xuXG4gICAgICAgICAgLy8gU3RlcCBoYXMgY29tcGxldGVkLCBzbyByZXNvbHZlIHRoZSBQcm9taXNlIHdpdGggdGhlIGNhY2hlZCByZXN1bHQuXG4gICAgICAgICAgLy8gVGhlIGh5ZHJhdGlvbiBpcyBhc3luYyAoZS5nLiwgZGVjcnlwdGlvbiksIHNvIHdlIGNoYWluIGl0IHRocm91Z2hcbiAgICAgICAgICAvLyBjdHgucHJvbWlzZVF1ZXVlIHRvIGVuc3VyZSB0aGF0IGV2ZW4gaWYgZGVzZXJpYWxpemF0aW9uXG4gICAgICAgICAgLy8gdGFrZXMgdmFyaWFibGUgdGltZSwgcHJvbWlzZXMgcmVzb2x2ZSBpbiBldmVudCBsb2cgb3JkZXIuXG4gICAgICAgICAgLy8gRWFjaCBzdGVwJ3MgaHlkcmF0aW9uICsgcmVzb2x2ZSB3YWl0cyBmb3IgYWxsIHByaW9yIGh5ZHJhdGlvbnNcbiAgICAgICAgICAvLyB0byBjb21wbGV0ZSBiZWZvcmUgZXhlY3V0aW5nLCBwcmVzZXJ2aW5nIGRldGVybWluaXN0aWMgb3JkZXJpbmcuXG4gICAgICAgICAgY3R4LnBlbmRpbmdEZWxpdmVyaWVzKys7XG4gICAgICAgICAgY3R4LnByb21pc2VRdWV1ZSA9IGN0eC5wcm9taXNlUXVldWUudGhlbihhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBjb25zdCBoeWRyYXRlZFJlc3VsdCA9IGF3YWl0IGh5ZHJhdGVTdGVwUmV0dXJuVmFsdWUoXG4gICAgICAgICAgICAgICAgZXZlbnQuZXZlbnREYXRhLnJlc3VsdCxcbiAgICAgICAgICAgICAgICBjdHgucnVuSWQsXG4gICAgICAgICAgICAgICAgY3R4LmVuY3J5cHRpb25LZXksXG4gICAgICAgICAgICAgICAgY3R4Lmdsb2JhbFRoaXNcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgcmVzb2x2ZShoeWRyYXRlZFJlc3VsdCBhcyBSZXN1bHQpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICAgIGN0eC5wZW5kaW5nRGVsaXZlcmllcy0tO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiBFdmVudENvbnN1bWVyUmVzdWx0LkZpbmlzaGVkO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhpcyByZXBsYXkgaW5zdGFsbGVkIGEgZGlmZmVyZW50IGNvbnN1bWVyIHRoYW4gdGhlIHN0b3JlZCBldmVudCBuZWVkcy5cbiAgICAgICAgY3R4LnByb21pc2VRdWV1ZSA9IGN0eC5wcm9taXNlUXVldWUudGhlbigoKSA9PiB7XG4gICAgICAgICAgY3R4Lm9uV29ya2Zsb3dFcnJvcihcbiAgICAgICAgICAgIG5ldyBSZXBsYXlEaXZlcmdlbmNlRXJyb3IoXG4gICAgICAgICAgICAgIGBSZXBsYXkgZGl2ZXJnZW5jZTogVW5leHBlY3RlZCBldmVudCB0eXBlIGZvciBzdGVwICR7Y29ycmVsYXRpb25JZH0gKG5hbWU6ICR7c3RlcE5hbWV9KSBcIiR7ZXZlbnQuZXZlbnRUeXBlfVwiYCxcbiAgICAgICAgICAgICAgeyBldmVudElkOiBldmVudC5ldmVudElkIH1cbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIEV2ZW50Q29uc3VtZXJSZXN1bHQuRmluaXNoZWQ7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHByb21pc2U7XG4gICAgfTtcblxuICAgIC8vIEVuc3VyZSB0aGUgXCJuYW1lXCIgcHJvcGVydHkgbWF0Y2hlcyB0aGUgb3JpZ2luYWwgc3RlcCBmdW5jdGlvbiBuYW1lXG4gICAgLy8gRXh0cmFjdCBmdW5jdGlvbiBuYW1lIGZyb20gc3RlcE5hbWUgKGZvcm1hdDogXCJzdGVwLy9maWxlcGF0aC8vZnVuY3Rpb25OYW1lXCIpXG4gICAgY29uc3QgZnVuY3Rpb25OYW1lID0gc3RlcE5hbWUuc3BsaXQoJy8vJykucG9wKCk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHN0ZXBGdW5jdGlvbiwgJ25hbWUnLCB7XG4gICAgICB2YWx1ZTogZnVuY3Rpb25OYW1lLFxuICAgIH0pO1xuXG4gICAgLy8gQWRkIHRoZSBzdGVwIGZ1bmN0aW9uIGlkZW50aWZpZXIgdG8gdGhlIHN0ZXAgZnVuY3Rpb24gZm9yIHNlcmlhbGl6YXRpb25cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoc3RlcEZ1bmN0aW9uLCAnc3RlcElkJywge1xuICAgICAgdmFsdWU6IHN0ZXBOYW1lLFxuICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgIH0pO1xuXG4gICAgLy8gU3RvcmUgdGhlIGNsb3N1cmUgdmFyaWFibGVzIGZ1bmN0aW9uIGZvciBzZXJpYWxpemF0aW9uXG4gICAgaWYgKGNsb3N1cmVWYXJzRm4pIHtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzdGVwRnVuY3Rpb24sICdfX2Nsb3N1cmVWYXJzRm4nLCB7XG4gICAgICAgIHZhbHVlOiBjbG9zdXJlVmFyc0ZuLFxuICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gT3ZlcnJpZGUgYC5iaW5kYCBzbyB0aGUgYm91bmQgZnVuY3Rpb24gcHJlc2VydmVzIHRoZSBzdGVwIHByb3h5XG4gICAgLy8gbWV0YWRhdGEgdGhhdCBgZ2V0U3RlcEZ1bmN0aW9uUmVkdWNlcmAgcmVsaWVzIG9uIGZvciBzZXJpYWxpemF0aW9uLlxuICAgIC8vIFdpdGhvdXQgdGhpcyBvdmVycmlkZSwgYEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kYCB3b3VsZCByZXR1cm4gYSBuZXdcbiAgICAvLyBmdW5jdGlvbiB0aGF0IGRvZXNuJ3QgaW5oZXJpdCBgc3RlcElkYCwgYF9fY2xvc3VyZVZhcnNGbmAsIG9yIGFueVxuICAgIC8vIG90aGVyIG93biBwcm9wZXJ0aWVzIG9mIHRoZSBvcmlnaW5hbCBwcm94eSDigJQgc28gdGhlIFN0ZXBGdW5jdGlvblxuICAgIC8vIHJlZHVjZXIgd291bGQgcmVmdXNlIHRvIHNlcmlhbGl6ZSBpdCAoaXQnZCBsb29rIGxpa2UgYSBwbGFpblxuICAgIC8vIGZ1bmN0aW9uKSwgYW5kIGEgYHVzZVN0ZXAoLi4uKS5iaW5kKHRoaXMpYCBwcm94eSB0aGF0IGZsb3dlZFxuICAgIC8vIHRocm91Z2ggd29ya2Zsb3cgc2VyaWFsaXphdGlvbiB3b3VsZCBzaWxlbnRseSBicmVhay5cbiAgICAvL1xuICAgIC8vIFRoZSBvdmVycmlkZSBzdGFzaGVzIHRocmVlIHBpZWNlcyBvZiBzdGF0ZSBvbiB0aGUgYm91bmQgZnVuY3Rpb24gc29cbiAgICAvLyB0aGUgcm91bmQgdHJpcCBpcyBmYWl0aGZ1bDpcbiAgICAvLyAgIC0gYHN0ZXBJZGAgICAgICAgICAgICAg4oCUIGFscmVhZHkgc2V0IG9uIHRoZSBvcmlnaW5hbCBwcm94eS5cbiAgICAvLyAgIC0gYF9fY2xvc3VyZVZhcnNGbmAgICAg4oCUIG9ubHkgd2hlbiB0aGUgb3JpZ2luYWwgcHJveHkgaGFkIG9uZS5cbiAgICAvLyAgIC0gYF9fYm91bmRUaGlzYCAgICAgICAg4oCUIHRoZSByZWNlaXZlciBwYXNzZWQgdG8gYC5iaW5kKHRoaXNBcmcsIOKApilgLlxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFsd2F5cyBzZXQgKGV2ZW4gd2hlbiBgdGhpc0FyZ2AgaXNcbiAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICBgbnVsbGAvYHVuZGVmaW5lZGApIHNvIHRoZSByZWR1Y2VyIGNhblxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3Rpbmd1aXNoIFwid2FzIGJvdW5kXCIgZnJvbSBcIndhc24ndFwiLlxuICAgIC8vICAgLSBgX19ib3VuZEFyZ3NgICAgICAgICDigJQgb25seSB3aGVuIHRoZSB1c2VyIHN1cHBsaWVkIHByZWZpbGxlZFxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50cyAoYC5iaW5kKHRoaXNBcmcsIHgsIHkpYCkuIFRoZVxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNXQyBwbHVnaW4gb25seSBldmVyIGVtaXRzIGAuYmluZCh0aGlzKWBcbiAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RheSwgc28gdGhpcyBpcyByYXJlIGluIHByYWN0aWNlOyB3ZVxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0aWxsIGNhcHR1cmUgaXQgc28gdGhlIHBhcnRpYWwgYXJnc1xuICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cnZpdmUgc2VyaWFsaXphdGlvbiByYXRoZXIgdGhhblxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpbGVudGx5IGRpc2FwcGVhcmluZyBvbiB0aGUgc3RlcCBzaWRlLlxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzdGVwRnVuY3Rpb24sICdiaW5kJywge1xuICAgICAgdmFsdWU6IGZ1bmN0aW9uIChcbiAgICAgICAgdGhpczogdHlwZW9mIHN0ZXBGdW5jdGlvbixcbiAgICAgICAgdGhpc0FyZzogdW5rbm93bixcbiAgICAgICAgLi4ucGFydGlhbEFyZ3M6IHVua25vd25bXVxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IGJvdW5kID0gRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQuY2FsbChcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIHRoaXNBcmcsXG4gICAgICAgICAgLi4ucGFydGlhbEFyZ3NcbiAgICAgICAgKTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGJvdW5kLCAnc3RlcElkJywge1xuICAgICAgICAgIHZhbHVlOiBzdGVwTmFtZSxcbiAgICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChjbG9zdXJlVmFyc0ZuKSB7XG4gICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGJvdW5kLCAnX19jbG9zdXJlVmFyc0ZuJywge1xuICAgICAgICAgICAgdmFsdWU6IGNsb3N1cmVWYXJzRm4sXG4gICAgICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGJvdW5kLCAnX19ib3VuZFRoaXMnLCB7XG4gICAgICAgICAgdmFsdWU6IHRoaXNBcmcsXG4gICAgICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAocGFydGlhbEFyZ3MubGVuZ3RoID4gMCkge1xuICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShib3VuZCwgJ19fYm91bmRBcmdzJywge1xuICAgICAgICAgICAgdmFsdWU6IHBhcnRpYWxBcmdzLFxuICAgICAgICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBib3VuZDtcbiAgICAgIH0sXG4gICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gc3RlcEZ1bmN0aW9uO1xuICB9O1xufVxuIl19
|
package/dist/symbols.d.ts
CHANGED
|
@@ -6,6 +6,28 @@ export declare const WORKFLOW_GET_STREAM_ID: unique symbol;
|
|
|
6
6
|
export declare const STABLE_ULID: unique symbol;
|
|
7
7
|
export declare const STREAM_NAME_SYMBOL: unique symbol;
|
|
8
8
|
export declare const STREAM_TYPE_SYMBOL: unique symbol;
|
|
9
|
+
/**
|
|
10
|
+
* Stamped on a real `WritableStream` (the user-visible `serialize.writable`
|
|
11
|
+
* returned from a step-side reviver or step-context `getWritable()`) to
|
|
12
|
+
* record the `runId` of the workflow run that owns the underlying server
|
|
13
|
+
* stream. Used together with `STREAM_NAME_SYMBOL`.
|
|
14
|
+
*
|
|
15
|
+
* When `getExternalReducers.WritableStream` (the dehydration path used by
|
|
16
|
+
* `start()`) sees both symbols on a writable, it includes the `runId` in
|
|
17
|
+
* the descriptor it emits. The child run's step-side reviver then opens
|
|
18
|
+
* a server writable against the original `(runId, name)` and resolves
|
|
19
|
+
* that run's encryption key directly — so the child's writes land on
|
|
20
|
+
* the parent's stream as-is, with no client process in the loop. That
|
|
21
|
+
* keeps the forwarding alive for the full lifetime of the child run,
|
|
22
|
+
* not just for the parent step that initiated `start()`.
|
|
23
|
+
*/
|
|
24
|
+
export declare const STREAM_SERVER_RUN_ID_SYMBOL: unique symbol;
|
|
25
|
+
/**
|
|
26
|
+
* Stamped alongside `STREAM_SERVER_RUN_ID_SYMBOL` when the deployment that
|
|
27
|
+
* owns a forwarded writable stream is known. Cross-deployment consumers use
|
|
28
|
+
* it to resolve the owning run's encryption key without loading the run first.
|
|
29
|
+
*/
|
|
30
|
+
export declare const STREAM_SERVER_DEPLOYMENT_ID_SYMBOL: unique symbol;
|
|
9
31
|
export declare const BODY_INIT_SYMBOL: unique symbol;
|
|
10
32
|
export declare const WEBHOOK_RESPONSE_WRITABLE: unique symbol;
|
|
11
33
|
/**
|
package/dist/symbols.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symbols.d.ts","sourceRoot":"","sources":["../src/symbols.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,eAAkC,CAAC;AACjE,eAAO,MAAM,oBAAoB,eAAqC,CAAC;AACvE,eAAO,MAAM,cAAc,eAA+B,CAAC;AAC3D,eAAO,MAAM,gBAAgB,eAAiC,CAAC;AAC/D,eAAO,MAAM,sBAAsB,eAAuC,CAAC;AAC3E,eAAO,MAAM,WAAW,eAAqC,CAAC;AAC9D,eAAO,MAAM,kBAAkB,eAAqC,CAAC;AACrE,eAAO,MAAM,kBAAkB,eAAqC,CAAC;AACrE,eAAO,MAAM,gBAAgB,eAA0B,CAAC;AACxD,eAAO,MAAM,yBAAyB,eAErC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,eAAwC,CAAC"}
|
|
1
|
+
{"version":3,"file":"symbols.d.ts","sourceRoot":"","sources":["../src/symbols.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,eAAkC,CAAC;AACjE,eAAO,MAAM,oBAAoB,eAAqC,CAAC;AACvE,eAAO,MAAM,cAAc,eAA+B,CAAC;AAC3D,eAAO,MAAM,gBAAgB,eAAiC,CAAC;AAC/D,eAAO,MAAM,sBAAsB,eAAuC,CAAC;AAC3E,eAAO,MAAM,WAAW,eAAqC,CAAC;AAC9D,eAAO,MAAM,kBAAkB,eAAqC,CAAC;AACrE,eAAO,MAAM,kBAAkB,eAAqC,CAAC;AACrE;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,2BAA2B,eAEvC,CAAC;AACF;;;;GAIG;AACH,eAAO,MAAM,kCAAkC,eAE9C,CAAC;AACF,eAAO,MAAM,gBAAgB,eAA0B,CAAC;AACxD,eAAO,MAAM,yBAAyB,eAErC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,eAAwC,CAAC"}
|
package/dist/symbols.js
CHANGED
|
@@ -6,6 +6,28 @@ export const WORKFLOW_GET_STREAM_ID = Symbol.for('WORKFLOW_GET_STREAM_ID');
|
|
|
6
6
|
export const STABLE_ULID = Symbol.for('WORKFLOW_STABLE_ULID');
|
|
7
7
|
export const STREAM_NAME_SYMBOL = Symbol.for('WORKFLOW_STREAM_NAME');
|
|
8
8
|
export const STREAM_TYPE_SYMBOL = Symbol.for('WORKFLOW_STREAM_TYPE');
|
|
9
|
+
/**
|
|
10
|
+
* Stamped on a real `WritableStream` (the user-visible `serialize.writable`
|
|
11
|
+
* returned from a step-side reviver or step-context `getWritable()`) to
|
|
12
|
+
* record the `runId` of the workflow run that owns the underlying server
|
|
13
|
+
* stream. Used together with `STREAM_NAME_SYMBOL`.
|
|
14
|
+
*
|
|
15
|
+
* When `getExternalReducers.WritableStream` (the dehydration path used by
|
|
16
|
+
* `start()`) sees both symbols on a writable, it includes the `runId` in
|
|
17
|
+
* the descriptor it emits. The child run's step-side reviver then opens
|
|
18
|
+
* a server writable against the original `(runId, name)` and resolves
|
|
19
|
+
* that run's encryption key directly — so the child's writes land on
|
|
20
|
+
* the parent's stream as-is, with no client process in the loop. That
|
|
21
|
+
* keeps the forwarding alive for the full lifetime of the child run,
|
|
22
|
+
* not just for the parent step that initiated `start()`.
|
|
23
|
+
*/
|
|
24
|
+
export const STREAM_SERVER_RUN_ID_SYMBOL = Symbol.for('WORKFLOW_STREAM_SERVER_RUN_ID');
|
|
25
|
+
/**
|
|
26
|
+
* Stamped alongside `STREAM_SERVER_RUN_ID_SYMBOL` when the deployment that
|
|
27
|
+
* owns a forwarded writable stream is known. Cross-deployment consumers use
|
|
28
|
+
* it to resolve the owning run's encryption key without loading the run first.
|
|
29
|
+
*/
|
|
30
|
+
export const STREAM_SERVER_DEPLOYMENT_ID_SYMBOL = Symbol.for('WORKFLOW_STREAM_SERVER_DEPLOYMENT_ID');
|
|
9
31
|
export const BODY_INIT_SYMBOL = Symbol.for('BODY_INIT');
|
|
10
32
|
export const WEBHOOK_RESPONSE_WRITABLE = Symbol.for('WEBHOOK_RESPONSE_WRITABLE');
|
|
11
33
|
/**
|
|
@@ -13,4 +35,4 @@ export const WEBHOOK_RESPONSE_WRITABLE = Symbol.for('WEBHOOK_RESPONSE_WRITABLE')
|
|
|
13
35
|
* This allows the deserializer to find classes by classId in the VM context.
|
|
14
36
|
*/
|
|
15
37
|
export const WORKFLOW_CLASS_REGISTRY = Symbol.for('workflow-class-registry');
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zeW1ib2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQztBQUNqRSxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLENBQUM7QUFDdkUsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUMzRCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFDL0QsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0FBQzNFLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLENBQUM7QUFDOUQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0FBQ3JFLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQztBQUNyRTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQ25ELCtCQUErQixDQUNoQyxDQUFDO0FBQ0Y7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQzFELHNDQUFzQyxDQUN2QyxDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUN4RCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUNqRCwyQkFBMkIsQ0FDNUIsQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBXT1JLRkxPV19VU0VfU1RFUCA9IFN5bWJvbC5mb3IoJ1dPUktGTE9XX1VTRV9TVEVQJyk7XG5leHBvcnQgY29uc3QgV09SS0ZMT1dfQ1JFQVRFX0hPT0sgPSBTeW1ib2wuZm9yKCdXT1JLRkxPV19DUkVBVEVfSE9PSycpO1xuZXhwb3J0IGNvbnN0IFdPUktGTE9XX1NMRUVQID0gU3ltYm9sLmZvcignV09SS0ZMT1dfU0xFRVAnKTtcbmV4cG9ydCBjb25zdCBXT1JLRkxPV19DT05URVhUID0gU3ltYm9sLmZvcignV09SS0ZMT1dfQ09OVEVYVCcpO1xuZXhwb3J0IGNvbnN0IFdPUktGTE9XX0dFVF9TVFJFQU1fSUQgPSBTeW1ib2wuZm9yKCdXT1JLRkxPV19HRVRfU1RSRUFNX0lEJyk7XG5leHBvcnQgY29uc3QgU1RBQkxFX1VMSUQgPSBTeW1ib2wuZm9yKCdXT1JLRkxPV19TVEFCTEVfVUxJRCcpO1xuZXhwb3J0IGNvbnN0IFNUUkVBTV9OQU1FX1NZTUJPTCA9IFN5bWJvbC5mb3IoJ1dPUktGTE9XX1NUUkVBTV9OQU1FJyk7XG5leHBvcnQgY29uc3QgU1RSRUFNX1RZUEVfU1lNQk9MID0gU3ltYm9sLmZvcignV09SS0ZMT1dfU1RSRUFNX1RZUEUnKTtcbi8qKlxuICogU3RhbXBlZCBvbiBhIHJlYWwgYFdyaXRhYmxlU3RyZWFtYCAodGhlIHVzZXItdmlzaWJsZSBgc2VyaWFsaXplLndyaXRhYmxlYFxuICogcmV0dXJuZWQgZnJvbSBhIHN0ZXAtc2lkZSByZXZpdmVyIG9yIHN0ZXAtY29udGV4dCBgZ2V0V3JpdGFibGUoKWApIHRvXG4gKiByZWNvcmQgdGhlIGBydW5JZGAgb2YgdGhlIHdvcmtmbG93IHJ1biB0aGF0IG93bnMgdGhlIHVuZGVybHlpbmcgc2VydmVyXG4gKiBzdHJlYW0uIFVzZWQgdG9nZXRoZXIgd2l0aCBgU1RSRUFNX05BTUVfU1lNQk9MYC5cbiAqXG4gKiBXaGVuIGBnZXRFeHRlcm5hbFJlZHVjZXJzLldyaXRhYmxlU3RyZWFtYCAodGhlIGRlaHlkcmF0aW9uIHBhdGggdXNlZCBieVxuICogYHN0YXJ0KClgKSBzZWVzIGJvdGggc3ltYm9scyBvbiBhIHdyaXRhYmxlLCBpdCBpbmNsdWRlcyB0aGUgYHJ1bklkYCBpblxuICogdGhlIGRlc2NyaXB0b3IgaXQgZW1pdHMuIFRoZSBjaGlsZCBydW4ncyBzdGVwLXNpZGUgcmV2aXZlciB0aGVuIG9wZW5zXG4gKiBhIHNlcnZlciB3cml0YWJsZSBhZ2FpbnN0IHRoZSBvcmlnaW5hbCBgKHJ1bklkLCBuYW1lKWAgYW5kIHJlc29sdmVzXG4gKiB0aGF0IHJ1bidzIGVuY3J5cHRpb24ga2V5IGRpcmVjdGx5IOKAlCBzbyB0aGUgY2hpbGQncyB3cml0ZXMgbGFuZCBvblxuICogdGhlIHBhcmVudCdzIHN0cmVhbSBhcy1pcywgd2l0aCBubyBjbGllbnQgcHJvY2VzcyBpbiB0aGUgbG9vcC4gVGhhdFxuICoga2VlcHMgdGhlIGZvcndhcmRpbmcgYWxpdmUgZm9yIHRoZSBmdWxsIGxpZmV0aW1lIG9mIHRoZSBjaGlsZCBydW4sXG4gKiBub3QganVzdCBmb3IgdGhlIHBhcmVudCBzdGVwIHRoYXQgaW5pdGlhdGVkIGBzdGFydCgpYC5cbiAqL1xuZXhwb3J0IGNvbnN0IFNUUkVBTV9TRVJWRVJfUlVOX0lEX1NZTUJPTCA9IFN5bWJvbC5mb3IoXG4gICdXT1JLRkxPV19TVFJFQU1fU0VSVkVSX1JVTl9JRCdcbik7XG4vKipcbiAqIFN0YW1wZWQgYWxvbmdzaWRlIGBTVFJFQU1fU0VSVkVSX1JVTl9JRF9TWU1CT0xgIHdoZW4gdGhlIGRlcGxveW1lbnQgdGhhdFxuICogb3ducyBhIGZvcndhcmRlZCB3cml0YWJsZSBzdHJlYW0gaXMga25vd24uIENyb3NzLWRlcGxveW1lbnQgY29uc3VtZXJzIHVzZVxuICogaXQgdG8gcmVzb2x2ZSB0aGUgb3duaW5nIHJ1bidzIGVuY3J5cHRpb24ga2V5IHdpdGhvdXQgbG9hZGluZyB0aGUgcnVuIGZpcnN0LlxuICovXG5leHBvcnQgY29uc3QgU1RSRUFNX1NFUlZFUl9ERVBMT1lNRU5UX0lEX1NZTUJPTCA9IFN5bWJvbC5mb3IoXG4gICdXT1JLRkxPV19TVFJFQU1fU0VSVkVSX0RFUExPWU1FTlRfSUQnXG4pO1xuZXhwb3J0IGNvbnN0IEJPRFlfSU5JVF9TWU1CT0wgPSBTeW1ib2wuZm9yKCdCT0RZX0lOSVQnKTtcbmV4cG9ydCBjb25zdCBXRUJIT09LX1JFU1BPTlNFX1dSSVRBQkxFID0gU3ltYm9sLmZvcihcbiAgJ1dFQkhPT0tfUkVTUE9OU0VfV1JJVEFCTEUnXG4pO1xuXG4vKipcbiAqIFN5bWJvbCB1c2VkIHRvIHN0b3JlIHRoZSBjbGFzcyByZWdpc3RyeSBvbiBnbG9iYWxUaGlzIGluIHdvcmtmbG93IG1vZGUuXG4gKiBUaGlzIGFsbG93cyB0aGUgZGVzZXJpYWxpemVyIHRvIGZpbmQgY2xhc3NlcyBieSBjbGFzc0lkIGluIHRoZSBWTSBjb250ZXh0LlxuICovXG5leHBvcnQgY29uc3QgV09SS0ZMT1dfQ0xBU1NfUkVHSVNUUlkgPSBTeW1ib2wuZm9yKCd3b3JrZmxvdy1jbGFzcy1yZWdpc3RyeScpO1xuIl19
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "4.
|
|
1
|
+
export declare const version = "4.3.0";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// Generated by genversion.
|
|
2
|
-
export const version = '4.
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
export const version = '4.3.0';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJCQUEyQjtBQUMzQixNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR2VuZXJhdGVkIGJ5IGdlbnZlcnNpb24uXG5leHBvcnQgY29uc3QgdmVyc2lvbiA9ICc0LjMuMCdcbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../src/workflow/hook.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAI3D,OAAO,
|
|
1
|
+
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../src/workflow/hook.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAI3D,OAAO,EAIL,KAAK,2BAA2B,EACjC,MAAM,eAAe,CAAC;AAGvB,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,2BAA2B,IAChC,CAAC,GAAG,GAAG,EAAE,UAAS,WAAgB,KAAG,IAAI,CAAC,CAAC,CAAC,CAuV5E"}
|