@workflow/cli 5.0.0-beta.3 → 5.0.0-beta.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/base.d.ts.map +1 -1
- package/dist/base.js +8 -2
- package/dist/commands/build.js +1 -1
- package/dist/commands/cancel.d.ts.map +1 -1
- package/dist/commands/cancel.js +56 -10
- package/dist/commands/dev.js +1 -1
- package/dist/commands/health.js +1 -1
- package/dist/commands/init.js +1 -1
- package/dist/commands/inspect.d.ts +3 -0
- package/dist/commands/inspect.d.ts.map +1 -1
- package/dist/commands/inspect.js +37 -7
- 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 +1 -0
- package/dist/commands/web.d.ts.map +1 -1
- package/dist/commands/web.js +9 -3
- 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.js +1 -1
- 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 +8 -0
- package/dist/lib/inspect/flags.d.ts.map +1 -1
- package/dist/lib/inspect/flags.js +15 -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 +102 -47
- 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 +255 -131
- package/dist/lib/inspect/output.test.js +403 -3
- package/dist/lib/inspect/pagination.d.ts +10 -1
- package/dist/lib/inspect/pagination.d.ts.map +1 -1
- package/dist/lib/inspect/pagination.js +20 -4
- package/dist/lib/inspect/run.d.ts.map +1 -1
- package/dist/lib/inspect/run.js +32 -9
- package/dist/lib/inspect/setup.d.ts.map +1 -1
- package/dist/lib/inspect/setup.js +42 -6
- package/dist/lib/inspect/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 +47 -3
- package/dist/lib/update-check.js +1 -1
- package/package.json +14 -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
|
@@ -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;AAqC7E;;;;;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,CAuGf;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,6 +2,7 @@ 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;
|
|
@@ -43,7 +44,7 @@ async function startWebServer(webPort) {
|
|
|
43
44
|
* The web UI reads world configuration from server-side environment variables.
|
|
44
45
|
* Query params are only used for deep-linking to specific resources (resource/id, runId, etc.)
|
|
45
46
|
*/
|
|
46
|
-
function buildWebUIUrl(hostUrl, resource, id, flags) {
|
|
47
|
+
export function buildWebUIUrl(hostUrl, resource, id, flags) {
|
|
47
48
|
const params = new URLSearchParams();
|
|
48
49
|
// Deep-linking params
|
|
49
50
|
params.set('resource', resource);
|
|
@@ -83,7 +84,7 @@ export async function launchWebUI(resource, id, flags, _cliVersion) {
|
|
|
83
84
|
}
|
|
84
85
|
if (isVercelBackend && teamSlug && projectName && !useLocalUi) {
|
|
85
86
|
logger.debug(`Checking Vercel dashboard availability for team: ${teamSlug}, project: ${projectName}`);
|
|
86
|
-
const dashboardUrl = getVercelDashboardUrl(teamSlug, projectName, resource, id);
|
|
87
|
+
const dashboardUrl = getVercelDashboardUrl(teamSlug, projectName, resource, id, envVars.WORKFLOW_VERCEL_ENV || 'production');
|
|
87
88
|
if (disableBrowserOpen) {
|
|
88
89
|
logger.info(chalk.cyan(`Vercel dashboard URL: ${dashboardUrl}`));
|
|
89
90
|
logger.info(chalk.cyan('(Browser auto-open disabled)'));
|
|
@@ -146,4 +147,47 @@ export async function launchWebUI(resource, id, flags, _cliVersion) {
|
|
|
146
147
|
});
|
|
147
148
|
}
|
|
148
149
|
}
|
|
149
|
-
|
|
150
|
+
/**
|
|
151
|
+
* Build the deep-link URL for a resource without any side effects (no server,
|
|
152
|
+
* no browser). Picks the Vercel dashboard for a Vercel backend (unless
|
|
153
|
+
* `--localUi`), otherwise the local web UI deep link.
|
|
154
|
+
*
|
|
155
|
+
* Assumes env vars have already been resolved (e.g. via `setupCliWorld`).
|
|
156
|
+
*/
|
|
157
|
+
export function buildDeepLinkUrl(resource, id, flags) {
|
|
158
|
+
const envVars = getEnvVars();
|
|
159
|
+
const vercelBackendNames = ['vercel', '@workflow/world-vercel'];
|
|
160
|
+
const isVercelBackend = vercelBackendNames.includes(envVars.WORKFLOW_TARGET_WORLD);
|
|
161
|
+
const teamSlug = envVars.WORKFLOW_VERCEL_TEAM;
|
|
162
|
+
const projectName = envVars.WORKFLOW_VERCEL_PROJECT_NAME || envVars.WORKFLOW_VERCEL_PROJECT;
|
|
163
|
+
// Use the Vercel dashboard when targeting Vercel (and not forced local).
|
|
164
|
+
if (isVercelBackend && !flags.localUi && teamSlug && projectName) {
|
|
165
|
+
return getVercelDashboardUrl(teamSlug, projectName, resource, id, envVars.WORKFLOW_VERCEL_ENV || 'production');
|
|
166
|
+
}
|
|
167
|
+
// Fall back to the local web UI deep link.
|
|
168
|
+
const webPort = flags.webPort ?? 3456;
|
|
169
|
+
return buildWebUIUrl(getHostUrl(webPort), resource, id, flags);
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Resolve and print a shareable deep-link URL to stdout, then return — without
|
|
173
|
+
* opening a browser or starting the local web server. Intended for scripting
|
|
174
|
+
* and agents that need the link rather than a rendered dashboard.
|
|
175
|
+
*
|
|
176
|
+
* Human-readable chatter (the startup box, info/debug logs) is routed to stderr
|
|
177
|
+
* so stdout contains only the URL (or `{ "url": "..." }` with `--json`).
|
|
178
|
+
*/
|
|
179
|
+
export async function printDeepLink(resource, id, flags, version) {
|
|
180
|
+
const wantsJson = Boolean(flags.json);
|
|
181
|
+
// Force JSON logging mode during setup so the startup box and any info/debug
|
|
182
|
+
// logs go to stderr, keeping stdout clean for the URL. We print the URL
|
|
183
|
+
// ourselves below, respecting the user's actual `--json` choice.
|
|
184
|
+
await setupCliWorld({ ...flags, json: true }, version, true);
|
|
185
|
+
const url = buildDeepLinkUrl(resource, id, flags);
|
|
186
|
+
if (wantsJson) {
|
|
187
|
+
process.stdout.write(`${JSON.stringify({ url }, null, 2)}\n`);
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
process.stdout.write(`${url}\n`);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9pbnNwZWN0L3dlYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDM0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFeEQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsT0FBZSxFQUFFLEVBQUUsQ0FBQyxvQkFBb0IsT0FBTyxFQUFFLENBQUM7QUFFN0UsSUFBSSxVQUFVLEdBQWtCLElBQUksQ0FBQztBQUVyQzs7R0FFRztBQUNILEtBQUssVUFBVSxlQUFlLENBQUMsT0FBZTtJQUM1QyxJQUFJLENBQUM7UUFDSCxNQUFNLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUMxRCxPQUFPLFFBQVEsQ0FBQyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztBQUNILENBQUM7QUFFRDs7R0FFRztBQUNILEtBQUssVUFBVSxjQUFjLENBQUMsT0FBZTtJQUMzQyxJQUFJLE1BQU0sZUFBZSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDL0MsTUFBTSxDQUFDLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQzFDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUksQ0FBQztRQUNILE1BQU0sQ0FBQyxJQUFJ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QUMsS0FBSyxVQUFVLGFBQWEsQ0FDakMsUUFBZ0IsRUFDaEIsRUFBc0IsRUFDdEIsS0FBMEIsRUFDMUIsT0FBZTtJQUVmLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFdEMsNkVBQTZFO0lBQzdFLHdFQUF3RTtJQUN4RSxpRUFBaUU7SUFDakUsTUFBTSxhQUFhLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBRXBFLE1BQU0sR0FBRyxHQUFHLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFFbEQsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUNkLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEUsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNlcnZlciB9IGZyb20gJ25vZGU6aHR0cCc7XG5pbXBvcnQgY2hhbGsgZnJvbSAnY2hhbGsnO1xuaW1wb3J0IG9wZW4gZnJvbSAnb3Blbic7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLi9jb25maWcvbG9nLmpzJztcbmltcG9ydCB7IGdldEVudlZhcnMgfSBmcm9tICcuL2Vudi5qcyc7XG5pbXBvcnQgeyBzZXR1cENsaVdvcmxkIH0gZnJvbSAnLi9zZXR1cC5qcyc7XG5pbXBvcnQgeyBnZXRWZXJjZWxEYXNoYm9hcmRVcmwgfSBmcm9tICcuL3ZlcmNlbC1hcGkuanMnO1xuXG5leHBvcnQgY29uc3QgZ2V0SG9zdFVybCA9ICh3ZWJQb3J0OiBudW1iZXIpID0+IGBodHRwOi8vbG9jYWxob3N0OiR7d2ViUG9ydH1gO1xuXG5sZXQgaHR0cFNlcnZlcjogU2VydmVyIHwgbnVsbCA9IG51bGw7XG5cbi8qKlxuICogQ2hlY2sgaWYgYSBzZXJ2ZXIgaXMgYWxyZWFkeSBsaXN0ZW5pbmcgb24gdGhlIGdpdmVuIFVSTC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gaXNTZXJ2ZXJSdW5uaW5nKGhvc3RVcmw6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goaG9zdFVybCwgeyBtZXRob2Q6ICdIRUFEJyB9KTtcbiAgICByZXR1cm4gcmVzcG9uc2Uub2s7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIFN0YXJ0IHRoZSBAd29ya2Zsb3cvd2ViIHNlcnZlciBpbiB0aGUgY3VycmVudCBwcm9jZXNzLlxuICovXG5hc3luYyBmdW5jdGlvbiBzdGFydFdlYlNlcnZlcih3ZWJQb3J0OiBudW1iZXIpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgaWYgKGF3YWl0IGlzU2VydmVyUnVubmluZyhnZXRIb3N0VXJsKHdlYlBvcnQpKSkge1xuICAgIGxvZ2dlci5kZWJ1ZygnU2VydmVyIGlzIGFscmVhZHkgcnVubmluZycpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBsb2dnZXIuaW5mbygnU3RhcnRpbmcgd2ViIFVJIHNlcnZlci4uLicpO1xuICAgIGNvbnN0IHsgc3RhcnRTZXJ2ZXIgfSA9IGF3YWl0IGltcG9ydCgnQHdvcmtmbG93L3dlYi9zZXJ2ZXInKTtcbiAgICBodHRwU2VydmVyID0gYXdhaXQgc3RhcnRTZXJ2ZXIod2ViUG9ydCk7XG4gICAgbG9nZ2VyLnN1Y2Nlc3MoY2hhbGsuZ3JlZW4oYFdlYiBVSSBzZXJ2ZXIgc3RhcnRlZCBvbiBwb3J0ICR7d2ViUG9ydH1gKSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgbG9nZ2VyLmVycm9yKGBGYWlsZWQgdG8gc3RhcnQgc2VydmVyOiAke2Vycm9yfWApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIEJ1aWxkIGEgVVJMIGZvciBvcGVuaW5nIHRoZSBsb2NhbCB3ZWIgVUkuXG4gKlxuICogVGhlIHdlYiBVSSByZWFkcyB3b3JsZCBjb25maWd1cmF0aW9uIGZyb20gc2VydmVyLXNpZGUgZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuICogUXVlcnkgcGFyYW1zIGFyZSBvbmx5IHVzZWQgZm9yIGRlZXAtbGlua2luZyB0byBzcGVjaWZpYyByZXNvdXJjZXMgKHJlc291cmNlL2lkLCBydW5JZCwgZXRjLilcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkV2ViVUlVcmwoXG4gIGhvc3RVcmw6IHN0cmluZyxcbiAgcmVzb3VyY2U6IHN0cmluZyxcbiAgaWQ6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgZmxhZ3M6IFJlY29yZDxzdHJpbmcsIGFueT5cbik6IHN0cmluZyB7XG4gIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcblxuICAvLyBEZWVwLWxpbmtpbmcgcGFyYW1zXG4gIHBhcmFtcy5zZXQoJ3Jlc291cmNlJywgcmVzb3VyY2UpO1xuICBpZiAoaWQpIHtcbiAgICBwYXJhbXMuc2V0KCdpZCcsIGlkKTtcbiAgfVxuXG4gIC8vIE9wdGlvbmFsIGRlZXAtbGlua2luZyB0byBzcGVjaWZpYyBydW4vc3RlcC9ob29rXG4gIGZvciAoY29uc3QgZmxhZ05hbWUgb2YgWydydW5JZCcsICdzdGVwSWQnLCAnaG9va0lkJ10gYXMgY29uc3QpIHtcbiAgICBjb25zdCB2YWx1ZSA9IGZsYWdzW2ZsYWdOYW1lXTtcbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gJycgJiYgdmFsdWUgIT09IGZhbHNlKSB7XG4gICAgICBwYXJhbXMuc2V0KGZsYWdOYW1lLCBTdHJpbmcodmFsdWUpKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBxdWVyeVN0cmluZyA9IHBhcmFtcy50b1N0cmluZygpO1xuICByZXR1cm4gcXVlcnlTdHJpbmcgPyBgJHtob3N0VXJsfT8ke3F1ZXJ5U3RyaW5nfWAgOiBob3N0VXJsO1xufVxuXG4vKipcbiAqIExhdW5jaCB0aGUgd2ViIFVJIHdpdGggdGhlIHNwZWNpZmllZCBjb25maWd1cmF0aW9uLlxuICogVGhpcyBzdGFydHMgdGhlIHNlcnZlciAoaWYgbm90IHJ1bm5pbmcpLCBvcGVucyB0aGUgYnJvd3NlciwgdGhlbiBrZWVwcyB0aGUgc2VydmVyIHJ1bm5pbmcuXG4gKlxuICogV29ybGQgY29uZmlndXJhdGlvbiBpcyBwYXNzZWQgdG8gdGhlIHdlYiBzZXJ2ZXIgdmlhIGVudmlyb25tZW50IHZhcmlhYmxlcy5cbiAqIFRoZSB3ZWIgVUkgcmVhZHMgdGhlc2UgZnJvbSBwcm9jZXNzLmVudiBvbiB0aGUgc2VydmVyIHNpZGUsIG5vdCBmcm9tIHF1ZXJ5IHBhcmFtcy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxhdW5jaFdlYlVJKFxuICByZXNvdXJjZTogc3RyaW5nLFxuICBpZDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICBmbGFnczogUmVjb3JkPHN0cmluZywgYW55PixcbiAgX2NsaVZlcnNpb246IHN0cmluZ1xuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGVudlZhcnMgPSBnZXRFbnZWYXJzKCk7XG5cbiAgLy8gQ2hlY2sgaWYgYnJvd3NlciBvcGVuaW5nIGlzIGRpc2FibGVkIHZpYSBmbGFnIG9yIGVudmlyb25tZW50IHZhcmlhYmxlXG4gIGNvbnN0IGRpc2FibGVCcm93c2VyT3BlbiA9IGZsYWdzLm5vQnJvd3NlcjtcblxuICAvLyBDaGVjayBpZiB3ZSBzaG91bGQgdHJ5IHRvIHVzZSB0aGUgVmVyY2VsIGRhc2hib2FyZFxuICBjb25zdCB2ZXJjZWxCYWNrZW5kTmFtZXMgPSBbJ3ZlcmNlbCcsICdAd29ya2Zsb3cvd29ybGQtdmVyY2VsJ107XG4gIGNvbnN0IGlzVmVyY2VsQmFja2VuZCA9IHZlcmNlbEJhY2tlbmROYW1lcy5pbmNsdWRlcyhcbiAgICBlbnZWYXJzLldPUktGTE9XX1RBUkdFVF9XT1JMRFxuICApO1xuICBjb25zdCB0ZWFtU2x1ZyA9IGVudlZhcnMuV09SS0ZMT1dfVkVSQ0VMX1RFQU07XG4gIGNvbnN0IHByb2plY3ROYW1lID1cbiAgICBlbnZWYXJzLldPUktGTE9XX1ZFUkNFTF9QUk9KRUNUX05BTUUgfHwgZW52VmFycy5XT1JLRkxPV19WRVJDRUxfUFJPSkVDVDtcblxuICAvLyBDaGVjayBpZiB1c2VyIHdhbnRzIGxvY2FsIFVJIHZpYSBmbGFnIG9yIGVudmlyb25tZW50IHZhcmlhYmxlXG4gIGNvbnN0IHVzZUxvY2FsVWkgPSBmbGFncy5sb2NhbFVpO1xuXG4gIGlmICghdXNlTG9jYWxVaSAmJiBpc1ZlcmNlbEJhY2tlbmQpIHtcbiAgICBsb2dnZXIuaW5mbyhcbiAgICAgICdJZiB5b3UgZG8gbm90IHdhbnQgdG8gdXNlIHRoZSBWZXJjZWwgZGFzaGJvYXJkLCB1c2UgdGhlIC0tbG9jYWxVaSBmbGFnIG9yIHNldCBXT1JLRkxPV19MT0NBTF9VST0xIGluIHlvdXIgZW52aXJvbm1lbnQgdmFyaWFibGVzLidcbiAgICApO1xuICB9XG4gIGlmIChpc1ZlcmNlbEJhY2tlbmQgJiYgdGVhbVNsdWcgJiYgcHJvamVjdE5hbWUgJiYgIXVzZUxvY2FsVWkpIHtcbiAgICBsb2dnZXIuZGVidWcoXG4gICAgICBgQ2hlY2tpbmcgVmVyY2VsIGRhc2hib2FyZCBhdmFpbGFiaWxpdHkgZm9yIHRlYW06ICR7dGVhbVNsdWd9LCBwcm9qZWN0OiAke3Byb2plY3ROYW1lfWBcbiAgICApO1xuXG4gICAgY29uc3QgZGFzaGJvYXJkVXJsID0gZ2V0VmVyY2VsRGFzaGJvYXJkVXJsKFxuICAgICAgdGVhbVNsdWcsXG4gICAgICBwcm9qZWN0TmFtZSxcbiAgICAgIHJlc291cmNlLFxuICAgICAgaWQsXG4gICAgICBlbnZWYXJzLldPUktGTE9XX1ZFUkNFTF9FTlYgfHwgJ3Byb2R1Y3Rpb24nXG4gICAgKTtcblxuICAgIGlmIChkaXNhYmxlQnJvd3Nlck9wZW4pIHtcbiAgICAgIGxvZ2dlci5pbmZvKGNoYWxrLmN5YW4oYFZlcmNlbCBkYXNoYm9hcmQgVVJMOiAke2Rhc2hib2FyZFVybH1gKSk7XG4gICAgICBsb2dnZXIuaW5mbyhjaGFsay5jeWFuKCcoQnJvd3NlciBhdXRvLW9wZW4gZGlzYWJsZWQpJykpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxvZ2dlci5pbmZvKFxuICAgICAgY2hhbGsuZ3JlZW4oYE9wZW5pbmcgVmVyY2VsIGRhc2hib2FyZCBmb3Igd29ya2Zsb3dzIGF0OiAke2Rhc2hib2FyZFVybH1gKVxuICAgICk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IG9wZW4oZGFzaGJvYXJkVXJsKTtcbiAgICAgIHJldHVybjsgLy8gRXhpdCBlYXJseSBzaW5jZSB3ZSBvcGVuZWQgdGhlIGRhc2hib2FyZFxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBsb2dnZXIuZXJyb3IoYEZhaWxlZCB0byBvcGVuIGJyb3dzZXI6ICR7ZXJyb3J9YCk7XG4gICAgICBsb2dnZXIuaW5mbyhgUGxlYXNlIG9wZW4gdGhlIGxpbmsgbWFudWFsbHkuYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgLy8gRmFsbCBiYWNrIHRvIGxvY2FsIHdlYiBVSVxuICBjb25zdCB3ZWJQb3J0ID0gZmxhZ3Mud2ViUG9ydCA/PyAzNDU2O1xuICBjb25zdCBob3N0VXJsID0gZ2V0SG9zdFVybCh3ZWJQb3J0KTtcbiAgY29uc3QgdXJsID0gYnVpbGRXZWJVSVVybChob3N0VXJsLCByZXNvdXJjZSwgaWQsIGZsYWdzKTtcblxuICAvLyBDaGVjayBpZiBzZXJ2ZXIgaXMgYWxyZWFkeSBydW5uaW5nXG4gIGNvbnN0IGFscmVhZHlSdW5uaW5nID0gYXdhaXQgaXNTZXJ2ZXJSdW5uaW5nKGhvc3RVcmwpO1xuXG4gIGlmIChhbHJlYWR5UnVubmluZykge1xuICAgIGxvZ2dlci5pbmZvKFxuICAgICAgY2hhbGsuY3lhbihgV2ViIFVJIHNlcnZlciBpcyBhbHJlYWR5IHJ1bm5pbmcgb24gcG9ydCAke3dlYlBvcnR9LmApXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBTdGFydCB0aGUgc2VydmVyXG4gICAgY29uc3Qgc3RhcnRlZCA9IGF3YWl0IHN0YXJ0V2ViU2VydmVyKHdlYlBvcnQpO1xuICAgIGlmICghc3RhcnRlZCkge1xuICAgICAgbG9nZ2VyLmVycm9yKCdGYWlsZWQgdG8gc3RhcnQgd2ViIFVJIHNlcnZlcicpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIC8vIE9wZW4gYnJvd3NlclxuICBpZiAoZGlzYWJsZUJyb3dzZXJPcGVuKSB7XG4gICAgbG9nZ2VyLmluZm8oY2hhbGsuY3lhbihgV2ViIFVJIGF2YWlsYWJsZSBhdDogJHt1cmx9YCkpO1xuICAgIGxvZ2dlci5pbmZvKGNoYWxrLmN5YW4oJyhCcm93c2VyIGF1dG8tb3BlbiBkaXNhYmxlZCknKSk7XG4gIH0gZWxzZSB7XG4gICAgbG9nZ2VyLmluZm8oY2hhbGsuY3lhbihgT3BlbmluZyBicm93c2VyIHRvOiAke3VybH1gKSk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IG9wZW4odXJsKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgbG9nZ2VyLmVycm9yKGBGYWlsZWQgdG8gb3BlbiBicm93c2VyOiAke2Vycm9yfWApO1xuICAgICAgbG9nZ2VyLmluZm8oYFBsZWFzZSBvcGVuIHRoZSBsaW5rIG1hbnVhbGx5LmApO1xuICAgIH1cbiAgfVxuXG4gIC8vIElmIHdlIHN0YXJ0ZWQgdGhlIHNlcnZlciwga2VlcCB0aGUgcHJvY2VzcyBydW5uaW5nXG4gIGlmICghYWxyZWFkeVJ1bm5pbmcgJiYgaHR0cFNlcnZlcikge1xuICAgIGxvZ2dlci5pbmZvKGNoYWxrLmN5YW4oJ1ByZXNzIEN0cmwrQyB0byBzdG9wIHRoZSB3ZWIgVUkgc2VydmVyIGFuZCBleGl0JykpO1xuXG4gICAgLy8gS2VlcCB0aGUgQ0xJIHByb2Nlc3MgYWxpdmUgd2hpbGUgdGhlIHNlcnZlciBpcyBydW5uaW5nXG4gICAgYXdhaXQgbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0+IHtcbiAgICAgIGlmIChodHRwU2VydmVyKSB7XG4gICAgICAgIGh0dHBTZXJ2ZXIub24oJ2Nsb3NlJywgKCkgPT4gcmVzb2x2ZSgpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIEJ1aWxkIHRoZSBkZWVwLWxpbmsgVVJMIGZvciBhIHJlc291cmNlIHdpdGhvdXQgYW55IHNpZGUgZWZmZWN0cyAobm8gc2VydmVyLFxuICogbm8gYnJvd3NlcikuIFBpY2tzIHRoZSBWZXJjZWwgZGFzaGJvYXJkIGZvciBhIFZlcmNlbCBiYWNrZW5kICh1bmxlc3NcbiAqIGAtLWxvY2FsVWlgKSwgb3RoZXJ3aXNlIHRoZSBsb2NhbCB3ZWIgVUkgZGVlcCBsaW5rLlxuICpcbiAqIEFzc3VtZXMgZW52IHZhcnMgaGF2ZSBhbHJlYWR5IGJlZW4gcmVzb2x2ZWQgKGUuZy4gdmlhIGBzZXR1cENsaVdvcmxkYCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZERlZXBMaW5rVXJsKFxuICByZXNvdXJjZTogc3RyaW5nLFxuICBpZDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICBmbGFnczogUmVjb3JkPHN0cmluZywgYW55PlxuKTogc3RyaW5nIHtcbiAgY29uc3QgZW52VmFycyA9IGdldEVudlZhcnMoKTtcblxuICBjb25zdCB2ZXJjZWxCYWNrZW5kTmFtZXMgPSBbJ3ZlcmNlbCcsICdAd29ya2Zsb3cvd29ybGQtdmVyY2VsJ107XG4gIGNvbnN0IGlzVmVyY2VsQmFja2VuZCA9IHZlcmNlbEJhY2tlbmROYW1lcy5pbmNsdWRlcyhcbiAgICBlbnZWYXJzLldPUktGTE9XX1RBUkdFVF9XT1JMRFxuICApO1xuICBjb25zdCB0ZWFtU2x1ZyA9IGVudlZhcnMuV09SS0ZMT1dfVkVSQ0VMX1RFQU07XG4gIGNvbnN0IHByb2plY3ROYW1lID1cbiAgICBlbnZWYXJzLldPUktGTE9XX1ZFUkNFTF9QUk9KRUNUX05BTUUgfHwgZW52VmFycy5XT1JLRkxPV19WRVJDRUxfUFJPSkVDVDtcblxuICAvLyBVc2UgdGhlIFZlcmNlbCBkYXNoYm9hcmQgd2hlbiB0YXJnZXRpbmcgVmVyY2VsIChhbmQgbm90IGZvcmNlZCBsb2NhbCkuXG4gIGlmIChpc1ZlcmNlbEJhY2tlbmQgJiYgIWZsYWdzLmxvY2FsVWkgJiYgdGVhbVNsdWcgJiYgcHJvamVjdE5hbWUpIHtcbiAgICByZXR1cm4gZ2V0VmVyY2VsRGFzaGJvYXJkVXJsKFxuICAgICAgdGVhbVNsdWcsXG4gICAgICBwcm9qZWN0TmFtZSxcbiAgICAgIHJlc291cmNlLFxuICAgICAgaWQsXG4gICAgICBlbnZWYXJzLldPUktGTE9XX1ZFUkNFTF9FTlYgfHwgJ3Byb2R1Y3Rpb24nXG4gICAgKTtcbiAgfVxuXG4gIC8vIEZhbGwgYmFjayB0byB0aGUgbG9jYWwgd2ViIFVJIGRlZXAgbGluay5cbiAgY29uc3Qgd2ViUG9ydCA9IGZsYWdzLndlYlBvcnQgPz8gMzQ1NjtcbiAgcmV0dXJuIGJ1aWxkV2ViVUlVcmwoZ2V0SG9zdFVybCh3ZWJQb3J0KSwgcmVzb3VyY2UsIGlkLCBmbGFncyk7XG59XG5cbi8qKlxuICogUmVzb2x2ZSBhbmQgcHJpbnQgYSBzaGFyZWFibGUgZGVlcC1saW5rIFVSTCB0byBzdGRvdXQsIHRoZW4gcmV0dXJuIOKAlCB3aXRob3V0XG4gKiBvcGVuaW5nIGEgYnJvd3NlciBvciBzdGFydGluZyB0aGUgbG9jYWwgd2ViIHNlcnZlci4gSW50ZW5kZWQgZm9yIHNjcmlwdGluZ1xuICogYW5kIGFnZW50cyB0aGF0IG5lZWQgdGhlIGxpbmsgcmF0aGVyIHRoYW4gYSByZW5kZXJlZCBkYXNoYm9hcmQuXG4gKlxuICogSHVtYW4tcmVhZGFibGUgY2hhdHRlciAodGhlIHN0YXJ0dXAgYm94LCBpbmZvL2RlYnVnIGxvZ3MpIGlzIHJvdXRlZCB0byBzdGRlcnJcbiAqIHNvIHN0ZG91dCBjb250YWlucyBvbmx5IHRoZSBVUkwgKG9yIGB7IFwidXJsXCI6IFwiLi4uXCIgfWAgd2l0aCBgLS1qc29uYCkuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwcmludERlZXBMaW5rKFxuICByZXNvdXJjZTogc3RyaW5nLFxuICBpZDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICBmbGFnczogUmVjb3JkPHN0cmluZywgYW55PixcbiAgdmVyc2lvbjogc3RyaW5nXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3Qgd2FudHNKc29uID0gQm9vbGVhbihmbGFncy5qc29uKTtcblxuICAvLyBGb3JjZSBKU09OIGxvZ2dpbmcgbW9kZSBkdXJpbmcgc2V0dXAgc28gdGhlIHN0YXJ0dXAgYm94IGFuZCBhbnkgaW5mby9kZWJ1Z1xuICAvLyBsb2dzIGdvIHRvIHN0ZGVyciwga2VlcGluZyBzdGRvdXQgY2xlYW4gZm9yIHRoZSBVUkwuIFdlIHByaW50IHRoZSBVUkxcbiAgLy8gb3Vyc2VsdmVzIGJlbG93LCByZXNwZWN0aW5nIHRoZSB1c2VyJ3MgYWN0dWFsIGAtLWpzb25gIGNob2ljZS5cbiAgYXdhaXQgc2V0dXBDbGlXb3JsZCh7IC4uLmZsYWdzLCBqc29uOiB0cnVlIH0gYXMgYW55LCB2ZXJzaW9uLCB0cnVlKTtcblxuICBjb25zdCB1cmwgPSBidWlsZERlZXBMaW5rVXJsKHJlc291cmNlLCBpZCwgZmxhZ3MpO1xuXG4gIGlmICh3YW50c0pzb24pIHtcbiAgICBwcm9jZXNzLnN0ZG91dC53cml0ZShgJHtKU09OLnN0cmluZ2lmeSh7IHVybCB9LCBudWxsLCAyKX1cXG5gKTtcbiAgfSBlbHNlIHtcbiAgICBwcm9jZXNzLnN0ZG91dC53cml0ZShgJHt1cmx9XFxuYCk7XG4gIH1cbn1cbiJdfQ==
|
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.31",
|
|
4
4
|
"description": "Command-line interface for Workflow SDK",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"@workflow/tsconfig": "5.0.0-beta.0"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@oclif/core": "4.
|
|
37
|
+
"@oclif/core": "4.11.4",
|
|
38
38
|
"@oclif/plugin-help": "6.2.37",
|
|
39
39
|
"@swc/core": "1.15.3",
|
|
40
40
|
"@vercel/cli-auth": "0.0.1",
|
|
@@ -46,24 +46,24 @@
|
|
|
46
46
|
"dotenv": "^17.3.1",
|
|
47
47
|
"easy-table": "1.2.0",
|
|
48
48
|
"enhanced-resolve": "5.19.0",
|
|
49
|
-
"esbuild": "^0.
|
|
49
|
+
"esbuild": "^0.28.1",
|
|
50
50
|
"find-up": "7.0.0",
|
|
51
51
|
"mixpart": "0.0.4",
|
|
52
52
|
"open": "10.2.0",
|
|
53
53
|
"ora": "8.2.0",
|
|
54
54
|
"terminal-link": "5.0.0",
|
|
55
|
-
"tinyglobby": "0.2.
|
|
55
|
+
"tinyglobby": "0.2.17",
|
|
56
56
|
"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.
|
|
57
|
+
"zod": "~4.3.6",
|
|
58
|
+
"@workflow/builders": "5.0.0-beta.31",
|
|
59
|
+
"@workflow/core": "5.0.0-beta.31",
|
|
60
|
+
"@workflow/errors": "5.0.0-beta.10",
|
|
61
|
+
"@workflow/swc-plugin": "5.0.0-beta.5",
|
|
62
|
+
"@workflow/utils": "5.0.0-beta.6",
|
|
63
|
+
"@workflow/web": "5.0.0-beta.31",
|
|
64
|
+
"@workflow/world": "5.0.0-beta.19",
|
|
65
|
+
"@workflow/world-local": "5.0.0-beta.27",
|
|
66
|
+
"@workflow/world-vercel": "5.0.0-beta.27"
|
|
67
67
|
},
|
|
68
68
|
"scripts": {
|
|
69
69
|
"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":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EACL,iBAAiB,EACjB,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAoB,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErE,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,WAAW;IAC5C,MAAM,CAAC,WAAW,GAAG,uCAAuC,CAAC;IAE7D,MAAM,CAAC,QAAQ,GAAG;QAChB,kBAAkB;QAClB,mDAAmD;QACnD,6BAA6B;KAC9B,CAAC;IAEF,MAAM,CAAC,KAAK,GAAG;QACb,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,cAAc;YAC3B,OAAO,EAAE,CAAC,YAAY,EAAE,yBAAyB,CAAC;YAClD,OAAO,EAAE,YAAY;SACtB,CAAC;QACF,mBAAmB,EAAE,KAAK,CAAC,MAAM,CAAC;YAChC,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,uCAAuC;YACpD,OAAO,EAAE,EAAE;SACZ,CAAC;KACH,CAAC;IAEF,MAAM,CAAC,IAAI,GAAG;QACZ,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;YAClB,WAAW,EAAE,8CAA8C;YAC3D,QAAQ,EAAE,KAAK;SAChB,CAAC;KACH,CAAC;IAEK,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEhD,kEAAkE;QAClE,IAAI,WAAW,GAAW,KAAK,CAAC,MAAM,CAAC;QACvC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACjC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,IAAI,CAAC,OAAO,CACV,gFAAgF,CACjF,CAAC;QACJ,CAAC;QAED,IACE,KAAK,CAAC,mBAAmB,CAAC;YAC1B,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,EACzD,CAAC;YACD,MAAM,IAAI,KAAK,CACb,6EAA6E,KAAK,CAAC,mBAAmB,CAAC,EAAE,CAC1G,CAAC;QACJ,CAAC;QAED,wBAAwB;QACxB,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,OAAO,CACV,mBAAmB,WAAW,gCAAgC,CAC/D,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,oDAAoD,CAAC,CAAC;YACnE,WAAW,GAAG,YAAY,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,iBAAiB,WAAW,EAAE,CAAC,CAAC;QAE7C,MAAM,MAAM,GAAG,iBAAiB,CAAC;YAC/B,WAAW,EAAE,WAA0B;YACvC,gBAAgB,EAAE,KAAK,CAAC,mBAAmB,CAAC;SAC7C,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,kCAAkC;YAClC,IAAI,MAAM,CAAC,WAAW,KAAK,YAAY,EAAE,CAAC;gBACxC,IAAI,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;gBAChD,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBAC9C,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YACxB,CAAC;iBAAM,IAAI,MAAM,CAAC,WAAW,KAAK,yBAAyB,EAAE,CAAC;gBAC5D,IAAI,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC;gBAC1D,MAAM,OAAO,GAAG,IAAI,2BAA2B,CAAC,MAAM,CAAC,CAAC;gBACxD,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,KAAK,CAAC,yBAAyB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;YAC5D,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CACR,iBACE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CACvD,EAAE,CACH,CAAC;QACJ,CAAC;IACH,CAAC","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"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/commands/health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAiBxD,SAAS,mBAAmB,CAAC,QAAgB,EAAE,SAAiB;IAC9D,OAAO,CACL,KAAK,CAAC,KAAK,CAAC,OAAO,QAAQ,sBAAsB,CAAC;QAClD,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,KAAK,CAAC,CAChC,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAgB,EAAE,KAAc;IAC7D,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,QAAQ,wBAAwB,CAAC,GAAG,WAAW,CAAC;AAC1E,CAAC;AAED,SAAS,mBAAmB,CAAC,YAAoB;IAC/C,OAAO,YAAY,KAAK,MAAM;QAC5B,CAAC,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC;QACtB,CAAC,CAAC,CAAC,YAAmC,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,YAAY,CAAC,OAA+B,EAAE,OAAe;IACpE,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACf,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAChE,MAAM,CAAC,GAAG,CACR,KAAK,CAAC,GAAG,CAAC,GAAG,cAAc,OAAO,OAAO,CAAC,MAAM,wBAAwB,CAAC,CAC1E,CAAC;QACF,0CAA0C;QAC1C,IAAI,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,uBAAuB,EAAE,CAAC;YAC/D,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACf,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,wCAAwC,CAAC,CAAC,CAAC;YACnE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC,CAAC;YACpE,MAAM,CAAC,GAAG,CACR,KAAK,CAAC,MAAM,CAAC,qDAAqD,CAAC,CACpE,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAC5B,YAAgC,EAChC,YAAgC;IAEhC,MAAM,CAAC,KAAK,CAAC,uBAAuB,YAAY,IAAI,WAAW,EAAE,CAAC,CAAC;IACnE,MAAM,CAAC,KAAK,CAAC,aAAa,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,WAAW,EAAE,CAAC,CAAC;IAC7D,MAAM,CAAC,KAAK,CACV,gCAAgC,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,WAAW,EAAE,CACrF,CAAC;IACF,MAAM,CAAC,KAAK,CAAC,2BAA2B,YAAY,IAAI,QAAQ,EAAE,CAAC,CAAC;AACtE,CAAC;AAED,6CAA6C;AAC7C,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEhC,SAAS,mBAAmB,CAC1B,YAAgC,EAChC,YAAgC;IAEhC,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,oBAAoB,YAAY,EAAE,CAAC;IAC5C,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC;QACxC,OAAO,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;IAC7C,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACrB,OAAO,oBAAoB,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAChD,CAAC;IACD,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,oBAAoB,YAAY,EAAE,CAAC;IAC5C,CAAC;IACD,kEAAkE;IAClE,OAAO,oBAAoB,kBAAkB,EAAE,CAAC;AAClD,CAAC;AAED,KAAK,UAAU,sBAAsB,CACnC,OAAe,EACf,QAAyB,EACzB,OAAgB;IAEhB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,GAAG,OAAO,4BAA4B,QAAQ,WAAW,CAAC;QAC5E,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,KAAK,CAAC,2BAA2B,SAAS,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE;YACtC,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;SAClC,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAChB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC/C,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,KAAK,CAAC,sCAAsC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IAChD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,YAAY,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACtE,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,KAAK,CAAC,6BAA6B,YAAY,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAC5C,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,2BAA2B,CACxC,OAAgB,EAChB,YAAqB;IAErB,MAAM,YAAY,GAAG,YAAY,IAAI,CAAC,MAAM,eAAe,EAAE,CAAC,CAAC;IAE/D,IAAI,OAAO,EAAE,CAAC;QACZ,qBAAqB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,OAAO,GAAG,mBAAmB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAEhE,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,CAAC,KAAK,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACtE,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACd,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,QAAQ,GACZ,OAAO,KAAK,oBAAoB,kBAAkB,EAAE;QAClD,CAAC,CAAC,2FAA2F;QAC7F,CAAC,CAAC,gFAAgF,CAAC;IACvF,MAAM,IAAI,KAAK,CACb,gCAAgC,OAAO,mDAAmD;QACxF,QAAQ,CACX,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,OAAe;IACrC,OAAO,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,uBAAuB,CAAC;AACpE,CAAC;AAED,SAAS,cAAc;IACrB,MAAM,CAAC,KAAK,CACV,mBAAmB,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,WAAW,EAAE,CACxE,CAAC;IACF,MAAM,CAAC,KAAK,CACV,aAAa,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,WAAW,EAAE,CAClE,CAAC;IACF,MAAM,CAAC,KAAK,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,WAAW,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED,KAAK,UAAU,yBAAyB,CACtC,WAI+B,EAC/B,KAAU,EACV,QAA6B,EAC7B,OAAe,EACf,OAAgB;IAEhB,IAAI,CAAC;QACH,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,KAAK,CAAC,6BAA6B,QAAQ,KAAK,CAAC,CAAC;QAC3D,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAC/D,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,KAAK,CACV,oBAAoB,QAAQ,eAAe,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CACpE,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,KAAK,CAAC,oBAAoB,QAAQ,WAAW,YAAY,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,YAAY,IAAI,mCAAmC;SAC3D,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,WAAW;IAC7C,MAAM,CAAC,WAAW,GAChB,0EAA0E,CAAC;IAE7E,MAAM,CAAC,QAAQ,GAAG;QAChB,mBAAmB;QACnB,uCAAuC;QACvC,mDAAmD;QACnD,wEAAwE;KACzE,CAAC;IAEF,MAAM,CAAC,KAAK,GAAG;QACb,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC;YACrB,WAAW,EAAE,4BAA4B;YACzC,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC;YACrC,OAAO,EAAE,MAAM;YACf,SAAS,EAAE,cAAc;YACzB,SAAS,EAAE,YAAY;YACvB,SAAS,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC;SACxC,CAAC;QACF,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;YACrB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,0CAA0C;YACvD,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,cAAc;YACzB,SAAS,EAAE,eAAe;YAC1B,SAAS,EAAE,IAAI;SAChB,CAAC;QACF,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;YAClB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,uCAAuC;YACpD,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,cAAc;YACzB,SAAS,EAAE,YAAY;YACvB,SAAS,EAAE,MAAM;SAClB,CAAC;QACF,qFAAqF;QACrF,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,GAAG,EAAE,QAAQ,CAAC,GAAG;KACT,CAAC;IAEX,KAAK,CAAC,KAAK,CAAC,KAAU;QACpB,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE3C,qDAAqD;QACrD,IAAI,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,iEAAiE;YACjE,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,uBAAuB,GAAG,oBAAoB,KAAK,CAAC,IAAI,EAAE,CAAC;YACzE,CAAC;YACD,yDAAyD;YACzD,oEAAoE;YACpE,iEAAiE;YACjE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBAC9D,OAAO,CAAC,GAAG,CAAC,uBAAuB,GAAG,oBAAoB,kBAAkB,EAAE,CAAC;YACjF,CAAC;YAED,oDAAoD;YACpD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAC7C,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,IAAI,CACX,CAAC;YACF,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9D,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACb,yDAAyD,CAC1D,CAAC;QACJ,CAAC;QAED,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;QAC/D,MAAM,SAAS,GAAG,mBAAmB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEtD,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAChB,MAAM,WAAW,GACf,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;YAC7D,MAAM,CAAC,GAAG,CACR,KAAK,CAAC,IAAI,CAAC,4CAA4C,WAAW,KAAK,CAAC,CACzE,CAAC;YACF,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE;YACvE,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAEvD,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC7B,QAAiB,EACjB,OAAgB,EAChB,IAAa;QAEb,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,2BAA2B,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACjE,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,kCAAkC,OAAO,EAAE,CAAC,CAAC,CAAC;gBACrE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACjB,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACzD,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS,CAAC;oBACb,OAAO,EAAE,EAAE;oBACX,UAAU,EAAE,KAAK;oBACjB,KAAK,EAAE,YAAY;iBACpB,CAAC,CACH,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC7B,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,SAAgC,EAChC,WAI+B,EAC/B,KAAU,EACV,KAA2D;QAE3D,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,cAAc,EAAE,CAAC;QACnB,CAAC;QAED,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAC3C,QAAQ,EACR,WAAW,EACX,KAAK,EACL,KAAK,CACN,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,QAA6B,EAC7B,WAI+B,EAC/B,KAAU,EACV,KAA2D;QAE3D,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAChB,MAAM,CAAC,GAAG,CAAC,YAAY,QAAQ,cAAc,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAC5C,WAAW,EACX,KAAK,EACL,QAAQ,EACR,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,OAAO,CACd,CAAC;QAEF,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO;gBAC5B,CAAC,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;gBACtD,CAAC,CAAC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YAClD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC;QAED,OAAO;YACL,QAAQ;YACR,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC;IACJ,CAAC;IAEO,aAAa,CACnB,OAA+B,EAC/B,QAAiB,EACjB,OAAe;QAEf,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,UAAU,GAAG;gBACjB,OAAO;gBACP,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;aAC5C,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;;AAGH,SAAS,sBAAsB,CAAC,KAAU;IACxC,IAAI,KAAK,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;QAC1B,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACzC,CAAC;SAAM,IAAI,cAAc,CAAC,YAAY,EAAE,CAAC;QACvC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;SAAM,CAAC;QACN,MAAM,YAAY,GAAG,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC;QACxE,MAAM,CAAC,KAAK,CAAC,UAAU,YAAY,EAAE,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC","sourcesContent":["import { Flags } from '@oclif/core';\nimport { VERCEL_403_ERROR_MESSAGE } from '@workflow/errors';\nimport { getWorkflowPort } from '@workflow/utils/get-port';\nimport chalk from 'chalk';\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\ntype HealthCheckEndpoint = 'workflow' | 'step';\n\ninterface HealthCheckResult {\n healthy: boolean;\n error?: string;\n latencyMs?: number;\n}\n\ninterface EndpointHealthResult {\n endpoint: HealthCheckEndpoint;\n healthy: boolean;\n error?: string;\n latencyMs?: number;\n}\n\nfunction formatHealthyResult(endpoint: string, latencyMs: number): string {\n return (\n chalk.green(` ✓ ${endpoint} endpoint is healthy`) +\n chalk.gray(` (${latencyMs}ms)`)\n );\n}\n\nfunction formatUnhealthyResult(endpoint: string, error?: string): string {\n const errorSuffix = error ? chalk.gray(` - ${error}`) : '';\n return chalk.red(` ✗ ${endpoint} endpoint is unhealthy`) + errorSuffix;\n}\n\nfunction getEndpointsToCheck(endpointFlag: string): HealthCheckEndpoint[] {\n return endpointFlag === 'both'\n ? ['workflow', 'step']\n : [endpointFlag as HealthCheckEndpoint];\n}\n\nfunction printSummary(results: EndpointHealthResult[], backend: string): void {\n const allHealthy = results.every((r) => r.healthy);\n logger.log('');\n if (allHealthy) {\n logger.log(chalk.green('All endpoints are healthy!'));\n } else {\n const unhealthyCount = results.filter((r) => !r.healthy).length;\n logger.log(\n chalk.red(`${unhealthyCount} of ${results.length} endpoint(s) unhealthy`)\n );\n // Provide helpful hints for common issues\n if (backend === 'local' || backend === '@workflow/world-local') {\n logger.log('');\n logger.log(chalk.yellow('Hint: For local health checks, ensure:'));\n logger.log(chalk.yellow(' 1. Your development server is running'));\n logger.log(\n chalk.yellow(' 2. The server is accessible at the configured URL')\n );\n }\n }\n}\n\nfunction logPortDetectionDebug(\n explicitPort: number | undefined,\n detectedPort: number | undefined\n): void {\n logger.debug(`Explicit port flag: ${explicitPort || '(not set)'}`);\n logger.debug(`PORT env: ${process.env.PORT || '(not set)'}`);\n logger.debug(\n `WORKFLOW_LOCAL_BASE_URL env: ${process.env.WORKFLOW_LOCAL_BASE_URL || '(not set)'}`\n );\n logger.debug(`Detected/resolved port: ${detectedPort || '(none)'}`);\n}\n\n// Default port for local development servers\nconst DEFAULT_LOCAL_PORT = 3000;\n\nfunction resolveLocalBaseUrl(\n explicitPort: number | undefined,\n detectedPort: number | undefined\n): string {\n if (explicitPort) {\n return `http://localhost:${explicitPort}`;\n }\n if (process.env.WORKFLOW_LOCAL_BASE_URL) {\n return process.env.WORKFLOW_LOCAL_BASE_URL;\n }\n if (process.env.PORT) {\n return `http://localhost:${process.env.PORT}`;\n }\n if (detectedPort) {\n return `http://localhost:${detectedPort}`;\n }\n // Fall back to default port 3000 (common for Next.js, Nuxt, etc.)\n return `http://localhost:${DEFAULT_LOCAL_PORT}`;\n}\n\nasync function testHttpHealthEndpoint(\n baseUrl: string,\n endpoint: 'flow' | 'step',\n verbose: boolean\n): Promise<{ ok: boolean; status?: number; error?: string }> {\n try {\n const healthUrl = `${baseUrl}/.well-known/workflow/v1/${endpoint}?__health`;\n if (verbose) {\n logger.debug(`Testing HTTP health at: ${healthUrl}`);\n }\n const response = await fetch(healthUrl, {\n method: 'POST',\n signal: AbortSignal.timeout(5000),\n });\n if (response.ok) {\n return { ok: true, status: response.status };\n }\n if (verbose) {\n logger.debug(`HTTP health check returned status: ${response.status}`);\n }\n return { ok: false, status: response.status };\n } catch (err) {\n const errorMessage = err instanceof Error ? err.message : String(err);\n if (verbose) {\n logger.debug(`HTTP health check failed: ${errorMessage}`);\n }\n return { ok: false, error: errorMessage };\n }\n}\n\n/**\n * For local backend, verify the server is accessible before attempting health check.\n * Returns the base URL if accessible, or throws an error with a helpful message.\n */\nasync function verifyLocalServerAccessible(\n verbose: boolean,\n explicitPort?: number\n): Promise<string> {\n const detectedPort = explicitPort ?? (await getWorkflowPort());\n\n if (verbose) {\n logPortDetectionDebug(explicitPort, detectedPort);\n }\n\n const baseUrl = resolveLocalBaseUrl(explicitPort, detectedPort);\n\n if (verbose) {\n logger.debug(`Resolved base URL: ${baseUrl}`);\n }\n\n const result = await testHttpHealthEndpoint(baseUrl, 'flow', verbose);\n if (result.ok) {\n return baseUrl;\n }\n\n const portHint =\n baseUrl === `http://localhost:${DEFAULT_LOCAL_PORT}`\n ? 'If your server runs on a different port, use --port <port> or set WORKFLOW_LOCAL_BASE_URL'\n : `Hint: Use --port <port> or set WORKFLOW_LOCAL_BASE_URL=http://localhost:<port>`;\n throw new Error(\n `Cannot reach local server at ${baseUrl}. Make sure your development server is running.\\n` +\n portHint\n );\n}\n\nfunction isLocalBackend(backend: string): boolean {\n return backend === 'local' || backend === '@workflow/world-local';\n}\n\nfunction logWorldConfig(): void {\n logger.debug(\n `Data directory: ${process.env.WORKFLOW_LOCAL_DATA_DIR || '(not set)'}`\n );\n logger.debug(\n `Base URL: ${process.env.WORKFLOW_LOCAL_BASE_URL || '(not set)'}`\n );\n logger.debug(`PORT: ${process.env.PORT || '(not set)'}`);\n}\n\nasync function runHealthCheckWithLogging(\n healthCheck: (\n world: any,\n endpoint: HealthCheckEndpoint,\n options: { timeout: number }\n ) => Promise<HealthCheckResult>,\n world: any,\n endpoint: HealthCheckEndpoint,\n timeout: number,\n verbose: boolean\n): Promise<HealthCheckResult> {\n try {\n if (verbose) {\n logger.debug(`Starting health check for ${endpoint}...`);\n }\n const result = await healthCheck(world, endpoint, { timeout });\n if (verbose) {\n logger.debug(\n `Health check for ${endpoint} completed: ${JSON.stringify(result)}`\n );\n }\n return result;\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n if (verbose) {\n logger.debug(`Health check for ${endpoint} threw: ${errorMessage}`);\n }\n return {\n healthy: false,\n error: errorMessage || 'Unknown error during health check',\n };\n }\n}\n\nexport default class Health extends BaseCommand {\n static description =\n 'Check health of workflow and step endpoints via queue-based health check';\n\n static examples = [\n '$ workflow health',\n '$ workflow health --endpoint workflow',\n '$ workflow health --endpoint step --timeout 60000',\n '$ workflow health --backend vercel --project my-project --team my-team',\n ];\n\n static flags = {\n endpoint: Flags.string({\n description: 'Which endpoint(s) to check',\n options: ['workflow', 'step', 'both'],\n default: 'both',\n helpGroup: 'Health Check',\n helpLabel: '--endpoint',\n helpValue: ['workflow', 'step', 'both'],\n }),\n timeout: Flags.integer({\n char: 't',\n description: 'Timeout in milliseconds for health check',\n default: 30000,\n helpGroup: 'Health Check',\n helpLabel: '-t, --timeout',\n helpValue: 'MS',\n }),\n port: Flags.integer({\n char: 'p',\n description: 'Local server port (for local backend)',\n required: false,\n helpGroup: 'Health Check',\n helpLabel: '-p, --port',\n helpValue: 'PORT',\n }),\n // Include relevant flags from cliFlags (excluding ones not relevant to health check)\n verbose: cliFlags.verbose,\n json: cliFlags.json,\n backend: cliFlags.backend,\n authToken: cliFlags.authToken,\n project: cliFlags.project,\n team: cliFlags.team,\n env: cliFlags.env,\n } as const;\n\n async catch(error: any) {\n handleHealthCheckError(error);\n }\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(Health);\n\n // For local backend, set up port configuration early\n if (isLocalBackend(flags.backend)) {\n // If user specifies a port, set the env var so the World uses it\n if (flags.port) {\n process.env.WORKFLOW_LOCAL_BASE_URL = `http://localhost:${flags.port}`;\n }\n // Set default WORKFLOW_LOCAL_BASE_URL if not already set\n // We use WORKFLOW_LOCAL_BASE_URL instead of PORT to avoid conflicts\n // with other tools (like Next.js) that also use the PORT env var\n if (!process.env.WORKFLOW_LOCAL_BASE_URL && !process.env.PORT) {\n process.env.WORKFLOW_LOCAL_BASE_URL = `http://localhost:${DEFAULT_LOCAL_PORT}`;\n }\n\n // Verify the server is accessible before proceeding\n const accessible = await this.verifyLocalServer(\n flags.json,\n flags.verbose,\n flags.port\n );\n if (!accessible) {\n process.exit(1);\n }\n }\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 const { healthCheck } = await import('@workflow/core/runtime');\n const endpoints = getEndpointsToCheck(flags.endpoint);\n\n if (!flags.json) {\n const backendName =\n flags.backend === 'local' ? 'local server' : flags.backend;\n logger.log(\n chalk.gray(`Running queue-based health check against ${backendName}...`)\n );\n logger.log('');\n }\n\n const results = await this.checkEndpoints(endpoints, healthCheck, world, {\n timeout: flags.timeout,\n json: flags.json,\n verbose: flags.verbose,\n });\n\n this.outputResults(results, flags.json, flags.backend);\n\n const allHealthy = results.every((r) => r.healthy);\n process.exit(allHealthy ? 0 : 1);\n }\n\n private async verifyLocalServer(\n jsonMode: boolean,\n verbose: boolean,\n port?: number\n ): Promise<boolean> {\n if (!jsonMode) {\n logger.log(chalk.gray('Checking local server accessibility...'));\n }\n try {\n const baseUrl = await verifyLocalServerAccessible(verbose, port);\n if (!jsonMode) {\n logger.log(chalk.green(` ✓ Local server accessible at ${baseUrl}`));\n logger.log('');\n }\n return true;\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : String(error);\n if (jsonMode) {\n console.log(\n JSON.stringify({\n results: [],\n allHealthy: false,\n error: errorMessage,\n })\n );\n } else {\n logger.error(errorMessage);\n }\n return false;\n }\n }\n\n private async checkEndpoints(\n endpoints: HealthCheckEndpoint[],\n healthCheck: (\n world: any,\n endpoint: HealthCheckEndpoint,\n options: { timeout: number }\n ) => Promise<HealthCheckResult>,\n world: any,\n flags: { timeout: number; json: boolean; verbose: boolean }\n ): Promise<EndpointHealthResult[]> {\n if (flags.verbose) {\n logWorldConfig();\n }\n\n const results: EndpointHealthResult[] = [];\n for (const endpoint of endpoints) {\n const result = await this.checkSingleEndpoint(\n endpoint,\n healthCheck,\n world,\n flags\n );\n results.push(result);\n }\n return results;\n }\n\n private async checkSingleEndpoint(\n endpoint: HealthCheckEndpoint,\n healthCheck: (\n world: any,\n endpoint: HealthCheckEndpoint,\n options: { timeout: number }\n ) => Promise<HealthCheckResult>,\n world: any,\n flags: { timeout: number; json: boolean; verbose: boolean }\n ): Promise<EndpointHealthResult> {\n if (!flags.json) {\n logger.log(`Checking ${endpoint} endpoint...`);\n }\n\n const result = await runHealthCheckWithLogging(\n healthCheck,\n world,\n endpoint,\n flags.timeout,\n flags.verbose\n );\n\n if (!flags.json) {\n const message = result.healthy\n ? formatHealthyResult(endpoint, result.latencyMs ?? 0)\n : formatUnhealthyResult(endpoint, result.error);\n logger.log(message);\n }\n\n return {\n endpoint,\n healthy: result.healthy,\n error: result.error,\n latencyMs: result.latencyMs,\n };\n }\n\n private outputResults(\n results: EndpointHealthResult[],\n jsonMode: boolean,\n backend: string\n ): void {\n if (jsonMode) {\n const jsonOutput = {\n results,\n allHealthy: results.every((r) => r.healthy),\n };\n console.log(JSON.stringify(jsonOutput, null, 2));\n } else {\n printSummary(results, backend);\n }\n }\n}\n\nfunction handleHealthCheckError(error: any): never {\n if (error?.status === 403) {\n logger.error(VERCEL_403_ERROR_MESSAGE);\n } else if (LOGGING_CONFIG.VERBOSE_MODE) {\n logger.error(error);\n } else {\n const errorMessage = error?.message || String(error) || 'Unknown error';\n logger.error(`Error: ${errorMessage}`);\n }\n process.exit(1);\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,WAAW;IAC3C,MAAM,CAAC,WAAW,GAAG,iDAAiD,CAAC;IAEvE,MAAM,CAAC,QAAQ,GAAG;QAChB,iBAAiB;QACjB,mCAAmC;QACnC,uBAAuB;KACxB,CAAC;IAEF,MAAM,CAAC,KAAK,GAAG;QACb,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC;YACrB,WAAW,EAAE,iBAAiB;YAC9B,OAAO,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,SAAS,CAAC;SAC7C,CAAC;QACF,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC;YACjB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,+BAA+B;SAC7C,CAAC;KACH,CAAC;IAEK,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEzC,IAAI,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC;QAC1D,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC;QAC1D,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC;QAC7D,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEjB,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,OAAO,CAAC,sBAAsB,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;YACd,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,CACV,yEAAyE,CAC1E,CAAC;IACJ,CAAC","sourcesContent":["import { Flags } from '@oclif/core';\nimport { BaseCommand } from '../base.js';\n\nexport default class Init extends BaseCommand {\n static description = 'Initialize a new workflow project (Coming soon)';\n\n static examples = [\n '$ workflow init',\n '$ workflow init --template nextjs',\n '$ workflow init --yes',\n ];\n\n static flags = {\n template: Flags.string({\n description: 'template to use',\n options: ['standalone', 'nextjs', 'express'],\n }),\n yes: Flags.boolean({\n char: 'y',\n description: 'skip prompts and use defaults',\n }),\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(Init);\n\n this.logInfo('🚧 Project initialization is coming soon!');\n this.logInfo('');\n this.logInfo('This command will provide:');\n this.logInfo('• Interactive project setup');\n this.logInfo('• Multiple project templates');\n this.logInfo('• Automatic configuration file generation');\n this.logInfo('• Dependency installation');\n this.logInfo('• Example workflows and steps');\n this.logInfo('Or we might do a create-workflow-app package');\n this.logInfo('');\n\n if (flags.template) {\n this.logInfo(`Selected template: ${flags.template}`);\n }\n\n if (flags.yes) {\n this.logInfo('Auto-accept mode enabled');\n }\n\n this.logInfo('');\n this.logInfo(\n 'For now, manually create your workflow files in a ./workflows directory'\n );\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../src/commands/inspect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EACL,UAAU,EACV,SAAS,EACT,QAAQ,EACR,UAAU,EACV,SAAS,EACT,kBAAkB,EAClB,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,UAAU,GACX,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,WAAW;IAC9C,MAAM,CAAC,WAAW,GAAG,yCAAyC,CAAC;IAE/D,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IAEvB,MAAM,CAAC,QAAQ,GAAG;QAChB,yBAAyB;QACzB,yBAAyB;QACzB,kEAAkE;QAClE,0BAA0B;QAC1B,yDAAyD;QACzD,kEAAkE;KACnE,CAAC;IAEF,KAAK,CAAC,KAAK,CAAC,KAAU;QACpB,uDAAuD;QACvD,IAAI,KAAK,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,wBAAwB,CAAC;YACzC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;aAAM,IAAI,cAAc,CAAC,YAAY,EAAE,CAAC;YACvC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,MAAM,YAAY,GAAG,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC;YACxE,MAAM,CAAC,KAAK,CAAC,UAAU,YAAY,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,IAAI,GAAG;QACZ,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC;YACpB,WAAW,EACT,+EAA+E;YACjF,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE;gBACP,GAAG;gBACH,KAAK;gBACL,MAAM;gBACN,GAAG;gBACH,MAAM;gBACN,OAAO;gBACP,GAAG;gBACH,OAAO;gBACP,QAAQ;gBACR,IAAI;gBACJ,QAAQ;gBACR,SAAS;gBACT,GAAG;gBACH,MAAM;gBACN,OAAO;gBACP,GAAG;gBACH,KAAK;gBACL,OAAO;gBACP,QAAQ;aACT;SACF,CAAC;QACF,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC;YACd,WAAW,EAAE,kDAAkD;YAC/D,QAAQ,EAAE,KAAK;SAChB,CAAC;KACM,CAAC;IAEX,MAAM,CAAC,KAAK,GAAG;QACb,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC;YAClB,WAAW,EACT,mFAAmF;YACrF,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,CAAC,KAAK,CAAC;YAChB,SAAS,EAAE,WAAW;YACtB,SAAS,EAAE,aAAa;YACxB,SAAS,EAAE,QAAQ;SACpB,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,WAAW,EAAE,wCAAwC;YACrD,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,SAAS,EAAE,WAAW;YACtB,SAAS,EAAE,cAAc;YACzB,SAAS,EAAE,SAAS;SACrB,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,WAAW,EAAE,wCAAwC;YACrD,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,SAAS,EAAE,WAAW;YACtB,SAAS,EAAE,UAAU;YACrB,SAAS,EAAE,SAAS;SACrB,CAAC;QACF,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC;YACzB,WAAW,EAAE,4CAA4C;YACzD,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,CAAC,UAAU,CAAC;YACrB,SAAS,EAAE,WAAW;YACtB,SAAS,EAAE,oBAAoB;SAChC,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,WAAW,EAAE,uCAAuC;YACpD,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC;YACnE,SAAS,EAAE,WAAW;YACtB,SAAS,EAAE,UAAU;SACtB,CAAC;QACF,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;YACtB,WAAW,EAAE,8CAA8C;YAC3D,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,SAAS;YACpB,SAAS,EAAE,gBAAgB;SAC5B,CAAC;QACF,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;YACrB,WAAW,EACT,gEAAgE;YAClE,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,SAAS;YACpB,SAAS,EAAE,WAAW;SACvB,CAAC;QACF,GAAG,QAAQ;KACH,CAAC;IAEJ,KAAK,CAAC,GAAG;QACd,IAAI,CAAC;YACH,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAElD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAClD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,IAAI,CAAC,QAAQ,CACX,qBAAqB,IAAI,CAAC,QAAQ,4EAA4E,CAC/G,CAAC;gBACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;YAED,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YAEnB,gFAAgF;YAChF,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,IAAI,QAAQ,KAAK,KAAK,CAAC;YAClD,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAEzE,qBAAqB;YACrB,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,cAAc,GAAG,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAC7D,MAAM,WAAW,CAAC,cAAc,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAClE,OAAO;YACT,CAAC;YAED,8CAA8C;YAC9C,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CACb,yDAAyD,CAC1D,CAAC;YACJ,CAAC;YAED,wDAAwD;YACxD,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAExC,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;gBACvB,IAAI,EAAE,EAAE,CAAC;oBACP,MAAM,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;gBACpC,CAAC;qBAAM,CAAC;oBACN,MAAM,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBACjC,CAAC;gBACD,OAAO;YACT,CAAC;YAED,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;gBACxB,IAAI,EAAE,EAAE,CAAC;oBACP,MAAM,QAAQ,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;gBACrC,CAAC;qBAAM,CAAC;oBACN,MAAM,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBAClC,CAAC;gBACD,OAAO;YACT,CAAC;YAED,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC1B,IAAI,EAAE,EAAE,CAAC;oBACP,MAAM,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;gBACvC,CAAC;qBAAM,CAAC;oBACN,MAAM,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBAC3C,CAAC;gBACD,OAAO;YACT,CAAC;YAED,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;gBACzB,IAAI,EAAE,EAAE,CAAC;oBACP,IAAI,CAAC,QAAQ,CACX,0HAA0H,CAC3H,CAAC;oBACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;oBACrB,OAAO;gBACT,CAAC;gBACD,MAAM,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBACjC,OAAO;YACT,CAAC;YAED,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;gBACxB,IAAI,EAAE,EAAE,CAAC;oBACP,MAAM,QAAQ,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;gBACrC,CAAC;qBAAM,CAAC;oBACN,MAAM,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBAClC,CAAC;gBACD,OAAO;YACT,CAAC;YAED,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;gBACzB,IAAI,EAAE,EAAE,CAAC;oBACP,IAAI,CAAC,QAAQ,CACX,+GAA+G,CAChH,CAAC;oBACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;oBACrB,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;oBACjB,IAAI,CAAC,QAAQ,CACX,sFAAsF,CACvF,CAAC;oBACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;oBACrB,OAAO;gBACT,CAAC;gBACD,MAAM,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBACjC,OAAO;YACT,CAAC;YAED,IAAI,CAAC,QAAQ,CACX,qBAAqB,QAAQ,YAAY,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACvE,CAAC;YACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,yDAAyD;YACzD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;;AAGH,SAAS,gBAAgB,CAAC,KAAU;IAClC,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,IAAI,EAAE,KAAK,CAAC,IAAkC;QAC9C,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,WAAW,EAAE,KAAK,CAAC,WAAW;KAC/B,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,KAAc;IAEd,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAC9B,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC;IACtC,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IACzC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC;IACvC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC;IACrC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC;IACrC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,OAAO,SAAS,CAAC;AACnB,CAAC","sourcesContent":["import { Args, Flags } from '@oclif/core';\nimport { VERCEL_403_ERROR_MESSAGE } from '@workflow/errors';\nimport { BaseCommand } from '../base.js';\nimport { LOGGING_CONFIG, logger } from '../lib/config/log.js';\nimport type { InspectCLIOptions } from '../lib/config/types.js';\nimport { cliFlags } from '../lib/inspect/flags.js';\nimport {\n listEvents,\n listHooks,\n listRuns,\n listSleeps,\n listSteps,\n listStreamsByRunId,\n showHook,\n showRun,\n showStep,\n showStream,\n} from '../lib/inspect/output.js';\nimport { setupCliWorld } from '../lib/inspect/setup.js';\nimport { launchWebUI } from '../lib/inspect/web.js';\n\nexport default class Inspect extends BaseCommand {\n static description = 'Inspect runs, steps, streams, or events';\n\n static aliases = ['i'];\n\n static examples = [\n '$ workflow inspect runs',\n '$ workflow inspect runs',\n '$ workflow inspect events --step=step_01K5WAJZ8W367CV2RFKDSDNWB8',\n '$ workflow inspect hooks',\n '$ workflow inspect hook hook_01K5WAJZ8W367CV2RFKDSDNWB8',\n '$ workflow inspect sleeps --runId=run_01K5WAJZ8W367CV2RFKDSDNWB8',\n ];\n\n async catch(error: any) {\n // Check if this is a 403 error from the Vercel backend\n if (error?.status === 403) {\n const message = VERCEL_403_ERROR_MESSAGE;\n logger.error(message);\n } else if (LOGGING_CONFIG.VERBOSE_MODE) {\n logger.error(error);\n } else {\n const errorMessage = error?.message || String(error) || 'Unknown error';\n logger.error(`Error: ${errorMessage}`);\n }\n process.exit(1);\n }\n\n static args = {\n resource: Args.string({\n description:\n 'what to inspect: run(s) | step(s) | stream(s) | event(s) | hook(s) | sleep(s)',\n required: true,\n options: [\n 'r',\n 'run',\n 'runs',\n 's',\n 'step',\n 'steps',\n 'e',\n 'event',\n 'events',\n 'st',\n 'stream',\n 'streams',\n 'h',\n 'hook',\n 'hooks',\n 'w',\n 'web',\n 'sleep',\n 'sleeps',\n ],\n }),\n id: Args.string({\n description: 'ID of the resource if inspecting a specific item',\n required: false,\n }),\n } as const;\n\n static flags = {\n runId: Flags.string({\n description:\n 'Run ID to filter by (required for steps, sleeps, and events. Optional for hooks.)',\n required: false,\n char: 'r',\n aliases: ['run'],\n helpGroup: 'Filtering',\n helpLabel: '-r, --runId',\n helpValue: 'RUN_ID',\n }),\n stepId: Flags.string({\n description: 'step ID to filter by (only for events)',\n required: false,\n char: 's',\n aliases: ['step'],\n helpGroup: 'Filtering',\n helpLabel: '-s, --stepId',\n helpValue: 'STEP_ID',\n }),\n hookId: Flags.string({\n description: 'hook ID to filter by (only for events)',\n required: false,\n aliases: ['hook'],\n helpGroup: 'Filtering',\n helpLabel: '--hookId',\n helpValue: 'HOOK_ID',\n }),\n workflowName: Flags.string({\n description: 'workflow name to filter by (only for runs)',\n required: false,\n char: 'n',\n aliases: ['workflow'],\n helpGroup: 'Filtering',\n helpLabel: '-n, --workflowName',\n }),\n status: Flags.string({\n description: 'filter runs by status (only for runs)',\n required: false,\n options: ['running', 'completed', 'failed', 'cancelled', 'pending'],\n helpGroup: 'Filtering',\n helpLabel: '--status',\n }),\n withData: Flags.boolean({\n description: 'include full input/output data in list views',\n required: false,\n char: 'd',\n default: false,\n helpGroup: 'Display',\n helpLabel: '-d, --withData',\n }),\n decrypt: Flags.boolean({\n description:\n 'decrypt encrypted values (triggers audit-logged key retrieval)',\n required: false,\n default: false,\n helpGroup: 'Display',\n helpLabel: '--decrypt',\n }),\n ...cliFlags,\n } as const;\n\n public async run(): Promise<void> {\n try {\n const { args, flags } = await this.parse(Inspect);\n\n const resource = normalizeResource(args.resource);\n if (!resource) {\n this.logError(\n `Unknown resource \"${args.resource}\": must be one of: run(s), step(s), stream(s), event(s), hook(s), sleep(s)`\n );\n process.exitCode = 1;\n return;\n }\n\n const id = args.id;\n\n // For web mode, allow config errors so we can open the web UI for configuration\n const isWebMode = flags.web || resource === 'web';\n const world = await setupCliWorld(flags, this.config.version, isWebMode);\n\n // Handle web UI mode\n if (isWebMode) {\n const actualResource = resource === 'web' ? 'run' : resource;\n await launchWebUI(actualResource, id, flags, this.config.version);\n return;\n }\n\n // For non-web commands, we need a valid world\n if (!world) {\n throw new Error(\n 'Failed to connect to backend. Check your configuration.'\n );\n }\n\n // Convert flags to InspectCLIOptions with proper typing\n const options = toInspectOptions(flags);\n\n if (resource === 'run') {\n if (id) {\n await showRun(world, id, options);\n } else {\n await listRuns(world, options);\n }\n return;\n }\n\n if (resource === 'step') {\n if (id) {\n await showStep(world, id, options);\n } else {\n await listSteps(world, options);\n }\n return;\n }\n\n if (resource === 'stream') {\n if (id) {\n await showStream(world, id, options);\n } else {\n await listStreamsByRunId(world, options);\n }\n return;\n }\n\n if (resource === 'event') {\n if (id) {\n this.logError(\n 'Event-ID is not supported for events. Filter by run-id or step-id instead. Usage: `workflow inspect events --runId=<id>`'\n );\n process.exitCode = 1;\n return;\n }\n await listEvents(world, options);\n return;\n }\n\n if (resource === 'hook') {\n if (id) {\n await showHook(world, id, options);\n } else {\n await listHooks(world, options);\n }\n return;\n }\n\n if (resource === 'sleep') {\n if (id) {\n this.logError(\n 'Sleep-ID is not supported for sleeps. Filter by run-id instead. Usage: `workflow inspect sleeps --runId=<id>`'\n );\n process.exitCode = 1;\n return;\n }\n if (!flags.runId) {\n this.logError(\n 'run-id is required for listing sleeps. Usage: `workflow inspect sleeps --runId=<id>`'\n );\n process.exitCode = 1;\n return;\n }\n await listSleeps(world, options);\n return;\n }\n\n this.logError(\n `Unknown resource: ${resource}. Usage: ${Inspect.examples.join('\\n')}`\n );\n process.exitCode = 1;\n return;\n } catch (error) {\n // Let the catch handler deal with it, but ensure we exit\n throw error;\n }\n }\n}\n\nfunction toInspectOptions(flags: any): InspectCLIOptions {\n return {\n json: flags.json,\n runId: flags.runId,\n stepId: flags.stepId,\n cursor: flags.cursor,\n sort: flags.sort as 'asc' | 'desc' | undefined,\n limit: flags.limit,\n workflowName: flags.workflowName,\n status: flags.status,\n withData: flags.withData,\n decrypt: flags.decrypt,\n backend: flags.backend,\n interactive: flags.interactive,\n };\n}\n\nfunction normalizeResource(\n value?: string\n): 'run' | 'step' | 'stream' | 'event' | 'hook' | 'web' | 'sleep' | undefined {\n if (!value) return undefined;\n const v = value.toLowerCase();\n if (v.startsWith('r')) return 'run';\n if (v.startsWith('e')) return 'event';\n if (v.startsWith('str')) return 'stream';\n if (v.startsWith('sl')) return 'sleep';\n if (v.startsWith('s')) return 'step';\n if (v.startsWith('h')) return 'hook';\n if (v.startsWith('w')) return 'web';\n return undefined;\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,WAAW;IAC5C,MAAM,CAAC,WAAW,GAAG,kBAAkB,CAAC;IAExC,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IAEvB,MAAM,CAAC,QAAQ,GAAG;QAChB,yCAAyC;QACzC,mCAAmC;KACpC,CAAC;IAEF,KAAK,CAAC,KAAK,CAAC,KAAU;QACpB,IAAI,cAAc,CAAC,YAAY,EAAE,CAAC;YAChC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IAED,MAAM,CAAC,IAAI,GAAG;QACZ,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC;YACxB,WAAW,EACT,yFAAyF;YAC3F,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;YAChB,WAAW,EAAE;gBACX,0EAA0E;gBAC1E,oJAAoJ;aACrJ,CAAC,IAAI,CAAC,IAAI,CAAC;YACZ,QAAQ,EAAE,KAAK;SAChB,CAAC;KACM,CAAC;IAEX,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC;IAEjB,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEtD,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAEtD,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9D,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACb,yDAAyD,CAC1D,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IAC9D,CAAC","sourcesContent":["import { Args } from '@oclif/core';\nimport { BaseCommand } from '../base.js';\nimport { LOGGING_CONFIG } from '../lib/config/log.js';\nimport { cliFlags } from '../lib/inspect/flags.js';\nimport { startRun } from '../lib/inspect/run.js';\nimport { setupCliWorld } from '../lib/inspect/setup.js';\n\nexport default class Start extends BaseCommand {\n static description = 'Start a workflow';\n\n static aliases = ['s'];\n\n static examples = [\n '$ workflow start <workflow-name> <args>',\n '$ wf start <workflow-name> <args>',\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 workflowName: Args.string({\n description:\n 'Name of a workflow to start. Providing a run ID will create a new run on that workflow.',\n required: true,\n }),\n args: Args.string({\n description: [\n 'Arguments to pass to the workflow. All arguments will be parsed as JSON.',\n 'E.g. `wf start example 123 \"\\'123\\'\" \"{\"a\": 1}\"` will start the \"example\" workflow with 123 (a number), \"123\" (a string), and {\"a\": 1} (an object)',\n ].join('\\n'),\n required: false,\n }),\n } as const;\n\n static flags = cliFlags;\n\n public async run(): Promise<void> {\n const { flags, args, argv } = await this.parse(Start);\n\n const fixedArgIndex = argv.indexOf(args.workflowName);\n const restArgs = fixedArgIndex !== -1 ? argv.slice(fixedArgIndex + 1) : [];\n const stringArgs = restArgs.map((arg) => String(arg));\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 await startRun(world, args.workflowName, flags, stringArgs);\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/commands/transform.ts"],"names":[],"mappings":"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","sourcesContent":["import { readFile } from 'node:fs/promises';\nimport { relative, resolve } from 'node:path';\nimport { Args, Flags } from '@oclif/core';\nimport {\n analyzeSerdeCompliance,\n applySwcTransform,\n detectWorkflowPatterns,\n} from '@workflow/builders';\nimport chalk from 'chalk';\nimport { BaseCommand } from '../base.js';\n\ntype TransformMode = 'workflow' | 'step';\n\nconst ALL_MODES: TransformMode[] = ['workflow', 'step'];\n\nexport default class Transform extends BaseCommand {\n static description =\n 'Show SWC transform output for a workflow file. Useful for inspecting what code runs in each execution context.';\n\n static examples = [\n '$ workflow transform src/MyClass.ts',\n '$ workflow transform src/MyClass.ts --mode workflow',\n '$ workflow transform src/MyClass.ts --mode step',\n '$ workflow transform src/MyClass.ts --check-serde',\n '$ workflow transform src/MyClass.ts --json',\n ];\n\n static args = {\n file: Args.string({\n description: 'The file to transform',\n required: true,\n }),\n };\n\n static flags = {\n mode: Flags.string({\n char: 'm',\n description: 'Transform mode (workflow, step, or all)',\n default: 'all',\n options: ['workflow', 'step', 'all'],\n }),\n 'check-serde': Flags.boolean({\n description: 'Run serde compliance analysis on the transformed output',\n default: false,\n }),\n };\n\n public async run(): Promise<Record<string, unknown>> {\n const { args, flags } = await this.parse(Transform);\n const filePath = resolve(args.file);\n const relPath = relative(process.cwd(), filePath);\n\n let source: string;\n try {\n source = await readFile(filePath, 'utf-8');\n } catch {\n this.error(`Could not read file: ${filePath}`);\n }\n\n // Detect if this file has workflow patterns\n const patterns = detectWorkflowPatterns(source);\n if (!patterns.hasDirective && !patterns.hasSerde) {\n this.logInfo(\n chalk.yellow(\n `Warning: ${relPath} does not contain \"use workflow\", \"use step\", or serde patterns.`\n )\n );\n }\n\n const modes: TransformMode[] =\n flags.mode === 'all' ? ALL_MODES : [flags.mode as TransformMode];\n\n const results: Record<string, { code: string; error?: string }> = {};\n\n for (const mode of modes) {\n try {\n const { code } = await applySwcTransform(\n relPath,\n source,\n mode,\n filePath\n );\n results[mode] = { code };\n } catch (err) {\n results[mode] = {\n code: '',\n error: err instanceof Error ? err.message : 'Transform failed',\n };\n }\n }\n\n // Serde analysis\n let serdeAnalysis = null;\n if (flags['check-serde'] || patterns.hasSerde) {\n // Ensure we have workflow mode output for serde analysis\n let workflowCode = results.workflow?.code;\n let workflowManifest = null;\n\n if (!workflowCode) {\n try {\n const result = await applySwcTransform(\n relPath,\n source,\n 'workflow',\n filePath\n );\n workflowCode = result.code;\n workflowManifest = result.workflowManifest;\n } catch {\n workflowCode = '';\n }\n } else {\n // Re-run to get the manifest\n try {\n const result = await applySwcTransform(\n relPath,\n source,\n 'workflow',\n filePath\n );\n workflowManifest = result.workflowManifest;\n } catch {\n // ignore\n }\n }\n\n if (workflowCode && workflowManifest) {\n serdeAnalysis = analyzeSerdeCompliance({\n sourceCode: source,\n workflowCode,\n manifest: workflowManifest,\n });\n }\n }\n\n // JSON output\n if (flags.json) {\n return {\n file: relPath,\n patterns: {\n hasUseWorkflow: patterns.hasUseWorkflow,\n hasUseStep: patterns.hasUseStep,\n hasSerde: patterns.hasSerde,\n },\n transforms: results,\n ...(serdeAnalysis\n ? {\n serdeAnalysis: {\n hasSerdeClasses: serdeAnalysis.hasSerdeClasses,\n globalNodeImports: serdeAnalysis.globalNodeImports,\n classes: serdeAnalysis.classes,\n },\n }\n : {}),\n };\n }\n\n // Human-readable output\n for (const mode of modes) {\n const result = results[mode];\n this.logInfo('');\n this.logInfo(chalk.bold.cyan(`═══ ${mode.toUpperCase()} MODE ═══`));\n if (result.error) {\n this.logInfo(chalk.red(`Error: ${result.error}`));\n } else {\n this.logInfo(result.code);\n }\n }\n\n // Serde analysis output\n if (serdeAnalysis) {\n this.logInfo('');\n this.logInfo(chalk.bold.cyan('═══ SERDE ANALYSIS ═══'));\n\n if (\n !serdeAnalysis.hasSerdeClasses &&\n serdeAnalysis.classes.length === 0\n ) {\n this.logInfo(chalk.gray('No serde-enabled classes detected.'));\n } else {\n for (const cls of serdeAnalysis.classes) {\n this.logInfo('');\n this.logInfo(\n cls.compliant\n ? chalk.green(`✓ Class \"${cls.className}\" is serde-compliant`)\n : chalk.red(`✗ Class \"${cls.className}\" is NOT serde-compliant`)\n );\n\n if (cls.classId) {\n this.logInfo(chalk.gray(` classId: ${cls.classId}`));\n }\n this.logInfo(\n ` Detected by SWC: ${cls.detected ? chalk.green('yes') : chalk.red('no')}`\n );\n this.logInfo(\n ` Registration IIFE: ${cls.registered ? chalk.green('yes') : chalk.red('no')}`\n );\n\n if (cls.nodeImports.length > 0) {\n this.logInfo(\n chalk.yellow(\n ` Node.js imports in workflow bundle: ${cls.nodeImports.join(', ')}`\n )\n );\n }\n\n for (const issue of cls.issues) {\n this.logInfo(chalk.yellow(` ⚠ ${issue}`));\n }\n }\n\n if (serdeAnalysis.globalNodeImports.length > 0) {\n this.logInfo('');\n this.logInfo(\n chalk.yellow(\n `Node.js built-in imports found in workflow output: ${serdeAnalysis.globalNodeImports.join(', ')}`\n )\n );\n this.logInfo(\n chalk.yellow(\n 'Add \"use step\" to methods that depend on these modules.'\n )\n );\n }\n }\n }\n\n return {};\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"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","sourcesContent":["import { readFile } from 'node:fs/promises';\nimport { join, relative, resolve } from 'node:path';\nimport { Flags } from '@oclif/core';\nimport {\n analyzeSerdeCompliance,\n applySwcTransform,\n detectWorkflowPatterns,\n type SerdeClassCheckResult,\n} from '@workflow/builders';\nimport chalk from 'chalk';\nimport { glob } from 'tinyglobby';\nimport { BaseCommand } from '../base.js';\n\n/**\n * Parse a .gitignore file into glob-compatible ignore patterns.\n * Returns an empty array if the file doesn't exist.\n */\nasync function loadGitignorePatterns(dir: string): Promise<string[]> {\n try {\n const content = await readFile(join(dir, '.gitignore'), 'utf-8');\n return content\n .split('\\n')\n .map((line) => line.trim())\n .filter((line) => line && !line.startsWith('#'));\n } catch {\n return [];\n }\n}\n\ninterface FileValidationResult {\n file: string;\n hasUseWorkflow: boolean;\n hasUseStep: boolean;\n hasSerde: boolean;\n serdeClasses: SerdeClassCheckResult[];\n errors: string[];\n}\n\nexport default class Validate extends BaseCommand {\n static description =\n 'Validate workflow files for correctness, including serde compliance checks';\n\n static examples = [\n '$ workflow validate',\n '$ workflow validate --dir src/workflows',\n '$ workflow validate --strict',\n '$ workflow validate --json',\n ];\n\n static flags = {\n strict: Flags.boolean({\n description: 'exit with code 1 if any validation issues are found',\n }),\n dir: Flags.string({\n char: 'd',\n description: 'directory to validate',\n default: '.',\n }),\n };\n\n public async run(): Promise<Record<string, unknown>> {\n const { flags } = await this.parse(Validate);\n const targetDir = resolve(flags.dir);\n\n // Build ignore list from .gitignore (if present) plus baseline patterns\n const gitignorePatterns = await loadGitignorePatterns(targetDir);\n const ignore = [\n ...gitignorePatterns,\n // Always exclude these regardless of .gitignore\n '**/node_modules/**',\n '**/*.test.*',\n '**/*.spec.*',\n '**/*.d.ts',\n ];\n\n // Find all TS/JS files in the target directory\n const files = await glob(\n ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx', '**/*.mts', '**/*.cts'],\n {\n cwd: targetDir,\n ignore,\n }\n );\n\n const results: FileValidationResult[] = [];\n let totalIssues = 0;\n let filesScanned = 0;\n let filesWithWorkflowPatterns = 0;\n\n for (const file of files) {\n const absPath = resolve(targetDir, file);\n const relPath = relative(process.cwd(), absPath);\n\n let source: string;\n try {\n source = await readFile(absPath, 'utf-8');\n } catch {\n continue;\n }\n\n filesScanned++;\n const patterns = detectWorkflowPatterns(source);\n\n if (!patterns.hasDirective && !patterns.hasSerde) {\n continue;\n }\n\n filesWithWorkflowPatterns++;\n const fileResult: FileValidationResult = {\n file: relPath,\n hasUseWorkflow: patterns.hasUseWorkflow,\n hasUseStep: patterns.hasUseStep,\n hasSerde: patterns.hasSerde,\n serdeClasses: [],\n errors: [],\n };\n\n // Run SWC transform in workflow mode to check serde compliance\n if (patterns.hasSerde) {\n try {\n const { code, workflowManifest } = await applySwcTransform(\n relPath,\n source,\n 'workflow',\n absPath\n );\n\n const serdeResult = analyzeSerdeCompliance({\n sourceCode: source,\n workflowCode: code,\n manifest: workflowManifest,\n });\n\n fileResult.serdeClasses = serdeResult.classes;\n\n for (const cls of serdeResult.classes) {\n if (!cls.compliant) {\n totalIssues += cls.issues.length;\n }\n }\n } catch (err) {\n const msg = err instanceof Error ? err.message : 'Transform failed';\n fileResult.errors.push(`SWC transform failed: ${msg}`);\n totalIssues++;\n }\n }\n\n // Only include files with issues or serde classes in results\n if (fileResult.serdeClasses.length > 0 || fileResult.errors.length > 0) {\n results.push(fileResult);\n }\n }\n\n // JSON output\n if (flags.json) {\n const output = {\n filesScanned,\n filesWithWorkflowPatterns,\n totalIssues,\n results: results.map((r) => ({\n file: r.file,\n hasUseWorkflow: r.hasUseWorkflow,\n hasUseStep: r.hasUseStep,\n hasSerde: r.hasSerde,\n serdeClasses: r.serdeClasses,\n errors: r.errors,\n })),\n };\n\n if (flags.strict && totalIssues > 0) {\n process.exitCode = 1;\n }\n\n return output;\n }\n\n // Human-readable output\n this.logInfo(\n chalk.bold(\n `Scanned ${filesScanned} files, ${filesWithWorkflowPatterns} with workflow patterns`\n )\n );\n this.logInfo('');\n\n if (results.length === 0) {\n this.logInfo(chalk.green('No serde issues found.'));\n return {};\n }\n\n for (const result of results) {\n this.logInfo(chalk.bold(result.file));\n\n // Show errors\n for (const error of result.errors) {\n this.logInfo(chalk.red(` ✗ ${error}`));\n }\n\n // Show serde class results\n for (const cls of result.serdeClasses) {\n if (cls.compliant) {\n this.logInfo(\n chalk.green(` ✓ Class \"${cls.className}\" is serde-compliant`)\n );\n } else {\n this.logInfo(\n chalk.red(` ✗ Class \"${cls.className}\" has serde issues:`)\n );\n for (const issue of cls.issues) {\n this.logInfo(chalk.yellow(` ⚠ ${issue}`));\n }\n }\n }\n\n this.logInfo('');\n }\n\n // Summary\n if (totalIssues > 0) {\n this.logInfo(\n chalk.red(\n `Found ${totalIssues} issue${totalIssues === 1 ? '' : 's'} across ${results.length} file${results.length === 1 ? '' : 's'}.`\n )\n );\n } else {\n this.logInfo(chalk.green('All serde classes are compliant.'));\n }\n\n if (flags.strict && totalIssues > 0) {\n process.exitCode = 1;\n }\n\n return {};\n }\n}\n"]}
|