@workflow/cli 5.0.0-beta.26 → 5.0.0-beta.28
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/base.d.ts.map +1 -1
- package/dist/base.js +8 -2
- package/dist/commands/cancel.d.ts.map +1 -1
- package/dist/commands/cancel.js +52 -9
- package/dist/commands/inspect.d.ts +2 -0
- package/dist/commands/inspect.d.ts.map +1 -1
- package/dist/commands/inspect.js +23 -3
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +8 -3
- package/dist/lib/config/types.d.ts +4 -0
- package/dist/lib/config/types.d.ts.map +1 -1
- package/dist/lib/config/types.js +1 -1
- package/dist/lib/inspect/env.d.ts +1 -1
- package/dist/lib/inspect/env.js +2 -2
- package/dist/lib/inspect/errors.d.ts +3 -0
- package/dist/lib/inspect/errors.d.ts.map +1 -0
- package/dist/lib/inspect/errors.js +27 -0
- package/dist/lib/inspect/output.d.ts +2 -2
- package/dist/lib/inspect/output.d.ts.map +1 -1
- package/dist/lib/inspect/output.js +253 -130
- package/dist/lib/inspect/output.test.js +403 -3
- package/dist/lib/inspect/pagination.d.ts +10 -1
- package/dist/lib/inspect/pagination.d.ts.map +1 -1
- package/dist/lib/inspect/pagination.js +20 -4
- package/dist/lib/inspect/run.d.ts.map +1 -1
- package/dist/lib/inspect/run.js +32 -9
- package/dist/lib/inspect/setup.d.ts.map +1 -1
- package/dist/lib/inspect/setup.js +42 -6
- package/dist/lib/inspect/time-window.d.ts +28 -0
- package/dist/lib/inspect/time-window.d.ts.map +1 -0
- package/dist/lib/inspect/time-window.js +61 -0
- package/dist/lib/inspect/time-window.test.d.ts +2 -0
- package/dist/lib/inspect/time-window.test.d.ts.map +1 -0
- package/dist/lib/inspect/time-window.test.js +58 -0
- package/package.json +9 -9
package/dist/base.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAoCtC,8BAAsB,WAAY,SAAQ,OAAO;IAC/C,MAAM,CAAC,cAAc,UAAQ;IAE7B;;;;OAIG;IACG,OAAO,CAAC,GAAG,EAAE,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBpD,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIxC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIxC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAG1C"}
|
package/dist/base.js
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { Command } from '@oclif/core';
|
|
2
2
|
import { getWorld } from '@workflow/core/runtime';
|
|
3
|
+
function isMissingStaticWorldInjectionError(err) {
|
|
4
|
+
return (err instanceof Error &&
|
|
5
|
+
err.message.includes('Workflow target world was not statically injected'));
|
|
6
|
+
}
|
|
3
7
|
async function flushStream(stream) {
|
|
4
8
|
if (!stream.writable ||
|
|
5
9
|
stream.destroyed ||
|
|
@@ -36,7 +40,9 @@ export class BaseCommand extends Command {
|
|
|
36
40
|
await world.close?.();
|
|
37
41
|
}
|
|
38
42
|
catch (closeErr) {
|
|
39
|
-
|
|
43
|
+
if (!isMissingStaticWorldInjectionError(closeErr)) {
|
|
44
|
+
this.warn(`Failed to close world: ${closeErr instanceof Error ? closeErr.message : String(closeErr)}`);
|
|
45
|
+
}
|
|
40
46
|
}
|
|
41
47
|
await super.finally(err);
|
|
42
48
|
// Force exit. World.close() cleaned up database connections and HTTP
|
|
@@ -59,4 +65,4 @@ export class BaseCommand extends Command {
|
|
|
59
65
|
this.error(message);
|
|
60
66
|
}
|
|
61
67
|
}
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRWxELFNBQVMsa0NBQWtDLENBQUMsR0FBWTtJQUN0RCxPQUFPLENBQ0wsR0FBRyxZQUFZLEtBQUs7UUFDcEIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsbURBQW1ELENBQUMsQ0FDMUUsQ0FBQztBQUNKLENBQUM7QUFFRCxLQUFLLFVBQVUsV0FBVyxDQUFDLE1BQTBCO0lBQ25ELElBQ0UsQ0FBQyxNQUFNLENBQUMsUUFBUTtRQUNoQixNQUFNLENBQUMsU0FBUztRQUNoQixNQUFNLENBQUMsTUFBTTtRQUNiLE1BQU0sQ0FBQyxhQUFhO1FBQ3BCLE1BQU0sQ0FBQyxnQkFBZ0IsRUFDdkIsQ0FBQztRQUNELE9BQU87SUFDVCxDQUFDO0lBRUQsTUFBTSxJQUFJLE9BQU8sQ0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQ2xDLE1BQU0sT0FBTyxHQUFHLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQztZQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRTtnQkFDcEIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQzdCLE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDN0IsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxPQUFnQixXQUFZLFNBQVEsT0FBTztJQUMvQyxNQUFNLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztJQUU3Qjs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFzQjtRQUNsQyxJQUFJLENBQUM7WUFDSCxNQUFNLEtBQUssR0FBRyxNQUFNLFFBQVEsRUFBRSxDQUFDO1lBQy9CLE1BQU0sS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDeEIsQ0FBQztRQUFDLE9BQU8sUUFBUSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxJQUFJLENBQ1AsMEJBQTBCLFFBQVEsWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUM1RixDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7UUFDRCxNQUFNLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekIscUVBQXFFO1FBQ3JFLHdFQUF3RTtRQUN4RSx5RUFBeUU7UUFDekUscUVBQXFFO1FBQ3JFLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUNoQixXQUFXLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztZQUMzQixXQUFXLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztTQUM1QixDQUFDLENBQUM7UUFDSCxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRVMsT0FBTyxDQUFDLE9BQWU7UUFDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRVMsT0FBTyxDQUFDLE9BQWU7UUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRVMsUUFBUSxDQUFDLE9BQWU7UUFDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gJ0BvY2xpZi9jb3JlJztcbmltcG9ydCB7IGdldFdvcmxkIH0gZnJvbSAnQHdvcmtmbG93L2NvcmUvcnVudGltZSc7XG5cbmZ1bmN0aW9uIGlzTWlzc2luZ1N0YXRpY1dvcmxkSW5qZWN0aW9uRXJyb3IoZXJyOiB1bmtub3duKTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgZXJyIGluc3RhbmNlb2YgRXJyb3IgJiZcbiAgICBlcnIubWVzc2FnZS5pbmNsdWRlcygnV29ya2Zsb3cgdGFyZ2V0IHdvcmxkIHdhcyBub3Qgc3RhdGljYWxseSBpbmplY3RlZCcpXG4gICk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZsdXNoU3RyZWFtKHN0cmVhbTogTm9kZUpTLldyaXRlU3RyZWFtKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmIChcbiAgICAhc3RyZWFtLndyaXRhYmxlIHx8XG4gICAgc3RyZWFtLmRlc3Ryb3llZCB8fFxuICAgIHN0cmVhbS5jbG9zZWQgfHxcbiAgICBzdHJlYW0ud3JpdGFibGVFbmRlZCB8fFxuICAgIHN0cmVhbS53cml0YWJsZUZpbmlzaGVkXG4gICkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGF3YWl0IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XG4gICAgY29uc3Qgb25FcnJvciA9ICgpID0+IHJlc29sdmUoKTtcbiAgICBzdHJlYW0ub25jZSgnZXJyb3InLCBvbkVycm9yKTtcbiAgICB0cnkge1xuICAgICAgc3RyZWFtLndyaXRlKCcnLCAoKSA9PiB7XG4gICAgICAgIHN0cmVhbS5vZmYoJ2Vycm9yJywgb25FcnJvcik7XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2gge1xuICAgICAgc3RyZWFtLm9mZignZXJyb3InLCBvbkVycm9yKTtcbiAgICAgIHJlc29sdmUoKTtcbiAgICB9XG4gIH0pO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUNvbW1hbmQgZXh0ZW5kcyBDb21tYW5kIHtcbiAgc3RhdGljIGVuYWJsZUpzb25GbGFnID0gdHJ1ZTtcblxuICAvKipcbiAgICogQ2FsbGVkIGJ5IG9jbGlmIGFmdGVyIGBydW4oKWAgY29tcGxldGVzIChvciB0aHJvd3MpLlxuICAgKiBDbG9zZXMgdGhlIGNhY2hlZCBXb3JsZCBpbnN0YW5jZSBzbyB0aGUgcHJvY2VzcyBjYW4gZXhpdCBjbGVhbmx5XG4gICAqIHdpdGhvdXQgcmVseWluZyBvbiBgcHJvY2Vzcy5leGl0KClgLlxuICAgKi9cbiAgYXN5bmMgZmluYWxseShlcnI6IEVycm9yIHwgdW5kZWZpbmVkKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHdvcmxkID0gYXdhaXQgZ2V0V29ybGQoKTtcbiAgICAgIGF3YWl0IHdvcmxkLmNsb3NlPy4oKTtcbiAgICB9IGNhdGNoIChjbG9zZUVycikge1xuICAgICAgaWYgKCFpc01pc3NpbmdTdGF0aWNXb3JsZEluamVjdGlvbkVycm9yKGNsb3NlRXJyKSkge1xuICAgICAgICB0aGlzLndhcm4oXG4gICAgICAgICAgYEZhaWxlZCB0byBjbG9zZSB3b3JsZDogJHtjbG9zZUVyciBpbnN0YW5jZW9mIEVycm9yID8gY2xvc2VFcnIubWVzc2FnZSA6IFN0cmluZyhjbG9zZUVycil9YFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICBhd2FpdCBzdXBlci5maW5hbGx5KGVycik7XG4gICAgLy8gRm9yY2UgZXhpdC4gV29ybGQuY2xvc2UoKSBjbGVhbmVkIHVwIGRhdGFiYXNlIGNvbm5lY3Rpb25zIGFuZCBIVFRQXG4gICAgLy8gYWdlbnRzLCBidXQgdGhpcmQtcGFydHkgbGlicmFyaWVzIChvY2xpZiB1cGRhdGUgY2hlY2tlciwgcG9zdGdyZXMuanMpXG4gICAgLy8gbWF5IGxlYXZlIHRpbWVycyBvciBzb2NrZXRzIHRoYXQgcHJldmVudCB0aGUgZXZlbnQgbG9vcCBmcm9tIGRyYWluaW5nLlxuICAgIC8vIFRoaXMgaXMgc2FmZSBiZWNhdXNlIGFsbCBidXNpbmVzcyBsb2dpYyBhbmQgY2xlYW51cCBoYXMgY29tcGxldGVkLlxuICAgIGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgIGZsdXNoU3RyZWFtKHByb2Nlc3Muc3Rkb3V0KSxcbiAgICAgIGZsdXNoU3RyZWFtKHByb2Nlc3Muc3RkZXJyKSxcbiAgICBdKTtcbiAgICBwcm9jZXNzLmV4aXQoZXJyID8gMSA6IChwcm9jZXNzLmV4aXRDb2RlID8/IDApKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBsb2dJbmZvKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMubG9nKG1lc3NhZ2UpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGxvZ1dhcm4obWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy53YXJuKG1lc3NhZ2UpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGxvZ0Vycm9yKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZXJyb3IobWVzc2FnZSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cancel.d.ts","sourceRoot":"","sources":["../../src/commands/cancel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cancel.d.ts","sourceRoot":"","sources":["../../src/commands/cancel.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAUzC,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,WAAW;IAC7C,MAAM,CAAC,WAAW,SAC4C;IAE9D,MAAM,CAAC,OAAO,WAAS;IAEvB,MAAM,CAAC,QAAQ,WAKb;IAEI,KAAK,CAAC,KAAK,EAAE,GAAG;IAUtB,MAAM,CAAC,IAAI;;MAKA;IAEX,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;;;;;MAgCV;IAEW,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAsIlC"}
|
package/dist/commands/cancel.js
CHANGED
|
@@ -6,8 +6,10 @@ import chalk from 'chalk';
|
|
|
6
6
|
import Table from 'easy-table';
|
|
7
7
|
import { BaseCommand } from '../base.js';
|
|
8
8
|
import { LOGGING_CONFIG, logger } from '../lib/config/log.js';
|
|
9
|
+
import { getObservabilityUpgradeRequiredMessage, isObservabilityUpgradeRequiredError, } from '../lib/inspect/errors.js';
|
|
9
10
|
import { cliFlags } from '../lib/inspect/flags.js';
|
|
10
11
|
import { setupCliWorld } from '../lib/inspect/setup.js';
|
|
12
|
+
import { planWindowStartFromResponse } from '../lib/inspect/time-window.js';
|
|
11
13
|
export default class Cancel extends BaseCommand {
|
|
12
14
|
static description = 'Cancel a workflow run, or bulk-cancel runs by status/name';
|
|
13
15
|
static aliases = ['c'];
|
|
@@ -18,7 +20,11 @@ export default class Cancel extends BaseCommand {
|
|
|
18
20
|
'$ workflow cancel --status=running -y',
|
|
19
21
|
];
|
|
20
22
|
async catch(error) {
|
|
21
|
-
if (
|
|
23
|
+
if (isObservabilityUpgradeRequiredError(error)) {
|
|
24
|
+
logger.error(getObservabilityUpgradeRequiredMessage());
|
|
25
|
+
process.exit(1);
|
|
26
|
+
}
|
|
27
|
+
else if (LOGGING_CONFIG.VERBOSE_MODE) {
|
|
22
28
|
console.error(error);
|
|
23
29
|
}
|
|
24
30
|
throw error;
|
|
@@ -83,13 +89,50 @@ export default class Cancel extends BaseCommand {
|
|
|
83
89
|
' workflow cancel --status=running --workflowName=myWorkflow');
|
|
84
90
|
process.exit(1);
|
|
85
91
|
}
|
|
86
|
-
// Fetch matching runs
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
92
|
+
// Fetch matching runs. Only metadata is needed to display and cancel, so
|
|
93
|
+
// prefer the analytics read path when the backend provides one.
|
|
94
|
+
const status = flags.status;
|
|
95
|
+
const limit = flags.limit || 50;
|
|
96
|
+
const analytics = world.analytics;
|
|
97
|
+
const fetchMatches = async () => {
|
|
98
|
+
if (!analytics) {
|
|
99
|
+
return world.runs.list({
|
|
100
|
+
status,
|
|
101
|
+
workflowName: flags.workflowName,
|
|
102
|
+
pagination: { limit },
|
|
103
|
+
resolveData: 'none',
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
// The analytics backend defaults its listing to a recent window
|
|
107
|
+
// (trailing 24h on the Vercel backend), but bulk cancel must match
|
|
108
|
+
// across the plan's whole observability window — a run can sleep or
|
|
109
|
+
// wait on a hook for days without emitting recent events. Probe for
|
|
110
|
+
// the plan window bounds first, then match across them.
|
|
111
|
+
const probe = await analytics.runs.list({
|
|
112
|
+
status,
|
|
113
|
+
workflowName: flags.workflowName,
|
|
114
|
+
pagination: { limit: 1 },
|
|
115
|
+
});
|
|
116
|
+
const windowStart = planWindowStartFromResponse(probe);
|
|
117
|
+
return analytics.runs.list({
|
|
118
|
+
status,
|
|
119
|
+
workflowName: flags.workflowName,
|
|
120
|
+
...(windowStart
|
|
121
|
+
? { startTime: windowStart, endTime: new Date().toISOString() }
|
|
122
|
+
: {}),
|
|
123
|
+
pagination: { limit },
|
|
124
|
+
});
|
|
125
|
+
};
|
|
126
|
+
const runList = await fetchMatches();
|
|
127
|
+
const runs = {
|
|
128
|
+
data: runList.data.map((run) => ({
|
|
129
|
+
runId: run.runId,
|
|
130
|
+
workflowName: run.workflowName,
|
|
131
|
+
status: run.status,
|
|
132
|
+
startedAt: run.startedAt,
|
|
133
|
+
})),
|
|
134
|
+
hasMore: runList.hasMore,
|
|
135
|
+
};
|
|
93
136
|
if (runs.data.length === 0) {
|
|
94
137
|
logger.warn('No matching runs found.');
|
|
95
138
|
return;
|
|
@@ -151,4 +194,4 @@ async function promptConfirm(message) {
|
|
|
151
194
|
});
|
|
152
195
|
});
|
|
153
196
|
}
|
|
154
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FuY2VsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL2NhbmNlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFFBQVEsTUFBTSxlQUFlLENBQUM7QUFDckMsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEtBQUssTUFBTSxZQUFZLENBQUM7QUFDL0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN6QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFeEQsTUFBTSxDQUFDLE9BQU8sT0FBTyxNQUFPLFNBQVEsV0FBVztJQUM3QyxNQUFNLENBQUMsV0FBVyxHQUNoQiwyREFBMkQsQ0FBQztJQUU5RCxNQUFNLENBQUMsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFdkIsTUFBTSxDQUFDLFFBQVEsR0FBRztRQUNoQiw0QkFBNEI7UUFDNUIsb0NBQW9DO1FBQ3BDLDhEQUE4RDtRQUM5RCx1Q0FBdUM7S0FDeEMsQ0FBQztJQUVGLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBVTtRQUNwQixJQUFJLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNoQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxNQUFNLEtBQUssQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBSSxHQUFHO1FBQ1osS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDakIsV0FBVyxFQUFFLDJEQUEyRDtZQUN4RSxRQUFRLEVBQUUsS0FBSztTQUNoQixDQUFDO0tBQ00sQ0FBQztJQUVYLE1BQU0sQ0FBQyxLQUFLLEdBQUc7UUFDYixHQUFHLFFBQVE7UUFDWCxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNuQixXQUFXLEVBQUUsdUNBQXVDO1lBQ3BELFFBQVEsRUFBRSxLQUFLO1lBQ2YsT0FBTyxFQUFFLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFNBQVMsQ0FBQztZQUNuRSxTQUFTLEVBQUUsYUFBYTtZQUN4QixTQUFTLEVBQUUsVUFBVTtTQUN0QixDQUFDO1FBQ0YsWUFBWSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDekIsV0FBVyxFQUFFLDhDQUE4QztZQUMzRCxRQUFRLEVBQUUsS0FBSztZQUNmLElBQUksRUFBRSxHQUFHO1lBQ1QsU0FBUyxFQUFFLGFBQWE7WUFDeEIsU0FBUyxFQUFFLG9CQUFvQjtTQUNoQyxDQUFDO1FBQ0YsS0FBSyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDbkIsV0FBVyxFQUFFLGlDQUFpQztZQUM5QyxRQUFRLEVBQUUsS0FBSztZQUNmLE9BQU8sRUFBRSxFQUFFO1lBQ1gsU0FBUyxFQUFFLGFBQWE7WUFDeEIsU0FBUyxFQUFFLFNBQVM7WUFDcEIsU0FBUyxFQUFFLFFBQVE7U0FDcEIsQ0FBQztRQUNGLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ3JCLFdBQVcsRUFBRSxzQ0FBc0M7WUFDbkQsUUFBUSxFQUFFLEtBQUs7WUFDZixJQUFJLEVBQUUsR0FBRztZQUNULE9BQU8sRUFBRSxLQUFLO1lBQ2QsU0FBUyxFQUFFLGFBQWE7WUFDeEIsU0FBUyxFQUFFLGVBQWU7U0FDM0IsQ0FBQztLQUNILENBQUM7SUFFSyxLQUFLLENBQUMsR0FBRztRQUNkLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWpELE1BQU0sS0FBSyxHQUFHLE1BQU0sYUFBYSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLE1BQU0sSUFBSSxLQUFLLENBQ2IseURBQXlELENBQzFELENBQUM7UUFDSixDQUFDO1FBRUQsd0NBQXdDO1FBQ3hDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2YsTUFBTSxTQUFTLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsaUJBQWlCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDdkQsT0FBTztRQUNULENBQUM7UUFFRCx5Q0FBeUM7UUFDekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDekMsTUFBTSxDQUFDLEtBQUssQ0FDVixtRUFBbUU7Z0JBQ2pFLGFBQWE7Z0JBQ2IsOEJBQThCO2dCQUM5QixzQ0FBc0M7Z0JBQ3RDLDhEQUE4RCxDQUNqRSxDQUFDO1lBQ0YsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsQixDQUFDO1FBRUQsc0JBQXNCO1FBQ3RCLE1BQU0sSUFBSSxHQUFHLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDakMsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFhO1lBQzNCLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtZQUNoQyxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssSUFBSSxFQUFFLEVBQUU7WUFDeEMsV0FBVyxFQUFFLE1BQU07U0FDcEIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMzQixNQUFNLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLENBQUM7WUFDdkMsT0FBTztRQUNULENBQUM7UUFFRCxpQ0FBaUM7UUFDakMsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUMxQixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM1QixNQUFNLFNBQVMsR0FDYixpQkFBaUIsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsU0FBUyxJQUFJLEdBQUcsQ0FBQyxZQUFZLENBQUM7WUFDckUsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9CLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNwRCxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakMsS0FBSyxDQUFDLElBQUksQ0FDUixXQUFXLEVBQ1gsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQzVELENBQUM7WUFDRixLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDakIsQ0FBQztRQUNELE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDeEUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUU3QixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixNQUFNLENBQUMsSUFBSSxDQUNULDhEQUE4RCxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUUsd0NBQXdDLENBQ3hILENBQUM7UUFDSixDQUFDO1FBRUQsOEJBQThCO1FBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkIsTUFBTSxTQUFTLEdBQUcsTUFBTSxhQUFhLENBQ25DLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUN0RSxDQUFDO1lBQ0YsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNmLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ3ZCLE9BQU87WUFDVCxDQUFDO1FBQ0gsQ0FBQztRQUVELGdDQUFnQztRQUNoQyxJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDbEIsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDO2dCQUNILE1BQU0sU0FBUyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2xDLFNBQVMsRUFBRSxDQUFDO2dCQUNaLE1BQU0sQ0FBQyxHQUFHLENBQ1IsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDN0IsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQ3BELENBQUM7WUFDSixDQUFDO1lBQUMsT0FBTyxHQUFRLEVBQUUsQ0FBQztnQkFDbEIsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2pFLENBQUM7UUFDSCxDQUFDO1FBRUQsTUFBTSxDQUFDLEdBQUcsQ0FDUixXQUFXLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxTQUFTLFlBQVksQ0FBQyxHQUFHLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQzVHLENBQUM7SUFDSixDQUFDOztBQUdILEtBQUssVUFBVSxhQUFhLENBQUMsT0FBZTtJQUMxQywyRkFBMkY7SUFDM0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDekIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLGVBQWUsQ0FBQztRQUNsQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7UUFDcEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO0tBQ3ZCLENBQUMsQ0FBQztJQUVILE9BQU8sSUFBSSxPQUFPLENBQVUsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUN0QyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsT0FBTyxTQUFTLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUMxQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWCxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQy9DLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlYWRsaW5lIGZyb20gJ25vZGU6cmVhZGxpbmUnO1xuaW1wb3J0IHsgQXJncywgRmxhZ3MgfSBmcm9tICdAb2NsaWYvY29yZSc7XG5pbXBvcnQgeyBjYW5jZWxSdW4gfSBmcm9tICdAd29ya2Zsb3cvY29yZS9ydW50aW1lJztcbmltcG9ydCB7IHBhcnNlV29ya2Zsb3dOYW1lIH0gZnJvbSAnQHdvcmtmbG93L3V0aWxzL3BhcnNlLW5hbWUnO1xuaW1wb3J0IGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCBUYWJsZSBmcm9tICdlYXN5LXRhYmxlJztcbmltcG9ydCB7IEJhc2VDb21tYW5kIH0gZnJvbSAnLi4vYmFzZS5qcyc7XG5pbXBvcnQgeyBMT0dHSU5HX0NPTkZJRywgbG9nZ2VyIH0gZnJvbSAnLi4vbGliL2NvbmZpZy9sb2cuanMnO1xuaW1wb3J0IHsgY2xpRmxhZ3MgfSBmcm9tICcuLi9saWIvaW5zcGVjdC9mbGFncy5qcyc7XG5pbXBvcnQgeyBzZXR1cENsaVdvcmxkIH0gZnJvbSAnLi4vbGliL2luc3BlY3Qvc2V0dXAuanMnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDYW5jZWwgZXh0ZW5kcyBCYXNlQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9XG4gICAgJ0NhbmNlbCBhIHdvcmtmbG93IHJ1biwgb3IgYnVsay1jYW5jZWwgcnVucyBieSBzdGF0dXMvbmFtZSc7XG5cbiAgc3RhdGljIGFsaWFzZXMgPSBbJ2MnXTtcblxuICBzdGF0aWMgZXhhbXBsZXMgPSBbXG4gICAgJyQgd29ya2Zsb3cgY2FuY2VsIDxydW4taWQ+JyxcbiAgICAnJCB3b3JrZmxvdyBjYW5jZWwgLS1zdGF0dXM9cnVubmluZycsXG4gICAgJyQgd29ya2Zsb3cgY2FuY2VsIC0tc3RhdHVzPXJ1bm5pbmcgLS13b3JrZmxvd05hbWU9bXlXb3JrZmxvdycsXG4gICAgJyQgd29ya2Zsb3cgY2FuY2VsIC0tc3RhdHVzPXJ1bm5pbmcgLXknLFxuICBdO1xuXG4gIGFzeW5jIGNhdGNoKGVycm9yOiBhbnkpIHtcbiAgICBpZiAoTE9HR0lOR19DT05GSUcuVkVSQk9TRV9NT0RFKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICB9XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cblxuICBzdGF0aWMgYXJncyA9IHtcbiAgICBydW5JZDogQXJncy5zdHJpbmcoe1xuICAgICAgZGVzY3JpcHRpb246ICdJRCBvZiB0aGUgcnVuIHRvIGNhbmNlbCAob21pdCBmb3IgYnVsayBtb2RlIHdpdGggZmlsdGVycyknLFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIH0pLFxuICB9IGFzIGNvbnN0O1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5jbGlGbGFncyxcbiAgICBzdGF0dXM6IEZsYWdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogJ0ZpbHRlciBydW5zIGJ5IHN0YXR1cyBmb3IgYnVsayBjYW5jZWwnLFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgb3B0aW9uczogWydydW5uaW5nJywgJ2NvbXBsZXRlZCcsICdmYWlsZWQnLCAnY2FuY2VsbGVkJywgJ3BlbmRpbmcnXSxcbiAgICAgIGhlbHBHcm91cDogJ0J1bGsgQ2FuY2VsJyxcbiAgICAgIGhlbHBMYWJlbDogJy0tc3RhdHVzJyxcbiAgICB9KSxcbiAgICB3b3JrZmxvd05hbWU6IEZsYWdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogJ0ZpbHRlciBydW5zIGJ5IHdvcmtmbG93IG5hbWUgZm9yIGJ1bGsgY2FuY2VsJyxcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIGNoYXI6ICduJyxcbiAgICAgIGhlbHBHcm91cDogJ0J1bGsgQ2FuY2VsJyxcbiAgICAgIGhlbHBMYWJlbDogJy1uLCAtLXdvcmtmbG93TmFtZScsXG4gICAgfSksXG4gICAgbGltaXQ6IEZsYWdzLmludGVnZXIoe1xuICAgICAgZGVzY3JpcHRpb246ICdNYXggcnVucyB0byBjYW5jZWwgaW4gYnVsayBtb2RlJyxcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIGRlZmF1bHQ6IDUwLFxuICAgICAgaGVscEdyb3VwOiAnQnVsayBDYW5jZWwnLFxuICAgICAgaGVscExhYmVsOiAnLS1saW1pdCcsXG4gICAgICBoZWxwVmFsdWU6ICdOVU1CRVInLFxuICAgIH0pLFxuICAgIGNvbmZpcm06IEZsYWdzLmJvb2xlYW4oe1xuICAgICAgZGVzY3JpcHRpb246ICdTa2lwIGludGVyYWN0aXZlIGNvbmZpcm1hdGlvbiBwcm9tcHQnLFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgY2hhcjogJ3knLFxuICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICBoZWxwR3JvdXA6ICdCdWxrIENhbmNlbCcsXG4gICAgICBoZWxwTGFiZWw6ICcteSwgLS1jb25maXJtJyxcbiAgICB9KSxcbiAgfTtcblxuICBwdWJsaWMgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgZmxhZ3MsIGFyZ3MgfSA9IGF3YWl0IHRoaXMucGFyc2UoQ2FuY2VsKTtcblxuICAgIGNvbnN0IHdvcmxkID0gYXdhaXQgc2V0dXBDbGlXb3JsZChmbGFncywgdGhpcy5jb25maWcudmVyc2lvbik7XG4gICAgaWYgKCF3b3JsZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnRmFpbGVkIHRvIGNvbm5lY3QgdG8gYmFja2VuZC4gQ2hlY2sgeW91ciBjb25maWd1cmF0aW9uLidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gU2luZ2xlLXJ1biBjYW5jZWwgKGV4aXN0aW5nIGJlaGF2aW9yKVxuICAgIGlmIChhcmdzLnJ1bklkKSB7XG4gICAgICBhd2FpdCBjYW5jZWxSdW4od29ybGQsIGFyZ3MucnVuSWQpO1xuICAgICAgbG9nZ2VyLmxvZyhjaGFsay5ncmVlbihgQ2FuY2VsbGVkIHJ1biAke2FyZ3MucnVuSWR9YCkpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEJ1bGsgbW9kZSByZXF1aXJlcyBhdCBsZWFzdCBvbmUgZmlsdGVyXG4gICAgaWYgKCFmbGFncy5zdGF0dXMgJiYgIWZsYWdzLndvcmtmbG93TmFtZSkge1xuICAgICAgbG9nZ2VyLmVycm9yKFxuICAgICAgICAnUHJvdmlkZSBhIHJ1biBJRCBvciB1c2UgLS1zdGF0dXMvLS13b3JrZmxvd05hbWUgdG8gYnVsayBjYW5jZWwuXFxuJyArXG4gICAgICAgICAgJ0V4YW1wbGVzOlxcbicgK1xuICAgICAgICAgICcgIHdvcmtmbG93IGNhbmNlbCA8cnVuLWlkPlxcbicgK1xuICAgICAgICAgICcgIHdvcmtmbG93IGNhbmNlbCAtLXN0YXR1cz1ydW5uaW5nXFxuJyArXG4gICAgICAgICAgJyAgd29ya2Zsb3cgY2FuY2VsIC0tc3RhdHVzPXJ1bm5pbmcgLS13b3JrZmxvd05hbWU9bXlXb3JrZmxvdydcbiAgICAgICk7XG4gICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgfVxuXG4gICAgLy8gRmV0Y2ggbWF0Y2hpbmcgcnVuc1xuICAgIGNvbnN0IHJ1bnMgPSBhd2FpdCB3b3JsZC5ydW5zLmxpc3Qoe1xuICAgICAgc3RhdHVzOiBmbGFncy5zdGF0dXMgYXMgYW55LFxuICAgICAgd29ya2Zsb3dOYW1lOiBmbGFncy53b3JrZmxvd05hbWUsXG4gICAgICBwYWdpbmF0aW9uOiB7IGxpbWl0OiBmbGFncy5saW1pdCB8fCA1MCB9LFxuICAgICAgcmVzb2x2ZURhdGE6ICdub25lJyxcbiAgICB9KTtcblxuICAgIGlmIChydW5zLmRhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgICBsb2dnZXIud2FybignTm8gbWF0Y2hpbmcgcnVucyBmb3VuZC4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBEaXNwbGF5IHdoYXQgd2lsbCBiZSBjYW5jZWxsZWRcbiAgICBjb25zdCB0YWJsZSA9IG5ldyBUYWJsZSgpO1xuICAgIGZvciAoY29uc3QgcnVuIG9mIHJ1bnMuZGF0YSkge1xuICAgICAgY29uc3Qgc2hvcnROYW1lID1cbiAgICAgICAgcGFyc2VXb3JrZmxvd05hbWUocnVuLndvcmtmbG93TmFtZSk/LnNob3J0TmFtZSB8fCBydW4ud29ya2Zsb3dOYW1lO1xuICAgICAgdGFibGUuY2VsbCgncnVuSWQnLCBydW4ucnVuSWQpO1xuICAgICAgdGFibGUuY2VsbCgnd29ya2Zsb3cnLCBjaGFsay5ibHVlQnJpZ2h0KHNob3J0TmFtZSkpO1xuICAgICAgdGFibGUuY2VsbCgnc3RhdHVzJywgcnVuLnN0YXR1cyk7XG4gICAgICB0YWJsZS5jZWxsKFxuICAgICAgICAnc3RhcnRlZEF0JyxcbiAgICAgICAgcnVuLnN0YXJ0ZWRBdCA/IG5ldyBEYXRlKHJ1bi5zdGFydGVkQXQpLnRvSVNPU3RyaW5nKCkgOiAnLSdcbiAgICAgICk7XG4gICAgICB0YWJsZS5uZXdSb3coKTtcbiAgICB9XG4gICAgbG9nZ2VyLmxvZyhgXFxuRm91bmQgJHtjaGFsay5ib2xkKHJ1bnMuZGF0YS5sZW5ndGgpfSBydW5zIHRvIGNhbmNlbDpcXG5gKTtcbiAgICBsb2dnZXIubG9nKHRhYmxlLnRvU3RyaW5nKCkpO1xuXG4gICAgaWYgKHJ1bnMuaGFzTW9yZSkge1xuICAgICAgbG9nZ2VyLndhcm4oXG4gICAgICAgIGBNb3JlIHJ1bnMgbWF0Y2ggdGhlc2UgZmlsdGVycy4gSW5jcmVhc2UgLS1saW1pdCAoY3VycmVudGx5ICR7ZmxhZ3MubGltaXQgfHwgNTB9KSBvciByZS1ydW4gdG8gY2FuY2VsIGFkZGl0aW9uYWwgcnVucy5gXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIENvbmZpcm0gdW5sZXNzIC0tY29uZmlybS8teVxuICAgIGlmICghZmxhZ3MuY29uZmlybSkge1xuICAgICAgY29uc3QgY29uZmlybWVkID0gYXdhaXQgcHJvbXB0Q29uZmlybShcbiAgICAgICAgYENhbmNlbCAke3J1bnMuZGF0YS5sZW5ndGh9IHJ1biR7cnVucy5kYXRhLmxlbmd0aCA9PT0gMSA/ICcnIDogJ3MnfT9gXG4gICAgICApO1xuICAgICAgaWYgKCFjb25maXJtZWQpIHtcbiAgICAgICAgbG9nZ2VyLmxvZygnQWJvcnRlZC4nKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIENhbmNlbCBlYWNoIHJ1biB3aXRoIHByb2dyZXNzXG4gICAgbGV0IGNhbmNlbGxlZCA9IDA7XG4gICAgbGV0IGZhaWxlZCA9IDA7XG4gICAgZm9yIChjb25zdCBydW4gb2YgcnVucy5kYXRhKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBjYW5jZWxSdW4od29ybGQsIHJ1bi5ydW5JZCk7XG4gICAgICAgIGNhbmNlbGxlZCsrO1xuICAgICAgICBsb2dnZXIubG9nKFxuICAgICAgICAgIGNoYWxrLmdyZWVuKGAgIOKckyAke3J1bi5ydW5JZH1gKSArXG4gICAgICAgICAgICBjaGFsay5ncmF5KGAgKCR7Y2FuY2VsbGVkfS8ke3J1bnMuZGF0YS5sZW5ndGh9KWApXG4gICAgICAgICk7XG4gICAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgICBmYWlsZWQrKztcbiAgICAgICAgbG9nZ2VyLndhcm4oYCAg4pyXICR7cnVuLnJ1bklkfTogJHtlcnIubWVzc2FnZSB8fCBTdHJpbmcoZXJyKX1gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsb2dnZXIubG9nKFxuICAgICAgYFxcbkRvbmU6ICR7Y2hhbGsuZ3JlZW4oYCR7Y2FuY2VsbGVkfSBjYW5jZWxsZWRgKX0ke2ZhaWxlZCA+IDAgPyBgLCAke2NoYWxrLnJlZChgJHtmYWlsZWR9IGZhaWxlZGApfWAgOiAnJ31gXG4gICAgKTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBwcm9tcHRDb25maXJtKG1lc3NhZ2U6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAvLyBOb24tVFRZOiBhYm9ydCBzaW5jZSB1c2VyIGNhbm5vdCBjb25maXJtIGludGVyYWN0aXZlbHkgKHVzZSAteS8tLWNvbmZpcm0gdG8gc2tpcCBwcm9tcHQpXG4gIGlmICghcHJvY2Vzcy5zdGRpbi5pc1RUWSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IHJsID0gcmVhZGxpbmUuY3JlYXRlSW50ZXJmYWNlKHtcbiAgICBpbnB1dDogcHJvY2Vzcy5zdGRpbixcbiAgICBvdXRwdXQ6IHByb2Nlc3Muc3Rkb3V0LFxuICB9KTtcblxuICByZXR1cm4gbmV3IFByb21pc2U8Ym9vbGVhbj4oKHJlc29sdmUpID0+IHtcbiAgICBybC5xdWVzdGlvbihgJHttZXNzYWdlfSBbeS9OXSBgLCAoYW5zd2VyKSA9PiB7XG4gICAgICBybC5jbG9zZSgpO1xuICAgICAgcmVzb2x2ZShhbnN3ZXIudHJpbSgpLnRvTG93ZXJDYXNlKCkgPT09ICd5Jyk7XG4gICAgfSk7XG4gIH0pO1xufVxuIl19
|
|
197
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FuY2VsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL2NhbmNlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFFBQVEsTUFBTSxlQUFlLENBQUM7QUFDckMsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRS9ELE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEtBQUssTUFBTSxZQUFZLENBQUM7QUFDL0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN6QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlELE9BQU8sRUFDTCxzQ0FBc0MsRUFDdEMsbUNBQW1DLEdBQ3BDLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU1RSxNQUFNLENBQUMsT0FBTyxPQUFPLE1BQU8sU0FBUSxXQUFXO0lBQzdDLE1BQU0sQ0FBQyxXQUFXLEdBQ2hCLDJEQUEyRCxDQUFDO0lBRTlELE1BQU0sQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUV2QixNQUFNLENBQUMsUUFBUSxHQUFHO1FBQ2hCLDRCQUE0QjtRQUM1QixvQ0FBb0M7UUFDcEMsOERBQThEO1FBQzlELHVDQUF1QztLQUN4QyxDQUFDO0lBRUYsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFVO1FBQ3BCLElBQUksbUNBQW1DLENBQUMsS0FB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QUMsT0FBTyxFQUFFLEVBQUU7UUFDdEMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLE9BQU8sU0FBUyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDMUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1gsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCByZWFkbGluZSBmcm9tICdub2RlOnJlYWRsaW5lJztcbmltcG9ydCB7IEFyZ3MsIEZsYWdzIH0gZnJvbSAnQG9jbGlmL2NvcmUnO1xuaW1wb3J0IHsgY2FuY2VsUnVuIH0gZnJvbSAnQHdvcmtmbG93L2NvcmUvcnVudGltZSc7XG5pbXBvcnQgeyBwYXJzZVdvcmtmbG93TmFtZSB9IGZyb20gJ0B3b3JrZmxvdy91dGlscy9wYXJzZS1uYW1lJztcbmltcG9ydCB0eXBlIHsgV29ya2Zsb3dSdW4gfSBmcm9tICdAd29ya2Zsb3cvd29ybGQnO1xuaW1wb3J0IGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCBUYWJsZSBmcm9tICdlYXN5LXRhYmxlJztcbmltcG9ydCB7IEJhc2VDb21tYW5kIH0gZnJvbSAnLi4vYmFzZS5qcyc7XG5pbXBvcnQgeyBMT0dHSU5HX0NPTkZJRywgbG9nZ2VyIH0gZnJvbSAnLi4vbGliL2NvbmZpZy9sb2cuanMnO1xuaW1wb3J0IHtcbiAgZ2V0T2JzZXJ2YWJpbGl0eVVwZ3JhZGVSZXF1aXJlZE1lc3NhZ2UsXG4gIGlzT2JzZXJ2YWJpbGl0eVVwZ3JhZGVSZXF1aXJlZEVycm9yLFxufSBmcm9tICcuLi9saWIvaW5zcGVjdC9lcnJvcnMuanMnO1xuaW1wb3J0IHsgY2xpRmxhZ3MgfSBmcm9tICcuLi9saWIvaW5zcGVjdC9mbGFncy5qcyc7XG5pbXBvcnQgeyBzZXR1cENsaVdvcmxkIH0gZnJvbSAnLi4vbGliL2luc3BlY3Qvc2V0dXAuanMnO1xuaW1wb3J0IHsgcGxhbldpbmRvd1N0YXJ0RnJvbVJlc3BvbnNlIH0gZnJvbSAnLi4vbGliL2luc3BlY3QvdGltZS13aW5kb3cuanMnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDYW5jZWwgZXh0ZW5kcyBCYXNlQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9XG4gICAgJ0NhbmNlbCBhIHdvcmtmbG93IHJ1biwgb3IgYnVsay1jYW5jZWwgcnVucyBieSBzdGF0dXMvbmFtZSc7XG5cbiAgc3RhdGljIGFsaWFzZXMgPSBbJ2MnXTtcblxuICBzdGF0aWMgZXhhbXBsZXMgPSBbXG4gICAgJyQgd29ya2Zsb3cgY2FuY2VsIDxydW4taWQ+JyxcbiAgICAnJCB3b3JrZmxvdyBjYW5jZWwgLS1zdGF0dXM9cnVubmluZycsXG4gICAgJyQgd29ya2Zsb3cgY2FuY2VsIC0tc3RhdHVzPXJ1bm5pbmcgLS13b3JrZmxvd05hbWU9bXlXb3JrZmxvdycsXG4gICAgJyQgd29ya2Zsb3cgY2FuY2VsIC0tc3RhdHVzPXJ1bm5pbmcgLXknLFxuICBdO1xuXG4gIGFzeW5jIGNhdGNoKGVycm9yOiBhbnkpIHtcbiAgICBpZiAoaXNPYnNlcnZhYmlsaXR5VXBncmFkZVJlcXVpcmVkRXJyb3IoZXJyb3IpKSB7XG4gICAgICBsb2dnZXIuZXJyb3IoZ2V0T2JzZXJ2YWJpbGl0eVVwZ3JhZGVSZXF1aXJlZE1lc3NhZ2UoKSk7XG4gICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgfSBlbHNlIGlmIChMT0dHSU5HX0NPTkZJRy5WRVJCT1NFX01PREUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxuXG4gIHN0YXRpYyBhcmdzID0ge1xuICAgIHJ1bklkOiBBcmdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogJ0lEIG9mIHRoZSBydW4gdG8gY2FuY2VsIChvbWl0IGZvciBidWxrIG1vZGUgd2l0aCBmaWx0ZXJzKScsXG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgfSksXG4gIH0gYXMgY29uc3Q7XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIC4uLmNsaUZsYWdzLFxuICAgIHN0YXR1czogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnRmlsdGVyIHJ1bnMgYnkgc3RhdHVzIGZvciBidWxrIGNhbmNlbCcsXG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICBvcHRpb25zOiBbJ3J1bm5pbmcnLCAnY29tcGxldGVkJywgJ2ZhaWxlZCcsICdjYW5jZWxsZWQnLCAncGVuZGluZyddLFxuICAgICAgaGVscEdyb3VwOiAnQnVsayBDYW5jZWwnLFxuICAgICAgaGVscExhYmVsOiAnLS1zdGF0dXMnLFxuICAgIH0pLFxuICAgIHdvcmtmbG93TmFtZTogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnRmlsdGVyIHJ1bnMgYnkgd29ya2Zsb3cgbmFtZSBmb3IgYnVsayBjYW5jZWwnLFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgY2hhcjogJ24nLFxuICAgICAgaGVscEdyb3VwOiAnQnVsayBDYW5jZWwnLFxuICAgICAgaGVscExhYmVsOiAnLW4sIC0td29ya2Zsb3dOYW1lJyxcbiAgICB9KSxcbiAgICBsaW1pdDogRmxhZ3MuaW50ZWdlcih7XG4gICAgICBkZXNjcmlwdGlvbjogJ01heCBydW5zIHRvIGNhbmNlbCBpbiBidWxrIG1vZGUnLFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgZGVmYXVsdDogNTAsXG4gICAgICBoZWxwR3JvdXA6ICdCdWxrIENhbmNlbCcsXG4gICAgICBoZWxwTGFiZWw6ICctLWxpbWl0JyxcbiAgICAgIGhlbHBWYWx1ZTogJ05VTUJFUicsXG4gICAgfSksXG4gICAgY29uZmlybTogRmxhZ3MuYm9vbGVhbih7XG4gICAgICBkZXNjcmlwdGlvbjogJ1NraXAgaW50ZXJhY3RpdmUgY29uZmlybWF0aW9uIHByb21wdCcsXG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICBjaGFyOiAneScsXG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgIGhlbHBHcm91cDogJ0J1bGsgQ2FuY2VsJyxcbiAgICAgIGhlbHBMYWJlbDogJy15LCAtLWNvbmZpcm0nLFxuICAgIH0pLFxuICB9O1xuXG4gIHB1YmxpYyBhc3luYyBydW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBmbGFncywgYXJncyB9ID0gYXdhaXQgdGhpcy5wYXJzZShDYW5jZWwpO1xuXG4gICAgY29uc3Qgd29ybGQgPSBhd2FpdCBzZXR1cENsaVdvcmxkKGZsYWdzLCB0aGlzLmNvbmZpZy52ZXJzaW9uKTtcbiAgICBpZiAoIXdvcmxkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdGYWlsZWQgdG8gY29ubmVjdCB0byBiYWNrZW5kLiBDaGVjayB5b3VyIGNvbmZpZ3VyYXRpb24uJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBTaW5nbGUtcnVuIGNhbmNlbCAoZXhpc3RpbmcgYmVoYXZpb3IpXG4gICAgaWYgKGFyZ3MucnVuSWQpIHtcbiAgICAgIGF3YWl0IGNhbmNlbFJ1bih3b3JsZCwgYXJncy5ydW5JZCk7XG4gICAgICBsb2dnZXIubG9nKGNoYWxrLmdyZWVuKGBDYW5jZWxsZWQgcnVuICR7YXJncy5ydW5JZH1gKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQnVsayBtb2RlIHJlcXVpcmVzIGF0IGxlYXN0IG9uZSBmaWx0ZXJcbiAgICBpZiAoIWZsYWdzLnN0YXR1cyAmJiAhZmxhZ3Mud29ya2Zsb3dOYW1lKSB7XG4gICAgICBsb2dnZXIuZXJyb3IoXG4gICAgICAgICdQcm92aWRlIGEgcnVuIElEIG9yIHVzZSAtLXN0YXR1cy8tLXdvcmtmbG93TmFtZSB0byBidWxrIGNhbmNlbC5cXG4nICtcbiAgICAgICAgICAnRXhhbXBsZXM6XFxuJyArXG4gICAgICAgICAgJyAgd29ya2Zsb3cgY2FuY2VsIDxydW4taWQ+XFxuJyArXG4gICAgICAgICAgJyAgd29ya2Zsb3cgY2FuY2VsIC0tc3RhdHVzPXJ1bm5pbmdcXG4nICtcbiAgICAgICAgICAnICB3b3JrZmxvdyBjYW5jZWwgLS1zdGF0dXM9cnVubmluZyAtLXdvcmtmbG93TmFtZT1teVdvcmtmbG93J1xuICAgICAgKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG5cbiAgICAvLyBGZXRjaCBtYXRjaGluZyBydW5zLiBPbmx5IG1ldGFkYXRhIGlzIG5lZWRlZCB0byBkaXNwbGF5IGFuZCBjYW5jZWwsIHNvXG4gICAgLy8gcHJlZmVyIHRoZSBhbmFseXRpY3MgcmVhZCBwYXRoIHdoZW4gdGhlIGJhY2tlbmQgcHJvdmlkZXMgb25lLlxuICAgIGNvbnN0IHN0YXR1cyA9IGZsYWdzLnN0YXR1cyBhcyBXb3JrZmxvd1J1blsnc3RhdHVzJ10gfCB1bmRlZmluZWQ7XG4gICAgY29uc3QgbGltaXQgPSBmbGFncy5saW1pdCB8fCA1MDtcbiAgICBjb25zdCBhbmFseXRpY3MgPSB3b3JsZC5hbmFseXRpY3M7XG4gICAgY29uc3QgZmV0Y2hNYXRjaGVzID0gYXN5bmMgKCkgPT4ge1xuICAgICAgaWYgKCFhbmFseXRpY3MpIHtcbiAgICAgICAgcmV0dXJuIHdvcmxkLnJ1bnMubGlzdCh7XG4gICAgICAgICAgc3RhdHVzLFxuICAgICAgICAgIHdvcmtmbG93TmFtZTogZmxhZ3Mud29ya2Zsb3dOYW1lLFxuICAgICAgICAgIHBhZ2luYXRpb246IHsgbGltaXQgfSxcbiAgICAgICAgICByZXNvbHZlRGF0YTogJ25vbmUnLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIC8vIFRoZSBhbmFseXRpY3MgYmFja2VuZCBkZWZhdWx0cyBpdHMgbGlzdGluZyB0byBhIHJlY2VudCB3aW5kb3dcbiAgICAgIC8vICh0cmFpbGluZyAyNGggb24gdGhlIFZlcmNlbCBiYWNrZW5kKSwgYnV0IGJ1bGsgY2FuY2VsIG11c3QgbWF0Y2hcbiAgICAgIC8vIGFjcm9zcyB0aGUgcGxhbidzIHdob2xlIG9ic2VydmFiaWxpdHkgd2luZG93IOKAlCBhIHJ1biBjYW4gc2xlZXAgb3JcbiAgICAgIC8vIHdhaXQgb24gYSBob29rIGZvciBkYXlzIHdpdGhvdXQgZW1pdHRpbmcgcmVjZW50IGV2ZW50cy4gUHJvYmUgZm9yXG4gICAgICAvLyB0aGUgcGxhbiB3aW5kb3cgYm91bmRzIGZpcnN0LCB0aGVuIG1hdGNoIGFjcm9zcyB0aGVtLlxuICAgICAgY29uc3QgcHJvYmUgPSBhd2FpdCBhbmFseXRpY3MucnVucy5saXN0KHtcbiAgICAgICAgc3RhdHVzLFxuICAgICAgICB3b3JrZmxvd05hbWU6IGZsYWdzLndvcmtmbG93TmFtZSxcbiAgICAgICAgcGFnaW5hdGlvbjogeyBsaW1pdDogMSB9LFxuICAgICAgfSk7XG4gICAgICBjb25zdCB3aW5kb3dTdGFydCA9IHBsYW5XaW5kb3dTdGFydEZyb21SZXNwb25zZShwcm9iZSk7XG4gICAgICByZXR1cm4gYW5hbHl0aWNzLnJ1bnMubGlzdCh7XG4gICAgICAgIHN0YXR1cyxcbiAgICAgICAgd29ya2Zsb3dOYW1lOiBmbGFncy53b3JrZmxvd05hbWUsXG4gICAgICAgIC4uLih3aW5kb3dTdGFydFxuICAgICAgICAgID8geyBzdGFydFRpbWU6IHdpbmRvd1N0YXJ0LCBlbmRUaW1lOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkgfVxuICAgICAgICAgIDoge30pLFxuICAgICAgICBwYWdpbmF0aW9uOiB7IGxpbWl0IH0sXG4gICAgICB9KTtcbiAgICB9O1xuICAgIGNvbnN0IHJ1bkxpc3QgPSBhd2FpdCBmZXRjaE1hdGNoZXMoKTtcbiAgICBjb25zdCBydW5zID0ge1xuICAgICAgZGF0YTogcnVuTGlzdC5kYXRhLm1hcCgocnVuKSA9PiAoe1xuICAgICAgICBydW5JZDogcnVuLnJ1bklkLFxuICAgICAgICB3b3JrZmxvd05hbWU6IHJ1bi53b3JrZmxvd05hbWUsXG4gICAgICAgIHN0YXR1czogcnVuLnN0YXR1cyxcbiAgICAgICAgc3RhcnRlZEF0OiBydW4uc3RhcnRlZEF0LFxuICAgICAgfSkpLFxuICAgICAgaGFzTW9yZTogcnVuTGlzdC5oYXNNb3JlLFxuICAgIH07XG5cbiAgICBpZiAocnVucy5kYXRhLmxlbmd0aCA9PT0gMCkge1xuICAgICAgbG9nZ2VyLndhcm4oJ05vIG1hdGNoaW5nIHJ1bnMgZm91bmQuJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gRGlzcGxheSB3aGF0IHdpbGwgYmUgY2FuY2VsbGVkXG4gICAgY29uc3QgdGFibGUgPSBuZXcgVGFibGUoKTtcbiAgICBmb3IgKGNvbnN0IHJ1biBvZiBydW5zLmRhdGEpIHtcbiAgICAgIGNvbnN0IHNob3J0TmFtZSA9XG4gICAgICAgIHBhcnNlV29ya2Zsb3dOYW1lKHJ1bi53b3JrZmxvd05hbWUpPy5zaG9ydE5hbWUgfHwgcnVuLndvcmtmbG93TmFtZTtcbiAgICAgIHRhYmxlLmNlbGwoJ3J1bklkJywgcnVuLnJ1bklkKTtcbiAgICAgIHRhYmxlLmNlbGwoJ3dvcmtmbG93JywgY2hhbGsuYmx1ZUJyaWdodChzaG9ydE5hbWUpKTtcbiAgICAgIHRhYmxlLmNlbGwoJ3N0YXR1cycsIHJ1bi5zdGF0dXMpO1xuICAgICAgdGFibGUuY2VsbChcbiAgICAgICAgJ3N0YXJ0ZWRBdCcsXG4gICAgICAgIHJ1bi5zdGFydGVkQXQgPyBuZXcgRGF0ZShydW4uc3RhcnRlZEF0KS50b0lTT1N0cmluZygpIDogJy0nXG4gICAgICApO1xuICAgICAgdGFibGUubmV3Um93KCk7XG4gICAgfVxuICAgIGxvZ2dlci5sb2coYFxcbkZvdW5kICR7Y2hhbGsuYm9sZChydW5zLmRhdGEubGVuZ3RoKX0gcnVucyB0byBjYW5jZWw6XFxuYCk7XG4gICAgbG9nZ2VyLmxvZyh0YWJsZS50b1N0cmluZygpKTtcblxuICAgIGlmIChydW5zLmhhc01vcmUpIHtcbiAgICAgIGxvZ2dlci53YXJuKFxuICAgICAgICBgTW9yZSBydW5zIG1hdGNoIHRoZXNlIGZpbHRlcnMuIEluY3JlYXNlIC0tbGltaXQgKGN1cnJlbnRseSAke2ZsYWdzLmxpbWl0IHx8IDUwfSkgb3IgcmUtcnVuIHRvIGNhbmNlbCBhZGRpdGlvbmFsIHJ1bnMuYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBDb25maXJtIHVubGVzcyAtLWNvbmZpcm0vLXlcbiAgICBpZiAoIWZsYWdzLmNvbmZpcm0pIHtcbiAgICAgIGNvbnN0IGNvbmZpcm1lZCA9IGF3YWl0IHByb21wdENvbmZpcm0oXG4gICAgICAgIGBDYW5jZWwgJHtydW5zLmRhdGEubGVuZ3RofSBydW4ke3J1bnMuZGF0YS5sZW5ndGggPT09IDEgPyAnJyA6ICdzJ30/YFxuICAgICAgKTtcbiAgICAgIGlmICghY29uZmlybWVkKSB7XG4gICAgICAgIGxvZ2dlci5sb2coJ0Fib3J0ZWQuJyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDYW5jZWwgZWFjaCBydW4gd2l0aCBwcm9ncmVzc1xuICAgIGxldCBjYW5jZWxsZWQgPSAwO1xuICAgIGxldCBmYWlsZWQgPSAwO1xuICAgIGZvciAoY29uc3QgcnVuIG9mIHJ1bnMuZGF0YSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgY2FuY2VsUnVuKHdvcmxkLCBydW4ucnVuSWQpO1xuICAgICAgICBjYW5jZWxsZWQrKztcbiAgICAgICAgbG9nZ2VyLmxvZyhcbiAgICAgICAgICBjaGFsay5ncmVlbihgICDinJMgJHtydW4ucnVuSWR9YCkgK1xuICAgICAgICAgICAgY2hhbGsuZ3JheShgICgke2NhbmNlbGxlZH0vJHtydW5zLmRhdGEubGVuZ3RofSlgKVxuICAgICAgICApO1xuICAgICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgICAgZmFpbGVkKys7XG4gICAgICAgIGxvZ2dlci53YXJuKGAgIOKclyAke3J1bi5ydW5JZH06ICR7ZXJyLm1lc3NhZ2UgfHwgU3RyaW5nKGVycil9YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbG9nZ2VyLmxvZyhcbiAgICAgIGBcXG5Eb25lOiAke2NoYWxrLmdyZWVuKGAke2NhbmNlbGxlZH0gY2FuY2VsbGVkYCl9JHtmYWlsZWQgPiAwID8gYCwgJHtjaGFsay5yZWQoYCR7ZmFpbGVkfSBmYWlsZWRgKX1gIDogJyd9YFxuICAgICk7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gcHJvbXB0Q29uZmlybShtZXNzYWdlOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgLy8gTm9uLVRUWTogYWJvcnQgc2luY2UgdXNlciBjYW5ub3QgY29uZmlybSBpbnRlcmFjdGl2ZWx5ICh1c2UgLXkvLS1jb25maXJtIHRvIHNraXAgcHJvbXB0KVxuICBpZiAoIXByb2Nlc3Muc3RkaW4uaXNUVFkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBybCA9IHJlYWRsaW5lLmNyZWF0ZUludGVyZmFjZSh7XG4gICAgaW5wdXQ6IHByb2Nlc3Muc3RkaW4sXG4gICAgb3V0cHV0OiBwcm9jZXNzLnN0ZG91dCxcbiAgfSk7XG5cbiAgcmV0dXJuIG5ldyBQcm9taXNlPGJvb2xlYW4+KChyZXNvbHZlKSA9PiB7XG4gICAgcmwucXVlc3Rpb24oYCR7bWVzc2FnZX0gW3kvTl0gYCwgKGFuc3dlcikgPT4ge1xuICAgICAgcmwuY2xvc2UoKTtcbiAgICAgIHJlc29sdmUoYW5zd2VyLnRyaW0oKS50b0xvd2VyQ2FzZSgpID09PSAneScpO1xuICAgIH0pO1xuICB9KTtcbn1cbiJdfQ==
|
|
@@ -30,6 +30,8 @@ export default class Inspect extends BaseCommand {
|
|
|
30
30
|
readonly hookId: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
31
31
|
readonly workflowName: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
32
32
|
readonly status: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
33
|
+
readonly since: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
34
|
+
readonly until: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
33
35
|
readonly withData: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
34
36
|
readonly decrypt: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
35
37
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../src/commands/inspect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../src/commands/inspect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAuBzC,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,WAAW;IAC9C,MAAM,CAAC,WAAW,SAA6C;IAE/D,MAAM,CAAC,OAAO,WAAS;IAEvB,MAAM,CAAC,QAAQ,WAOb;IAEI,KAAK,CAAC,KAAK,EAAE,GAAG;IAgBtB,MAAM,CAAC,IAAI;;;MA+BA;IAEX,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;MA8ED;IAEE,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAwHlC"}
|
package/dist/commands/inspect.js
CHANGED
|
@@ -2,6 +2,7 @@ import { Args, Flags } from '@oclif/core';
|
|
|
2
2
|
import { VERCEL_403_ERROR_MESSAGE } from '@workflow/errors';
|
|
3
3
|
import { BaseCommand } from '../base.js';
|
|
4
4
|
import { LOGGING_CONFIG, logger } from '../lib/config/log.js';
|
|
5
|
+
import { getObservabilityUpgradeRequiredMessage, isObservabilityUpgradeRequiredError, } from '../lib/inspect/errors.js';
|
|
5
6
|
import { cliFlags, urlFlag } from '../lib/inspect/flags.js';
|
|
6
7
|
import { listEvents, listHooks, listRuns, listSleeps, listSteps, listStreamsByRunId, showHook, showRun, showStep, showStream, } from '../lib/inspect/output.js';
|
|
7
8
|
import { setupCliWorld } from '../lib/inspect/setup.js';
|
|
@@ -19,7 +20,10 @@ export default class Inspect extends BaseCommand {
|
|
|
19
20
|
];
|
|
20
21
|
async catch(error) {
|
|
21
22
|
// Check if this is a 403 error from the Vercel backend
|
|
22
|
-
if (error
|
|
23
|
+
if (isObservabilityUpgradeRequiredError(error)) {
|
|
24
|
+
logger.error(getObservabilityUpgradeRequiredMessage());
|
|
25
|
+
}
|
|
26
|
+
else if (error?.status === 403) {
|
|
23
27
|
const message = VERCEL_403_ERROR_MESSAGE;
|
|
24
28
|
logger.error(message);
|
|
25
29
|
}
|
|
@@ -105,8 +109,22 @@ export default class Inspect extends BaseCommand {
|
|
|
105
109
|
helpGroup: 'Filtering',
|
|
106
110
|
helpLabel: '--status',
|
|
107
111
|
}),
|
|
112
|
+
since: Flags.string({
|
|
113
|
+
description: 'list runs active since a relative duration (30m, 12h, 7d, 2w) or timestamp; defaults to the backend window (only for runs)',
|
|
114
|
+
required: false,
|
|
115
|
+
helpGroup: 'Filtering',
|
|
116
|
+
helpLabel: '--since',
|
|
117
|
+
helpValue: 'DURATION|TIMESTAMP',
|
|
118
|
+
}),
|
|
119
|
+
until: Flags.string({
|
|
120
|
+
description: 'end of the --since listing window, as a relative duration or timestamp; defaults to now (only for runs)',
|
|
121
|
+
required: false,
|
|
122
|
+
helpGroup: 'Filtering',
|
|
123
|
+
helpLabel: '--until',
|
|
124
|
+
helpValue: 'DURATION|TIMESTAMP',
|
|
125
|
+
}),
|
|
108
126
|
withData: Flags.boolean({
|
|
109
|
-
description: 'include full input/output data in list views',
|
|
127
|
+
description: 'include full input/output data in list views (deprecated for list views — use `inspect <resource> <id>` to view payloads)',
|
|
110
128
|
required: false,
|
|
111
129
|
char: 'd',
|
|
112
130
|
default: false,
|
|
@@ -233,6 +251,8 @@ function toInspectOptions(flags) {
|
|
|
233
251
|
limit: flags.limit,
|
|
234
252
|
workflowName: flags.workflowName,
|
|
235
253
|
status: flags.status,
|
|
254
|
+
since: flags.since,
|
|
255
|
+
until: flags.until,
|
|
236
256
|
withData: flags.withData,
|
|
237
257
|
decrypt: flags.decrypt,
|
|
238
258
|
backend: flags.backend,
|
|
@@ -259,4 +279,4 @@ function normalizeResource(value) {
|
|
|
259
279
|
return 'web';
|
|
260
280
|
return undefined;
|
|
261
281
|
}
|
|
262
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zcGVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy9pbnNwZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU5RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFDTCxVQUFVLEVBQ1YsU0FBUyxFQUNULFFBQVEsRUFDUixVQUFVLEVBQ1YsU0FBUyxFQUNULGtCQUFrQixFQUNsQixRQUFRLEVBQ1IsT0FBTyxFQUNQLFFBQVEsRUFDUixVQUFVLEdBQ1gsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVuRSxNQUFNLENBQUMsT0FBTyxPQUFPLE9BQVEsU0FBUSxXQUFXO0lBQzlDLE1BQU0sQ0FBQyxXQUFXLEdBQUcseUNBQXlDLENBQUM7SUFFL0QsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRXZCLE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIseUJBQXlCO1FBQ3pCLHlCQUF5QjtRQUN6QixrRUFBa0U7UUFDbEUsMEJBQTBCO1FBQzFCLHlEQUF5RDtRQUN6RCxrRUFBa0U7S0FDbkUsQ0FBQztJQUVGLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBVTtRQUNwQix1REFBdUQ7UUFDdkQsSUFBSSxLQUFLLEVBQUUsTUFBTSxL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QixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87UUFDdEIsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO1FBQ3RCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztLQUMvQixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsaUJBQWlCLENBQ3hCLEtBQWM7SUFFZCxJQUFJLENBQUMsS0FBSztRQUFFLE9BQU8sU0FBUyxDQUFDO0lBQzdCLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM5QixJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDcEMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztRQUFFLE9BQU8sT0FBTyxDQUFDO0lBQ3RDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFBRSxPQUFPLFFBQVEsQ0FBQztJQUN6QyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQUUsT0FBTyxPQUFPLENBQUM7SUFDdkMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztRQUFFLE9BQU8sTUFBTSxDQUFDO0lBQ3JDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUM7UUFBRSxPQUFPLE1BQU0sQ0FBQztJQUNyQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDcEMsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFyZ3MsIEZsYWdzIH0gZnJvbSAnQG9jbGlmL2NvcmUnO1xuaW1wb3J0IHsgVkVSQ0VMXzQwM19FUlJPUl9NRVNTQUdFIH0gZnJvbSAnQHdvcmtmbG93L2Vycm9ycyc7XG5pbXBvcnQgeyBCYXNlQ29tbWFuZCB9IGZyb20gJy4uL2Jhc2UuanMnO1xuaW1wb3J0IHsgTE9HR0lOR19DT05GSUcsIGxvZ2dlciB9IGZyb20gJy4uL2xpYi9jb25maWcvbG9nLmpzJztcbmltcG9ydCB0eXBlIHsgSW5zcGVjdENMSU9wdGlvbnMgfSBmcm9tICcuLi9saWIvY29uZmlnL3R5cGVzLmpzJztcbmltcG9ydCB7IGNsaUZsYWdzLCB1cmxGbGFnIH0gZnJvbSAnLi4vbGliL2luc3BlY3QvZmxhZ3MuanMnO1xuaW1wb3J0IHtcbiAgbGlzdEV2ZW50cyxcbiAgbGlzdEhvb2tzLFxuICBsaXN0UnVucyxcbiAgbGlzdFNsZWVwcyxcbiAgbGlzdFN0ZXBzLFxuICBsaXN0U3RyZWFtc0J5UnVuSWQsXG4gIHNob3dIb29rLFxuICBzaG93UnVuLFxuICBzaG93U3RlcCxcbiAgc2hvd1N0cmVhbSxcbn0gZnJvbSAnLi4vbGliL2luc3BlY3Qvb3V0cHV0LmpzJztcbmltcG9ydCB7IHNldHVwQ2xpV29ybGQgfSBmcm9tICcuLi9saWIvaW5zcGVjdC9zZXR1cC5qcyc7XG5pbXBvcnQgeyBsYXVuY2hXZWJVSSwgcHJpbnREZWVwTGluayB9IGZyb20gJy4uL2xpYi9pbnNwZWN0L3dlYi5qcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEluc3BlY3QgZXh0ZW5kcyBCYXNlQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9ICdJbnNwZWN0IHJ1bnMsIHN0ZXBzLCBzdHJlYW1zLCBvciBldmVudHMnO1xuXG4gIHN0YXRpYyBhbGlhc2VzID0gWydpJ107XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgICckIHdvcmtmbG93IGluc3BlY3QgcnVucycsXG4gICAgJyQgd29ya2Zsb3cgaW5zcGVjdCBydW5zJyxcbiAgICAnJCB3b3JrZmxvdyBpbnNwZWN0IGV2ZW50cyAtLXN0ZXA9c3RlcF8wMUs1V0FKWjhXMzY3Q1YyUkZLRFNETldCOCcsXG4gICAgJyQgd29ya2Zsb3cgaW5zcGVjdCBob29rcycsXG4gICAgJyQgd29ya2Zsb3cgaW5zcGVjdCBob29rIGhvb2tfMDFLNVdBSlo4VzM2N0NWMlJGS0RTRE5XQjgnLFxuICAgICckIHdvcmtmbG93IGluc3BlY3Qgc2xlZXBzIC0tcnVuSWQ9cnVuXzAxSzVXQUpaOFczNjdDVjJSRktEU0ROV0I4JyxcbiAgXTtcblxuICBhc3luYyBjYXRjaChlcnJvcjogYW55KSB7XG4gICAgLy8gQ2hlY2sgaWYgdGhpcyBpcyBhIDQwMyBlcnJvciBmcm9tIHRoZSBWZXJjZWwgYmFja2VuZFxuICAgIGlmIChlcnJvcj8uc3RhdHVzID09PSA0MDMpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBWRVJDRUxfNDAzX0VSUk9SX01FU1NBR0U7XG4gICAgICBsb2dnZXIuZXJyb3IobWVzc2FnZSk7XG4gICAgfSBlbHNlIGlmIChMT0dHSU5HX0NPTkZJRy5WRVJCT1NFX01PREUpIHtcbiAgICAgIGxvZ2dlci5lcnJvcihlcnJvcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGVycm9yPy5tZXNzYWdlIHx8IFN0cmluZyhlcnJvcikgfHwgJ1Vua25vd24gZXJyb3InO1xuICAgICAgbG9nZ2VyLmVycm9yKGBFcnJvcjogJHtlcnJvck1lc3NhZ2V9YCk7XG4gICAgfVxuICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgfVxuXG4gIHN0YXRpYyBhcmdzID0ge1xuICAgIHJlc291cmNlOiBBcmdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgJ3doYXQgdG8gaW5zcGVjdDogcnVuKHMpIHwgc3RlcChzKSB8IHN0cmVhbShzKSB8IGV2ZW50KHMpIHwgaG9vayhzKSB8IHNsZWVwKHMpJyxcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgb3B0aW9uczogW1xuICAgICAgICAncicsXG4gICAgICAgICdydW4nLFxuICAgICAgICAncnVucycsXG4gICAgICAgICdzJyxcbiAgICAgICAgJ3N0ZXAnLFxuICAgICAgICAnc3RlcHMnLFxuICAgICAgICAnZScsXG4gICAgICAgICdldmVudCcsXG4gICAgICAgICdldmVudHMnLFxuICAgICAgICAnc3QnLFxuICAgICAgICAnc3RyZWFtJyxcbiAgICAgICAgJ3N0cmVhbXMnLFxuICAgICAgICAnaCcsXG4gICAgICAgICdob29rJyxcbiAgICAgICAgJ2hvb2tzJyxcbiAgICAgICAgJ3cnLFxuICAgICAgICAnd2ViJyxcbiAgICAgICAgJ3NsZWVwJyxcbiAgICAgICAgJ3NsZWVwcycsXG4gICAgICBdLFxuICAgIH0pLFxuICAgIGlkOiBBcmdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogJ0lEIG9mIHRoZSByZXNvdXJjZSBpZiBpbnNwZWN0aW5nIGEgc3BlY2lmaWMgaXRlbScsXG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgfSksXG4gIH0gYXMgY29uc3Q7XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIHJ1bklkOiBGbGFncy5zdHJpbmcoe1xuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICdSdW4gSUQgdG8gZmlsdGVyIGJ5IChyZXF1aXJlZCBmb3Igc3RlcHMsIHNsZWVwcywgYW5kIGV2ZW50cy4gT3B0aW9uYWwgZm9yIGhvb2tzLiknLFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgY2hhcjogJ3InLFxuICAgICAgYWxpYXNlczogWydydW4nXSxcbiAgICAgIGhlbHBHcm91cDogJ0ZpbHRlcmluZycsXG4gICAgICBoZWxwTGFiZWw6ICctciwgLS1ydW5JZCcsXG4gICAgICBoZWxwVmFsdWU6ICdSVU5fSUQnLFxuICAgIH0pLFxuICAgIHN0ZXBJZDogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnc3RlcCBJRCB0byBmaWx0ZXIgYnkgKG9ubHkgZm9yIGV2ZW50cyknLFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgY2hhcjogJ3MnLFxuICAgICAgYWxpYXNlczogWydzdGVwJ10sXG4gICAgICBoZWxwR3JvdXA6ICdGaWx0ZXJpbmcnLFxuICAgICAgaGVscExhYmVsOiAnLXMsIC0tc3RlcElkJyxcbiAgICAgIGhlbHBWYWx1ZTogJ1NURVBfSUQnLFxuICAgIH0pLFxuICAgIGhvb2tJZDogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnaG9vayBJRCB0byBmaWx0ZXIgYnkgKG9ubHkgZm9yIGV2ZW50cyknLFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgYWxpYXNlczogWydob29rJ10sXG4gICAgICBoZWxwR3JvdXA6ICdGaWx0ZXJpbmcnLFxuICAgICAgaGVscExhYmVsOiAnLS1ob29rSWQnLFxuICAgICAgaGVscFZhbHVlOiAnSE9PS19JRCcsXG4gICAgfSksXG4gICAgd29ya2Zsb3dOYW1lOiBGbGFncy5zdHJpbmcoe1xuICAgICAgZGVzY3JpcHRpb246ICd3b3JrZmxvdyBuYW1lIHRvIGZpbHRlciBieSAob25seSBmb3IgcnVucyknLFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgY2hhcjogJ24nLFxuICAgICAgYWxpYXNlczogWyd3b3JrZmxvdyddLFxuICAgICAgaGVscEdyb3VwOiAnRmlsdGVyaW5nJyxcbiAgICAgIGhlbHBMYWJlbDogJy1uLCAtLXdvcmtmbG93TmFtZScsXG4gICAgfSksXG4gICAgc3RhdHVzOiBGbGFncy5zdHJpbmcoe1xuICAgICAgZGVzY3JpcHRpb246ICdmaWx0ZXIgcnVucyBieSBzdGF0dXMgKG9ubHkgZm9yIHJ1bnMpJyxcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIG9wdGlvbnM6IFsncnVubmluZycsICdjb21wbGV0ZWQnLCAnZmFpbGVkJywgJ2NhbmNlbGxlZCcsICdwZW5kaW5nJ10sXG4gICAgICBoZWxwR3JvdXA6ICdGaWx0ZXJpbmcnLFxuICAgICAgaGVscExhYmVsOiAnLS1zdGF0dXMnLFxuICAgIH0pLFxuICAgIHdpdGhEYXRhOiBGbGFncy5ib29sZWFuKHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnaW5jbHVkZSBmdWxsIGlucHV0L291dHB1dCBkYXRhIGluIGxpc3Qgdmlld3MnLFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgY2hhcjogJ2QnLFxuICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICBoZWxwR3JvdXA6ICdEaXNwbGF5JyxcbiAgICAgIGhlbHBMYWJlbDogJy1kLCAtLXdpdGhEYXRhJyxcbiAgICB9KSxcbiAgICBkZWNyeXB0OiBGbGFncy5ib29sZWFuKHtcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAnZGVjcnlwdCBlbmNyeXB0ZWQgdmFsdWVzICh0cmlnZ2VycyBhdWRpdC1sb2dnZWQga2V5IHJldHJpZXZhbCknLFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICBoZWxwR3JvdXA6ICdEaXNwbGF5JyxcbiAgICAgIGhlbHBMYWJlbDogJy0tZGVjcnlwdCcsXG4gICAgfSksXG4gICAgLi4uY2xpRmxhZ3MsXG4gICAgLi4udXJsRmxhZyxcbiAgfSBhcyBjb25zdDtcblxuICBwdWJsaWMgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IGFyZ3MsIGZsYWdzIH0gPSBhd2FpdCB0aGlzLnBhcnNlKEluc3BlY3QpO1xuXG4gICAgICBjb25zdCByZXNvdXJjZSA9IG5vcm1hbGl6ZVJlc291cmNlKGFyZ3MucmVzb3VyY2UpO1xuICAgICAgaWYgKCFyZXNvdXJjZSkge1xuICAgICAgICB0aGlzLmxvZ0Vycm9yKFxuICAgICAgICAgIGBVbmtub3duIHJlc291cmNlIFwiJHthcmdzLnJlc291cmNlfVwiOiBtdXN0IGJlIG9uZSBvZjogcnVuKHMpLCBzdGVwKHMpLCBzdHJlYW0ocyksIGV2ZW50KHMpLCBob29rKHMpLCBzbGVlcChzKWBcbiAgICAgICAgKTtcbiAgICAgICAgcHJvY2Vzcy5leGl0Q29kZSA9IDE7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgaWQgPSBhcmdzLmlkO1xuXG4gICAgICAvLyBQcmludC1vbmx5IGRlZXAgbGluazogcmVzb2x2ZSBjb25maWcgYW5kIGVtaXQgdGhlIFVSTCwgbm8gYnJvd3Nlci9zZXJ2ZXIuXG4gICAgICBpZiAoZmxhZ3MudXJsKSB7XG4gICAgICAgIGNvbnN0IGFjdHVhbFJlc291cmNlID0gcmVzb3VyY2UgPT09ICd3ZWInID8gJ3J1bicgOiByZXNvdXJjZTtcbiAgICAgICAgYXdhaXQgcHJpbnREZWVwTGluayhhY3R1YWxSZXNvdXJjZSwgaWQsIGZsYWdzLCB0aGlzLmNvbmZpZy52ZXJzaW9uKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBGb3Igd2ViIG1vZGUsIGFsbG93IGNvbmZpZyBlcnJvcnMgc28gd2UgY2FuIG9wZW4gdGhlIHdlYiBVSSBmb3IgY29uZmlndXJhdGlvblxuICAgICAgY29uc3QgaXNXZWJNb2RlID0gZmxhZ3Mud2ViIHx8IHJlc291cmNlID09PSAnd2ViJztcbiAgICAgIGNvbnN0IHdvcmxkID0gYXdhaXQgc2V0dXBDbGlXb3JsZChmbGFncywgdGhpcy5jb25maWcudmVyc2lvbiwgaXNXZWJNb2RlKTtcblxuICAgICAgLy8gSGFuZGxlIHdlYiBVSSBtb2RlXG4gICAgICBpZiAoaXNXZWJNb2RlKSB7XG4gICAgICAgIGNvbnN0IGFjdHVhbFJlc291cmNlID0gcmVzb3VyY2UgPT09ICd3ZWInID8gJ3J1bicgOiByZXNvdXJjZTtcbiAgICAgICAgYXdhaXQgbGF1bmNoV2ViVUkoYWN0dWFsUmVzb3VyY2UsIGlkLCBmbGFncywgdGhpcy5jb25maWcudmVyc2lvbik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gRm9yIG5vbi13ZWIgY29tbWFuZHMsIHdlIG5lZWQgYSB2YWxpZCB3b3JsZFxuICAgICAgaWYgKCF3b3JsZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgJ0ZhaWxlZCB0byBjb25uZWN0IHRvIGJhY2tlbmQuIENoZWNrIHlvdXIgY29uZmlndXJhdGlvbi4nXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIC8vIENvbnZlcnQgZmxhZ3MgdG8gSW5zcGVjdENMSU9wdGlvbnMgd2l0aCBwcm9wZXIgdHlwaW5nXG4gICAgICBjb25zdCBvcHRpb25zID0gdG9JbnNwZWN0T3B0aW9ucyhmbGFncyk7XG5cbiAgICAgIGlmIChyZXNvdXJjZSA9PT0gJ3J1bicpIHtcbiAgICAgICAgaWYgKGlkKSB7XG4gICAgICAgICAgYXdhaXQgc2hvd1J1bih3b3JsZCwgaWQsIG9wdGlvbnMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGF3YWl0IGxpc3RSdW5zKHdvcmxkLCBvcHRpb25zKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChyZXNvdXJjZSA9PT0gJ3N0ZXAnKSB7XG4gICAgICAgIGlmIChpZCkge1xuICAgICAgICAgIGF3YWl0IHNob3dTdGVwKHdvcmxkLCBpZCwgb3B0aW9ucyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYXdhaXQgbGlzdFN0ZXBzKHdvcmxkLCBvcHRpb25zKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChyZXNvdXJjZSA9PT0gJ3N0cmVhbScpIHtcbiAgICAgICAgaWYgKGlkKSB7XG4gICAgICAgICAgYXdhaXQgc2hvd1N0cmVhbSh3b3JsZCwgaWQsIG9wdGlvbnMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGF3YWl0IGxpc3RTdHJlYW1zQnlSdW5JZCh3b3JsZCwgb3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVzb3VyY2UgPT09ICdldmVudCcpIHtcbiAgICAgICAgaWYgKGlkKSB7XG4gICAgICAgICAgdGhpcy5sb2dFcnJvcihcbiAgICAgICAgICAgICdFdmVudC1JRCBpcyBub3Qgc3VwcG9ydGVkIGZvciBldmVudHMuIEZpbHRlciBieSBydW4taWQgb3Igc3RlcC1pZCBpbnN0ZWFkLiBVc2FnZTogYHdvcmtmbG93IGluc3BlY3QgZXZlbnRzIC0tcnVuSWQ9PGlkPmAnXG4gICAgICAgICAgKTtcbiAgICAgICAgICBwcm9jZXNzLmV4aXRDb2RlID0gMTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgbGlzdEV2ZW50cyh3b3JsZCwgb3B0aW9ucyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlc291cmNlID09PSAnaG9vaycpIHtcbiAgICAgICAgaWYgKGlkKSB7XG4gICAgICAgICAgYXdhaXQgc2hvd0hvb2sod29ybGQsIGlkLCBvcHRpb25zKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhd2FpdCBsaXN0SG9va3Mod29ybGQsIG9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlc291cmNlID09PSAnc2xlZXAnKSB7XG4gICAgICAgIGlmIChpZCkge1xuICAgICAgICAgIHRoaXMubG9nRXJyb3IoXG4gICAgICAgICAgICAnU2xlZXAtSUQgaXMgbm90IHN1cHBvcnRlZCBmb3Igc2xlZXBzLiBGaWx0ZXIgYnkgcnVuLWlkIGluc3RlYWQuIFVzYWdlOiBgd29ya2Zsb3cgaW5zcGVjdCBzbGVlcHMgLS1ydW5JZD08aWQ+YCdcbiAgICAgICAgICApO1xuICAgICAgICAgIHByb2Nlc3MuZXhpdENvZGUgPSAxO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWZsYWdzLnJ1bklkKSB7XG4gICAgICAgICAgdGhpcy5sb2dFcnJvcihcbiAgICAgICAgICAgICdydW4taWQgaXMgcmVxdWlyZWQgZm9yIGxpc3Rpbmcgc2xlZXBzLiBVc2FnZTogYHdvcmtmbG93IGluc3BlY3Qgc2xlZXBzIC0tcnVuSWQ9PGlkPmAnXG4gICAgICAgICAgKTtcbiAgICAgICAgICBwcm9jZXNzLmV4aXRDb2RlID0gMTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgbGlzdFNsZWVwcyh3b3JsZCwgb3B0aW9ucyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5sb2dFcnJvcihcbiAgICAgICAgYFVua25vd24gcmVzb3VyY2U6ICR7cmVzb3VyY2V9LiBVc2FnZTogJHtJbnNwZWN0LmV4YW1wbGVzLmpvaW4oJ1xcbicpfWBcbiAgICAgICk7XG4gICAgICBwcm9jZXNzLmV4aXRDb2RlID0gMTtcbiAgICAgIHJldHVybjtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgLy8gTGV0IHRoZSBjYXRjaCBoYW5kbGVyIGRlYWwgd2l0aCBpdCwgYnV0IGVuc3VyZSB3ZSBleGl0XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gdG9JbnNwZWN0T3B0aW9ucyhmbGFnczogYW55KTogSW5zcGVjdENMSU9wdGlvbnMge1xuICByZXR1cm4ge1xuICAgIGpzb246IGZsYWdzLmpzb24sXG4gICAgcnVuSWQ6IGZsYWdzLnJ1bklkLFxuICAgIHN0ZXBJZDogZmxhZ3Muc3RlcElkLFxuICAgIGN1cnNvcjogZmxhZ3MuY3Vyc29yLFxuICAgIHNvcnQ6IGZsYWdzLnNvcnQgYXMgJ2FzYycgfCAnZGVzYycgfCB1bmRlZmluZWQsXG4gICAgbGltaXQ6IGZsYWdzLmxpbWl0LFxuICAgIHdvcmtmbG93TmFtZTogZmxhZ3Mud29ya2Zsb3dOYW1lLFxuICAgIHN0YXR1czogZmxhZ3Muc3RhdHVzLFxuICAgIHdpdGhEYXRhOiBmbGFncy53aXRoRGF0YSxcbiAgICBkZWNyeXB0OiBmbGFncy5kZWNyeXB0LFxuICAgIGJhY2tlbmQ6IGZsYWdzLmJhY2tlbmQsXG4gICAgaW50ZXJhY3RpdmU6IGZsYWdzLmludGVyYWN0aXZlLFxuICB9O1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemVSZXNvdXJjZShcbiAgdmFsdWU/OiBzdHJpbmdcbik6ICdydW4nIHwgJ3N0ZXAnIHwgJ3N0cmVhbScgfCAnZXZlbnQnIHwgJ2hvb2snIHwgJ3dlYicgfCAnc2xlZXAnIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCF2YWx1ZSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgY29uc3QgdiA9IHZhbHVlLnRvTG93ZXJDYXNlKCk7XG4gIGlmICh2LnN0YXJ0c1dpdGgoJ3InKSkgcmV0dXJuICdydW4nO1xuICBpZiAodi5zdGFydHNXaXRoKCdlJykpIHJldHVybiAnZXZlbnQnO1xuICBpZiAodi5zdGFydHNXaXRoKCdzdHInKSkgcmV0dXJuICdzdHJlYW0nO1xuICBpZiAodi5zdGFydHNXaXRoKCdzbCcpKSByZXR1cm4gJ3NsZWVwJztcbiAgaWYgKHYuc3RhcnRzV2l0aCgncycpKSByZXR1cm4gJ3N0ZXAnO1xuICBpZiAodi5zdGFydHNXaXRoKCdoJykpIHJldHVybiAnaG9vayc7XG4gIGlmICh2LnN0YXJ0c1dpdGgoJ3cnKSkgcmV0dXJuICd3ZWInO1xuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuIl19
|
|
282
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zcGVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy9pbnNwZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU5RCxPQUFPLEVBQ0wsc0NBQXNDLEVBQ3RDLG1DQUFtQyxHQUNwQyxNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUNMLFVBQVUsRUFDVixTQUFTLEVBQ1QsUUFBUSxFQUNSLFVBQVUsRUFDVixTQUFTLEVBQ1Qsa0JBQWtCLEVBQ2xCLFFBQVEsRUFDUixPQUFPLEVBQ1AsUUFBUSxFQUNSLFVBQVUsR0FDWCxNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRW5FLE1BQU0sQ0FBQyxPQUFPLE9BQU8sT0FBUSxTQUFRLFdBQVc7SUFDOUMsTUFBTSxDQUFDLFdBQVcsR0FBRyx5Q0FBeUMsQ0FBQztJQUUvRCxNQUFNLENBQUMsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFdkIsTUFBTSxDQUFDLFFBQVEsR0FBRztRQUNoQix5QkFBeUI7UUFDekIseUJBQXlCO1FBQ3pCLGtFQUFrRTtRQUNsRSwwQkFBMEI7UUFDMUIseURBQXlEO1FBQ3pELGtFQUFrRTtLQUNuRSxDQUFDO0lBRUYsS0FBSyxD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VSxDQUFDLEtBQUssQ0FBQztRQUFFLE9BQU8sUUFBUSxDQUFDO0lBQ3pDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFBRSxPQUFPLE9BQU8sQ0FBQztJQUN2QyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO1FBQUUsT0FBTyxNQUFNLENBQUM7SUFDckMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztRQUFFLE9BQU8sTUFBTSxDQUFDO0lBQ3JDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUM7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUNwQyxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXJncywgRmxhZ3MgfSBmcm9tICdAb2NsaWYvY29yZSc7XG5pbXBvcnQgeyBWRVJDRUxfNDAzX0VSUk9SX01FU1NBR0UgfSBmcm9tICdAd29ya2Zsb3cvZXJyb3JzJztcbmltcG9ydCB7IEJhc2VDb21tYW5kIH0gZnJvbSAnLi4vYmFzZS5qcyc7XG5pbXBvcnQgeyBMT0dHSU5HX0NPTkZJRywgbG9nZ2VyIH0gZnJvbSAnLi4vbGliL2NvbmZpZy9sb2cuanMnO1xuaW1wb3J0IHR5cGUgeyBJbnNwZWN0Q0xJT3B0aW9ucyB9IGZyb20gJy4uL2xpYi9jb25maWcvdHlwZXMuanMnO1xuaW1wb3J0IHtcbiAgZ2V0T2JzZXJ2YWJpbGl0eVVwZ3JhZGVSZXF1aXJlZE1lc3NhZ2UsXG4gIGlzT2JzZXJ2YWJpbGl0eVVwZ3JhZGVSZXF1aXJlZEVycm9yLFxufSBmcm9tICcuLi9saWIvaW5zcGVjdC9lcnJvcnMuanMnO1xuaW1wb3J0IHsgY2xpRmxhZ3MsIHVybEZsYWcgfSBmcm9tICcuLi9saWIvaW5zcGVjdC9mbGFncy5qcyc7XG5pbXBvcnQge1xuICBsaXN0RXZlbnRzLFxuICBsaXN0SG9va3MsXG4gIGxpc3RSdW5zLFxuICBsaXN0U2xlZXBzLFxuICBsaXN0U3RlcHMsXG4gIGxpc3RTdHJlYW1zQnlSdW5JZCxcbiAgc2hvd0hvb2ssXG4gIHNob3dSdW4sXG4gIHNob3dTdGVwLFxuICBzaG93U3RyZWFtLFxufSBmcm9tICcuLi9saWIvaW5zcGVjdC9vdXRwdXQuanMnO1xuaW1wb3J0IHsgc2V0dXBDbGlXb3JsZCB9IGZyb20gJy4uL2xpYi9pbnNwZWN0L3NldHVwLmpzJztcbmltcG9ydCB7IGxhdW5jaFdlYlVJLCBwcmludERlZXBMaW5rIH0gZnJvbSAnLi4vbGliL2luc3BlY3Qvd2ViLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSW5zcGVjdCBleHRlbmRzIEJhc2VDb21tYW5kIHtcbiAgc3RhdGljIGRlc2NyaXB0aW9uID0gJ0luc3BlY3QgcnVucywgc3RlcHMsIHN0cmVhbXMsIG9yIGV2ZW50cyc7XG5cbiAgc3RhdGljIGFsaWFzZXMgPSBbJ2knXTtcblxuICBzdGF0aWMgZXhhbXBsZXMgPSBbXG4gICAgJyQgd29ya2Zsb3cgaW5zcGVjdCBydW5zJyxcbiAgICAnJCB3b3JrZmxvdyBpbnNwZWN0IHJ1bnMnLFxuICAgICckIHdvcmtmbG93IGluc3BlY3QgZXZlbnRzIC0tc3RlcD1zdGVwXzAxSzVXQUpaOFczNjdDVjJSRktEU0ROV0I4JyxcbiAgICAnJCB3b3JrZmxvdyBpbnNwZWN0IGhvb2tzJyxcbiAgICAnJCB3b3JrZmxvdyBpbnNwZWN0IGhvb2sgaG9va18wMUs1V0FKWjhXMzY3Q1YyUkZLRFNETldCOCcsXG4gICAgJyQgd29ya2Zsb3cgaW5zcGVjdCBzbGVlcHMgLS1ydW5JZD1ydW5fMDFLNVdBSlo4VzM2N0NWMlJGS0RTRE5XQjgnLFxuICBdO1xuXG4gIGFzeW5jIGNhdGNoKGVycm9yOiBhbnkpIHtcbiAgICAvLyBDaGVjayBpZiB0aGlzIGlzIGEgNDAzIGVycm9yIGZyb20gdGhlIFZlcmNlbCBiYWNrZW5kXG4gICAgaWYgKGlzT2JzZXJ2YWJpbGl0eVVwZ3JhZGVSZXF1aXJlZEVycm9yKGVycm9yKSkge1xuICAgICAgbG9nZ2VyLmVycm9yKGdldE9ic2VydmFiaWxpdHlVcGdyYWRlUmVxdWlyZWRNZXNzYWdlKCkpO1xuICAgIH0gZWxzZSBpZiAoZXJyb3I/LnN0YXR1cyA9PT0gNDAzKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gVkVSQ0VMXzQwM19FUlJPUl9NRVNTQUdFO1xuICAgICAgbG9nZ2VyLmVycm9yKG1lc3NhZ2UpO1xuICAgIH0gZWxzZSBpZiAoTE9HR0lOR19DT05GSUcuVkVSQk9TRV9NT0RFKSB7XG4gICAgICBsb2dnZXIuZXJyb3IoZXJyb3IpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlcnJvcj8ubWVzc2FnZSB8fCBTdHJpbmcoZXJyb3IpIHx8ICdVbmtub3duIGVycm9yJztcbiAgICAgIGxvZ2dlci5lcnJvcihgRXJyb3I6ICR7ZXJyb3JNZXNzYWdlfWApO1xuICAgIH1cbiAgICBwcm9jZXNzLmV4aXQoMSk7XG4gIH1cblxuICBzdGF0aWMgYXJncyA9IHtcbiAgICByZXNvdXJjZTogQXJncy5zdHJpbmcoe1xuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICd3aGF0IHRvIGluc3BlY3Q6IHJ1bihzKSB8IHN0ZXAocykgfCBzdHJlYW0ocykgfCBldmVudChzKSB8IGhvb2socykgfCBzbGVlcChzKScsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgJ3InLFxuICAgICAgICAncnVuJyxcbiAgICAgICAgJ3J1bnMnLFxuICAgICAgICAncycsXG4gICAgICAgICdzdGVwJyxcbiAgICAgICAgJ3N0ZXBzJyxcbiAgICAgICAgJ2UnLFxuICAgICAgICAnZXZlbnQnLFxuICAgICAgICAnZXZlbnRzJyxcbiAgICAgICAgJ3N0JyxcbiAgICAgICAgJ3N0cmVhbScsXG4gICAgICAgICdzdHJlYW1zJyxcbiAgICAgICAgJ2gnLFxuICAgICAgICAnaG9vaycsXG4gICAgICAgICdob29rcycsXG4gICAgICAgICd3JyxcbiAgICAgICAgJ3dlYicsXG4gICAgICAgICdzbGVlcCcsXG4gICAgICAgICdzbGVlcHMnLFxuICAgICAgXSxcbiAgICB9KSxcbiAgICBpZDogQXJncy5zdHJpbmcoe1xuICAgICAgZGVzY3JpcHRpb246ICdJRCBvZiB0aGUgcmVzb3VyY2UgaWYgaW5zcGVjdGluZyBhIHNwZWNpZmljIGl0ZW0nLFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIH0pLFxuICB9IGFzIGNvbnN0O1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICBydW5JZDogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAnUnVuIElEIHRvIGZpbHRlciBieSAocmVxdWlyZWQgZm9yIHN0ZXBzLCBzbGVlcHMsIGFuZCBldmVudHMuIE9wdGlvbmFsIGZvciBob29rcy4pJyxcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIGNoYXI6ICdyJyxcbiAgICAgIGFsaWFzZXM6IFsncnVuJ10sXG4gICAgICBoZWxwR3JvdXA6ICdGaWx0ZXJpbmcnLFxuICAgICAgaGVscExhYmVsOiAnLXIsIC0tcnVuSWQnLFxuICAgICAgaGVscFZhbHVlOiAnUlVOX0lEJyxcbiAgICB9KSxcbiAgICBzdGVwSWQ6IEZsYWdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogJ3N0ZXAgSUQgdG8gZmlsdGVyIGJ5IChvbmx5IGZvciBldmVudHMpJyxcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIGNoYXI6ICdzJyxcbiAgICAgIGFsaWFzZXM6IFsnc3RlcCddLFxuICAgICAgaGVscEdyb3VwOiAnRmlsdGVyaW5nJyxcbiAgICAgIGhlbHBMYWJlbDogJy1zLCAtLXN0ZXBJZCcsXG4gICAgICBoZWxwVmFsdWU6ICdTVEVQX0lEJyxcbiAgICB9KSxcbiAgICBob29rSWQ6IEZsYWdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogJ2hvb2sgSUQgdG8gZmlsdGVyIGJ5IChvbmx5IGZvciBldmVudHMpJyxcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIGFsaWFzZXM6IFsnaG9vayddLFxuICAgICAgaGVscEdyb3VwOiAnRmlsdGVyaW5nJyxcbiAgICAgIGhlbHBMYWJlbDogJy0taG9va0lkJyxcbiAgICAgIGhlbHBWYWx1ZTogJ0hPT0tfSUQnLFxuICAgIH0pLFxuICAgIHdvcmtmbG93TmFtZTogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnd29ya2Zsb3cgbmFtZSB0byBmaWx0ZXIgYnkgKG9ubHkgZm9yIHJ1bnMpJyxcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIGNoYXI6ICduJyxcbiAgICAgIGFsaWFzZXM6IFsnd29ya2Zsb3cnXSxcbiAgICAgIGhlbHBHcm91cDogJ0ZpbHRlcmluZycsXG4gICAgICBoZWxwTGFiZWw6ICctbiwgLS13b3JrZmxvd05hbWUnLFxuICAgIH0pLFxuICAgIHN0YXR1czogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnZmlsdGVyIHJ1bnMgYnkgc3RhdHVzIChvbmx5IGZvciBydW5zKScsXG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICBvcHRpb25zOiBbJ3J1bm5pbmcnLCAnY29tcGxldGVkJywgJ2ZhaWxlZCcsICdjYW5jZWxsZWQnLCAncGVuZGluZyddLFxuICAgICAgaGVscEdyb3VwOiAnRmlsdGVyaW5nJyxcbiAgICAgIGhlbHBMYWJlbDogJy0tc3RhdHVzJyxcbiAgICB9KSxcbiAgICBzaW5jZTogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAnbGlzdCBydW5zIGFjdGl2ZSBzaW5jZSBhIHJlbGF0aXZlIGR1cmF0aW9uICgzMG0sIDEyaCwgN2QsIDJ3KSBvciB0aW1lc3RhbXA7IGRlZmF1bHRzIHRvIHRoZSBiYWNrZW5kIHdpbmRvdyAob25seSBmb3IgcnVucyknLFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgaGVscEdyb3VwOiAnRmlsdGVyaW5nJyxcbiAgICAgIGhlbHBMYWJlbDogJy0tc2luY2UnLFxuICAgICAgaGVscFZhbHVlOiAnRFVSQVRJT058VElNRVNUQU1QJyxcbiAgICB9KSxcbiAgICB1bnRpbDogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAnZW5kIG9mIHRoZSAtLXNpbmNlIGxpc3Rpbmcgd2luZG93LCBhcyBhIHJlbGF0aXZlIGR1cmF0aW9uIG9yIHRpbWVzdGFtcDsgZGVmYXVsdHMgdG8gbm93IChvbmx5IGZvciBydW5zKScsXG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICBoZWxwR3JvdXA6ICdGaWx0ZXJpbmcnLFxuICAgICAgaGVscExhYmVsOiAnLS11bnRpbCcsXG4gICAgICBoZWxwVmFsdWU6ICdEVVJBVElPTnxUSU1FU1RBTVAnLFxuICAgIH0pLFxuICAgIHdpdGhEYXRhOiBGbGFncy5ib29sZWFuKHtcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAnaW5jbHVkZSBmdWxsIGlucHV0L291dHB1dCBkYXRhIGluIGxpc3Qgdmlld3MgKGRlcHJlY2F0ZWQgZm9yIGxpc3Qgdmlld3Mg4oCUIHVzZSBgaW5zcGVjdCA8cmVzb3VyY2U+IDxpZD5gIHRvIHZpZXcgcGF5bG9hZHMpJyxcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIGNoYXI6ICdkJyxcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgaGVscEdyb3VwOiAnRGlzcGxheScsXG4gICAgICBoZWxwTGFiZWw6ICctZCwgLS13aXRoRGF0YScsXG4gICAgfSksXG4gICAgZGVjcnlwdDogRmxhZ3MuYm9vbGVhbih7XG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgJ2RlY3J5cHQgZW5jcnlwdGVkIHZhbHVlcyAodHJpZ2dlcnMgYXVkaXQtbG9nZ2VkIGtleSByZXRyaWV2YWwpJyxcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgaGVscEdyb3VwOiAnRGlzcGxheScsXG4gICAgICBoZWxwTGFiZWw6ICctLWRlY3J5cHQnLFxuICAgIH0pLFxuICAgIC4uLmNsaUZsYWdzLFxuICAgIC4uLnVybEZsYWcsXG4gIH0gYXMgY29uc3Q7XG5cbiAgcHVibGljIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgeyBhcmdzLCBmbGFncyB9ID0gYXdhaXQgdGhpcy5wYXJzZShJbnNwZWN0KTtcblxuICAgICAgY29uc3QgcmVzb3VyY2UgPSBub3JtYWxpemVSZXNvdXJjZShhcmdzLnJlc291cmNlKTtcbiAgICAgIGlmICghcmVzb3VyY2UpIHtcbiAgICAgICAgdGhpcy5sb2dFcnJvcihcbiAgICAgICAgICBgVW5rbm93biByZXNvdXJjZSBcIiR7YXJncy5yZXNvdXJjZX1cIjogbXVzdCBiZSBvbmUgb2Y6IHJ1bihzKSwgc3RlcChzKSwgc3RyZWFtKHMpLCBldmVudChzKSwgaG9vayhzKSwgc2xlZXAocylgXG4gICAgICAgICk7XG4gICAgICAgIHByb2Nlc3MuZXhpdENvZGUgPSAxO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGlkID0gYXJncy5pZDtcblxuICAgICAgLy8gUHJpbnQtb25seSBkZWVwIGxpbms6IHJlc29sdmUgY29uZmlnIGFuZCBlbWl0IHRoZSBVUkwsIG5vIGJyb3dzZXIvc2VydmVyLlxuICAgICAgaWYgKGZsYWdzLnVybCkge1xuICAgICAgICBjb25zdCBhY3R1YWxSZXNvdXJjZSA9IHJlc291cmNlID09PSAnd2ViJyA/ICdydW4nIDogcmVzb3VyY2U7XG4gICAgICAgIGF3YWl0IHByaW50RGVlcExpbmsoYWN0dWFsUmVzb3VyY2UsIGlkLCBmbGFncywgdGhpcy5jb25maWcudmVyc2lvbik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gRm9yIHdlYiBtb2RlLCBhbGxvdyBjb25maWcgZXJyb3JzIHNvIHdlIGNhbiBvcGVuIHRoZSB3ZWIgVUkgZm9yIGNvbmZpZ3VyYXRpb25cbiAgICAgIGNvbnN0IGlzV2ViTW9kZSA9IGZsYWdzLndlYiB8fCByZXNvdXJjZSA9PT0gJ3dlYic7XG4gICAgICBjb25zdCB3b3JsZCA9IGF3YWl0IHNldHVwQ2xpV29ybGQoZmxhZ3MsIHRoaXMuY29uZmlnLnZlcnNpb24sIGlzV2ViTW9kZSk7XG5cbiAgICAgIC8vIEhhbmRsZSB3ZWIgVUkgbW9kZVxuICAgICAgaWYgKGlzV2ViTW9kZSkge1xuICAgICAgICBjb25zdCBhY3R1YWxSZXNvdXJjZSA9IHJlc291cmNlID09PSAnd2ViJyA/ICdydW4nIDogcmVzb3VyY2U7XG4gICAgICAgIGF3YWl0IGxhdW5jaFdlYlVJKGFjdHVhbFJlc291cmNlLCBpZCwgZmxhZ3MsIHRoaXMuY29uZmlnLnZlcnNpb24pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIEZvciBub24td2ViIGNvbW1hbmRzLCB3ZSBuZWVkIGEgdmFsaWQgd29ybGRcbiAgICAgIGlmICghd29ybGQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICdGYWlsZWQgdG8gY29ubmVjdCB0byBiYWNrZW5kLiBDaGVjayB5b3VyIGNvbmZpZ3VyYXRpb24uJ1xuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICAvLyBDb252ZXJ0IGZsYWdzIHRvIEluc3BlY3RDTElPcHRpb25zIHdpdGggcHJvcGVyIHR5cGluZ1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IHRvSW5zcGVjdE9wdGlvbnMoZmxhZ3MpO1xuXG4gICAgICBpZiAocmVzb3VyY2UgPT09ICdydW4nKSB7XG4gICAgICAgIGlmIChpZCkge1xuICAgICAgICAgIGF3YWl0IHNob3dSdW4od29ybGQsIGlkLCBvcHRpb25zKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhd2FpdCBsaXN0UnVucyh3b3JsZCwgb3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVzb3VyY2UgPT09ICdzdGVwJykge1xuICAgICAgICBpZiAoaWQpIHtcbiAgICAgICAgICBhd2FpdCBzaG93U3RlcCh3b3JsZCwgaWQsIG9wdGlvbnMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGF3YWl0IGxpc3RTdGVwcyh3b3JsZCwgb3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVzb3VyY2UgPT09ICdzdHJlYW0nKSB7XG4gICAgICAgIGlmIChpZCkge1xuICAgICAgICAgIGF3YWl0IHNob3dTdHJlYW0od29ybGQsIGlkLCBvcHRpb25zKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhd2FpdCBsaXN0U3RyZWFtc0J5UnVuSWQod29ybGQsIG9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlc291cmNlID09PSAnZXZlbnQnKSB7XG4gICAgICAgIGlmIChpZCkge1xuICAgICAgICAgIHRoaXMubG9nRXJyb3IoXG4gICAgICAgICAgICAnRXZlbnQtSUQgaXMgbm90IHN1cHBvcnRlZCBmb3IgZXZlbnRzLiBGaWx0ZXIgYnkgcnVuLWlkIG9yIHN0ZXAtaWQgaW5zdGVhZC4gVXNhZ2U6IGB3b3JrZmxvdyBpbnNwZWN0IGV2ZW50cyAtLXJ1bklkPTxpZD5gJ1xuICAgICAgICAgICk7XG4gICAgICAgICAgcHJvY2Vzcy5leGl0Q29kZSA9IDE7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IGxpc3RFdmVudHMod29ybGQsIG9wdGlvbnMpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChyZXNvdXJjZSA9PT0gJ2hvb2snKSB7XG4gICAgICAgIGlmIChpZCkge1xuICAgICAgICAgIGF3YWl0IHNob3dIb29rKHdvcmxkLCBpZCwgb3B0aW9ucyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYXdhaXQgbGlzdEhvb2tzKHdvcmxkLCBvcHRpb25zKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChyZXNvdXJjZSA9PT0gJ3NsZWVwJykge1xuICAgICAgICBpZiAoaWQpIHtcbiAgICAgICAgICB0aGlzLmxvZ0Vycm9yKFxuICAgICAgICAgICAgJ1NsZWVwLUlEIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHNsZWVwcy4gRmlsdGVyIGJ5IHJ1bi1pZCBpbnN0ZWFkLiBVc2FnZTogYHdvcmtmbG93IGluc3BlY3Qgc2xlZXBzIC0tcnVuSWQ9PGlkPmAnXG4gICAgICAgICAgKTtcbiAgICAgICAgICBwcm9jZXNzLmV4aXRDb2RlID0gMTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFmbGFncy5ydW5JZCkge1xuICAgICAgICAgIHRoaXMubG9nRXJyb3IoXG4gICAgICAgICAgICAncnVuLWlkIGlzIHJlcXVpcmVkIGZvciBsaXN0aW5nIHNsZWVwcy4gVXNhZ2U6IGB3b3JrZmxvdyBpbnNwZWN0IHNsZWVwcyAtLXJ1bklkPTxpZD5gJ1xuICAgICAgICAgICk7XG4gICAgICAgICAgcHJvY2Vzcy5leGl0Q29kZSA9IDE7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IGxpc3RTbGVlcHMod29ybGQsIG9wdGlvbnMpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMubG9nRXJyb3IoXG4gICAgICAgIGBVbmtub3duIHJlc291cmNlOiAke3Jlc291cmNlfS4gVXNhZ2U6ICR7SW5zcGVjdC5leGFtcGxlcy5qb2luKCdcXG4nKX1gXG4gICAgICApO1xuICAgICAgcHJvY2Vzcy5leGl0Q29kZSA9IDE7XG4gICAgICByZXR1cm47XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIExldCB0aGUgY2F0Y2ggaGFuZGxlciBkZWFsIHdpdGggaXQsIGJ1dCBlbnN1cmUgd2UgZXhpdFxuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHRvSW5zcGVjdE9wdGlvbnMoZmxhZ3M6IGFueSk6IEluc3BlY3RDTElPcHRpb25zIHtcbiAgcmV0dXJuIHtcbiAgICBqc29uOiBmbGFncy5qc29uLFxuICAgIHJ1bklkOiBmbGFncy5ydW5JZCxcbiAgICBzdGVwSWQ6IGZsYWdzLnN0ZXBJZCxcbiAgICBjdXJzb3I6IGZsYWdzLmN1cnNvcixcbiAgICBzb3J0OiBmbGFncy5zb3J0IGFzICdhc2MnIHwgJ2Rlc2MnIHwgdW5kZWZpbmVkLFxuICAgIGxpbWl0OiBmbGFncy5saW1pdCxcbiAgICB3b3JrZmxvd05hbWU6IGZsYWdzLndvcmtmbG93TmFtZSxcbiAgICBzdGF0dXM6IGZsYWdzLnN0YXR1cyxcbiAgICBzaW5jZTogZmxhZ3Muc2luY2UsXG4gICAgdW50aWw6IGZsYWdzLnVudGlsLFxuICAgIHdpdGhEYXRhOiBmbGFncy53aXRoRGF0YSxcbiAgICBkZWNyeXB0OiBmbGFncy5kZWNyeXB0LFxuICAgIGJhY2tlbmQ6IGZsYWdzLmJhY2tlbmQsXG4gICAgaW50ZXJhY3RpdmU6IGZsYWdzLmludGVyYWN0aXZlLFxuICB9O1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemVSZXNvdXJjZShcbiAgdmFsdWU/OiBzdHJpbmdcbik6ICdydW4nIHwgJ3N0ZXAnIHwgJ3N0cmVhbScgfCAnZXZlbnQnIHwgJ2hvb2snIHwgJ3dlYicgfCAnc2xlZXAnIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCF2YWx1ZSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgY29uc3QgdiA9IHZhbHVlLnRvTG93ZXJDYXNlKCk7XG4gIGlmICh2LnN0YXJ0c1dpdGgoJ3InKSkgcmV0dXJuICdydW4nO1xuICBpZiAodi5zdGFydHNXaXRoKCdlJykpIHJldHVybiAnZXZlbnQnO1xuICBpZiAodi5zdGFydHNXaXRoKCdzdHInKSkgcmV0dXJuICdzdHJlYW0nO1xuICBpZiAodi5zdGFydHNXaXRoKCdzbCcpKSByZXR1cm4gJ3NsZWVwJztcbiAgaWYgKHYuc3RhcnRzV2l0aCgncycpKSByZXR1cm4gJ3N0ZXAnO1xuICBpZiAodi5zdGFydHNXaXRoKCdoJykpIHJldHVybiAnaG9vayc7XG4gIGlmICh2LnN0YXJ0c1dpdGgoJ3cnKSkgcmV0dXJuICd3ZWInO1xuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAUzC,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,WAAW;IAC5C,MAAM,CAAC,WAAW,SAAsB;IAExC,MAAM,CAAC,OAAO,WAAS;IAEvB,MAAM,CAAC,QAAQ,WAGb;IAEI,KAAK,CAAC,KAAK,EAAE,GAAG;IAUtB,MAAM,CAAC,IAAI;;;MAaA;IAEX,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;;MAAY;IAEX,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAgBlC"}
|
package/dist/commands/start.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Args } from '@oclif/core';
|
|
2
2
|
import { BaseCommand } from '../base.js';
|
|
3
|
-
import { LOGGING_CONFIG } from '../lib/config/log.js';
|
|
3
|
+
import { LOGGING_CONFIG, logger } from '../lib/config/log.js';
|
|
4
|
+
import { getObservabilityUpgradeRequiredMessage, isObservabilityUpgradeRequiredError, } from '../lib/inspect/errors.js';
|
|
4
5
|
import { cliFlags } from '../lib/inspect/flags.js';
|
|
5
6
|
import { startRun } from '../lib/inspect/run.js';
|
|
6
7
|
import { setupCliWorld } from '../lib/inspect/setup.js';
|
|
@@ -12,7 +13,11 @@ export default class Start extends BaseCommand {
|
|
|
12
13
|
'$ wf start <workflow-name> <args>',
|
|
13
14
|
];
|
|
14
15
|
async catch(error) {
|
|
15
|
-
if (
|
|
16
|
+
if (isObservabilityUpgradeRequiredError(error)) {
|
|
17
|
+
logger.error(getObservabilityUpgradeRequiredMessage());
|
|
18
|
+
process.exit(1);
|
|
19
|
+
}
|
|
20
|
+
else if (LOGGING_CONFIG.VERBOSE_MODE) {
|
|
16
21
|
console.error(error);
|
|
17
22
|
}
|
|
18
23
|
throw error;
|
|
@@ -43,4 +48,4 @@ export default class Start extends BaseCommand {
|
|
|
43
48
|
await startRun(world, args.workflowName, flags, stringArgs);
|
|
44
49
|
}
|
|
45
50
|
}
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvc3RhcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNuQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUNMLHNDQUFzQyxFQUN0QyxtQ0FBbUMsR0FDcEMsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxNQUFNLENBQUMsT0FBTyxPQUFPLEtBQU0sU0FBUSxXQUFXO0lBQzVDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsa0JBQWtCLENBQUM7SUFFeEMsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRXZCLE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIseUNBQXlDO1FBQ3pDLG1DQUFtQztLQUNwQyxDQUFDO0lBRUYsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFVO1FBQ3BCLElBQUksbUNBQW1DLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMvQyxNQUFNLENBQUMsS0FBSyxDQUFDLHNDQUFzQyxFQUFFLENBQUMsQ0FBQztZQUN2RCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xCLENBQUM7YUFBTSxJQUFJLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxNQUFNLEtBQUssQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBSSxHQUFHO1FBQ1osWUFBWSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDeEIsV0FBVyxFQUNULHlGQUF5RjtZQUMzRixRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUM7UUFDRixJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUNoQixXQUFXLEVBQUU7Z0JBQ1gsMEVBQTBFO2dCQUMxRSxvSkFBb0o7YUFDckosQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ1osUUFBUSxFQUFFLEtBQUs7U0FDaEIsQ0FBQztLQUNNLENBQUM7SUFFWCxNQUFNLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQztJQUVqQixLQUFLLENBQUMsR0FBRztRQUNkLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV0RCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN0RCxNQUFNLFFBQVEsR0FBRyxhQUFhLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDM0UsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFdEQsTUFBTSxLQUFLLEdBQUcsTUFBTSxhQUFhLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFJLEtBQUssQ0FDYix5REFBeUQsQ0FDMUQsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLFFBQVEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDOUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFyZ3MgfSBmcm9tICdAb2NsaWYvY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29tbWFuZCB9IGZyb20gJy4uL2Jhc2UuanMnO1xuaW1wb3J0IHsgTE9HR0lOR19DT05GSUcsIGxvZ2dlciB9IGZyb20gJy4uL2xpYi9jb25maWcvbG9nLmpzJztcbmltcG9ydCB7XG4gIGdldE9ic2VydmFiaWxpdHlVcGdyYWRlUmVxdWlyZWRNZXNzYWdlLFxuICBpc09ic2VydmFiaWxpdHlVcGdyYWRlUmVxdWlyZWRFcnJvcixcbn0gZnJvbSAnLi4vbGliL2luc3BlY3QvZXJyb3JzLmpzJztcbmltcG9ydCB7IGNsaUZsYWdzIH0gZnJvbSAnLi4vbGliL2luc3BlY3QvZmxhZ3MuanMnO1xuaW1wb3J0IHsgc3RhcnRSdW4gfSBmcm9tICcuLi9saWIvaW5zcGVjdC9ydW4uanMnO1xuaW1wb3J0IHsgc2V0dXBDbGlXb3JsZCB9IGZyb20gJy4uL2xpYi9pbnNwZWN0L3NldHVwLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3RhcnQgZXh0ZW5kcyBCYXNlQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9ICdTdGFydCBhIHdvcmtmbG93JztcblxuICBzdGF0aWMgYWxpYXNlcyA9IFsncyddO1xuXG4gIHN0YXRpYyBleGFtcGxlcyA9IFtcbiAgICAnJCB3b3JrZmxvdyBzdGFydCA8d29ya2Zsb3ctbmFtZT4gPGFyZ3M+JyxcbiAgICAnJCB3ZiBzdGFydCA8d29ya2Zsb3ctbmFtZT4gPGFyZ3M+JyxcbiAgXTtcblxuICBhc3luYyBjYXRjaChlcnJvcjogYW55KSB7XG4gICAgaWYgKGlzT2JzZXJ2YWJpbGl0eVVwZ3JhZGVSZXF1aXJlZEVycm9yKGVycm9yKSkge1xuICAgICAgbG9nZ2VyLmVycm9yKGdldE9ic2VydmFiaWxpdHlVcGdyYWRlUmVxdWlyZWRNZXNzYWdlKCkpO1xuICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgIH0gZWxzZSBpZiAoTE9HR0lOR19DT05GSUcuVkVSQk9TRV9NT0RFKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICB9XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cblxuICBzdGF0aWMgYXJncyA9IHtcbiAgICB3b3JrZmxvd05hbWU6IEFyZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAnTmFtZSBvZiBhIHdvcmtmbG93IHRvIHN0YXJ0LiBQcm92aWRpbmcgYSBydW4gSUQgd2lsbCBjcmVhdGUgYSBuZXcgcnVuIG9uIHRoYXQgd29ya2Zsb3cuJyxcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0pLFxuICAgIGFyZ3M6IEFyZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBbXG4gICAgICAgICdBcmd1bWVudHMgdG8gcGFzcyB0byB0aGUgd29ya2Zsb3cuIEFsbCBhcmd1bWVudHMgd2lsbCBiZSBwYXJzZWQgYXMgSlNPTi4nLFxuICAgICAgICAnRS5nLiBgd2Ygc3RhcnQgZXhhbXBsZSAxMjMgXCJcXCcxMjNcXCdcIiBcIntcImFcIjogMX1cImAgd2lsbCBzdGFydCB0aGUgXCJleGFtcGxlXCIgd29ya2Zsb3cgd2l0aCAxMjMgKGEgbnVtYmVyKSwgXCIxMjNcIiAoYSBzdHJpbmcpLCBhbmQge1wiYVwiOiAxfSAoYW4gb2JqZWN0KScsXG4gICAgICBdLmpvaW4oJ1xcbicpLFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIH0pLFxuICB9IGFzIGNvbnN0O1xuXG4gIHN0YXRpYyBmbGFncyA9IGNsaUZsYWdzO1xuXG4gIHB1YmxpYyBhc3luYyBydW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBmbGFncywgYXJncywgYXJndiB9ID0gYXdhaXQgdGhpcy5wYXJzZShTdGFydCk7XG5cbiAgICBjb25zdCBmaXhlZEFyZ0luZGV4ID0gYXJndi5pbmRleE9mKGFyZ3Mud29ya2Zsb3dOYW1lKTtcbiAgICBjb25zdCByZXN0QXJncyA9IGZpeGVkQXJnSW5kZXggIT09IC0xID8gYXJndi5zbGljZShmaXhlZEFyZ0luZGV4ICsgMSkgOiBbXTtcbiAgICBjb25zdCBzdHJpbmdBcmdzID0gcmVzdEFyZ3MubWFwKChhcmcpID0+IFN0cmluZyhhcmcpKTtcblxuICAgIGNvbnN0IHdvcmxkID0gYXdhaXQgc2V0dXBDbGlXb3JsZChmbGFncywgdGhpcy5jb25maWcudmVyc2lvbik7XG4gICAgaWYgKCF3b3JsZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnRmFpbGVkIHRvIGNvbm5lY3QgdG8gYmFja2VuZC4gQ2hlY2sgeW91ciBjb25maWd1cmF0aW9uLidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgYXdhaXQgc3RhcnRSdW4od29ybGQsIGFyZ3Mud29ya2Zsb3dOYW1lLCBmbGFncywgc3RyaW5nQXJncyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -11,6 +11,10 @@ export type InspectCLIOptions = {
|
|
|
11
11
|
limit?: number;
|
|
12
12
|
workflowName?: string;
|
|
13
13
|
status?: string;
|
|
14
|
+
/** Listing window start: relative duration (12h, 7d) or timestamp (runs only) */
|
|
15
|
+
since?: string;
|
|
16
|
+
/** Listing window end: relative duration or timestamp; requires --since */
|
|
17
|
+
until?: string;
|
|
14
18
|
withData?: boolean;
|
|
15
19
|
backend?: string;
|
|
16
20
|
disableRelativeDates?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/config/types.ts"],"names":[],"mappings":"AACA,YAAY,EACV,WAAW,EACX,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gFAAgF;IAChF,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/config/types.ts"],"names":[],"mappings":"AACA,YAAY,EACV,WAAW,EACX,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gFAAgF;IAChF,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC"}
|
package/dist/lib/config/types.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { isValidBuildTarget, validBuildTargets, } from '@workflow/builders';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbmZpZy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLGlCQUFpQixHQUNsQixNQUFNLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gUmUtZXhwb3J0IGJ1aWxkZXIgdHlwZXMgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG5leHBvcnQgdHlwZSB7XG4gIEJ1aWxkVGFyZ2V0LFxuICBXb3JrZmxvd0NvbmZpZyxcbn0gZnJvbSAnQHdvcmtmbG93L2J1aWxkZXJzJztcbmV4cG9ydCB7XG4gIGlzVmFsaWRCdWlsZFRhcmdldCxcbiAgdmFsaWRCdWlsZFRhcmdldHMsXG59IGZyb20gJ0B3b3JrZmxvdy9idWlsZGVycyc7XG5cbmV4cG9ydCB0eXBlIEluc3BlY3RDTElPcHRpb25zID0ge1xuICBqc29uPzogYm9vbGVhbjtcbiAgd2F0Y2g/OiBib29sZWFuO1xuICBydW5JZD86IHN0cmluZztcbiAgc3RlcElkPzogc3RyaW5nO1xuICBob29rSWQ/OiBzdHJpbmc7XG4gIGN1cnNvcj86IHN0cmluZztcbiAgc29ydD86ICdhc2MnIHwgJ2Rlc2MnO1xuICBsaW1pdD86IG51bWJlcjtcbiAgd29ya2Zsb3dOYW1lPzogc3RyaW5nO1xuICBzdGF0dXM/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbmZpZy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLGlCQUFpQixHQUNsQixNQUFNLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gUmUtZXhwb3J0IGJ1aWxkZXIgdHlwZXMgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG5leHBvcnQgdHlwZSB7XG4gIEJ1aWxkVGFyZ2V0LFxuICBXb3JrZmxvd0NvbmZpZyxcbn0gZnJvbSAnQHdvcmtmbG93L2J1aWxkZXJzJztcbmV4cG9ydCB7XG4gIGlzVmFsaWRCdWlsZFRhcmdldCxcbiAgdmFsaWRCdWlsZFRhcmdldHMsXG59IGZyb20gJ0B3b3JrZmxvdy9idWlsZGVycyc7XG5cbmV4cG9ydCB0eXBlIEluc3BlY3RDTElPcHRpb25zID0ge1xuICBqc29uPzogYm9vbGVhbjtcbiAgd2F0Y2g/OiBib29sZWFuO1xuICBydW5JZD86IHN0cmluZztcbiAgc3RlcElkPzogc3RyaW5nO1xuICBob29rSWQ/OiBzdHJpbmc7XG4gIGN1cnNvcj86IHN0cmluZztcbiAgc29ydD86ICdhc2MnIHwgJ2Rlc2MnO1xuICBsaW1pdD86IG51bWJlcjtcbiAgd29ya2Zsb3dOYW1lPzogc3RyaW5nO1xuICBzdGF0dXM/OiBzdHJpbmc7XG4gIC8qKiBMaXN0aW5nIHdpbmRvdyBzdGFydDogcmVsYXRpdmUgZHVyYXRpb24gKDEyaCwgN2QpIG9yIHRpbWVzdGFtcCAocnVucyBvbmx5KSAqL1xuICBzaW5jZT86IHN0cmluZztcbiAgLyoqIExpc3Rpbmcgd2luZG93IGVuZDogcmVsYXRpdmUgZHVyYXRpb24gb3IgdGltZXN0YW1wOyByZXF1aXJlcyAtLXNpbmNlICovXG4gIHVudGlsPzogc3RyaW5nO1xuICB3aXRoRGF0YT86IGJvb2xlYW47XG4gIGJhY2tlbmQ/OiBzdHJpbmc7XG4gIGRpc2FibGVSZWxhdGl2ZURhdGVzPzogYm9vbGVhbjtcbiAgaW50ZXJhY3RpdmU/OiBib29sZWFuO1xuICAvKiogV2hlbiB0cnVlLCBkZWNyeXB0IGVuY3J5cHRlZCB2YWx1ZXMgKHRyaWdnZXJzIGF1ZGl0LWxvZ2dlZCBrZXkgcmV0cmlldmFsKSAqL1xuICBkZWNyeXB0PzogYm9vbGVhbjtcbn07XG4iXX0=
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Used by the CLI to configure environment variables that are read by
|
|
5
5
|
* various subsystems (e.g., WORKFLOW_TARGET_WORLD, WORKFLOW_LOCAL_DATA_DIR).
|
|
6
6
|
* Note: WORKFLOW_VERCEL_* env vars are read back via getEnvVars() and passed
|
|
7
|
-
* to
|
|
7
|
+
* to @workflow/world-vercel's createWorld() explicitly — they are NOT read by runtime createWorld().
|
|
8
8
|
*/
|
|
9
9
|
export declare const writeEnvVars: (envVars: Record<string, string>) => void;
|
|
10
10
|
export declare const getEnvVars: () => Record<string, string>;
|