@pipeline-builder/pipeline-manager 4.1.14 → 4.1.16

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 (92) hide show
  1. package/config.yml +16 -37
  2. package/dist/boilerplate.js +10 -2
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +97 -79
  5. package/dist/commands/audit-stacks.js +3 -3
  6. package/dist/commands/create-pat.d.ts +2 -3
  7. package/dist/commands/create-pat.d.ts.map +1 -1
  8. package/dist/commands/create-pat.js +3 -4
  9. package/dist/commands/create-pipeline.d.ts.map +1 -1
  10. package/dist/commands/create-pipeline.js +198 -190
  11. package/dist/commands/list-pipelines.js +2 -2
  12. package/dist/commands/list-plugins.js +2 -2
  13. package/dist/commands/login.d.ts +2 -2
  14. package/dist/commands/login.js +3 -3
  15. package/dist/commands/new-plugin.d.ts +48 -5
  16. package/dist/commands/new-plugin.d.ts.map +1 -1
  17. package/dist/commands/new-plugin.js +261 -95
  18. package/dist/commands/plugin-lifecycle.d.ts +29 -0
  19. package/dist/commands/plugin-lifecycle.d.ts.map +1 -0
  20. package/dist/commands/plugin-lifecycle.js +147 -0
  21. package/dist/commands/provision.d.ts +42 -2
  22. package/dist/commands/provision.d.ts.map +1 -1
  23. package/dist/commands/provision.js +184 -147
  24. package/dist/commands/publish-plugin.d.ts +62 -0
  25. package/dist/commands/publish-plugin.d.ts.map +1 -0
  26. package/dist/commands/publish-plugin.js +224 -0
  27. package/dist/commands/redrive-events.d.ts +1 -1
  28. package/dist/commands/redrive-events.js +2 -2
  29. package/dist/commands/store-token.d.ts +46 -1
  30. package/dist/commands/store-token.d.ts.map +1 -1
  31. package/dist/commands/store-token.js +127 -102
  32. package/dist/commands/test-plugin.d.ts +72 -0
  33. package/dist/commands/test-plugin.d.ts.map +1 -0
  34. package/dist/commands/test-plugin.js +285 -0
  35. package/dist/commands/upload-plugin.d.ts +6 -7
  36. package/dist/commands/upload-plugin.d.ts.map +1 -1
  37. package/dist/commands/upload-plugin.js +127 -189
  38. package/dist/commands/validate-plugin.d.ts +37 -4
  39. package/dist/commands/validate-plugin.d.ts.map +1 -1
  40. package/dist/commands/validate-plugin.js +129 -144
  41. package/dist/commands/validate-templates.d.ts.map +1 -1
  42. package/dist/commands/validate-templates.js +8 -9
  43. package/dist/config/plugin-catalog-assets.d.ts +13 -0
  44. package/dist/config/plugin-catalog-assets.d.ts.map +1 -0
  45. package/dist/config/plugin-catalog-assets.js +21 -0
  46. package/dist/config.yml +16 -37
  47. package/dist/lambda/token-renew-handler.d.ts.map +1 -1
  48. package/dist/lambda/token-renew-handler.js +109 -154
  49. package/dist/types/config.d.ts +2 -6
  50. package/dist/types/config.d.ts.map +1 -1
  51. package/dist/types/config.js +1 -1
  52. package/dist/types/plugin.d.ts +21 -0
  53. package/dist/types/plugin.d.ts.map +1 -1
  54. package/dist/types/plugin.js +1 -1
  55. package/dist/utils/aws-env.d.ts +1 -2
  56. package/dist/utils/aws-env.d.ts.map +1 -1
  57. package/dist/utils/aws-env.js +2 -3
  58. package/dist/utils/catalog-prompt.d.ts +26 -0
  59. package/dist/utils/catalog-prompt.d.ts.map +1 -0
  60. package/dist/utils/catalog-prompt.js +113 -0
  61. package/dist/utils/command-utils.d.ts.map +1 -1
  62. package/dist/utils/command-utils.js +14 -3
  63. package/dist/utils/config-loader.d.ts.map +1 -1
  64. package/dist/utils/config-loader.js +4 -6
  65. package/dist/utils/credential-store.d.ts +16 -0
  66. package/dist/utils/credential-store.d.ts.map +1 -1
  67. package/dist/utils/credential-store.js +57 -2
  68. package/dist/utils/deploy-runner.d.ts.map +1 -1
  69. package/dist/utils/deploy-runner.js +7 -2
  70. package/dist/utils/pipeline-config.d.ts +1 -2
  71. package/dist/utils/pipeline-config.d.ts.map +1 -1
  72. package/dist/utils/pipeline-config.js +1 -1
  73. package/dist/utils/plugin-docker.d.ts +44 -0
  74. package/dist/utils/plugin-docker.d.ts.map +1 -0
  75. package/dist/utils/plugin-docker.js +71 -0
  76. package/dist/utils/plugin-package.d.ts +40 -0
  77. package/dist/utils/plugin-package.d.ts.map +1 -0
  78. package/dist/utils/plugin-package.js +159 -0
  79. package/dist/utils/plugin-resolver.d.ts.map +1 -1
  80. package/dist/utils/plugin-resolver.js +43 -29
  81. package/dist/utils/plugin-scan.d.ts +22 -0
  82. package/dist/utils/plugin-scan.d.ts.map +1 -0
  83. package/dist/utils/plugin-scan.js +52 -0
  84. package/dist/utils/plugin-zip.d.ts +15 -0
  85. package/dist/utils/plugin-zip.d.ts.map +1 -0
  86. package/dist/utils/plugin-zip.js +96 -0
  87. package/dist/utils/registry.d.ts +15 -0
  88. package/dist/utils/registry.d.ts.map +1 -1
  89. package/dist/utils/registry.js +17 -2
  90. package/dist/utils/service-account.d.ts.map +1 -1
  91. package/dist/utils/service-account.js +9 -10
  92. package/package.json +45 -8
@@ -44,7 +44,7 @@ export function listPlugins(program) {
44
44
  .action((options) => runListEntity(program, options, {
45
45
  labelPlural: 'Plugins',
46
46
  responseKey: 'plugins',
47
- listUrl: (config) => config.api.pluginListUrl,
47
+ listUrl: (config) => config.api.pluginUrl,
48
48
  commandName: 'list-plugins',
49
49
  buildFilters: (options, base) => {
50
50
  const filters = { ...base };
@@ -89,4 +89,4 @@ export function listPlugins(program) {
89
89
  })),
90
90
  }));
