@pipeline-builder/pipeline-manager 4.5.3 → 4.5.4

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.
Files changed (57) hide show
  1. package/README.md +61 -37
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +13 -7
  4. package/dist/commands/audit-stacks.d.ts +42 -1
  5. package/dist/commands/audit-stacks.d.ts.map +1 -1
  6. package/dist/commands/audit-stacks.js +104 -23
  7. package/dist/commands/audit-tokens.d.ts.map +1 -1
  8. package/dist/commands/audit-tokens.js +3 -4
  9. package/dist/commands/create-pat.d.ts.map +1 -1
  10. package/dist/commands/create-pat.js +9 -6
  11. package/dist/commands/login.d.ts +3 -2
  12. package/dist/commands/login.d.ts.map +1 -1
  13. package/dist/commands/login.js +19 -10
  14. package/dist/commands/logout.d.ts +24 -0
  15. package/dist/commands/logout.d.ts.map +1 -0
  16. package/dist/commands/logout.js +105 -0
  17. package/dist/commands/org-export.js +2 -2
  18. package/dist/commands/pipeline-remove.d.ts +26 -0
  19. package/dist/commands/pipeline-remove.d.ts.map +1 -0
  20. package/dist/commands/pipeline-remove.js +84 -0
  21. package/dist/commands/register.d.ts.map +1 -1
  22. package/dist/commands/register.js +3 -4
  23. package/dist/commands/status.d.ts +5 -2
  24. package/dist/commands/status.d.ts.map +1 -1
  25. package/dist/commands/status.js +65 -25
  26. package/dist/commands/toolchain.d.ts.map +1 -1
  27. package/dist/commands/toolchain.js +4 -3
  28. package/dist/commands/validate-templates.d.ts.map +1 -1
  29. package/dist/commands/validate-templates.js +4 -5
  30. package/dist/config/cli.constants.d.ts +8 -0
  31. package/dist/config/cli.constants.d.ts.map +1 -1
  32. package/dist/config/cli.constants.js +21 -2
  33. package/dist/types/plugin.d.ts +0 -6
  34. package/dist/types/plugin.d.ts.map +1 -1
  35. package/dist/types/plugin.js +1 -1
  36. package/dist/utils/command-utils.d.ts +13 -0
  37. package/dist/utils/command-utils.d.ts.map +1 -1
  38. package/dist/utils/command-utils.js +31 -17
  39. package/dist/utils/config-loader.d.ts +2 -1
  40. package/dist/utils/config-loader.d.ts.map +1 -1
  41. package/dist/utils/config-loader.js +14 -4
  42. package/dist/utils/credential-store.d.ts +9 -1
  43. package/dist/utils/credential-store.d.ts.map +1 -1
  44. package/dist/utils/credential-store.js +21 -2
  45. package/dist/utils/error-handler.d.ts +10 -1
  46. package/dist/utils/error-handler.d.ts.map +1 -1
  47. package/dist/utils/error-handler.js +20 -8
  48. package/dist/utils/plugin-resolver.d.ts +0 -2
  49. package/dist/utils/plugin-resolver.d.ts.map +1 -1
  50. package/dist/utils/plugin-resolver.js +3 -11
  51. package/dist/utils/response-utils.d.ts +11 -0
  52. package/dist/utils/response-utils.d.ts.map +1 -1
  53. package/dist/utils/response-utils.js +23 -1
  54. package/dist/utils/toolchain.d.ts +0 -2
  55. package/dist/utils/toolchain.d.ts.map +1 -1
  56. package/dist/utils/toolchain.js +4 -5
  57. package/package.json +4 -4
