@workflow/cli 5.0.0-beta.4 → 5.0.0-beta.41
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.js +1 -1
- package/dist/commands/build.js +1 -1
- package/dist/commands/cancel.d.ts +1 -0
- package/dist/commands/cancel.d.ts.map +1 -1
- package/dist/commands/cancel.js +36 -55
- package/dist/commands/dev.js +1 -1
- package/dist/commands/health.d.ts +1 -3
- package/dist/commands/health.d.ts.map +1 -1
- package/dist/commands/health.js +26 -50
- package/dist/commands/init.js +1 -1
- package/dist/commands/inspect.d.ts +4 -0
- package/dist/commands/inspect.d.ts.map +1 -1
- package/dist/commands/inspect.js +37 -7
- package/dist/commands/start.d.ts +1 -0
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +8 -3
- package/dist/commands/transform.js +1 -1
- package/dist/commands/validate.js +1 -1
- package/dist/commands/web.d.ts +2 -0
- package/dist/commands/web.d.ts.map +1 -1
- package/dist/commands/web.js +9 -3
- package/dist/lib/bulk-cancel.d.ts +74 -0
- package/dist/lib/bulk-cancel.d.ts.map +1 -0
- package/dist/lib/bulk-cancel.js +197 -0
- package/dist/lib/bulk-cancel.test.d.ts +2 -0
- package/dist/lib/bulk-cancel.test.d.ts.map +1 -0
- package/dist/lib/bulk-cancel.test.js +366 -0
- package/dist/lib/config/log.js +1 -1
- package/dist/lib/config/types.d.ts +6 -1
- package/dist/lib/config/types.d.ts.map +1 -1
- package/dist/lib/config/types.js +1 -1
- package/dist/lib/config/workflow-config.d.ts.map +1 -1
- package/dist/lib/config/workflow-config.js +2 -2
- package/dist/lib/inspect/auth.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/flags.d.ts +9 -0
- package/dist/lib/inspect/flags.d.ts.map +1 -1
- package/dist/lib/inspect/flags.js +23 -1
- package/dist/lib/inspect/hydration.d.ts +22 -0
- package/dist/lib/inspect/hydration.d.ts.map +1 -1
- package/dist/lib/inspect/hydration.js +107 -49
- package/dist/lib/inspect/hydration.test.d.ts +2 -0
- package/dist/lib/inspect/hydration.test.d.ts.map +1 -0
- package/dist/lib/inspect/hydration.test.js +23 -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 +327 -136
- package/dist/lib/inspect/output.test.js +663 -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 +33 -10
- package/dist/lib/inspect/setup.d.ts.map +1 -1
- package/dist/lib/inspect/setup.js +42 -6
- package/dist/lib/inspect/stream.js +1 -1
- package/dist/lib/inspect/terminal-utils.js +1 -1
- 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/dist/lib/inspect/vercel-api.d.ts +5 -2
- package/dist/lib/inspect/vercel-api.d.ts.map +1 -1
- package/dist/lib/inspect/vercel-api.js +12 -37
- package/dist/lib/inspect/vercel-api.test.d.ts +2 -0
- package/dist/lib/inspect/vercel-api.test.d.ts.map +1 -0
- package/dist/lib/inspect/vercel-api.test.js +21 -0
- package/dist/lib/inspect/vercel-link.js +1 -1
- package/dist/lib/inspect/web.d.ts +24 -0
- package/dist/lib/inspect/web.d.ts.map +1 -1
- package/dist/lib/inspect/web.js +122 -3
- package/dist/lib/update-check.js +1 -1
- package/package.json +15 -14
- package/dist/base.js.map +0 -1
- package/dist/commands/build.js.map +0 -1
- package/dist/commands/cancel.js.map +0 -1
- package/dist/commands/dev.js.map +0 -1
- package/dist/commands/health.js.map +0 -1
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/inspect.js.map +0 -1
- package/dist/commands/start.js.map +0 -1
- package/dist/commands/transform.js.map +0 -1
- package/dist/commands/validate.js.map +0 -1
- package/dist/commands/web.js.map +0 -1
- package/dist/lib/config/log.js.map +0 -1
- package/dist/lib/config/types.js.map +0 -1
- package/dist/lib/config/workflow-config.js.map +0 -1
- package/dist/lib/inspect/auth.js.map +0 -1
- package/dist/lib/inspect/env.js.map +0 -1
- package/dist/lib/inspect/flags.js.map +0 -1
- package/dist/lib/inspect/hydration.js.map +0 -1
- package/dist/lib/inspect/output.js.map +0 -1
- package/dist/lib/inspect/output.test.js.map +0 -1
- package/dist/lib/inspect/pagination.js.map +0 -1
- package/dist/lib/inspect/run.js.map +0 -1
- package/dist/lib/inspect/setup.js.map +0 -1
- package/dist/lib/inspect/stream.js.map +0 -1
- package/dist/lib/inspect/terminal-utils.js.map +0 -1
- package/dist/lib/inspect/vercel-api.js.map +0 -1
- package/dist/lib/inspect/vercel-link.js.map +0 -1
- package/dist/lib/inspect/web.js.map +0 -1
- package/dist/lib/update-check.js.map +0 -1
|
@@ -43,47 +43,22 @@ export async function fetchTeamInfo(teamId, authToken) {
|
|
|
43
43
|
return null;
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
|
-
// /**
|
|
47
|
-
// * Check if the Vercel dashboard workflows page is available
|
|
48
|
-
// */
|
|
49
|
-
// export async function checkVercelDashboardAvailable(
|
|
50
|
-
// teamSlug: string,
|
|
51
|
-
// projectName: string,
|
|
52
|
-
// authToken: string
|
|
53
|
-
// ): Promise<boolean> {
|
|
54
|
-
// try {
|
|
55
|
-
// const dashboardUrl = `https://vercel.com/${teamSlug}/${projectName}/ai/workflows`;
|
|
56
|
-
// logger.debug(`Checking Vercel dashboard availability: ${dashboardUrl}`);
|
|
57
|
-
// const response = await fetch(dashboardUrl, {
|
|
58
|
-
// method: 'HEAD',
|
|
59
|
-
// redirect: 'follow',
|
|
60
|
-
// headers: {
|
|
61
|
-
// Authorization: `Bearer ${authToken}`,
|
|
62
|
-
// },
|
|
63
|
-
// });
|
|
64
|
-
// // Consider 2xx and 3xx as success
|
|
65
|
-
// const isAvailable = response.status >= 200 && response.status < 400;
|
|
66
|
-
// logger.debug(
|
|
67
|
-
// `Dashboard check result: ${response.status} - ${isAvailable ? 'available' : 'not available'}`
|
|
68
|
-
// );
|
|
69
|
-
// return isAvailable;
|
|
70
|
-
// } catch (error) {
|
|
71
|
-
// logger.debug(`Error checking dashboard availability: ${error}`);
|
|
72
|
-
// return false;
|
|
73
|
-
// }
|
|
74
|
-
// }
|
|
75
46
|
/**
|
|
76
|
-
* Get the Vercel dashboard URL for workflows
|
|
47
|
+
* Get the Vercel dashboard URL for workflows.
|
|
48
|
+
*
|
|
49
|
+
* Format: https://vercel.com/<teamSlug>/<projectSlug>/workflows/runs/<runId>?environment=<env>
|
|
50
|
+
* (the older `/observability/workflows` route is no longer used).
|
|
77
51
|
*/
|
|
78
|
-
export function getVercelDashboardUrl(teamSlug, projectName, resource, id) {
|
|
79
|
-
|
|
52
|
+
export function getVercelDashboardUrl(teamSlug, projectName, resource, id, environment = 'production') {
|
|
53
|
+
const base = `https://vercel.com/${teamSlug}/${projectName}/workflows`;
|
|
54
|
+
const env = `environment=${environment}`;
|
|
80
55
|
// Add resource-specific path segments
|
|
81
56
|
if (resource === 'run' && id) {
|
|
82
|
-
|
|
57
|
+
return `${base}/runs/${id}?${env}`;
|
|
83
58
|
}
|
|
84
|
-
|
|
85
|
-
|
|
59
|
+
if (id) {
|
|
60
|
+
return `${base}?${resource}Id=${id}&${env}`;
|
|
86
61
|
}
|
|
87
|
-
return
|
|
62
|
+
return `${base}?${env}`;
|
|
88
63
|
}
|
|
89
|
-
//# sourceMappingURL=
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyY2VsLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvaW5zcGVjdC92ZXJjZWwtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFPMUM7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxhQUFhLENBQ2pDLE1BQWMsRUFDZCxTQUFpQjtJQUVqQixJQUFJLENBQUM7UUFDSCxvREFBb0Q7UUFDcEQsTUFBTSxVQUFVLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUN6QyxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTdELE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLG1DQUFtQyxNQUFNLEVBQUUsRUFBRTtZQUN4RSxPQUFPLEVBQUU7Z0JBQ1AsYUFBYSxFQUFFLFVBQVUsU0FBUyxFQUFFO2FBQ3JDO1lBQ0QsTUFBTSxFQUFFLFVBQVUsQ0FBQyxNQUFNO1NBQzFCLENBQUMsQ0FBQztRQUVILDBEQUEwRDtRQUMxRCxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFeEIsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ3ZELE1BQU0sQ0FBQyxLQUFLLENBQ1YsS0FBSyxDQUFDLEdBQUcsQ0FDUCwwQkFBMEIsUUFBUSxDQUFDLE1BQU0sc0NBQXNDLENBQ2hGLENBQ0YsQ0FBQztZQUNGLE1BQU0sQ0FBQyxJQUFJLENBQ1QsS0FBSyxDQUFDLE1BQU0sQ0FDVixnRUFBZ0UsQ0FDakUsQ0FDRixDQUFDO1lBQ0YsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLHNDQUFzQyxDQUFDLENBQUMsQ0FBQztZQUNsRSxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sQ0FBQyxLQUFLLENBQ1YsOEJBQThCLFFBQVEsQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUN2RSxDQUFDO1lBQ0YsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBZSxDQUFDO1FBQ25ELE9BQU87WUFDTCxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUk7U0FDcEIsQ0FBQztJQUNKLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsK0RBQStEO1FBQy9ELElBQUksS0FBSyxZQUFZLEtBQUssSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFlBQVksRUFBRSxDQUFDO1lBQzFELE1BQU0sQ0FBQyxLQUFLLENBQ1Ysd0VBQXdFLENBQ3pFLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sQ0FBQyxLQUFLLENBQUMsNkJBQTZCLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDckQsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxxQkFBcUIsQ0FDbkMsUUFBZ0IsRUFDaEIsV0FBbUIsRUFDbkIsUUFBZ0IsRUFDaEIsRUFBVyxFQUNYLFdBQVcsR0FBRyxZQUFZO0lBRTFCLE1BQU0sSUFBSSxHQUFHLHNCQUFzQixRQUFRLElBQUksV0FBVyxZQUFZLENBQUM7SUFDdkUsTUFBTSxHQUFHLEdBQUcsZUFBZSxXQUFXLEVBQUUsQ0FBQztJQUV6QyxzQ0FBc0M7SUFDdEMsSUFBSSxRQUFRLEtBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQzdCLE9BQU8sR0FBRyxJQUFJLFNBQVMsRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFDRCxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ1AsT0FBTyxHQUFHLElBQUksSUFBSSxRQUFRLE1BQU0sRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFDRCxPQUFPLEdBQUcsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQzFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2hhbGsgZnJvbSAnY2hhbGsnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vY29uZmlnL2xvZy5qcyc7XG5cbmludGVyZmFjZSBWZXJjZWxUZWFtIHtcbiAgaWQ6IHN0cmluZztcbiAgc2x1Zzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEZldGNoIHRlYW0gaW5mb3JtYXRpb24gZnJvbSBWZXJjZWwgQVBJXG4gKiBUaW1lb3V0OiA1IHNlY29uZHMgLSBmYWxscyBiYWNrIHRvIGxvY2FsIFVJIGlmIHRoZSByZXF1ZXN0IGZhaWxzIG9yIHRpbWVzIG91dFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hUZWFtSW5mbyhcbiAgdGVhbUlkOiBzdHJpbmcsXG4gIGF1dGhUb2tlbjogc3RyaW5nXG4pOiBQcm9taXNlPHsgdGVhbVNsdWc6IHN0cmluZyB9IHwgbnVsbD4ge1xuICB0cnkge1xuICAgIC8vIENyZWF0ZSBhbiBBYm9ydENvbnRyb2xsZXIgd2l0aCBhIDUgc2Vjb25kIHRpbWVvdXRcbiAgICBjb25zdCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIGNvbnN0IHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4gY29udHJvbGxlci5hYm9ydCgpLCA1MDAwKTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYGh0dHBzOi8vYXBpLnZlcmNlbC5jb20vdjIvdGVhbXMvJHt0ZWFtSWR9YCwge1xuICAgICAgaGVhZGVyczoge1xuICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7YXV0aFRva2VufWAsXG4gICAgICB9LFxuICAgICAgc2lnbmFsOiBjb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcblxuICAgIC8vIENsZWFyIHRoZSB0aW1lb3V0IGlmIHRoZSByZXF1ZXN0IGNvbXBsZXRlcyBzdWNjZXNzZnVsbHlcbiAgICBjbGVhclRpbWVvdXQodGltZW91dElkKTtcblxuICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDQwMSB8fCByZXNwb25zZS5zdGF0dXMgPT09IDQwMykge1xuICAgICAgbG9nZ2VyLmVycm9yKFxuICAgICAgICBjaGFsay5yZWQoXG4gICAgICAgICAgYEF1dGhlbnRpY2F0aW9uIGZhaWxlZCAoJHtyZXNwb25zZS5zdGF0dXN9KTogVW5hYmxlIHRvIGFjY2VzcyB0ZWFtIGluZm9ybWF0aW9uYFxuICAgICAgICApXG4gICAgICApO1xuICAgICAgbG9nZ2VyLndhcm4oXG4gICAgICAgIGNoYWxrLnllbGxvdyhcbiAgICAgICAgICAnXFxuUGxlYXNlIGVuc3VyZSB5b3UgYXJlIGxvZ2dlZCBpbiBhbmQgaGF2ZSBhY2Nlc3MgdG8gdGhlIHRlYW06J1xuICAgICAgICApXG4gICAgICApO1xuICAgICAgbG9nZ2VyLndhcm4oY2hhbGsueWVsbG93KCcgIFJ1biBgdmVyY2VsIGxvZ2luYCB0byBhdXRoZW50aWNhdGUnKSk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICBsb2dnZXIuZGVidWcoXG4gICAgICAgIGBGYWlsZWQgdG8gZmV0Y2ggdGVhbSBpbmZvOiAke3Jlc3BvbnNlLnN0YXR1c30gJHtyZXNwb25zZS5zdGF0dXNUZXh0fWBcbiAgICAgICk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCB0ZWFtID0gKGF3YWl0IHJlc3BvbnNlLmpzb24oKSkgYXMgVmVyY2VsVGVhbTtcbiAgICByZXR1cm4ge1xuICAgICAgdGVhbVNsdWc6IHRlYW0uc2x1ZyxcbiAgICB9O1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIC8vIEhhbmRsZSBib3RoIHRpbWVvdXQgYW5kIG90aGVyIGVycm9ycyAtIGZhbGwgYmFjayB0byBsb2NhbCBVSVxuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yICYmIGVycm9yLm5hbWUgPT09ICdBYm9ydEVycm9yJykge1xuICAgICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgICAnVmVyY2VsIEFQSSByZXF1ZXN0IHRpbWVkIG91dCBhZnRlciA1IHNlY29uZHMsIGZhbGxpbmcgYmFjayB0byBsb2NhbCBVSSdcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhgRXJyb3IgZmV0Y2hpbmcgdGVhbSBpbmZvOiAke2Vycm9yfWApO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG4vKipcbiAqIEdldCB0aGUgVmVyY2VsIGRhc2hib2FyZCBVUkwgZm9yIHdvcmtmbG93cy5cbiAqXG4gKiBGb3JtYXQ6IGh0dHBzOi8vdmVyY2VsLmNvbS88dGVhbVNsdWc+Lzxwcm9qZWN0U2x1Zz4vd29ya2Zsb3dzL3J1bnMvPHJ1bklkPj9lbnZpcm9ubWVudD08ZW52PlxuICogKHRoZSBvbGRlciBgL29ic2VydmFiaWxpdHkvd29ya2Zsb3dzYCByb3V0ZSBpcyBubyBsb25nZXIgdXNlZCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRWZXJjZWxEYXNoYm9hcmRVcmwoXG4gIHRlYW1TbHVnOiBzdHJpbmcsXG4gIHByb2plY3ROYW1lOiBzdHJpbmcsXG4gIHJlc291cmNlOiBzdHJpbmcsXG4gIGlkPzogc3RyaW5nLFxuICBlbnZpcm9ubWVudCA9ICdwcm9kdWN0aW9uJ1xuKTogc3RyaW5nIHtcbiAgY29uc3QgYmFzZSA9IGBodHRwczovL3ZlcmNlbC5jb20vJHt0ZWFtU2x1Z30vJHtwcm9qZWN0TmFtZX0vd29ya2Zsb3dzYDtcbiAgY29uc3QgZW52ID0gYGVudmlyb25tZW50PSR7ZW52aXJvbm1lbnR9YDtcblxuICAvLyBBZGQgcmVzb3VyY2Utc3BlY2lmaWMgcGF0aCBzZWdtZW50c1xuICBpZiAocmVzb3VyY2UgPT09ICdydW4nICYmIGlkKSB7XG4gICAgcmV0dXJuIGAke2Jhc2V9L3J1bnMvJHtpZH0/JHtlbnZ9YDtcbiAgfVxuICBpZiAoaWQpIHtcbiAgICByZXR1cm4gYCR7YmFzZX0/JHtyZXNvdXJjZX1JZD0ke2lkfSYke2Vudn1gO1xuICB9XG4gIHJldHVybiBgJHtiYXNlfT8ke2Vudn1gO1xufVxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vercel-api.test.d.ts","sourceRoot":"","sources":["../../../src/lib/inspect/vercel-api.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { getVercelDashboardUrl } from './vercel-api.js';
|
|
3
|
+
describe('getVercelDashboardUrl', () => {
|
|
4
|
+
it('builds a run deep link with the default (production) environment', () => {
|
|
5
|
+
expect(getVercelDashboardUrl('my-team', 'my-project', 'run', 'wrun_123')).toBe('https://vercel.com/my-team/my-project/workflows/runs/wrun_123?environment=production');
|
|
6
|
+
});
|
|
7
|
+
it('respects the preview environment', () => {
|
|
8
|
+
expect(getVercelDashboardUrl('my-team', 'my-project', 'run', 'wrun_123', 'preview')).toBe('https://vercel.com/my-team/my-project/workflows/runs/wrun_123?environment=preview');
|
|
9
|
+
});
|
|
10
|
+
it('never emits the legacy /observability segment', () => {
|
|
11
|
+
const url = getVercelDashboardUrl('my-team', 'my-project', 'run', 'wrun_123', 'preview');
|
|
12
|
+
expect(url).not.toContain('/observability');
|
|
13
|
+
});
|
|
14
|
+
it('builds an overview link when no id is provided', () => {
|
|
15
|
+
expect(getVercelDashboardUrl('my-team', 'my-project', 'run')).toBe('https://vercel.com/my-team/my-project/workflows?environment=production');
|
|
16
|
+
});
|
|
17
|
+
it('builds a resource-query link for non-run resources', () => {
|
|
18
|
+
expect(getVercelDashboardUrl('my-team', 'my-project', 'step', 'step_456', 'preview')).toBe('https://vercel.com/my-team/my-project/workflows?stepId=step_456&environment=preview');
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyY2VsLWFwaS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9pbnNwZWN0L3ZlcmNlbC1hcGkudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDOUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFeEQsUUFBUSxDQUFDLHVCQUF1QixFQUFFLEdBQUcsRUFBRTtJQUNyQyxFQUFFLENBQUMsa0VBQWtFLEVBQUUsR0FBRyxFQUFFO1FBQzFFLE1BQU0sQ0FDSixxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FDbEUsQ0FBQyxJQUFJLENBQ0osc0ZBQXNGLENBQ3ZGLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxrQ0FBa0MsRUFBRSxHQUFHLEVBQUU7UUFDMUMsTUFBTSxDQUNKLHFCQUFxQixDQUNuQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxVQUFVLEVBQ1YsU0FBUyxDQUNWLENBQ0YsQ0FBQyxJQUFJLENBQ0osbUZBQW1GLENBQ3BGLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQywrQ0FBK0MsRUFBRSxHQUFHLEVBQUU7UUFDdkQsTUFBTSxHQUFHLEdBQUcscUJBQXFCLENBQy9CLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLFVBQVUsRUFDVixTQUFTLENBQ1YsQ0FBQztRQUNGLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDOUMsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsZ0RBQWdELEVBQUUsR0FBRyxFQUFFO1FBQ3hELE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNoRSx3RUFBd0UsQ0FDekUsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLG9EQUFvRCxFQUFFLEdBQUcsRUFBRTtRQUM1RCxNQUFNLENBQ0oscUJBQXFCLENBQ25CLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLFVBQVUsRUFDVixTQUFTLENBQ1YsQ0FDRixDQUFDLElBQUksQ0FDSixxRkFBcUYsQ0FDdEYsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZXNjcmliZSwgZXhwZWN0LCBpdCB9IGZyb20gJ3ZpdGVzdCc7XG5pbXBvcnQgeyBnZXRWZXJjZWxEYXNoYm9hcmRVcmwgfSBmcm9tICcuL3ZlcmNlbC1hcGkuanMnO1xuXG5kZXNjcmliZSgnZ2V0VmVyY2VsRGFzaGJvYXJkVXJsJywgKCkgPT4ge1xuICBpdCgnYnVpbGRzIGEgcnVuIGRlZXAgbGluayB3aXRoIHRoZSBkZWZhdWx0IChwcm9kdWN0aW9uKSBlbnZpcm9ubWVudCcsICgpID0+IHtcbiAgICBleHBlY3QoXG4gICAgICBnZXRWZXJjZWxEYXNoYm9hcmRVcmwoJ215LXRlYW0nLCAnbXktcHJvamVjdCcsICdydW4nLCAnd3J1bl8xMjMnKVxuICAgICkudG9CZShcbiAgICAgICdodHRwczovL3ZlcmNlbC5jb20vbXktdGVhbS9teS1wcm9qZWN0L3dvcmtmbG93cy9ydW5zL3dydW5fMTIzP2Vudmlyb25tZW50PXByb2R1Y3Rpb24nXG4gICAgKTtcbiAgfSk7XG5cbiAgaXQoJ3Jlc3BlY3RzIHRoZSBwcmV2aWV3IGVudmlyb25tZW50JywgKCkgPT4ge1xuICAgIGV4cGVjdChcbiAgICAgIGdldFZlcmNlbERhc2hib2FyZFVybChcbiAgICAgICAgJ215LXRlYW0nLFxuICAgICAgICAnbXktcHJvamVjdCcsXG4gICAgICAgICdydW4nLFxuICAgICAgICAnd3J1bl8xMjMnLFxuICAgICAgICAncHJldmlldydcbiAgICAgIClcbiAgICApLnRvQmUoXG4gICAgICAnaHR0cHM6Ly92ZXJjZWwuY29tL215LXRlYW0vbXktcHJvamVjdC93b3JrZmxvd3MvcnVucy93cnVuXzEyMz9lbnZpcm9ubWVudD1wcmV2aWV3J1xuICAgICk7XG4gIH0pO1xuXG4gIGl0KCduZXZlciBlbWl0cyB0aGUgbGVnYWN5IC9vYnNlcnZhYmlsaXR5IHNlZ21lbnQnLCAoKSA9PiB7XG4gICAgY29uc3QgdXJsID0gZ2V0VmVyY2VsRGFzaGJvYXJkVXJsKFxuICAgICAgJ215LXRlYW0nLFxuICAgICAgJ215LXByb2plY3QnLFxuICAgICAgJ3J1bicsXG4gICAgICAnd3J1bl8xMjMnLFxuICAgICAgJ3ByZXZpZXcnXG4gICAgKTtcbiAgICBleHBlY3QodXJsKS5ub3QudG9Db250YWluKCcvb2JzZXJ2YWJpbGl0eScpO1xuICB9KTtcblxuICBpdCgnYnVpbGRzIGFuIG92ZXJ2aWV3IGxpbmsgd2hlbiBubyBpZCBpcyBwcm92aWRlZCcsICgpID0+IHtcbiAgICBleHBlY3QoZ2V0VmVyY2VsRGFzaGJvYXJkVXJsKCdteS10ZWFtJywgJ215LXByb2plY3QnLCAncnVuJykpLnRvQmUoXG4gICAgICAnaHR0cHM6Ly92ZXJjZWwuY29tL215LXRlYW0vbXktcHJvamVjdC93b3JrZmxvd3M/ZW52aXJvbm1lbnQ9cHJvZHVjdGlvbidcbiAgICApO1xuICB9KTtcblxuICBpdCgnYnVpbGRzIGEgcmVzb3VyY2UtcXVlcnkgbGluayBmb3Igbm9uLXJ1biByZXNvdXJjZXMnLCAoKSA9PiB7XG4gICAgZXhwZWN0KFxuICAgICAgZ2V0VmVyY2VsRGFzaGJvYXJkVXJsKFxuICAgICAgICAnbXktdGVhbScsXG4gICAgICAgICdteS1wcm9qZWN0JyxcbiAgICAgICAgJ3N0ZXAnLFxuICAgICAgICAnc3RlcF80NTYnLFxuICAgICAgICAncHJldmlldydcbiAgICAgIClcbiAgICApLnRvQmUoXG4gICAgICAnaHR0cHM6Ly92ZXJjZWwuY29tL215LXRlYW0vbXktcHJvamVjdC93b3JrZmxvd3M/c3RlcElkPXN0ZXBfNDU2JmVudmlyb25tZW50PXByZXZpZXcnXG4gICAgKTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -272,4 +272,4 @@ export async function getRepoLink(cwd) {
|
|
|
272
272
|
return undefined;
|
|
273
273
|
}
|
|
274
274
|
}
|
|
275
|
-
//# sourceMappingURL=vercel-link.js.map
|
|
275
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyY2VsLWxpbmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luc3BlY3QvdmVyY2VsLWxpbmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDdkMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDbEMsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM3RCxPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFDN0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFMUMsTUFBTSxJQUFJLEdBQUcsT0FBTyxFQUFFLENBQUM7QUFnRHZCLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQztBQUNwQyxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLENBQUM7QUFDMUMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsY0FBYyxDQUFDO0FBQ2pELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxXQUFXLENBQUM7QUFFM0MsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRTtJQUNsQyxJQUFJLENBQUM7UUFDSCxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBQUMsT0FBTyxH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QUNuRSxNQUFNLENBQUMsS0FBSyxDQUFDLDBDQUEwQyxjQUFjLEdBQUcsQ0FBQyxDQUFDO0lBQzFFLElBQUksQ0FBQztRQUNILE1BQU0sSUFBSSxHQUFHLE1BQU0sUUFBUSxDQUFDLGNBQWMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNwRCxNQUFNLFVBQVUsR0FBdUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4RCxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsQ0FBQztJQUNsRCxDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLE1BQU0sQ0FBQyxLQUFLLENBQUMsbUJBQW1CLGNBQWMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzFELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlzIGZpbGUgd2FzIGNvcGllZCBmcm9tIEB2ZXJjZWwvdmVyY2VsL3BhY2thZ2VzL2NsaS9zcmMvdXRpbC9wcm9qZWN0cy9saW5rLnRzXG4gKiBhbmQgYWRhcHRlZCB0byB3b3JrIHdpdGhvdXQgaW1wb3J0aW5nIG1vc3Qgb2YgdGhlIHZlcmNlbCBDTEkgY29kZS5cbiAqXG4gKiBJdCBzdHJpcHM6XG4gKiAtIE5ldHdvcmsgcmVxdWVzdHMgZm9yIHZhbGlkYXRpbmcgd2hldGhlciB0aGUgb3JnL3VzZXIvdGVhbS9wcm9qZWN0IGV4aXN0c1xuICogLSBTb21lIHZlcmNlbC1zcGVjaWZpYyBlbnZpcm9ubWVudCB2YXJpYWJsZSBjaGVja3MgYW5kIGluZmVyZW5jZVxuICogICB0aGF0IHdlJ3JlIG5vdCBzdXBwb3J0aW5nIGZvciBXb3JrZmxvdyBDTEkgZm9yIG5vd1xuICovXG5cbmltcG9ydCB7IGV4ZWNTeW5jIH0gZnJvbSAnbm9kZTpjaGlsZF9wcm9jZXNzJztcbmltcG9ydCBmcywgeyBzdGF0U3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHsgbHN0YXQgfSBmcm9tICdub2RlOmZzL3Byb21pc2VzJztcbmltcG9ydCB7IGhvbWVkaXIgfSBmcm9tICdub2RlOm9zJztcbmltcG9ydCB7IGpvaW4sIG5vcm1hbGl6ZSwgcG9zaXgsIHJlbGF0aXZlIH0gZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB1dGlsIGZyb20gJ25vZGU6dXRpbCc7XG5pbXBvcnQgeyBwcm9taXNpZnkgfSBmcm9tICd1dGlsJztcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4uL2NvbmZpZy9sb2cuanMnO1xuXG5jb25zdCBob21lID0gaG9tZWRpcigpO1xuXG5pbnRlcmZhY2UgUmVwb1Byb2plY3RDb25maWcge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGRpcmVjdG9yeTogc3RyaW5nO1xuICAvKiogUGVyLXByb2plY3Qgb3JnSWQg4oCUIGFkZGVkIGluIHZlcmNlbC92ZXJjZWwjMTQ5NjcuIFByZWZlciB0aGlzIG92ZXIgcm9vdC1sZXZlbCBvcmdJZC4gKi9cbiAgb3JnSWQ/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBSZXBvUHJvamVjdHNDb25maWcge1xuICAvKiogTGVnYWN5IHJvb3QtbGV2ZWwgb3JnSWQg4oCUIG9sZGVyIFZlcmNlbCBDTEkgdmVyc2lvbnMgcHV0IG9yZ0lkIGhlcmUuICovXG4gIG9yZ0lkPzogc3RyaW5nO1xuICByZW1vdGVOYW1lOiBzdHJpbmc7XG4gIHByb2plY3RzOiBSZXBvUHJvamVjdENvbmZpZ1tdO1xufVxuXG5pbnRlcmZhY2UgUmVwb0xpbmsge1xuICByb290UGF0aDogc3RyaW5nO1xuICByZXBvQ29uZmlnUGF0aDogc3RyaW5nO1xuICByZXBvQ29uZmlnPzogUmVwb1Byb2plY3RzQ29uZmlnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2plY3RMaW5rIHtcbiAgLyoqXG4gICAqIElEIG9mIHRoZSBWZXJjZWwgUHJvamVjdC5cbiAgICovXG4gIHByb2plY3RJZDogc3RyaW5nO1xuICAvKipcbiAgICogVXNlciBvciBUZWFtIElEIG9mIHRoZSBvd25lciBvZiB0aGUgVmVyY2VsIFByb2plY3QuXG4gICAqL1xuICBvcmdJZDogc3RyaW5nO1xuICAvKipcbiAgICogV2hlbiBsaW5rZWQgYXMgYSByZXBvc2l0b3J5LCBjb250YWlucyB0aGUgYWJzb2x1dGUgcGF0aFxuICAgKiB0byB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhlIHJlcG9zaXRvcnkuXG4gICAqL1xuICByZXBvUm9vdD86IHN0cmluZztcbiAgLyoqXG4gICAqIFdoZW4gbGlua2VkIGFzIGEgcmVwb3NpdG9yeSwgY29udGFpbnMgdGhlIHJlbGF0aXZlIHBhdGhcbiAgICogdG8gdGhlIHNlbGVjdGVkIHByb2plY3Qgcm9vdCBkaXJlY3RvcnkuXG4gICAqL1xuICBwcm9qZWN0Um9vdERpcmVjdG9yeT86IHN0cmluZztcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIFZlcmNlbCBQcm9qZWN0LlxuICAgKi9cbiAgcHJvamVjdE5hbWU/OiBzdHJpbmc7XG59XG5cbmNvbnN0IHJlYWRGaWxlID0gcHJvbWlzaWZ5KGZzLnJlYWRGaWxlKTtcblxuZXhwb3J0IGNvbnN0IFZFUkNFTF9ESVIgPSAnLnZlcmNlbCc7XG5leHBvcnQgY29uc3QgVkVSQ0VMX0RJUl9GQUxMQkFDSyA9ICcubm93JztcbmV4cG9ydCBjb25zdCBWRVJDRUxfRElSX1BST0pFQ1QgPSAncHJvamVjdC5qc29uJztcbmV4cG9ydCBjb25zdCBWRVJDRUxfRElSX1JFUE8gPSAncmVwby5qc29uJztcblxuY29uc3QgaXNEaXJlY3RvcnkgPSAoZGlyOiBzdHJpbmcpID0+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gc3RhdFN5bmMoZGlyKS5pc0RpcmVjdG9yeSgpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBsb2dnZXIuZGVidWcoYCR7ZGlyfSBpcyBub3QgYSBkaXJlY3Rvcnk6ICR7ZXJyfWApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufTtcblxuLyoqXG4gKiBBIHR5cGUgZ3VhcmQgZm9yIGB0cnkuLi5jYXRjaGAgZXJyb3JzLlxuICogQGRlcHJlY2F0ZWQgdXNlIGByZXF1aXJlKCdub2RlOnV0aWwnKS50eXBlcy5pc05hdGl2ZUVycm9yKGVycm9yKWAgaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgaXNFcnJvciA9IChlcnJvcjogdW5rbm93bik6IGVycm9yIGlzIEVycm9yID0+IHtcbiAgcmV0dXJuIHV0aWwudHlwZXMuaXNOYXRpdmVFcnJvcihlcnJvcik7XG59O1xuXG5leHBvcnQgY29uc3QgaXNFcnJub0V4Y2VwdGlvbiA9IChcbiAgZXJyb3I6IHVua25vd25cbik6IGVycm9yIGlzIE5vZGVKUy5FcnJub0V4Y2VwdGlvbiA9PiB7XG4gIHJldHVybiBpc0Vycm9yKGVycm9yKSAmJiAnY29kZScgaW4gZXJyb3I7XG59O1xuXG5leHBvcnQgY29uc3QgaXNPbmVPZkVyck5vRXhjZXB0aW9ucyA9IChlcnJvcjogdW5rbm93biwgY29kZXM6IHN0cmluZ1tdKSA9PiB7XG4gIHJldHVybiAoXG4gICAgaXNFcnJub0V4Y2VwdGlvbihlcnJvcikgJiZcbiAgICAnY29kZScgaW4gZXJyb3IgJiZcbiAgICBlcnJvci5jb2RlICYmXG4gICAgY29kZXMuaW5jbHVkZXMoZXJyb3IuY29kZSlcbiAgKTtcbn07XG5cbi8qKlxuICogUmV0dXJucyB0aGUgYDxjd2Q+Ly52ZXJjZWxgIGRpcmVjdG9yeSBmb3IgdGhlIGN1cnJlbnQgcHJvamVjdFxuICogd2l0aCBhIGZhbGxiYWNrIHRvIDxjd2Q+Ly5ub3dgIGlmIGl0IGV4aXN0cy5cbiAqXG4gKiBUaHJvd3MgYW4gZXJyb3IgaWYgKmJvdGgqIGAudmVyY2VsYCBhbmQgYC5ub3dgIGRpcmVjdG9yaWVzIGV4aXN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmVyY2VsRGlyZWN0b3J5KGN3ZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgbG9nZ2VyLmRlYnVnKGBHZXR0aW5nIHZlcmNlbCBkaXJlY3RvcnkgZm9yICR7Y3dkfWApO1xuICBjb25zdCBwb3NzaWJsZURpcnMgPSBbam9pbihjd2QsIFZFUkNFTF9ESVIpLCBqb2luKGN3ZCwgVkVSQ0VMX0RJUl9GQUxMQkFDSyldO1xuICBsb2dnZXIuZGVidWcoYFBvc3NpYmxlIHZlcmNlbCBkaXJlY3RvcmllczogJHtwb3NzaWJsZURpcnMuam9pbignLCAnKX1gKTtcbiAgY29uc3QgZXhpc3RpbmdEaXJzID0gcG9zc2libGVEaXJzLmZpbHRlcigoZCkgPT4gaXNEaXJlY3RvcnkoZCkpO1xuICBpZiAoZXhpc3RpbmdEaXJzLmxlbmd0aCA+IDEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQ09ORkxJQ1RJTkdfQ09ORklHX0RJUkVDVE9SSUVTOiBCb3RoIGAudmVyY2VsYCBhbmQgYC5ub3dgIGRpcmVjdG9yaWVzIGV4aXN0LiBQbGVhc2UgcmVtb3ZlIHRoZSBgLm5vd2AgZGlyZWN0b3J5LidcbiAgICApO1xuICB9XG4gIHJldHVybiBleGlzdGluZ0RpcnNbMF0gfHwgcG9zc2libGVEaXJzWzBdO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0UHJvamVjdExpbmsoXG4gIHBhdGg6IHN0cmluZ1xuKTogUHJvbWlzZTxQcm9qZWN0TGluayB8IG51bGw+IHtcbiAgcmV0dXJuIChcbiAgICAoYXdhaXQgZ2V0UHJvamVjdExpbmtGcm9tUmVwb0xpbmsocGF0aCkpIHx8XG4gICAgKGF3YWl0IGdldExpbmtGcm9tRGlyKGdldFZlcmNlbERpcmVjdG9yeShwYXRoKSkpXG4gICk7XG59XG5cbi8qKlxuICogQ29udmVydCBXaW5kb3dzIHNlcGFyYXRvcnMgdG8gVW5peCBzZXBhcmF0b3JzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplT3NQYXRoKHA6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGlzV2luID0gcHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ3dpbjMyJztcbiAgcmV0dXJuIGlzV2luID8gcC5yZXBsYWNlKC9cXFxcL2csICcvJykgOiBwO1xufVxuXG5mdW5jdGlvbiBzb3J0QnlEaXJlY3RvcnkoXG4gIGE6IHsgZGlyZWN0b3J5OiBzdHJpbmcgfSxcbiAgYjogeyBkaXJlY3Rvcnk6IHN0cmluZyB9XG4pOiBudW1iZXIge1xuICBjb25zdCBhUGFydHMgPSBhLmRpcmVjdG9yeS5zcGxpdCgnLycpO1xuICBjb25zdCBiUGFydHMgPSBiLmRpcmVjdG9yeS5zcGxpdCgnLycpO1xuICByZXR1cm4gYlBhcnRzLmxlbmd0aCAtIGFQYXJ0cy5sZW5ndGg7XG59XG5cbi8qKlxuICogRmluZHMgdGhlIG1hdGNoaW5nIFByb2plY3RzIGZyb20gYW4gYXJyYXkgb2YgUHJvamVjdCBsaW5rc1xuICogd2hlcmUgdGhlIHByb3ZpZGVkIHJlbGF0aXZlIHBhdGggaXMgd2l0aGluIHRoZSBQcm9qZWN0J3NcbiAqIHJvb3QgZGlyZWN0b3J5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZFByb2plY3RzRnJvbVBhdGgoXG4gIHByb2plY3RzOiBSZXBvUHJvamVjdENvbmZpZ1tdLFxuICBwYXRoOiBzdHJpbmdcbik6IFJlcG9Qcm9qZWN0Q29uZmlnW10ge1xuICBsb2dnZXIuZGVidWcoXG4gICAgYEZpbmRpbmcgcHJvamVjdHMgJHtKU09OLnN0cmluZ2lmeShwcm9qZWN0cyl9IGZyb20gcGF0aCAke3BhdGh9YFxuICApO1xuICBjb25zdCBub3JtYWxpemVkUGF0aCA9IG5vcm1hbGl6ZU9zUGF0aChwYXRoKTtcbiAgY29uc3QgbWF0Y2hlcyA9IHByb2plY3RzXG4gICAgLnNsaWNlKClcbiAgICAuc29ydChzb3J0QnlEaXJlY3RvcnkpXG4gICAgLmZpbHRlcigocHJvamVjdCkgPT4ge1xuICAgICAgaWYgKHByb2plY3QuZGlyZWN0b3J5ID09PSAnLicpIHtcbiAgICAgICAgLy8gUHJvamVjdCBoYXMgbm8gXCJSb290IERpcmVjdG9yeVwiIHNldHRpbmcsIHNvIGFueSBwYXRoIGlzIHZhbGlkXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIChcbiAgICAgICAgbm9ybWFsaXplZFBhdGggPT09IHByb2plY3QuZGlyZWN0b3J5IHx8XG4gICAgICAgIG5vcm1hbGl6ZWRQYXRoLnN0YXJ0c1dpdGgoYCR7cHJvamVjdC5kaXJlY3Rvcnl9L2ApXG4gICAgICApO1xuICAgIH0pO1xuICAvLyBJZiB0aGVyZSBhcmUgbXVsdGlwbGUgbWF0Y2hlcywgd2Ugb25seSB3YW50IHRoZSBtb3N0IHJlbGV2YW50XG4gIC8vIHNlbGVjdGlvbnMgKHdpdGggdGhlIGRlZXBlc3QgZGlyZWN0b3J5IGRlcHRoKSwgc28gcGljayB0aGUgZmlyc3RcbiAgLy8gb25lIGFuZCBmaWx0ZXIgb24gdGhvc2UgbWF0Y2hlcy5cbiAgY29uc3QgZmlyc3RNYXRjaCA9IG1hdGNoZXNbMF07XG4gIHJldHVybiBtYXRjaGVzLmZpbHRlcigobWF0Y2gpID0+IG1hdGNoLmRpcmVjdG9yeSA9PT0gZmlyc3RNYXRjaC5kaXJlY3RvcnkpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRQcm9qZWN0TGlua0Zyb21SZXBvTGluayhcbiAgcGF0aDogc3RyaW5nXG4pOiBQcm9taXNlPFByb2plY3RMaW5rIHwgbnVsbD4ge1xuICBjb25zdCByZXBvTGluayA9IGF3YWl0IGdldFJlcG9MaW5rKHBhdGgpO1xuICBpZiAoIXJlcG9MaW5rPy5yZXBvQ29uZmlnKSB7XG4gICAgbG9nZ2VyLmRlYnVnKCdObyByZXBvIGxpbmsgZm91bmQnKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBsb2dnZXIuZGVidWcoJ1JlcG8gbGluaycsIEpTT04uc3RyaW5naWZ5KHJlcG9MaW5rKSk7XG4gIGNvbnN0IHByb2plY3RzID0gZmluZFByb2plY3RzRnJvbVBhdGgoXG4gICAgcmVwb0xpbmsucmVwb0NvbmZpZy5wcm9qZWN0cyxcbiAgICByZWxhdGl2ZShyZXBvTGluay5yb290UGF0aCwgcGF0aClcbiAgKTtcbiAgbG9nZ2VyLmRlYnVnKGBGb3VuZCBtYXRjaGluZyByZXBvIHByb2plY3RzOiAke0pTT04uc3RyaW5naWZ5KHByb2plY3RzKX1gKTtcbiAgaWYgKHByb2plY3RzLmxlbmd0aCA9PT0gMSkge1xuICAgIGNvbnN0IHByb2plY3QgPSBwcm9qZWN0c1swXTtcbiAgICAvLyBQcmVmZXIgcGVyLXByb2plY3Qgb3JnSWQgKHZlcmNlbC92ZXJjZWwjMTQ5NjcpLCBmYWxsIGJhY2sgdG9cbiAgICAvLyByb290LWxldmVsIG9yZ0lkIGZvciBvbGRlciBWZXJjZWwgQ0xJIHZlcnNpb25zLlxuICAgIGNvbnN0IG9yZ0lkID0gcHJvamVjdC5vcmdJZCA/PyByZXBvTGluay5yZXBvQ29uZmlnPy5vcmdJZDtcbiAgICBpZiAoIW9yZ0lkKSB7XG4gICAgICBsb2dnZXIuZGVidWcoJ05vIG9yZ0lkIGZvdW5kIGluIHJlcG8gbGluayBwcm9qZWN0IG9yIHJvb3QgY29uZmlnJyk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlcG9Sb290OiByZXBvTGluay5yb290UGF0aCxcbiAgICAgIG9yZ0lkLFxuICAgICAgcHJvamVjdElkOiBwcm9qZWN0LmlkLFxuICAgICAgcHJvamVjdE5hbWU6IHByb2plY3QubmFtZSxcbiAgICAgIHByb2plY3RSb290RGlyZWN0b3J5OiBwcm9qZWN0LmRpcmVjdG9yeSxcbiAgICB9O1xuICB9IGVsc2UgaWYgKHByb2plY3RzLmxlbmd0aCA+IDEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ011bHRpcGxlIHByb2plY3RzIGZvdW5kJyk7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRMaW5rRnJvbURpcihcbiAgdmVyY2VsRGlyOiBzdHJpbmdcbik6IFByb21pc2U8UHJvamVjdExpbmsgfCBudWxsPiB7XG4gIGxvZ2dlci5kZWJ1ZyhgR2V0dGluZyBsaW5rIGZyb20gZGlyICR7dmVyY2VsRGlyfWApO1xuICB0cnkge1xuICAgIGNvbnN0IGpzb24gPSBhd2FpdCByZWFkRmlsZShqb2luKHZlcmNlbERpciwgVkVSQ0VMX0RJUl9QUk9KRUNUKSwgJ3V0ZjgnKTtcbiAgICBjb25zdCBsaW5rOiBQcm9qZWN0TGluayA9IEpTT04ucGFyc2UoanNvbik7XG5cbiAgICBpZiAoIWxpbmsgfHwgIWxpbmsucHJvamVjdElkIHx8ICFsaW5rLm9yZ0lkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBQcm9qZWN0IFNldHRpbmdzIGFyZSBpbnZhbGlkLiBUbyBsaW5rIHlvdXIgcHJvamVjdCBhZ2FpbiwgcmVtb3ZlIHRoZSAke3ZlcmNlbERpcn0gZGlyZWN0b3J5LmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxpbms7XG4gIH0gY2F0Y2ggKGVycjogdW5rbm93bikge1xuICAgIC8vIGxpbmsgZmlsZSBkb2VzIG5vdCBleGlzdHMsIHByb2plY3QgaXMgbm90IGxpbmtlZFxuICAgIGlmIChpc09uZU9mRXJyTm9FeGNlcHRpb25zKGVyciwgWydFTk9FTlQnLCAnRU5PVERJUiddKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLy8gbGluayBmaWxlIGNhbid0IGJlIHJlYWRcbiAgICBpZiAoaXNFcnJvcihlcnIpICYmIGVyci5uYW1lID09PSAnU3ludGF4RXJyb3InKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBQcm9qZWN0IFNldHRpbmdzIGNvdWxkIG5vdCBiZSByZXRyaWV2ZWQuIFRvIGxpbmsgeW91ciBwcm9qZWN0IGFnYWluLCByZW1vdmUgdGhlICR7dmVyY2VsRGlyfSBkaXJlY3RvcnkuYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aHJvdyBlcnI7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiB0cmF2ZXJzZVVwRGlyZWN0b3JpZXMoe1xuICBzdGFydCxcbiAgYmFzZSxcbiAgbWF4RGVwdGggPSAxMCxcbn06IHtcbiAgc3RhcnQ6IHN0cmluZztcbiAgYmFzZT86IHN0cmluZztcbiAgbWF4RGVwdGg/OiBudW1iZXI7XG59KSB7XG4gIGxldCBjdXJyZW50OiBzdHJpbmcgfCB1bmRlZmluZWQgPSBub3JtYWxpemUoc3RhcnQpO1xuICBjb25zdCBub3JtYWxpemVkUm9vdCA9IGJhc2UgPyBub3JtYWxpemUoYmFzZSkgOiB1bmRlZmluZWQ7XG4gIGxldCBkZXB0aCA9IDA7XG4gIHdoaWxlIChjdXJyZW50KSB7XG4gICAgeWllbGQgY3VycmVudDtcbiAgICBpZiAoY3VycmVudCA9PT0gbm9ybWFsaXplZFJvb3QpIGJyZWFrO1xuICAgIC8vIEdvIHVwIG9uZSBkaXJlY3RvcnlcbiAgICBjb25zdCBuZXh0ID0gam9pbihjdXJyZW50LCAnLi4nKTtcbiAgICBjdXJyZW50ID0gbmV4dCA9PT0gY3VycmVudCA/IHVuZGVmaW5lZCA6IG5leHQ7XG4gICAgZGVwdGgrKztcbiAgICBpZiAoZGVwdGggPiBtYXhEZXB0aCkge1xuICAgICAgbG9nZ2VyLmRlYnVnKGBNYXggdHJhdmVyc2FsIGRlcHRoIG9mICR7bWF4RGVwdGh9IHJlYWNoZWRgKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEdpdmVuIGEgYHN0YXJ0YCBkaXJlY3RvcnksIHRyYXZlcnNlcyB1cCB0aGUgZGlyZWN0b3J5IGhpZXJhcmNoeSB1bnRpbFxuICogdGhlIG5lYXJlc3QgYC5naXQvY29uZmlnYCBmaWxlIGlzIGZvdW5kLiBSZXR1cm5zIHRoZSBkaXJlY3Rvcnkgd2hlcmVcbiAqIHRoZSBHaXQgY29uZmlnIHdhcyBmb3VuZCwgb3IgYHVuZGVmaW5lZGAgd2hlbiBubyBHaXQgcmVwbyB3YXMgZm91bmQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmaW5kUmVwb1Jvb3QoXG4gIGN3ZDogc3RyaW5nLFxuICBzdGFydDogc3RyaW5nXG4pOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICBjb25zdCBSRVBPX0pTT05fUEFUSCA9IGpvaW4oVkVSQ0VMX0RJUiwgVkVSQ0VMX0RJUl9SRVBPKTtcbiAgLyoqXG4gICAqIElmIHRoZSBjdXJyZW50IHJlcG8gaXMgYSBnaXQgc3VibW9kdWxlIG9yIGdpdCB3b3JrdHJlZSAnLmdpdCcgaXMgYSBmaWxlXG4gICAqIHdpdGggYSBwb2ludGVyIHRvIHRoZSBcInBhcmVudFwiIGdpdCByZXBvc2l0b3J5IGluc3RlYWQgb2YgYSBkaXJlY3RvcnkuXG4gICAqL1xuICBjb25zdCBHSVRfUEFUSCA9IGlzR2l0V29ya3RyZWVPclN1Ym1vZHVsZShjd2QpXG4gICAgPyBwb3NpeC5ub3JtYWxpemUoJy5naXQnKVxuICAgIDogcG9zaXgubm9ybWFsaXplKCcuZ2l0L2NvbmZpZycpO1xuXG4gIGZvciAoY29uc3QgY3VycmVudCBvZiB0cmF2ZXJzZVVwRGlyZWN0b3JpZXMoeyBzdGFydCB9KSkge1xuICAgIGlmIChjdXJyZW50ID09PSBob21lKSB7XG4gICAgICAvLyBTb21ldGltZXMgdGhlICRIT01FIGRpcmVjdG9yeSBpcyBzZXQgdXAgYXMgYSBHaXQgcmVwb1xuICAgICAgLy8gKGZvciBkb3RmaWxlcywgZXRjLikuIEluIHRoaXMgY2FzZSBpdCdzIHNhZmUgdG8gc2F5IHRoYXRcbiAgICAgIC8vIHRoaXMgaXNuJ3QgdGhlIHJlcG8gd2UncmUgbG9va2luZyBmb3IuIEJhaWwuXG4gICAgICBsb2dnZXIuZGVidWcoJ0Fycml2ZWQgYXQgaG9tZSBkaXJlY3RvcnknKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIC8vIGlmIGAudmVyY2VsL3JlcG8uanNvbmAgZXhpc3RzIChhbHJlYWR5IGxpbmtlZCksXG4gICAgLy8gdGhlbiBjb25zaWRlciB0aGlzIHRoZSByZXBvIHJvb3RcbiAgICBjb25zdCByZXBvQ29uZmlnUGF0aCA9IGpvaW4oY3VycmVudCwgUkVQT19KU09OX1BBVEgpO1xuICAgIGxldCBzdGF0ID0gYXdhaXQgbHN0YXQocmVwb0NvbmZpZ1BhdGgpLmNhdGNoKChlcnIpID0+IHtcbiAgICAgIGlmIChlcnIuY29kZSAhPT0gJ0VOT0VOVCcpIHRocm93IGVycjtcbiAgICB9KTtcbiAgICBpZiAoc3RhdCkge1xuICAgICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgICBgRm91bmQgcmVwbyBjb25maWcgXCIke1JFUE9fSlNPTl9QQVRIfVwiIC0gZGV0ZWN0ZWQgXCIke2N1cnJlbnR9XCIgYXMgcmVwbyByb290YFxuICAgICAgKTtcbiAgICAgIHJldHVybiBjdXJyZW50O1xuICAgIH1cblxuICAgIC8vIGlmIGAuZ2l0L2NvbmZpZ2AgZXhpc3RzICh1bmxpbmtlZCksXG4gICAgLy8gdGhlbiBjb25zaWRlciB0aGlzIHRoZSByZXBvIHJvb3RcbiAgICBjb25zdCBnaXRDb25maWdQYXRoID0gam9pbihjdXJyZW50LCBHSVRfUEFUSCk7XG4gICAgc3RhdCA9IGF3YWl0IGxzdGF0KGdpdENvbmZpZ1BhdGgpLmNhdGNoKChlcnIpID0+IHtcbiAgICAgIGlmIChlcnIuY29kZSAhPT0gJ0VOT0VOVCcpIHRocm93IGVycjtcbiAgICB9KTtcbiAgICBpZiAoc3RhdCkge1xuICAgICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgICBgRm91bmQgZ2l0IGNvbmZpZyBcIiR7R0lUX1BBVEh9XCIgLSBkZXRlY3RlZCBcIiR7Y3VycmVudH1cIiBhcyByZXBvIHJvb3RgXG4gICAgICApO1xuICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgfVxuICB9XG5cbiAgbG9nZ2VyLmRlYnVnKCdBYm9ydGluZyBzZWFyY2ggZm9yIHJlcG8gcm9vdCcpO1xufVxuXG5mdW5jdGlvbiBnZXRHaXREaXJlY3RvcnkoY3dkOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgdHJ5IHtcbiAgICBjb25zdCBnaXRDb25maWdQYXRoID0gZXhlY1N5bmMoJ2dpdCByZXYtcGFyc2UgLS1naXQtZGlyJywge1xuICAgICAgY3dkLFxuICAgICAgZW5jb2Rpbmc6ICd1dGY4JyxcbiAgICAgIHN0ZGlvOiBbJ2lnbm9yZScsICdwaXBlJywgJ2lnbm9yZSddLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGdpdENvbmZpZ1BhdGg7XG4gIH0gY2F0Y2ggKGVycjogdW5rbm93bikge1xuICAgIGlmIChlcnIgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgbG9nZ2VyLmRlYnVnKGBGYWlsZWQgdG8gZ2V0IGdpdCBkaXJlY3Rvcnk6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0dpdFdvcmt0cmVlT3JTdWJtb2R1bGUoY3dkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgZ2l0RGlyID0gZ2V0R2l0RGlyZWN0b3J5KGN3ZCk7XG5cbiAgaWYgKGdpdERpciA9PT0gbnVsbCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGlzR2l0V29ya3RyZWUgPSBnaXREaXIuaW5jbHVkZXMoJy5naXQvd29ya3RyZWVzLycpO1xuICBjb25zdCBpc0dpdFN1Ym1vZHVsZSA9IGdpdERpci5pbmNsdWRlcygnLmdpdC9tb2R1bGVzLycpO1xuXG4gIHJldHVybiBpc0dpdFdvcmt0cmVlIHx8IGlzR2l0U3VibW9kdWxlO1xufVxuXG4vKipcbiAqIEdpdmVuIGEgZGlyZWN0b3J5IHBhdGggYGN3ZGAsIGZpbmRzIHRoZSByb290IG9mIHRoZSBHaXQgcmVwb3NpdG9yeVxuICogYW5kIHJldHVybnMgdGhlIHBhcnNlZCBgLnZlcmNlbC9yZXBvLmpzb25gIGZpbGUgaWYgdGhlIHJlcG9zaXRvcnlcbiAqIGhhcyBhbHJlYWR5IGJlZW4gbGlua2VkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0UmVwb0xpbmsoY3dkOiBzdHJpbmcpOiBQcm9taXNlPFJlcG9MaW5rIHwgdW5kZWZpbmVkPiB7XG4gIC8vIERldGVybWluZSB3aGVyZSB0aGUgcm9vdCBvZiB0aGUgcmVwbyBpc1xuICBsb2dnZXIuZGVidWcoYEdldHRpbmcgcmVwbyBsaW5rIGZvciAke2N3ZH1gKTtcbiAgY29uc3Qgcm9vdFBhdGggPSBhd2FpdCBmaW5kUmVwb1Jvb3QoY3dkLCAnLi8nKTtcbiAgaWYgKCFyb290UGF0aCkge1xuICAgIGxvZ2dlci5kZWJ1ZygnZ2V0UmVwb0xpbms6IE5vIHJlcG8gcm9vdCBmb3VuZCcpO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyBSZWFkIHRoZSBgcmVwby5qc29uYCwgaWYgdGhpcyByZXBvIGhhcyBhbHJlYWR5IGJlZW4gbGlua2VkXG4gIGNvbnN0IHJlcG9Db25maWdQYXRoID0gam9pbihyb290UGF0aCwgVkVSQ0VMX0RJUiwgVkVSQ0VMX0RJUl9SRVBPKTtcbiAgbG9nZ2VyLmRlYnVnKGBnZXRSZXBvTGluazogUmVhZGluZyByZXBvIGNvbmZpZyBwYXRoIFwiJHtyZXBvQ29uZmlnUGF0aH1cImApO1xuICB0cnkge1xuICAgIGNvbnN0IGZpbGUgPSBhd2FpdCByZWFkRmlsZShyZXBvQ29uZmlnUGF0aCwgJ3V0ZjgnKTtcbiAgICBjb25zdCByZXBvQ29uZmlnOiBSZXBvUHJvamVjdHNDb25maWcgPSBKU09OLnBhcnNlKGZpbGUpO1xuICAgIHJldHVybiB7IHJvb3RQYXRoLCByZXBvQ29uZmlnLCByZXBvQ29uZmlnUGF0aCB9O1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBsb2dnZXIuZGVidWcoYEZhaWxlZCB0byBwYXJzZSAke3JlcG9Db25maWdQYXRofTogJHtlcnJ9YCk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuIl19
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
export declare const getHostUrl: (webPort: number) => string;
|
|
2
|
+
/**
|
|
3
|
+
* Build a URL for opening the local web UI.
|
|
4
|
+
*
|
|
5
|
+
* The web UI reads world configuration from server-side environment variables.
|
|
6
|
+
* Query params are only used for deep-linking to specific resources (resource/id, runId, etc.)
|
|
7
|
+
*/
|
|
8
|
+
export declare function buildWebUIUrl(hostUrl: string, resource: string, id: string | undefined, flags: Record<string, any>): string;
|
|
2
9
|
/**
|
|
3
10
|
* Launch the web UI with the specified configuration.
|
|
4
11
|
* This starts the server (if not running), opens the browser, then keeps the server running.
|
|
@@ -7,4 +14,21 @@ export declare const getHostUrl: (webPort: number) => string;
|
|
|
7
14
|
* The web UI reads these from process.env on the server side, not from query params.
|
|
8
15
|
*/
|
|
9
16
|
export declare function launchWebUI(resource: string, id: string | undefined, flags: Record<string, any>, _cliVersion: string): Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* Build the deep-link URL for a resource without any side effects (no server,
|
|
19
|
+
* no browser). Picks the Vercel dashboard for a Vercel backend (unless
|
|
20
|
+
* `--localUi`), otherwise the local web UI deep link.
|
|
21
|
+
*
|
|
22
|
+
* Assumes env vars have already been resolved (e.g. via `setupCliWorld`).
|
|
23
|
+
*/
|
|
24
|
+
export declare function buildDeepLinkUrl(resource: string, id: string | undefined, flags: Record<string, any>): string;
|
|
25
|
+
/**
|
|
26
|
+
* Resolve and print a shareable deep-link URL to stdout, then return — without
|
|
27
|
+
* opening a browser or starting the local web server. Intended for scripting
|
|
28
|
+
* and agents that need the link rather than a rendered dashboard.
|
|
29
|
+
*
|
|
30
|
+
* Human-readable chatter (the startup box, info/debug logs) is routed to stderr
|
|
31
|
+
* so stdout contains only the URL (or `{ "url": "..." }` with `--json`).
|
|
32
|
+
*/
|
|
33
|
+
export declare function printDeepLink(resource: string, id: string | undefined, flags: Record<string, any>, version: string): Promise<void>;
|
|
10
34
|
//# sourceMappingURL=web.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../../src/lib/inspect/web.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../../src/lib/inspect/web.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,UAAU,GAAI,SAAS,MAAM,WAAkC,CAAC;AAsF7E;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,GAAG,SAAS,EACtB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACzB,MAAM,CAmBR;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,GAAG,SAAS,EACtB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CA4If;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,GAAG,SAAS,EACtB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACzB,MAAM,CAyBR;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,GAAG,SAAS,EACtB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAef"}
|
package/dist/lib/inspect/web.js
CHANGED
|
@@ -2,9 +2,54 @@ import chalk from 'chalk';
|
|
|
2
2
|
import open from 'open';
|
|
3
3
|
import { logger } from '../config/log.js';
|
|
4
4
|
import { getEnvVars } from './env.js';
|
|
5
|
+
import { setupCliWorld } from './setup.js';
|
|
5
6
|
import { getVercelDashboardUrl } from './vercel-api.js';
|
|
6
7
|
export const getHostUrl = (webPort) => `http://localhost:${webPort}`;
|
|
7
8
|
let httpServer = null;
|
|
9
|
+
/**
|
|
10
|
+
* Find embedded dashboards (e.g. a framework integration serving `/_workflow`)
|
|
11
|
+
* that are currently live for this project. Reads the best-effort registry and
|
|
12
|
+
* health-checks each entry, since stale entries are expected (a SIGKILL'd dev
|
|
13
|
+
* server can't clean up). Returns [] on any error — coordination is optional.
|
|
14
|
+
*/
|
|
15
|
+
async function findLiveEmbeddedDashboards() {
|
|
16
|
+
let entries;
|
|
17
|
+
try {
|
|
18
|
+
const { readDashboardRegistry } = await import('@workflow/web/registry');
|
|
19
|
+
entries = readDashboardRegistry();
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
return [];
|
|
23
|
+
}
|
|
24
|
+
const live = [];
|
|
25
|
+
for (const entry of entries) {
|
|
26
|
+
if (!entry?.url)
|
|
27
|
+
continue;
|
|
28
|
+
// Best-effort PID liveness check (same-host dev servers).
|
|
29
|
+
if (typeof entry.pid === 'number') {
|
|
30
|
+
try {
|
|
31
|
+
process.kill(entry.pid, 0);
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
continue; // process gone
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
try {
|
|
38
|
+
const res = await fetch(entry.url, {
|
|
39
|
+
method: 'HEAD',
|
|
40
|
+
redirect: 'manual',
|
|
41
|
+
signal: AbortSignal.timeout(1500),
|
|
42
|
+
});
|
|
43
|
+
// Any non-5xx response means something is serving that route.
|
|
44
|
+
if (res.status < 500)
|
|
45
|
+
live.push(entry);
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
// unreachable — treat as dead
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return live;
|
|
52
|
+
}
|
|
8
53
|
/**
|
|
9
54
|
* Check if a server is already listening on the given URL.
|
|
10
55
|
*/
|
|
@@ -43,7 +88,7 @@ async function startWebServer(webPort) {
|
|
|
43
88
|
* The web UI reads world configuration from server-side environment variables.
|
|
44
89
|
* Query params are only used for deep-linking to specific resources (resource/id, runId, etc.)
|
|
45
90
|
*/
|
|
46
|
-
function buildWebUIUrl(hostUrl, resource, id, flags) {
|
|
91
|
+
export function buildWebUIUrl(hostUrl, resource, id, flags) {
|
|
47
92
|
const params = new URLSearchParams();
|
|
48
93
|
// Deep-linking params
|
|
49
94
|
params.set('resource', resource);
|
|
@@ -83,7 +128,7 @@ export async function launchWebUI(resource, id, flags, _cliVersion) {
|
|
|
83
128
|
}
|
|
84
129
|
if (isVercelBackend && teamSlug && projectName && !useLocalUi) {
|
|
85
130
|
logger.debug(`Checking Vercel dashboard availability for team: ${teamSlug}, project: ${projectName}`);
|
|
86
|
-
const dashboardUrl = getVercelDashboardUrl(teamSlug, projectName, resource, id);
|
|
131
|
+
const dashboardUrl = getVercelDashboardUrl(teamSlug, projectName, resource, id, envVars.WORKFLOW_VERCEL_ENV || 'production');
|
|
87
132
|
if (disableBrowserOpen) {
|
|
88
133
|
logger.info(chalk.cyan(`Vercel dashboard URL: ${dashboardUrl}`));
|
|
89
134
|
logger.info(chalk.cyan('(Browser auto-open disabled)'));
|
|
@@ -100,6 +145,37 @@ export async function launchWebUI(resource, id, flags, _cliVersion) {
|
|
|
100
145
|
return;
|
|
101
146
|
}
|
|
102
147
|
}
|
|
148
|
+
// Defer to an already-running embedded dashboard (e.g. a framework
|
|
149
|
+
// integration serving `/_workflow`) unless the user forces a standalone
|
|
150
|
+
// server. Avoids spinning up a redundant UI on :3456 when one is already up.
|
|
151
|
+
if (!flags.standalone) {
|
|
152
|
+
const live = await findLiveEmbeddedDashboards();
|
|
153
|
+
if (live.length === 1) {
|
|
154
|
+
const target = buildWebUIUrl(live[0].url, resource, id, flags);
|
|
155
|
+
logger.info(chalk.green(`An embedded workflow dashboard is already running at ${live[0].url}`));
|
|
156
|
+
if (disableBrowserOpen) {
|
|
157
|
+
logger.info(chalk.cyan(`Open it at: ${target}`));
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
logger.info(chalk.cyan(`Opening ${target}`));
|
|
161
|
+
try {
|
|
162
|
+
await open(target);
|
|
163
|
+
}
|
|
164
|
+
catch (error) {
|
|
165
|
+
logger.error(`Failed to open browser: ${error}`);
|
|
166
|
+
logger.info(`Please open the link manually: ${target}`);
|
|
167
|
+
}
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
if (live.length > 1) {
|
|
171
|
+
logger.info('Embedded workflow dashboards are already running at:');
|
|
172
|
+
for (const entry of live) {
|
|
173
|
+
logger.info(chalk.cyan(` - ${entry.url}`));
|
|
174
|
+
}
|
|
175
|
+
logger.info('Open the one you want, or pass --standalone to start a separate web UI.');
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
103
179
|
// Fall back to local web UI
|
|
104
180
|
const webPort = flags.webPort ?? 3456;
|
|
105
181
|
const hostUrl = getHostUrl(webPort);
|
|
@@ -146,4 +222,47 @@ export async function launchWebUI(resource, id, flags, _cliVersion) {
|
|
|
146
222
|
});
|
|
147
223
|
}
|
|
148
224
|
}
|
|
149
|
-
|
|
225
|
+
/**
|
|
226
|
+
* Build the deep-link URL for a resource without any side effects (no server,
|
|
227
|
+
* no browser). Picks the Vercel dashboard for a Vercel backend (unless
|
|
228
|
+
* `--localUi`), otherwise the local web UI deep link.
|
|
229
|
+
*
|
|
230
|
+
* Assumes env vars have already been resolved (e.g. via `setupCliWorld`).
|
|
231
|
+
*/
|
|
232
|
+
export function buildDeepLinkUrl(resource, id, flags) {
|
|
233
|
+
const envVars = getEnvVars();
|
|
234
|
+
const vercelBackendNames = ['vercel', '@workflow/world-vercel'];
|
|
235
|
+
const isVercelBackend = vercelBackendNames.includes(envVars.WORKFLOW_TARGET_WORLD);
|
|
236
|
+
const teamSlug = envVars.WORKFLOW_VERCEL_TEAM;
|
|
237
|
+
const projectName = envVars.WORKFLOW_VERCEL_PROJECT_NAME || envVars.WORKFLOW_VERCEL_PROJECT;
|
|
238
|
+
// Use the Vercel dashboard when targeting Vercel (and not forced local).
|
|
239
|
+
if (isVercelBackend && !flags.localUi && teamSlug && projectName) {
|
|
240
|
+
return getVercelDashboardUrl(teamSlug, projectName, resource, id, envVars.WORKFLOW_VERCEL_ENV || 'production');
|
|
241
|
+
}
|
|
242
|
+
// Fall back to the local web UI deep link.
|
|
243
|
+
const webPort = flags.webPort ?? 3456;
|
|
244
|
+
return buildWebUIUrl(getHostUrl(webPort), resource, id, flags);
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Resolve and print a shareable deep-link URL to stdout, then return — without
|
|
248
|
+
* opening a browser or starting the local web server. Intended for scripting
|
|
249
|
+
* and agents that need the link rather than a rendered dashboard.
|
|
250
|
+
*
|
|
251
|
+
* Human-readable chatter (the startup box, info/debug logs) is routed to stderr
|
|
252
|
+
* so stdout contains only the URL (or `{ "url": "..." }` with `--json`).
|
|
253
|
+
*/
|
|
254
|
+
export async function printDeepLink(resource, id, flags, version) {
|
|
255
|
+
const wantsJson = Boolean(flags.json);
|
|
256
|
+
// Force JSON logging mode during setup so the startup box and any info/debug
|
|
257
|
+
// logs go to stderr, keeping stdout clean for the URL. We print the URL
|
|
258
|
+
// ourselves below, respecting the user's actual `--json` choice.
|
|
259
|
+
await setupCliWorld({ ...flags, json: true }, version, true);
|
|
260
|
+
const url = buildDeepLinkUrl(resource, id, flags);
|
|
261
|
+
if (wantsJson) {
|
|
262
|
+
process.stdout.write(`${JSON.stringify({ url }, null, 2)}\n`);
|
|
263
|
+
}
|
|
264
|
+
else {
|
|
265
|
+
process.stdout.write(`${url}\n`);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9pbnNwZWN0L3dlYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDM0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFeEQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsT0FBZSxFQUFFLEVBQUUsQ0FBQyxvQkFBb0IsT0FBTyxFQUFFLENBQUM7QUFFN0UsSUFBSSxVQUFVLEdBQWtCLElBQUksQ0FBQztBQVVyQzs7Ozs7R0FLRztBQUNILEtBQUssVUFBVSwwQkFBMEI7SUFDdkMsSUFBSSxPQUFpQyxDQUFDO0lBQ3RDLElBQUksQ0FBQztRQUNILE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDekUsT0FBTyxHQUFHLHFCQUFxQixFQUE4QixDQUFDO0lBQ2hFLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxNQUFNLElBQUksR0FBNkIsRUFBRSxDQUFDO0lBQzFDLEtBQUssTUFBTSxLQUFLLElBQUksT0FBTyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHO1lBQUUsU0FBUztRQUMxQiwwREFBMEQ7UUFDMUQsSUFBSSxPQUFPLEtBQUssQ0FBQyxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDO2dCQUNILE9BQU8sQ0FBQyxJQUFJLENB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Q0FDNUMsQ0FBQztJQUNKLENBQUM7SUFFRCwyQ0FBMkM7SUFDM0MsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUM7SUFDdEMsT0FBTyxhQUFhLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDakUsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGFBQWEsQ0FDakMsUUFBZ0IsRUFDaEIsRUFBc0IsRUFDdEIsS0FBMEIsRUFDMUIsT0FBZTtJQUVmLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFdEMsNkVBQTZFO0lBQzdFLHdFQUF3RTtJQUN4RSxpRUFBaUU7SUFDakUsTUFBTSxhQUFhLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBRXBFLE1BQU0sR0FBRyxHQUFHLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFFbEQsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUNkLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEUsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNlcnZlciB9IGZyb20gJ25vZGU6aHR0cCc7XG5pbXBvcnQgY2hhbGsgZnJvbSAnY2hhbGsnO1xuaW1wb3J0IG9wZW4gZnJvbSAnb3Blbic7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLi9jb25maWcvbG9nLmpzJztcbmltcG9ydCB7IGdldEVudlZhcnMgfSBmcm9tICcuL2Vudi5qcyc7XG5pbXBvcnQgeyBzZXR1cENsaVdvcmxkIH0gZnJvbSAnLi9zZXR1cC5qcyc7XG5pbXBvcnQgeyBnZXRWZXJjZWxEYXNoYm9hcmRVcmwgfSBmcm9tICcuL3ZlcmNlbC1hcGkuanMnO1xuXG5leHBvcnQgY29uc3QgZ2V0SG9zdFVybCA9ICh3ZWJQb3J0OiBudW1iZXIpID0+IGBodHRwOi8vbG9jYWxob3N0OiR7d2ViUG9ydH1gO1xuXG5sZXQgaHR0cFNlcnZlcjogU2VydmVyIHwgbnVsbCA9IG51bGw7XG5cbmludGVyZmFjZSBEYXNoYm9hcmRSZWdpc3RyeUVudHJ5IHtcbiAgdXJsOiBzdHJpbmc7XG4gIGJhc2VuYW1lOiBzdHJpbmc7XG4gIHdvcmxkOiBzdHJpbmc7XG4gIHBpZDogbnVtYmVyO1xuICBzdGFydGVkQXQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBGaW5kIGVtYmVkZGVkIGRhc2hib2FyZHMgKGUuZy4gYSBmcmFtZXdvcmsgaW50ZWdyYXRpb24gc2VydmluZyBgL193b3JrZmxvd2ApXG4gKiB0aGF0IGFyZSBjdXJyZW50bHkgbGl2ZSBmb3IgdGhpcyBwcm9qZWN0LiBSZWFkcyB0aGUgYmVzdC1lZmZvcnQgcmVnaXN0cnkgYW5kXG4gKiBoZWFsdGgtY2hlY2tzIGVhY2ggZW50cnksIHNpbmNlIHN0YWxlIGVudHJpZXMgYXJlIGV4cGVjdGVkIChhIFNJR0tJTEwnZCBkZXZcbiAqIHNlcnZlciBjYW4ndCBjbGVhbiB1cCkuIFJldHVybnMgW10gb24gYW55IGVycm9yIOKAlCBjb29yZGluYXRpb24gaXMgb3B0aW9uYWwuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGZpbmRMaXZlRW1iZWRkZWREYXNoYm9hcmRzKCk6IFByb21pc2U8RGFzaGJvYXJkUmVnaXN0cnlFbnRyeVtdPiB7XG4gIGxldCBlbnRyaWVzOiBEYXNoYm9hcmRSZWdpc3RyeUVudHJ5W107XG4gIHRyeSB7XG4gICAgY29uc3QgeyByZWFkRGFzaGJvYXJkUmVnaXN0cnkgfSA9IGF3YWl0IGltcG9ydCgnQHdvcmtmbG93L3dlYi9yZWdpc3RyeScpO1xuICAgIGVudHJpZXMgPSByZWFkRGFzaGJvYXJkUmVnaXN0cnkoKSBhcyBEYXNoYm9hcmRSZWdpc3RyeUVudHJ5W107XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGNvbnN0IGxpdmU6IERhc2hib2FyZFJlZ2lzdHJ5RW50cnlbXSA9IFtdO1xuICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICBpZiAoIWVudHJ5Py51cmwpIGNvbnRpbnVlO1xuICAgIC8vIEJlc3QtZWZmb3J0IFBJRCBsaXZlbmVzcyBjaGVjayAoc2FtZS1ob3N0IGRldiBzZXJ2ZXJzKS5cbiAgICBpZiAodHlwZW9mIGVudHJ5LnBpZCA9PT0gJ251bWJlcicpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHByb2Nlc3Mua2lsbChlbnRyeS5waWQsIDApO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIGNvbnRpbnVlOyAvLyBwcm9jZXNzIGdvbmVcbiAgICAgIH1cbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKGVudHJ5LnVybCwge1xuICAgICAgICBtZXRob2Q6ICdIRUFEJyxcbiAgICAgICAgcmVkaXJlY3Q6ICdtYW51YWwnLFxuICAgICAgICBzaWduYWw6IEFib3J0U2lnbmFsLnRpbWVvdXQoMTUwMCksXG4gICAgICB9KTtcbiAgICAgIC8vIEFueSBub24tNXh4IHJlc3BvbnNlIG1lYW5zIHNvbWV0aGluZyBpcyBzZXJ2aW5nIHRoYXQgcm91dGUuXG4gICAgICBpZiAocmVzLnN0YXR1cyA8IDUwMCkgbGl2ZS5wdXNoKGVudHJ5KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIHVucmVhY2hhYmxlIOKAlCB0cmVhdCBhcyBkZWFkXG4gICAgfVxuICB9XG4gIHJldHVybiBsaXZlO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIGEgc2VydmVyIGlzIGFscmVhZHkgbGlzdGVuaW5nIG9uIHRoZSBnaXZlbiBVUkwuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGlzU2VydmVyUnVubmluZyhob3N0VXJsOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGhvc3RVcmwsIHsgbWV0aG9kOiAnSEVBRCcgfSk7XG4gICAgcmV0dXJuIHJlc3BvbnNlLm9rO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBTdGFydCB0aGUgQHdvcmtmbG93L3dlYiBzZXJ2ZXIgaW4gdGhlIGN1cnJlbnQgcHJvY2Vzcy5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gc3RhcnRXZWJTZXJ2ZXIod2ViUG9ydDogbnVtYmVyKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGlmIChhd2FpdCBpc1NlcnZlclJ1bm5pbmcoZ2V0SG9zdFVybCh3ZWJQb3J0KSkpIHtcbiAgICBsb2dnZXIuZGVidWcoJ1NlcnZlciBpcyBhbHJlYWR5IHJ1bm5pbmcnKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgbG9nZ2VyLmluZm8oJ1N0YXJ0aW5nIHdlYiBVSSBzZXJ2ZXIuLi4nKTtcbiAgICBjb25zdCB7IHN0YXJ0U2VydmVyIH0gPSBhd2FpdCBpbXBvcnQoJ0B3b3JrZmxvdy93ZWIvc2VydmVyJyk7XG4gICAgaHR0cFNlcnZlciA9IGF3YWl0IHN0YXJ0U2VydmVyKHdlYlBvcnQpO1xuICAgIGxvZ2dlci5zdWNjZXNzKGNoYWxrLmdyZWVuKGBXZWIgVUkgc2VydmVyIHN0YXJ0ZWQgb24gcG9ydCAke3dlYlBvcnR9YCkpO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGxvZ2dlci5lcnJvcihgRmFpbGVkIHRvIHN0YXJ0IHNlcnZlcjogJHtlcnJvcn1gKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBCdWlsZCBhIFVSTCBmb3Igb3BlbmluZyB0aGUgbG9jYWwgd2ViIFVJLlxuICpcbiAqIFRoZSB3ZWIgVUkgcmVhZHMgd29ybGQgY29uZmlndXJhdGlvbiBmcm9tIHNlcnZlci1zaWRlIGVudmlyb25tZW50IHZhcmlhYmxlcy5cbiAqIFF1ZXJ5IHBhcmFtcyBhcmUgb25seSB1c2VkIGZvciBkZWVwLWxpbmtpbmcgdG8gc3BlY2lmaWMgcmVzb3VyY2VzIChyZXNvdXJjZS9pZCwgcnVuSWQsIGV0Yy4pXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFdlYlVJVXJsKFxuICBob3N0VXJsOiBzdHJpbmcsXG4gIHJlc291cmNlOiBzdHJpbmcsXG4gIGlkOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIGZsYWdzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4pOiBzdHJpbmcge1xuICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG5cbiAgLy8gRGVlcC1saW5raW5nIHBhcmFtc1xuICBwYXJhbXMuc2V0KCdyZXNvdXJjZScsIHJlc291cmNlKTtcbiAgaWYgKGlkKSB7XG4gICAgcGFyYW1zLnNldCgnaWQnLCBpZCk7XG4gIH1cblxuICAvLyBPcHRpb25hbCBkZWVwLWxpbmtpbmcgdG8gc3BlY2lmaWMgcnVuL3N0ZXAvaG9va1xuICBmb3IgKGNvbnN0IGZsYWdOYW1lIG9mIFsncnVuSWQnLCAnc3RlcElkJywgJ2hvb2tJZCddIGFzIGNvbnN0KSB7XG4gICAgY29uc3QgdmFsdWUgPSBmbGFnc1tmbGFnTmFtZV07XG4gICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09ICcnICYmIHZhbHVlICE9PSBmYWxzZSkge1xuICAgICAgcGFyYW1zLnNldChmbGFnTmFtZSwgU3RyaW5nKHZhbHVlKSk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgcXVlcnlTdHJpbmcgPSBwYXJhbXMudG9TdHJpbmcoKTtcbiAgcmV0dXJuIHF1ZXJ5U3RyaW5nID8gYCR7aG9zdFVybH0/JHtxdWVyeVN0cmluZ31gIDogaG9zdFVybDtcbn1cblxuLyoqXG4gKiBMYXVuY2ggdGhlIHdlYiBVSSB3aXRoIHRoZSBzcGVjaWZpZWQgY29uZmlndXJhdGlvbi5cbiAqIFRoaXMgc3RhcnRzIHRoZSBzZXJ2ZXIgKGlmIG5vdCBydW5uaW5nKSwgb3BlbnMgdGhlIGJyb3dzZXIsIHRoZW4ga2VlcHMgdGhlIHNlcnZlciBydW5uaW5nLlxuICpcbiAqIFdvcmxkIGNvbmZpZ3VyYXRpb24gaXMgcGFzc2VkIHRvIHRoZSB3ZWIgc2VydmVyIHZpYSBlbnZpcm9ubWVudCB2YXJpYWJsZXMuXG4gKiBUaGUgd2ViIFVJIHJlYWRzIHRoZXNlIGZyb20gcHJvY2Vzcy5lbnYgb24gdGhlIHNlcnZlciBzaWRlLCBub3QgZnJvbSBxdWVyeSBwYXJhbXMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsYXVuY2hXZWJVSShcbiAgcmVzb3VyY2U6IHN0cmluZyxcbiAgaWQ6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgZmxhZ3M6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gIF9jbGlWZXJzaW9uOiBzdHJpbmdcbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBlbnZWYXJzID0gZ2V0RW52VmFycygpO1xuXG4gIC8vIENoZWNrIGlmIGJyb3dzZXIgb3BlbmluZyBpcyBkaXNhYmxlZCB2aWEgZmxhZyBvciBlbnZpcm9ubWVudCB2YXJpYWJsZVxuICBjb25zdCBkaXNhYmxlQnJvd3Nlck9wZW4gPSBmbGFncy5ub0Jyb3dzZXI7XG5cbiAgLy8gQ2hlY2sgaWYgd2Ugc2hvdWxkIHRyeSB0byB1c2UgdGhlIFZlcmNlbCBkYXNoYm9hcmRcbiAgY29uc3QgdmVyY2VsQmFja2VuZE5hbWVzID0gWyd2ZXJjZWwnLCAnQHdvcmtmbG93L3dvcmxkLXZlcmNlbCddO1xuICBjb25zdCBpc1ZlcmNlbEJhY2tlbmQgPSB2ZXJjZWxCYWNrZW5kTmFtZXMuaW5jbHVkZXMoXG4gICAgZW52VmFycy5XT1JLRkxPV19UQVJHRVRfV09STERcbiAgKTtcbiAgY29uc3QgdGVhbVNsdWcgPSBlbnZWYXJzLldPUktGTE9XX1ZFUkNFTF9URUFNO1xuICBjb25zdCBwcm9qZWN0TmFtZSA9XG4gICAgZW52VmFycy5XT1JLRkxPV19WRVJDRUxfUFJPSkVDVF9OQU1FIHx8IGVudlZhcnMuV09SS0ZMT1dfVkVSQ0VMX1BST0pFQ1Q7XG5cbiAgLy8gQ2hlY2sgaWYgdXNlciB3YW50cyBsb2NhbCBVSSB2aWEgZmxhZyBvciBlbnZpcm9ubWVudCB2YXJpYWJsZVxuICBjb25zdCB1c2VMb2NhbFVpID0gZmxhZ3MubG9jYWxVaTtcblxuICBpZiAoIXVzZUxvY2FsVWkgJiYgaXNWZXJjZWxCYWNrZW5kKSB7XG4gICAgbG9nZ2VyLmluZm8oXG4gICAgICAnSWYgeW91IGRvIG5vdCB3YW50IHRvIHVzZSB0aGUgVmVyY2VsIGRhc2hib2FyZCwgdXNlIHRoZSAtLWxvY2FsVWkgZmxhZyBvciBzZXQgV09SS0ZMT1dfTE9DQUxfVUk9MSBpbiB5b3VyIGVudmlyb25tZW50IHZhcmlhYmxlcy4nXG4gICAgKTtcbiAgfVxuICBpZiAoaXNWZXJjZWxCYWNrZW5kICYmIHRlYW1TbHVnICYmIHByb2plY3ROYW1lICYmICF1c2VMb2NhbFVpKSB7XG4gICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgYENoZWNraW5nIFZlcmNlbCBkYXNoYm9hcmQgYXZhaWxhYmlsaXR5IGZvciB0ZWFtOiAke3RlYW1TbHVnfSwgcHJvamVjdDogJHtwcm9qZWN0TmFtZX1gXG4gICAgKTtcblxuICAgIGNvbnN0IGRhc2hib2FyZFVybCA9IGdldFZlcmNlbERhc2hib2FyZFVybChcbiAgICAgIHRlYW1TbHVnLFxuICAgICAgcHJvamVjdE5hbWUsXG4gICAgICByZXNvdXJjZSxcbiAgICAgIGlkLFxuICAgICAgZW52VmFycy5XT1JLRkxPV19WRVJDRUxfRU5WIHx8ICdwcm9kdWN0aW9uJ1xuICAgICk7XG5cbiAgICBpZiAoZGlzYWJsZUJyb3dzZXJPcGVuKSB7XG4gICAgICBsb2dnZXIuaW5mbyhjaGFsay5jeWFuKGBWZXJjZWwgZGFzaGJvYXJkIFVSTDogJHtkYXNoYm9hcmRVcmx9YCkpO1xuICAgICAgbG9nZ2VyLmluZm8oY2hhbGsuY3lhbignKEJyb3dzZXIgYXV0by1vcGVuIGRpc2FibGVkKScpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsb2dnZXIuaW5mbyhcbiAgICAgIGNoYWxrLmdyZWVuKGBPcGVuaW5nIFZlcmNlbCBkYXNoYm9hcmQgZm9yIHdvcmtmbG93cyBhdDogJHtkYXNoYm9hcmRVcmx9YClcbiAgICApO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBvcGVuKGRhc2hib2FyZFVybCk7XG4gICAgICByZXR1cm47IC8vIEV4aXQgZWFybHkgc2luY2Ugd2Ugb3BlbmVkIHRoZSBkYXNoYm9hcmRcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgbG9nZ2VyLmVycm9yKGBGYWlsZWQgdG8gb3BlbiBicm93c2VyOiAke2Vycm9yfWApO1xuICAgICAgbG9nZ2VyLmluZm8oYFBsZWFzZSBvcGVuIHRoZSBsaW5rIG1hbnVhbGx5LmApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIC8vIERlZmVyIHRvIGFuIGFscmVhZHktcnVubmluZyBlbWJlZGRlZCBkYXNoYm9hcmQgKGUuZy4gYSBmcmFtZXdvcmtcbiAgLy8gaW50ZWdyYXRpb24gc2VydmluZyBgL193b3JrZmxvd2ApIHVubGVzcyB0aGUgdXNlciBmb3JjZXMgYSBzdGFuZGFsb25lXG4gIC8vIHNlcnZlci4gQXZvaWRzIHNwaW5uaW5nIHVwIGEgcmVkdW5kYW50IFVJIG9uIDozNDU2IHdoZW4gb25lIGlzIGFscmVhZHkgdXAuXG4gIGlmICghZmxhZ3Muc3RhbmRhbG9uZSkge1xuICAgIGNvbnN0IGxpdmUgPSBhd2FpdCBmaW5kTGl2ZUVtYmVkZGVkRGFzaGJvYXJkcygpO1xuICAgIGlmIChsaXZlLmxlbmd0aCA9PT0gMSkge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gYnVpbGRXZWJVSVVybChsaXZlWzBdLnVybCwgcmVzb3VyY2UsIGlkLCBmbGFncyk7XG4gICAgICBsb2dnZXIuaW5mbyhcbiAgICAgICAgY2hhbGsuZ3JlZW4oXG4gICAgICAgICAgYEFuIGVtYmVkZGVkIHdvcmtmbG93IGRhc2hib2FyZCBpcyBhbHJlYWR5IHJ1bm5pbmcgYXQgJHtsaXZlWzBdLnVybH1gXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgICBpZiAoZGlzYWJsZUJyb3dzZXJPcGVuKSB7XG4gICAgICAgIGxvZ2dlci5pbmZvKGNoYWxrLmN5YW4oYE9wZW4gaXQgYXQ6ICR7dGFyZ2V0fWApKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbG9nZ2VyLmluZm8oY2hhbGsuY3lhbihgT3BlbmluZyAke3RhcmdldH1gKSk7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBvcGVuKHRhcmdldCk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBsb2dnZXIuZXJyb3IoYEZhaWxlZCB0byBvcGVuIGJyb3dzZXI6ICR7ZXJyb3J9YCk7XG4gICAgICAgIGxvZ2dlci5pbmZvKGBQbGVhc2Ugb3BlbiB0aGUgbGluayBtYW51YWxseTogJHt0YXJnZXR9YCk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChsaXZlLmxlbmd0aCA+IDEpIHtcbiAgICAgIGxvZ2dlci5pbmZvKCdFbWJlZGRlZCB3b3JrZmxvdyBkYXNoYm9hcmRzIGFyZSBhbHJlYWR5IHJ1bm5pbmcgYXQ6Jyk7XG4gICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGxpdmUpIHtcbiAgICAgICAgbG9nZ2VyLmluZm8oY2hhbGsuY3lhbihgICAtICR7ZW50cnkudXJsfWApKTtcbiAgICAgIH1cbiAgICAgIGxvZ2dlci5pbmZvKFxuICAgICAgICAnT3BlbiB0aGUgb25lIHlvdSB3YW50LCBvciBwYXNzIC0tc3RhbmRhbG9uZSB0byBzdGFydCBhIHNlcGFyYXRlIHdlYiBVSS4nXG4gICAgICApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZhbGwgYmFjayB0byBsb2NhbCB3ZWIgVUlcbiAgY29uc3Qgd2ViUG9ydCA9IGZsYWdzLndlYlBvcnQgPz8gMzQ1NjtcbiAgY29uc3QgaG9zdFVybCA9IGdldEhvc3RVcmwod2ViUG9ydCk7XG4gIGNvbnN0IHVybCA9IGJ1aWxkV2ViVUlVcmwoaG9zdFVybCwgcmVzb3VyY2UsIGlkLCBmbGFncyk7XG5cbiAgLy8gQ2hlY2sgaWYgc2VydmVyIGlzIGFscmVhZHkgcnVubmluZ1xuICBjb25zdCBhbHJlYWR5UnVubmluZyA9IGF3YWl0IGlzU2VydmVyUnVubmluZyhob3N0VXJsKTtcblxuICBpZiAoYWxyZWFkeVJ1bm5pbmcpIHtcbiAgICBsb2dnZXIuaW5mbyhcbiAgICAgIGNoYWxrLmN5YW4oYFdlYiBVSSBzZXJ2ZXIgaXMgYWxyZWFkeSBydW5uaW5nIG9uIHBvcnQgJHt3ZWJQb3J0fS5gKVxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgLy8gU3RhcnQgdGhlIHNlcnZlclxuICAgIGNvbnN0IHN0YXJ0ZWQgPSBhd2FpdCBzdGFydFdlYlNlcnZlcih3ZWJQb3J0KTtcbiAgICBpZiAoIXN0YXJ0ZWQpIHtcbiAgICAgIGxvZ2dlci5lcnJvcignRmFpbGVkIHRvIHN0YXJ0IHdlYiBVSSBzZXJ2ZXInKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICAvLyBPcGVuIGJyb3dzZXJcbiAgaWYgKGRpc2FibGVCcm93c2VyT3Blbikge1xuICAgIGxvZ2dlci5pbmZvKGNoYWxrLmN5YW4oYFdlYiBVSSBhdmFpbGFibGUgYXQ6ICR7dXJsfWApKTtcbiAgICBsb2dnZXIuaW5mbyhjaGFsay5jeWFuKCcoQnJvd3NlciBhdXRvLW9wZW4gZGlzYWJsZWQpJykpO1xuICB9IGVsc2Uge1xuICAgIGxvZ2dlci5pbmZvKGNoYWxrLmN5YW4oYE9wZW5pbmcgYnJvd3NlciB0bzogJHt1cmx9YCkpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBvcGVuKHVybCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGxvZ2dlci5lcnJvcihgRmFpbGVkIHRvIG9wZW4gYnJvd3NlcjogJHtlcnJvcn1gKTtcbiAgICAgIGxvZ2dlci5pbmZvKGBQbGVhc2Ugb3BlbiB0aGUgbGluayBtYW51YWxseS5gKTtcbiAgICB9XG4gIH1cblxuICAvLyBJZiB3ZSBzdGFydGVkIHRoZSBzZXJ2ZXIsIGtlZXAgdGhlIHByb2Nlc3MgcnVubmluZ1xuICBpZiAoIWFscmVhZHlSdW5uaW5nICYmIGh0dHBTZXJ2ZXIpIHtcbiAgICBsb2dnZXIuaW5mbyhjaGFsay5jeWFuKCdQcmVzcyBDdHJsK0MgdG8gc3RvcCB0aGUgd2ViIFVJIHNlcnZlciBhbmQgZXhpdCcpKTtcblxuICAgIC8vIEtlZXAgdGhlIENMSSBwcm9jZXNzIGFsaXZlIHdoaWxlIHRoZSBzZXJ2ZXIgaXMgcnVubmluZ1xuICAgIGF3YWl0IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XG4gICAgICBpZiAoaHR0cFNlcnZlcikge1xuICAgICAgICBodHRwU2VydmVyLm9uKCdjbG9zZScsICgpID0+IHJlc29sdmUoKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBCdWlsZCB0aGUgZGVlcC1saW5rIFVSTCBmb3IgYSByZXNvdXJjZSB3aXRob3V0IGFueSBzaWRlIGVmZmVjdHMgKG5vIHNlcnZlcixcbiAqIG5vIGJyb3dzZXIpLiBQaWNrcyB0aGUgVmVyY2VsIGRhc2hib2FyZCBmb3IgYSBWZXJjZWwgYmFja2VuZCAodW5sZXNzXG4gKiBgLS1sb2NhbFVpYCksIG90aGVyd2lzZSB0aGUgbG9jYWwgd2ViIFVJIGRlZXAgbGluay5cbiAqXG4gKiBBc3N1bWVzIGVudiB2YXJzIGhhdmUgYWxyZWFkeSBiZWVuIHJlc29sdmVkIChlLmcuIHZpYSBgc2V0dXBDbGlXb3JsZGApLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGREZWVwTGlua1VybChcbiAgcmVzb3VyY2U6IHN0cmluZyxcbiAgaWQ6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgZmxhZ3M6IFJlY29yZDxzdHJpbmcsIGFueT5cbik6IHN0cmluZyB7XG4gIGNvbnN0IGVudlZhcnMgPSBnZXRFbnZWYXJzKCk7XG5cbiAgY29uc3QgdmVyY2VsQmFja2VuZE5hbWVzID0gWyd2ZXJjZWwnLCAnQHdvcmtmbG93L3dvcmxkLXZlcmNlbCddO1xuICBjb25zdCBpc1ZlcmNlbEJhY2tlbmQgPSB2ZXJjZWxCYWNrZW5kTmFtZXMuaW5jbHVkZXMoXG4gICAgZW52VmFycy5XT1JLRkxPV19UQVJHRVRfV09STERcbiAgKTtcbiAgY29uc3QgdGVhbVNsdWcgPSBlbnZWYXJzLldPUktGTE9XX1ZFUkNFTF9URUFNO1xuICBjb25zdCBwcm9qZWN0TmFtZSA9XG4gICAgZW52VmFycy5XT1JLRkxPV19WRVJDRUxfUFJPSkVDVF9OQU1FIHx8IGVudlZhcnMuV09SS0ZMT1dfVkVSQ0VMX1BST0pFQ1Q7XG5cbiAgLy8gVXNlIHRoZSBWZXJjZWwgZGFzaGJvYXJkIHdoZW4gdGFyZ2V0aW5nIFZlcmNlbCAoYW5kIG5vdCBmb3JjZWQgbG9jYWwpLlxuICBpZiAoaXNWZXJjZWxCYWNrZW5kICYmICFmbGFncy5sb2NhbFVpICYmIHRlYW1TbHVnICYmIHByb2plY3ROYW1lKSB7XG4gICAgcmV0dXJuIGdldFZlcmNlbERhc2hib2FyZFVybChcbiAgICAgIHRlYW1TbHVnLFxuICAgICAgcHJvamVjdE5hbWUsXG4gICAgICByZXNvdXJjZSxcbiAgICAgIGlkLFxuICAgICAgZW52VmFycy5XT1JLRkxPV19WRVJDRUxfRU5WIHx8ICdwcm9kdWN0aW9uJ1xuICAgICk7XG4gIH1cblxuICAvLyBGYWxsIGJhY2sgdG8gdGhlIGxvY2FsIHdlYiBVSSBkZWVwIGxpbmsuXG4gIGNvbnN0IHdlYlBvcnQgPSBmbGFncy53ZWJQb3J0ID8/IDM0NTY7XG4gIHJldHVybiBidWlsZFdlYlVJVXJsKGdldEhvc3RVcmwod2ViUG9ydCksIHJlc291cmNlLCBpZCwgZmxhZ3MpO1xufVxuXG4vKipcbiAqIFJlc29sdmUgYW5kIHByaW50IGEgc2hhcmVhYmxlIGRlZXAtbGluayBVUkwgdG8gc3Rkb3V0LCB0aGVuIHJldHVybiDigJQgd2l0aG91dFxuICogb3BlbmluZyBhIGJyb3dzZXIgb3Igc3RhcnRpbmcgdGhlIGxvY2FsIHdlYiBzZXJ2ZXIuIEludGVuZGVkIGZvciBzY3JpcHRpbmdcbiAqIGFuZCBhZ2VudHMgdGhhdCBuZWVkIHRoZSBsaW5rIHJhdGhlciB0aGFuIGEgcmVuZGVyZWQgZGFzaGJvYXJkLlxuICpcbiAqIEh1bWFuLXJlYWRhYmxlIGNoYXR0ZXIgKHRoZSBzdGFydHVwIGJveCwgaW5mby9kZWJ1ZyBsb2dzKSBpcyByb3V0ZWQgdG8gc3RkZXJyXG4gKiBzbyBzdGRvdXQgY29udGFpbnMgb25seSB0aGUgVVJMIChvciBgeyBcInVybFwiOiBcIi4uLlwiIH1gIHdpdGggYC0tanNvbmApLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJpbnREZWVwTGluayhcbiAgcmVzb3VyY2U6IHN0cmluZyxcbiAgaWQ6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgZmxhZ3M6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gIHZlcnNpb246IHN0cmluZ1xuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHdhbnRzSnNvbiA9IEJvb2xlYW4oZmxhZ3MuanNvbik7XG5cbiAgLy8gRm9yY2UgSlNPTiBsb2dnaW5nIG1vZGUgZHVyaW5nIHNldHVwIHNvIHRoZSBzdGFydHVwIGJveCBhbmQgYW55IGluZm8vZGVidWdcbiAgLy8gbG9ncyBnbyB0byBzdGRlcnIsIGtlZXBpbmcgc3Rkb3V0IGNsZWFuIGZvciB0aGUgVVJMLiBXZSBwcmludCB0aGUgVVJMXG4gIC8vIG91cnNlbHZlcyBiZWxvdywgcmVzcGVjdGluZyB0aGUgdXNlcidzIGFjdHVhbCBgLS1qc29uYCBjaG9pY2UuXG4gIGF3YWl0IHNldHVwQ2xpV29ybGQoeyAuLi5mbGFncywganNvbjogdHJ1ZSB9IGFzIGFueSwgdmVyc2lvbiwgdHJ1ZSk7XG5cbiAgY29uc3QgdXJsID0gYnVpbGREZWVwTGlua1VybChyZXNvdXJjZSwgaWQsIGZsYWdzKTtcblxuICBpZiAod2FudHNKc29uKSB7XG4gICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoYCR7SlNPTi5zdHJpbmdpZnkoeyB1cmwgfSwgbnVsbCwgMil9XFxuYCk7XG4gIH0gZWxzZSB7XG4gICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoYCR7dXJsfVxcbmApO1xuICB9XG59XG4iXX0=
|
package/dist/lib/update-check.js
CHANGED
|
@@ -239,4 +239,4 @@ export async function checkForUpdateCached(currentVersion) {
|
|
|
239
239
|
}
|
|
240
240
|
return result;
|
|
241
241
|
}
|
|
242
|
-
//# sourceMappingURL=update-check.js.map
|
|
242
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWNoZWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi91cGRhdGUtY2hlY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDMUMsT0FBTyxXQUFXLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QyxZQUFZO0FBQ1osTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDO0FBQ3JDLE1BQU0sWUFBWSxHQUFHLDRCQUE0QixDQUFDO0FBQ2xELE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLFNBQVM7QUFDNUQsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUM7QUFDaEMsTUFBTSw0QkFBNEIsR0FBRyxvQkFBb0IsQ0FBQztBQUUxRCxpREFBaUQ7QUFDakQsTUFBTSxjQUFjLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRTtJQUNyQyxPQUNFLFdBQ0QsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNULENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHdCQUF3QjtJQUN0QyxNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLDRCQUE0QixDQUFDLENBQUM7QUFDckQsQ0FBQztBQWNEOzs7R0FHRztBQUNILFNBQVMsZUFBZSxDQUFDLENBQVMsRUFBRSxDQUFTO0lBQzNDLE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBUyxFQUFFLEVBQUU7UUFDakMsTUFBTSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDL0IsQ0FBQyxDQUFDO0lBRUYsTUFBTSxpQkFBaUIsR0FBRyxDQUN4QixJQUF3QixFQUN4QixJQUF3QixFQUNoQixFQUFFO1FBQ1YsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLHFCQUFxQjtRQUNuRCxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUk7WUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLDZCQUE2QjtRQUMxRCxJQUFJLElBQUksSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsNkJBQTZCO1FBQzNELElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVE7WUFBRSxPQUFPLENBQUMsQ0FBQztRQUVuRSwrQ0FBK0M7UUFDL0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRS9CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDaEUsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVyQixtREFBbUQ7WUFDbkQsSUFBSSxFQUFFLEtBQUssU0FBUztnQkFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLElBQUksRUFBRSxLQUFLLFNBQVM7Z0JBQUUsT0FBTyxDQUFDLENBQUM7WUFFL0IsaURBQWlEO1lBQ2pELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN4QixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDeEIsTUFBTSxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDaEQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFFaEQsSUFBSSxNQUFNLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ3JCLHlDQUF5QztnQkFDekMsSUFBSSxJQUFJLEdBQUcsSUFBSTtvQkFBRSxPQUFPLENBQUMsQ0FBQztnQkFDMUIsSUFBSSxJQUFJLEdBQUcsSUFBSTtvQkFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQzdCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixtREFBbUQ7Z0JBQ25ELElBQUksRUFBRSxHQUFHLEVBQUU7b0JBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ3RCLElBQUksRUFBRSxHQUFHLEVBQUU7b0JBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUN6QixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUTtJQUNwQixDQUFDLENBQUM7SUFFRixNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakMsTUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRWpDLDhCQUE4QjtJQUM5QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDM0IsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDdkQsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUM7SUFDMUQsQ0FBQztJQUVELDREQUE0RDtJQUM1RCxzREFBc0Q7SUFDdEQsTUFBTSxTQUFTLEdBQUcsaUJBQWlCLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDOUUsT0FBTyxTQUFTLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLENBQUM7QUFFRDs7R0FFRztBQUNILEtBQUssVUFBVSxrQkFBa0IsQ0FDL0IsY0FBc0I7SUFFdEIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxVQUFVLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUN6QyxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFFM0UsTUFBTSxHQUFHLEdBQUcsR0FBRyxZQUFZLElBQUksWUFBWSxFQUFFLENBQUM7UUFDOUMsTUFBTSxDQUFDLEtBQUssQ0FBQywyQkFBMkIsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUUvQyxNQUFNLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxHQUFHLEVBQUU7WUFDaEMsT0FBTyxFQUFFO2dCQUNQLE1BQU0sRUFBRSxrQkFBa0I7YUFDM0I7WUFDRCxNQUFNLEVBQUUsVUFBVSxDQUFDLE1BQU07U0FDMUIsQ0FBQyxDQUFDO1FBRUgsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDakIsTUFBTSxDQUFDLEtBQUssQ0FDVixpQ0FBaUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUMsVUFBVSxFQUFFLENBQzFFLENBQUM7WUFDRixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxDQUFDLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUVsQyxDQUFDO1FBRUYsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNuQixNQUFNLENBQUMsS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7WUFDcEQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxZQUFZLGNBQWMsYUFBYSxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsSUFBSSxLQUFLLFlBQVksS0FBSyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssWUFBWSxFQUFFLENBQUM7WUFDMUQsTUFBTSxDQUFDLEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO1FBQzFELENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxDQUFDLEtBQUssQ0FBQywyQkFBMkIsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsY0FBYyxDQUNsQyxjQUFzQjtJQUV0QixNQUFNLGFBQWEsR0FBRyxNQUFNLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRS9ELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNuQixPQUFPO1lBQ0wsY0FBYztZQUNkLFdBQVcsRUFBRSxLQUFLO1NBQ25CLENBQUM7SUFDSixDQUFDO0lBRUQsK0RBQStEO0lBQy9ELE1BQU0sZUFBZSxHQUFHLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0RCxNQUFNLGtCQUFrQixHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkQsTUFBTSxXQUFXLEdBQ2YsQ0FBQyxDQUFDLGVBQWUsSUFBSSxrQkFBa0IsQ0FBQztRQUN4QyxlQUFlLENBQUMsYUFBYSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBRWpELE9BQU87UUFDTCxjQUFjO1FBQ2QsYUFBYTtRQUNiLFdBQVc7S0FDWixDQUFDO0FBQ0osQ0FBQztBQUVEOztHQUVHO0FBQ0gsS0FBSyxVQUFVLFNBQVMsQ0FBQyxTQUFpQjtJQUN4QyxJQUFJLENBQUM7UUFDSCxNQUFNLE9BQU8sR0FBRyxNQUFNLFFBQVEsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDbkQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQXNCLENBQUM7UUFDdEQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0FBQ0gsQ0FBQztBQUVEOztHQUVHO0FBQ0gsS0FBSyxVQUFVLFVBQVUsQ0FDdkIsU0FBaUIsRUFDakIsSUFBdUI7SUFFdkIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDckQsTUFBTSxTQUFTLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsTUFBTSxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUMxRCxDQUFDO0FBQ0gsQ0FBQztBQUVEOztHQUVHO0FBQ0gsS0FBSyxVQUFVLFlBQVksQ0FDekIsU0FBaUIsRUFDakIsY0FBc0I7SUFFdEIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxNQUFNLEdBQUcsTUFBTSxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPLEtBQUssQ0FBQztRQUUxQixzQ0FBc0M7UUFDdEMsSUFBSSxNQUFNLENBQUMsY0FBYyxLQUFLLGNBQWMsRUFBRSxDQUFDO1lBQzdDLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQztZQUNuRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxnQ0FBZ0M7UUFDaEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sR0FBRyxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO1FBQ25DLE1BQU0sT0FBTyxHQUFHLEdBQUcsR0FBRyxpQkFBaUIsQ0FBQztRQUV4QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixNQUFNLENBQUMsS0FBSyxDQUNWLHVCQUF1QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FDOUQsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxvQkFBb0IsQ0FDeEMsY0FBc0I7SUFFdEIsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLHdCQUF3QixLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2pELE1BQU0sQ0FBQyxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQztRQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBRUQsTUFBTSxTQUFTLEdBQUcsd0JBQXdCLEVBQUUsQ0FBQztJQUU3QywwQkFBMEI7SUFDMUIsSUFBSSxNQUFNLFlBQVksQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLEVBQUUsQ0FBQztRQUNsRCxNQUFNLENBQUMsS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7UUFDbEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUMsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLCtEQUErRDtZQUMvRCxNQUFNLGVBQWUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzdELE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDOUQsT0FBTztnQkFDTCxjQUFjLEVBQUUsTUFBTSxDQUFDLGNBQWM7Z0JBQ3JDLGFBQWEsRUFBRSxNQUFNLENBQUMsYUFBYTtnQkFDbkMsV0FBVyxFQUNULENBQUMsQ0FBQyxlQUFlLElBQUksa0JBQWtCLENBQUM7b0JBQ3hDLGVBQWUsQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxjQUFjLENBQUM7YUFDL0QsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsc0JBQXNCO0lBQ3RCLE1BQU0sQ0FBQyxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztJQUMvQyxNQUFNLE1BQU0sR0FBRyxNQUFNLGNBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUVwRCw4Q0FBOEM7SUFDOUMsSUFBSSxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDekIsTUFBTSxVQUFVLENBQUMsU0FBUyxFQUFFO1lBQzFCLGNBQWMsRUFBRSxNQUFNLENBQUMsY0FBYztZQUNyQyxhQUFhLEVBQUUsTUFBTSxDQUFDLGFBQWE7WUFDbkMsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUU7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBta2RpciwgcmVhZEZpbGUsIHdyaXRlRmlsZSB9IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuaW1wb3J0IHsgZGlybmFtZSwgam9pbiB9IGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgWERHQXBwUGF0aHMgZnJvbSAneGRnLWFwcC1wYXRocyc7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuL2NvbmZpZy9sb2cuanMnO1xuXG4vLyBDb25zdGFudHNcbmNvbnN0IFBBQ0tBR0VfTkFNRSA9ICdAd29ya2Zsb3cvY2xpJztcbmNvbnN0IE5QTV9SRUdJU1RSWSA9ICdodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZyc7XG5jb25zdCBDQUNIRV9EVVJBVElPTl9NUyA9IDMgKiAyNCAqIDYwICogNjAgKiAxMDAwOyAvLyAzIGRheXNcbmNvbnN0IFJFUVVFU1RfVElNRU9VVF9NUyA9IDUwMDA7XG5jb25zdCBWRVJTSU9OX0NIRUNLX0NBQ0hFX0ZJTEVOQU1FID0gJ3ZlcnNpb24tY2hlY2suanNvbic7XG5cbi8vIEdldCBYREctY29tcGxpYW50IGNhY2hlIGRpcmVjdG9yeSBmb3Igd29ya2Zsb3dcbmNvbnN0IGdldFhER0FwcFBhdGhzID0gKGFwcDogc3RyaW5nKSA9PiB7XG4gIHJldHVybiAoXG4gICAgWERHQXBwUGF0aHMgYXMgdW5rbm93biBhcyAoYXBwOiBzdHJpbmcpID0+IHsgZGF0YURpcnM6ICgpID0+IHN0cmluZ1tdIH1cbiAgKShhcHApO1xufTtcblxuLyoqXG4gKiBHZXQgdGhlIGNhY2hlIGZpbGUgcGF0aCBmb3IgdmVyc2lvbiBjaGVja3MuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRWZXJzaW9uQ2hlY2tDYWNoZUZpbGUoKTogc3RyaW5nIHtcbiAgY29uc3QgZGlycyA9IGdldFhER0FwcFBhdGhzKCd3b3JrZmxvdycpLmRhdGFEaXJzKCk7XG4gIHJldHVybiBqb2luKGRpcnNbMF0sIFZFUlNJT05fQ0hFQ0tfQ0FDSEVfRklMRU5BTUUpO1xufVxuXG5pbnRlcmZhY2UgVmVyc2lvbkNoZWNrUmVzdWx0IHtcbiAgY3VycmVudFZlcnNpb246IHN0cmluZztcbiAgbGF0ZXN0VmVyc2lvbj86IHN0cmluZztcbiAgbmVlZHNVcGRhdGU6IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBDYWNoZWRWZXJzaW9uRGF0YSB7XG4gIGN1cnJlbnRWZXJzaW9uOiBzdHJpbmc7XG4gIGxhdGVzdFZlcnNpb246IHN0cmluZztcbiAgdGltZXN0YW1wOiBudW1iZXI7XG59XG5cbi8qKlxuICogQ29tcGFyZSB0d28gc2VtdmVyIHZlcnNpb25zIGluY2x1ZGluZyBwcmUtcmVsZWFzZSB0YWdzXG4gKiBSZXR1cm5zIHRydWUgaWYgdmVyc2lvbiBhIGlzIGdyZWF0ZXIgdGhhbiB2ZXJzaW9uIGJcbiAqL1xuZnVuY3Rpb24gY29tcGFyZVZlcnNpb25zKGE6IHN0cmluZywgYjogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGNvbnN0IHBhcnNlVmVyc2lvbiA9ICh2OiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBbYmFzZSwgcHJlcmVsZWFzZV0gPSB2LnNwbGl0KCctJyk7XG4gICAgY29uc3QgcGFydHMgPSBiYXNlLnNwbGl0KCcuJykubWFwKE51bWJlcik7XG4gICAgcmV0dXJuIHsgcGFydHMsIHByZXJlbGVhc2UgfTtcbiAgfTtcblxuICBjb25zdCBjb21wYXJlUHJlcmVsZWFzZSA9IChcbiAgICBwcmUxOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgcHJlMjogc3RyaW5nIHwgdW5kZWZpbmVkXG4gICk6IG51bWJlciA9PiB7XG4gICAgaWYgKCFwcmUxICYmICFwcmUyKSByZXR1cm4gMDsgLy8gYm90aCBubyBwcmVyZWxlYXNlXG4gICAgaWYgKCFwcmUxICYmIHByZTIpIHJldHVybiAxOyAvLyBubyBwcmVyZWxlYXNlID4gcHJlcmVsZWFzZVxuICAgIGlmIChwcmUxICYmICFwcmUyKSByZXR1cm4gLTE7IC8vIHByZXJlbGVhc2UgPCBubyBwcmVyZWxlYXNlXG4gICAgaWYgKHR5cGVvZiBwcmUxICE9PSAnc3RyaW5nJyB8fCB0eXBlb2YgcHJlMiAhPT0gJ3N0cmluZycpIHJldHVybiAwO1xuXG4gICAgLy8gQm90aCBoYXZlIHByZXJlbGVhc2UgLSBjb21wYXJlIHRoZW0gcHJvcGVybHlcbiAgICBjb25zdCBwYXJ0czEgPSBwcmUxLnNwbGl0KCcuJyk7XG4gICAgY29uc3QgcGFydHMyID0gcHJlMi5zcGxpdCgnLicpO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBNYXRoLm1heChwYXJ0czEubGVuZ3RoLCBwYXJ0czIubGVuZ3RoKTsgaSsrKSB7XG4gICAgICBjb25zdCBwMSA9IHBhcnRzMVtpXTtcbiAgICAgIGNvbnN0IHAyID0gcGFydHMyW2ldO1xuXG4gICAgICAvLyBJZiBvbmUgc2lkZSBpcyBtaXNzaW5nLCBpdCdzIGxlc3MgdGhhbiB0aGUgb3RoZXJcbiAgICAgIGlmIChwMSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gLTE7XG4gICAgICBpZiAocDIgPT09IHVuZGVmaW5lZCkgcmV0dXJuIDE7XG5cbiAgICAgIC8vIFRyeSB0byBwYXJzZSBhcyBudW1iZXJzIGZvciBudW1lcmljIGNvbXBhcmlzb25cbiAgICAgIGNvbnN0IG51bTEgPSBOdW1iZXIocDEpO1xuICAgICAgY29uc3QgbnVtMiA9IE51bWJlcihwMik7XG4gICAgICBjb25zdCBpc051bTEgPSAhTnVtYmVyLmlzTmFOKG51bTEpICYmIHAxICE9PSAnJztcbiAgICAgIGNvbnN0IGlzTnVtMiA9ICFOdW1iZXIuaXNOYU4obnVtMikgJiYgcDIgIT09ICcnO1xuXG4gICAgICBpZiAoaXNOdW0xICYmIGlzTnVtMikge1xuICAgICAgICAvLyBCb3RoIGFyZSBudW1iZXJzIC0gY29tcGFyZSBudW1lcmljYWxseVxuICAgICAgICBpZiAobnVtMSA+IG51bTIpIHJldHVybiAxO1xuICAgICAgICBpZiAobnVtMSA8IG51bTIpIHJldHVybiAtMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEF0IGxlYXN0IG9uZSBpcyBub24tbnVtZXJpYyAtIGNvbXBhcmUgYXMgc3RyaW5nc1xuICAgICAgICBpZiAocDEgPiBwMikgcmV0dXJuIDE7XG4gICAgICAgIGlmIChwMSA8IHAyKSByZXR1cm4gLTE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIDA7IC8vIGVxdWFsXG4gIH07XG5cbiAgY29uc3QgdmVyc2lvbkEgPSBwYXJzZVZlcnNpb24oYSk7XG4gIGNvbnN0IHZlcnNpb25CID0gcGFyc2VWZXJzaW9uKGIpO1xuXG4gIC8vIENvbXBhcmUgbWFqb3IsIG1pbm9yLCBwYXRjaFxuICBmb3IgKGxldCBpID0gMDsgaSA8IDM7IGkrKykge1xuICAgIGlmICh2ZXJzaW9uQS5wYXJ0c1tpXSA+IHZlcnNpb25CLnBhcnRzW2ldKSByZXR1cm4gdHJ1ZTtcbiAgICBpZiAodmVyc2lvbkEucGFydHNbaV0gPCB2ZXJzaW9uQi5wYXJ0c1tpXSkgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gSWYgdmVyc2lvbnMgYXJlIGVxdWFsIHVwIHRvIHBhdGNoIGxldmVsLCBjaGVjayBwcmVyZWxlYXNlXG4gIC8vIE5vIHByZXJlbGVhc2UgaXMgY29uc2lkZXJlZCBncmVhdGVyIHRoYW4gcHJlcmVsZWFzZVxuICBjb25zdCBwcmVSZXN1bHQgPSBjb21wYXJlUHJlcmVsZWFzZSh2ZXJzaW9uQS5wcmVyZWxlYXNlLCB2ZXJzaW9uQi5wcmVyZWxlYXNlKTtcbiAgcmV0dXJuIHByZVJlc3VsdCA+IDA7XG59XG5cbi8qKlxuICogRmV0Y2ggdGhlIGxhdGVzdCB2ZXJzaW9uIGZyb20gbnBtIHJlZ2lzdHJ5XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGZldGNoTGF0ZXN0VmVyc2lvbihcbiAgY3VycmVudFZlcnNpb246IHN0cmluZ1xuKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gIHRyeSB7XG4gICAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICBjb25zdCB0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IGNvbnRyb2xsZXIuYWJvcnQoKSwgUkVRVUVTVF9USU1FT1VUX01TKTtcblxuICAgIGNvbnN0IHVybCA9IGAke05QTV9SRUdJU1RSWX0vJHtQQUNLQUdFX05BTUV9YDtcbiAgICBsb2dnZXIuZGVidWcoYENoZWNraW5nIGZvciB1cGRhdGVzIGF0ICR7dXJsfWApO1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwsIHtcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgQWNjZXB0OiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICB9LFxuICAgICAgc2lnbmFsOiBjb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcblxuICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xuXG4gICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgICBgRmFpbGVkIHRvIGZldGNoIHBhY2thZ2UgaW5mbzogJHtyZXNwb25zZS5zdGF0dXN9ICR7cmVzcG9uc2Uuc3RhdHVzVGV4dH1gXG4gICAgICApO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgZGF0YSA9IChhd2FpdCByZXNwb25zZS5qc29uKCkpIGFzIHtcbiAgICAgICdkaXN0LXRhZ3MnOiB7IFt0YWc6IHN0cmluZ106IHN0cmluZyB9O1xuICAgIH07XG5cbiAgICBjb25zdCBsYXRlc3RWZXJzaW9uID0gZGF0YVsnZGlzdC10YWdzJ11bJ2xhdGVzdCddO1xuICAgIGlmICghbGF0ZXN0VmVyc2lvbikge1xuICAgICAgbG9nZ2VyLmRlYnVnKCdObyBsYXRlc3QgdmVyc2lvbiBmb3VuZCBpbiByZWdpc3RyeScpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgbG9nZ2VyLmRlYnVnKGBDdXJyZW50OiAke2N1cnJlbnRWZXJzaW9ufSwgTGF0ZXN0OiAke2xhdGVzdFZlcnNpb259YCk7XG4gICAgcmV0dXJuIGxhdGVzdFZlcnNpb247XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IgJiYgZXJyb3IubmFtZSA9PT0gJ0Fib3J0RXJyb3InKSB7XG4gICAgICBsb2dnZXIuZGVidWcoJ1ZlcnNpb24gY2hlY2sgdGltZWQgb3V0IGFmdGVyIDUgc2Vjb25kcycpO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2dnZXIuZGVidWcoYEVycm9yIGZldGNoaW5nIHZlcnNpb246ICR7ZXJyb3J9YCk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlcmUncyBhIG5ldyB2ZXJzaW9uIGF2YWlsYWJsZVxuICogUmV0dXJucyB0aGUgY3VycmVudCBhbmQgbGF0ZXN0IHZlcnNpb24gaWYgYW4gdXBkYXRlIGlzIGF2YWlsYWJsZVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2hlY2tGb3JVcGRhdGUoXG4gIGN1cnJlbnRWZXJzaW9uOiBzdHJpbmdcbik6IFByb21pc2U8VmVyc2lvbkNoZWNrUmVzdWx0PiB7XG4gIGNvbnN0IGxhdGVzdFZlcnNpb24gPSBhd2FpdCBmZXRjaExhdGVzdFZlcnNpb24oY3VycmVudFZlcnNpb24pO1xuXG4gIGlmICghbGF0ZXN0VmVyc2lvbikge1xuICAgIHJldHVybiB7XG4gICAgICBjdXJyZW50VmVyc2lvbixcbiAgICAgIG5lZWRzVXBkYXRlOiBmYWxzZSxcbiAgICB9O1xuICB9XG5cbiAgLy8gRG9uJ3Qgc3VnZ2VzdCBwcmVyZWxlYXNlIHVwZGF0ZXMgdG8gdXNlcnMgb24gc3RhYmxlIHZlcnNpb25zXG4gIGNvbnN0IGN1cnJlbnRJc1N0YWJsZSA9ICFjdXJyZW50VmVyc2lvbi5pbmNsdWRlcygnLScpO1xuICBjb25zdCBsYXRlc3RJc1ByZXJlbGVhc2UgPSBsYXRlc3RWZXJzaW9uLmluY2x1ZGVzKCctJyk7XG4gIGNvbnN0IG5lZWRzVXBkYXRlID1cbiAgICAhKGN1cnJlbnRJc1N0YWJsZSAmJiBsYXRlc3RJc1ByZXJlbGVhc2UpICYmXG4gICAgY29tcGFyZVZlcnNpb25zKGxhdGVzdFZlcnNpb24sIGN1cnJlbnRWZXJzaW9uKTtcblxuICByZXR1cm4ge1xuICAgIGN1cnJlbnRWZXJzaW9uLFxuICAgIGxhdGVzdFZlcnNpb24sXG4gICAgbmVlZHNVcGRhdGUsXG4gIH07XG59XG5cbi8qKlxuICogUmVhZCBjYWNoZWQgdmVyc2lvbiBkYXRhIGZyb20gZmlsZVxuICovXG5hc3luYyBmdW5jdGlvbiByZWFkQ2FjaGUoY2FjaGVGaWxlOiBzdHJpbmcpOiBQcm9taXNlPENhY2hlZFZlcnNpb25EYXRhIHwgbnVsbD4ge1xuICB0cnkge1xuICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCByZWFkRmlsZShjYWNoZUZpbGUsICd1dGYtOCcpO1xuICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKGNvbnRlbnQpIGFzIENhY2hlZFZlcnNpb25EYXRhO1xuICAgIHJldHVybiBkYXRhO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG4vKipcbiAqIFdyaXRlIHZlcnNpb24gZGF0YSB0byBjYWNoZSBmaWxlXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHdyaXRlQ2FjaGUoXG4gIGNhY2hlRmlsZTogc3RyaW5nLFxuICBkYXRhOiBDYWNoZWRWZXJzaW9uRGF0YVxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIHRyeSB7XG4gICAgYXdhaXQgbWtkaXIoZGlybmFtZShjYWNoZUZpbGUpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICBhd2FpdCB3cml0ZUZpbGUoY2FjaGVGaWxlLCBKU09OLnN0cmluZ2lmeShkYXRhLCBudWxsLCAyKSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBGYWlsZWQgdG8gd3JpdGUgdmVyc2lvbiBjYWNoZTogJHtlcnJvcn1gKTtcbiAgfVxufVxuXG4vKipcbiAqIENoZWNrIGlmIGNhY2hlIGlzIHN0aWxsIHZhbGlkXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGlzQ2FjaGVWYWxpZChcbiAgY2FjaGVGaWxlOiBzdHJpbmcsXG4gIGN1cnJlbnRWZXJzaW9uOiBzdHJpbmdcbik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICB0cnkge1xuICAgIGNvbnN0IGNhY2hlZCA9IGF3YWl0IHJlYWRDYWNoZShjYWNoZUZpbGUpO1xuICAgIGlmICghY2FjaGVkKSByZXR1cm4gZmFsc2U7XG5cbiAgICAvLyBDYWNoZSBpcyBpbnZhbGlkIGlmIHZlcnNpb24gY2hhbmdlZFxuICAgIGlmIChjYWNoZWQuY3VycmVudFZlcnNpb24gIT09IGN1cnJlbnRWZXJzaW9uKSB7XG4gICAgICBsb2dnZXIuZGVidWcoJ1ZlcnNpb24gY2hhbmdlZCwgY2FjaGUgaW52YWxpZGF0ZWQnKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpZiBjYWNoZSBpcyBzdGlsbCBmcmVzaFxuICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgY29uc3QgYWdlID0gbm93IC0gY2FjaGVkLnRpbWVzdGFtcDtcbiAgICBjb25zdCBpc1ZhbGlkID0gYWdlIDwgQ0FDSEVfRFVSQVRJT05fTVM7XG5cbiAgICBpZiAoIWlzVmFsaWQpIHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgYENhY2hlIGV4cGlyZWQgKGFnZTogJHtNYXRoLmZsb29yKGFnZSAvIDEwMDAgLyA2MCl9IG1pbnV0ZXMpYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaXNWYWxpZDtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogQ2hlY2sgZm9yIHVwZGF0ZXMgd2l0aCBmaWxlc3lzdGVtIGNhY2hpbmdcbiAqIENhY2hlIGlzIHZhbGlkIHVubGVzcyB0aGUgbG9jYWwgdmVyc2lvbiBjaGFuZ2VzXG4gKlxuICogU2V0IFdPUktGTE9XX05PX1VQREFURV9DSEVDSz0xIHRvIHNraXAgdGhlIHVwZGF0ZSBjaGVjayBlbnRpcmVseS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNoZWNrRm9yVXBkYXRlQ2FjaGVkKFxuICBjdXJyZW50VmVyc2lvbjogc3RyaW5nXG4pOiBQcm9taXNlPFZlcnNpb25DaGVja1Jlc3VsdD4ge1xuICBpZiAocHJvY2Vzcy5lbnYuV09SS0ZMT1dfTk9fVVBEQVRFX0NIRUNLID09PSAnMScpIHtcbiAgICBsb2dnZXIuZGVidWcoJ1NraXBwaW5nIHVwZGF0ZSBjaGVjayAoV09SS0ZMT1dfTk9fVVBEQVRFX0NIRUNLPTEpJyk7XG4gICAgcmV0dXJuIHsgY3VycmVudFZlcnNpb24sIG5lZWRzVXBkYXRlOiBmYWxzZSB9O1xuICB9XG5cbiAgY29uc3QgY2FjaGVGaWxlID0gZ2V0VmVyc2lvbkNoZWNrQ2FjaGVGaWxlKCk7XG5cbiAgLy8gQ2hlY2sgaWYgY2FjaGUgaXMgdmFsaWRcbiAgaWYgKGF3YWl0IGlzQ2FjaGVWYWxpZChjYWNoZUZpbGUsIGN1cnJlbnRWZXJzaW9uKSkge1xuICAgIGxvZ2dlci5kZWJ1ZygnVXNpbmcgY2FjaGVkIHZlcnNpb24gY2hlY2sgcmVzdWx0Jyk7XG4gICAgY29uc3QgY2FjaGVkID0gYXdhaXQgcmVhZENhY2hlKGNhY2hlRmlsZSk7XG4gICAgaWYgKGNhY2hlZCkge1xuICAgICAgLy8gRG9uJ3Qgc3VnZ2VzdCBwcmVyZWxlYXNlIHVwZGF0ZXMgdG8gdXNlcnMgb24gc3RhYmxlIHZlcnNpb25zXG4gICAgICBjb25zdCBjdXJyZW50SXNTdGFibGUgPSAhY2FjaGVkLmN1cnJlbnRWZXJzaW9uLmluY2x1ZGVzKCctJyk7XG4gICAgICBjb25zdCBsYXRlc3RJc1ByZXJlbGVhc2UgPSBjYWNoZWQubGF0ZXN0VmVyc2lvbi5pbmNsdWRlcygnLScpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY3VycmVudFZlcnNpb246IGNhY2hlZC5jdXJyZW50VmVyc2lvbixcbiAgICAgICAgbGF0ZXN0VmVyc2lvbjogY2FjaGVkLmxhdGVzdFZlcnNpb24sXG4gICAgICAgIG5lZWRzVXBkYXRlOlxuICAgICAgICAgICEoY3VycmVudElzU3RhYmxlICYmIGxhdGVzdElzUHJlcmVsZWFzZSkgJiZcbiAgICAgICAgICBjb21wYXJlVmVyc2lvbnMoY2FjaGVkLmxhdGVzdFZlcnNpb24sIGNhY2hlZC5jdXJyZW50VmVyc2lvbiksXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIC8vIFBlcmZvcm0gZnJlc2ggY2hlY2tcbiAgbG9nZ2VyLmRlYnVnKCdQZXJmb3JtaW5nIGZyZXNoIHZlcnNpb24gY2hlY2snKTtcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY2hlY2tGb3JVcGRhdGUoY3VycmVudFZlcnNpb24pO1xuXG4gIC8vIENhY2hlIHRoZSByZXN1bHQgaWYgd2UgZ290IGEgbGF0ZXN0IHZlcnNpb25cbiAgaWYgKHJlc3VsdC5sYXRlc3RWZXJzaW9uKSB7XG4gICAgYXdhaXQgd3JpdGVDYWNoZShjYWNoZUZpbGUsIHtcbiAgICAgIGN1cnJlbnRWZXJzaW9uOiByZXN1bHQuY3VycmVudFZlcnNpb24sXG4gICAgICBsYXRlc3RWZXJzaW9uOiByZXN1bHQubGF0ZXN0VmVyc2lvbixcbiAgICAgIHRpbWVzdGFtcDogRGF0ZS5ub3coKSxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@workflow/cli",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.41",
|
|
4
4
|
"description": "Command-line interface for Workflow SDK",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -31,10 +31,11 @@
|
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@types/node": "22.19.0",
|
|
34
|
+
"typescript": "^6.0.3",
|
|
34
35
|
"@workflow/tsconfig": "5.0.0-beta.0"
|
|
35
36
|
},
|
|
36
37
|
"dependencies": {
|
|
37
|
-
"@oclif/core": "4.
|
|
38
|
+
"@oclif/core": "4.11.4",
|
|
38
39
|
"@oclif/plugin-help": "6.2.37",
|
|
39
40
|
"@swc/core": "1.15.3",
|
|
40
41
|
"@vercel/cli-auth": "0.0.1",
|
|
@@ -46,24 +47,24 @@
|
|
|
46
47
|
"dotenv": "^17.3.1",
|
|
47
48
|
"easy-table": "1.2.0",
|
|
48
49
|
"enhanced-resolve": "5.19.0",
|
|
49
|
-
"esbuild": "^0.
|
|
50
|
+
"esbuild": "^0.28.1",
|
|
50
51
|
"find-up": "7.0.0",
|
|
51
52
|
"mixpart": "0.0.4",
|
|
52
53
|
"open": "10.2.0",
|
|
53
54
|
"ora": "8.2.0",
|
|
54
55
|
"terminal-link": "5.0.0",
|
|
55
|
-
"tinyglobby": "0.2.
|
|
56
|
+
"tinyglobby": "0.2.17",
|
|
56
57
|
"xdg-app-paths": "5.1.0",
|
|
57
|
-
"zod": "4.3.6",
|
|
58
|
-
"@workflow/builders": "5.0.0-beta.
|
|
59
|
-
"@workflow/
|
|
60
|
-
"@workflow/
|
|
61
|
-
"@workflow/
|
|
62
|
-
"@workflow/
|
|
63
|
-
"@workflow/web": "5.0.0-beta.
|
|
64
|
-
"@workflow/world": "5.0.0-beta.
|
|
65
|
-
"@workflow/world-local": "5.0.0-beta.
|
|
66
|
-
"@workflow/world-vercel": "5.0.0-beta.
|
|
58
|
+
"zod": "~4.3.6",
|
|
59
|
+
"@workflow/builders": "5.0.0-beta.41",
|
|
60
|
+
"@workflow/core": "5.0.0-beta.41",
|
|
61
|
+
"@workflow/errors": "5.0.0-beta.16",
|
|
62
|
+
"@workflow/swc-plugin": "5.0.0-beta.5",
|
|
63
|
+
"@workflow/utils": "5.0.0-beta.8",
|
|
64
|
+
"@workflow/web": "5.0.0-beta.41",
|
|
65
|
+
"@workflow/world": "5.0.0-beta.26",
|
|
66
|
+
"@workflow/world-local": "5.0.0-beta.35",
|
|
67
|
+
"@workflow/world-vercel": "5.0.0-beta.37"
|
|
67
68
|
},
|
|
68
69
|
"scripts": {
|
|
69
70
|
"build": "tsc && chmod +x bin/run.js",
|
package/dist/base.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD,KAAK,UAAU,WAAW,CAAC,MAA0B;IACnD,IACE,CAAC,MAAM,CAAC,QAAQ;QAChB,MAAM,CAAC,SAAS;QAChB,MAAM,CAAC,MAAM;QACb,MAAM,CAAC,aAAa;QACpB,MAAM,CAAC,gBAAgB,EACvB,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAClC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE;gBACpB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC7B,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7B,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,OAAgB,WAAY,SAAQ,OAAO;IAC/C,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;IAE7B;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,GAAsB;QAClC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC;YAC/B,MAAM,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QACxB,CAAC;QAAC,OAAO,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,CACP,0BAA0B,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAC5F,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACzB,qEAAqE;QACrE,wEAAwE;QACxE,yEAAyE;QACzE,qEAAqE;QACrE,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;YAC3B,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;SAC5B,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IAES,OAAO,CAAC,OAAe;QAC/B,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACpB,CAAC;IAES,OAAO,CAAC,OAAe;QAC/B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAES,QAAQ,CAAC,OAAe;QAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC","sourcesContent":["import { Command } from '@oclif/core';\nimport { getWorld } from '@workflow/core/runtime';\n\nasync function flushStream(stream: NodeJS.WriteStream): Promise<void> {\n if (\n !stream.writable ||\n stream.destroyed ||\n stream.closed ||\n stream.writableEnded ||\n stream.writableFinished\n ) {\n return;\n }\n\n await new Promise<void>((resolve) => {\n const onError = () => resolve();\n stream.once('error', onError);\n try {\n stream.write('', () => {\n stream.off('error', onError);\n resolve();\n });\n } catch {\n stream.off('error', onError);\n resolve();\n }\n });\n}\n\nexport abstract class BaseCommand extends Command {\n static enableJsonFlag = true;\n\n /**\n * Called by oclif after `run()` completes (or throws).\n * Closes the cached World instance so the process can exit cleanly\n * without relying on `process.exit()`.\n */\n async finally(err: Error | undefined): Promise<void> {\n try {\n const world = await getWorld();\n await world.close?.();\n } catch (closeErr) {\n this.warn(\n `Failed to close world: ${closeErr instanceof Error ? closeErr.message : String(closeErr)}`\n );\n }\n await super.finally(err);\n // Force exit. World.close() cleaned up database connections and HTTP\n // agents, but third-party libraries (oclif update checker, postgres.js)\n // may leave timers or sockets that prevent the event loop from draining.\n // This is safe because all business logic and cleanup has completed.\n await Promise.all([\n flushStream(process.stdout),\n flushStream(process.stderr),\n ]);\n process.exit(err ? 1 : (process.exitCode ?? 0));\n }\n\n protected logInfo(message: string): void {\n this.log(message);\n }\n\n protected logWarn(message: string): void {\n this.warn(message);\n }\n\n protected logError(message: string): void {\n this.error(message);\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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","sourcesContent":["import { Args, Flags } from '@oclif/core';\nimport {\n StandaloneBuilder,\n VercelBuildOutputAPIBuilder,\n} from '@workflow/builders';\nimport { BaseCommand } from '../base.js';\nimport { type BuildTarget, isValidBuildTarget } from '../lib/config/types.js';\nimport { getWorkflowConfig } from '../lib/config/workflow-config.js';\n\nexport default class Build extends BaseCommand {\n static description = 'Build workflow bundles for deployment';\n\n static examples = [\n '$ workflow build',\n '$ workflow build --target vercel-build-output-api',\n '$ workflow build standalone',\n ];\n\n static flags = {\n target: Flags.string({\n char: 't',\n description: 'build target',\n options: ['standalone', 'vercel-build-output-api'],\n default: 'standalone',\n }),\n 'workflow-manifest': Flags.string({\n char: 'm',\n description: 'output location for workflow manifest',\n default: '',\n }),\n };\n\n static args = {\n target: Args.string({\n description: 'build target (deprecated, use --target flag)',\n required: false,\n }),\n };\n\n public async run(): Promise<void> {\n const { args, flags } = await this.parse(Build);\n\n // Get build target from flag or arg (with flag taking precedence)\n let buildTarget: string = flags.target;\n if (args.target && !flags.target) {\n buildTarget = args.target;\n this.logWarn(\n 'Using positional argument for target is deprecated. Use --target flag instead.'\n );\n }\n\n if (\n flags['workflow-manifest'] &&\n !flags['workflow-manifest'].match(/\\.(json|js|cjs|mjs)$/)\n ) {\n throw new Error(\n `Invalid --workflow-manifest provided, must end in .json or .js. Received: ${flags['workflow-manifest']}`\n );\n }\n\n // Validate build target\n if (!isValidBuildTarget(buildTarget)) {\n this.logWarn(\n `Invalid target \"${buildTarget}\". Using default \"standalone\".`\n );\n this.logWarn('Valid targets: standalone, vercel-build-output-api');\n buildTarget = 'standalone';\n }\n\n this.logInfo(`Using target: ${buildTarget}`);\n\n const config = getWorkflowConfig({\n buildTarget: buildTarget as BuildTarget,\n workflowManifest: flags['workflow-manifest'],\n });\n\n try {\n // Build using appropriate builder\n if (config.buildTarget === 'standalone') {\n this.logInfo('Building with StandaloneBuilder');\n const builder = new StandaloneBuilder(config);\n await builder.build();\n } else if (config.buildTarget === 'vercel-build-output-api') {\n this.logInfo('Building with VercelBuildOutputAPIBuilder');\n const builder = new VercelBuildOutputAPIBuilder(config);\n await builder.build();\n } else {\n this.error(`Unknown build target: ${config.buildTarget}`);\n }\n\n this.logInfo('Build completed successfully!');\n } catch (error) {\n this.error(\n `Build failed: ${\n error instanceof Error ? error.message : String(error)\n }`\n );\n }\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cancel.js","sourceRoot":"","sources":["../../src/commands/cancel.ts"],"names":[],"mappings":"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","sourcesContent":["import readline from 'node:readline';\nimport { Args, Flags } from '@oclif/core';\nimport { cancelRun } from '@workflow/core/runtime';\nimport { parseWorkflowName } from '@workflow/utils/parse-name';\nimport chalk from 'chalk';\nimport Table from 'easy-table';\nimport { BaseCommand } from '../base.js';\nimport { LOGGING_CONFIG, logger } from '../lib/config/log.js';\nimport { cliFlags } from '../lib/inspect/flags.js';\nimport { setupCliWorld } from '../lib/inspect/setup.js';\n\nexport default class Cancel extends BaseCommand {\n static description =\n 'Cancel a workflow run, or bulk-cancel runs by status/name';\n\n static aliases = ['c'];\n\n static examples = [\n '$ workflow cancel <run-id>',\n '$ workflow cancel --status=running',\n '$ workflow cancel --status=running --workflowName=myWorkflow',\n '$ workflow cancel --status=running -y',\n ];\n\n async catch(error: any) {\n if (LOGGING_CONFIG.VERBOSE_MODE) {\n console.error(error);\n }\n throw error;\n }\n\n static args = {\n runId: Args.string({\n description: 'ID of the run to cancel (omit for bulk mode with filters)',\n required: false,\n }),\n } as const;\n\n static flags = {\n ...cliFlags,\n status: Flags.string({\n description: 'Filter runs by status for bulk cancel',\n required: false,\n options: ['running', 'completed', 'failed', 'cancelled', 'pending'],\n helpGroup: 'Bulk Cancel',\n helpLabel: '--status',\n }),\n workflowName: Flags.string({\n description: 'Filter runs by workflow name for bulk cancel',\n required: false,\n char: 'n',\n helpGroup: 'Bulk Cancel',\n helpLabel: '-n, --workflowName',\n }),\n limit: Flags.integer({\n description: 'Max runs to cancel in bulk mode',\n required: false,\n default: 50,\n helpGroup: 'Bulk Cancel',\n helpLabel: '--limit',\n helpValue: 'NUMBER',\n }),\n confirm: Flags.boolean({\n description: 'Skip interactive confirmation prompt',\n required: false,\n char: 'y',\n default: false,\n helpGroup: 'Bulk Cancel',\n helpLabel: '-y, --confirm',\n }),\n };\n\n public async run(): Promise<void> {\n const { flags, args } = await this.parse(Cancel);\n\n const world = await setupCliWorld(flags, this.config.version);\n if (!world) {\n throw new Error(\n 'Failed to connect to backend. Check your configuration.'\n );\n }\n\n // Single-run cancel (existing behavior)\n if (args.runId) {\n await cancelRun(world, args.runId);\n logger.log(chalk.green(`Cancelled run ${args.runId}`));\n return;\n }\n\n // Bulk mode requires at least one filter\n if (!flags.status && !flags.workflowName) {\n logger.error(\n 'Provide a run ID or use --status/--workflowName to bulk cancel.\\n' +\n 'Examples:\\n' +\n ' workflow cancel <run-id>\\n' +\n ' workflow cancel --status=running\\n' +\n ' workflow cancel --status=running --workflowName=myWorkflow'\n );\n process.exit(1);\n }\n\n // Fetch matching runs\n const runs = await world.runs.list({\n status: flags.status as any,\n workflowName: flags.workflowName,\n pagination: { limit: flags.limit || 50 },\n resolveData: 'none',\n });\n\n if (runs.data.length === 0) {\n logger.warn('No matching runs found.');\n return;\n }\n\n // Display what will be cancelled\n const table = new Table();\n for (const run of runs.data) {\n const shortName =\n parseWorkflowName(run.workflowName)?.shortName || run.workflowName;\n table.cell('runId', run.runId);\n table.cell('workflow', chalk.blueBright(shortName));\n table.cell('status', run.status);\n table.cell(\n 'startedAt',\n run.startedAt ? new Date(run.startedAt).toISOString() : '-'\n );\n table.newRow();\n }\n logger.log(`\\nFound ${chalk.bold(runs.data.length)} runs to cancel:\\n`);\n logger.log(table.toString());\n\n if (runs.hasMore) {\n logger.warn(\n `More runs match these filters. Increase --limit (currently ${flags.limit || 50}) or re-run to cancel additional runs.`\n );\n }\n\n // Confirm unless --confirm/-y\n if (!flags.confirm) {\n const confirmed = await promptConfirm(\n `Cancel ${runs.data.length} run${runs.data.length === 1 ? '' : 's'}?`\n );\n if (!confirmed) {\n logger.log('Aborted.');\n return;\n }\n }\n\n // Cancel each run with progress\n let cancelled = 0;\n let failed = 0;\n for (const run of runs.data) {\n try {\n await cancelRun(world, run.runId);\n cancelled++;\n logger.log(\n chalk.green(` ✓ ${run.runId}`) +\n chalk.gray(` (${cancelled}/${runs.data.length})`)\n );\n } catch (err: any) {\n failed++;\n logger.warn(` ✗ ${run.runId}: ${err.message || String(err)}`);\n }\n }\n\n logger.log(\n `\\nDone: ${chalk.green(`${cancelled} cancelled`)}${failed > 0 ? `, ${chalk.red(`${failed} failed`)}` : ''}`\n );\n }\n}\n\nasync function promptConfirm(message: string): Promise<boolean> {\n // Non-TTY: abort since user cannot confirm interactively (use -y/--confirm to skip prompt)\n if (!process.stdin.isTTY) {\n return false;\n }\n\n const rl = readline.createInterface({\n input: process.stdin,\n output: process.stdout,\n });\n\n return new Promise<boolean>((resolve) => {\n rl.question(`${message} [y/N] `, (answer) => {\n rl.close();\n resolve(answer.trim().toLowerCase() === 'y');\n });\n });\n}\n"]}
|
package/dist/commands/dev.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,CAAC,OAAO,OAAO,GAAI,SAAQ,WAAW;IAC1C,MAAM,CAAC,WAAW,GAChB,2DAA2D,CAAC;IAE9D,MAAM,CAAC,QAAQ,GAAG,CAAC,gBAAgB,EAAE,4BAA4B,CAAC,CAAC;IAEnE,MAAM,CAAC,KAAK,GAAG;QACb,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;YAClB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,2BAA2B;YACxC,OAAO,EAAE,IAAI;SACd,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,8BAA8B;YAC3C,OAAO,EAAE,CAAC,YAAY,EAAE,yBAAyB,CAAC;YAClD,OAAO,EAAE,YAAY;SACtB,CAAC;KACH,CAAC;IAEK,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAExC,IAAI,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAChC,IAAI,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC;QACzD,IAAI,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,CAAC,8BAA8B,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,OAAO,CAAC,iBAAiB,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,CAAC,gDAAgD,CAAC,CAAC;IACjE,CAAC","sourcesContent":["import { Flags } from '@oclif/core';\nimport { BaseCommand } from '../base.js';\n\nexport default class Dev extends BaseCommand {\n static description =\n 'Start development server with file watching (Coming soon)';\n\n static examples = ['$ workflow dev', '$ workflow dev --port 3001'];\n\n static flags = {\n port: Flags.integer({\n char: 'p',\n description: 'port to run dev server on',\n default: 3000,\n }),\n target: Flags.string({\n char: 't',\n description: 'build target for development',\n options: ['standalone', 'vercel-build-output-api'],\n default: 'standalone',\n }),\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(Dev);\n\n this.logInfo('🚧 Development server is coming soon!');\n this.logInfo('');\n this.logInfo('This command will provide:');\n this.logInfo('• File watching');\n this.logInfo('• Development server for local workflows');\n this.logInfo('• Better error messages and debugging');\n this.logInfo('');\n this.logInfo(`Configured to run on port: ${flags.port}`);\n this.logInfo(`Build target: ${flags.target}`);\n this.logInfo('');\n this.logInfo('For now, use: workflow build --target <target>');\n }\n}\n"]}
|