91
91
  }
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1wbHVnaW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL2xpc3QtcGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQWUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUEyQixNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQVl4RDs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQUMsT0FBZ0I7SUFDMUMsY0FBYyxDQUFDLE9BQU87U0FDbkIsT0FBTyxDQUFDLE1BQU0sQ0FBQztTQUNmLFdBQVcsQ0FBQywwQ0FBMEMsQ0FBQztRQUV4RCx3QkFBd0I7U0FDdkIsTUFBTSxDQUFDLFdBQVcsRUFBRSx3REFBd0QsQ0FBQztTQUM3RSxNQUFNLENBQUMsdUJBQXVCLEVBQUUsc0NBQXNDLENBQUM7U0FDdkUsTUFBTSxDQUFDLGtCQUFrQixFQUFFLG9DQUFvQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztTQUM1RixNQUFNLENBQUMsbUJBQW1CLEVBQUUsMkJBQTJCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ25GLE1BQU0sQ0FBQyxlQUFlLEVBQUUs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QUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDN0UsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFO1lBQ1YsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJO1lBQ2QsU0FBUyxFQUFFLENBQUMsQ0FBQyxPQUFPO1lBQ3BCLGNBQWMsRUFBRSxDQUFDLENBQUMsWUFBWTtZQUM5QixRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQ25DLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDbkMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDdkQsWUFBWSxFQUFFLENBQUMsQ0FBQyxTQUFTLElBQUksS0FBSztTQUNuQyxDQUFDLENBQUM7S0FDSixDQUFDLENBQUMsQ0FBQztBQUNSLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gJ2NvbW1hbmRlcic7XG5pbXBvcnQgeyBydW5MaXN0RW50aXR5IH0gZnJvbSAnLi9lbnRpdHktbGlzdC5qcyc7XG5pbXBvcnQgeyBmb3JtYXRGaWxlU2l6ZSB9IGZyb20gJy4uL2NvbmZpZy9jbGkuY29uc3RhbnRzLmpzJztcbmltcG9ydCB7IHR5cGUgUGx1Z2luIH0gZnJvbSAnLi4vdHlwZXMvaW5kZXguanMnO1xuaW1wb3J0IHsgd2l0aFNzbE9wdGlvbnMgfSBmcm9tICcuLi91dGlscy9jb21tYW5kLXV0aWxzLmpzJztcbmltcG9ydCB7IHR5cGUgQ29tbW9uRmlsdGVyUGFyYW1zIH0gZnJvbSAnLi4vdXRpbHMvbGlzdC1jb21tYW5kLXV0aWxzLmpzJztcbmltcG9ydCB7IHByaW50V2FybmluZyB9IGZyb20gJy4uL3V0aWxzL291dHB1dC11dGlscy5qcyc7XG5cbi8qKlxuICogUXVlcnkgcGFyYW1ldGVycyBmb3IgdGhlIHBsdWdpbiBsaXN0IEFQSSBlbmRwb2ludC5cbiAqIENvbWJpbmVzIGNvbW1vbiBmaWx0ZXJzIChwYWdpbmF0aW9uLCBzb3J0KSB3aXRoIHBsdWdpbi1zcGVjaWZpYyBmaWx0ZXJzLlxuICovXG5pbnRlcmZhY2UgUGx1Z2luRmlsdGVyUGFyYW1zIGV4dGVuZHMgQ29tbW9uRmlsdGVyUGFyYW1zIHtcbiAgLy8gUGx1Z2luLXNwZWNpZmljIGZpbHRlcnNcbiAgbmFtZT86IHN0cmluZztcbiAgdmVyc2lvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZWdpc3RlcnMgdGhlIGBsaXN0LXBsdWdpbnNgIGNvbW1hbmQgd2l0aCB0aGUgQ0xJIHByb2dyYW0uXG4gKlxuICogUXVlcmllcyBwbHVnaW5zIHdpdGggZmlsdGVycyBmb3IgbmFtZSwgdmVyc2lvbiwgaW1hZ2UgdGFnLFxuICogYWN0aXZlIHN0YXR1cywgcGx1cyBwYWdpbmF0aW9uIGFuZCBzb3J0aW5nLlxuICpcbiAqIEBwYXJhbSBwcm9ncmFtIC0gVGhlIHJvb3QgQ29tbWFuZGVyIHByb2dyYW0gaW5zdGFuY2UgdG8gYXR0YWNoIHRoZSBjb21tYW5kIHRvLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBiYXNoXG4gKiBjbGkgcGx1Z2luIGxpc3RcbiAqIGNsaSBwbHVnaW4gbGlzdCAtLW5hbWUgYXV0aC1wbHVnaW4gLS1pcy1hY3RpdmUgdHJ1ZVxuICogY2xpIHBsdWdpbiBsaXN0IC0tdmVyc2lvbiBcIl4xLjAuMFwiXG4gKiBjbGkgcGx1Z2luIGxpc3QgLS1saW1pdCA1MCAtLW9mZnNldCAxMDAgLS1zb3J0IFwibmFtZTphc2NcIlxuICogY2xpIHBsdWdpbiBsaXN0IC0tZm9ybWF0IGpzb24gLS1vdXRwdXQgcGx1Z2lucy5qc29uXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxpc3RQbHVnaW5zKHByb2dyYW06IENvbW1hbmQpOiB2b2lkIHtcbiAgd2l0aFNzbE9wdGlvbnMocHJvZ3JhbVxuICAgIC5jb21tYW5kKCdsaXN0JylcbiAgICAuZGVzY3JpcHRpb24oJ1F1ZXJ5IHBsdWdpbnMgd2l0aCBjb21wcmVoZW5zaXZlIGZpbHRlcnMnKVxuXG4gICAgLy8gQ29tbW9uIGZpbHRlciBvcHRpb25zXG4gICAgLm9wdGlvbignLS1pZCA8aWQ+JywgJ0ZpbHRlciBieSBwbHVnaW4gSUQgKGNhbiBzcGVjaWZ5IG11bHRpcGxlIHdpdGggY29tbWFzKScpXG4gICAgLm9wdGlvbignLS1pcy1hY3RpdmUgPGJvb2xlYW4+JywgJ0ZpbHRlciBieSBhY3RpdmUgc3RhdHVzICh0cnVlL2ZhbHNlKScpXG4gICAgLm9wdGlvbignLS1saW1pdCA8bnVtYmVyPicsICdNYXhpbXVtIG51bWJlciBvZiByZXN1bHRzICgxLTEwMDApJywgKHYpID0+IHBhcnNlSW50KHYsIDEwKSwgNTApXG4gICAgLm9wdGlvbignLS1vZmZzZXQgPG51bWJlcj4nLCAnTnVtYmVyIG9mIHJlc3VsdHMgdG8gc2tpcCcsICh2KSA9PiBwYXJzZUludCh2LCAxMCksIDApXG4gICAgLm9wdGlvbignLS1zb3J0IDxzb3J0PicsICdTb3J0IGZvcm1hdDogZmllbGQ6ZGlyZWN0aW9uIChlLmcuLCBuYW1lOmFzYywgY3JlYXRlZEF0OmRlc2MpJylcblxuICAgIC8vIFBsdWdpbi1zcGVjaWZpYyBmaWx0ZXIgb3B0aW9uc1xuICAgIC5vcHRpb24oJy0tbmFtZSA8bmFtZT4nLCAnRmlsdGVyIGJ5IGV4YWN0IHBsdWdpbiBuYW1lJylcbiAgICAub3B0aW9uKCctLXZlcnNpb24gPHZlcnNpb24+JywgJ0ZpbHRlciBieSB2ZXJzaW9uIChzdXBwb3J0cyBzZW12ZXIsIGUuZy4sIFwiXjEuMC4wXCIpJylcblxuICAgIC8vIE91dHB1dCBvcHRpb25zXG4gICAgLm9wdGlvbignLWYsIC0tZm9ybWF0IDxmb3JtYXQ+JywgJ091dHB1dCBmb3JtYXQgKGpzb24sIHlhbWwsIHRhYmxlLCBjc3YpJywgJ3RhYmxlJylcbiAgICAub3B0aW9uKCctbywgLS1vdXRwdXQgPGZpbGU+JywgJ1NhdmUgb3V0cHV0IHRvIGZpbGUnKVxuICAgIC5vcHRpb24oJy0tc2hvdy1tZXRhZGF0YScsICdJbmNsdWRlIGZ1bGwgbWV0YWRhdGEgaW4gb3V0cHV0IChqc29uL3lhbWwgb25seSknLCBmYWxzZSkpXG5cbiAgICAuYWN0aW9uKChvcHRpb25zKSA9PiBydW5MaXN0RW50aXR5PFBsdWdpbiwgUGx1Z2luRmlsdGVyUGFyYW1zPihwcm9ncmFtLCBvcHRpb25zLCB7XG4gICAgICBsYWJlbFBsdXJhbDogJ1BsdWdpbnMnLFxuICAgICAgcmVzcG9uc2VLZXk6ICdwbHVnaW5zJyxcbiAgICAgIGxpc3RVcmw6IChjb25maWcpID0+IGNvbmZpZy5hcGkucGx1Z2luTGlzdFVybCxcbiAgICAgIGNvbW1hbmROYW1lOiAnbGlzdC1wbHVnaW5zJyxcbiAgICAgIGJ1aWxkRmlsdGVyczogKG9wdGlvbnMsIGJhc2UpID0+IHtcbiAgICAgICAgY29uc3QgZmlsdGVyczogUGx1Z2luRmlsdGVyUGFyYW1zID0geyAuLi5iYXNlIH07XG4gICAgICAgIGlmIChvcHRpb25zLm5hbWUpIGZpbHRlcnMubmFtZSA9IG9wdGlvbnMubmFtZSBhcyBzdHJpbmc7XG4gICAgICAgIGlmIChvcHRpb25zLnZlcnNpb24pIHtcbiAgICAgICAgICAvLyBWYWxpZGF0ZSBzZW12ZXIgZm9ybWF0XG4gICAgICAgICAgY29uc3QgdmVyc2lvblBhdHRlcm4gPSAvXihcXF58fik/KFxcZCspXFwuKFxcZCspXFwuKFxcZCspKC1bYS16QS1aMC05Li1dKyk/KFxcK1thLXpBLVowLTkuLV0rKT8kLztcbiAgICAgICAgICBpZiAoIXZlcnNpb25QYXR0ZXJuLnRlc3Qob3B0aW9ucy52ZXJzaW9uIGFzIHN0cmluZykpIHtcbiAgICAgICAgICAgIHByaW50V2FybmluZyhgVmVyc2lvbiBcIiR7b3B0aW9ucy52ZXJzaW9ufVwiIG1heSBub3QgYmUgdmFsaWQgc2VtdmVyIGZvcm1hdGApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBmaWx0ZXJzLnZlcnNpb24gPSBvcHRpb25zLnZlcnNpb24gYXMgc3RyaW5nO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmaWx0ZXJzO1xuICAgICAgfSxcbiAgICAgIGFjdGl2ZUZpbHRlcnM6IChmaWx0ZXJzKSA9PiB7XG4gICAgICAgIGNvbnN0IGFjdGl2ZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcbiAgICAgICAgaWYgKGZpbHRlcnMuaWQpIGFjdGl2ZS5JRCA9IGZpbHRlcnMuaWQ7XG4gICAgICAgIGlmIChmaWx0ZXJzLmlzQWN0aXZlICE9PSB1bmRlZmluZWQpIGFjdGl2ZVsnSXMgQWN0aXZlJ10gPSBmaWx0ZXJzLmlzQWN0aXZlO1xuICAgICAgICBpZiAoZmlsdGVycy5uYW1lKSBhY3RpdmUuTmFtZSA9IGZpbHRlcnMubmFtZTtcbiAgICAgICAgaWYgKGZpbHRlcnMudmVyc2lvbikgYWN0aXZlLlZlcnNpb24gPSBmaWx0ZXJzLnZlcnNpb247XG4gICAgICAgIHJldHVybiBhY3RpdmU7XG4gICAgICB9LFxuICAgICAgc3RhdGlzdGljczogKHBsdWdpbnMpID0+ICh7XG4gICAgICAgICdBY3RpdmUgUGx1Z2lucyc6IGAke3BsdWdpbnMuZmlsdGVyKHAgPT4gcC5pc0FjdGl2ZSkubGVuZ3RofS8ke3BsdWdpbnMubGVuZ3RofWAsXG4gICAgICAgICdQdWJsaWMgUGx1Z2lucyc6IGAke3BsdWdpbnMuZmlsdGVyKHAgPT4gcC5pc1B1YmxpYyA9PT0gdHJ1ZSkubGVuZ3RofS8ke3BsdWdpbnMubGVuZ3RofWAsXG4gICAgICAgICdUb3RhbCBTaXplJzogZm9ybWF0RmlsZVNpemUocGx1Z2lucy5yZWR1Y2UoKHN1bSwgcCkgPT4gc3VtICsgKHAuZmlsZVNpemUgfHwgMCksIDApKSxcbiAgICAgIH0pLFxuICAgICAgcm93czogKHBsdWdpbnMsIG9wdGlvbnMpID0+IG9wdGlvbnMuc2hvd01ldGFkYXRhID8gcGx1Z2lucyA6IHBsdWdpbnMubWFwKHAgPT4gKHtcbiAgICAgICAgJ0lEJzogcC5pZCxcbiAgICAgICAgJ05hbWUnOiBwLm5hbWUsXG4gICAgICAgICdWZXJzaW9uJzogcC52ZXJzaW9uLFxuICAgICAgICAnT3JnYW5pemF0aW9uJzogcC5vcmdhbml6YXRpb24sXG4gICAgICAgICdBY3RpdmUnOiBwLmlzQWN0aXZlID8gJ1llcycgOiAnTm8nLFxuICAgICAgICAnUHVibGljJzogcC5pc1B1YmxpYyA/ICdZZXMnIDogJ05vJyxcbiAgICAgICAgJ1NpemUnOiBwLmZpbGVTaXplID8gZm9ybWF0RmlsZVNpemUocC5maWxlU2l6ZSkgOiAnTi9BJyxcbiAgICAgICAgJ0NyZWF0ZWQgQXQnOiBwLmNyZWF0ZWRBdCB8fCAnTi9BJyxcbiAgICAgIH0pKSxcbiAgICB9KSk7XG59XG4iXX0=
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1wbHVnaW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL2xpc3QtcGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQWUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUEyQixNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQVl4RDs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQUMsT0FBZ0I7SUFDMUMsY0FBYyxDQUFDLE9BQU87U0FDbkIsT0FBTyxDQUFDLE1BQU0sQ0FBQztTQUNmLFdBQVcsQ0FBQywwQ0FBMEMsQ0FBQztRQUV4RCx3QkFBd0I7U0FDdkIsTUFBTSxDQUFDLFdBQVcsRUFBRSx3REFBd0QsQ0FBQztTQUM3RSxNQUFNLENBQUMsdUJBQXVCLEVBQUUsc0NBQXNDLENBQUM7U0FDdkUsTUFBTSxDQUFDLGtCQUFrQixFQUFFLG9DQUFvQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztTQUM1RixNQUFNLENBQUMsbUJBQW1CLEVBQUUsMkJBQTJCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ25GLE1BQU0sQ0FBQyxlQUFlLEVBQUUsK0RBQStELENBQUM7UUFFekYsaUNBQWlDO1NBQ2hDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsNkJBQTZCLENBQUM7U0FDdEQsTUFBTSxDQUFDLHFCQUFxQixFQUFFLHFEQUFxRCxDQUFDO1FBRXJGLGlCQUFpQjtTQUNoQixNQUFNLENBQUMsdUJBQXVCLEVBQUUsd0NBQXdDLEVBQUUsT0FBTyxDQUFDO1NBQ2xGLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxxQkFBcUIsQ0FBQztTQUNwRCxNQUFNLENBQUMsaUJBQWlCLEVBQUUsa0RBQWtELEVBQUUsS0FBSyxDQUFDLENBQUM7U0FFckYsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQTZCLE9BQU8sRUFBRSxPQUFPLEVBQUU7UUFDL0UsV0FBVyxFQUFFLFNBQVM7UUFDdEIsV0FBVyxFQUFFLFNBQVM7UUFDdEIsT0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFNBQVM7UUFDekMsV0FBVyxFQUFFLGNBQWM7UUFDM0IsWUFBWSxFQUFFLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFO1lBQzlCLE1BQU0sT0FBTyxHQUF1QixFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUM7WUFDaEQsSUFBSSxPQUFPLENBQUMsSUFBSTtnQkFBRSxPQUFPLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFjLENBQUM7WUFDeEQsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ3BCLHlCQUF5QjtnQkFDekIsTUFBTSxjQUFjLEdBQUcsbUVBQW1FLENBQUM7Z0JBQzNGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFpQixDQUFDLEVBQUUsQ0FBQztvQkFDcEQsWUFBWSxDQUFDLFlBQVksT0FBTyxDQUFDLE9BQU8sa0NBQWtDLENBQUMsQ0FBQztnQkFDOUUsQ0FBQztnQkFDRCxPQUFPLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFpQixDQUFDO1lBQzlDLENBQUM7WUFDRCxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO1FBQ0QsYUFBYSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDekIsTUFBTSxNQUFNLEdBQTRCLEVBQUUsQ0FBQztZQUMzQyxJQUFJLE9BQU8sQ0FBQyxFQUFFO2dCQUFFLE1BQU0sQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN2QyxJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssU0FBUztnQkFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztZQUMzRSxJQUFJLE9BQU8sQ0FBQyxJQUFJO2dCQUFFLE1BQU0sQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztZQUM3QyxJQUFJLE9BQU8sQ0FBQyxPQUFPO2dCQUFFLE1BQU0sQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztZQUN0RCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBQ0QsVUFBVSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3hCLGdCQUFnQixFQUFFLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtZQUMvRSxnQkFBZ0IsRUFBRSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQ3hGLFlBQVksRUFBRSxjQUFjLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDckYsQ0FBQztRQUNGLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDN0UsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFO1lBQ1YsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJO1lBQ2QsU0FBUyxFQUFFLENBQUMsQ0FBQyxPQUFPO1lBQ3BCLGNBQWMsRUFBRSxDQUFDLENBQUMsWUFBWTtZQUM5QixRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQ25DLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDbkMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDdkQsWUFBWSxFQUFFLENBQUMsQ0FBQyxTQUFTLElBQUksS0FBSztTQUNuQyxDQUFDLENBQUM7S0FDSixDQUFDLENBQUMsQ0FBQztBQUNSLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gJ2NvbW1hbmRlcic7XG5pbXBvcnQgeyBydW5MaXN0RW50aXR5IH0gZnJvbSAnLi9lbnRpdHktbGlzdC5qcyc7XG5pbXBvcnQgeyBmb3JtYXRGaWxlU2l6ZSB9IGZyb20gJy4uL2NvbmZpZy9jbGkuY29uc3RhbnRzLmpzJztcbmltcG9ydCB7IHR5cGUgUGx1Z2luIH0gZnJvbSAnLi4vdHlwZXMvaW5kZXguanMnO1xuaW1wb3J0IHsgd2l0aFNzbE9wdGlvbnMgfSBmcm9tICcuLi91dGlscy9jb21tYW5kLXV0aWxzLmpzJztcbmltcG9ydCB7IHR5cGUgQ29tbW9uRmlsdGVyUGFyYW1zIH0gZnJvbSAnLi4vdXRpbHMvbGlzdC1jb21tYW5kLXV0aWxzLmpzJztcbmltcG9ydCB7IHByaW50V2FybmluZyB9IGZyb20gJy4uL3V0aWxzL291dHB1dC11dGlscy5qcyc7XG5cbi8qKlxuICogUXVlcnkgcGFyYW1ldGVycyBmb3IgdGhlIHBsdWdpbiBsaXN0IEFQSSBlbmRwb2ludC5cbiAqIENvbWJpbmVzIGNvbW1vbiBmaWx0ZXJzIChwYWdpbmF0aW9uLCBzb3J0KSB3aXRoIHBsdWdpbi1zcGVjaWZpYyBmaWx0ZXJzLlxuICovXG5pbnRlcmZhY2UgUGx1Z2luRmlsdGVyUGFyYW1zIGV4dGVuZHMgQ29tbW9uRmlsdGVyUGFyYW1zIHtcbiAgLy8gUGx1Z2luLXNwZWNpZmljIGZpbHRlcnNcbiAgbmFtZT86IHN0cmluZztcbiAgdmVyc2lvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZWdpc3RlcnMgdGhlIGBsaXN0LXBsdWdpbnNgIGNvbW1hbmQgd2l0aCB0aGUgQ0xJIHByb2dyYW0uXG4gKlxuICogUXVlcmllcyBwbHVnaW5zIHdpdGggZmlsdGVycyBmb3IgbmFtZSwgdmVyc2lvbiwgaW1hZ2UgdGFnLFxuICogYWN0aXZlIHN0YXR1cywgcGx1cyBwYWdpbmF0aW9uIGFuZCBzb3J0aW5nLlxuICpcbiAqIEBwYXJhbSBwcm9ncmFtIC0gVGhlIHJvb3QgQ29tbWFuZGVyIHByb2dyYW0gaW5zdGFuY2UgdG8gYXR0YWNoIHRoZSBjb21tYW5kIHRvLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBiYXNoXG4gKiBjbGkgcGx1Z2luIGxpc3RcbiAqIGNsaSBwbHVnaW4gbGlzdCAtLW5hbWUgYXV0aC1wbHVnaW4gLS1pcy1hY3RpdmUgdHJ1ZVxuICogY2xpIHBsdWdpbiBsaXN0IC0tdmVyc2lvbiBcIl4xLjAuMFwiXG4gKiBjbGkgcGx1Z2luIGxpc3QgLS1saW1pdCA1MCAtLW9mZnNldCAxMDAgLS1zb3J0IFwibmFtZTphc2NcIlxuICogY2xpIHBsdWdpbiBsaXN0IC0tZm9ybWF0IGpzb24gLS1vdXRwdXQgcGx1Z2lucy5qc29uXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxpc3RQbHVnaW5zKHByb2dyYW06IENvbW1hbmQpOiB2b2lkIHtcbiAgd2l0aFNzbE9wdGlvbnMocHJvZ3JhbVxuICAgIC5jb21tYW5kKCdsaXN0JylcbiAgICAuZGVzY3JpcHRpb24oJ1F1ZXJ5IHBsdWdpbnMgd2l0aCBjb21wcmVoZW5zaXZlIGZpbHRlcnMnKVxuXG4gICAgLy8gQ29tbW9uIGZpbHRlciBvcHRpb25zXG4gICAgLm9wdGlvbignLS1pZCA8aWQ+JywgJ0ZpbHRlciBieSBwbHVnaW4gSUQgKGNhbiBzcGVjaWZ5IG11bHRpcGxlIHdpdGggY29tbWFzKScpXG4gICAgLm9wdGlvbignLS1pcy1hY3RpdmUgPGJvb2xlYW4+JywgJ0ZpbHRlciBieSBhY3RpdmUgc3RhdHVzICh0cnVlL2ZhbHNlKScpXG4gICAgLm9wdGlvbignLS1saW1pdCA8bnVtYmVyPicsICdNYXhpbXVtIG51bWJlciBvZiByZXN1bHRzICgxLTEwMDApJywgKHYpID0+IHBhcnNlSW50KHYsIDEwKSwgNTApXG4gICAgLm9wdGlvbignLS1vZmZzZXQgPG51bWJlcj4nLCAnTnVtYmVyIG9mIHJlc3VsdHMgdG8gc2tpcCcsICh2KSA9PiBwYXJzZUludCh2LCAxMCksIDApXG4gICAgLm9wdGlvbignLS1zb3J0IDxzb3J0PicsICdTb3J0IGZvcm1hdDogZmllbGQ6ZGlyZWN0aW9uIChlLmcuLCBuYW1lOmFzYywgY3JlYXRlZEF0OmRlc2MpJylcblxuICAgIC8vIFBsdWdpbi1zcGVjaWZpYyBmaWx0ZXIgb3B0aW9uc1xuICAgIC5vcHRpb24oJy0tbmFtZSA8bmFtZT4nLCAnRmlsdGVyIGJ5IGV4YWN0IHBsdWdpbiBuYW1lJylcbiAgICAub3B0aW9uKCctLXZlcnNpb24gPHZlcnNpb24+JywgJ0ZpbHRlciBieSB2ZXJzaW9uIChzdXBwb3J0cyBzZW12ZXIsIGUuZy4sIFwiXjEuMC4wXCIpJylcblxuICAgIC8vIE91dHB1dCBvcHRpb25zXG4gICAgLm9wdGlvbignLWYsIC0tZm9ybWF0IDxmb3JtYXQ+JywgJ091dHB1dCBmb3JtYXQgKGpzb24sIHlhbWwsIHRhYmxlLCBjc3YpJywgJ3RhYmxlJylcbiAgICAub3B0aW9uKCctbywgLS1vdXRwdXQgPGZpbGU+JywgJ1NhdmUgb3V0cHV0IHRvIGZpbGUnKVxuICAgIC5vcHRpb24oJy0tc2hvdy1tZXRhZGF0YScsICdJbmNsdWRlIGZ1bGwgbWV0YWRhdGEgaW4gb3V0cHV0IChqc29uL3lhbWwgb25seSknLCBmYWxzZSkpXG5cbiAgICAuYWN0aW9uKChvcHRpb25zKSA9PiBydW5MaXN0RW50aXR5PFBsdWdpbiwgUGx1Z2luRmlsdGVyUGFyYW1zPihwcm9ncmFtLCBvcHRpb25zLCB7XG4gICAgICBsYWJlbFBsdXJhbDogJ1BsdWdpbnMnLFxuICAgICAgcmVzcG9uc2VLZXk6ICdwbHVnaW5zJyxcbiAgICAgIGxpc3RVcmw6IChjb25maWcpID0+IGNvbmZpZy5hcGkucGx1Z2luVXJsLFxuICAgICAgY29tbWFuZE5hbWU6ICdsaXN0LXBsdWdpbnMnLFxuICAgICAgYnVpbGRGaWx0ZXJzOiAob3B0aW9ucywgYmFzZSkgPT4ge1xuICAgICAgICBjb25zdCBmaWx0ZXJzOiBQbHVnaW5GaWx0ZXJQYXJhbXMgPSB7IC4uLmJhc2UgfTtcbiAgICAgICAgaWYgKG9wdGlvbnMubmFtZSkgZmlsdGVycy5uYW1lID0gb3B0aW9ucy5uYW1lIGFzIHN0cmluZztcbiAgICAgICAgaWYgKG9wdGlvbnMudmVyc2lvbikge1xuICAgICAgICAgIC8vIFZhbGlkYXRlIHNlbXZlciBmb3JtYXRcbiAgICAgICAgICBjb25zdCB2ZXJzaW9uUGF0dGVybiA9IC9eKFxcXnx+KT8oXFxkKylcXC4oXFxkKylcXC4oXFxkKykoLVthLXpBLVowLTkuLV0rKT8oXFwrW2EtekEtWjAtOS4tXSspPyQvO1xuICAgICAgICAgIGlmICghdmVyc2lvblBhdHRlcm4udGVzdChvcHRpb25zLnZlcnNpb24gYXMgc3RyaW5nKSkge1xuICAgICAgICAgICAgcHJpbnRXYXJuaW5nKGBWZXJzaW9uIFwiJHtvcHRpb25zLnZlcnNpb259XCIgbWF5IG5vdCBiZSB2YWxpZCBzZW12ZXIgZm9ybWF0YCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGZpbHRlcnMudmVyc2lvbiA9IG9wdGlvbnMudmVyc2lvbiBhcyBzdHJpbmc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpbHRlcnM7XG4gICAgICB9LFxuICAgICAgYWN0aXZlRmlsdGVyczogKGZpbHRlcnMpID0+IHtcbiAgICAgICAgY29uc3QgYWN0aXZlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuICAgICAgICBpZiAoZmlsdGVycy5pZCkgYWN0aXZlLklEID0gZmlsdGVycy5pZDtcbiAgICAgICAgaWYgKGZpbHRlcnMuaXNBY3RpdmUgIT09IHVuZGVmaW5lZCkgYWN0aXZlWydJcyBBY3RpdmUnXSA9IGZpbHRlcnMuaXNBY3RpdmU7XG4gICAgICAgIGlmIChmaWx0ZXJzLm5hbWUpIGFjdGl2ZS5OYW1lID0gZmlsdGVycy5uYW1lO1xuICAgICAgICBpZiAoZmlsdGVycy52ZXJzaW9uKSBhY3RpdmUuVmVyc2lvbiA9IGZpbHRlcnMudmVyc2lvbjtcbiAgICAgICAgcmV0dXJuIGFjdGl2ZTtcbiAgICAgIH0sXG4gICAgICBzdGF0aXN0aWNzOiAocGx1Z2lucykgPT4gKHtcbiAgICAgICAgJ0FjdGl2ZSBQbHVnaW5zJzogYCR7cGx1Z2lucy5maWx0ZXIocCA9PiBwLmlzQWN0aXZlKS5sZW5ndGh9LyR7cGx1Z2lucy5sZW5ndGh9YCxcbiAgICAgICAgJ1B1YmxpYyBQbHVnaW5zJzogYCR7cGx1Z2lucy5maWx0ZXIocCA9PiBwLmlzUHVibGljID09PSB0cnVlKS5sZW5ndGh9LyR7cGx1Z2lucy5sZW5ndGh9YCxcbiAgICAgICAgJ1RvdGFsIFNpemUnOiBmb3JtYXRGaWxlU2l6ZShwbHVnaW5zLnJlZHVjZSgoc3VtLCBwKSA9PiBzdW0gKyAocC5maWxlU2l6ZSB8fCAwKSwgMCkpLFxuICAgICAgfSksXG4gICAgICByb3dzOiAocGx1Z2lucywgb3B0aW9ucykgPT4gb3B0aW9ucy5zaG93TWV0YWRhdGEgPyBwbHVnaW5zIDogcGx1Z2lucy5tYXAocCA9PiAoe1xuICAgICAgICAnSUQnOiBwLmlkLFxuICAgICAgICAnTmFtZSc6IHAubmFtZSxcbiAgICAgICAgJ1ZlcnNpb24nOiBwLnZlcnNpb24sXG4gICAgICAgICdPcmdhbml6YXRpb24nOiBwLm9yZ2FuaXphdGlvbixcbiAgICAgICAgJ0FjdGl2ZSc6IHAuaXNBY3RpdmUgPyAnWWVzJyA6ICdObycsXG4gICAgICAgICdQdWJsaWMnOiBwLmlzUHVibGljID8gJ1llcycgOiAnTm8nLFxuICAgICAgICAnU2l6ZSc6IHAuZmlsZVNpemUgPyBmb3JtYXRGaWxlU2l6ZShwLmZpbGVTaXplKSA6ICdOL0EnLFxuICAgICAgICAnQ3JlYXRlZCBBdCc6IHAuY3JlYXRlZEF0IHx8ICdOL0EnLFxuICAgICAgfSkpLFxuICAgIH0pKTtcbn1cbiJdfQ==
@@ -5,8 +5,8 @@ import { Command } from 'commander';
5
5
  * Signs in with the OAuth 2.0 device authorization grant (RFC 8628): the CLI