@@ -0,0 +1,84 @@
1
+ // Copyright 2026 Pipeline Builder Contributors
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import { Command } from 'commander';
4
+ import { createAuthenticatedClientAsync, printCommandHeader, printSslWarning, validateEntityId, withSslOptions } from '../utils/command-utils.js';
5
+ import { ERROR_CODES, handleError, ValidationError } from '../utils/error-handler.js';
6
+ import { printInfo, printSuccess, printWarning } from '../utils/output-utils.js';
7
+ /** `--yes` is required: both verbs are destructive and the CLI never prompts. */
8
+ function requireYes(yes, what) {
9
+ if (!yes)
10
+ throw new ValidationError(`Refusing to ${what} without --yes`, 'yes');
11
+ }
12
+ /**
13
+ * Registers `pipeline delete`: delete a pipeline configuration
14
+ * (`DELETE /api/pipelines/:id`). It does NOT touch AWS — a deployed stack keeps
15
+ * running until it is destroyed, and the stack then shows up in `audit stacks`
16
+ * as orphaned.
17
+ *
18
+ * @example
19
+ * ```bash
20
+ * pipeline-manager pipeline delete --id <pipelineId> --yes
21
+ * ```
22
+ */
23
+ export function deletePipeline(program) {
24
+ withSslOptions(program
25
+ .command('delete')
26
+ .description('Delete a pipeline configuration from the platform (the deployed stack, if any, is left in AWS)')
27
+ .requiredOption('-i, --id <id>', 'Pipeline ID')
28
+ .option('-y, --yes', 'Confirm the deletion (required)', false))
29
+ .action(async (options) => {
30
+ const executionId = printCommandHeader('Delete Pipeline');
31
+ try {
32
+ printSslWarning(options.verifySsl);
33
+ const id = validateEntityId(options.id, 'Pipeline');
34
+ requireYes(options.yes, 'delete a pipeline');
35
+ const client = await createAuthenticatedClientAsync(options);
36
+ await client.delete(`${client.getConfig().api.pipelineUrl}/${encodeURIComponent(id)}`);
37
+ printSuccess('Pipeline deleted', { id });
38
+ printWarning('A deployed stack is not removed — destroy it in AWS, or it will be reported by "audit stacks" as orphaned');
39
+ }
40
+ catch (error) {
41
+ handleError(error, ERROR_CODES.API_REQUEST, {
42
+ exit: true,
43
+ context: { command: 'pipeline-delete', executionId, pipelineId: options.id },
44
+ });
45
+ }
46
+ });
47
+ }
48
+ /**
49
+ * Registers `pipeline deregister`: remove one pipeline_registry row
50
+ * (`DELETE /api/pipelines/registry/:id`, by the row's UUID — the `registryId`
51
+ * an `audit stacks` missing-stack finding prints). The supported way to clear a
52
+ * row whose CloudFormation stack was deleted out of band.
53
+ *
54
+ * @example
55
+ * ```bash
56
+ * pipeline-manager pipeline deregister --id <registryId> --yes
57
+ * ```
58
+ */
59
+ export function deregisterPipeline(program) {
60
+ withSslOptions(program
61
+ .command('deregister')
62
+ .description('Remove a pipeline_registry row (by registry id) — reconciles an "audit stacks" missing-stack finding')
63
+ .requiredOption('-i, --id <registryId>', 'Registry row ID (the registryId "audit stacks" prints)')
64
+ .option('-y, --yes', 'Confirm the removal (required)', false))
65
+ .action(async (options) => {
66
+ const executionId = printCommandHeader('Deregister Pipeline');
67
+ try {
68
+ printSslWarning(options.verifySsl);
69
+ const id = validateEntityId(options.id, 'Registry');
70
+ requireYes(options.yes, 'remove a registry row');
71
+ const client = await createAuthenticatedClientAsync(options);
72
+ await client.delete(`${client.getConfig().api.pipelineUrl}/registry/${encodeURIComponent(id)}`);
73
+ printSuccess('Registry row removed', { id });
74
+ printInfo('Event reporting for that deployment stops; "pipeline register" adds it back');
75
+ }
76
+ catch (error) {
77
+ handleError(error, ERROR_CODES.API_REQUEST, {
78
+ exit: true,
79
+ context: { command: 'pipeline-deregister', executionId, registryId: options.id },
80
+ });
81
+ }
82
+ });
83
+ }
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUtcmVtb3ZlLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvcGlwZWxpbmUtcmVtb3ZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xKLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWpGLGlGQUFpRjtBQUNqRixTQUFTLFVBQVUsQ0FBQyxHQUF3QixFQUFFLElBQVk7SUFDeEQsSUFBSSxDQUFDLEdBQUc7UUFBRSxNQUFNLElBQUksZUFBZSxDQUFDLGVBQWUsSUFBSSxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNsRixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsT0FBZ0I7SUFDN0MsY0FBYyxDQUFDLE9BQU87U0FDbkIsT0FBTyxDQUFDLFFBQVEsQ0FBQztTQUNqQixXQUFXLENBQUMsZ0dBQWdHLENBQUM7U0FDN0csY0FBYyxDQUFDLGVBQWUsRUFBRSxhQUFhLENBQUM7U0FDOUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxpQ0FBaUMsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUM5RCxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQ3hCLE1BQU0sV0FBVyxHQUFHLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDO1lBQ0gsZUFBZSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNuQyxNQUFNLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ3BELFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLG1CQUFtQixDQUFDLENBQUM7WUFDN0MsTUFBTSxNQUFNLEdBQUcsTUFBTSw4QkFBOEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM3RCxNQUFNLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDdkYsWUFBWSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN6QyxZQUFZLENBQUMsMkdBQTJHLENBQUMsQ0FBQztRQUM1SCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLFdBQVcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLFdBQVcsRUFBRTtnQkFDMUMsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRTthQUM3RSxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxPQUFnQjtJQUNqRCxjQUFjLENBQUMsT0FBTztTQUNuQixPQUFPLENBQUMsWUFBWSxDQUFDO1NBQ3JCLFdBQVcsQ0FBQyxzR0FBc0csQ0FBQztTQUNuSCxjQUFjLENBQUMsdUJBQXVCLEVBQUUsd0RBQXdELENBQUM7U0FDakcsTUFBTSxDQUFDLFdBQVcsRUFBRSxnQ0FBZ0MsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUM3RCxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQ3hCLE1BQU0sV0FBVyxHQUFHLGtCQUFrQixDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDO1lBQ0gsZUFBZSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNuQyxNQUFNLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ3BELFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLHVCQUF1QixDQUFDLENBQUM7WUFDakQsTUFBTSxNQUFNLEdBQUcsTUFBTSw4QkFBOEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM3RCxNQUFNLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsYUFBYSxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDaEcsWUFBWSxDQUFDLHNCQUFzQixFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM3QyxTQUFTLENBQUMsNkVBQTZFLENBQUMsQ0FBQztRQUMzRixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLFdBQVcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLFdBQVcsRUFBRTtnQkFDMUMsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRTthQUNqRixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdjb21tYW5kZXInO1xuaW1wb3J0IHsgY3JlYXRlQXV0aGVudGljYXRlZENsaWVudEFzeW5jLCBwcmludENvbW1hbmRIZWFkZXIsIHByaW50U3NsV2FybmluZywgdmFsaWRhdGVFbnRpdHlJZCwgd2l0aFNzbE9wdGlvbnMgfSBmcm9tICcuLi91dGlscy9jb21tYW5kLXV0aWxzLmpzJztcbmltcG9ydCB7IEVSUk9SX0NPREVTLCBoYW5kbGVFcnJvciwgVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnLi4vdXRpbHMvZXJyb3ItaGFuZGxlci5qcyc7XG5pbXBvcnQgeyBwcmludEluZm8sIHByaW50U3VjY2VzcywgcHJpbnRXYXJuaW5nIH0gZnJvbSAnLi4vdXRpbHMvb3V0cHV0LXV0aWxzLmpzJztcblxuLyoqIGAtLXllc2AgaXMgcmVxdWlyZWQ6IGJvdGggdmVyYnMgYXJlIGRlc3RydWN0aXZlIGFuZCB0aGUgQ0xJIG5ldmVyIHByb21wdHMuICovXG5mdW5jdGlvbiByZXF1aXJlWWVzKHllczogYm9vbGVhbiB8IHVuZGVmaW5lZCwgd2hhdDogc3RyaW5nKTogdm9pZCB7XG4gIGlmICgheWVzKSB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGBSZWZ1c2luZyB0byAke3doYXR9IHdpdGhvdXQgLS15ZXNgLCAneWVzJyk7XG59XG5cbi8qKlxuICogUmVnaXN0ZXJzIGBwaXBlbGluZSBkZWxldGVgOiBkZWxldGUgYSBwaXBlbGluZSBjb25maWd1cmF0aW9uXG4gKiAoYERFTEVURSAvYXBpL3BpcGVsaW5lcy86aWRgKS4gSXQgZG9lcyBOT1QgdG91Y2ggQVdTIOKAlCBhIGRlcGxveWVkIHN0YWNrIGtlZXBzXG4gKiBydW5uaW5nIHVudGlsIGl0IGlzIGRlc3Ryb3llZCwgYW5kIHRoZSBzdGFjayB0aGVuIHNob3dzIHVwIGluIGBhdWRpdCBzdGFja3NgXG4gKiBhcyBvcnBoYW5lZC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgYmFzaFxuICogcGlwZWxpbmUtbWFuYWdlciBwaXBlbGluZSBkZWxldGUgLS1pZCA8cGlwZWxpbmVJZD4gLS15ZXNcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVsZXRlUGlwZWxpbmUocHJvZ3JhbTogQ29tbWFuZCk6IHZvaWQge1xuICB3aXRoU3NsT3B0aW9ucyhwcm9ncmFtXG4gICAgLmNvbW1hbmQoJ2RlbGV0ZScpXG4gICAgLmRlc2NyaXB0aW9uKCdEZWxldGUgYSBwaXBlbGluZSBjb25maWd1cmF0aW9uIGZyb20gdGhlIHBsYXRmb3JtICh0aGUgZGVwbG95ZWQgc3RhY2ssIGlmIGFueSwgaXMgbGVmdCBpbiBBV1MpJylcbiAgICAucmVxdWlyZWRPcHRpb24oJy1pLCAtLWlkIDxpZD4nLCAnUGlwZWxpbmUgSUQnKVxuICAgIC5vcHRpb24oJy15LCAtLXllcycsICdDb25maXJtIHRoZSBkZWxldGlvbiAocmVxdWlyZWQpJywgZmFsc2UpKVxuICAgIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgIGNvbnN0IGV4ZWN1dGlvbklkID0gcHJpbnRDb21tYW5kSGVhZGVyKCdEZWxldGUgUGlwZWxpbmUnKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIHByaW50U3NsV2FybmluZyhvcHRpb25zLnZlcmlmeVNzbCk7XG4gICAgICAgIGNvbnN0IGlkID0gdmFsaWRhdGVFbnRpdHlJZChvcHRpb25zLmlkLCAnUGlwZWxpbmUnKTtcbiAgICAgICAgcmVxdWlyZVllcyhvcHRpb25zLnllcywgJ2RlbGV0ZSBhIHBpcGVsaW5lJyk7XG4gICAgICAgIGNvbnN0IGNsaWVudCA9IGF3YWl0IGNyZWF0ZUF1dGhlbnRpY2F0ZWRDbGllbnRBc3luYyhvcHRpb25zKTtcbiAgICAgICAgYXdhaXQgY2xpZW50LmRlbGV0ZShgJHtjbGllbnQuZ2V0Q29uZmlnKCkuYXBpLnBpcGVsaW5lVXJsfS8ke2VuY29kZVVSSUNvbXBvbmVudChpZCl9YCk7XG4gICAgICAgIHByaW50U3VjY2VzcygnUGlwZWxpbmUgZGVsZXRlZCcsIHsgaWQgfSk7XG4gICAgICAgIHByaW50V2FybmluZygnQSBkZXBsb3llZCBzdGFjayBpcyBub3QgcmVtb3ZlZCDigJQgZGVzdHJveSBpdCBpbiBBV1MsIG9yIGl0IHdpbGwgYmUgcmVwb3J0ZWQgYnkgXCJhdWRpdCBzdGFja3NcIiBhcyBvcnBoYW5lZCcpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaGFuZGxlRXJyb3IoZXJyb3IsIEVSUk9SX0NPREVTLkFQSV9SRVFVRVNULCB7XG4gICAgICAgICAgZXhpdDogdHJ1ZSxcbiAgICAgICAgICBjb250ZXh0OiB7IGNvbW1hbmQ6ICdwaXBlbGluZS1kZWxldGUnLCBleGVjdXRpb25JZCwgcGlwZWxpbmVJZDogb3B0aW9ucy5pZCB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbn1cblxuLyoqXG4gKiBSZWdpc3RlcnMgYHBpcGVsaW5lIGRlcmVnaXN0ZXJgOiByZW1vdmUgb25lIHBpcGVsaW5lX3JlZ2lzdHJ5IHJvd1xuICogKGBERUxFVEUgL2FwaS9waXBlbGluZXMvcmVnaXN0cnkvOmlkYCwgYnkgdGhlIHJvdydzIFVVSUQg4oCUIHRoZSBgcmVnaXN0cnlJZGBcbiAqIGFuIGBhdWRpdCBzdGFja3NgIG1pc3Npbmctc3RhY2sgZmluZGluZyBwcmludHMpLiBUaGUgc3VwcG9ydGVkIHdheSB0byBjbGVhciBhXG4gKiByb3cgd2hvc2UgQ2xvdWRGb3JtYXRpb24gc3RhY2sgd2FzIGRlbGV0ZWQgb3V0IG9mIGJhbmQuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGJhc2hcbiAqIHBpcGVsaW5lLW1hbmFnZXIgcGlwZWxpbmUgZGVyZWdpc3RlciAtLWlkIDxyZWdpc3RyeUlkPiAtLXllc1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXJlZ2lzdGVyUGlwZWxpbmUocHJvZ3JhbTogQ29tbWFuZCk6IHZvaWQge1xuICB3aXRoU3NsT3B0aW9ucyhwcm9ncmFtXG4gICAgLmNvbW1hbmQoJ2RlcmVnaXN0ZXInKVxuICAgIC5kZXNjcmlwdGlvbignUmVtb3ZlIGEgcGlwZWxpbmVfcmVnaXN0cnkgcm93IChieSByZWdpc3RyeSBpZCkg4oCUIHJlY29uY2lsZXMgYW4gXCJhdWRpdCBzdGFja3NcIiBtaXNzaW5nLXN0YWNrIGZpbmRpbmcnKVxuICAgIC5yZXF1aXJlZE9wdGlvbignLWksIC0taWQgPHJlZ2lzdHJ5SWQ+JywgJ1JlZ2lzdHJ5IHJvdyBJRCAodGhlIHJlZ2lzdHJ5SWQgXCJhdWRpdCBzdGFja3NcIiBwcmludHMpJylcbiAgICAub3B0aW9uKCcteSwgLS15ZXMnLCAnQ29uZmlybSB0aGUgcmVtb3ZhbCAocmVxdWlyZWQpJywgZmFsc2UpKVxuICAgIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgIGNvbnN0IGV4ZWN1dGlvbklkID0gcHJpbnRDb21tYW5kSGVhZGVyKCdEZXJlZ2lzdGVyIFBpcGVsaW5lJyk7XG4gICAgICB0cnkge1xuICAgICAgICBwcmludFNzbFdhcm5pbmcob3B0aW9ucy52ZXJpZnlTc2wpO1xuICAgICAgICBjb25zdCBpZCA9IHZhbGlkYXRlRW50aXR5SWQob3B0aW9ucy5pZCwgJ1JlZ2lzdHJ5Jyk7XG4gICAgICAgIHJlcXVpcmVZZXMob3B0aW9ucy55ZXMsICdyZW1vdmUgYSByZWdpc3RyeSByb3cnKTtcbiAgICAgICAgY29uc3QgY2xpZW50ID0gYXdhaXQgY3JlYXRlQXV0aGVudGljYXRlZENsaWVudEFzeW5jKG9wdGlvbnMpO1xuICAgICAgICBhd2FpdCBjbGllbnQuZGVsZXRlKGAke2NsaWVudC5nZXRDb25maWcoKS5hcGkucGlwZWxpbmVVcmx9L3JlZ2lzdHJ5LyR7ZW5jb2RlVVJJQ29tcG9uZW50KGlkKX1gKTtcbiAgICAgICAgcHJpbnRTdWNjZXNzKCdSZWdpc3RyeSByb3cgcmVtb3ZlZCcsIHsgaWQgfSk7XG4gICAgICAgIHByaW50SW5mbygnRXZlbnQgcmVwb3J0aW5nIGZvciB0aGF0IGRlcGxveW1lbnQgc3RvcHM7IFwicGlwZWxpbmUgcmVnaXN0ZXJcIiBhZGRzIGl0IGJhY2snKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGhhbmRsZUVycm9yKGVycm9yLCBFUlJPUl9DT0RFUy5BUElfUkVRVUVTVCwge1xuICAgICAgICAgIGV4aXQ6IHRydWUsXG4gICAgICAgICAgY29udGV4dDogeyBjb21tYW5kOiAncGlwZWxpbmUtZGVyZWdpc3RlcicsIGV4ZWN1dGlvbklkLCByZWdpc3RyeUlkOiBvcHRpb25zLmlkIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xufVxuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"register.d.ts","sources":["../../src/commands/register.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwG/C"}
1
+ {"version":3,"file":"register.d.ts","sources":["../../src/commands/register.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuG/C"}
@@ -4,7 +4,7 @@ import { errorMessage } from '@pipeline-builder/api-core';
4
4
  import { Command } from 'commander';
5
5
  import {} from '../types/index.js';
6
6
  import { createAuthenticatedClient, printCommandHeader, printSslWarning, withRegionOption, withSslOptions } from '../utils/command-utils.js';
7
- import { ERROR_CODES, handleError } from '../utils/error-handler.js';
7
+ import { ERROR_CODES, reportError } from '../utils/error-handler.js';
8
8
  import { printError, printInfo, printKeyValue, printSection, printSuccess, printWarning } from '../utils/output-utils.js';
9
9
  import { buildRegistryPayload, clearPendingIntent, readPendingIntents, writePendingIntent, } from '../utils/registry.js';
10
10
  import { extractSingleResponse } from '../utils/response-utils.js';
@@ -131,9 +131,8 @@ export function register(program) {
131
131
  process.exit(anyFailed ? 1 : 0);
132
132
  }
133
133
  catch (error) {
134
- handleError(error, ERROR_CODES.API_REQUEST, {
134
+ reportError(error, ERROR_CODES.API_REQUEST, {
135
135
  debug: program.opts().debug,
136
- exit: false,
137
136
  context: { command: 'register', executionId, pipelineId: options.id },
138
137
  });
139
138
  process.exit(1);
@@ -158,4 +157,4 @@ async function postRegistration(client, pipelineUrl, payload, pipelineId) {
158
157
  return false;
159
158
  }
160
159
  }
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy9yZWdpc3Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBd0MsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdJLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUgsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLGtCQUFrQixHQUVuQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRW5FOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0NHO0FBQ0gsTUFBTSxVQUFVLFFBQVEsQ0FBQyxPQUFnQjtJQUN2QyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsT0FBTztTQUNwQyxPQUFPLENBQUMsVUFBVSxDQUFDO1NBQ25CLFdBQVcsQ0FBQywwRkFBMEYsQ0FBQztTQUN2RyxNQUFNLENBQUMsZUFBZSxFQUFFLG1EQUFtRCxDQUFDLENBQUM7U0FDN0UsTUFBTSxDQUFDLFlBQVksRUFBRSx5REFBeUQsQ0FBQyxDQUFDO1NBQ2hGLE1BQU0sQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7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RUFBRSxDQUFDO1lBQ2YsV0FBVyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsV0FBVyxFQUFFO2dCQUMxQyxLQUFLLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUs7Z0JBQzNCLElBQUksRUFBRSxLQUFLO2dCQUNYLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFO2FBQ3RFLENBQUMsQ0FBQztZQUNILE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUVEOzs7R0FHRztBQUNILEtBQUssVUFBVSxnQkFBZ0IsQ0FDN0IsTUFBb0QsRUFDcEQsV0FBbUIsRUFDbkIsT0FBd0IsRUFDeEIsVUFBa0I7SUFFbEIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsV0FBVyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdEQsU0FBUyxDQUFDLFlBQVksRUFBRSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDeEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLFlBQVksQ0FBQyxxQkFBcUIsRUFBRTtZQUNsQyxVQUFVO1lBQ1YsS0FBSyxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUM7U0FDekIsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyBlcnJvck1lc3NhZ2UgfSBmcm9tICdAcGlwZWxpbmUtYnVpbGRlci9hcGktY29yZSc7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSAnY29tbWFuZGVyJztcbmltcG9ydCB7IHR5cGUgUGlwZWxpbmUsIHR5cGUgUGlwZWxpbmVSZXNwb25zZSB9IGZyb20gJy4uL3R5cGVzL2luZGV4LmpzJztcbmltcG9ydCB7IGNyZWF0ZUF1dGhlbnRpY2F0ZWRDbGllbnQsIHByaW50Q29tbWFuZEhlYWRlciwgcHJpbnRTc2xXYXJuaW5nLCB3aXRoUmVnaW9uT3B0aW9uLCB3aXRoU3NsT3B0aW9ucyB9IGZyb20gJy4uL3V0aWxzL2NvbW1hbmQtdXRpbHMuanMnO1xuaW1wb3J0IHsgRVJST1JfQ09ERVMsIGhhbmRsZUVycm9yIH0gZnJvbSAnLi4vdXRpbHMvZXJyb3ItaGFuZGxlci5qcyc7XG5pbXBvcnQgeyBwcmludEVycm9yLCBwcmludEluZm8sIHByaW50S2V5VmFsdWUsIHByaW50U2VjdGlvbiwgcHJpbnRTdWNjZXNzLCBwcmludFdhcm5pbmcgfSBmcm9tICcuLi91dGlscy9vdXRwdXQtdXRpbHMuanMnO1xuaW1wb3J0IHtcbiAgYnVpbGRSZWdpc3RyeVBheWxvYWQsXG4gIGNsZWFyUGVuZGluZ0ludGVudCxcbiAgcmVhZFBlbmRpbmdJbnRlbnRzLFxuICB3cml0ZVBlbmRpbmdJbnRlbnQsXG4gIHR5cGUgUmVnaXN0cnlQYXlsb2FkLFxufSBmcm9tICcuLi91dGlscy9yZWdpc3RyeS5qcyc7XG5pbXBvcnQgeyBleHRyYWN0U2luZ2xlUmVzcG9uc2UgfSBmcm9tICcuLi91dGlscy9yZXNwb25zZS11dGlscy5qcyc7XG5cbi8qKlxuICogUmVnaXN0ZXJzIHRoZSBgcmVnaXN0ZXJgIGNvbW1hbmQgd2l0aCB0aGUgQ0xJIHByb2dyYW0uXG4gKlxuICogVHdvIHB1cnBvc2VzIOKAlCBib3RoIHRhcmdldGVkIGF0IHJlY292ZXJpbmcgZnJvbSBhIGRlcGxveSB3aG9zZSByZWdpc3RyYXRpb25cbiAqIHN0ZXAgZGlkbid0IGxhbmQ6XG4gKlxuICogICAxLiBFeHBsaWNpdCByZS1yZWdpc3RlciAoYC0taWQgPHBpcGVsaW5lSWQ+YCkg4oCUIHJlY29tcHV0ZXMgdGhlIEFSTiBmcm9tXG4gKiAgICAgIFNUUyArIHJlZ2lvbiBhbmQgUE9TVHMgaXQgdG8gdGhlIHBsYXRmb3JtLiBVc2VmdWwgd2hlbiB0aGUgcGxhdGZvcm1cbiAqICAgICAgd2FzIHVucmVhY2hhYmxlIGR1cmluZyBgZGVwbG95YCwgd2hlbiB0aGUgcmVnaXN0cnkgcm93IHdhcyBkZWxldGVkIGJ5XG4gKiAgICAgIG1pc3Rha2UsIG9yIGZvciBhbnkgb3RoZXIgcmVhc29uIGEgZGVwbG95ZWQgc3RhY2sgaGFzIG5vIHJlZ2lzdHJ5IHJvdy5cbiAqXG4gKiAgIDIuIERyYWluIHBlbmRpbmcgaW50ZW50cyAoZXZlcnkgaW52b2NhdGlvbikg4oCUIGBkZXBsb3lgIHdyaXRlcyBhIGxvY2FsXG4gKiAgICAgIGZpbGUgdW5kZXIgYH4vLnBpcGVsaW5lLW1hbmFnZXIvcGVuZGluZy1yZWdpc3RyYXRpb25zL2Agd2hlbmV2ZXIgaXRzXG4gKiAgICAgIHJlZ2lzdHJhdGlvbiBQT1NUIGZhaWxzLiBFYWNoIGByZWdpc3RlcmAgaW52b2NhdGlvbiB0cmllcyB0byBkcmFpblxuICogICAgICBldmVyeSBzdWNoIGZpbGUuIE9uIHN1Y2Nlc3MgdGhlIGZpbGUgaXMgZGVsZXRlZDsgb24gZmFpbHVyZSBpdCBzdGF5c1xuICogICAgICBhbmQgc3VyZmFjZXMgYXMgYSB3YXJuaW5nLlxuICpcbiAqIEZsYWdzOlxuICogICAtIGAtLWlkIDxwaXBlbGluZUlkPmAg4oCUIHJlLXJlZ2lzdGVyIGEgc3BlY2lmaWMgcGlwZWxpbmUgYnkgSURcbiAqICAgLSBgLS1yZWdpb24gPHJlZ2lvbj5gIOKAlCBBV1MgcmVnaW9uIChkZWZhdWx0OiBBV1NfUkVHSU9OIGVudiAvIHVzLWVhc3QtMSlcbiAqICAgLSBgLS1uby1kcmFpbmAg4oCUIHNraXAgZHJhaW5pbmcgcGVuZGluZyBpbnRlbnRzXG4gKlxuICogRXhpdCBjb2RlczpcbiAqICAgLSAwOiByZXF1ZXN0ZWQgcmVnaXN0cmF0aW9uIHN1Y2NlZWRlZCBBTkQgbm8gcGVuZGluZyBpbnRlbnRzIHJlbWFpblxuICogICAtIDE6IGF0IGxlYXN0IG9uZSByZWdpc3RyYXRpb24gKGV4cGxpY2l0IG9yIHBlbmRpbmcpIHN0aWxsIGZhaWxlZFxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBiYXNoXG4gKiAjIFJldHJ5IGEgcmVnaXN0cmF0aW9uIHRoYXQgZmFpbGVkIGR1cmluZyBkZXBsb3lcbiAqIHBpcGVsaW5lLW1hbmFnZXIgcGlwZWxpbmUgcmVnaXN0ZXIgLS1pZCBwaXBlLTEyM1xuICpcbiAqICMgSnVzdCBkcmFpbiBwZW5kaW5nIGludGVudHMgZnJvbSBkaXNrLCBubyBzcGVjaWZpYyByZWdpc3RyYXRpb25cbiAqIHBpcGVsaW5lLW1hbmFnZXIgcGlwZWxpbmUgcmVnaXN0ZXJcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXIocHJvZ3JhbTogQ29tbWFuZCk6IHZvaWQge1xuICB3aXRoU3NsT3B0aW9ucyh3aXRoUmVnaW9uT3B0aW9uKHByb2dyYW1cbiAgICAuY29tbWFuZCgncmVnaXN0ZXInKVxuICAgIC5kZXNjcmlwdGlvbignUmVnaXN0ZXIgYSBkZXBsb3llZCBwaXBlbGluZSBBUk4gd2l0aCB0aGUgcGxhdGZvcm0gKHJldHJ5IHBhdGggZm9yIGZhaWxlZCByZWdpc3RyYXRpb25zKScpXG4gICAgLm9wdGlvbignLWksIC0taWQgPGlkPicsICdQaXBlbGluZSBJRCB0byByZWdpc3RlciAocmUtZGVyaXZlcyBBUk4gZnJvbSBTVFMpJykpXG4gICAgLm9wdGlvbignLS1uby1kcmFpbicsICdTa2lwIGRyYWluaW5nIHBlbmRpbmcgaW50ZW50cyBmcm9tIHByaW9yIGZhaWxlZCBkZXBsb3lzJykpXG4gICAgLmFjdGlvbihhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgY29uc3QgZXhlY3V0aW9uSWQgPSBwcmludENvbW1hbmRIZWFkZXIoJ1JlZ2lzdGVyIFBpcGVsaW5lJyk7XG4gICAgICBwcmludFNzbFdhcm5pbmcob3B0aW9ucy52ZXJpZnlTc2wpO1xuXG4gICAgICBsZXQgYW55RmFpbGVkID0gZmFsc2U7XG4gICAgICBsZXQgcmVnaXN0ZXJlZENvdW50ID0gMDtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY2xpZW50ID0gY3JlYXRlQXV0aGVudGljYXRlZENsaWVudChvcHRpb25zKTtcbiAgICAgICAgY29uc3QgcGlwZWxpbmVVcmwgPSBjbGllbnQuZ2V0Q29uZmlnKCkuYXBpLnBpcGVsaW5lVXJsO1xuXG4gICAgICAgIC8vIOKUgOKUgCBEcmFpbiBwZW5kaW5nIGludGVudHMgZmlyc3Qg4pSA4pSAXG4gICAgICAgIC8vIFdlIGRyYWluIGJlZm9yZSB0aGUgZXhwbGljaXQgcmVnaXN0cmF0aW9uIHNvIGEgcXVldWVkIGZhaWx1cmUgZm9yXG4gICAgICAgIC8vIHRoZSBzYW1lIHBpcGVsaW5lSWQgaXMgcmVwbGFjZWQgKG5vdCBkb3VibGUtYXBwbGllZCkgYnkgdGhlIGZyZXNoXG4gICAgICAgIC8vIHBheWxvYWQgYmVsb3cuXG4gICAgICAgIGNvbnN0IGRyYWluZWQgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICAgICAgaWYgKG9wdGlvbnMuZHJhaW4gIT09IGZhbHNlKSB7XG4gICAgICAgICAgY29uc3QgaW50ZW50cyA9IGF3YWl0IHJlYWRQZW5kaW5nSW50ZW50cygpO1xuICAgICAgICAgIGlmIChpbnRlbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHByaW50U2VjdGlvbignRHJhaW5pbmcgcGVuZGluZyBpbnRlbnRzJyk7XG4gICAgICAgICAgICBwcmludEluZm8oJ0ZvdW5kIHBlbmRpbmcgcmVnaXN0cmF0aW9ucyBmcm9tIHByaW9yIGZhaWxlZCBkZXBsb3lzJywge1xuICAgICAgICAgICAgICBjb3VudDogU3RyaW5nKGludGVudHMubGVuZ3RoKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZm9yIChjb25zdCBpbnRlbnQgb2YgaW50ZW50cykge1xuICAgICAgICAgICAgICAvLyBTa2lwIHRoZSBleHBsaWNpdCBwaXBlbGluZSDigJQgd2UnbGwgcmUtYnVpbGQgYSBmcmVzaCBwYXlsb2FkIGJlbG93LlxuICAgICAgICAgICAgICBpZiAob3B0aW9ucy5pZCAmJiBpbnRlbnQucGlwZWxpbmVJZCA9PT0gb3B0aW9ucy5pZCkgY29udGludWU7XG4gICAgICAgICAgICAgIGNvbnN0IG9rID0gYXdhaXQgcG9zdFJlZ2lzdHJhdGlvbihjbGllbnQsIHBpcGVsaW5lVXJsLCBpbnRlbnQsIGludGVudC5waXBlbGluZUlkKTtcbiAgICAgICAgICAgICAgaWYgKG9rKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgY2xlYXJQZW5kaW5nSW50ZW50KGludGVudC5waXBlbGluZUlkKTtcbiAgICAgICAgICAgICAgICBkcmFpbmVkLmFkZChpbnRlbnQucGlwZWxpbmVJZCk7XG4gICAgICAgICAgICAgICAgcmVnaXN0ZXJlZENvdW50Kys7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYW55RmFpbGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIOKUgOKUgCBFeHBsaWNpdCByZWdpc3RyYXRpb24g4pSA4pSAXG4gICAgICAgIGlmIChvcHRpb25zLmlkKSB7XG4gICAgICAgICAgcHJpbnRTZWN0aW9uKCdSZS1yZWdpc3RlcmluZyBwaXBlbGluZScpO1xuICAgICAgICAgIGNvbnN0IHBpcGVsaW5lUmVzID0gYXdhaXQgY2xpZW50LmdldDxQaXBlbGluZVJlc3BvbnNlPihgJHtwaXBlbGluZVVybH0vJHtvcHRpb25zLmlkfWApO1xuICAgICAgICAgIGNvbnN0IHBpcGVsaW5lID0gZXh0cmFjdFNpbmdsZVJlc3BvbnNlPFBpcGVsaW5lPihwaXBlbGluZVJlcywgJ3BpcGVsaW5lJywgJ2lkJyk7XG4gICAgICAgICAgaWYgKCFwaXBlbGluZSkge1xuICAgICAgICAgICAgcHJpbnRFcnJvcignUGlwZWxpbmUgbm90IGZvdW5kIGluIHBsYXRmb3JtJyk7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIHBpcGVsaW5lIHJldHVybmVkIGZvciBpZCAke29wdGlvbnMuaWR9YCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCFwaXBlbGluZS5vcmdJZCkge1xuICAgICAgICAgICAgcHJpbnRFcnJvcignUGlwZWxpbmUgaGFzIG5vIG9yZ0lkIOKAlCBjYW5ub3QgcmVnaXN0ZXInKTtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgUGlwZWxpbmUgJHtwaXBlbGluZS5pZH0gaXMgbWlzc2luZyBvcmdJZGApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBwYXlsb2FkID0gYXdhaXQgYnVpbGRSZWdpc3RyeVBheWxvYWQoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGlkOiBwaXBlbGluZS5pZCxcbiAgICAgICAgICAgICAgb3JnSWQ6IHBpcGVsaW5lLm9yZ0lkLFxuICAgICAgICAgICAgICBwaXBlbGluZU5hbWU6IHBpcGVsaW5lLnBpcGVsaW5lTmFtZSxcbiAgICAgICAgICAgICAgcHJvamVjdDogcGlwZWxpbmUucHJvamVjdCxcbiAgICAgICAgICAgICAgb3JnYW5pemF0aW9uOiBwaXBlbGluZS5vcmdhbml6YXRpb24sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb3B0aW9ucy5yZWdpb24sXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIC8vIENsZWFyIGFueSBzdGFsZSBpbnRlbnQgZm9yIHRoaXMgcGlwZWxpbmVJZCBiZWZvcmUgcmV0cnlpbmcgc28gd2VcbiAgICAgICAgICAvLyBkb24ndCBsZWF2ZSBhIGR1cGxpY2F0ZSBmaWxlIGJlaGluZCBvbiBzdWNjZXNzLlxuICAgICAgICAgIGF3YWl0IGNsZWFyUGVuZGluZ0ludGVudChwYXlsb2FkLnBpcGVsaW5lSWQpO1xuXG4gICAgICAgICAgY29uc3Qgb2sgPSBhd2FpdCBwb3N0UmVnaXN0cmF0aW9uKGNsaWVudCwgcGlwZWxpbmVVcmwsIHBheWxvYWQsIHBheWxvYWQucGlwZWxpbmVJZCk7XG4gICAgICAgICAgaWYgKG9rKSB7XG4gICAgICAgICAgICByZWdpc3RlcmVkQ291bnQrKztcbiAgICAgICAgICAgIHByaW50U3VjY2VzcygnUGlwZWxpbmUgcmVnaXN0ZXJlZCBmb3IgZXZlbnQgcmVwb3J0aW5nJywge1xuICAgICAgICAgICAgICBwaXBlbGluZUlkOiBwYXlsb2FkLnBpcGVsaW5lSWQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYW55RmFpbGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbnN0IHBhdGggPSBhd2FpdCB3cml0ZVBlbmRpbmdJbnRlbnQocGF5bG9hZCk7XG4gICAgICAgICAgICBwcmludFdhcm5pbmcoJ1JlZ2lzdHJhdGlvbiBmYWlsZWQ7IGludGVudCBzYXZlZCBmb3IgcmV0cnknLCB7IGludGVudDogcGF0aCB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBwcmludFNlY3Rpb24oJ1N1bW1hcnknKTtcbiAgICAgICAgcHJpbnRLZXlWYWx1ZSh7XG4gICAgICAgICAgJ1JlZ2lzdGVyZWQnOiBTdHJpbmcocmVnaXN0ZXJlZENvdW50KSxcbiAgICAgICAgICAnRHJhaW5lZCBmcm9tIHF1ZXVlJzogU3RyaW5nKGRyYWluZWQuc2l6ZSksXG4gICAgICAgICAgJ1N0YXR1cyc6IGFueUZhaWxlZCA/ICdTb21lIHJlZ2lzdHJhdGlvbnMgc3RpbGwgcGVuZGluZycgOiAnQWxsIGNsZWFyJyxcbiAgICAgICAgICAnRXhlY3V0aW9uIElEJzogZXhlY3V0aW9uSWQsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHByb2Nlc3MuZXhpdChhbnlGYWlsZWQgPyAxIDogMCk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBoYW5kbGVFcnJvcihlcnJvciwgRVJST1JfQ09ERVMuQVBJX1JFUVVFU1QsIHtcbiAgICAgICAgICBkZWJ1ZzogcHJvZ3JhbS5vcHRzKCkuZGVidWcsXG4gICAgICAgICAgZXhpdDogZmFsc2UsXG4gICAgICAgICAgY29udGV4dDogeyBjb21tYW5kOiAncmVnaXN0ZXInLCBleGVjdXRpb25JZCwgcGlwZWxpbmVJZDogb3B0aW9ucy5pZCB9LFxuICAgICAgICB9KTtcbiAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgfVxuICAgIH0pO1xufVxuXG4vKipcbiAqIFBPU1QgYSByZWdpc3RyYXRpb24gcGF5bG9hZCB0byB0aGUgcGxhdGZvcm0uIE9uIGZhaWx1cmUsIHRoZSBjYWxsZXIgZGVjaWRlc1xuICogd2hldGhlciB0byB3cml0ZS9wcmVzZXJ2ZSBhIHBlbmRpbmcgaW50ZW50IOKAlCB0aGlzIGhlbHBlciBqdXN0IHJlcG9ydHMuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHBvc3RSZWdpc3RyYXRpb24oXG4gIGNsaWVudDogUmV0dXJuVHlwZTx0eXBlb2YgY3JlYXRlQXV0aGVudGljYXRlZENsaWVudD4sXG4gIHBpcGVsaW5lVXJsOiBzdHJpbmcsXG4gIHBheWxvYWQ6IFJlZ2lzdHJ5UGF5bG9hZCxcbiAgcGlwZWxpbmVJZDogc3RyaW5nLFxuKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIHRyeSB7XG4gICAgYXdhaXQgY2xpZW50LnBvc3QoYCR7cGlwZWxpbmVVcmx9L3JlZ2lzdHJ5YCwgcGF5bG9hZCk7XG4gICAgcHJpbnRJbmZvKCdSZWdpc3RlcmVkJywgeyBwaXBlbGluZUlkIH0pO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBwcmludFdhcm5pbmcoJ1JlZ2lzdHJhdGlvbiBmYWlsZWQnLCB7XG4gICAgICBwaXBlbGluZUlkLFxuICAgICAgZXJyb3I6IGVycm9yTWVzc2FnZShlcnIpLFxuICAgIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy9yZWdpc3Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBd0MsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdJLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUgsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLGtCQUFrQixHQUVuQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRW5FOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0NHO0FBQ0gsTUFBTSxVQUFVLFFBQVEsQ0FBQyxPQUFnQjtJQUN2QyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsT0FBTztTQUNwQyxPQUFPLENBQUMsVUFBVSxDQUFDO1NBQ25CLFdBQVcsQ0FBQywwRkFBMEYsQ0FBQztTQUN2RyxNQUFNLENBQUMsZUFBZSxFQUFFLG1EQUFtRCxDQUFDLENBQUM7U0FDN0UsTUFBTSxDQUFDLFlBQVksRUFBRSx5REFBeUQsQ0FBQyxDQUFDO1NBQ2hGLE1BQU0sQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7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RUFBRSxDQUFDO1lBQ2YsV0FBVyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsV0FBVyxFQUFFO2dCQUMxQyxLQUFLLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUs7Z0JBQzNCLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFO2FBQ3RFLENBQUMsQ0FBQztZQUNILE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUVEOzs7R0FHRztBQUNILEtBQUssVUFBVSxnQkFBZ0IsQ0FDN0IsTUFBb0QsRUFDcEQsV0FBbUIsRUFDbkIsT0FBd0IsRUFDeEIsVUFBa0I7SUFFbEIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsV0FBVyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdEQsU0FBUyxDQUFDLFlBQVksRUFBRSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDeEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLFlBQVksQ0FBQyxxQkFBcUIsRUFBRTtZQUNsQyxVQUFVO1lBQ1YsS0FBSyxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUM7U0FDekIsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyBlcnJvck1lc3NhZ2UgfSBmcm9tICdAcGlwZWxpbmUtYnVpbGRlci9hcGktY29yZSc7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSAnY29tbWFuZGVyJztcbmltcG9ydCB7IHR5cGUgUGlwZWxpbmUsIHR5cGUgUGlwZWxpbmVSZXNwb25zZSB9IGZyb20gJy4uL3R5cGVzL2luZGV4LmpzJztcbmltcG9ydCB7IGNyZWF0ZUF1dGhlbnRpY2F0ZWRDbGllbnQsIHByaW50Q29tbWFuZEhlYWRlciwgcHJpbnRTc2xXYXJuaW5nLCB3aXRoUmVnaW9uT3B0aW9uLCB3aXRoU3NsT3B0aW9ucyB9IGZyb20gJy4uL3V0aWxzL2NvbW1hbmQtdXRpbHMuanMnO1xuaW1wb3J0IHsgRVJST1JfQ09ERVMsIHJlcG9ydEVycm9yIH0gZnJvbSAnLi4vdXRpbHMvZXJyb3ItaGFuZGxlci5qcyc7XG5pbXBvcnQgeyBwcmludEVycm9yLCBwcmludEluZm8sIHByaW50S2V5VmFsdWUsIHByaW50U2VjdGlvbiwgcHJpbnRTdWNjZXNzLCBwcmludFdhcm5pbmcgfSBmcm9tICcuLi91dGlscy9vdXRwdXQtdXRpbHMuanMnO1xuaW1wb3J0IHtcbiAgYnVpbGRSZWdpc3RyeVBheWxvYWQsXG4gIGNsZWFyUGVuZGluZ0ludGVudCxcbiAgcmVhZFBlbmRpbmdJbnRlbnRzLFxuICB3cml0ZVBlbmRpbmdJbnRlbnQsXG4gIHR5cGUgUmVnaXN0cnlQYXlsb2FkLFxufSBmcm9tICcuLi91dGlscy9yZWdpc3RyeS5qcyc7XG5pbXBvcnQgeyBleHRyYWN0U2luZ2xlUmVzcG9uc2UgfSBmcm9tICcuLi91dGlscy9yZXNwb25zZS11dGlscy5qcyc7XG5cbi8qKlxuICogUmVnaXN0ZXJzIHRoZSBgcmVnaXN0ZXJgIGNvbW1hbmQgd2l0aCB0aGUgQ0xJIHByb2dyYW0uXG4gKlxuICogVHdvIHB1cnBvc2VzIOKAlCBib3RoIHRhcmdldGVkIGF0IHJlY292ZXJpbmcgZnJvbSBhIGRlcGxveSB3aG9zZSByZWdpc3RyYXRpb25cbiAqIHN0ZXAgZGlkbid0IGxhbmQ6XG4gKlxuICogICAxLiBFeHBsaWNpdCByZS1yZWdpc3RlciAoYC0taWQgPHBpcGVsaW5lSWQ+YCkg4oCUIHJlY29tcHV0ZXMgdGhlIEFSTiBmcm9tXG4gKiAgICAgIFNUUyArIHJlZ2lvbiBhbmQgUE9TVHMgaXQgdG8gdGhlIHBsYXRmb3JtLiBVc2VmdWwgd2hlbiB0aGUgcGxhdGZvcm1cbiAqICAgICAgd2FzIHVucmVhY2hhYmxlIGR1cmluZyBgZGVwbG95YCwgd2hlbiB0aGUgcmVnaXN0cnkgcm93IHdhcyBkZWxldGVkIGJ5XG4gKiAgICAgIG1pc3Rha2UsIG9yIGZvciBhbnkgb3RoZXIgcmVhc29uIGEgZGVwbG95ZWQgc3RhY2sgaGFzIG5vIHJlZ2lzdHJ5IHJvdy5cbiAqXG4gKiAgIDIuIERyYWluIHBlbmRpbmcgaW50ZW50cyAoZXZlcnkgaW52b2NhdGlvbikg4oCUIGBkZXBsb3lgIHdyaXRlcyBhIGxvY2FsXG4gKiAgICAgIGZpbGUgdW5kZXIgYH4vLnBpcGVsaW5lLW1hbmFnZXIvcGVuZGluZy1yZWdpc3RyYXRpb25zL2Agd2hlbmV2ZXIgaXRzXG4gKiAgICAgIHJlZ2lzdHJhdGlvbiBQT1NUIGZhaWxzLiBFYWNoIGByZWdpc3RlcmAgaW52b2NhdGlvbiB0cmllcyB0byBkcmFpblxuICogICAgICBldmVyeSBzdWNoIGZpbGUuIE9uIHN1Y2Nlc3MgdGhlIGZpbGUgaXMgZGVsZXRlZDsgb24gZmFpbHVyZSBpdCBzdGF5c1xuICogICAgICBhbmQgc3VyZmFjZXMgYXMgYSB3YXJuaW5nLlxuICpcbiAqIEZsYWdzOlxuICogICAtIGAtLWlkIDxwaXBlbGluZUlkPmAg4oCUIHJlLXJlZ2lzdGVyIGEgc3BlY2lmaWMgcGlwZWxpbmUgYnkgSURcbiAqICAgLSBgLS1yZWdpb24gPHJlZ2lvbj5gIOKAlCBBV1MgcmVnaW9uIChkZWZhdWx0OiBBV1NfUkVHSU9OIGVudiAvIHVzLWVhc3QtMSlcbiAqICAgLSBgLS1uby1kcmFpbmAg4oCUIHNraXAgZHJhaW5pbmcgcGVuZGluZyBpbnRlbnRzXG4gKlxuICogRXhpdCBjb2RlczpcbiAqICAgLSAwOiByZXF1ZXN0ZWQgcmVnaXN0cmF0aW9uIHN1Y2NlZWRlZCBBTkQgbm8gcGVuZGluZyBpbnRlbnRzIHJlbWFpblxuICogICAtIDE6IGF0IGxlYXN0IG9uZSByZWdpc3RyYXRpb24gKGV4cGxpY2l0IG9yIHBlbmRpbmcpIHN0aWxsIGZhaWxlZFxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBiYXNoXG4gKiAjIFJldHJ5IGEgcmVnaXN0cmF0aW9uIHRoYXQgZmFpbGVkIGR1cmluZyBkZXBsb3lcbiAqIHBpcGVsaW5lLW1hbmFnZXIgcGlwZWxpbmUgcmVnaXN0ZXIgLS1pZCBwaXBlLTEyM1xuICpcbiAqICMgSnVzdCBkcmFpbiBwZW5kaW5nIGludGVudHMgZnJvbSBkaXNrLCBubyBzcGVjaWZpYyByZWdpc3RyYXRpb25cbiAqIHBpcGVsaW5lLW1hbmFnZXIgcGlwZWxpbmUgcmVnaXN0ZXJcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXIocHJvZ3JhbTogQ29tbWFuZCk6IHZvaWQge1xuICB3aXRoU3NsT3B0aW9ucyh3aXRoUmVnaW9uT3B0aW9uKHByb2dyYW1cbiAgICAuY29tbWFuZCgncmVnaXN0ZXInKVxuICAgIC5kZXNjcmlwdGlvbignUmVnaXN0ZXIgYSBkZXBsb3llZCBwaXBlbGluZSBBUk4gd2l0aCB0aGUgcGxhdGZvcm0gKHJldHJ5IHBhdGggZm9yIGZhaWxlZCByZWdpc3RyYXRpb25zKScpXG4gICAgLm9wdGlvbignLWksIC0taWQgPGlkPicsICdQaXBlbGluZSBJRCB0byByZWdpc3RlciAocmUtZGVyaXZlcyBBUk4gZnJvbSBTVFMpJykpXG4gICAgLm9wdGlvbignLS1uby1kcmFpbicsICdTa2lwIGRyYWluaW5nIHBlbmRpbmcgaW50ZW50cyBmcm9tIHByaW9yIGZhaWxlZCBkZXBsb3lzJykpXG4gICAgLmFjdGlvbihhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgY29uc3QgZXhlY3V0aW9uSWQgPSBwcmludENvbW1hbmRIZWFkZXIoJ1JlZ2lzdGVyIFBpcGVsaW5lJyk7XG4gICAgICBwcmludFNzbFdhcm5pbmcob3B0aW9ucy52ZXJpZnlTc2wpO1xuXG4gICAgICBsZXQgYW55RmFpbGVkID0gZmFsc2U7XG4gICAgICBsZXQgcmVnaXN0ZXJlZENvdW50ID0gMDtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY2xpZW50ID0gY3JlYXRlQXV0aGVudGljYXRlZENsaWVudChvcHRpb25zKTtcbiAgICAgICAgY29uc3QgcGlwZWxpbmVVcmwgPSBjbGllbnQuZ2V0Q29uZmlnKCkuYXBpLnBpcGVsaW5lVXJsO1xuXG4gICAgICAgIC8vIOKUgOKUgCBEcmFpbiBwZW5kaW5nIGludGVudHMgZmlyc3Qg4pSA4pSAXG4gICAgICAgIC8vIFdlIGRyYWluIGJlZm9yZSB0aGUgZXhwbGljaXQgcmVnaXN0cmF0aW9uIHNvIGEgcXVldWVkIGZhaWx1cmUgZm9yXG4gICAgICAgIC8vIHRoZSBzYW1lIHBpcGVsaW5lSWQgaXMgcmVwbGFjZWQgKG5vdCBkb3VibGUtYXBwbGllZCkgYnkgdGhlIGZyZXNoXG4gICAgICAgIC8vIHBheWxvYWQgYmVsb3cuXG4gICAgICAgIGNvbnN0IGRyYWluZWQgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICAgICAgaWYgKG9wdGlvbnMuZHJhaW4gIT09IGZhbHNlKSB7XG4gICAgICAgICAgY29uc3QgaW50ZW50cyA9IGF3YWl0IHJlYWRQZW5kaW5nSW50ZW50cygpO1xuICAgICAgICAgIGlmIChpbnRlbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHByaW50U2VjdGlvbignRHJhaW5pbmcgcGVuZGluZyBpbnRlbnRzJyk7XG4gICAgICAgICAgICBwcmludEluZm8oJ0ZvdW5kIHBlbmRpbmcgcmVnaXN0cmF0aW9ucyBmcm9tIHByaW9yIGZhaWxlZCBkZXBsb3lzJywge1xuICAgICAgICAgICAgICBjb3VudDogU3RyaW5nKGludGVudHMubGVuZ3RoKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZm9yIChjb25zdCBpbnRlbnQgb2YgaW50ZW50cykge1xuICAgICAgICAgICAgICAvLyBTa2lwIHRoZSBleHBsaWNpdCBwaXBlbGluZSDigJQgd2UnbGwgcmUtYnVpbGQgYSBmcmVzaCBwYXlsb2FkIGJlbG93LlxuICAgICAgICAgICAgICBpZiAob3B0aW9ucy5pZCAmJiBpbnRlbnQucGlwZWxpbmVJZCA9PT0gb3B0aW9ucy5pZCkgY29udGludWU7XG4gICAgICAgICAgICAgIGNvbnN0IG9rID0gYXdhaXQgcG9zdFJlZ2lzdHJhdGlvbihjbGllbnQsIHBpcGVsaW5lVXJsLCBpbnRlbnQsIGludGVudC5waXBlbGluZUlkKTtcbiAgICAgICAgICAgICAgaWYgKG9rKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgY2xlYXJQZW5kaW5nSW50ZW50KGludGVudC5waXBlbGluZUlkKTtcbiAgICAgICAgICAgICAgICBkcmFpbmVkLmFkZChpbnRlbnQucGlwZWxpbmVJZCk7XG4gICAgICAgICAgICAgICAgcmVnaXN0ZXJlZENvdW50Kys7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYW55RmFpbGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIOKUgOKUgCBFeHBsaWNpdCByZWdpc3RyYXRpb24g4pSA4pSAXG4gICAgICAgIGlmIChvcHRpb25zLmlkKSB7XG4gICAgICAgICAgcHJpbnRTZWN0aW9uKCdSZS1yZWdpc3RlcmluZyBwaXBlbGluZScpO1xuICAgICAgICAgIGNvbnN0IHBpcGVsaW5lUmVzID0gYXdhaXQgY2xpZW50LmdldDxQaXBlbGluZVJlc3BvbnNlPihgJHtwaXBlbGluZVVybH0vJHtvcHRpb25zLmlkfWApO1xuICAgICAgICAgIGNvbnN0IHBpcGVsaW5lID0gZXh0cmFjdFNpbmdsZVJlc3BvbnNlPFBpcGVsaW5lPihwaXBlbGluZVJlcywgJ3BpcGVsaW5lJywgJ2lkJyk7XG4gICAgICAgICAgaWYgKCFwaXBlbGluZSkge1xuICAgICAgICAgICAgcHJpbnRFcnJvcignUGlwZWxpbmUgbm90IGZvdW5kIGluIHBsYXRmb3JtJyk7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIHBpcGVsaW5lIHJldHVybmVkIGZvciBpZCAke29wdGlvbnMuaWR9YCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCFwaXBlbGluZS5vcmdJZCkge1xuICAgICAgICAgICAgcHJpbnRFcnJvcignUGlwZWxpbmUgaGFzIG5vIG9yZ0lkIOKAlCBjYW5ub3QgcmVnaXN0ZXInKTtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgUGlwZWxpbmUgJHtwaXBlbGluZS5pZH0gaXMgbWlzc2luZyBvcmdJZGApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBwYXlsb2FkID0gYXdhaXQgYnVpbGRSZWdpc3RyeVBheWxvYWQoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGlkOiBwaXBlbGluZS5pZCxcbiAgICAgICAgICAgICAgb3JnSWQ6IHBpcGVsaW5lLm9yZ0lkLFxuICAgICAgICAgICAgICBwaXBlbGluZU5hbWU6IHBpcGVsaW5lLnBpcGVsaW5lTmFtZSxcbiAgICAgICAgICAgICAgcHJvamVjdDogcGlwZWxpbmUucHJvamVjdCxcbiAgICAgICAgICAgICAgb3JnYW5pemF0aW9uOiBwaXBlbGluZS5vcmdhbml6YXRpb24sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb3B0aW9ucy5yZWdpb24sXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIC8vIENsZWFyIGFueSBzdGFsZSBpbnRlbnQgZm9yIHRoaXMgcGlwZWxpbmVJZCBiZWZvcmUgcmV0cnlpbmcgc28gd2VcbiAgICAgICAgICAvLyBkb24ndCBsZWF2ZSBhIGR1cGxpY2F0ZSBmaWxlIGJlaGluZCBvbiBzdWNjZXNzLlxuICAgICAgICAgIGF3YWl0IGNsZWFyUGVuZGluZ0ludGVudChwYXlsb2FkLnBpcGVsaW5lSWQpO1xuXG4gICAgICAgICAgY29uc3Qgb2sgPSBhd2FpdCBwb3N0UmVnaXN0cmF0aW9uKGNsaWVudCwgcGlwZWxpbmVVcmwsIHBheWxvYWQsIHBheWxvYWQucGlwZWxpbmVJZCk7XG4gICAgICAgICAgaWYgKG9rKSB7XG4gICAgICAgICAgICByZWdpc3RlcmVkQ291bnQrKztcbiAgICAgICAgICAgIHByaW50U3VjY2VzcygnUGlwZWxpbmUgcmVnaXN0ZXJlZCBmb3IgZXZlbnQgcmVwb3J0aW5nJywge1xuICAgICAgICAgICAgICBwaXBlbGluZUlkOiBwYXlsb2FkLnBpcGVsaW5lSWQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYW55RmFpbGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbnN0IHBhdGggPSBhd2FpdCB3cml0ZVBlbmRpbmdJbnRlbnQocGF5bG9hZCk7XG4gICAgICAgICAgICBwcmludFdhcm5pbmcoJ1JlZ2lzdHJhdGlvbiBmYWlsZWQ7IGludGVudCBzYXZlZCBmb3IgcmV0cnknLCB7IGludGVudDogcGF0aCB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBwcmludFNlY3Rpb24oJ1N1bW1hcnknKTtcbiAgICAgICAgcHJpbnRLZXlWYWx1ZSh7XG4gICAgICAgICAgJ1JlZ2lzdGVyZWQnOiBTdHJpbmcocmVnaXN0ZXJlZENvdW50KSxcbiAgICAgICAgICAnRHJhaW5lZCBmcm9tIHF1ZXVlJzogU3RyaW5nKGRyYWluZWQuc2l6ZSksXG4gICAgICAgICAgJ1N0YXR1cyc6IGFueUZhaWxlZCA/ICdTb21lIHJlZ2lzdHJhdGlvbnMgc3RpbGwgcGVuZGluZycgOiAnQWxsIGNsZWFyJyxcbiAgICAgICAgICAnRXhlY3V0aW9uIElEJzogZXhlY3V0aW9uSWQsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHByb2Nlc3MuZXhpdChhbnlGYWlsZWQgPyAxIDogMCk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICByZXBvcnRFcnJvcihlcnJvciwgRVJST1JfQ09ERVMuQVBJX1JFUVVFU1QsIHtcbiAgICAgICAgICBkZWJ1ZzogcHJvZ3JhbS5vcHRzKCkuZGVidWcsXG4gICAgICAgICAgY29udGV4dDogeyBjb21tYW5kOiAncmVnaXN0ZXInLCBleGVjdXRpb25JZCwgcGlwZWxpbmVJZDogb3B0aW9ucy5pZCB9LFxuICAgICAgICB9KTtcbiAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgfVxuICAgIH0pO1xufVxuXG4vKipcbiAqIFBPU1QgYSByZWdpc3RyYXRpb24gcGF5bG9hZCB0byB0aGUgcGxhdGZvcm0uIE9uIGZhaWx1cmUsIHRoZSBjYWxsZXIgZGVjaWRlc1xuICogd2hldGhlciB0byB3cml0ZS9wcmVzZXJ2ZSBhIHBlbmRpbmcgaW50ZW50IOKAlCB0aGlzIGhlbHBlciBqdXN0IHJlcG9ydHMuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHBvc3RSZWdpc3RyYXRpb24oXG4gIGNsaWVudDogUmV0dXJuVHlwZTx0eXBlb2YgY3JlYXRlQXV0aGVudGljYXRlZENsaWVudD4sXG4gIHBpcGVsaW5lVXJsOiBzdHJpbmcsXG4gIHBheWxvYWQ6IFJlZ2lzdHJ5UGF5bG9hZCxcbiAgcGlwZWxpbmVJZDogc3RyaW5nLFxuKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIHRyeSB7XG4gICAgYXdhaXQgY2xpZW50LnBvc3QoYCR7cGlwZWxpbmVVcmx9L3JlZ2lzdHJ5YCwgcGF5bG9hZCk7XG4gICAgcHJpbnRJbmZvKCdSZWdpc3RlcmVkJywgeyBwaXBlbGluZUlkIH0pO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBwcmludFdhcm5pbmcoJ1JlZ2lzdHJhdGlvbiBmYWlsZWQnLCB7XG4gICAgICBwaXBlbGluZUlkLFxuICAgICAgZXJyb3I6IGVycm9yTWVzc2FnZShlcnIpLFxuICAgIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19
@@ -2,8 +2,11 @@ import { Command } from 'commander';
2
2
  /**
3
3
  * Registers the `status` command with the CLI program.
4
4
  *
5
- * Checks environment variables, CDK availability, platform connectivity,
6
- * and token expiry to give a quick overview of the current setup.
5
+ * Reports the CLI's setup, not a deployment: which platform it talks to (the
6
+ * same base-URL layers every command resolves), which credential it would use
7
+ * and when that expires, CDK availability, whether the platform answers
8
+ * `/health`, and — with a usable credential — whether the platform ACCEPTS it,
9
+ * and as whom (`GET /api/user/profile`).
7
10
  *
8
11
  * @param program - The root Commander program instance to attach the command to.
9
12
  */
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqE7C"}
1
+ {"version":3,"file":"status.d.ts","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyBpC;;;;;;;;;;GAUG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoF7C"}
@@ -7,53 +7,71 @@ import { ENV_VARS, TIMEOUTS } from '../config/cli.constants.js';
7
7
  import { decodeTokenPayload } from '../utils/auth-guard.js';
8
8
  import { checkCdkAvailable } from '../utils/cdk-utils.js';
9
9
  import { printCommandHeader } from '../utils/command-utils.js';
10
+ import { getApiConfig } from '../utils/config-loader.js';
11
+ import { isSessionUsable, loadSession } from '../utils/credential-store.js';
10
12
  import { ERROR_CODES, handleError } from '../utils/error-handler.js';
11
13
  import { printKeyValue, printSection } from '../utils/output-utils.js';
14
+ import { requestCorrelationHeaders } from '../utils/request-context.js';
12
15
  import { httpsAgentForUrl } from '../utils/tls.js';
16
+ /** Which credential later commands would use, in `resolveToken`'s order. */
17
+ function credentialSource(baseUrl) {
18
+ const envToken = process.env[ENV_VARS.PLATFORM_TOKEN];
19
+ if (envToken)
20
+ return { label: 'PLATFORM_TOKEN (environment)', token: envToken };
21
+ const stored = loadSession(baseUrl);
22
+ if (!stored)
23
+ return { label: 'none — run "pipeline-manager auth login"' };
24
+ const { accessToken, refreshToken, expiresAt } = stored;
25
+ if (isSessionUsable(stored))
26
+ return { label: 'stored session ("auth login")', token: accessToken, expiresAt };
27
+ return refreshToken
28
+ ? { label: 'stored session ("auth login", expired — renewed on the next command)', expiresAt }
29
+ : { label: 'stored session ("auth login", expired — run "auth login" again)', expiresAt };
30
+ }
13
31
  /**
14
32
  * Registers the `status` command with the CLI program.
15
33
  *
16
- * Checks environment variables, CDK availability, platform connectivity,
17
- * and token expiry to give a quick overview of the current setup.
34
+ * Reports the CLI's setup, not a deployment: which platform it talks to (the
35
+ * same base-URL layers every command resolves), which credential it would use
36
+ * and when that expires, CDK availability, whether the platform answers
37
+ * `/health`, and — with a usable credential — whether the platform ACCEPTS it,
38
+ * and as whom (`GET /api/user/profile`).
18
39
  *
19
40
  * @param program - The root Commander program instance to attach the command to.
20
41
  */
21
42
  export function status(program) {
22
43
  program
23
44
  .command('status')
24
- .description('Show environment and connectivity status')
45
+ .description('Show the CLI setup: platform, credential, sign-in check, CDK and platform reachability')
25
46
  .option('--json', 'Output result as JSON', false)
26
47
  .action(async (options) => {
27
48
  const executionId = printCommandHeader('Status', undefined, { quiet: options.json });
28
49
  try {
29
50
  const results = {};
30
- // 1. Check PLATFORM_TOKEN
31
- const token = process.env[ENV_VARS.PLATFORM_TOKEN];
32
- results.PLATFORM_TOKEN = token ? 'set' : 'not set';
33
- // 2. Check PLATFORM_SECRET_NAME
34
- const secretName = process.env.PLATFORM_SECRET_NAME;
35
- results.PLATFORM_SECRET_NAME = secretName || 'not set';
36
- // 3. Check CDK availability
51
+ const baseUrl = getApiConfig().api.baseUrl;
52
+ results.Platform = baseUrl;
53
+ const credential = credentialSource(baseUrl);
54
+ results.Credential = credential.label;
55
+ results.PLATFORM_SECRET_NAME = process.env.PLATFORM_SECRET_NAME || 'not set';
37
56
  results['CDK Available'] = checkCdkAvailable() ? 'yes' : 'no';
38
- // 4. Check platform health
39
- const baseUrl = process.env[ENV_VARS.PLATFORM_BASE_URL] || 'https://localhost:8443';
40
- results.PLATFORM_BASE_URL = baseUrl;
57
+ // Skip cert verification only for local/self-signed hosts; verify real domains.
58
+ const httpsAgent = httpsAgentForUrl(baseUrl);
41
59
  try {
42
- // Skip cert verification only for local/self-signed hosts; verify real domains.
43
- await axios.get(`${baseUrl}/health`, {
44
- timeout: TIMEOUTS.HEALTH_CHECK,
45
- httpsAgent: httpsAgentForUrl(baseUrl),
46
- });
60
+ await axios.get(`${baseUrl}/health`, { timeout: TIMEOUTS.HEALTH_CHECK, httpsAgent });
47
61
  results['Platform Health'] = 'reachable';
48
62
  }
49
63
  catch {
50
64
  results['Platform Health'] = 'unreachable';
51
65
  }
52
- // 5. Decode token expiry (shared decoder — same base64url + exp logic
53
- // used by audit-tokens / api-client). An ACCESS KEY carries no claims at
54
- // all, so there is nothing local to read: its expiry lives on its record
55
- // and is shown on the keys page.
56
- if (token) {
66
+ // Expiry: a stored session records it; a JWT carries it; an ACCESS KEY
67
+ // carries no claims at all — its expiry lives on its record and is shown
68
+ // on the keys page.
69
+ const token = credential.token;
70
+ if (credential.expiresAt !== undefined) {
71
+ results['Token Expires'] = new Date(credential.expiresAt).toISOString();
72
+ results['Token Expired'] = credential.expiresAt < Date.now() ? 'yes' : 'no';
73
+ }
74
+ else if (token) {
57
75
  const payload = decodeTokenPayload(token);
58
76
  if (isOpaqueApiKey(token)) {
59
77
  results['Token Expires'] = 'n/a (access key — see Dashboard → API Tokens)';
@@ -67,11 +85,33 @@ export function status(program) {
67
85
  results['Token Expired'] = expiresAt.getTime() < Date.now() ? 'yes' : 'no';
68
86
  }
69
87
  }
88
+ // The check that matters: does the platform accept the credential?
89
+ if (token) {
90
+ try {
91
+ const res = await axios.get(`${baseUrl}/api/user/profile`, { timeout: TIMEOUTS.HEALTH_CHECK, httpsAgent, headers: { Authorization: `Bearer ${token}`, ...requestCorrelationHeaders() } });
92
+ const user = res.data?.data?.user;
93
+ results['Signed In'] = 'yes';
94
+ if (user?.email)
95
+ results['Signed In As'] = user.email;
96
+ const org = user?.activeOrgName ?? user?.organizationId;
97
+ if (org)
98
+ results.Organization = org;
99
+ }
100
+ catch (error) {
101
+ const code = axios.isAxiosError(error) ? error.response?.status : undefined;
102
+ results['Signed In'] = code === 401 || code === 403
103
+ ? `no — the platform rejected the credential (${code})`
104
+ : 'unknown — the platform could not be reached';
105
+ }
106
+ }
107
+ else {
108
+ results['Signed In'] = credential.expiresAt !== undefined ? 'session expired' : 'no';
109
+ }
70
110
  if (options.json) {
71
111
  console.log(JSON.stringify({ success: true, executionId, ...results }, null, 2));
72
112
  }
73
113
  else {
74
- printSection('Environment Status');
114
+ printSection('CLI Status');
75
115
  printKeyValue(results);
76
116
  }
77
117
  }
@@ -84,4 +124,4 @@ export function status(program) {
84
124
  }
85
125
  });
86
126
  }
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvc3RhdHVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRW5EOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsTUFBTSxDQUFDLE9BQWdCO0lBQ3JDLE9BQU87U0FDSixPQUFPLENBQUMsUUFBUSxDQUFDO1NBQ2pCLFdBQVcsQ0FBQywwQ0FBMEMsQ0FBQztTQUN2RCxNQUFNLENBQUMsUUFBUSxFQUFFLHVCQUF1QixFQUFFLEtBQUssQ0FBQztTQUNoRCxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQ3hCLE1BQU0sV0FBVyxHQUFHLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFFckYsSUFBSSxDQUFDO1lBQ0gsTUFB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QyxLQUFLLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUs7Z0JBQzNCLElBQUksRUFBRSxJQUFJO2dCQUNWLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFO2FBQzVDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgaXNPcGFxdWVBcGlLZXkgfSBmcm9tICdAcGlwZWxpbmUtYnVpbGRlci9hcGktY29yZSc7XG5pbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gJ2NvbW1hbmRlcic7XG5pbXBvcnQgeyBFTlZfVkFSUywgVElNRU9VVFMgfSBmcm9tICcuLi9jb25maWcvY2xpLmNvbnN0YW50cy5qcyc7XG5pbXBvcnQgeyBkZWNvZGVUb2tlblBheWxvYWQgfSBmcm9tICcuLi91dGlscy9hdXRoLWd1YXJkLmpzJztcbmltcG9ydCB7IGNoZWNrQ2RrQXZhaWxhYmxlIH0gZnJvbSAnLi4vdXRpbHMvY2RrLXV0aWxzLmpzJztcbmltcG9ydCB7IHByaW50Q29tbWFuZEhlYWRlciB9IGZyb20gJy4uL3V0aWxzL2NvbW1hbmQtdXRpbHMuanMnO1xuaW1wb3J0IHsgRVJST1JfQ09ERVMsIGhhbmRsZUVycm9yIH0gZnJvbSAnLi4vdXRpbHMvZXJyb3ItaGFuZGxlci5qcyc7XG5pbXBvcnQgeyBwcmludEtleVZhbHVlLCBwcmludFNlY3Rpb24gfSBmcm9tICcuLi91dGlscy9vdXRwdXQtdXRpbHMuanMnO1xuaW1wb3J0IHsgaHR0cHNBZ2VudEZvclVybCB9IGZyb20gJy4uL3V0aWxzL3Rscy5qcyc7XG5cbi8qKlxuICogUmVnaXN0ZXJzIHRoZSBgc3RhdHVzYCBjb21tYW5kIHdpdGggdGhlIENMSSBwcm9ncmFtLlxuICpcbiAqIENoZWNrcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMsIENESyBhdmFpbGFiaWxpdHksIHBsYXRmb3JtIGNvbm5lY3Rpdml0eSxcbiAqIGFuZCB0b2tlbiBleHBpcnkgdG8gZ2l2ZSBhIHF1aWNrIG92ZXJ2aWV3IG9mIHRoZSBjdXJyZW50IHNldHVwLlxuICpcbiAqIEBwYXJhbSBwcm9ncmFtIC0gVGhlIHJvb3QgQ29tbWFuZGVyIHByb2dyYW0gaW5zdGFuY2UgdG8gYXR0YWNoIHRoZSBjb21tYW5kIHRvLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RhdHVzKHByb2dyYW06IENvbW1hbmQpOiB2b2lkIHtcbiAgcHJvZ3JhbVxuICAgIC5jb21tYW5kKCdzdGF0dXMnKVxuICAgIC5kZXNjcmlwdGlvbignU2hvdyBlbnZpcm9ubWVudCBhbmQgY29ubmVjdGl2aXR5IHN0YXR1cycpXG4gICAgLm9wdGlvbignLS1qc29uJywgJ091dHB1dCByZXN1bHQgYXMgSlNPTicsIGZhbHNlKVxuICAgIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgIGNvbnN0IGV4ZWN1dGlvbklkID0gcHJpbnRDb21tYW5kSGVhZGVyKCdTdGF0dXMnLCB1bmRlZmluZWQsIHsgcXVpZXQ6IG9wdGlvbnMuanNvbiB9KTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzdWx0czogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG4gICAgICAgIC8vIDEuIENoZWNrIFBMQVRGT1JNX1RPS0VOXG4gICAgICAgIGNvbnN0IHRva2VuID0gcHJvY2Vzcy5lbnZbRU5WX1ZBUlMuUExBVEZPUk1fVE9LRU5dO1xuICAgICAgICByZXN1bHRzLlBMQVRGT1JNX1RPS0VOID0gdG9rZW4gPyAnc2V0JyA6ICdub3Qgc2V0JztcblxuICAgICAgICAvLyAyLiBDaGVjayBQTEFURk9STV9TRUNSRVRfTkFNRVxuICAgICAgICBjb25zdCBzZWNyZXROYW1lID0gcHJvY2Vzcy5lbnYuUExBVEZPUk1fU0VDUkVUX05BTUU7XG4gICAgICAgIHJlc3VsdHMuUExBVEZPUk1fU0VDUkVUX05BTUUgPSBzZWNyZXROYW1lIHx8ICdub3Qgc2V0JztcblxuICAgICAgICAvLyAzLiBDaGVjayBDREsgYXZhaWxhYmlsaXR5XG4gICAgICAgIHJlc3VsdHNbJ0NESyBBdmFpbGFibGUnXSA9IGNoZWNrQ2RrQXZhaWxhYmxlKCkgPyAneWVzJyA6ICdubyc7XG5cbiAgICAgICAgLy8gNC4gQ2hlY2sgcGxhdGZvcm0gaGVhbHRoXG4gICAgICAgIGNvbnN0IGJhc2VVcmwgPSBwcm9jZXNzLmVudltFTlZfVkFSUy5QTEFURk9STV9CQVNFX1VSTF0gfHwgJ2h0dHBzOi8vbG9jYWxob3N0Ojg0NDMnO1xuICAgICAgICByZXN1bHRzLlBMQVRGT1JNX0JBU0VfVVJMID0gYmFzZVVybDtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgIC8vIFNraXAgY2VydCB2ZXJpZmljYXRpb24gb25seSBmb3IgbG9jYWwvc2VsZi1zaWduZWQgaG9zdHM7IHZlcmlmeSByZWFsIGRvbWFpbnMuXG4gICAgICAgICAgYXdhaXQgYXhpb3MuZ2V0KGAke2Jhc2VVcmx9L2hlYWx0aGAsIHtcbiAgICAgICAgICAgIHRpbWVvdXQ6IFRJTUVPVVRTLkhFQUxUSF9DSEVDSyxcbiAgICAgICAgICAgIGh0dHBzQWdlbnQ6IGh0dHBzQWdlbnRGb3JVcmwoYmFzZVVybCksXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmVzdWx0c1snUGxhdGZvcm0gSGVhbHRoJ10gPSAncmVhY2hhYmxlJztcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgcmVzdWx0c1snUGxhdGZvcm0gSGVhbHRoJ10gPSAndW5yZWFjaGFibGUnO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gNS4gRGVjb2RlIHRva2VuIGV4cGlyeSAoc2hhcmVkIGRlY29kZXIg4oCUIHNhbWUgYmFzZTY0dXJsICsgZXhwIGxvZ2ljXG4gICAgICAgIC8vIHVzZWQgYnkgYXVkaXQtdG9rZW5zIC8gYXBpLWNsaWVudCkuIEFuIEFDQ0VTUyBLRVkgY2FycmllcyBubyBjbGFpbXMgYXRcbiAgICAgICAgLy8gYWxsLCBzbyB0aGVyZSBpcyBub3RoaW5nIGxvY2FsIHRvIHJlYWQ6IGl0cyBleHBpcnkgbGl2ZXMgb24gaXRzIHJlY29yZFxuICAgICAgICAvLyBhbmQgaXMgc2hvd24gb24gdGhlIGtleXMgcGFnZS5cbiAgICAgICAgaWYgKHRva2VuKSB7XG4gICAgICAgICAgY29uc3QgcGF5bG9hZCA9IGRlY29kZVRva2VuUGF5bG9hZCh0b2tlbik7XG4gICAgICAgICAgaWYgKGlzT3BhcXVlQXBpS2V5KHRva2VuKSkge1xuICAgICAgICAgICAgcmVzdWx0c1snVG9rZW4gRXhwaXJlcyddID0gJ24vYSAoYWNjZXNzIGtleSDigJQgc2VlIERhc2hib2FyZCDihpIgQVBJIFRva2VucyknO1xuICAgICAgICAgIH0gZWxzZSBpZiAoIXBheWxvYWQpIHtcbiAgICAgICAgICAgIHJlc3VsdHNbJ1Rva2VuIEV4cGlyZXMnXSA9ICd1bmFibGUgdG8gZGVjb2RlJztcbiAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBwYXlsb2FkLmV4cCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIGNvbnN0IGV4cGlyZXNBdCA9IG5ldyBEYXRlKHBheWxvYWQuZXhwICogMTAwMCk7XG4gICAgICAgICAgICByZXN1bHRzWydUb2tlbiBFeHBpcmVzJ10gPSBleHBpcmVzQXQudG9JU09TdHJpbmcoKTtcbiAgICAgICAgICAgIHJlc3VsdHNbJ1Rva2VuIEV4cGlyZWQnXSA9IGV4cGlyZXNBdC5nZXRUaW1lKCkgPCBEYXRlLm5vdygpID8gJ3llcycgOiAnbm8nO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zLmpzb24pIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeSh7IHN1Y2Nlc3M6IHRydWUsIGV4ZWN1dGlvbklkLCAuLi5yZXN1bHRzIH0sIG51bGwsIDIpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwcmludFNlY3Rpb24oJ0Vudmlyb25tZW50IFN0YXR1cycpO1xuICAgICAgICAgIHByaW50S2V5VmFsdWUocmVzdWx0cyk7XG4gICAgICAgIH1cblxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaGFuZGxlRXJyb3IoZXJyb3IsIEVSUk9SX0NPREVTLkdFTkVSQUwsIHtcbiAgICAgICAgICBkZWJ1ZzogcHJvZ3JhbS5vcHRzKCkuZGVidWcsXG4gICAgICAgICAgZXhpdDogdHJ1ZSxcbiAgICAgICAgICBjb250ZXh0OiB7IGNvbW1hbmQ6ICdzdGF0dXMnLCBleGVjdXRpb25JZCB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbn1cbiJdfQ==
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvc3RhdHVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRW5ELDRFQUE0RTtBQUM1RSxTQUFTLGdCQUFnQixDQUFDLE9BQWU7SUFDdkMsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdEQsSUFBSSxRQUFRO1FBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSw4QkFBOEIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLENB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QUFLLEVBQUUsQ0FBQztZQUNmLFdBQVcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLE9BQU8sRUFBRTtnQkFDdEMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLO2dCQUMzQixJQUFJLEVBQUUsSUFBSTtnQkFDVixPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRTthQUM1QyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IGlzT3BhcXVlQXBpS2V5IH0gZnJvbSAnQHBpcGVsaW5lLWJ1aWxkZXIvYXBpLWNvcmUnO1xuaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdjb21tYW5kZXInO1xuaW1wb3J0IHsgRU5WX1ZBUlMsIFRJTUVPVVRTIH0gZnJvbSAnLi4vY29uZmlnL2NsaS5jb25zdGFudHMuanMnO1xuaW1wb3J0IHsgZGVjb2RlVG9rZW5QYXlsb2FkIH0gZnJvbSAnLi4vdXRpbHMvYXV0aC1ndWFyZC5qcyc7XG5pbXBvcnQgeyBjaGVja0Nka0F2YWlsYWJsZSB9IGZyb20gJy4uL3V0aWxzL2Nkay11dGlscy5qcyc7XG5pbXBvcnQgeyBwcmludENvbW1hbmRIZWFkZXIgfSBmcm9tICcuLi91dGlscy9jb21tYW5kLXV0aWxzLmpzJztcbmltcG9ydCB7IGdldEFwaUNvbmZpZyB9IGZyb20gJy4uL3V0aWxzL2NvbmZpZy1sb2FkZXIuanMnO1xuaW1wb3J0IHsgaXNTZXNzaW9uVXNhYmxlLCBsb2FkU2Vzc2lvbiB9IGZyb20gJy4uL3V0aWxzL2NyZWRlbnRpYWwtc3RvcmUuanMnO1xuaW1wb3J0IHsgRVJST1JfQ09ERVMsIGhhbmRsZUVycm9yIH0gZnJvbSAnLi4vdXRpbHMvZXJyb3ItaGFuZGxlci5qcyc7XG5pbXBvcnQgeyBwcmludEtleVZhbHVlLCBwcmludFNlY3Rpb24gfSBmcm9tICcuLi91dGlscy9vdXRwdXQtdXRpbHMuanMnO1xuaW1wb3J0IHsgcmVxdWVzdENvcnJlbGF0aW9uSGVhZGVycyB9IGZyb20gJy4uL3V0aWxzL3JlcXVlc3QtY29udGV4dC5qcyc7XG5pbXBvcnQgeyBodHRwc0FnZW50Rm9yVXJsIH0gZnJvbSAnLi4vdXRpbHMvdGxzLmpzJztcblxuLyoqIFdoaWNoIGNyZWRlbnRpYWwgbGF0ZXIgY29tbWFuZHMgd291bGQgdXNlLCBpbiBgcmVzb2x2ZVRva2VuYCdzIG9yZGVyLiAqL1xuZnVuY3Rpb24gY3JlZGVudGlhbFNvdXJjZShiYXNlVXJsOiBzdHJpbmcpOiB7IGxhYmVsOiBzdHJpbmc7IHRva2VuPzogc3RyaW5nOyBleHBpcmVzQXQ/OiBudW1iZXIgfSB7XG4gIGNvbnN0IGVudlRva2VuID0gcHJvY2Vzcy5lbnZbRU5WX1ZBUlMuUExBVEZPUk1fVE9LRU5dO1xuICBpZiAoZW52VG9rZW4pIHJldHVybiB7IGxhYmVsOiAnUExBVEZPUk1fVE9LRU4gKGVudmlyb25tZW50KScsIHRva2VuOiBlbnZUb2tlbiB9O1xuICBjb25zdCBzdG9yZWQgPSBsb2FkU2Vzc2lvbihiYXNlVXJsKTtcbiAgaWYgKCFzdG9yZWQpIHJldHVybiB7IGxhYmVsOiAnbm9uZSDigJQgcnVuIFwicGlwZWxpbmUtbWFuYWdlciBhdXRoIGxvZ2luXCInIH07XG4gIGNvbnN0IHsgYWNjZXNzVG9rZW4sIHJlZnJlc2hUb2tlbiwgZXhwaXJlc0F0IH0gPSBzdG9yZWQ7XG4gIGlmIChpc1Nlc3Npb25Vc2FibGUoc3RvcmVkKSkgcmV0dXJuIHsgbGFiZWw6ICdzdG9yZWQgc2Vzc2lvbiAoXCJhdXRoIGxvZ2luXCIpJywgdG9rZW46IGFjY2Vzc1Rva2VuLCBleHBpcmVzQXQgfTtcbiAgcmV0dXJuIHJlZnJlc2hUb2tlblxuICAgID8geyBsYWJlbDogJ3N0b3JlZCBzZXNzaW9uIChcImF1dGggbG9naW5cIiwgZXhwaXJlZCDigJQgcmVuZXdlZCBvbiB0aGUgbmV4dCBjb21tYW5kKScsIGV4cGlyZXNBdCB9XG4gICAgOiB7IGxhYmVsOiAnc3RvcmVkIHNlc3Npb24gKFwiYXV0aCBsb2dpblwiLCBleHBpcmVkIOKAlCBydW4gXCJhdXRoIGxvZ2luXCIgYWdhaW4pJywgZXhwaXJlc0F0IH07XG59XG5cbi8qKlxuICogUmVnaXN0ZXJzIHRoZSBgc3RhdHVzYCBjb21tYW5kIHdpdGggdGhlIENMSSBwcm9ncmFtLlxuICpcbiAqIFJlcG9ydHMgdGhlIENMSSdzIHNldHVwLCBub3QgYSBkZXBsb3ltZW50OiB3aGljaCBwbGF0Zm9ybSBpdCB0YWxrcyB0byAodGhlXG4gKiBzYW1lIGJhc2UtVVJMIGxheWVycyBldmVyeSBjb21tYW5kIHJlc29sdmVzKSwgd2hpY2ggY3JlZGVudGlhbCBpdCB3b3VsZCB1c2VcbiAqIGFuZCB3aGVuIHRoYXQgZXhwaXJlcywgQ0RLIGF2YWlsYWJpbGl0eSwgd2hldGhlciB0aGUgcGxhdGZvcm0gYW5zd2Vyc1xuICogYC9oZWFsdGhgLCBhbmQg4oCUIHdpdGggYSB1c2FibGUgY3JlZGVudGlhbCDigJQgd2hldGhlciB0aGUgcGxhdGZvcm0gQUNDRVBUUyBpdCxcbiAqIGFuZCBhcyB3aG9tIChgR0VUIC9hcGkvdXNlci9wcm9maWxlYCkuXG4gKlxuICogQHBhcmFtIHByb2dyYW0gLSBUaGUgcm9vdCBDb21tYW5kZXIgcHJvZ3JhbSBpbnN0YW5jZSB0byBhdHRhY2ggdGhlIGNvbW1hbmQgdG8uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdGF0dXMocHJvZ3JhbTogQ29tbWFuZCk6IHZvaWQge1xuICBwcm9ncmFtXG4gICAgLmNvbW1hbmQoJ3N0YXR1cycpXG4gICAgLmRlc2NyaXB0aW9uKCdTaG93IHRoZSBDTEkgc2V0dXA6IHBsYXRmb3JtLCBjcmVkZW50aWFsLCBzaWduLWluIGNoZWNrLCBDREsgYW5kIHBsYXRmb3JtIHJlYWNoYWJpbGl0eScpXG4gICAgLm9wdGlvbignLS1qc29uJywgJ091dHB1dCByZXN1bHQgYXMgSlNPTicsIGZhbHNlKVxuICAgIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgIGNvbnN0IGV4ZWN1dGlvbklkID0gcHJpbnRDb21tYW5kSGVhZGVyKCdTdGF0dXMnLCB1bmRlZmluZWQsIHsgcXVpZXQ6IG9wdGlvbnMuanNvbiB9KTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzdWx0czogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICAgICAgICBjb25zdCBiYXNlVXJsID0gZ2V0QXBpQ29uZmlnKCkuYXBpLmJhc2VVcmw7XG4gICAgICAgIHJlc3VsdHMuUGxhdGZvcm0gPSBiYXNlVXJsO1xuXG4gICAgICAgIGNvbnN0IGNyZWRlbnRpYWwgPSBjcmVkZW50aWFsU291cmNlKGJhc2VVcmwpO1xuICAgICAgICByZXN1bHRzLkNyZWRlbnRpYWwgPSBjcmVkZW50aWFsLmxhYmVsO1xuICAgICAgICByZXN1bHRzLlBMQVRGT1JNX1NFQ1JFVF9OQU1FID0gcHJvY2Vzcy5lbnYuUExBVEZPUk1fU0VDUkVUX05BTUUgfHwgJ25vdCBzZXQnO1xuICAgICAgICByZXN1bHRzWydDREsgQXZhaWxhYmxlJ10gPSBjaGVja0Nka0F2YWlsYWJsZSgpID8gJ3llcycgOiAnbm8nO1xuXG4gICAgICAgIC8vIFNraXAgY2VydCB2ZXJpZmljYXRpb24gb25seSBmb3IgbG9jYWwvc2VsZi1zaWduZWQgaG9zdHM7IHZlcmlmeSByZWFsIGRvbWFpbnMuXG4gICAgICAgIGNvbnN0IGh0dHBzQWdlbnQgPSBodHRwc0FnZW50Rm9yVXJsKGJhc2VVcmwpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IGF4aW9zLmdldChgJHtiYXNlVXJsfS9oZWFsdGhgLCB7IHRpbWVvdXQ6IFRJTUVPVVRTLkhFQUxUSF9DSEVDSywgaHR0cHNBZ2VudCB9KTtcbiAgICAgICAgICByZXN1bHRzWydQbGF0Zm9ybSBIZWFsdGgnXSA9ICdyZWFjaGFibGUnO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICByZXN1bHRzWydQbGF0Zm9ybSBIZWFsdGgnXSA9ICd1bnJlYWNoYWJsZSc7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBFeHBpcnk6IGEgc3RvcmVkIHNlc3Npb24gcmVjb3JkcyBpdDsgYSBKV1QgY2FycmllcyBpdDsgYW4gQUNDRVNTIEtFWVxuICAgICAgICAvLyBjYXJyaWVzIG5vIGNsYWltcyBhdCBhbGwg4oCUIGl0cyBleHBpcnkgbGl2ZXMgb24gaXRzIHJlY29yZCBhbmQgaXMgc2hvd25cbiAgICAgICAgLy8gb24gdGhlIGtleXMgcGFnZS5cbiAgICAgICAgY29uc3QgdG9rZW4gPSBjcmVkZW50aWFsLnRva2VuO1xuICAgICAgICBpZiAoY3JlZGVudGlhbC5leHBpcmVzQXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHJlc3VsdHNbJ1Rva2VuIEV4cGlyZXMnXSA9IG5ldyBEYXRlKGNyZWRlbnRpYWwuZXhwaXJlc0F0KS50b0lTT1N0cmluZygpO1xuICAgICAgICAgIHJlc3VsdHNbJ1Rva2VuIEV4cGlyZWQnXSA9IGNyZWRlbnRpYWwuZXhwaXJlc0F0IDwgRGF0ZS5ub3coKSA/ICd5ZXMnIDogJ25vJztcbiAgICAgICAgfSBlbHNlIGlmICh0b2tlbikge1xuICAgICAgICAgIGNvbnN0IHBheWxvYWQgPSBkZWNvZGVUb2tlblBheWxvYWQodG9rZW4pO1xuICAgICAgICAgIGlmIChpc09wYXF1ZUFwaUtleSh0b2tlbikpIHtcbiAgICAgICAgICAgIHJlc3VsdHNbJ1Rva2VuIEV4cGlyZXMnXSA9ICduL2EgKGFjY2VzcyBrZXkg4oCUIHNlZSBEYXNoYm9hcmQg4oaSIEFQSSBUb2tlbnMpJztcbiAgICAgICAgICB9IGVsc2UgaWYgKCFwYXlsb2FkKSB7XG4gICAgICAgICAgICByZXN1bHRzWydUb2tlbiBFeHBpcmVzJ10gPSAndW5hYmxlIHRvIGRlY29kZSc7XG4gICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcGF5bG9hZC5leHAgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICBjb25zdCBleHBpcmVzQXQgPSBuZXcgRGF0ZShwYXlsb2FkLmV4cCAqIDEwMDApO1xuICAgICAgICAgICAgcmVzdWx0c1snVG9rZW4gRXhwaXJlcyddID0gZXhwaXJlc0F0LnRvSVNPU3RyaW5nKCk7XG4gICAgICAgICAgICByZXN1bHRzWydUb2tlbiBFeHBpcmVkJ10gPSBleHBpcmVzQXQuZ2V0VGltZSgpIDwgRGF0ZS5ub3coKSA/ICd5ZXMnIDogJ25vJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaGUgY2hlY2sgdGhhdCBtYXR0ZXJzOiBkb2VzIHRoZSBwbGF0Zm9ybSBhY2NlcHQgdGhlIGNyZWRlbnRpYWw/XG4gICAgICAgIGlmICh0b2tlbikge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXMgPSBhd2FpdCBheGlvcy5nZXQ8eyBkYXRhPzogeyB1c2VyPzogeyBlbWFpbD86IHN0cmluZzsgYWN0aXZlT3JnTmFtZT86IHN0cmluZyB8IG51bGw7IG9yZ2FuaXphdGlvbklkPzogc3RyaW5nIH0gfSB9PihcbiAgICAgICAgICAgICAgYCR7YmFzZVVybH0vYXBpL3VzZXIvcHJvZmlsZWAsXG4gICAgICAgICAgICAgIHsgdGltZW91dDogVElNRU9VVFMuSEVBTFRIX0NIRUNLLCBodHRwc0FnZW50LCBoZWFkZXJzOiB7IEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHt0b2tlbn1gLCAuLi5yZXF1ZXN0Q29ycmVsYXRpb25IZWFkZXJzKCkgfSB9LFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IHVzZXIgPSByZXMuZGF0YT8uZGF0YT8udXNlcjtcbiAgICAgICAgICAgIHJlc3VsdHNbJ1NpZ25lZCBJbiddID0gJ3llcyc7XG4gICAgICAgICAgICBpZiAodXNlcj8uZW1haWwpIHJlc3VsdHNbJ1NpZ25lZCBJbiBBcyddID0gdXNlci5lbWFpbDtcbiAgICAgICAgICAgIGNvbnN0IG9yZyA9IHVzZXI/LmFjdGl2ZU9yZ05hbWUgPz8gdXNlcj8ub3JnYW5pemF0aW9uSWQ7XG4gICAgICAgICAgICBpZiAob3JnKSByZXN1bHRzLk9yZ2FuaXphdGlvbiA9IG9yZztcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc3QgY29kZSA9IGF4aW9zLmlzQXhpb3NFcnJvcihlcnJvcikgPyBlcnJvci5yZXNwb25zZT8uc3RhdHVzIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgcmVzdWx0c1snU2lnbmVkIEluJ10gPSBjb2RlID09PSA0MDEgfHwgY29kZSA9PT0gNDAzXG4gICAgICAgICAgICAgID8gYG5vIOKAlCB0aGUgcGxhdGZvcm0gcmVqZWN0ZWQgdGhlIGNyZWRlbnRpYWwgKCR7Y29kZX0pYFxuICAgICAgICAgICAgICA6ICd1bmtub3duIOKAlCB0aGUgcGxhdGZvcm0gY291bGQgbm90IGJlIHJlYWNoZWQnO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXN1bHRzWydTaWduZWQgSW4nXSA9IGNyZWRlbnRpYWwuZXhwaXJlc0F0ICE9PSB1bmRlZmluZWQgPyAnc2Vzc2lvbiBleHBpcmVkJyA6ICdubyc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9ucy5qc29uKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoeyBzdWNjZXNzOiB0cnVlLCBleGVjdXRpb25JZCwgLi4ucmVzdWx0cyB9LCBudWxsLCAyKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJpbnRTZWN0aW9uKCdDTEkgU3RhdHVzJyk7XG4gICAgICAgICAgcHJpbnRLZXlWYWx1ZShyZXN1bHRzKTtcbiAgICAgICAgfVxuXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBoYW5kbGVFcnJvcihlcnJvciwgRVJST1JfQ09ERVMuR0VORVJBTCwge1xuICAgICAgICAgIGRlYnVnOiBwcm9ncmFtLm9wdHMoKS5kZWJ1ZyxcbiAgICAgICAgICBleGl0OiB0cnVlLFxuICAgICAgICAgIGNvbnRleHQ6IHsgY29tbWFuZDogJ3N0YXR1cycsIGV4ZWN1dGlvbklkIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xufVxuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"toolchain.d.ts","sources":["../../src/commands/toolchain.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwChD"}
1
+ {"version":3,"file":"toolchain.d.ts","sources":["../../src/commands/toolchain.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwChD"}
@@ -2,6 +2,7 @@
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  import * as fs from 'node:fs';
4
4
  import * as path from 'node:path';
5
+ import { MANAGED_TOOLCHAIN } from '@pipeline-builder/api-core';
5
6
  import { Command } from 'commander';
6
7
  import { createAuthenticatedClientAsync, printCommandHeader, printSslWarning, withSslOptions } from '../utils/command-utils.js';
7
8
  import { ERROR_CODES, handleError } from '../utils/error-handler.js';
@@ -51,8 +52,8 @@ export function toolchain(program) {
51
52
  printKeyValue({
52
53
  'Release': file.releaseVersion,
53
54
  'Resolved via': file.resolvedVia,
54
- 'pipeline-bootstrap': `${file.bootstrap.imageRepository}@${file.bootstrap.imageDigest}`,
55
- 'cdk-synth': `${file.synth.imageRepository}@${file.synth.imageDigest}`,
55
+ [MANAGED_TOOLCHAIN.bootstrap]: `${file.bootstrap.imageRepository}@${file.bootstrap.imageDigest}`,
56
+ [MANAGED_TOOLCHAIN.synth]: `${file.synth.imageRepository}@${file.synth.imageDigest}`,
56
57
  'File': out,
57
58
  });
58
59
  printInfo('Deploy with', { command: `pipeline-manager pipeline deploy --local-spec <pipeline.json> --toolchain-file ${options.output}` });
@@ -66,4 +67,4 @@ export function toolchain(program) {
66
67
  }
67
68
  });
68
69
  }
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGNoYWluLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvdG9vbGNoYWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDOUIsT0FBTyxLQUFLLElBQUksTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2hJLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXhEOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILE1BQU0sVUFBVSxTQUFTLENBQUMsT0FBZ0I7SUFDeEMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxXQUFXLENBQUMsb0ZBQW9GLENBQUMsQ0FBQztJQUU3SSxjQUFjLENBQUMsS0FBSztTQUNqQixPQUFPLENBQUMsUUFBUSxDQUFDO1NBQ2pCLFdBQVcsQ0FBQywySkFBMkosQ0FBQztTQUN4SyxNQUFNLENBQUMscUJBQXFCLEVBQUUsOEVBQThFLENBQUM7U0FDN0csTUFBTSxDQUFDLHFCQUFxQixFQUFFLCtCQUErQixDQUFDLENBQUM7U0FDL0QsTUFBTSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUN4QixnRkFBZ0Y7UUFDaEYsTUFBTSxRQUFRLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQ2pDLE1BQU0sV0FBVyxHQUFHLGtCQUFrQixDQUFDLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzNGLElBQUksQ0FBQztZQUNILGVBQWUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDbkMsTUFBTSxNQUFNLEdBQUcsTUFBTSw4QkFBOEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM3RCxNQUFNLElBQUksR0FBRyxNQUFNLGVBQWUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzVELE1BQU0sSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDbEQsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDYixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDM0IsT0FBTztZQUNULENBQUM7WUFDRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN6QyxFQUFFLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUM3QyxZQUFZLENBQUMsNEJBQTRCLENBQUMsQ0FBQztZQUMzQyxhQUFhLENBQUM7Z0JBQ1osU0FBUyxFQUFFLElBQUksQ0FBQyxjQUFjO2dCQUM5QixjQUFjLEVBQUUsSUFBSSxDQUFDLFdBQVc7Z0JBQ2hDLG9CQUFvQixFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUU7Z0JBQ3ZGLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFO2dCQUN0RSxNQUFNLEVBQUUsR0FBRzthQUNaLENBQUMsQ0FBQztZQUNILFNBQVMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxPQUFPLEVBQUUsa0ZBQWtGLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDNUksQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixXQUFXLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxXQUFXLEVBQUU7Z0JBQzFDLEtBQUssRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSztnQkFDM0IsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRTthQUNoRixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCAqIGFzIGZzIGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gJ2NvbW1hbmRlcic7XG5pbXBvcnQgeyBjcmVhdGVBdXRoZW50aWNhdGVkQ2xpZW50QXN5bmMsIHByaW50Q29tbWFuZEhlYWRlciwgcHJpbnRTc2xXYXJuaW5nLCB3aXRoU3NsT3B0aW9ucyB9IGZyb20gJy4uL3V0aWxzL2NvbW1hbmQtdXRpbHMuanMnO1xuaW1wb3J0IHsgRVJST1JfQ09ERVMsIGhhbmRsZUVycm9yIH0gZnJvbSAnLi4vdXRpbHMvZXJyb3ItaGFuZGxlci5qcyc7XG5pbXBvcnQgeyBwcmludEluZm8sIHByaW50S2V5VmFsdWUsIHByaW50U3VjY2VzcyB9IGZyb20gJy4uL3V0aWxzL291dHB1dC11dGlscy5qcyc7XG5pbXBvcnQgeyBleHBvcnRUb29sY2hhaW4gfSBmcm9tICcuLi91dGlscy90b29sY2hhaW4uanMnO1xuXG4vKipcbiAqIGBwaXBlbGluZS1tYW5hZ2VyIHRvb2xjaGFpbiDigKZgIOKAlCB0aGUgcGlwZWxpbmUgdG9vbGNoYWluIHJlbGVhc2VcbiAqIChwaXBlbGluZS1ib290c3RyYXAgKyBjZGstc3ludGgsIG9uZSB2ZXJzaW9uKS5cbiAqXG4gKiBgdG9vbGNoYWluIGV4cG9ydCBbLS1yZWxlYXNlIDxWPl0gWy0tb3V0cHV0IDxmaWxlPl1gIHJlc29sdmVzIGJvdGggaGFsdmVzIHRoZVxuICogd2F5IGEgc3ludGggZG9lcyDigJQgYC0tcmVsZWFzZWAgYXMgdGhlIHBpbiwgZWxzZSB3aGF0ZXZlciB5b3VyIG9yZyByZXNvbHZlc1xuICogdG8gbm93IChpdHMgZGVmYXVsdCwgYSBjYW5hcnksIG9yIHRoZSBwbGF0Zm9ybSBkZWZhdWx0KSDigJQgYW5kIHdyaXRlcyB0aGVcbiAqIEpTT04gYHBpcGVsaW5lIGRlcGxveSAtLWxvY2FsLXNwZWMgLS10b29sY2hhaW4tZmlsZWAgZGVwbG95cyBmcm9tOiBib3RoXG4gKiBpbWFnZXMnIHJlcG9zaXRvcmllcyBhbmQgc2lnbmVkIGRpZ2VzdHMsIHRoZSByZWxlYXNlIHZlcnNpb24gYW5kIGl0cyB0b29sXG4gKiB2ZXJzaW9ucy4gUmVhZC1vbmx5OyBub3RoaW5nIG9uIHRoZSBwbGF0Zm9ybSBjaGFuZ2VzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBiYXNoXG4gKiBwaXBlbGluZS1tYW5hZ2VyIHRvb2xjaGFpbiBleHBvcnQgLS1vdXRwdXQgdG9vbGNoYWluLmpzb25cbiAqIHBpcGVsaW5lLW1hbmFnZXIgdG9vbGNoYWluIGV4cG9ydCAtLXJlbGVhc2UgMS40LjAgLS1vdXRwdXQgdG9vbGNoYWluLTEuNC4wLmpzb25cbiAqIHBpcGVsaW5lLW1hbmFnZXIgcGlwZWxpbmUgZGVwbG95IC0tbG9jYWwtc3BlYyBwaXBlbGluZS5qc29uIC0tdG9vbGNoYWluLWZpbGUgdG9vbGNoYWluLmpzb25cbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9vbGNoYWluKHByb2dyYW06IENvbW1hbmQpOiB2b2lkIHtcbiAgY29uc3QgZ3JvdXAgPSBwcm9ncmFtLmNvbW1hbmQoJ3Rvb2xjaGFpbicpLmRlc2NyaXB0aW9uKCdJbnNwZWN0IGFuZCBleHBvcnQgdGhlIHBpcGVsaW5lIHRvb2xjaGFpbiByZWxlYXNlIChwaXBlbGluZS1ib290c3RyYXAgKyBjZGstc3ludGgpJyk7XG5cbiAgd2l0aFNzbE9wdGlvbnMoZ3JvdXBcbiAgICAuY29tbWFuZCgnZXhwb3J0JylcbiAgICAuZGVzY3JpcHRpb24oJ1dyaXRlIHRoZSByZXNvbHZlZCB0b29sY2hhaW4gcmVsZWFzZSAoYm90aCBpbWFnZXNcXCcgZGlnZXN0cywgcmVwb3NpdG9yaWVzIGFuZCB0b29sIHZlcnNpb25zKSBhcyBKU09OLCBmb3IgYHBpcGVsaW5lIGRlcGxveSAtLWxvY2FsLXNwZWMgLS10b29sY2hhaW4tZmlsZWAnKVxuICAgIC5vcHRpb24oJy0tcmVsZWFzZSA8dmVyc2lvbj4nLCAnRXhwb3J0IHRoaXMgcmVsZWFzZSAoZGVmYXVsdDogdGhlIHJlbGVhc2UgeW91ciBvcmdhbml6YXRpb24gcmVzb2x2ZXMgdG8gbm93KScpXG4gICAgLm9wdGlvbignLW8sIC0tb3V0cHV0IDxmaWxlPicsICdPdXRwdXQgZmlsZSAoZGVmYXVsdDogc3Rkb3V0KScpKVxuICAgIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgIC8vIFdpdGggbm8gLS1vdXRwdXQgdGhlIEpTT04gZ29lcyB0byBzdGRvdXQsIHNvIHRoZSBoZWFkZXIgZ29lcyBub3doZXJlIG5lYXIgaXQuXG4gICAgICBjb25zdCB0b1N0ZG91dCA9ICFvcHRpb25zLm91dHB1dDtcbiAgICAgIGNvbnN0IGV4ZWN1dGlvbklkID0gcHJpbnRDb21tYW5kSGVhZGVyKCdUb29sY2hhaW4gRXhwb3J0JywgdW5kZWZpbmVkLCB7IHF1aWV0OiB0b1N0ZG91dCB9KTtcbiAgICAgIHRyeSB7XG4gICAgICAgIHByaW50U3NsV2FybmluZyhvcHRpb25zLnZlcmlmeVNzbCk7XG4gICAgICAgIGNvbnN0IGNsaWVudCA9IGF3YWl0IGNyZWF0ZUF1dGhlbnRpY2F0ZWRDbGllbnRBc3luYyhvcHRpb25zKTtcbiAgICAgICAgY29uc3QgZmlsZSA9IGF3YWl0IGV4cG9ydFRvb2xjaGFpbihjbGllbnQsIG9wdGlvbnMucmVsZWFzZSk7XG4gICAgICAgIGNvbnN0IGpzb24gPSBgJHtKU09OLnN0cmluZ2lmeShmaWxlLCBudWxsLCAyKX1cXG5gO1xuICAgICAgICBpZiAodG9TdGRvdXQpIHtcbiAgICAgICAgICBwcm9jZXNzLnN0ZG91dC53cml0ZShqc29uKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3V0ID0gcGF0aC5yZXNvbHZlKG9wdGlvbnMub3V0cHV0KTtcbiAgICAgICAgZnMud3JpdGVGaWxlU3luYyhvdXQsIGpzb24sIHsgbW9kZTogMG82NDQgfSk7XG4gICAgICAgIHByaW50U3VjY2VzcygnVG9vbGNoYWluIHJlbGVhc2UgZXhwb3J0ZWQnKTtcbiAgICAgICAgcHJpbnRLZXlWYWx1ZSh7XG4gICAgICAgICAgJ1JlbGVhc2UnOiBmaWxlLnJlbGVhc2VWZXJzaW9uLFxuICAgICAgICAgICdSZXNvbHZlZCB2aWEnOiBmaWxlLnJlc29sdmVkVmlhLFxuICAgICAgICAgICdwaXBlbGluZS1ib290c3RyYXAnOiBgJHtmaWxlLmJvb3RzdHJhcC5pbWFnZVJlcG9zaXRvcnl9QCR7ZmlsZS5ib290c3RyYXAuaW1hZ2VEaWdlc3R9YCxcbiAgICAgICAgICAnY2RrLXN5bnRoJzogYCR7ZmlsZS5zeW50aC5pbWFnZVJlcG9zaXRvcnl9QCR7ZmlsZS5zeW50aC5pbWFnZURpZ2VzdH1gLFxuICAgICAgICAgICdGaWxlJzogb3V0LFxuICAgICAgICB9KTtcbiAgICAgICAgcHJpbnRJbmZvKCdEZXBsb3kgd2l0aCcsIHsgY29tbWFuZDogYHBpcGVsaW5lLW1hbmFnZXIgcGlwZWxpbmUgZGVwbG95IC0tbG9jYWwtc3BlYyA8cGlwZWxpbmUuanNvbj4gLS10b29sY2hhaW4tZmlsZSAke29wdGlvbnMub3V0cHV0fWAgfSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBoYW5kbGVFcnJvcihlcnJvciwgRVJST1JfQ09ERVMuQVBJX1JFUVVFU1QsIHtcbiAgICAgICAgICBkZWJ1ZzogcHJvZ3JhbS5vcHRzKCkuZGVidWcsXG4gICAgICAgICAgZXhpdDogdHJ1ZSxcbiAgICAgICAgICBjb250ZXh0OiB7IGNvbW1hbmQ6ICd0b29sY2hhaW4gZXhwb3J0JywgZXhlY3V0aW9uSWQsIHJlbGVhc2U6IG9wdGlvbnMucmVsZWFzZSB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbn1cbiJdfQ==
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGNoYWluLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvdG9vbGNoYWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDOUIsT0FBTyxLQUFLLElBQUksTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2hJLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXhEOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILE1BQU0sVUFBVSxTQUFTLENBQUMsT0FBZ0I7SUFDeEMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxXQUFXLENBQUMsb0ZBQW9GLENBQUMsQ0FBQztJQUU3SSxjQUFjLENBQUMsS0FBSztTQUNqQixPQUFPLENBQUMsUUFBUSxDQUFDO1NBQ2pCLFdBQVcsQ0FBQywySkFBMkosQ0FBQztTQUN4SyxNQUFNLENBQUMscUJBQXFCLEVBQUUsOEVBQThFLENBQUM7U0FDN0csTUFBTSxDQUFDLHFCQUFxQixFQUFFLCtCQUErQixDQUFDLENBQUM7U0FDL0QsTUFBTSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUN4QixnRkFBZ0Y7UUFDaEYsTUFBTSxRQUFRLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQ2pDLE1BQU0sV0FBVyxHQUFHLGtCQUFrQixDQUFDLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzNGLElBQUksQ0FBQztZQUNILGVBQWUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDbkMsTUFBTSxNQUFNLEdBQUcsTUFBTSw4QkFBOEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM3RCxNQUFNLElBQUksR0FBRyxNQUFNLGVBQWUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzVELE1BQU0sSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDbEQsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDYixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDM0IsT0FBTztZQUNULENBQUM7WUFDRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN6QyxFQUFFLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUM3QyxZQUFZLENBQUMsNEJBQTRCLENBQUMsQ0FBQztZQUMzQyxhQUFhLENBQUM7Z0JBQ1osU0FBUyxFQUFFLElBQUksQ0FBQyxjQUFjO2dCQUM5QixjQUFjLEVBQUUsSUFBSSxDQUFDLFdBQVc7Z0JBQ2hDLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRTtnQkFDaEcsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFO2dCQUNwRixNQUFNLEVBQUUsR0FBRzthQUNaLENBQUMsQ0FBQztZQUNILFNBQVMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxPQUFPLEVBQUUsa0ZBQWtGLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDNUksQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixXQUFXLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxXQUFXLEVBQUU7Z0JBQzFDLEtBQUssRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSztnQkFDM0IsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRTthQUNoRixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCAqIGFzIGZzIGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHsgTUFOQUdFRF9UT09MQ0hBSU4gfSBmcm9tICdAcGlwZWxpbmUtYnVpbGRlci9hcGktY29yZSc7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSAnY29tbWFuZGVyJztcbmltcG9ydCB7IGNyZWF0ZUF1dGhlbnRpY2F0ZWRDbGllbnRBc3luYywgcHJpbnRDb21tYW5kSGVhZGVyLCBwcmludFNzbFdhcm5pbmcsIHdpdGhTc2xPcHRpb25zIH0gZnJvbSAnLi4vdXRpbHMvY29tbWFuZC11dGlscy5qcyc7XG5pbXBvcnQgeyBFUlJPUl9DT0RFUywgaGFuZGxlRXJyb3IgfSBmcm9tICcuLi91dGlscy9lcnJvci1oYW5kbGVyLmpzJztcbmltcG9ydCB7IHByaW50SW5mbywgcHJpbnRLZXlWYWx1ZSwgcHJpbnRTdWNjZXNzIH0gZnJvbSAnLi4vdXRpbHMvb3V0cHV0LXV0aWxzLmpzJztcbmltcG9ydCB7IGV4cG9ydFRvb2xjaGFpbiB9IGZyb20gJy4uL3V0aWxzL3Rvb2xjaGFpbi5qcyc7XG5cbi8qKlxuICogYHBpcGVsaW5lLW1hbmFnZXIgdG9vbGNoYWluIOKApmAg4oCUIHRoZSBwaXBlbGluZSB0b29sY2hhaW4gcmVsZWFzZVxuICogKHBpcGVsaW5lLWJvb3RzdHJhcCArIGNkay1zeW50aCwgb25lIHZlcnNpb24pLlxuICpcbiAqIGB0b29sY2hhaW4gZXhwb3J0IFstLXJlbGVhc2UgPFY+XSBbLS1vdXRwdXQgPGZpbGU+XWAgcmVzb2x2ZXMgYm90aCBoYWx2ZXMgdGhlXG4gKiB3YXkgYSBzeW50aCBkb2VzIOKAlCBgLS1yZWxlYXNlYCBhcyB0aGUgcGluLCBlbHNlIHdoYXRldmVyIHlvdXIgb3JnIHJlc29sdmVzXG4gKiB0byBub3cgKGl0cyBkZWZhdWx0LCBhIGNhbmFyeSwgb3IgdGhlIHBsYXRmb3JtIGRlZmF1bHQpIOKAlCBhbmQgd3JpdGVzIHRoZVxuICogSlNPTiBgcGlwZWxpbmUgZGVwbG95IC0tbG9jYWwtc3BlYyAtLXRvb2xjaGFpbi1maWxlYCBkZXBsb3lzIGZyb206IGJvdGhcbiAqIGltYWdlcycgcmVwb3NpdG9yaWVzIGFuZCBzaWduZWQgZGlnZXN0cywgdGhlIHJlbGVhc2UgdmVyc2lvbiBhbmQgaXRzIHRvb2xcbiAqIHZlcnNpb25zLiBSZWFkLW9ubHk7IG5vdGhpbmcgb24gdGhlIHBsYXRmb3JtIGNoYW5nZXMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGJhc2hcbiAqIHBpcGVsaW5lLW1hbmFnZXIgdG9vbGNoYWluIGV4cG9ydCAtLW91dHB1dCB0b29sY2hhaW4uanNvblxuICogcGlwZWxpbmUtbWFuYWdlciB0b29sY2hhaW4gZXhwb3J0IC0tcmVsZWFzZSAxLjQuMCAtLW91dHB1dCB0b29sY2hhaW4tMS40LjAuanNvblxuICogcGlwZWxpbmUtbWFuYWdlciBwaXBlbGluZSBkZXBsb3kgLS1sb2NhbC1zcGVjIHBpcGVsaW5lLmpzb24gLS10b29sY2hhaW4tZmlsZSB0b29sY2hhaW4uanNvblxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b29sY2hhaW4ocHJvZ3JhbTogQ29tbWFuZCk6IHZvaWQge1xuICBjb25zdCBncm91cCA9IHByb2dyYW0uY29tbWFuZCgndG9vbGNoYWluJykuZGVzY3JpcHRpb24oJ0luc3BlY3QgYW5kIGV4cG9ydCB0aGUgcGlwZWxpbmUgdG9vbGNoYWluIHJlbGVhc2UgKHBpcGVsaW5lLWJvb3RzdHJhcCArIGNkay1zeW50aCknKTtcblxuICB3aXRoU3NsT3B0aW9ucyhncm91cFxuICAgIC5jb21tYW5kKCdleHBvcnQnKVxuICAgIC5kZXNjcmlwdGlvbignV3JpdGUgdGhlIHJlc29sdmVkIHRvb2xjaGFpbiByZWxlYXNlIChib3RoIGltYWdlc1xcJyBkaWdlc3RzLCByZXBvc2l0b3JpZXMgYW5kIHRvb2wgdmVyc2lvbnMpIGFzIEpTT04sIGZvciBgcGlwZWxpbmUgZGVwbG95IC0tbG9jYWwtc3BlYyAtLXRvb2xjaGFpbi1maWxlYCcpXG4gICAgLm9wdGlvbignLS1yZWxlYXNlIDx2ZXJzaW9uPicsICdFeHBvcnQgdGhpcyByZWxlYXNlIChkZWZhdWx0OiB0aGUgcmVsZWFzZSB5b3VyIG9yZ2FuaXphdGlvbiByZXNvbHZlcyB0byBub3cpJylcbiAgICAub3B0aW9uKCctbywgLS1vdXRwdXQgPGZpbGU+JywgJ091dHB1dCBmaWxlIChkZWZhdWx0OiBzdGRvdXQpJykpXG4gICAgLmFjdGlvbihhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgLy8gV2l0aCBubyAtLW91dHB1dCB0aGUgSlNPTiBnb2VzIHRvIHN0ZG91dCwgc28gdGhlIGhlYWRlciBnb2VzIG5vd2hlcmUgbmVhciBpdC5cbiAgICAgIGNvbnN0IHRvU3Rkb3V0ID0gIW9wdGlvbnMub3V0cHV0O1xuICAgICAgY29uc3QgZXhlY3V0aW9uSWQgPSBwcmludENvbW1hbmRIZWFkZXIoJ1Rvb2xjaGFpbiBFeHBvcnQnLCB1bmRlZmluZWQsIHsgcXVpZXQ6IHRvU3Rkb3V0IH0pO1xuICAgICAgdHJ5IHtcbiAgICAgICAgcHJpbnRTc2xXYXJuaW5nKG9wdGlvbnMudmVyaWZ5U3NsKTtcbiAgICAgICAgY29uc3QgY2xpZW50ID0gYXdhaXQgY3JlYXRlQXV0aGVudGljYXRlZENsaWVudEFzeW5jKG9wdGlvbnMpO1xuICAgICAgICBjb25zdCBmaWxlID0gYXdhaXQgZXhwb3J0VG9vbGNoYWluKGNsaWVudCwgb3B0aW9ucy5yZWxlYXNlKTtcbiAgICAgICAgY29uc3QganNvbiA9IGAke0pTT04uc3RyaW5naWZ5KGZpbGUsIG51bGwsIDIpfVxcbmA7XG4gICAgICAgIGlmICh0b1N0ZG91dCkge1xuICAgICAgICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKGpzb24pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvdXQgPSBwYXRoLnJlc29sdmUob3B0aW9ucy5vdXRwdXQpO1xuICAgICAgICBmcy53cml0ZUZpbGVTeW5jKG91dCwganNvbiwgeyBtb2RlOiAwbzY0NCB9KTtcbiAgICAgICAgcHJpbnRTdWNjZXNzKCdUb29sY2hhaW4gcmVsZWFzZSBleHBvcnRlZCcpO1xuICAgICAgICBwcmludEtleVZhbHVlKHtcbiAgICAgICAgICAnUmVsZWFzZSc6IGZpbGUucmVsZWFzZVZlcnNpb24sXG4gICAgICAgICAgJ1Jlc29sdmVkIHZpYSc6IGZpbGUucmVzb2x2ZWRWaWEsXG4gICAgICAgICAgW01BTkFHRURfVE9PTENIQUlOLmJvb3RzdHJhcF06IGAke2ZpbGUuYm9vdHN0cmFwLmltYWdlUmVwb3NpdG9yeX1AJHtmaWxlLmJvb3RzdHJhcC5pbWFnZURpZ2VzdH1gLFxuICAgICAgICAgIFtNQU5BR0VEX1RPT0xDSEFJTi5zeW50aF06IGAke2ZpbGUuc3ludGguaW1hZ2VSZXBvc2l0b3J5fUAke2ZpbGUuc3ludGguaW1hZ2VEaWdlc3R9YCxcbiAgICAgICAgICAnRmlsZSc6IG91dCxcbiAgICAgICAgfSk7XG4gICAgICAgIHByaW50SW5mbygnRGVwbG95IHdpdGgnLCB7IGNvbW1hbmQ6IGBwaXBlbGluZS1tYW5hZ2VyIHBpcGVsaW5lIGRlcGxveSAtLWxvY2FsLXNwZWMgPHBpcGVsaW5lLmpzb24+IC0tdG9vbGNoYWluLWZpbGUgJHtvcHRpb25zLm91dHB1dH1gIH0pO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaGFuZGxlRXJyb3IoZXJyb3IsIEVSUk9SX0NPREVTLkFQSV9SRVFVRVNULCB7XG4gICAgICAgICAgZGVidWc6IHByb2dyYW0ub3B0cygpLmRlYnVnLFxuICAgICAgICAgIGV4aXQ6IHRydWUsXG4gICAgICAgICAgY29udGV4dDogeyBjb21tYW5kOiAndG9vbGNoYWluIGV4cG9ydCcsIGV4ZWN1dGlvbklkLCByZWxlYXNlOiBvcHRpb25zLnJlbGVhc2UgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG59XG4iXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"validate-templates.d.ts","sources":["../../src/commands/validate-templates.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkF/D"}
1
+ {"version":3,"file":"validate-templates.d.ts","sources":["../../src/commands/validate-templates.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgF/D"}
@@ -8,6 +8,7 @@ import YAML from 'yaml';
8
8
  import { printCommandHeader, printSslWarning, createAuthenticatedClientAsync, withSslOptions } from '../utils/command-utils.js';
9
9
  import { ERROR_CODES, handleError } from '../utils/error-handler.js';
10
10
  import { printError, printInfo, printSuccess, printWarning } from '../utils/output-utils.js';
11
+ import { extractSingleResponse } from '../utils/response-utils.js';
11
12
  /**
12
13
  * Register the `validate-templates` command.
13
14
  *
@@ -49,8 +50,7 @@ export function validateTemplatesCommand(program) {
49
50
  const client = await createAuthenticatedClientAsync(options);
50
51
  const cfg = client.getConfig();
51
52
  const res = await client.get(`${cfg.api.pipelineUrl}/${options.pipeline}`);
52
- const doc = res.pipeline?.props
53
- ?? res.data?.pipeline?.props;
53
+ const doc = extractSingleResponse(res, 'pipeline', 'props')?.props;
54
54
  if (!doc)
55
55
  throw new Error(`Pipeline ${options.pipeline} not found`);
56
56
  const errors = validatePipelineDoc(core, doc);
@@ -65,8 +65,7 @@ export function validateTemplatesCommand(program) {
65
65
  const client = await createAuthenticatedClientAsync(options);
66
66
  const cfg = client.getConfig();
67
67
  const res = await client.get(`${cfg.api.pluginUrl}/find?name=${encodeURIComponent(name)}&version=${encodeURIComponent(version)}`);
68
- const doc = res.plugin
69
- ?? res.data?.plugin;
68
+ const doc = extractSingleResponse(res, 'plugin', 'name');
70
69
  if (!doc)
71
70
  throw new Error(`Plugin ${name}:${version} not found`);
72
71
  const errors = validatePluginDoc(core, doc);
@@ -112,4 +111,4 @@ function validatePipelineDoc(core, doc) {
112
111
  const cycles = core.detectCycles(doc, isTpl, (f) => isTpl(f) ? f : null);
113
112
  return [...errors, ...cycles];
114
113
  }
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtdGVtcGxhdGVzLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvdmFsaWRhdGUtdGVtcGxhdGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3BCLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUN4QixPQUFPLEVBQUUsb0JBQW9CLEVBQTZCLE1BQU0sNEJBQTRCLENBQUM7QUFDN0YsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSw4QkFBOEIsRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoSSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQVM3Rjs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLHdCQUF3QixDQUFDLE9BQWdCO0lBQ3ZELGNBQWMsQ0FBQyxPQUFPO1NBQ25CLE9BQU8sQ0FBQyxVQUFVLENBQUM7U0FDbkIsV0FBVyxDQUFDLHFFQUFxRSxDQUFDO1NBQ2xGLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxvQ0FBb0MsQ0FBQztTQUMvRCxNQUFNLENBQUMseUJBQXlCLEVBQUUsZ0RBQWdELENBQUM7U0FDbkYsTUFBTSxDQUFDLGVBQWUsRUFBRSx5REFBeUQsQ0FBQyxDQUFDO1NBQ25GLE1BQU0sQ0FBQyxLQUFLLEVBQUUsT0FBd0IsRUFBRSxFQUFFO1FBQ3pDLE1BQU0sV0FBVyxHQUFHLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDO1lBQ0gsZUFBZSxDQUFD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LEtBQUssQ0FBQyxLQUFLO1FBQzNGLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztRQUN0QixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7S0FDakIsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDO0FBRUQsU0FBUyxtQkFBbUIsQ0FBQyxJQUF5QixFQUFFLEdBQVk7SUFDbEUsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUMxQixDQUFDLEtBQUssYUFBYTtRQUNuQixDQUFDLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO1FBQ3RELENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUM3RCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDL0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakYsT0FBTyxDQUFDLEdBQUcsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUM7QUFDaEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBjaGVja1BsdWdpblRlbXBsYXRlcywgdHlwZSBQbHVnaW5UZW1wbGF0ZUVuZ2luZSB9IGZyb20gJ0BwaXBlbGluZS1idWlsZGVyL2FwaS1jb3JlJztcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdjb21tYW5kZXInO1xuaW1wb3J0IFlBTUwgZnJvbSAneWFtbCc7XG5pbXBvcnQgeyBwcmludENvbW1hbmRIZWFkZXIsIHByaW50U3NsV2FybmluZywgY3JlYXRlQXV0aGVudGljYXRlZENsaWVudEFzeW5jLCB3aXRoU3NsT3B0aW9ucyB9IGZyb20gJy4uL3V0aWxzL2NvbW1hbmQtdXRpbHMuanMnO1xuaW1wb3J0IHsgRVJST1JfQ09ERVMsIGhhbmRsZUVycm9yIH0gZnJvbSAnLi4vdXRpbHMvZXJyb3ItaGFuZGxlci5qcyc7XG5pbXBvcnQgeyBwcmludEVycm9yLCBwcmludEluZm8sIHByaW50U3VjY2VzcywgcHJpbnRXYXJuaW5nIH0gZnJvbSAnLi4vdXRpbHMvb3V0cHV0LXV0aWxzLmpzJztcblxuaW50ZXJmYWNlIFZhbGlkYXRlT3B0aW9ucyB7XG4gIHBpcGVsaW5lPzogc3RyaW5nO1xuICBwbHVnaW4/OiBzdHJpbmc7XG4gIGZpbGU/OiBzdHJpbmc7XG4gIHZlcmlmeVNzbD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUmVnaXN0ZXIgdGhlIGB2YWxpZGF0ZS10ZW1wbGF0ZXNgIGNvbW1hbmQuXG4gKlxuICogVXNhZ2U6XG4gKiAgIHBpcGVsaW5lLW1hbmFnZXIgdGVtcGxhdGUgdmFsaWRhdGUgLS1waXBlbGluZSA8dXVpZD5cbiAqICAgcGlwZWxpbmUtbWFuYWdlciB0ZW1wbGF0ZSB2YWxpZGF0ZSAtLXBsdWdpbiA8bmFtZTp2ZXJzaW9uPlxuICogICBwaXBlbGluZS1tYW5hZ2VyIHRlbXBsYXRlIHZhbGlkYXRlIC0tZmlsZSAuL3BsdWdpbi1zcGVjLnlhbWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlVGVtcGxhdGVzQ29tbWFuZChwcm9ncmFtOiBDb21tYW5kKTogdm9pZCB7XG4gIHdpdGhTc2xPcHRpb25zKHByb2dyYW1cbiAgICAuY29tbWFuZCgndmFsaWRhdGUnKVxuICAgIC5kZXNjcmlwdGlvbignUGFyc2UgYW5kIHZhbGlkYXRlIHt7IC4uLiB9fSB0ZW1wbGF0ZXMgaW4gYSBwaXBlbGluZSBvciBwbHVnaW4gc3BlYycpXG4gICAgLm9wdGlvbignLS1waXBlbGluZSA8aWQ+JywgJ1ZhbGlkYXRlIHRoZSBwaXBlbGluZSB3aXRoIHRoaXMgSUQnKVxuICAgIC5vcHRpb24oJy0tcGx1Z2luIDxuYW1lOnZlcnNpb24+JywgJ1ZhbGlkYXRlIHRoZSBwbHVnaW4gd2l0aCB0aGlzIG5hbWUgYW5kIHZlcnNpb24nKVxuICAgIC5vcHRpb24oJy0tZmlsZSA8cGF0aD4nLCAnVmFsaWRhdGUgYSBsb2NhbCBwbHVnaW4tc3BlYy55YW1sIG9yIHBpcGVsaW5lLmpzb24gZmlsZScpKVxuICAgIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnM6IFZhbGlkYXRlT3B0aW9ucykgPT4ge1xuICAgICAgY29uc3QgZXhlY3V0aW9uSWQgPSBwcmludENvbW1hbmRIZWFkZXIoJ1ZhbGlkYXRlIFRlbXBsYXRlcycpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgcHJpbnRTc2xXYXJuaW5nKG9wdGlvbnMudmVyaWZ5U3NsKTtcblxuICAgICAgICBpZiAoIW9wdGlvbnMucGlwZWxpbmUgJiYgIW9wdGlvbnMucGx1Z2luICYmICFvcHRpb25zLmZpbGUpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ09uZSBvZiAtLXBpcGVsaW5lLCAtLXBsdWdpbiwgb3IgLS1maWxlIGlzIHJlcXVpcmVkJyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb3JlID0gYXdhaXQgaW1wb3J0KCdAcGlwZWxpbmUtYnVpbGRlci9waXBlbGluZS1jb3JlJyk7XG5cbiAgICAgICAgY29uc3QgcHJvYmxlbXM6IEFycmF5PHsgc291cmNlOiBzdHJpbmc7IGVycm9yczogeyBmaWVsZD86IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nOyBjb2RlPzogc3RyaW5nIH1bXSB9PiA9IFtdO1xuXG4gICAgICAgIGlmIChvcHRpb25zLmZpbGUpIHtcbiAgICAgICAgICBjb25zdCBmaWxlUGF0aCA9IHBhdGgucmVzb2x2ZShvcHRpb25zLmZpbGUpO1xuICAgICAgICAgIGNvbnN0IHRleHQgPSBmcy5yZWFkRmlsZVN5bmMoZmlsZVBhdGgsICd1dGYtOCcpO1xuICAgICAgICAgIGNvbnN0IGRvYyA9IGZpbGVQYXRoLmVuZHNXaXRoKCcuanNvbicpID8gSlNPTi5wYXJzZSh0ZXh0KSA6IFlBTUwucGFyc2UodGV4dCk7XG5cbiAgICAgICAgICAvLyBHdWVzczogaWYgYHBsdWdpblR5cGVgIGlzIHByZXNlbnQsIHRyZWF0IGFzIHBsdWdpbiBzcGVjOyBlbHNlIHBpcGVsaW5lXG4gICAgICAgICAgY29uc3QgaXNQbHVnaW4gPSB0eXBlb2YgKGRvYyBhcyB7IHBsdWdpblR5cGU/OiB1bmtub3duIH0pLnBsdWdpblR5cGUgPT09ICdzdHJpbmcnO1xuICAgICAgICAgIGNvbnN0IGVycm9ycyA9IGlzUGx1Z2luXG4gICAgICAgICAgICA/IHZhbGlkYXRlUGx1Z2luRG9jKGNvcmUsIGRvYylcbiAgICAgICAgICAgIDogdmFsaWRhdGVQaXBlbGluZURvYyhjb3JlLCBkb2MpO1xuICAgICAgICAgIGlmIChlcnJvcnMubGVuZ3RoKSBwcm9ibGVtcy5wdXNoKHsgc291cmNlOiBmaWxlUGF0aCwgZXJyb3JzIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9wdGlvbnMucGlwZWxpbmUpIHtcbiAgICAgICAgICBwcmludEluZm8oJ0ZldGNoaW5nIHBpcGVsaW5lJywgeyBpZDogb3B0aW9ucy5waXBlbGluZSB9KTtcbiAgICAgICAgICBjb25zdCBjbGllbnQgPSBhd2FpdCBjcmVhdGVBdXRoZW50aWNhdGVkQ2xpZW50QXN5bmMob3B0aW9ucyk7XG4gICAgICAgICAgY29uc3QgY2ZnID0gY2xpZW50LmdldENvbmZpZygpO1xuICAgICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGNsaWVudC5nZXQ8eyBwaXBlbGluZT86IHsgcHJvcHM6IHVua25vd24gfSB9PihgJHtjZmcuYXBpLnBpcGVsaW5lVXJsfS8ke29wdGlvbnMucGlwZWxpbmV9YCk7XG4gICAgICAgICAgY29uc3QgZG9jID0gKHJlcyBhcyB7IHBpcGVsaW5lPzogeyBwcm9wczogdW5rbm93biB9IH0pLnBpcGVsaW5lPy5wcm9wc1xuICAgICAgICAgICAgPz8gKHJlcyBhcyB7IGRhdGE/OiB7IHBpcGVsaW5lPzogeyBwcm9wczogdW5rbm93biB9IH0gfSkuZGF0YT8ucGlwZWxpbmU/LnByb3BzO1xuICAgICAgICAgIGlmICghZG9jKSB0aHJvdyBuZXcgRXJyb3IoYFBpcGVsaW5lICR7b3B0aW9ucy5waXBlbGluZX0gbm90IGZvdW5kYCk7XG4gICAgICAgICAgY29uc3QgZXJyb3JzID0gdmFsaWRhdGVQaXBlbGluZURvYyhjb3JlLCBkb2MpO1xuICAgICAgICAgIGlmIChlcnJvcnMubGVuZ3RoKSBwcm9ibGVtcy5wdXNoKHsgc291cmNlOiBgcGlwZWxpbmUvJHtvcHRpb25zLnBpcGVsaW5lfWAsIGVycm9ycyB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zLnBsdWdpbikge1xuICAgICAgICAgIGNvbnN0IFtuYW1lLCB2ZXJzaW9uXSA9IG9wdGlvbnMucGx1Z2luLnNwbGl0KCc6Jyk7XG4gICAgICAgICAgaWYgKCFuYW1lIHx8ICF2ZXJzaW9uKSB0aHJvdyBuZXcgRXJyb3IoJy0tcGx1Z2luIHJlcXVpcmVzIDxuYW1lOnZlcnNpb24+IGZvcm1hdCcpO1xuICAgICAgICAgIHByaW50SW5mbygnRmV0Y2hpbmcgcGx1Z2luJywgeyBuYW1lLCB2ZXJzaW9uIH0pO1xuICAgICAgICAgIGNvbnN0IGNsaWVudCA9IGF3YWl0IGNyZWF0ZUF1dGhlbnRpY2F0ZWRDbGllbnRBc3luYyhvcHRpb25zKTtcbiAgICAgICAgICBjb25zdCBjZmcgPSBjbGllbnQuZ2V0Q29uZmlnKCk7XG4gICAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgY2xpZW50LmdldDx7IHBsdWdpbjogdW5rbm93biB9PihcbiAgICAgICAgICAgIGAke2NmZy5hcGkucGx1Z2luVXJsfS9maW5kP25hbWU9JHtlbmNvZGVVUklDb21wb25lbnQobmFtZSl9JnZlcnNpb249JHtlbmNvZGVVUklDb21wb25lbnQodmVyc2lvbil9YCxcbiAgICAgICAgICApO1xuICAgICAgICAgIGNvbnN0IGRvYyA9IChyZXMgYXMgeyBwbHVnaW4/OiB1bmtub3duIH0pLnBsdWdpblxuICAgICAgICAgICAgPz8gKHJlcyBhcyB7IGRhdGE/OiB7IHBsdWdpbj86IHVua25vd24gfSB9KS5kYXRhPy5wbHVnaW47XG4gICAgICAgICAgaWYgKCFkb2MpIHRocm93IG5ldyBFcnJvcihgUGx1Z2luICR7bmFtZX06JHt2ZXJzaW9ufSBub3QgZm91bmRgKTtcbiAgICAgICAgICBjb25zdCBlcnJvcnMgPSB2YWxpZGF0ZVBsdWdpbkRvYyhjb3JlLCBkb2MpO1xuICAgICAgICAgIGlmIChlcnJvcnMubGVuZ3RoKSBwcm9ibGVtcy5wdXNoKHsgc291cmNlOiBgcGx1Z2luLyR7bmFtZX06JHt2ZXJzaW9ufWAsIGVycm9ycyB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwcm9ibGVtcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICBwcmludFN1Y2Nlc3MoJ0FsbCB0ZW1wbGF0ZXMgdmFsaWQnLCB7IGV4ZWN1dGlvbklkIH0pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHByaW50V2FybmluZyhgRm91bmQgJHtwcm9ibGVtcy5yZWR1Y2UoKGEsIHApID0+IGEgKyBwLmVycm9ycy5sZW5ndGgsIDApfSB0ZW1wbGF0ZSBlcnJvcihzKTpgKTtcbiAgICAgICAgZm9yIChjb25zdCBwIG9mIHByb2JsZW1zKSB7XG4gICAgICAgICAgcHJpbnRFcnJvcihwLnNvdXJjZSk7XG4gICAgICAgICAgZm9yIChjb25zdCBlIG9mIHAuZXJyb3JzKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgICAgIFske2UuZmllbGQgPz8gJz8nfV0gJHtlLm1lc3NhZ2V9JHtlLmNvZGUgPyBgICgke2UuY29kZX0pYCA6ICcnfWApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgaGFuZGxlRXJyb3IoZXJyLCBFUlJPUl9DT0RFUy5BUElfUkVRVUVTVCwge1xuICAgICAgICAgIGRlYnVnOiBwcm9ncmFtLm9wdHMoKS5kZWJ1ZyxcbiAgICAgICAgICBleGl0OiB0cnVlLFxuICAgICAgICAgIGNvbnRleHQ6IHsgY29tbWFuZDogJ3ZhbGlkYXRlLXRlbXBsYXRlcycsIGV4ZWN1dGlvbklkIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xufVxuXG4vKiogVGhlIHBsdWdpbiB0ZW1wbGF0ZSBjb250cmFjdCB0aGUgdXBsb2FkIGFwcGxpZXMgKGFwaS1jb3JlJ3Mgc2hhcmVkIGNoZWNrKS4gKi9cbmZ1bmN0aW9uIHZhbGlkYXRlUGx1Z2luRG9jKGNvcmU6IFBsdWdpblRlbXBsYXRlRW5naW5lLCBkb2M6IHVua25vd24pOiBBcnJheTx7IGZpZWxkPzogc3RyaW5nOyBtZXNzYWdlOiBzdHJpbmc7IGNvZGU/OiBzdHJpbmcgfT4ge1xuICByZXR1cm4gY2hlY2tQbHVnaW5UZW1wbGF0ZXMoZG9jIGFzIG9iamVjdCwgY29yZSkubWFwKChpc3N1ZSkgPT4gKHtcbiAgICBmaWVsZDogaXNzdWUubGluZSAhPT0gdW5kZWZpbmVkID8gYCR7aXNzdWUuZmllbGR9OiR7aXNzdWUubGluZX06JHtpc3N1ZS5jb2x9YCA6IGlzc3VlLmZpZWxkLFxuICAgIG1lc3NhZ2U6IGlzc3VlLm1lc3NhZ2UsXG4gICAgY29kZTogaXNzdWUua2luZCxcbiAgfSkpO1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVBpcGVsaW5lRG9jKGNvcmU6IFJlY29yZDxzdHJpbmcsIGFueT4sIGRvYzogdW5rbm93bik6IEFycmF5PHsgZmllbGQ/OiBzdHJpbmc7IG1lc3NhZ2U6IHN0cmluZzsgY29kZT86IHN0cmluZyB9PiB7XG4gIGNvbnN0IGlzVHBsID0gKGY6IHN0cmluZykgPT5cbiAgICBmID09PSAncHJvamVjdE5hbWUnIHx8XG4gICAgZi5zdGFydHNXaXRoKCdtZXRhZGF0YS4nKSB8fCBmLnN0YXJ0c1dpdGgoJ21ldGFkYXRhWycpIHx8XG4gICAgZi5zdGFydHNXaXRoKCd2YXJzLicpIHx8IGYuc3RhcnRzV2l0aCgndmFyc1snKTtcbiAgY29uc3QgaXNLbm93biA9IGNvcmUuYWxsb3dlZFNjb3BlUm9vdHMoWydtZXRhZGF0YScsICd2YXJzJ10pO1xuICBjb25zdCB7IGVycm9ycyB9ID0gY29yZS52YWxpZGF0ZVRlbXBsYXRlcyhkb2MsIGlzVHBsLCBpc0tub3duKTtcbiAgY29uc3QgY3ljbGVzID0gY29yZS5kZXRlY3RDeWNsZXMoZG9jLCBpc1RwbCwgKGY6IHN0cmluZykgPT4gaXNUcGwoZikgPyBmIDogbnVsbCk7XG4gIHJldHVybiBbLi4uZXJyb3JzLCAuLi5jeWNsZXNdO1xufVxuIl19
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtdGVtcGxhdGVzLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvdmFsaWRhdGUtdGVtcGxhdGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3BCLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUN4QixPQUFPLEVBQUUsb0JBQW9CLEVBQTZCLE1BQU0sNEJBQTRCLENBQUM7QUFDN0YsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSw4QkFBOEIsRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoSSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQVNuRTs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLHdCQUF3QixDQUFDLE9BQWdCO0lBQ3ZELGNBQWMsQ0FBQyxPQUFPO1NBQ25CLE9BQU8sQ0FBQyxVQUFVLENBQUM7U0FDbkIsV0FBVyxDQUFDLHFFQUFxRSxDQUFDO1NBQ2xGLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxvQ0FBb0MsQ0FBQztTQUMvRCxNQUFNLENBQUMseUJBQXlCLEVBQUUsZ0RBQWdELENBQUM7U0FDbkYsTUFBTSxDQUFDLGVBQWUsRUFBRSx5REFBeUQsQ0FBQyxDQUFDO1NBQ25GLE1BQU0sQ0FBQyxLQUFLLEVBQUUsT0FBd0IsRUFBRSxFQUFFO1FBQ3pDLE1BQU0sV0FBVyxHQUFHLGtCQUFrQixDQUFDLG9C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QUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUs7UUFDM0YsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO1FBQ3RCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtLQUNqQixDQUFDLENBQUMsQ0FBQztBQUNOLENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUFDLElBQXlCLEVBQUUsR0FBWTtJQUNsRSxNQUFNLEtBQUssR0FBRyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQzFCLENBQUMsS0FBSyxhQUFhO1FBQ25CLENBQUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUM7UUFDdEQsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzdELE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMvRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqRixPQUFPLENBQUMsR0FBRyxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQztBQUNoQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCBmcyBmcm9tICdmcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IGNoZWNrUGx1Z2luVGVtcGxhdGVzLCB0eXBlIFBsdWdpblRlbXBsYXRlRW5naW5lIH0gZnJvbSAnQHBpcGVsaW5lLWJ1aWxkZXIvYXBpLWNvcmUnO1xuaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gJ2NvbW1hbmRlcic7XG5pbXBvcnQgWUFNTCBmcm9tICd5YW1sJztcbmltcG9ydCB7IHByaW50Q29tbWFuZEhlYWRlciwgcHJpbnRTc2xXYXJuaW5nLCBjcmVhdGVBdXRoZW50aWNhdGVkQ2xpZW50QXN5bmMsIHdpdGhTc2xPcHRpb25zIH0gZnJvbSAnLi4vdXRpbHMvY29tbWFuZC11dGlscy5qcyc7XG5pbXBvcnQgeyBFUlJPUl9DT0RFUywgaGFuZGxlRXJyb3IgfSBmcm9tICcuLi91dGlscy9lcnJvci1oYW5kbGVyLmpzJztcbmltcG9ydCB7IHByaW50RXJyb3IsIHByaW50SW5mbywgcHJpbnRTdWNjZXNzLCBwcmludFdhcm5pbmcgfSBmcm9tICcuLi91dGlscy9vdXRwdXQtdXRpbHMuanMnO1xuaW1wb3J0IHsgZXh0cmFjdFNpbmdsZVJlc3BvbnNlIH0gZnJvbSAnLi4vdXRpbHMvcmVzcG9uc2UtdXRpbHMuanMnO1xuXG5pbnRlcmZhY2UgVmFsaWRhdGVPcHRpb25zIHtcbiAgcGlwZWxpbmU/OiBzdHJpbmc7XG4gIHBsdWdpbj86IHN0cmluZztcbiAgZmlsZT86IHN0cmluZztcbiAgdmVyaWZ5U3NsPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBSZWdpc3RlciB0aGUgYHZhbGlkYXRlLXRlbXBsYXRlc2AgY29tbWFuZC5cbiAqXG4gKiBVc2FnZTpcbiAqICAgcGlwZWxpbmUtbWFuYWdlciB0ZW1wbGF0ZSB2YWxpZGF0ZSAtLXBpcGVsaW5lIDx1dWlkPlxuICogICBwaXBlbGluZS1tYW5hZ2VyIHRlbXBsYXRlIHZhbGlkYXRlIC0tcGx1Z2luIDxuYW1lOnZlcnNpb24+XG4gKiAgIHBpcGVsaW5lLW1hbmFnZXIgdGVtcGxhdGUgdmFsaWRhdGUgLS1maWxlIC4vcGx1Z2luLXNwZWMueWFtbFxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVUZW1wbGF0ZXNDb21tYW5kKHByb2dyYW06IENvbW1hbmQpOiB2b2lkIHtcbiAgd2l0aFNzbE9wdGlvbnMocHJvZ3JhbVxuICAgIC5jb21tYW5kKCd2YWxpZGF0ZScpXG4gICAgLmRlc2NyaXB0aW9uKCdQYXJzZSBhbmQgdmFsaWRhdGUge3sgLi4uIH19IHRlbXBsYXRlcyBpbiBhIHBpcGVsaW5lIG9yIHBsdWdpbiBzcGVjJylcbiAgICAub3B0aW9uKCctLXBpcGVsaW5lIDxpZD4nLCAnVmFsaWRhdGUgdGhlIHBpcGVsaW5lIHdpdGggdGhpcyBJRCcpXG4gICAgLm9wdGlvbignLS1wbHVnaW4gPG5hbWU6dmVyc2lvbj4nLCAnVmFsaWRhdGUgdGhlIHBsdWdpbiB3aXRoIHRoaXMgbmFtZSBhbmQgdmVyc2lvbicpXG4gICAgLm9wdGlvbignLS1maWxlIDxwYXRoPicsICdWYWxpZGF0ZSBhIGxvY2FsIHBsdWdpbi1zcGVjLnlhbWwgb3IgcGlwZWxpbmUuanNvbiBmaWxlJykpXG4gICAgLmFjdGlvbihhc3luYyAob3B0aW9uczogVmFsaWRhdGVPcHRpb25zKSA9PiB7XG4gICAgICBjb25zdCBleGVjdXRpb25JZCA9IHByaW50Q29tbWFuZEhlYWRlcignVmFsaWRhdGUgVGVtcGxhdGVzJyk7XG4gICAgICB0cnkge1xuICAgICAgICBwcmludFNzbFdhcm5pbmcob3B0aW9ucy52ZXJpZnlTc2wpO1xuXG4gICAgICAgIGlmICghb3B0aW9ucy5waXBlbGluZSAmJiAhb3B0aW9ucy5wbHVnaW4gJiYgIW9wdGlvbnMuZmlsZSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignT25lIG9mIC0tcGlwZWxpbmUsIC0tcGx1Z2luLCBvciAtLWZpbGUgaXMgcmVxdWlyZWQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvcmUgPSBhd2FpdCBpbXBvcnQoJ0BwaXBlbGluZS1idWlsZGVyL3BpcGVsaW5lLWNvcmUnKTtcblxuICAgICAgICBjb25zdCBwcm9ibGVtczogQXJyYXk8eyBzb3VyY2U6IHN0cmluZzsgZXJyb3JzOiB7IGZpZWxkPzogc3RyaW5nOyBtZXNzYWdlOiBzdHJpbmc7IGNvZGU/OiBzdHJpbmcgfVtdIH0+ID0gW107XG5cbiAgICAgICAgaWYgKG9wdGlvbnMuZmlsZSkge1xuICAgICAgICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5yZXNvbHZlKG9wdGlvbnMuZmlsZSk7XG4gICAgICAgICAgY29uc3QgdGV4dCA9IGZzLnJlYWRGaWxlU3luYyhmaWxlUGF0aCwgJ3V0Zi04Jyk7XG4gICAgICAgICAgY29uc3QgZG9jID0gZmlsZVBhdGguZW5kc1dpdGgoJy5qc29uJykgPyBKU09OLnBhcnNlKHRleHQpIDogWUFNTC5wYXJzZSh0ZXh0KTtcblxuICAgICAgICAgIC8vIEd1ZXNzOiBpZiBgcGx1Z2luVHlwZWAgaXMgcHJlc2VudCwgdHJlYXQgYXMgcGx1Z2luIHNwZWM7IGVsc2UgcGlwZWxpbmVcbiAgICAgICAgICBjb25zdCBpc1BsdWdpbiA9IHR5cGVvZiAoZG9jIGFzIHsgcGx1Z2luVHlwZT86IHVua25vd24gfSkucGx1Z2luVHlwZSA9PT0gJ3N0cmluZyc7XG4gICAgICAgICAgY29uc3QgZXJyb3JzID0gaXNQbHVnaW5cbiAgICAgICAgICAgID8gdmFsaWRhdGVQbHVnaW5Eb2MoY29yZSwgZG9jKVxuICAgICAgICAgICAgOiB2YWxpZGF0ZVBpcGVsaW5lRG9jKGNvcmUsIGRvYyk7XG4gICAgICAgICAgaWYgKGVycm9ycy5sZW5ndGgpIHByb2JsZW1zLnB1c2goeyBzb3VyY2U6IGZpbGVQYXRoLCBlcnJvcnMgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9ucy5waXBlbGluZSkge1xuICAgICAgICAgIHByaW50SW5mbygnRmV0Y2hpbmcgcGlwZWxpbmUnLCB7IGlkOiBvcHRpb25zLnBpcGVsaW5lIH0pO1xuICAgICAgICAgIGNvbnN0IGNsaWVudCA9IGF3YWl0IGNyZWF0ZUF1dGhlbnRpY2F0ZWRDbGllbnRBc3luYyhvcHRpb25zKTtcbiAgICAgICAgICBjb25zdCBjZmcgPSBjbGllbnQuZ2V0Q29uZmlnKCk7XG4gICAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgY2xpZW50LmdldDx7IHBpcGVsaW5lPzogeyBwcm9wczogdW5rbm93biB9IH0+KGAke2NmZy5hcGkucGlwZWxpbmVVcmx9LyR7b3B0aW9ucy5waXBlbGluZX1gKTtcbiAgICAgICAgICBjb25zdCBkb2MgPSBleHRyYWN0U2luZ2xlUmVzcG9uc2U8eyBwcm9wczogdW5rbm93biB9PihyZXMsICdwaXBlbGluZScsICdwcm9wcycpPy5wcm9wcztcbiAgICAgICAgICBpZiAoIWRvYykgdGhyb3cgbmV3IEVycm9yKGBQaXBlbGluZSAke29wdGlvbnMucGlwZWxpbmV9IG5vdCBmb3VuZGApO1xuICAgICAgICAgIGNvbnN0IGVycm9ycyA9IHZhbGlkYXRlUGlwZWxpbmVEb2MoY29yZSwgZG9jKTtcbiAgICAgICAgICBpZiAoZXJyb3JzLmxlbmd0aCkgcHJvYmxlbXMucHVzaCh7IHNvdXJjZTogYHBpcGVsaW5lLyR7b3B0aW9ucy5waXBlbGluZX1gLCBlcnJvcnMgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9ucy5wbHVnaW4pIHtcbiAgICAgICAgICBjb25zdCBbbmFtZSwgdmVyc2lvbl0gPSBvcHRpb25zLnBsdWdpbi5zcGxpdCgnOicpO1xuICAgICAgICAgIGlmICghbmFtZSB8fCAhdmVyc2lvbikgdGhyb3cgbmV3IEVycm9yKCctLXBsdWdpbiByZXF1aXJlcyA8bmFtZTp2ZXJzaW9uPiBmb3JtYXQnKTtcbiAgICAgICAgICBwcmludEluZm8oJ0ZldGNoaW5nIHBsdWdpbicsIHsgbmFtZSwgdmVyc2lvbiB9KTtcbiAgICAgICAgICBjb25zdCBjbGllbnQgPSBhd2FpdCBjcmVhdGVBdXRoZW50aWNhdGVkQ2xpZW50QXN5bmMob3B0aW9ucyk7XG4gICAgICAgICAgY29uc3QgY2ZnID0gY2xpZW50LmdldENvbmZpZygpO1xuICAgICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGNsaWVudC5nZXQ8eyBwbHVnaW46IHVua25vd24gfT4oXG4gICAgICAgICAgICBgJHtjZmcuYXBpLnBsdWdpblVybH0vZmluZD9uYW1lPSR7ZW5jb2RlVVJJQ29tcG9uZW50KG5hbWUpfSZ2ZXJzaW9uPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHZlcnNpb24pfWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgICBjb25zdCBkb2MgPSBleHRyYWN0U2luZ2xlUmVzcG9uc2U8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+KHJlcywgJ3BsdWdpbicsICduYW1lJyk7XG4gICAgICAgICAgaWYgKCFkb2MpIHRocm93IG5ldyBFcnJvcihgUGx1Z2luICR7bmFtZX06JHt2ZXJzaW9ufSBub3QgZm91bmRgKTtcbiAgICAgICAgICBjb25zdCBlcnJvcnMgPSB2YWxpZGF0ZVBsdWdpbkRvYyhjb3JlLCBkb2MpO1xuICAgICAgICAgIGlmIChlcnJvcnMubGVuZ3RoKSBwcm9ibGVtcy5wdXNoKHsgc291cmNlOiBgcGx1Z2luLyR7bmFtZX06JHt2ZXJzaW9ufWAsIGVycm9ycyB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwcm9ibGVtcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICBwcmludFN1Y2Nlc3MoJ0FsbCB0ZW1wbGF0ZXMgdmFsaWQnLCB7IGV4ZWN1dGlvbklkIH0pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHByaW50V2FybmluZyhgRm91bmQgJHtwcm9ibGVtcy5yZWR1Y2UoKGEsIHApID0+IGEgKyBwLmVycm9ycy5sZW5ndGgsIDApfSB0ZW1wbGF0ZSBlcnJvcihzKTpgKTtcbiAgICAgICAgZm9yIChjb25zdCBwIG9mIHByb2JsZW1zKSB7XG4gICAgICAgICAgcHJpbnRFcnJvcihwLnNvdXJjZSk7XG4gICAgICAgICAgZm9yIChjb25zdCBlIG9mIHAuZXJyb3JzKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgICAgIFske2UuZmllbGQgPz8gJz8nfV0gJHtlLm1lc3NhZ2V9JHtlLmNvZGUgPyBgICgke2UuY29kZX0pYCA6ICcnfWApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgaGFuZGxlRXJyb3IoZXJyLCBFUlJPUl9DT0RFUy5BUElfUkVRVUVTVCwge1xuICAgICAgICAgIGRlYnVnOiBwcm9ncmFtLm9wdHMoKS5kZWJ1ZyxcbiAgICAgICAgICBleGl0OiB0cnVlLFxuICAgICAgICAgIGNvbnRleHQ6IHsgY29tbWFuZDogJ3ZhbGlkYXRlLXRlbXBsYXRlcycsIGV4ZWN1dGlvbklkIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xufVxuXG4vKiogVGhlIHBsdWdpbiB0ZW1wbGF0ZSBjb250cmFjdCB0aGUgdXBsb2FkIGFwcGxpZXMgKGFwaS1jb3JlJ3Mgc2hhcmVkIGNoZWNrKS4gKi9cbmZ1bmN0aW9uIHZhbGlkYXRlUGx1Z2luRG9jKGNvcmU6IFBsdWdpblRlbXBsYXRlRW5naW5lLCBkb2M6IHVua25vd24pOiBBcnJheTx7IGZpZWxkPzogc3RyaW5nOyBtZXNzYWdlOiBzdHJpbmc7IGNvZGU/OiBzdHJpbmcgfT4ge1xuICByZXR1cm4gY2hlY2tQbHVnaW5UZW1wbGF0ZXMoZG9jIGFzIG9iamVjdCwgY29yZSkubWFwKChpc3N1ZSkgPT4gKHtcbiAgICBmaWVsZDogaXNzdWUubGluZSAhPT0gdW5kZWZpbmVkID8gYCR7aXNzdWUuZmllbGR9OiR7aXNzdWUubGluZX06JHtpc3N1ZS5jb2x9YCA6IGlzc3VlLmZpZWxkLFxuICAgIG1lc3NhZ2U6IGlzc3VlLm1lc3NhZ2UsXG4gICAgY29kZTogaXNzdWUua2luZCxcbiAgfSkpO1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVBpcGVsaW5lRG9jKGNvcmU6IFJlY29yZDxzdHJpbmcsIGFueT4sIGRvYzogdW5rbm93bik6IEFycmF5PHsgZmllbGQ/OiBzdHJpbmc7IG1lc3NhZ2U6IHN0cmluZzsgY29kZT86IHN0cmluZyB9PiB7XG4gIGNvbnN0IGlzVHBsID0gKGY6IHN0cmluZykgPT5cbiAgICBmID09PSAncHJvamVjdE5hbWUnIHx8XG4gICAgZi5zdGFydHNXaXRoKCdtZXRhZGF0YS4nKSB8fCBmLnN0YXJ0c1dpdGgoJ21ldGFkYXRhWycpIHx8XG4gICAgZi5zdGFydHNXaXRoKCd2YXJzLicpIHx8IGYuc3RhcnRzV2l0aCgndmFyc1snKTtcbiAgY29uc3QgaXNLbm93biA9IGNvcmUuYWxsb3dlZFNjb3BlUm9vdHMoWydtZXRhZGF0YScsICd2YXJzJ10pO1xuICBjb25zdCB7IGVycm9ycyB9ID0gY29yZS52YWxpZGF0ZVRlbXBsYXRlcyhkb2MsIGlzVHBsLCBpc0tub3duKTtcbiAgY29uc3QgY3ljbGVzID0gY29yZS5kZXRlY3RDeWNsZXMoZG9jLCBpc1RwbCwgKGY6IHN0cmluZykgPT4gaXNUcGwoZikgPyBmIDogbnVsbCk7XG4gIHJldHVybiBbLi4uZXJyb3JzLCAuLi5jeWNsZXNdO1xufVxuIl19
@@ -1,3 +1,11 @@
1
+ /**
2
+ * The lowest Node.js version the CLI supports, read from package.json
3
+ * `engines.node` (a `>= x.y.z` floor) so the start-up warning can never name a
4
+ * different floor than the one npm enforces.
5
+ */
6
+ export declare const NODE_VERSION_FLOOR: string;
7
+ /** Whether `nodeVersion` (`v26.13.1` or `26.13.1`) is at or above `floor` (`26.13.1`). */
8
+ export declare function meetsNodeVersionFloor(nodeVersion: string, floor?: string): boolean;
1
9
  /**
2
10
  * Application metadata
3
11
  */
@@ -1 +1 @@
1
- {"version":3,"file":"cli.constants.d.ts","sources":["../../src/config/cli.constants.ts"],"names":[],"mappings":"AAaA;;GAEG;AACH,eAAO,MAAM,QAAQ,qBAAqB,CAAC;AAC3C,eAAO,MAAM,WAAW,QAAU,CAAC;AACnC,eAAO,MAAM,eAAe,+CAA+C,CAAC;AAE5E;;GAEG;AACH,eAAO,MAAM,cAAc;aACzB,IAAI,EAAE,MAAM;aACZ,gBAAgB,EAAE,QAAQ;aAC1B,QAAQ;CACA,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAE7D;;GAEG;AACH,eAAO,MAAM,QAAQ;aACnB,YAAY,EAAE,KAAK;aACnB,YAAY,EAAE,IAAI;CACV,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,gBAAgB;aAC3B,MAAM;aACN,cAAc;CACN,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,QAAQ;aACnB,cAAc,EAAE,gBAAgB;aAChC,iBAAiB,EAAE,mBAAmB;aACtC,eAAe,EAAE,iBAAiB;aAClC,uBAAuB,EAAE,yBAAyB;aAClD,UAAU,EAAE,YAAY;aACxB,KAAK,EAAE,OAAO;CACN,CAAC;AAEX;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAElE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMpD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAMjD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;GAEG;AACH,eAAO,MAAM,aAAa;aACxB,MAAM;iBACJ,OAAO,EAAE,GAAG;iBACZ,OAAO,EAAE,GAAG;iBACZ,OAAO,EAAE,GAAG;iBACZ,QAAQ,EAAE,GAAG;iBACb,UAAU,EAAE,GAAG;iBACf,UAAU,EAAE,GAAG;iBACf,UAAU,EAAE,GAAG;iBACf,WAAW,EAAE,GAAG;iBAChB,QAAQ,EAAE,GAAG;iBACb,SAAS,EAAE,GAAG;iBACd,QAAQ,EAAE,GAAG;iBACb,QAAQ,EAAE,GAAG;iBACb,QAAQ,EAAE,GAAG;iBACb,SAAS,EAAE,GAAG;iBACd,QAAQ,EAAE,GAAG;;CAEP,CAAC;AAEX;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAKzE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAuB/H;AAQD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAM1E;AAQD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GACnC,IAAI,CAON;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAGjF;AAED;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,4BAA4B,CAAC"}
1
+ {"version":3,"file":"cli.constants.d.ts","sources":["../../src/config/cli.constants.ts"],"names":[],"mappings":"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"}