6
6
  * shows a short code, the person approves it in a browser, and the CLI receives
7
7
  * an ordinary session. There is no password flag and no way to hand the CLI a
8
- * refresh token — both used to end up in shell history, `ps` output and CI logs,
9
- * and both skipped the SSO / step-up / MFA the browser already enforces.
8
+ * refresh token — both end up in shell history, `ps` output and CI logs, and
9
+ * both skip the SSO / step-up / MFA the browser already enforces.
10
10
  *
11
11
  * The session is written to the credential store (`~/.pipeline-manager/
12
12
  * credentials.json`, owner-only), so subsequent commands authenticate with no
@@ -17,8 +17,8 @@ const { bold, cyan, dim, green } = pico;
17
17
  * Signs in with the OAuth 2.0 device authorization grant (RFC 8628): the CLI
18
18
  * shows a short code, the person approves it in a browser, and the CLI receives
19
19
  * an ordinary session. There is no password flag and no way to hand the CLI a
20
- * refresh token — both used to end up in shell history, `ps` output and CI logs,
21
- * and both skipped the SSO / step-up / MFA the browser already enforces.
20
+ * refresh token — both end up in shell history, `ps` output and CI logs, and
21
+ * both skip the SSO / step-up / MFA the browser already enforces.
22
22
  *
23
23
  * The session is written to the credential store (`~/.pipeline-manager/
24
24
  * credentials.json`, owner-only), so subsequent commands authenticate with no
@@ -136,4 +136,4 @@ export function login(program) {
136
136
  }
137
137
  });
138
138
  }
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvbG9naW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLElBQUksTUFBTSxZQUFZLENBQUM7QUFDOUIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoSCxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRS9FLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUM7QUFFeEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJHO0FBQ0gsTUFBTSxVQUFVLEtBQUssQ0FBQyxPQUFnQjtJQUNwQyxjQUFjLENBQUMsT0FBTztTQUNuQixPQUFPLENBQUMsT0FBTyxDQUFDO1NBQ2hCLFdBQVcsQ0FBQywyRUFBMkUsQ0FBQztTQUN4RixNQUFNLENBQUMsZUFBZSxFQUFFLG9EQUFvRCxD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QUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLO2dCQUMzQixJQUFJLEVBQUUsSUFBSTtnQkFDVixPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRTthQUM3RCxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSAnY29tbWFuZGVyJztcbmltcG9ydCBwaWNvIGZyb20gJ3BpY29jb2xvcnMnO1xuaW1wb3J0IHsgVElNRU9VVFMgfSBmcm9tICcuLi9jb25maWcvY2xpLmNvbnN0YW50cy5qcyc7XG5pbXBvcnQgeyBhc3NlcnRDcmVkZW50aWFsVGxzQWxsb3dlZCwgY3JlZGVudGlhbEh0dHBzQWdlbnQsIHN3aXRjaE9yZ2FuaXphdGlvbiB9IGZyb20gJy4uL3V0aWxzL2F1dGgtdXRpbHMuanMnO1xuaW1wb3J0IHsgcHJpbnRDb21tYW5kSGVhZGVyLCB3aXRoU3NsT3B0aW9ucyB9IGZyb20gJy4uL3V0aWxzL2NvbW1hbmQtdXRpbHMuanMnO1xuaW1wb3J0IHsgY3JlZGVudGlhbFN0b3JlUGF0aCwgc2F2ZVNlc3Npb24gfSBmcm9tICcuLi91dGlscy9jcmVkZW50aWFsLXN0b3JlLmpzJztcbmltcG9ydCB7IERldmljZUF1dGhFcnJvciwgb3BlbkluQnJvd3NlciwgcG9sbEZvckRldmljZVRva2VuLCByZXF1ZXN0RGV2aWNlQ29kZSB9IGZyb20gJy4uL3V0aWxzL2RldmljZS1hdXRoLmpzJztcbmltcG9ydCB7IEVSUk9SX0NPREVTLCBoYW5kbGVFcnJvciB9IGZyb20gJy4uL3V0aWxzL2Vycm9yLWhhbmRsZXIuanMnO1xuaW1wb3J0IHsgcHJpbnRFcnJvciwgcHJpbnRJbmZvLCBwcmludFN1Y2Nlc3MgfSBmcm9tICcuLi91dGlscy9vdXRwdXQtdXRpbHMuanMnO1xuXG5jb25zdCB7IGJvbGQsIGN5YW4sIGRpbSwgZ3JlZW4gfSA9IHBpY287XG5cbi8qKlxuICogUmVnaXN0ZXJzIHRoZSBgbG9naW5gIGNvbW1hbmQgd2l0aCB0aGUgQ0xJIHByb2dyYW0uXG4gKlxuICogU2lnbnMgaW4gd2l0aCB0aGUgT0F1dGggMi4wIGRldmljZSBhdXRob3JpemF0aW9uIGdyYW50IChSRkMgODYyOCk6IHRoZSBDTElcbiAqIHNob3dzIGEgc2hvcnQgY29kZSwgdGhlIHBlcnNvbiBhcHByb3ZlcyBpdCBpbiBhIGJyb3dzZXIsIGFuZCB0aGUgQ0xJIHJlY2VpdmVzXG4gKiBhbiBvcmRpbmFyeSBzZXNzaW9uLiBUaGVyZSBpcyBubyBwYXNzd29yZCBmbGFnIGFuZCBubyB3YXkgdG8gaGFuZCB0aGUgQ0xJIGFcbiAqIHJlZnJlc2ggdG9rZW4g4oCUIGJvdGggdXNlZCB0byBlbmQgdXAgaW4gc2hlbGwgaGlzdG9yeSwgYHBzYCBvdXRwdXQgYW5kIENJIGxvZ3MsXG4gKiBhbmQgYm90aCBza2lwcGVkIHRoZSBTU08gLyBzdGVwLXVwIC8gTUZBIHRoZSBicm93c2VyIGFscmVhZHkgZW5mb3JjZXMuXG4gKlxuICogVGhlIHNlc3Npb24gaXMgd3JpdHRlbiB0byB0aGUgY3JlZGVudGlhbCBzdG9yZSAoYH4vLnBpcGVsaW5lLW1hbmFnZXIvXG4gKiBjcmVkZW50aWFscy5qc29uYCwgb3duZXItb25seSksIHNvIHN1YnNlcXVlbnQgY29tbWFuZHMgYXV0aGVudGljYXRlIHdpdGggbm9cbiAqIGVudmlyb25tZW50IHZhcmlhYmxlIGF0IGFsbC4gYFBMQVRGT1JNX1RPS0VOYCBzdGlsbCB3aW5zIHdoZW4gaXQgaXMgc2V0LCB3aGljaFxuICogaXMgd2hhdCBDSSB1c2VzIOKAlCBhbiBhY2Nlc3Mga2V5IGZyb20gYGF1dGggcGF0YC5cbiAqXG4gKiBAcGFyYW0gcHJvZ3JhbSAtIFRoZSByb290IENvbW1hbmRlciBwcm9ncmFtIGluc3RhbmNlIHRvIGF0dGFjaCB0aGUgY29tbWFuZCB0by5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgYmFzaFxuICogcGlwZWxpbmUtbWFuYWdlciBhdXRoIGxvZ2luXG4gKiBwaXBlbGluZS1tYW5hZ2VyIGF1dGggbG9naW4gLS11cmwgaHR0cHM6Ly9wbGF0Zm9ybS5leGFtcGxlLmNvbSAtLW9yZyA8b3JnSWQ+XG4gKiBwaXBlbGluZS1tYW5hZ2VyIGF1dGggbG9naW4gLS1uby1icm93c2VyICAgICAgIyBwcmludCB0aGUgVVJMIGluc3RlYWQgb2Ygb3BlbmluZyBpdFxuICogZXZhbCAkKHBpcGVsaW5lLW1hbmFnZXIgYXV0aCBsb2dpbiAtLXF1aWV0KSAgICMgYWxzbyBleHBvcnQgUExBVEZPUk1fVE9LRU5cbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gbG9naW4ocHJvZ3JhbTogQ29tbWFuZCk6IHZvaWQge1xuICB3aXRoU3NsT3B0aW9ucyhwcm9ncmFtXG4gICAgLmNvbW1hbmQoJ2xvZ2luJylcbiAgICAuZGVzY3JpcHRpb24oJ1NpZ24gaW4gdGhyb3VnaCB5b3VyIGJyb3dzZXIgYW5kIHN0b3JlIHRoZSBzZXNzaW9uIChkZXZpY2UgYXV0aG9yaXphdGlvbiknKVxuICAgIC5vcHRpb24oJy0tb3JnIDxvcmdJZD4nLCAnU3dpdGNoIHRvIGEgc3BlY2lmaWMgb3JnYW5pemF0aW9uIGFmdGVyIHNpZ25pbmcgaW4nKVxuICAgIC5vcHRpb24oJy0tbm8tYnJvd3NlcicsICdOZXZlciBvcGVuIGEgYnJvd3NlciDigJQgcHJpbnQgdGhlIHZlcmlmaWNhdGlvbiBVUkwgaW5zdGVhZCcpXG4gICAgLm9wdGlvbignLS11cmwgPHVybD4nLCAnUGxhdGZvcm0gYmFzZSBVUkwnLCBwcm9jZXNzLmVudi5QTEFURk9STV9CQVNFX1VSTCB8fCAnaHR0cHM6Ly9sb2NhbGhvc3Q6ODQ0MycpKVxuICAgIC5vcHRpb24oJy0tcXVpZXQnLCAnT25seSBwcmludCB0aGUgZXhwb3J0IHN0YXRlbWVudCAodXNlZnVsIGZvciBldmFsKScpXG4gICAgLmFjdGlvbihhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgY29uc3QgcXVpZXQgPSBvcHRpb25zLnF1aWV0ID8/IGZhbHNlO1xuICAgICAgY29uc3QgZXhlY3V0aW9uSWQgPSBwcmludENvbW1hbmRIZWFkZXIoJ0xvZ2luJywgJ1BsYXRmb3JtIEF1dGhlbnRpY2F0aW9uJywgeyBxdWlldCB9KTtcblxuICAgICAgLy8gU0VDVVJJVFk6IHRoZSBwb2xsIHJldHVybnMgc2Vzc2lvbiB0b2tlbnMg4oCUIGJlYXJlciBjcmVkZW50aWFscy4gTmV2ZXJcbiAgICAgIC8vIGZldGNoIHRoZW0gb3ZlciBhbiB1bnZlcmlmaWVkIFRMUyBjb25uZWN0aW9uIGluIHByb2R1Y3Rpb24uXG4gICAgICBhc3NlcnRDcmVkZW50aWFsVGxzQWxsb3dlZChvcHRpb25zLnZlcmlmeVNzbCk7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHRyYW5zcG9ydCA9IHtcbiAgICAgICAgICB1cmw6IG9wdGlvbnMudXJsLFxuICAgICAgICAgIGh0dHBzQWdlbnQ6IGNyZWRlbnRpYWxIdHRwc0FnZW50KG9wdGlvbnMudmVyaWZ5U3NsKSxcbiAgICAgICAgICB0aW1lb3V0OiBUSU1FT1VUUy5IVFRQX1JFUVVFU1QsXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKCFxdWlldCkgcHJpbnRJbmZvKCdTdGFydGluZyBicm93c2VyIHNpZ24taW4nLCB7IHVybDogb3B0aW9ucy51cmwsIHZlcmlmeVNzbDogb3B0aW9ucy52ZXJpZnlTc2wgfSk7XG5cbiAgICAgICAgY29uc3QgY29kZSA9IGF3YWl0IHJlcXVlc3REZXZpY2VDb2RlKHRyYW5zcG9ydCk7XG4gICAgICAgIGNvbnN0IGFwcHJvdmFsVXJsID0gY29kZS52ZXJpZmljYXRpb25fdXJpX2NvbXBsZXRlIHx8IGNvZGUudmVyaWZpY2F0aW9uX3VyaTtcbiAgICAgICAgLy8gYC0tbm8tYnJvd3NlcmAgc2V0cyBvcHRpb25zLmJyb3dzZXIgdG8gZmFsc2UgKGNvbW1hbmRlcidzIC0tbm8tIHBhaXIpLlxuICAgICAgICBjb25zdCBvcGVuZWQgPSBvcHRpb25zLmJyb3dzZXIgIT09IGZhbHNlICYmIG9wZW5JbkJyb3dzZXIoYXBwcm92YWxVcmwpO1xuXG4gICAgICAgIC8vIFRoZSBwcm9tcHQgZ29lcyB0byBTVERFUlIgdW5kZXIgYC0tcXVpZXRgOiBzdGRvdXQgaXMgY2FwdHVyZWQgYnlcbiAgICAgICAgLy8gYGV2YWwgJCjigKYpYCwgc28gcHJpbnRpbmcgdGhlIGNvZGUgdGhlcmUgd291bGQgc3dhbGxvdyB0aGUgb25lIHRoaW5nXG4gICAgICAgIC8vIHRoZSB1c2VyIGhhcyB0byByZWFkIGJlZm9yZSBhbnl0aGluZyBjYW4gcHJvY2VlZC5cbiAgICAgICAgY29uc3Qgc2F5ID0gcXVpZXQgPyBjb25zb2xlLmVycm9yIDogY29uc29sZS5sb2c7XG4gICAgICAgIHNheSgnJyk7XG4gICAgICAgIHNheShgICBZb3VyIGNvZGU6ICAke2JvbGQoY3lhbihjb2RlLnVzZXJfY29kZSkpfWApO1xuICAgICAgICBzYXkoYCAgQXBwcm92ZSBhdDogJHtncmVlbihhcHByb3ZhbFVybCl9YCk7XG4gICAgICAgIHNheSgnJyk7XG4gICAgICAgIHNheShkaW0ob3BlbmVkXG4gICAgICAgICAgPyAnICBPcGVuaW5nIHlvdXIgYnJvd3NlcuKApiBhcHByb3ZlIHRoZSBjb2RlIHRoZXJlLCB0aGVuIGNvbWUgYmFjay4nXG4gICAgICAgICAgOiAnICBPcGVuIHRoYXQgVVJMIGluIGEgYnJvd3NlciwgY2hlY2sgdGhlIGNvZGUgbWF0Y2hlcywgYW5kIGFwcHJvdmUuJykpO1xuICAgICAgICBpZiAoIXF1aWV0KSBwcmludEluZm8oJ1dhaXRpbmcgZm9yIGFwcHJvdmFs4oCmJyk7XG5cbiAgICAgICAgY29uc3Qgc2Vzc2lvbiA9IGF3YWl0IHBvbGxGb3JEZXZpY2VUb2tlbih0cmFuc3BvcnQsIGNvZGUpO1xuXG4gICAgICAgIGxldCBhY2Nlc3NUb2tlbiA9IHNlc3Npb24uYWNjZXNzX3Rva2VuO1xuICAgICAgICBsZXQgcmVmcmVzaFRva2VuID0gc2Vzc2lvbi5yZWZyZXNoX3Rva2VuO1xuICAgICAgICBsZXQgZXhwaXJlc0luID0gc2Vzc2lvbi5leHBpcmVzX2luO1xuXG4gICAgICAgIC8vIFN3aXRjaGluZyByZS1pc3N1ZXMgKGFuZCByb3RhdGVzKSB0aGUgc2Vzc2lvbiwgc28gdGhlIHN0b3JlIGhhcyB0byB0YWtlXG4gICAgICAgIC8vIHRoZSBORVcgcGFpciDigJQga2VlcGluZyB0aGUgb2xkIHJlZnJlc2ggdG9rZW4gd291bGQgc3RyYW5kIHRoZSBzZXNzaW9uLlxuICAgICAgICBpZiAob3B0aW9ucy5vcmcpIHtcbiAgICAgICAgICBpZiAoIXF1aWV0KSBwcmludEluZm8oJ1N3aXRjaGluZyB0byBvcmdhbml6YXRpb24nLCB7IG9yZ0lkOiBvcHRpb25zLm9yZyB9KTtcbiAgICAgICAgICBjb25zdCBzd2l0Y2hlZCA9IGF3YWl0IHN3aXRjaE9yZ2FuaXphdGlvbih7XG4gICAgICAgICAgICB1cmw6IG9wdGlvbnMudXJsLFxuICAgICAgICAgICAgb3JnSWQ6IG9wdGlvbnMub3JnLFxuICAgICAgICAgICAgYWNjZXNzVG9rZW4sXG4gICAgICAgICAgICBodHRwc0FnZW50OiB0cmFuc3BvcnQuaHR0cHNBZ2VudCxcbiAgICAgICAgICAgIHRpbWVvdXQ6IFRJTUVPVVRTLkhUVFBfUkVRVUVTVCxcbiAgICAgICAgICAgIHF1aWV0LFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGFjY2Vzc1Rva2VuID0gc3dpdGNoZWQuYWNjZXNzVG9rZW47XG4gICAgICAgICAgcmVmcmVzaFRva2VuID0gc3dpdGNoZWQucmVmcmVzaFRva2VuID8/IHJlZnJlc2hUb2tlbjtcbiAgICAgICAgICBleHBpcmVzSW4gPSBzd2l0Y2hlZC5leHBpcmVzSW4gPz8gZXhwaXJlc0luO1xuICAgICAgICB9XG5cbiAgICAgICAgc2F2ZVNlc3Npb24ob3B0aW9ucy51cmwsIHtcbiAgICAgICAgICBhY2Nlc3NUb2tlbixcbiAgICAgICAgICAuLi4ocmVmcmVzaFRva2VuID8geyByZWZyZXNoVG9rZW4gfSA6IHt9KSxcbiAgICAgICAgICBleHBpcmVzQXQ6IERhdGUubm93KCkgKyBleHBpcmVzSW4gKiAxMDAwLFxuICAgICAgICAgIC4uLihvcHRpb25zLm9yZyA/IHsgb3JnYW5pemF0aW9uSWQ6IG9wdGlvbnMub3JnIH0gOiB7fSksXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChxdWlldCkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBleHBvcnQgUExBVEZPUk1fVE9LRU49JHthY2Nlc3NUb2tlbn1gKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zb2xlLmxvZygnJyk7XG4gICAgICAgIHByaW50U3VjY2VzcygnU2lnbmVkIGluJyk7XG4gICAgICAgIGNvbnNvbGUubG9nKCcnKTtcbiAgICAgICAgcHJpbnRJbmZvKCdUaGUgc2Vzc2lvbiBpcyBzdG9yZWQgZm9yIHRoaXMgcGxhdGZvcm0g4oCUIG90aGVyIGNvbW1hbmRzIHBpY2sgaXQgdXAgYXV0b21hdGljYWxseS4nLCB7XG4gICAgICAgICAgc3RvcmU6IGNyZWRlbnRpYWxTdG9yZVBhdGgoKSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnNvbGUubG9nKCcnKTtcbiAgICAgICAgcHJpbnRJbmZvKCdUaXA6IHRvIGV4cG9ydCBpdCBpbnRvIHRoaXMgc2hlbGwgaW5zdGVhZDonKTtcbiAgICAgICAgY29uc29sZS5sb2coZ3JlZW4oYCAgZXZhbCAkKHBpcGVsaW5lLW1hbmFnZXIgYXV0aCBsb2dpbiR7b3B0aW9ucy5vcmcgPyBgIC0tb3JnICR7b3B0aW9ucy5vcmd9YCA6ICcnfSAtLXF1aWV0KWApKTtcbiAgICAgICAgY29uc29sZS5sb2coJycpO1xuICAgICAgICBwcmludEluZm8oJ1NpZ24gdGhpcyBkZXZpY2Ugb3V0IGFnYWluIGZyb20gU2V0dGluZ3Mg4oaSIFNlc3Npb25zIGFuZCBkZXZpY2VzLicpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRGV2aWNlQXV0aEVycm9yKSB7XG4gICAgICAgICAgcHJpbnRFcnJvcihgTG9naW4gZmFpbGVkOiAke2Vycm9yLm1lc3NhZ2V9YCwgeyByZWFzb246IGVycm9yLmNvZGUgfSk7XG4gICAgICAgICAgcHJvY2Vzcy5leGl0KEVSUk9SX0NPREVTLkFVVEhFTlRJQ0FUSU9OKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYXhpb3MuaXNBeGlvc0Vycm9yKGVycm9yKSkge1xuICAgICAgICAgIGNvbnN0IHN0YXR1cyA9IGVycm9yLnJlc3BvbnNlPy5zdGF0dXM7XG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9IChlcnJvci5yZXNwb25zZT8uZGF0YSBhcyB7IG1lc3NhZ2U/OiBzdHJpbmcgfSk/Lm1lc3NhZ2U7XG4gICAgICAgICAgcHJpbnRFcnJvcignTG9naW4gZmFpbGVkJywgeyBzdGF0dXM6IHN0YXR1cyA/PyAnbm8gcmVzcG9uc2UnLCAuLi4obWVzc2FnZSA/IHsgbWVzc2FnZSB9IDoge30pIH0pO1xuICAgICAgICAgIHByb2Nlc3MuZXhpdChFUlJPUl9DT0RFUy5BVVRIRU5USUNBVElPTik7XG4gICAgICAgIH1cblxuICAgICAgICBoYW5kbGVFcnJvcihlcnJvciwgRVJST1JfQ09ERVMuQVVUSEVOVElDQVRJT04sIHtcbiAgICAgICAgICBkZWJ1ZzogcHJvZ3JhbS5vcHRzKCkuZGVidWcsXG4gICAgICAgICAgZXhpdDogdHJ1ZSxcbiAgICAgICAgICBjb250ZXh0OiB7IGNvbW1hbmQ6ICdsb2dpbicsIGV4ZWN1dGlvbklkLCB1cmw6IG9wdGlvbnMudXJsIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xufVxuIl19
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvbG9naW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLElBQUksTUFBTSxZQUFZLENBQUM7QUFDOUIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoSCxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRS9FLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUM7QUFFeEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJHO0FBQ0gsTUFBTSxVQUFVLEtBQUssQ0FBQyxPQUFnQjtJQUNwQyxjQUFjLENBQUMsT0FBTztTQUNuQixPQUFPLENBQUMsT0FBTyxDQUFDO1NBQ2hCLFdBQVcsQ0FBQywyRUFBMkUsQ0FBQztTQUN4RixNQUFNLENBQUMsZUFBZSxFQUFFLG9EQUFvRCxD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QUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLO2dCQUMzQixJQUFJLEVBQUUsSUFBSTtnQkFDVixPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRTthQUM3RCxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSAnY29tbWFuZGVyJztcbmltcG9ydCBwaWNvIGZyb20gJ3BpY29jb2xvcnMnO1xuaW1wb3J0IHsgVElNRU9VVFMgfSBmcm9tICcuLi9jb25maWcvY2xpLmNvbnN0YW50cy5qcyc7XG5pbXBvcnQgeyBhc3NlcnRDcmVkZW50aWFsVGxzQWxsb3dlZCwgY3JlZGVudGlhbEh0dHBzQWdlbnQsIHN3aXRjaE9yZ2FuaXphdGlvbiB9IGZyb20gJy4uL3V0aWxzL2F1dGgtdXRpbHMuanMnO1xuaW1wb3J0IHsgcHJpbnRDb21tYW5kSGVhZGVyLCB3aXRoU3NsT3B0aW9ucyB9IGZyb20gJy4uL3V0aWxzL2NvbW1hbmQtdXRpbHMuanMnO1xuaW1wb3J0IHsgY3JlZGVudGlhbFN0b3JlUGF0aCwgc2F2ZVNlc3Npb24gfSBmcm9tICcuLi91dGlscy9jcmVkZW50aWFsLXN0b3JlLmpzJztcbmltcG9ydCB7IERldmljZUF1dGhFcnJvciwgb3BlbkluQnJvd3NlciwgcG9sbEZvckRldmljZVRva2VuLCByZXF1ZXN0RGV2aWNlQ29kZSB9IGZyb20gJy4uL3V0aWxzL2RldmljZS1hdXRoLmpzJztcbmltcG9ydCB7IEVSUk9SX0NPREVTLCBoYW5kbGVFcnJvciB9IGZyb20gJy4uL3V0aWxzL2Vycm9yLWhhbmRsZXIuanMnO1xuaW1wb3J0IHsgcHJpbnRFcnJvciwgcHJpbnRJbmZvLCBwcmludFN1Y2Nlc3MgfSBmcm9tICcuLi91dGlscy9vdXRwdXQtdXRpbHMuanMnO1xuXG5jb25zdCB7IGJvbGQsIGN5YW4sIGRpbSwgZ3JlZW4gfSA9IHBpY287XG5cbi8qKlxuICogUmVnaXN0ZXJzIHRoZSBgbG9naW5gIGNvbW1hbmQgd2l0aCB0aGUgQ0xJIHByb2dyYW0uXG4gKlxuICogU2lnbnMgaW4gd2l0aCB0aGUgT0F1dGggMi4wIGRldmljZSBhdXRob3JpemF0aW9uIGdyYW50IChSRkMgODYyOCk6IHRoZSBDTElcbiAqIHNob3dzIGEgc2hvcnQgY29kZSwgdGhlIHBlcnNvbiBhcHByb3ZlcyBpdCBpbiBhIGJyb3dzZXIsIGFuZCB0aGUgQ0xJIHJlY2VpdmVzXG4gKiBhbiBvcmRpbmFyeSBzZXNzaW9uLiBUaGVyZSBpcyBubyBwYXNzd29yZCBmbGFnIGFuZCBubyB3YXkgdG8gaGFuZCB0aGUgQ0xJIGFcbiAqIHJlZnJlc2ggdG9rZW4g4oCUIGJvdGggZW5kIHVwIGluIHNoZWxsIGhpc3RvcnksIGBwc2Agb3V0cHV0IGFuZCBDSSBsb2dzLCBhbmRcbiAqIGJvdGggc2tpcCB0aGUgU1NPIC8gc3RlcC11cCAvIE1GQSB0aGUgYnJvd3NlciBhbHJlYWR5IGVuZm9yY2VzLlxuICpcbiAqIFRoZSBzZXNzaW9uIGlzIHdyaXR0ZW4gdG8gdGhlIGNyZWRlbnRpYWwgc3RvcmUgKGB+Ly5waXBlbGluZS1tYW5hZ2VyL1xuICogY3JlZGVudGlhbHMuanNvbmAsIG93bmVyLW9ubHkpLCBzbyBzdWJzZXF1ZW50IGNvbW1hbmRzIGF1dGhlbnRpY2F0ZSB3aXRoIG5vXG4gKiBlbnZpcm9ubWVudCB2YXJpYWJsZSBhdCBhbGwuIGBQTEFURk9STV9UT0tFTmAgc3RpbGwgd2lucyB3aGVuIGl0IGlzIHNldCwgd2hpY2hcbiAqIGlzIHdoYXQgQ0kgdXNlcyDigJQgYW4gYWNjZXNzIGtleSBmcm9tIGBhdXRoIHBhdGAuXG4gKlxuICogQHBhcmFtIHByb2dyYW0gLSBUaGUgcm9vdCBDb21tYW5kZXIgcHJvZ3JhbSBpbnN0YW5jZSB0byBhdHRhY2ggdGhlIGNvbW1hbmQgdG8uXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGJhc2hcbiAqIHBpcGVsaW5lLW1hbmFnZXIgYXV0aCBsb2dpblxuICogcGlwZWxpbmUtbWFuYWdlciBhdXRoIGxvZ2luIC0tdXJsIGh0dHBzOi8vcGxhdGZvcm0uZXhhbXBsZS5jb20gLS1vcmcgPG9yZ0lkPlxuICogcGlwZWxpbmUtbWFuYWdlciBhdXRoIGxvZ2luIC0tbm8tYnJvd3NlciAgICAgICMgcHJpbnQgdGhlIFVSTCBpbnN0ZWFkIG9mIG9wZW5pbmcgaXRcbiAqIGV2YWwgJChwaXBlbGluZS1tYW5hZ2VyIGF1dGggbG9naW4gLS1xdWlldCkgICAjIGFsc28gZXhwb3J0IFBMQVRGT1JNX1RPS0VOXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvZ2luKHByb2dyYW06IENvbW1hbmQpOiB2b2lkIHtcbiAgd2l0aFNzbE9wdGlvbnMocHJvZ3JhbVxuICAgIC5jb21tYW5kKCdsb2dpbicpXG4gICAgLmRlc2NyaXB0aW9uKCdTaWduIGluIHRocm91Z2ggeW91ciBicm93c2VyIGFuZCBzdG9yZSB0aGUgc2Vzc2lvbiAoZGV2aWNlIGF1dGhvcml6YXRpb24pJylcbiAgICAub3B0aW9uKCctLW9yZyA8b3JnSWQ+JywgJ1N3aXRjaCB0byBhIHNwZWNpZmljIG9yZ2FuaXphdGlvbiBhZnRlciBzaWduaW5nIGluJylcbiAgICAub3B0aW9uKCctLW5vLWJyb3dzZXInLCAnTmV2ZXIgb3BlbiBhIGJyb3dzZXIg4oCUIHByaW50IHRoZSB2ZXJpZmljYXRpb24gVVJMIGluc3RlYWQnKVxuICAgIC5vcHRpb24oJy0tdXJsIDx1cmw+JywgJ1BsYXRmb3JtIGJhc2UgVVJMJywgcHJvY2Vzcy5lbnYuUExBVEZPUk1fQkFTRV9VUkwgfHwgJ2h0dHBzOi8vbG9jYWxob3N0Ojg0NDMnKSlcbiAgICAub3B0aW9uKCctLXF1aWV0JywgJ09ubHkgcHJpbnQgdGhlIGV4cG9ydCBzdGF0ZW1lbnQgKHVzZWZ1bCBmb3IgZXZhbCknKVxuICAgIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgIGNvbnN0IHF1aWV0ID0gb3B0aW9ucy5xdWlldCA/PyBmYWxzZTtcbiAgICAgIGNvbnN0IGV4ZWN1dGlvbklkID0gcHJpbnRDb21tYW5kSGVhZGVyKCdMb2dpbicsICdQbGF0Zm9ybSBBdXRoZW50aWNhdGlvbicsIHsgcXVpZXQgfSk7XG5cbiAgICAgIC8vIFNFQ1VSSVRZOiB0aGUgcG9sbCByZXR1cm5zIHNlc3Npb24gdG9rZW5zIOKAlCBiZWFyZXIgY3JlZGVudGlhbHMuIE5ldmVyXG4gICAgICAvLyBmZXRjaCB0aGVtIG92ZXIgYW4gdW52ZXJpZmllZCBUTFMgY29ubmVjdGlvbiBpbiBwcm9kdWN0aW9uLlxuICAgICAgYXNzZXJ0Q3JlZGVudGlhbFRsc0FsbG93ZWQob3B0aW9ucy52ZXJpZnlTc2wpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCB0cmFuc3BvcnQgPSB7XG4gICAgICAgICAgdXJsOiBvcHRpb25zLnVybCxcbiAgICAgICAgICBodHRwc0FnZW50OiBjcmVkZW50aWFsSHR0cHNBZ2VudChvcHRpb25zLnZlcmlmeVNzbCksXG4gICAgICAgICAgdGltZW91dDogVElNRU9VVFMuSFRUUF9SRVFVRVNULFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmICghcXVpZXQpIHByaW50SW5mbygnU3RhcnRpbmcgYnJvd3NlciBzaWduLWluJywgeyB1cmw6IG9wdGlvbnMudXJsLCB2ZXJpZnlTc2w6IG9wdGlvbnMudmVyaWZ5U3NsIH0pO1xuXG4gICAgICAgIGNvbnN0IGNvZGUgPSBhd2FpdCByZXF1ZXN0RGV2aWNlQ29kZSh0cmFuc3BvcnQpO1xuICAgICAgICBjb25zdCBhcHByb3ZhbFVybCA9IGNvZGUudmVyaWZpY2F0aW9uX3VyaV9jb21wbGV0ZSB8fCBjb2RlLnZlcmlmaWNhdGlvbl91cmk7XG4gICAgICAgIC8vIGAtLW5vLWJyb3dzZXJgIHNldHMgb3B0aW9ucy5icm93c2VyIHRvIGZhbHNlIChjb21tYW5kZXIncyAtLW5vLSBwYWlyKS5cbiAgICAgICAgY29uc3Qgb3BlbmVkID0gb3B0aW9ucy5icm93c2VyICE9PSBmYWxzZSAmJiBvcGVuSW5Ccm93c2VyKGFwcHJvdmFsVXJsKTtcblxuICAgICAgICAvLyBUaGUgcHJvbXB0IGdvZXMgdG8gU1RERVJSIHVuZGVyIGAtLXF1aWV0YDogc3Rkb3V0IGlzIGNhcHR1cmVkIGJ5XG4gICAgICAgIC8vIGBldmFsICQo4oCmKWAsIHNvIHByaW50aW5nIHRoZSBjb2RlIHRoZXJlIHdvdWxkIHN3YWxsb3cgdGhlIG9uZSB0aGluZ1xuICAgICAgICAvLyB0aGUgdXNlciBoYXMgdG8gcmVhZCBiZWZvcmUgYW55dGhpbmcgY2FuIHByb2NlZWQuXG4gICAgICAgIGNvbnN0IHNheSA9IHF1aWV0ID8gY29uc29sZS5lcnJvciA6IGNvbnNvbGUubG9nO1xuICAgICAgICBzYXkoJycpO1xuICAgICAgICBzYXkoYCAgWW91ciBjb2RlOiAgJHtib2xkKGN5YW4oY29kZS51c2VyX2NvZGUpKX1gKTtcbiAgICAgICAgc2F5KGAgIEFwcHJvdmUgYXQ6ICR7Z3JlZW4oYXBwcm92YWxVcmwpfWApO1xuICAgICAgICBzYXkoJycpO1xuICAgICAgICBzYXkoZGltKG9wZW5lZFxuICAgICAgICAgID8gJyAgT3BlbmluZyB5b3VyIGJyb3dzZXLigKYgYXBwcm92ZSB0aGUgY29kZSB0aGVyZSwgdGhlbiBjb21lIGJhY2suJ1xuICAgICAgICAgIDogJyAgT3BlbiB0aGF0IFVSTCBpbiBhIGJyb3dzZXIsIGNoZWNrIHRoZSBjb2RlIG1hdGNoZXMsIGFuZCBhcHByb3ZlLicpKTtcbiAgICAgICAgaWYgKCFxdWlldCkgcHJpbnRJbmZvKCdXYWl0aW5nIGZvciBhcHByb3ZhbOKApicpO1xuXG4gICAgICAgIGNvbnN0IHNlc3Npb24gPSBhd2FpdCBwb2xsRm9yRGV2aWNlVG9rZW4odHJhbnNwb3J0LCBjb2RlKTtcblxuICAgICAgICBsZXQgYWNjZXNzVG9rZW4gPSBzZXNzaW9uLmFjY2Vzc190b2tlbjtcbiAgICAgICAgbGV0IHJlZnJlc2hUb2tlbiA9IHNlc3Npb24ucmVmcmVzaF90b2tlbjtcbiAgICAgICAgbGV0IGV4cGlyZXNJbiA9IHNlc3Npb24uZXhwaXJlc19pbjtcblxuICAgICAgICAvLyBTd2l0Y2hpbmcgcmUtaXNzdWVzIChhbmQgcm90YXRlcykgdGhlIHNlc3Npb24sIHNvIHRoZSBzdG9yZSBoYXMgdG8gdGFrZVxuICAgICAgICAvLyB0aGUgTkVXIHBhaXIg4oCUIGtlZXBpbmcgdGhlIG9sZCByZWZyZXNoIHRva2VuIHdvdWxkIHN0cmFuZCB0aGUgc2Vzc2lvbi5cbiAgICAgICAgaWYgKG9wdGlvbnMub3JnKSB7XG4gICAgICAgICAgaWYgKCFxdWlldCkgcHJpbnRJbmZvKCdTd2l0Y2hpbmcgdG8gb3JnYW5pemF0aW9uJywgeyBvcmdJZDogb3B0aW9ucy5vcmcgfSk7XG4gICAgICAgICAgY29uc3Qgc3dpdGNoZWQgPSBhd2FpdCBzd2l0Y2hPcmdhbml6YXRpb24oe1xuICAgICAgICAgICAgdXJsOiBvcHRpb25zLnVybCxcbiAgICAgICAgICAgIG9yZ0lkOiBvcHRpb25zLm9yZyxcbiAgICAgICAgICAgIGFjY2Vzc1Rva2VuLFxuICAgICAgICAgICAgaHR0cHNBZ2VudDogdHJhbnNwb3J0Lmh0dHBzQWdlbnQsXG4gICAgICAgICAgICB0aW1lb3V0OiBUSU1FT1VUUy5IVFRQX1JFUVVFU1QsXG4gICAgICAgICAgICBxdWlldCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBhY2Nlc3NUb2tlbiA9IHN3aXRjaGVkLmFjY2Vzc1Rva2VuO1xuICAgICAgICAgIHJlZnJlc2hUb2tlbiA9IHN3aXRjaGVkLnJlZnJlc2hUb2tlbiA/PyByZWZyZXNoVG9rZW47XG4gICAgICAgICAgZXhwaXJlc0luID0gc3dpdGNoZWQuZXhwaXJlc0luID8/IGV4cGlyZXNJbjtcbiAgICAgICAgfVxuXG4gICAgICAgIHNhdmVTZXNzaW9uKG9wdGlvbnMudXJsLCB7XG4gICAgICAgICAgYWNjZXNzVG9rZW4sXG4gICAgICAgICAgLi4uKHJlZnJlc2hUb2tlbiA/IHsgcmVmcmVzaFRva2VuIH0gOiB7fSksXG4gICAgICAgICAgZXhwaXJlc0F0OiBEYXRlLm5vdygpICsgZXhwaXJlc0luICogMTAwMCxcbiAgICAgICAgICAuLi4ob3B0aW9ucy5vcmcgPyB7IG9yZ2FuaXphdGlvbklkOiBvcHRpb25zLm9yZyB9IDoge30pLFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAocXVpZXQpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgZXhwb3J0IFBMQVRGT1JNX1RPS0VOPSR7YWNjZXNzVG9rZW59YCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc29sZS5sb2coJycpO1xuICAgICAgICBwcmludFN1Y2Nlc3MoJ1NpZ25lZCBpbicpO1xuICAgICAgICBjb25zb2xlLmxvZygnJyk7XG4gICAgICAgIHByaW50SW5mbygnVGhlIHNlc3Npb24gaXMgc3RvcmVkIGZvciB0aGlzIHBsYXRmb3JtIOKAlCBvdGhlciBjb21tYW5kcyBwaWNrIGl0IHVwIGF1dG9tYXRpY2FsbHkuJywge1xuICAgICAgICAgIHN0b3JlOiBjcmVkZW50aWFsU3RvcmVQYXRoKCksXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zb2xlLmxvZygnJyk7XG4gICAgICAgIHByaW50SW5mbygnVGlwOiB0byBleHBvcnQgaXQgaW50byB0aGlzIHNoZWxsIGluc3RlYWQ6Jyk7XG4gICAgICAgIGNvbnNvbGUubG9nKGdyZWVuKGAgIGV2YWwgJChwaXBlbGluZS1tYW5hZ2VyIGF1dGggbG9naW4ke29wdGlvbnMub3JnID8gYCAtLW9yZyAke29wdGlvbnMub3JnfWAgOiAnJ30gLS1xdWlldClgKSk7XG4gICAgICAgIGNvbnNvbGUubG9nKCcnKTtcbiAgICAgICAgcHJpbnRJbmZvKCdTaWduIHRoaXMgZGV2aWNlIG91dCBhZ2FpbiBmcm9tIFNldHRpbmdzIOKGkiBTZXNzaW9ucyBhbmQgZGV2aWNlcy4nKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIERldmljZUF1dGhFcnJvcikge1xuICAgICAgICAgIHByaW50RXJyb3IoYExvZ2luIGZhaWxlZDogJHtlcnJvci5tZXNzYWdlfWAsIHsgcmVhc29uOiBlcnJvci5jb2RlIH0pO1xuICAgICAgICAgIHByb2Nlc3MuZXhpdChFUlJPUl9DT0RFUy5BVVRIRU5USUNBVElPTik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGF4aW9zLmlzQXhpb3NFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICBjb25zdCBzdGF0dXMgPSBlcnJvci5yZXNwb25zZT8uc3RhdHVzO1xuICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSAoZXJyb3IucmVzcG9uc2U/LmRhdGEgYXMgeyBtZXNzYWdlPzogc3RyaW5nIH0pPy5tZXNzYWdlO1xuICAgICAgICAgIHByaW50RXJyb3IoJ0xvZ2luIGZhaWxlZCcsIHsgc3RhdHVzOiBzdGF0dXMgPz8gJ25vIHJlc3BvbnNlJywgLi4uKG1lc3NhZ2UgPyB7IG1lc3NhZ2UgfSA6IHt9KSB9KTtcbiAgICAgICAgICBwcm9jZXNzLmV4aXQoRVJST1JfQ09ERVMuQVVUSEVOVElDQVRJT04pO1xuICAgICAgICB9XG5cbiAgICAgICAgaGFuZGxlRXJyb3IoZXJyb3IsIEVSUk9SX0NPREVTLkFVVEhFTlRJQ0FUSU9OLCB7XG4gICAgICAgICAgZGVidWc6IHByb2dyYW0ub3B0cygpLmRlYnVnLFxuICAgICAgICAgIGV4aXQ6IHRydWUsXG4gICAgICAgICAgY29udGV4dDogeyBjb21tYW5kOiAnbG9naW4nLCBleGVjdXRpb25JZCwgdXJsOiBvcHRpb25zLnVybCB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbn1cbiJdfQ==
@@ -1,12 +1,55 @@
1
+ import { type PluginBaseImage } from '@pipeline-builder/api-core';
1
2
  import { Command } from 'commander';
3
+ export interface NewPluginOptions {
4
+ name?: string;
5
+ category?: string;
6
+ base?: string;
7
+ summary?: string;
8
+ description?: string;
9
+ license?: string;
10
+ icon?: string;
11
+ author?: string;
12
+ type?: string;
13
+ compute?: string;
14
+ dir?: string;
15
+ force?: boolean;
16
+ listBases?: boolean;
17
+ }
18
+ /** A validated scaffold request. */
19
+ export interface ScaffoldInput {
20
+ name: string;
21
+ category: string;
22
+ base: PluginBaseImage;
23
+ summary: string;
24
+ description: string;
25
+ license: string;
26
+ icon: string | null;
27
+ author: string;
28
+ pluginType: string;
29
+ computeType: string;
30
+ year: number;
31
+ }
32
+ /** `my-linter` → `My Linter`. */
33
+ export declare const displayNameOf: (name: string) => string;
34
+ /** Validate the flags into a scaffold request (throws ValidationError). */
35
+ export declare function resolveScaffoldInput(options: NewPluginOptions, now?: Date): ScaffoldInput;
36
+ /** LICENSE: the MIT text in full, else the SPDX notice (Apache-2.0's own recommended form). */
37
+ export declare function licenseText(input: Pick<ScaffoldInput, 'license' | 'year' | 'author'>): string;
38
+ /** Keywords: the category plus the name's words (≤ 10, each ≤ 32, no duplicates). */
39
+ export declare function scaffoldKeywords(name: string, category: string): string[];
40
+ /** Every file of a new plugin, keyed by path relative to the plugin directory. */
41
+ export declare function scaffoldFiles(input: ScaffoldInput, relDir?: string): Record<string, string>;
42
+ /** Print the available plugin bases. */
43
+ export declare function printBases(): void;
2
44
  /**
3
- * Register the `new-plugin` command — scaffold a local plugin directory
4
- * (`config.yaml`, `plugin-spec.yaml`, and a starter `Dockerfile`) that
5
- * `validate-plugin` accepts and `upload-plugin` can package.
45
+ * Register `plugin new` — scaffold a plugin FROM a `pipeline-<eco>-base` image:
46
+ * a Dockerfile that follows the catalog rules, a spec with catalog metadata, a
47
+ * README, a changelog entry and a LICENSE. It passes `plugin validate` and
48
+ * test-plugins.sh's static checks as generated.
6
49
  *
7
50
  * Usage:
8
- * pipeline-manager plugin new --name my-linter --category quality
9
- * pipeline-manager plugin new --name approve --type ManualApprovalStep
51
+ * pipeline-manager plugin new --list-bases
52
+ * pipeline-manager plugin new --name my-linter --category quality --base node
10
53
  */
11
54
  export declare function newPlugin(program: Command): void;
12
55
  //# sourceMappingURL=new-plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"new-plugin.d.ts","sourceRoot":"","sources":["../../src/commands/new-plugin.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2GhD"}
1
+ {"version":3,"file":"new-plugin.d.ts","sourceRoot":"","sources":["../../src/commands/new-plugin.ts"],"names":[],"mappings":"AAKA,OAAO,EAEkC,KAAK,eAAe,EAC5D,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,oCAAoC;AACpC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,iCAAiC;AACjC,eAAO,MAAM,aAAa,SAAU,MAAM,KAAG,MACyC,CAAC;AAKvF,2EAA2E;AAC3E,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,OAAa,GAAG,aAAa,CA2C/F;AAyBD,+FAA+F;AAC/F,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC,GAAG,MAAM,CA2B7F;AAED,qFAAqF;AACrF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAEzE;AA2HD,kFAAkF;AAClF,wBAAgB,aAAa,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,SAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAYtG;AAED,wCAAwC;AACxC,wBAAgB,UAAU,IAAI,IAAI,CAGjC;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8ChD"}