@pagopa/dx-cli 0.24.0 → 0.25.1

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 (32) hide show
  1. package/README.md +14 -0
  2. package/bin/index.js +13 -3
  3. package/dist/adapters/azure/cloud-account-service.js +169 -92
  4. package/dist/adapters/azure/locations.d.ts +5 -1
  5. package/dist/adapters/azure/locations.js +1 -1
  6. package/dist/adapters/azure-monitor/instrumentation.d.ts +26 -0
  7. package/dist/adapters/azure-monitor/instrumentation.js +84 -0
  8. package/dist/adapters/azure-monitor/telemetry.d.ts +19 -0
  9. package/dist/adapters/azure-monitor/telemetry.js +28 -0
  10. package/dist/adapters/commander/commands/add.d.ts +32 -7
  11. package/dist/adapters/commander/commands/add.js +197 -15
  12. package/dist/adapters/commander/commands/doctor.js +4 -1
  13. package/dist/adapters/commander/commands/init.js +64 -15
  14. package/dist/adapters/github/github-repo.js +20 -2
  15. package/dist/adapters/octokit/index.d.ts +12 -0
  16. package/dist/adapters/octokit/index.js +26 -2
  17. package/dist/adapters/plop/actions/setup-pnpm.js +5 -1
  18. package/dist/adapters/plop/actions/sync-repository-environments.d.ts +15 -0
  19. package/dist/adapters/plop/actions/sync-repository-environments.js +98 -0
  20. package/dist/adapters/plop/generators/environment/actions.js +4 -1
  21. package/dist/adapters/plop/generators/environment/index.d.ts +3 -3
  22. package/dist/adapters/plop/generators/environment/index.js +6 -3
  23. package/dist/adapters/plop/generators/environment/prompts.d.ts +38 -0
  24. package/dist/adapters/plop/generators/environment/prompts.js +236 -91
  25. package/dist/adapters/plop/index.d.ts +3 -3
  26. package/dist/adapters/plop/index.js +5 -5
  27. package/dist/domain/authorization.js +4 -4
  28. package/dist/domain/environment.d.ts +6 -1
  29. package/dist/domain/environment.js +1 -1
  30. package/dist/index.js +132 -8
  31. package/package.json +24 -16
  32. package/templates/environment/workflow/_release-terraform-apply-bootstrapper-{{env.name}}.yaml.hbs +145 -2
@@ -96,8 +96,8 @@ export const runMonorepoActions = async (generator, payload) => {
96
96
  * uses the explicitly passed repository. When omitted (by add command),
97
97
  * the generator infers it from the local git context.
98
98
  */
99
- export const collectDeploymentEnvironmentPayload = async (plop, gitHubService, github) => {
100
- setDeploymentEnvironmentGenerator(plop, gitHubService, github);
99
+ export const collectDeploymentEnvironmentPayload = async (plop, gitHubService, github, initialAnswers = {}) => {
100
+ setDeploymentEnvironmentGenerator(plop, gitHubService, github, initialAnswers);
101
101
  const generator = plop.getGenerator(PLOP_ENVIRONMENT_GENERATOR_NAME);
102
102
  const answers = await generator.runPrompts();
103
103
  const payload = environmentPayloadSchema.parse(answers);
@@ -122,10 +122,10 @@ export const runDeploymentEnvironmentActions = async (generator, payload) => {
122
122
  * uses the explicitly passed repository. When omitted (by add command),
123
123
  * the generator infers it from the local git context.
124
124
  */
125
- export const setDeploymentEnvironmentGenerator = (plop, gitHubService, github) => {
125
+ export const setDeploymentEnvironmentGenerator = (plop, gitHubService, github, initialAnswers = {}) => {
126
126
  const credential = new AzureCliCredential();
127
127
  const cloudAccountRepository = new AzureSubscriptionRepository(credential);
128
128
  const cloudAccountService = new AzureCloudAccountService(credential);
129
- createDeploymentEnvironmentGenerator(plop, resolveTemplatesPath("environment"), cloudAccountRepository, cloudAccountService, gitHubService, github);
129
+ createDeploymentEnvironmentGenerator(plop, resolveTemplatesPath("environment"), cloudAccountRepository, cloudAccountService, gitHubService, github, initialAnswers);
130
130
  };
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWRhcHRlcnMvcGxvcC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFN0MsT0FBTyxRQUFRLE1BQU0sV0FBVyxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFHbEMsT0FBTyxFQUFpQix1QkFBdUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzdFLE9BQU8sb0NBQW9DLEVBQUUsRUFFM0MsYUFBYSxJQUFJLHdCQUF3QixFQUN6QywrQkFBK0IsR0FDaEMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNqRCxPQUFPLHVCQUF1QixFQUFFLEVBRTlCLGFBQWEsSUFBSSxxQkFBcUIsRUFDdEMsNEJBQTRCLEdBQzdCLE1BQU0sc0NBQXNDLENBQUM7QUFDOUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFM0QsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FDbEMsSUFBaUIsRUFDakIsaUJBQTJDLEVBQUUsRUFDN0MsRUFBRTtJQUNGLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUNoRSx1QkFBdUIsQ0FDckIsSUFBSSxFQUNKLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxFQUNoQyxPQUFPLEVBQ1AsY0FBYyxDQUNmLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLGVBQWUs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QU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFHLENBQy9DLElBQWlCLEVBQ2pCLGFBQTRCLEVBQzVCLE1BQW1CLEVBQ25CLEVBQUU7SUFDRixNQUFNLFVBQVUsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7SUFDNUMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLDJCQUEyQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzNFLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSx3QkFBd0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUVyRSxvQ0FBb0MsQ0FDbEMsSUFBSSxFQUNKLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxFQUNuQyxzQkFBc0IsRUFDdEIsbUJBQW1CLEVBQ25CLGFBQWEsRUFDYixNQUFNLENBQ1AsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTm9kZVBsb3BBUEksIFBsb3BHZW5lcmF0b3IgfSBmcm9tIFwicGxvcFwiO1xuXG5pbXBvcnQgeyBBenVyZUNsaUNyZWRlbnRpYWwgfSBmcm9tIFwiQGF6dXJlL2lkZW50aXR5XCI7XG5pbXBvcnQgeyBnZXRMb2dnZXIgfSBmcm9tIFwiQGxvZ3RhcGUvbG9ndGFwZVwiO1xuaW1wb3J0IHsgQW5zd2VycyB9IGZyb20gXCJpbnF1aXJlclwiO1xuaW1wb3J0IG5vZGVQbG9wIGZyb20gXCJub2RlLXBsb3BcIjtcbmltcG9ydCB7IE9jdG9raXQgfSBmcm9tIFwib2N0b2tpdFwiO1xuXG5pbXBvcnQgeyBHaXRIdWJSZXBvIH0gZnJvbSBcIi4uLy4uL2RvbWFpbi9naXRodWItcmVwby5qc1wiO1xuaW1wb3J0IHsgR2l0SHViU2VydmljZSwgUmVwb3NpdG9yeU5vdEZvdW5kRXJyb3IgfSBmcm9tIFwiLi4vLi4vZG9tYWluL2dpdGh1Yi5qc1wiO1xuaW1wb3J0IHsgQXp1cmVTdWJzY3JpcHRpb25SZXBvc2l0b3J5IH0gZnJvbSBcIi4uL2F6dXJlL2Nsb3VkLWFjY291bnQtcmVwb3NpdG9yeS5qc1wiO1xuaW1wb3J0IHsgQXp1cmVDbG91ZEFjY291bnRTZXJ2aWNlIH0gZnJvbSBcIi4uL2F6dXJlL2Nsb3VkLWFjY291bnQtc2VydmljZS5qc1wiO1xuaW1wb3J0IGNyZWF0ZURlcGxveW1lbnRFbnZpcm9ubWVudEdlbmVyYXRvciwge1xuICBQYXlsb2FkIGFzIEVudmlyb25tZW50UGF5bG9hZCxcbiAgcGF5bG9hZFNjaGVtYSBhcyBlbnZpcm9ubWVudFBheWxvYWRTY2hlbWEsXG4gIFBMT1BfRU5WSVJPTk1FTlRfR0VORVJBVE9SX05BTUUsXG59IGZyb20gXCIuLi9wbG9wL2dlbmVyYXRvcnMvZW52aXJvbm1lbnQvaW5kZXguanNcIjtcbmltcG9ydCBjcmVhdGVNb25vcmVwb0dlbmVyYXRvciwge1xuICBQYXlsb2FkIGFzIE1vbm9yZXBvUGF5bG9hZCxcbiAgcGF5bG9hZFNjaGVtYSBhcyBtb25vcmVwb1BheWxvYWRTY2hlbWEsXG4gIFBMT1BfTU9OT1JFUE9fR0VORVJBVE9SX05BTUUsXG59IGZyb20gXCIuLi9wbG9wL2dlbmVyYXRvcnMvbW9ub3JlcG8vaW5kZXguanNcIjtcbmltcG9ydCB7IHJlc29sdmVUZW1wbGF0ZXNQYXRoIH0gZnJvbSBcIi4vdGVtcGxhdGVzLXBhdGguanNcIjtcblxuZXhwb3J0IGNvbnN0IHNldE1vbm9yZXBvR2VuZXJhdG9yID0gKFxuICBwbG9wOiBOb2RlUGxvcEFQSSxcbiAgaW5pdGlhbEFuc3dlcnM6IFBhcnRpYWw8TW9ub3JlcG9QYXlsb2FkPiA9IHt9LFxuKSA9PiB7XG4gIGNvbnN0IG9jdG9raXQgPSBuZXcgT2N0b2tpdCh7IGF1dGg6IHByb2Nlc3MuZW52LkdJVEhVQl9UT0tFTiB9KTtcbiAgY3JlYXRlTW9ub3JlcG9HZW5lcmF0b3IoXG4gICAgcGxvcCxcbiAgICByZXNvbHZlVGVtcGxhdGVzUGF0aChcIm1vbm9yZXBvXCIpLFxuICAgIG9jdG9raXQsXG4gICAgaW5pdGlhbEFuc3dlcnMsXG4gICk7XG59O1xuXG5jb25zdCB2YWxpZGF0ZVBheWxvYWQgPSBhc3luYyAoXG4gIHBheWxvYWQ6IE1vbm9yZXBvUGF5bG9hZCxcbiAgZ2l0aHViOiBHaXRIdWJTZXJ2aWNlLFxuKSA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgcmVwbyA9IGF3YWl0IGdpdGh1Yi5nZXRSZXBvc2l0b3J5KFxuICAgICAgcGF5bG9hZC5yZXBvT3duZXIsXG4gICAgICBwYXlsb2FkLnJlcG9OYW1lLFxuICAgICk7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBSZXBvc2l0b3J5ICR7cmVwby5mdWxsTmFtZX0gYWxyZWFkeSBleGlzdHMuYCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgaWYgKCEoZXJyb3IgaW5zdGFuY2VvZiBSZXBvc2l0b3J5Tm90Rm91bmRFcnJvcikpIHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGdldFBsb3BJbnN0YW5jZSA9IGFzeW5jICgpOiBQcm9taXNlPE5vZGVQbG9wQVBJPiA9PiBub2RlUGxvcCgpO1xuXG5leHBvcnQgY29uc3QgcnVuQWN0aW9ucyA9IGFzeW5jIChcbiAgZ2VuZXJhdG9yOiBQbG9wR2VuZXJhdG9yLFxuICBwYXlsb2FkOiBBbnN3ZXJzLFxuKSA9PiB7XG4gIGNvbnN0IGxvZ2dlciA9IGdldExvZ2dlcihbXCJkeC1jbGlcIiwgXCJpbml0XCJdKTtcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZ2VuZXJhdG9yLnJ1bkFjdGlvbnMocGF5bG9hZCk7XG4gIGlmIChyZXN1bHQuZmFpbHVyZXMubGVuZ3RoID4gMCkge1xuICAgIC8vIENvbGxlY3QgZXZlcnkgZmFpbHVyZSB0byByZXBvcnQgcmljaCBjb250ZXh0LiBub2RlLXBsb3AncyBmYWlsdXJlXG4gICAgLy8gb2JqZWN0cyBoYXZlIHNoYXBlIGB7IHR5cGUsIHBhdGgsIGVycm9yIH1gICh0aGUgYGVycm9yYCBwcm9wZXJ0eSBob2xkc1xuICAgIC8vIHRoZSBvcmlnaW5hbCBlcnJvcidzIG1lc3NhZ2Ug4oCUIHNlZSBub2RlLXBsb3AncyBnZW5lcmF0b3ItcnVubmVyLmpzKS5cbiAgICBjb25zdCByZWxldmFudCA9IHJlc3VsdC5mYWlsdXJlcy5maWx0ZXIoXG4gICAgICAoZmFpbHVyZSkgPT4gZmFpbHVyZS5lcnJvciAhPT0gXCJBYm9ydGVkIGR1ZSB0byBwcmV2aW91cyBhY3Rpb24gZmFpbHVyZVwiLFxuICAgICk7XG4gICAgaWYgKHJlbGV2YW50Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzdW1tYXJ5ID0gcmVsZXZhbnRcbiAgICAgIC5tYXAoXG4gICAgICAgIChmYWlsdXJlKSA9PlxuICAgICAgICAgIGAke2ZhaWx1cmUudHlwZSB8fCBcImFjdGlvblwifTogJHtmYWlsdXJlLmVycm9yID8/IFwidW5rbm93biBlcnJvclwifWAsXG4gICAgICApXG4gICAgICAuam9pbihcIjsgXCIpO1xuICAgIGZvciAoY29uc3QgZmFpbHVyZSBvZiByZWxldmFudCkge1xuICAgICAgbG9nZ2VyLmVycm9yKFwiRXJyb3Igb24ge3R5cGV9IHN0ZXA6IHtlcnJvcn1cIiwge1xuICAgICAgICBlcnJvcjogZmFpbHVyZS5lcnJvciA/PyBcInVua25vd24gZXJyb3JcIixcbiAgICAgICAgdHlwZTogZmFpbHVyZS50eXBlIHx8IFwiYWN0aW9uXCIsXG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYE9uZSBvciBtb3JlIGFjdGlvbnMgZmFpbGVkIGR1cmluZyBnZW5lcmF0aW9uICgke3N1bW1hcnl9KS5gLFxuICAgICk7XG4gIH1cbn07XG5cbi8qKlxuICogQ29sbGVjdCB0aGUgbW9ub3JlcG8gcGF5bG9hZCBieSBydW5uaW5nIHRoZSBnZW5lcmF0b3IncyBpbnRlcmFjdGl2ZSBwcm9tcHRzLlxuICpcbiAqIFRoaXMgcGhhc2UgTVVTVCBydW4gb3V0c2lkZSBhbnkgc3Bpbm5lcjogYSBzcGlubmVyIChlLmcuIG9yYSkgb2NjdXBpZXMgdGhlXG4gKiBUVFkgYW5kIHByZXZlbnRzIHRoZSBpbnF1aXJlciBwcm9tcHRzIGZyb20gYmVpbmcgcmVuZGVyZWQuIENhbGxlcnMgc2hvdWxkXG4gKiB0cmFjayBvbmx5IHRoZSBzdWJzZXF1ZW50IHtAbGluayBydW5Nb25vcmVwb0FjdGlvbnN9IHBoYXNlLCB3aGljaCBpc1xuICogbm9uLWludGVyYWN0aXZlLlxuICovXG5leHBvcnQgY29uc3QgY29sbGVjdE1vbm9yZXBvUGF5bG9hZCA9IGFzeW5jIChcbiAgcGxvcDogTm9kZVBsb3BBUEksXG4gIGdpdGh1YlNlcnZpY2U6IEdpdEh1YlNlcnZpY2UsXG4gIGluaXRpYWxBbnN3ZXJzOiBQYXJ0aWFsPE1vbm9yZXBvUGF5bG9hZD4gPSB7fSxcbik6IFByb21pc2U8eyBnZW5lcmF0b3I6IFBsb3BHZW5lcmF0b3I7IHBheWxvYWQ6IE1vbm9yZXBvUGF5bG9hZCB9PiA9PiB7XG4gIHNldE1vbm9yZXBvR2VuZXJhdG9yKHBsb3AsIGluaXRpYWxBbnN3ZXJzKTtcbiAgY29uc3QgZ2VuZXJhdG9yID0gcGxvcC5nZXRHZW5lcmF0b3IoUExPUF9NT05PUkVQT19HRU5FUkFUT1JfTkFNRSk7XG4gIGNvbnN0IGFuc3dlcnMgPSBhd2FpdCBnZW5lcmF0b3IucnVuUHJvbXB0cygpO1xuICBjb25zdCBwYXlsb2FkUmVzdWx0ID0gbW9ub3JlcG9QYXlsb2FkU2NoZW1hLnNhZmVQYXJzZSh7XG4gICAgLi4uaW5pdGlhbEFuc3dlcnMsXG4gICAgLi4uYW5zd2VycyxcbiAgfSk7XG4gIGlmICghcGF5bG9hZFJlc3VsdC5zdWNjZXNzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBtb25vcmVwbyBnZW5lcmF0b3IgYW5zd2Vyc1wiLCB7XG4gICAgICBjYXVzZTogcGF5bG9hZFJlc3VsdC5lcnJvcixcbiAgICB9KTtcbiAgfVxuICBjb25zdCBwYXlsb2FkID0gcGF5bG9hZFJlc3VsdC5kYXRhO1xuICBhd2FpdCB2YWxpZGF0ZVBheWxvYWQocGF5bG9hZCwgZ2l0aHViU2VydmljZSk7XG4gIHJldHVybiB7IGdlbmVyYXRvciwgcGF5bG9hZCB9O1xufTtcblxuLyoqXG4gKiBFeGVjdXRlIHRoZSBtb25vcmVwbyBnZW5lcmF0b3IgYWN0aW9ucyBmb3IgYW4gYWxyZWFkeS1jb2xsZWN0ZWQgcGF5bG9hZC5cbiAqXG4gKiBUaGlzIHBoYXNlIGlzIG5vbi1pbnRlcmFjdGl2ZSwgc28gY2FsbGVycyBhcmUgZnJlZSB0byB3cmFwIGl0IGluIGEgc3Bpbm5lclxuICogb3Igb3RoZXIgcHJvZ3Jlc3MgaW5kaWNhdG9yLlxuICovXG5leHBvcnQgY29uc3QgcnVuTW9ub3JlcG9BY3Rpb25zID0gYXN5bmMgKFxuICBnZW5lcmF0b3I6IFBsb3BHZW5lcmF0b3IsXG4gIHBheWxvYWQ6IE1vbm9yZXBvUGF5bG9hZCxcbik6IFByb21pc2U8TW9ub3JlcG9QYXlsb2FkPiA9PiB7XG4gIGF3YWl0IHJ1bkFjdGlvbnMoZ2VuZXJhdG9yLCBwYXlsb2FkKTtcbiAgcmV0dXJuIHBheWxvYWQ7XG59O1xuXG4vKipcbiAqIENvbGxlY3QgdGhlIGRlcGxveW1lbnQgZW52aXJvbm1lbnQgcGF5bG9hZCBieSBydW5uaW5nIHRoZSBnZW5lcmF0b3Inc1xuICogaW50ZXJhY3RpdmUgcHJvbXB0cy5cbiAqXG4gKiBMaWtlIHtAbGluayBjb2xsZWN0TW9ub3JlcG9QYXlsb2FkfSwgdGhpcyBwaGFzZSBNVVNUIHJ1biBvdXRzaWRlIGFueSBzcGlubmVyOlxuICogYSBzcGlubmVyIChlLmcuIG9yYSkgb2NjdXBpZXMgdGhlIFRUWSBhbmQgcHJldmVudHMgdGhlIGlucXVpcmVyIHByb21wdHMgZnJvbVxuICogYmVpbmcgcmVuZGVyZWQuIENhbGxlcnMgc2hvdWxkIHRyYWNrIG9ubHkgdGhlIHN1YnNlcXVlbnRcbiAqIHtAbGluayBydW5EZXBsb3ltZW50RW52aXJvbm1lbnRBY3Rpb25zfSBwaGFzZSwgd2hpY2ggaXMgbm9uLWludGVyYWN0aXZlLlxuICpcbiAqIEBwYXJhbSBwbG9wIC0gVGhlIHBsb3AgaW5zdGFuY2VcbiAqIEBwYXJhbSBnaXRodWIgLSBPcHRpb25hbCBHaXRIdWIgcmVwb3NpdG9yeSBpbmZvLiBXaGVuIHByb3ZpZGVkIChieSBpbml0IGNvbW1hbmQpLFxuICogICAgICAgICAgICAgICAgIHVzZXMgdGhlIGV4cGxpY2l0bHkgcGFzc2VkIHJlcG9zaXRvcnkuIFdoZW4gb21pdHRlZCAoYnkgYWRkIGNvbW1hbmQpLFxuICogICAgICAgICAgICAgICAgIHRoZSBnZW5lcmF0b3IgaW5mZXJzIGl0IGZyb20gdGhlIGxvY2FsIGdpdCBjb250ZXh0LlxuICovXG5leHBvcnQgY29uc3QgY29sbGVjdERlcGxveW1lbnRFbnZpcm9ubWVudFBheWxvYWQgPSBhc3luYyAoXG4gIHBsb3A6IE5vZGVQbG9wQVBJLFxuICBnaXRIdWJTZXJ2aWNlOiBHaXRIdWJTZXJ2aWNlLFxuICBnaXRodWI/OiBHaXRIdWJSZXBvLFxuKTogUHJvbWlzZTx7IGdlbmVyYXRvcjogUGxvcEdlbmVyYXRvcjsgcGF5bG9hZDogRW52aXJvbm1lbnRQYXlsb2FkIH0+ID0+IHtcbiAgc2V0RGVwbG95bWVudEVudmlyb25tZW50R2VuZXJhdG9yKHBsb3AsIGdpdEh1YlNlcnZpY2UsIGdpdGh1Yik7XG4gIGNvbnN0IGdlbmVyYXRvciA9IHBsb3AuZ2V0R2VuZXJhdG9yKFBMT1BfRU5WSVJPTk1FTlRfR0VORVJBVE9SX05BTUUpO1xuICBjb25zdCBhbnN3ZXJzID0gYXdhaXQgZ2VuZXJhdG9yLnJ1blByb21wdHMoKTtcbiAgY29uc3QgcGF5bG9hZCA9IGVudmlyb25tZW50UGF5bG9hZFNjaGVtYS5wYXJzZShhbnN3ZXJzKTtcbiAgcmV0dXJuIHsgZ2VuZXJhdG9yLCBwYXlsb2FkIH07XG59O1xuXG4vKipcbiAqIEV4ZWN1dGUgdGhlIGRlcGxveW1lbnQgZW52aXJvbm1lbnQgZ2VuZXJhdG9yIGFjdGlvbnMgZm9yIGFuIGFscmVhZHktY29sbGVjdGVkXG4gKiBwYXlsb2FkLlxuICpcbiAqIFRoaXMgcGhhc2UgaXMgbm9uLWludGVyYWN0aXZlLCBzbyBjYWxsZXJzIGFyZSBmcmVlIHRvIHdyYXAgaXQgaW4gYSBzcGlubmVyIG9yXG4gKiBvdGhlciBwcm9ncmVzcyBpbmRpY2F0b3IuXG4gKi9cbmV4cG9ydCBjb25zdCBydW5EZXBsb3ltZW50RW52aXJvbm1lbnRBY3Rpb25zID0gYXN5bmMgKFxuICBnZW5lcmF0b3I6IFBsb3BHZW5lcmF0b3IsXG4gIHBheWxvYWQ6IEVudmlyb25tZW50UGF5bG9hZCxcbik6IFByb21pc2U8RW52aXJvbm1lbnRQYXlsb2FkPiA9PiB7XG4gIGF3YWl0IHJ1bkFjdGlvbnMoZ2VuZXJhdG9yLCBwYXlsb2FkKTtcbiAgcmV0dXJuIHBheWxvYWQ7XG59O1xuXG4vKipcbiAqIENvbmZpZ3VyZSB0aGUgZGVwbG95bWVudCBlbnZpcm9ubWVudCBnZW5lcmF0b3JcbiAqXG4gKiBAcGFyYW0gcGxvcCAtIFRoZSBwbG9wIGluc3RhbmNlXG4gKiBAcGFyYW0gZ2l0aHViIC0gT3B0aW9uYWwgR2l0SHViIHJlcG9zaXRvcnkgaW5mby4gV2hlbiBwcm92aWRlZCAoYnkgaW5pdCBjb21tYW5kKSxcbiAqICAgICAgICAgICAgICAgICB1c2VzIHRoZSBleHBsaWNpdGx5IHBhc3NlZCByZXBvc2l0b3J5LiBXaGVuIG9taXR0ZWQgKGJ5IGFkZCBjb21tYW5kKSxcbiAqICAgICAgICAgICAgICAgICB0aGUgZ2VuZXJhdG9yIGluZmVycyBpdCBmcm9tIHRoZSBsb2NhbCBnaXQgY29udGV4dC5cbiAqL1xuZXhwb3J0IGNvbnN0IHNldERlcGxveW1lbnRFbnZpcm9ubWVudEdlbmVyYXRvciA9IChcbiAgcGxvcDogTm9kZVBsb3BBUEksXG4gIGdpdEh1YlNlcnZpY2U6IEdpdEh1YlNlcnZpY2UsXG4gIGdpdGh1Yj86IEdpdEh1YlJlcG8sXG4pID0+IHtcbiAgY29uc3QgY3JlZGVudGlhbCA9IG5ldyBBenVyZUNsaUNyZWRlbnRpYWwoKTtcbiAgY29uc3QgY2xvdWRBY2NvdW50UmVwb3NpdG9yeSA9IG5ldyBBenVyZVN1YnNjcmlwdGlvblJlcG9zaXRvcnkoY3JlZGVudGlhbCk7XG4gIGNvbnN0IGNsb3VkQWNjb3VudFNlcnZpY2UgPSBuZXcgQXp1cmVDbG91ZEFjY291bnRTZXJ2aWNlKGNyZWRlbnRpYWwpO1xuXG4gIGNyZWF0ZURlcGxveW1lbnRFbnZpcm9ubWVudEdlbmVyYXRvcihcbiAgICBwbG9wLFxuICAgIHJlc29sdmVUZW1wbGF0ZXNQYXRoKFwiZW52aXJvbm1lbnRcIiksXG4gICAgY2xvdWRBY2NvdW50UmVwb3NpdG9yeSxcbiAgICBjbG91ZEFjY291bnRTZXJ2aWNlLFxuICAgIGdpdEh1YlNlcnZpY2UsXG4gICAgZ2l0aHViLFxuICApO1xufTtcbiJdfQ==
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWRhcHRlcnMvcGxvcC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFN0MsT0FBTyxRQUFRLE1BQU0sV0FBVyxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFHbEMsT0FBTyxFQUFpQix1QkFBdUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzdFLE9BQU8sb0NBQW9DLEVBQUUsRUFHM0MsYUFBYSxJQUFJLHdCQUF3QixFQUN6QywrQkFBK0IsR0FDaEMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNqRCxPQUFPLHVCQUF1QixFQUFFLEVBRTlCLGFBQWEsSUFBSSxxQkFBcUIsRUFDdEMsNEJBQTRCLEdBQzdCLE1BQU0sc0NBQXNDLENBQUM7QUFDOUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFM0QsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FDbEMsSUFBaUIsRUFDakIsaUJBQTJDLEVBQUUsRUFDN0MsRUFBRTtJQUNGLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUNoRSx1QkFBdUIsQ0FDckIsSUFBSSxFQUNKLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxFQUNoQyxPQUFPLEVBQ1AsY0FBYyxDQUNmLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLGVBQWUs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QUFDO0FBRUY7Ozs7Ozs7R0FPRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFHLENBQy9DLElBQWlCLEVBQ2pCLGFBQTRCLEVBQzVCLE1BQW1CLEVBQ25CLGlCQUFzRCxFQUFFLEVBQ3hELEVBQUU7SUFDRixNQUFNLFVBQVUsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7SUFDNUMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLDJCQUEyQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzNFLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSx3QkFBd0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUVyRSxvQ0FBb0MsQ0FDbEMsSUFBSSxFQUNKLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxFQUNuQyxzQkFBc0IsRUFDdEIsbUJBQW1CLEVBQ25CLGFBQWEsRUFDYixNQUFNLEVBQ04sY0FBYyxDQUNmLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE5vZGVQbG9wQVBJLCBQbG9wR2VuZXJhdG9yIH0gZnJvbSBcInBsb3BcIjtcblxuaW1wb3J0IHsgQXp1cmVDbGlDcmVkZW50aWFsIH0gZnJvbSBcIkBhenVyZS9pZGVudGl0eVwiO1xuaW1wb3J0IHsgZ2V0TG9nZ2VyIH0gZnJvbSBcIkBsb2d0YXBlL2xvZ3RhcGVcIjtcbmltcG9ydCB7IEFuc3dlcnMgfSBmcm9tIFwiaW5xdWlyZXJcIjtcbmltcG9ydCBub2RlUGxvcCBmcm9tIFwibm9kZS1wbG9wXCI7XG5pbXBvcnQgeyBPY3Rva2l0IH0gZnJvbSBcIm9jdG9raXRcIjtcblxuaW1wb3J0IHsgR2l0SHViUmVwbyB9IGZyb20gXCIuLi8uLi9kb21haW4vZ2l0aHViLXJlcG8uanNcIjtcbmltcG9ydCB7IEdpdEh1YlNlcnZpY2UsIFJlcG9zaXRvcnlOb3RGb3VuZEVycm9yIH0gZnJvbSBcIi4uLy4uL2RvbWFpbi9naXRodWIuanNcIjtcbmltcG9ydCB7IEF6dXJlU3Vic2NyaXB0aW9uUmVwb3NpdG9yeSB9IGZyb20gXCIuLi9henVyZS9jbG91ZC1hY2NvdW50LXJlcG9zaXRvcnkuanNcIjtcbmltcG9ydCB7IEF6dXJlQ2xvdWRBY2NvdW50U2VydmljZSB9IGZyb20gXCIuLi9henVyZS9jbG91ZC1hY2NvdW50LXNlcnZpY2UuanNcIjtcbmltcG9ydCBjcmVhdGVEZXBsb3ltZW50RW52aXJvbm1lbnRHZW5lcmF0b3IsIHtcbiAgSW5pdGlhbEFuc3dlcnMgYXMgRGVwbG95bWVudEVudmlyb25tZW50SW5pdGlhbEFuc3dlcnMsXG4gIFBheWxvYWQgYXMgRW52aXJvbm1lbnRQYXlsb2FkLFxuICBwYXlsb2FkU2NoZW1hIGFzIGVudmlyb25tZW50UGF5bG9hZFNjaGVtYSxcbiAgUExPUF9FTlZJUk9OTUVOVF9HRU5FUkFUT1JfTkFNRSxcbn0gZnJvbSBcIi4uL3Bsb3AvZ2VuZXJhdG9ycy9lbnZpcm9ubWVudC9pbmRleC5qc1wiO1xuaW1wb3J0IGNyZWF0ZU1vbm9yZXBvR2VuZXJhdG9yLCB7XG4gIFBheWxvYWQgYXMgTW9ub3JlcG9QYXlsb2FkLFxuICBwYXlsb2FkU2NoZW1hIGFzIG1vbm9yZXBvUGF5bG9hZFNjaGVtYSxcbiAgUExPUF9NT05PUkVQT19HRU5FUkFUT1JfTkFNRSxcbn0gZnJvbSBcIi4uL3Bsb3AvZ2VuZXJhdG9ycy9tb25vcmVwby9pbmRleC5qc1wiO1xuaW1wb3J0IHsgcmVzb2x2ZVRlbXBsYXRlc1BhdGggfSBmcm9tIFwiLi90ZW1wbGF0ZXMtcGF0aC5qc1wiO1xuXG5leHBvcnQgY29uc3Qgc2V0TW9ub3JlcG9HZW5lcmF0b3IgPSAoXG4gIHBsb3A6IE5vZGVQbG9wQVBJLFxuICBpbml0aWFsQW5zd2VyczogUGFydGlhbDxNb25vcmVwb1BheWxvYWQ+ID0ge30sXG4pID0+IHtcbiAgY29uc3Qgb2N0b2tpdCA9IG5ldyBPY3Rva2l0KHsgYXV0aDogcHJvY2Vzcy5lbnYuR0lUSFVCX1RPS0VOIH0pO1xuICBjcmVhdGVNb25vcmVwb0dlbmVyYXRvcihcbiAgICBwbG9wLFxuICAgIHJlc29sdmVUZW1wbGF0ZXNQYXRoKFwibW9ub3JlcG9cIiksXG4gICAgb2N0b2tpdCxcbiAgICBpbml0aWFsQW5zd2VycyxcbiAgKTtcbn07XG5cbmNvbnN0IHZhbGlkYXRlUGF5bG9hZCA9IGFzeW5jIChcbiAgcGF5bG9hZDogTW9ub3JlcG9QYXlsb2FkLFxuICBnaXRodWI6IEdpdEh1YlNlcnZpY2UsXG4pID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCByZXBvID0gYXdhaXQgZ2l0aHViLmdldFJlcG9zaXRvcnkoXG4gICAgICBwYXlsb2FkLnJlcG9Pd25lcixcbiAgICAgIHBheWxvYWQucmVwb05hbWUsXG4gICAgKTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFJlcG9zaXRvcnkgJHtyZXBvLmZ1bGxOYW1lfSBhbHJlYWR5IGV4aXN0cy5gKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBpZiAoIShlcnJvciBpbnN0YW5jZW9mIFJlcG9zaXRvcnlOb3RGb3VuZEVycm9yKSkge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UGxvcEluc3RhbmNlID0gYXN5bmMgKCk6IFByb21pc2U8Tm9kZVBsb3BBUEk+ID0+IG5vZGVQbG9wKCk7XG5cbmV4cG9ydCBjb25zdCBydW5BY3Rpb25zID0gYXN5bmMgKFxuICBnZW5lcmF0b3I6IFBsb3BHZW5lcmF0b3IsXG4gIHBheWxvYWQ6IEFuc3dlcnMsXG4pID0+IHtcbiAgY29uc3QgbG9nZ2VyID0gZ2V0TG9nZ2VyKFtcImR4LWNsaVwiLCBcImluaXRcIl0pO1xuICBjb25zdCByZXN1bHQgPSBhd2FpdCBnZW5lcmF0b3IucnVuQWN0aW9ucyhwYXlsb2FkKTtcbiAgaWYgKHJlc3VsdC5mYWlsdXJlcy5sZW5ndGggPiAwKSB7XG4gICAgLy8gQ29sbGVjdCBldmVyeSBmYWlsdXJlIHRvIHJlcG9ydCByaWNoIGNvbnRleHQuIG5vZGUtcGxvcCdzIGZhaWx1cmVcbiAgICAvLyBvYmplY3RzIGhhdmUgc2hhcGUgYHsgdHlwZSwgcGF0aCwgZXJyb3IgfWAgKHRoZSBgZXJyb3JgIHByb3BlcnR5IGhvbGRzXG4gICAgLy8gdGhlIG9yaWdpbmFsIGVycm9yJ3MgbWVzc2FnZSDigJQgc2VlIG5vZGUtcGxvcCdzIGdlbmVyYXRvci1ydW5uZXIuanMpLlxuICAgIGNvbnN0IHJlbGV2YW50ID0gcmVzdWx0LmZhaWx1cmVzLmZpbHRlcihcbiAgICAgIChmYWlsdXJlKSA9PiBmYWlsdXJlLmVycm9yICE9PSBcIkFib3J0ZWQgZHVlIHRvIHByZXZpb3VzIGFjdGlvbiBmYWlsdXJlXCIsXG4gICAgKTtcbiAgICBpZiAocmVsZXZhbnQubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHN1bW1hcnkgPSByZWxldmFudFxuICAgICAgLm1hcChcbiAgICAgICAgKGZhaWx1cmUpID0+XG4gICAgICAgICAgYCR7ZmFpbHVyZS50eXBlIHx8IFwiYWN0aW9uXCJ9OiAke2ZhaWx1cmUuZXJyb3IgPz8gXCJ1bmtub3duIGVycm9yXCJ9YCxcbiAgICAgIClcbiAgICAgIC5qb2luKFwiOyBcIik7XG4gICAgZm9yIChjb25zdCBmYWlsdXJlIG9mIHJlbGV2YW50KSB7XG4gICAgICBsb2dnZXIuZXJyb3IoXCJFcnJvciBvbiB7dHlwZX0gc3RlcDoge2Vycm9yfVwiLCB7XG4gICAgICAgIGVycm9yOiBmYWlsdXJlLmVycm9yID8/IFwidW5rbm93biBlcnJvclwiLFxuICAgICAgICB0eXBlOiBmYWlsdXJlLnR5cGUgfHwgXCJhY3Rpb25cIixcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgT25lIG9yIG1vcmUgYWN0aW9ucyBmYWlsZWQgZHVyaW5nIGdlbmVyYXRpb24gKCR7c3VtbWFyeX0pLmAsXG4gICAgKTtcbiAgfVxufTtcblxuLyoqXG4gKiBDb2xsZWN0IHRoZSBtb25vcmVwbyBwYXlsb2FkIGJ5IHJ1bm5pbmcgdGhlIGdlbmVyYXRvcidzIGludGVyYWN0aXZlIHByb21wdHMuXG4gKlxuICogVGhpcyBwaGFzZSBNVVNUIHJ1biBvdXRzaWRlIGFueSBzcGlubmVyOiBhIHNwaW5uZXIgKGUuZy4gb3JhKSBvY2N1cGllcyB0aGVcbiAqIFRUWSBhbmQgcHJldmVudHMgdGhlIGlucXVpcmVyIHByb21wdHMgZnJvbSBiZWluZyByZW5kZXJlZC4gQ2FsbGVycyBzaG91bGRcbiAqIHRyYWNrIG9ubHkgdGhlIHN1YnNlcXVlbnQge0BsaW5rIHJ1bk1vbm9yZXBvQWN0aW9uc30gcGhhc2UsIHdoaWNoIGlzXG4gKiBub24taW50ZXJhY3RpdmUuXG4gKi9cbmV4cG9ydCBjb25zdCBjb2xsZWN0TW9ub3JlcG9QYXlsb2FkID0gYXN5bmMgKFxuICBwbG9wOiBOb2RlUGxvcEFQSSxcbiAgZ2l0aHViU2VydmljZTogR2l0SHViU2VydmljZSxcbiAgaW5pdGlhbEFuc3dlcnM6IFBhcnRpYWw8TW9ub3JlcG9QYXlsb2FkPiA9IHt9LFxuKTogUHJvbWlzZTx7IGdlbmVyYXRvcjogUGxvcEdlbmVyYXRvcjsgcGF5bG9hZDogTW9ub3JlcG9QYXlsb2FkIH0+ID0+IHtcbiAgc2V0TW9ub3JlcG9HZW5lcmF0b3IocGxvcCwgaW5pdGlhbEFuc3dlcnMpO1xuICBjb25zdCBnZW5lcmF0b3IgPSBwbG9wLmdldEdlbmVyYXRvcihQTE9QX01PTk9SRVBPX0dFTkVSQVRPUl9OQU1FKTtcbiAgY29uc3QgYW5zd2VycyA9IGF3YWl0IGdlbmVyYXRvci5ydW5Qcm9tcHRzKCk7XG4gIGNvbnN0IHBheWxvYWRSZXN1bHQgPSBtb25vcmVwb1BheWxvYWRTY2hlbWEuc2FmZVBhcnNlKHtcbiAgICAuLi5pbml0aWFsQW5zd2VycyxcbiAgICAuLi5hbnN3ZXJzLFxuICB9KTtcbiAgaWYgKCFwYXlsb2FkUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIG1vbm9yZXBvIGdlbmVyYXRvciBhbnN3ZXJzXCIsIHtcbiAgICAgIGNhdXNlOiBwYXlsb2FkUmVzdWx0LmVycm9yLFxuICAgIH0pO1xuICB9XG4gIGNvbnN0IHBheWxvYWQgPSBwYXlsb2FkUmVzdWx0LmRhdGE7XG4gIGF3YWl0IHZhbGlkYXRlUGF5bG9hZChwYXlsb2FkLCBnaXRodWJTZXJ2aWNlKTtcbiAgcmV0dXJuIHsgZ2VuZXJhdG9yLCBwYXlsb2FkIH07XG59O1xuXG4vKipcbiAqIEV4ZWN1dGUgdGhlIG1vbm9yZXBvIGdlbmVyYXRvciBhY3Rpb25zIGZvciBhbiBhbHJlYWR5LWNvbGxlY3RlZCBwYXlsb2FkLlxuICpcbiAqIFRoaXMgcGhhc2UgaXMgbm9uLWludGVyYWN0aXZlLCBzbyBjYWxsZXJzIGFyZSBmcmVlIHRvIHdyYXAgaXQgaW4gYSBzcGlubmVyXG4gKiBvciBvdGhlciBwcm9ncmVzcyBpbmRpY2F0b3IuXG4gKi9cbmV4cG9ydCBjb25zdCBydW5Nb25vcmVwb0FjdGlvbnMgPSBhc3luYyAoXG4gIGdlbmVyYXRvcjogUGxvcEdlbmVyYXRvcixcbiAgcGF5bG9hZDogTW9ub3JlcG9QYXlsb2FkLFxuKTogUHJvbWlzZTxNb25vcmVwb1BheWxvYWQ+ID0+IHtcbiAgYXdhaXQgcnVuQWN0aW9ucyhnZW5lcmF0b3IsIHBheWxvYWQpO1xuICByZXR1cm4gcGF5bG9hZDtcbn07XG5cbi8qKlxuICogQ29sbGVjdCB0aGUgZGVwbG95bWVudCBlbnZpcm9ubWVudCBwYXlsb2FkIGJ5IHJ1bm5pbmcgdGhlIGdlbmVyYXRvcidzXG4gKiBpbnRlcmFjdGl2ZSBwcm9tcHRzLlxuICpcbiAqIExpa2Uge0BsaW5rIGNvbGxlY3RNb25vcmVwb1BheWxvYWR9LCB0aGlzIHBoYXNlIE1VU1QgcnVuIG91dHNpZGUgYW55IHNwaW5uZXI6XG4gKiBhIHNwaW5uZXIgKGUuZy4gb3JhKSBvY2N1cGllcyB0aGUgVFRZIGFuZCBwcmV2ZW50cyB0aGUgaW5xdWlyZXIgcHJvbXB0cyBmcm9tXG4gKiBiZWluZyByZW5kZXJlZC4gQ2FsbGVycyBzaG91bGQgdHJhY2sgb25seSB0aGUgc3Vic2VxdWVudFxuICoge0BsaW5rIHJ1bkRlcGxveW1lbnRFbnZpcm9ubWVudEFjdGlvbnN9IHBoYXNlLCB3aGljaCBpcyBub24taW50ZXJhY3RpdmUuXG4gKlxuICogQHBhcmFtIHBsb3AgLSBUaGUgcGxvcCBpbnN0YW5jZVxuICogQHBhcmFtIGdpdGh1YiAtIE9wdGlvbmFsIEdpdEh1YiByZXBvc2l0b3J5IGluZm8uIFdoZW4gcHJvdmlkZWQgKGJ5IGluaXQgY29tbWFuZCksXG4gKiAgICAgICAgICAgICAgICAgdXNlcyB0aGUgZXhwbGljaXRseSBwYXNzZWQgcmVwb3NpdG9yeS4gV2hlbiBvbWl0dGVkIChieSBhZGQgY29tbWFuZCksXG4gKiAgICAgICAgICAgICAgICAgdGhlIGdlbmVyYXRvciBpbmZlcnMgaXQgZnJvbSB0aGUgbG9jYWwgZ2l0IGNvbnRleHQuXG4gKi9cbmV4cG9ydCBjb25zdCBjb2xsZWN0RGVwbG95bWVudEVudmlyb25tZW50UGF5bG9hZCA9IGFzeW5jIChcbiAgcGxvcDogTm9kZVBsb3BBUEksXG4gIGdpdEh1YlNlcnZpY2U6IEdpdEh1YlNlcnZpY2UsXG4gIGdpdGh1Yj86IEdpdEh1YlJlcG8sXG4gIGluaXRpYWxBbnN3ZXJzOiBEZXBsb3ltZW50RW52aXJvbm1lbnRJbml0aWFsQW5zd2VycyA9IHt9LFxuKTogUHJvbWlzZTx7IGdlbmVyYXRvcjogUGxvcEdlbmVyYXRvcjsgcGF5bG9hZDogRW52aXJvbm1lbnRQYXlsb2FkIH0+ID0+IHtcbiAgc2V0RGVwbG95bWVudEVudmlyb25tZW50R2VuZXJhdG9yKFxuICAgIHBsb3AsXG4gICAgZ2l0SHViU2VydmljZSxcbiAgICBnaXRodWIsXG4gICAgaW5pdGlhbEFuc3dlcnMsXG4gICk7XG4gIGNvbnN0IGdlbmVyYXRvciA9IHBsb3AuZ2V0R2VuZXJhdG9yKFBMT1BfRU5WSVJPTk1FTlRfR0VORVJBVE9SX05BTUUpO1xuICBjb25zdCBhbnN3ZXJzID0gYXdhaXQgZ2VuZXJhdG9yLnJ1blByb21wdHMoKTtcbiAgY29uc3QgcGF5bG9hZCA9IGVudmlyb25tZW50UGF5bG9hZFNjaGVtYS5wYXJzZShhbnN3ZXJzKTtcbiAgcmV0dXJuIHsgZ2VuZXJhdG9yLCBwYXlsb2FkIH07XG59O1xuXG4vKipcbiAqIEV4ZWN1dGUgdGhlIGRlcGxveW1lbnQgZW52aXJvbm1lbnQgZ2VuZXJhdG9yIGFjdGlvbnMgZm9yIGFuIGFscmVhZHktY29sbGVjdGVkXG4gKiBwYXlsb2FkLlxuICpcbiAqIFRoaXMgcGhhc2UgaXMgbm9uLWludGVyYWN0aXZlLCBzbyBjYWxsZXJzIGFyZSBmcmVlIHRvIHdyYXAgaXQgaW4gYSBzcGlubmVyIG9yXG4gKiBvdGhlciBwcm9ncmVzcyBpbmRpY2F0b3IuXG4gKi9cbmV4cG9ydCBjb25zdCBydW5EZXBsb3ltZW50RW52aXJvbm1lbnRBY3Rpb25zID0gYXN5bmMgKFxuICBnZW5lcmF0b3I6IFBsb3BHZW5lcmF0b3IsXG4gIHBheWxvYWQ6IEVudmlyb25tZW50UGF5bG9hZCxcbik6IFByb21pc2U8RW52aXJvbm1lbnRQYXlsb2FkPiA9PiB7XG4gIGF3YWl0IHJ1bkFjdGlvbnMoZ2VuZXJhdG9yLCBwYXlsb2FkKTtcbiAgcmV0dXJuIHBheWxvYWQ7XG59O1xuXG4vKipcbiAqIENvbmZpZ3VyZSB0aGUgZGVwbG95bWVudCBlbnZpcm9ubWVudCBnZW5lcmF0b3JcbiAqXG4gKiBAcGFyYW0gcGxvcCAtIFRoZSBwbG9wIGluc3RhbmNlXG4gKiBAcGFyYW0gZ2l0aHViIC0gT3B0aW9uYWwgR2l0SHViIHJlcG9zaXRvcnkgaW5mby4gV2hlbiBwcm92aWRlZCAoYnkgaW5pdCBjb21tYW5kKSxcbiAqICAgICAgICAgICAgICAgICB1c2VzIHRoZSBleHBsaWNpdGx5IHBhc3NlZCByZXBvc2l0b3J5LiBXaGVuIG9taXR0ZWQgKGJ5IGFkZCBjb21tYW5kKSxcbiAqICAgICAgICAgICAgICAgICB0aGUgZ2VuZXJhdG9yIGluZmVycyBpdCBmcm9tIHRoZSBsb2NhbCBnaXQgY29udGV4dC5cbiAqL1xuZXhwb3J0IGNvbnN0IHNldERlcGxveW1lbnRFbnZpcm9ubWVudEdlbmVyYXRvciA9IChcbiAgcGxvcDogTm9kZVBsb3BBUEksXG4gIGdpdEh1YlNlcnZpY2U6IEdpdEh1YlNlcnZpY2UsXG4gIGdpdGh1Yj86IEdpdEh1YlJlcG8sXG4gIGluaXRpYWxBbnN3ZXJzOiBEZXBsb3ltZW50RW52aXJvbm1lbnRJbml0aWFsQW5zd2VycyA9IHt9LFxuKSA9PiB7XG4gIGNvbnN0IGNyZWRlbnRpYWwgPSBuZXcgQXp1cmVDbGlDcmVkZW50aWFsKCk7XG4gIGNvbnN0IGNsb3VkQWNjb3VudFJlcG9zaXRvcnkgPSBuZXcgQXp1cmVTdWJzY3JpcHRpb25SZXBvc2l0b3J5KGNyZWRlbnRpYWwpO1xuICBjb25zdCBjbG91ZEFjY291bnRTZXJ2aWNlID0gbmV3IEF6dXJlQ2xvdWRBY2NvdW50U2VydmljZShjcmVkZW50aWFsKTtcblxuICBjcmVhdGVEZXBsb3ltZW50RW52aXJvbm1lbnRHZW5lcmF0b3IoXG4gICAgcGxvcCxcbiAgICByZXNvbHZlVGVtcGxhdGVzUGF0aChcImVudmlyb25tZW50XCIpLFxuICAgIGNsb3VkQWNjb3VudFJlcG9zaXRvcnksXG4gICAgY2xvdWRBY2NvdW50U2VydmljZSxcbiAgICBnaXRIdWJTZXJ2aWNlLFxuICAgIGdpdGh1YixcbiAgICBpbml0aWFsQW5zd2VycyxcbiAgKTtcbn07XG4iXX0=
@@ -30,13 +30,13 @@ const BootstrapIdentityId = z
30
30
  .brand();
31
31
  /**
32
32
  * Branded type for resource prefix (e.g., "dx", "io").
33
- * Validates that the prefix contains only lowercase letters to prevent injection.
33
+ * Validates only the character set accepted by the authorization workflow.
34
34
  */
35
35
  const ResourcePrefix = z
36
36
  .string()
37
37
  .min(1)
38
- .regex(/^[a-z]+$/, {
39
- message: "Resource prefix may contain only lowercase letters",
38
+ .regex(/^[a-z0-9]+$/, {
39
+ message: "Resource prefix may contain only lowercase letters and numbers",
40
40
  })
41
41
  .brand();
42
42
  /**
@@ -90,4 +90,4 @@ export class InvalidAuthorizationFileFormatError extends AuthorizationError {
90
90
  this.name = "InvalidAuthorizationFileFormatError";
91
91
  }
92
92
  }
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXphdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb21haW4vYXV0aG9yaXphdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFHSCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRTNCOzs7R0FHRztBQUNILE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQztLQUN2QixNQUFNLEVBQUU7S0FDUixHQUFHLENBQUMsQ0FBQyxDQUFDO0tBQ04sS0FBSyxDQUFDLGlCQUFpQixFQUFFO0lBQ3hCLE9BQU8sRUFBRSxrRUFBa0U7Q0FDNUUsQ0FBQztLQUNELEtBQUssRUFBc0IsQ0FBQztBQUUvQjs7O0dBR0c7QUFDSCxNQUFNLG1CQUFtQixHQUFHLENBQUM7S0FDMUIsTUFBTSxFQUFFO0tBQ1IsR0FBRyxDQUFDLENBQUMsQ0FBQztLQUNOLEtBQUssQ0FBQyxjQUFjLEVBQUU7SUFDckIsT0FBTyxFQUNMLGdGQUFnRjtDQUNuRixDQUFDO0tBQ0QsS0FBSyxFQUF5QixDQUFDO0FBRWxDOzs7R0FHRztBQUNILE1BQU0sY0FBYyxHQUFHLENBQUM7S0FDckIsTUFBTSxFQUFFO0tBQ1IsR0FBRyxDQUFDLENBQUMsQ0FBQztLQUNOLEtBQUssQ0FBQyxVQUFVLEVBQUU7SUFDakIsT0FBTyxFQUFFLG9EQUFvRDtDQUM5RCxDQUFDO0tBQ0QsS0FBSyxFQUFvQixDQUFDO0FBRTdCOzs7R0FHRztBQUNILE1BQU0sUUFBUSxHQUFHLENBQUM7S0FDZixNQUFNLEVBQUU7S0FDUixHQUFHLENBQUMsQ0FBQyxDQUFDO0tBQ04sR0FBRyxDQUFDLENBQUMsQ0FBQztLQUNOLEtBQUssQ0FBQyxTQUFTLEVBQUU7SUFDaEIsT0FBTyxFQUFFLDBEQUEwRDtDQUNwRSxDQUFDO0tBQ0QsS0FBSyxFQUFjLENBQUM7QUFFdkI7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3RELG1CQUFtQixFQUFFLG1CQUFtQjtJQUN4QyxRQUFRLEVBQUUsUUFBUTtJQUNsQixNQUFNLEVBQUUsY0FBYztJQUN0QixRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDM0IsU0FBUyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzVCLGdCQUFnQixFQUFFLGdCQUFnQjtDQUNuQyxDQUFDLENBQUM7QUFpQkg7O0dBRUc7QUFDSCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsS0FBSztJQUMzQyxZQUFZLE9BQWU7UUFDekIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxvQkFBb0IsQ0FBQztJQUNuQyxDQUFDO0NBQ0Y7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sbUJBQW1CO0lBQ0Y7SUFBNUIsWUFBNEIsR0FBWTtRQUFaLFFBQUcsR0FBSCxHQUFHLENBQVM7SUFBRyxDQUFDO0NBQzdDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sbUNBQW9DLFNBQVEsa0JBQWtCO0lBQ3pFLFlBQVksT0FBZTtRQUN6QixLQUFLLENBQUMsc0NBQXNDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLElBQUksR0FBRyxxQ0FBcUMsQ0FBQztJQUNwRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEF1dGhvcml6YXRpb24gRG9tYWluXG4gKlxuICogUHJvdmlkZXMgdHlwZXMgYW5kIGludGVyZmFjZXMgZm9yIHJlcXVlc3RpbmcgY2xvdWQgYXV0aG9yaXphdGlvbi5cbiAqIFRoaXMgbW9kdWxlIGlzIHRlY2hub2xvZ3ktYWdub3N0aWM6IGl0IGRvZXMgbm90IGRlcGVuZCBvbiBhbnkgc3BlY2lmaWNcbiAqIGNsb3VkIHByb3ZpZGVyIG9yIHZlcnNpb24tY29udHJvbCBwbGF0Zm9ybS5cbiAqL1xuXG5pbXBvcnQgeyBSZXN1bHRBc3luYyB9IGZyb20gXCJuZXZlcnRocm93XCI7XG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZC92NFwiO1xuXG4vKipcbiAqIEJyYW5kZWQgdHlwZSBmb3Igc3Vic2NyaXB0aW9uIG5hbWUuXG4gKiBWYWxpZGF0ZXMgdGhhdCB0aGUgbmFtZSBjb250YWlucyBvbmx5IGxldHRlcnMsIG51bWJlcnMsIGFuZCBoeXBoZW5zIHRvIHByZXZlbnQgcGF0aCB0cmF2ZXJzYWwgYXR0YWNrcy5cbiAqL1xuY29uc3QgU3Vic2NyaXB0aW9uTmFtZSA9IHpcbiAgLnN0cmluZygpXG4gIC5taW4oMSlcbiAgLnJlZ2V4KC9eW0EtWmEtejAtOS1dKyQvLCB7XG4gICAgbWVzc2FnZTogXCJTdWJzY3JpcHRpb24gbmFtZSBtYXkgY29udGFpbiBvbmx5IGxldHRlcnMsIG51bWJlcnMsIGFuZCBoeXBoZW5zXCIsXG4gIH0pXG4gIC5icmFuZDxcIlN1YnNjcmlwdGlvbk5hbWVcIj4oKTtcblxuLyoqXG4gKiBCcmFuZGVkIHR5cGUgZm9yIGJvb3RzdHJhcCBpZGVudGl0eSBJRC5cbiAqIFZhbGlkYXRlcyB0aGF0IHRoZSBJRCBjb250YWlucyBvbmx5IGxvd2VyY2FzZSBsZXR0ZXJzLCBudW1iZXJzLCBhbmQgaHlwaGVucyB0byBwcmV2ZW50IGluamVjdGlvbiBhdHRhY2tzLlxuICovXG5jb25zdCBCb290c3RyYXBJZGVudGl0eUlkID0gelxuICAuc3RyaW5nKClcbiAgLm1pbigxKVxuICAucmVnZXgoL15bYS16MC05LV0rJC8sIHtcbiAgICBtZXNzYWdlOlxuICAgICAgXCJCb290c3RyYXAgaWRlbnRpdHkgSUQgbWF5IGNvbnRhaW4gb25seSBsb3dlcmNhc2UgbGV0dGVycywgbnVtYmVycywgYW5kIGh5cGhlbnNcIixcbiAgfSlcbiAgLmJyYW5kPFwiQm9vdHN0cmFwSWRlbnRpdHlJZFwiPigpO1xuXG4vKipcbiAqIEJyYW5kZWQgdHlwZSBmb3IgcmVzb3VyY2UgcHJlZml4IChlLmcuLCBcImR4XCIsIFwiaW9cIikuXG4gKiBWYWxpZGF0ZXMgdGhhdCB0aGUgcHJlZml4IGNvbnRhaW5zIG9ubHkgbG93ZXJjYXNlIGxldHRlcnMgdG8gcHJldmVudCBpbmplY3Rpb24uXG4gKi9cbmNvbnN0IFJlc291cmNlUHJlZml4ID0gelxuICAuc3RyaW5nKClcbiAgLm1pbigxKVxuICAucmVnZXgoL15bYS16XSskLywge1xuICAgIG1lc3NhZ2U6IFwiUmVzb3VyY2UgcHJlZml4IG1heSBjb250YWluIG9ubHkgbG93ZXJjYXNlIGxldHRlcnNcIixcbiAgfSlcbiAgLmJyYW5kPFwiUmVzb3VyY2VQcmVmaXhcIj4oKTtcblxuLyoqXG4gKiBCcmFuZGVkIHR5cGUgZm9yIGVudmlyb25tZW50IHNob3J0IG5hbWUgKGUuZy4sIFwiZFwiLCBcInVcIiwgXCJwXCIpLlxuICogVmFsaWRhdGVzIHNpbmdsZSBsb3dlcmNhc2UgbGV0dGVyIGZvciBlbnZpcm9ubWVudC5cbiAqL1xuY29uc3QgRW52U2hvcnQgPSB6XG4gIC5zdHJpbmcoKVxuICAubWluKDEpXG4gIC5tYXgoMSlcbiAgLnJlZ2V4KC9eW2Etel0kLywge1xuICAgIG1lc3NhZ2U6IFwiRW52aXJvbm1lbnQgc2hvcnQgbmFtZSBtdXN0IGJlIGEgc2luZ2xlIGxvd2VyY2FzZSBsZXR0ZXJcIixcbiAgfSlcbiAgLmJyYW5kPFwiRW52U2hvcnRcIj4oKTtcblxuLyoqXG4gKiBJbnB1dCB2YWxpZGF0aW9uIHNjaGVtYSBmb3IgdGhlIGF1dGhvcml6YXRpb24gd29ya2Zsb3cuXG4gKi9cbmV4cG9ydCBjb25zdCByZXF1ZXN0QXV0aG9yaXphdGlvbklucHV0U2NoZW1hID0gei5vYmplY3Qoe1xuICBib290c3RyYXBJZGVudGl0eUlkOiBCb290c3RyYXBJZGVudGl0eUlkLFxuICBlbnZTaG9ydDogRW52U2hvcnQsXG4gIHByZWZpeDogUmVzb3VyY2VQcmVmaXgsXG4gIHJlcG9OYW1lOiB6LnN0cmluZygpLm1pbigxKSxcbiAgcmVwb093bmVyOiB6LnN0cmluZygpLm1pbigxKSxcbiAgc3Vic2NyaXB0aW9uTmFtZTogU3Vic2NyaXB0aW9uTmFtZSxcbn0pO1xuXG4vKipcbiAqIFNlcnZpY2UgaW50ZXJmYWNlIGZvciByZXF1ZXN0aW5nIGNsb3VkIGF1dGhvcml6YXRpb24uXG4gKiBJbXBsZW1lbnRhdGlvbnMgaGFuZGxlIHRoZSBwbGF0Zm9ybS1zcGVjaWZpYyBkZXRhaWxzIG9mIGdyYW50aW5nIGFjY2Vzcy5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9jb25zaXN0ZW50LXR5cGUtZGVmaW5pdGlvbnNcbmV4cG9ydCBpbnRlcmZhY2UgQXV0aG9yaXphdGlvblNlcnZpY2Uge1xuICByZXF1ZXN0QXV0aG9yaXphdGlvbihcbiAgICBpbnB1dDogUmVxdWVzdEF1dGhvcml6YXRpb25JbnB1dCxcbiAgKTogUmVzdWx0QXN5bmM8QXV0aG9yaXphdGlvblJlc3VsdCwgQXV0aG9yaXphdGlvbkVycm9yPjtcbn1cblxuZXhwb3J0IHR5cGUgUmVxdWVzdEF1dGhvcml6YXRpb25JbnB1dCA9IHouaW5mZXI8XG4gIHR5cGVvZiByZXF1ZXN0QXV0aG9yaXphdGlvbklucHV0U2NoZW1hXG4+O1xuXG4vKipcbiAqIEJhc2UgZXJyb3IgY2xhc3MgZm9yIGF1dGhvcml6YXRpb24tcmVsYXRlZCBlcnJvcnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBBdXRob3JpemF0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9IFwiQXV0aG9yaXphdGlvbkVycm9yXCI7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXN1bHQgcmV0dXJuZWQgYnkgYSBzdWNjZXNzZnVsIGF1dGhvcml6YXRpb24gcmVxdWVzdC5cbiAqIFdoZW4gdXJsIGlzIHVuZGVmaW5lZCwgdGhlIHdvcmtmbG93IHdhcyBhIG5vLW9wIChub3RoaW5nIGNoYW5nZWQsIG5vIFBSIGNyZWF0ZWQpLlxuICovXG5leHBvcnQgY2xhc3MgQXV0aG9yaXphdGlvblJlc3VsdCB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSB1cmw/OiBzdHJpbmcpIHt9XG59XG5cbi8qKlxuICogRXJyb3IgdGhyb3duIHdoZW4gdGhlIGF1dGhvcml6YXRpb24gY29uZmlndXJhdGlvbiBmb3JtYXQgaXMgaW52YWxpZCBvciBjYW5ub3QgYmUgcGFyc2VkLlxuICovXG5leHBvcnQgY2xhc3MgSW52YWxpZEF1dGhvcml6YXRpb25GaWxlRm9ybWF0RXJyb3IgZXh0ZW5kcyBBdXRob3JpemF0aW9uRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihkZXRhaWxzOiBzdHJpbmcpIHtcbiAgICBzdXBlcihgSW52YWxpZCBhdXRob3JpemF0aW9uIGZpbGUgZm9ybWF0OiAke2RldGFpbHN9YCk7XG4gICAgdGhpcy5uYW1lID0gXCJJbnZhbGlkQXV0aG9yaXphdGlvbkZpbGVGb3JtYXRFcnJvclwiO1xuICB9XG59XG4iXX0=
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXphdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb21haW4vYXV0aG9yaXphdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFHSCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRTNCOzs7R0FHRztBQUNILE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQztLQUN2QixNQUFNLEVBQUU7S0FDUixHQUFHLENBQUMsQ0FBQyxDQUFDO0tBQ04sS0FBSyxDQUFDLGlCQUFpQixFQUFFO0lBQ3hCLE9BQU8sRUFBRSxrRUFBa0U7Q0FDNUUsQ0FBQztLQUNELEtBQUssRUFBc0IsQ0FBQztBQUUvQjs7O0dBR0c7QUFDSCxNQUFNLG1CQUFtQixHQUFHLENBQUM7S0FDMUIsTUFBTSxFQUFFO0tBQ1IsR0FBRyxDQUFDLENBQUMsQ0FBQztLQUNOLEtBQUssQ0FBQyxjQUFjLEVBQUU7SUFDckIsT0FBTyxFQUNMLGdGQUFnRjtDQUNuRixDQUFDO0tBQ0QsS0FBSyxFQUF5QixDQUFDO0FBRWxDOzs7R0FHRztBQUNILE1BQU0sY0FBYyxHQUFHLENBQUM7S0FDckIsTUFBTSxFQUFFO0tBQ1IsR0FBRyxDQUFDLENBQUMsQ0FBQztLQUNOLEtBQUssQ0FBQyxhQUFhLEVBQUU7SUFDcEIsT0FBTyxFQUFFLGdFQUFnRTtDQUMxRSxDQUFDO0tBQ0QsS0FBSyxFQUFvQixDQUFDO0FBRTdCOzs7R0FHRztBQUNILE1BQU0sUUFBUSxHQUFHLENBQUM7S0FDZixNQUFNLEVBQUU7S0FDUixHQUFHLENBQUMsQ0FBQyxDQUFDO0tBQ04sR0FBRyxDQUFDLENBQUMsQ0FBQztLQUNOLEtBQUssQ0FBQyxTQUFTLEVBQUU7SUFDaEIsT0FBTyxFQUFFLDBEQUEwRDtDQUNwRSxDQUFDO0tBQ0QsS0FBSyxFQUFjLENBQUM7QUFFdkI7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3RELG1CQUFtQixFQUFFLG1CQUFtQjtJQUN4QyxRQUFRLEVBQUUsUUFBUTtJQUNsQixNQUFNLEVBQUUsY0FBYztJQUN0QixRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDM0IsU0FBUyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzVCLGdCQUFnQixFQUFFLGdCQUFnQjtDQUNuQyxDQUFDLENBQUM7QUFpQkg7O0dBRUc7QUFDSCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsS0FBSztJQUMzQyxZQUFZLE9BQWU7UUFDekIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxvQkFBb0IsQ0FBQztJQUNuQyxDQUFDO0NBQ0Y7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sbUJBQW1CO0lBQ0Y7SUFBNUIsWUFBNEIsR0FBWTtRQUFaLFFBQUcsR0FBSCxHQUFHLENBQVM7SUFBRyxDQUFDO0NBQzdDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sbUNBQW9DLFNBQVEsa0JBQWtCO0lBQ3pFLFlBQVksT0FBZTtRQUN6QixLQUFLLENBQUMsc0NBQXNDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLElBQUksR0FBRyxxQ0FBcUMsQ0FBQztJQUNwRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEF1dGhvcml6YXRpb24gRG9tYWluXG4gKlxuICogUHJvdmlkZXMgdHlwZXMgYW5kIGludGVyZmFjZXMgZm9yIHJlcXVlc3RpbmcgY2xvdWQgYXV0aG9yaXphdGlvbi5cbiAqIFRoaXMgbW9kdWxlIGlzIHRlY2hub2xvZ3ktYWdub3N0aWM6IGl0IGRvZXMgbm90IGRlcGVuZCBvbiBhbnkgc3BlY2lmaWNcbiAqIGNsb3VkIHByb3ZpZGVyIG9yIHZlcnNpb24tY29udHJvbCBwbGF0Zm9ybS5cbiAqL1xuXG5pbXBvcnQgeyBSZXN1bHRBc3luYyB9IGZyb20gXCJuZXZlcnRocm93XCI7XG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZC92NFwiO1xuXG4vKipcbiAqIEJyYW5kZWQgdHlwZSBmb3Igc3Vic2NyaXB0aW9uIG5hbWUuXG4gKiBWYWxpZGF0ZXMgdGhhdCB0aGUgbmFtZSBjb250YWlucyBvbmx5IGxldHRlcnMsIG51bWJlcnMsIGFuZCBoeXBoZW5zIHRvIHByZXZlbnQgcGF0aCB0cmF2ZXJzYWwgYXR0YWNrcy5cbiAqL1xuY29uc3QgU3Vic2NyaXB0aW9uTmFtZSA9IHpcbiAgLnN0cmluZygpXG4gIC5taW4oMSlcbiAgLnJlZ2V4KC9eW0EtWmEtejAtOS1dKyQvLCB7XG4gICAgbWVzc2FnZTogXCJTdWJzY3JpcHRpb24gbmFtZSBtYXkgY29udGFpbiBvbmx5IGxldHRlcnMsIG51bWJlcnMsIGFuZCBoeXBoZW5zXCIsXG4gIH0pXG4gIC5icmFuZDxcIlN1YnNjcmlwdGlvbk5hbWVcIj4oKTtcblxuLyoqXG4gKiBCcmFuZGVkIHR5cGUgZm9yIGJvb3RzdHJhcCBpZGVudGl0eSBJRC5cbiAqIFZhbGlkYXRlcyB0aGF0IHRoZSBJRCBjb250YWlucyBvbmx5IGxvd2VyY2FzZSBsZXR0ZXJzLCBudW1iZXJzLCBhbmQgaHlwaGVucyB0byBwcmV2ZW50IGluamVjdGlvbiBhdHRhY2tzLlxuICovXG5jb25zdCBCb290c3RyYXBJZGVudGl0eUlkID0gelxuICAuc3RyaW5nKClcbiAgLm1pbigxKVxuICAucmVnZXgoL15bYS16MC05LV0rJC8sIHtcbiAgICBtZXNzYWdlOlxuICAgICAgXCJCb290c3RyYXAgaWRlbnRpdHkgSUQgbWF5IGNvbnRhaW4gb25seSBsb3dlcmNhc2UgbGV0dGVycywgbnVtYmVycywgYW5kIGh5cGhlbnNcIixcbiAgfSlcbiAgLmJyYW5kPFwiQm9vdHN0cmFwSWRlbnRpdHlJZFwiPigpO1xuXG4vKipcbiAqIEJyYW5kZWQgdHlwZSBmb3IgcmVzb3VyY2UgcHJlZml4IChlLmcuLCBcImR4XCIsIFwiaW9cIikuXG4gKiBWYWxpZGF0ZXMgb25seSB0aGUgY2hhcmFjdGVyIHNldCBhY2NlcHRlZCBieSB0aGUgYXV0aG9yaXphdGlvbiB3b3JrZmxvdy5cbiAqL1xuY29uc3QgUmVzb3VyY2VQcmVmaXggPSB6XG4gIC5zdHJpbmcoKVxuICAubWluKDEpXG4gIC5yZWdleCgvXlthLXowLTldKyQvLCB7XG4gICAgbWVzc2FnZTogXCJSZXNvdXJjZSBwcmVmaXggbWF5IGNvbnRhaW4gb25seSBsb3dlcmNhc2UgbGV0dGVycyBhbmQgbnVtYmVyc1wiLFxuICB9KVxuICAuYnJhbmQ8XCJSZXNvdXJjZVByZWZpeFwiPigpO1xuXG4vKipcbiAqIEJyYW5kZWQgdHlwZSBmb3IgZW52aXJvbm1lbnQgc2hvcnQgbmFtZSAoZS5nLiwgXCJkXCIsIFwidVwiLCBcInBcIikuXG4gKiBWYWxpZGF0ZXMgc2luZ2xlIGxvd2VyY2FzZSBsZXR0ZXIgZm9yIGVudmlyb25tZW50LlxuICovXG5jb25zdCBFbnZTaG9ydCA9IHpcbiAgLnN0cmluZygpXG4gIC5taW4oMSlcbiAgLm1heCgxKVxuICAucmVnZXgoL15bYS16XSQvLCB7XG4gICAgbWVzc2FnZTogXCJFbnZpcm9ubWVudCBzaG9ydCBuYW1lIG11c3QgYmUgYSBzaW5nbGUgbG93ZXJjYXNlIGxldHRlclwiLFxuICB9KVxuICAuYnJhbmQ8XCJFbnZTaG9ydFwiPigpO1xuXG4vKipcbiAqIElucHV0IHZhbGlkYXRpb24gc2NoZW1hIGZvciB0aGUgYXV0aG9yaXphdGlvbiB3b3JrZmxvdy5cbiAqL1xuZXhwb3J0IGNvbnN0IHJlcXVlc3RBdXRob3JpemF0aW9uSW5wdXRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIGJvb3RzdHJhcElkZW50aXR5SWQ6IEJvb3RzdHJhcElkZW50aXR5SWQsXG4gIGVudlNob3J0OiBFbnZTaG9ydCxcbiAgcHJlZml4OiBSZXNvdXJjZVByZWZpeCxcbiAgcmVwb05hbWU6IHouc3RyaW5nKCkubWluKDEpLFxuICByZXBvT3duZXI6IHouc3RyaW5nKCkubWluKDEpLFxuICBzdWJzY3JpcHRpb25OYW1lOiBTdWJzY3JpcHRpb25OYW1lLFxufSk7XG5cbi8qKlxuICogU2VydmljZSBpbnRlcmZhY2UgZm9yIHJlcXVlc3RpbmcgY2xvdWQgYXV0aG9yaXphdGlvbi5cbiAqIEltcGxlbWVudGF0aW9ucyBoYW5kbGUgdGhlIHBsYXRmb3JtLXNwZWNpZmljIGRldGFpbHMgb2YgZ3JhbnRpbmcgYWNjZXNzLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2NvbnNpc3RlbnQtdHlwZS1kZWZpbml0aW9uc1xuZXhwb3J0IGludGVyZmFjZSBBdXRob3JpemF0aW9uU2VydmljZSB7XG4gIHJlcXVlc3RBdXRob3JpemF0aW9uKFxuICAgIGlucHV0OiBSZXF1ZXN0QXV0aG9yaXphdGlvbklucHV0LFxuICApOiBSZXN1bHRBc3luYzxBdXRob3JpemF0aW9uUmVzdWx0LCBBdXRob3JpemF0aW9uRXJyb3I+O1xufVxuXG5leHBvcnQgdHlwZSBSZXF1ZXN0QXV0aG9yaXphdGlvbklucHV0ID0gei5pbmZlcjxcbiAgdHlwZW9mIHJlcXVlc3RBdXRob3JpemF0aW9uSW5wdXRTY2hlbWFcbj47XG5cbi8qKlxuICogQmFzZSBlcnJvciBjbGFzcyBmb3IgYXV0aG9yaXphdGlvbi1yZWxhdGVkIGVycm9ycy5cbiAqL1xuZXhwb3J0IGNsYXNzIEF1dGhvcml6YXRpb25FcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gXCJBdXRob3JpemF0aW9uRXJyb3JcIjtcbiAgfVxufVxuXG4vKipcbiAqIFJlc3VsdCByZXR1cm5lZCBieSBhIHN1Y2Nlc3NmdWwgYXV0aG9yaXphdGlvbiByZXF1ZXN0LlxuICogV2hlbiB1cmwgaXMgdW5kZWZpbmVkLCB0aGUgd29ya2Zsb3cgd2FzIGEgbm8tb3AgKG5vdGhpbmcgY2hhbmdlZCwgbm8gUFIgY3JlYXRlZCkuXG4gKi9cbmV4cG9ydCBjbGFzcyBBdXRob3JpemF0aW9uUmVzdWx0IHtcbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHVybD86IHN0cmluZykge31cbn1cblxuLyoqXG4gKiBFcnJvciB0aHJvd24gd2hlbiB0aGUgYXV0aG9yaXphdGlvbiBjb25maWd1cmF0aW9uIGZvcm1hdCBpcyBpbnZhbGlkIG9yIGNhbm5vdCBiZSBwYXJzZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBJbnZhbGlkQXV0aG9yaXphdGlvbkZpbGVGb3JtYXRFcnJvciBleHRlbmRzIEF1dGhvcml6YXRpb25FcnJvciB7XG4gIGNvbnN0cnVjdG9yKGRldGFpbHM6IHN0cmluZykge1xuICAgIHN1cGVyKGBJbnZhbGlkIGF1dGhvcml6YXRpb24gZmlsZSBmb3JtYXQ6ICR7ZGV0YWlsc31gKTtcbiAgICB0aGlzLm5hbWUgPSBcIkludmFsaWRBdXRob3JpemF0aW9uRmlsZUZvcm1hdEVycm9yXCI7XG4gIH1cbn1cbiJdfQ==
@@ -1,7 +1,12 @@
1
1
  import { z } from "zod/v4";
2
2
  import { CloudAccount, CloudAccountService } from "./cloud-account.js";
3
3
  import { TerraformBackend } from "./remote-backend.js";
4
- export declare const environmentShort: Record<Environment["name"], string>;
4
+ export declare const environmentShort: {
5
+ readonly dev: "d";
6
+ readonly prod: "p";
7
+ readonly uat: "u";
8
+ };
9
+ export type EnvironmentShortValue = (typeof environmentShort)[keyof typeof environmentShort];
5
10
  export declare const environmentSchema: z.ZodObject<{
6
11
  cloudAccounts: z.ZodArray<z.ZodObject<{
7
12
  csp: z.ZodDefault<z.ZodEnum<{
@@ -62,4 +62,4 @@ export async function hasUserPermissionToInitialize(cloudAccountService, environ
62
62
  }
63
63
  return true;
64
64
  }
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZG9tYWluL2Vudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFM0IsT0FBTyxFQUVMLGtCQUFrQixHQUVuQixNQUFNLG9CQUFvQixDQUFDO0FBRzVCLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUF3QztJQUNuRSxHQUFHLEVBQUUsR0FBRztJQUNSLElBQUksRUFBRSxHQUFHO0lBQ1QsR0FBRyxFQUFFLEdBQUc7Q0FDVCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN4QyxhQUFhLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDakQsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLHVFQUF1RTtJQUN2RSx1RUFBdUU7SUFDdkUsTUFBTSxFQUFFLENBQUM7U0FDTixNQUFNLEVBQUU7U0FDUixJQUFJLEVBQUU7U0FDTixXQUFXLEVBQUU7U0FDYixHQUFHLENBQUMsQ0FBQyxFQUFFLG1DQUFtQyxDQUFDO1NBQzNDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsa0NBQWtDLENBQUM7Q0FDOUMsQ0FBQyxDQUFDO0FBNEJILE1BQU0sQ0FBQyxLQUFLLFVBQVUsdUJBQXVCLENBQzNDLG1CQUF3QyxFQUN4QyxXQUF3QjtJQUV4QixNQUFNLE1BQU0sR0FBMkIsRUFBRSxDQUFDO0lBQzFDLEtBQUssTUFBTSxZQUFZLElBQUksV0FBVyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JELE1BQU0sV0FBVyxHQUFHLE1BQU0sbUJBQW1CLENBQUMsYUFBYSxDQUN6RCxZQUFZLENBQUMsRUFBRSxFQUNmLFdBQVcsQ0FDWixDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQ1YsWUFBWTtnQkFDWixJQUFJLEVBQUUsK0JBQStCO2FBQ3RDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBQ0QsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLG1CQUFtQixDQUNoRCxtQkFBbUIsRUFDbkIsV0FBVyxDQUNaLENBQUM7SUFDRixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN0QixNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ1YsSUFBSSxFQUFFLHdCQUF3QjtTQUMvQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3RCLE9BQU87WUFDTCxXQUFXLEVBQUUsS0FBSztZQUNsQixNQUFNO1NBQ1AsQ0FBQztJQUNKLENBQUM7SUFDRCxPQUFPO1FBQ0wsV0FBVyxFQUFFLElBQUk7S0FDbEIsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLG1CQUFtQixDQUN2QyxtQkFBd0MsRUFDeEMsV0FBd0I7SUFFeEIsS0FBSyxNQUFNLFlBQVksSUFBSSxXQUFXLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckQsTUFBTSxPQUFPLEdBQUcsTUFBTSxtQkFBbUIsQ0FBQyxtQkFBbUIsQ0FDM0QsWUFBWSxDQUFDLEVBQUUsRUFDZixXQUFXLENBQ1osQ0FBQztRQUNGLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLDZCQUE2QixDQUNqRCxtQkFBd0MsRUFDeEMsV0FBd0I7SUFFeEIsS0FBSyxNQUFNLFlBQVksSUFBSSxXQUFXLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckQsTUFBTSxNQUFNLEdBQUcsTUFBTSxtQkFBbUIsQ0FBQyw2QkFBNkIsQ0FDcEUsWUFBWSxDQUFDLEVBQUUsQ0FDaEIsQ0FBQztRQUNGLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB6IH0gZnJvbSBcInpvZC92NFwiO1xuXG5pbXBvcnQge1xuICBDbG91ZEFjY291bnQsXG4gIGNsb3VkQWNjb3VudFNjaGVtYSxcbiAgQ2xvdWRBY2NvdW50U2VydmljZSxcbn0gZnJvbSBcIi4vY2xvdWQtYWNjb3VudC5qc1wiO1xuaW1wb3J0IHsgVGVycmFmb3JtQmFja2VuZCB9IGZyb20gXCIuL3JlbW90ZS1iYWNrZW5kLmpzXCI7XG5cbmV4cG9ydCBjb25zdCBlbnZpcm9ubWVudFNob3J0OiBSZWNvcmQ8RW52aXJvbm1lbnRbXCJuYW1lXCJdLCBzdHJpbmc+ID0ge1xuICBkZXY6IFwiZFwiLFxuICBwcm9kOiBcInBcIixcbiAgdWF0OiBcInVcIixcbn07XG5cbmV4cG9ydCBjb25zdCBlbnZpcm9ubWVudFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgY2xvdWRBY2NvdW50czogei5hcnJheShjbG91ZEFjY291bnRTY2hlbWEpLm1pbigxKSxcbiAgbmFtZTogei5lbnVtKFtcImRldlwiLCBcInByb2RcIiwgXCJ1YXRcIl0pLFxuICAvLyBUcmltIGFuZCBsb3dlcmNhc2UgYXQgdGhlIHNjaGVtYSBsZXZlbCBzbyB0aGUgY29uc3RyYWludCBpcyBlbmZvcmNlZFxuICAvLyByZWdhcmRsZXNzIG9mIGhvdyB0aGUgZGF0YSBlbnRlcnMgdGhlIHN5c3RlbSAocHJvbXB0LCB0ZXN0LCBvciBBUEkpLlxuICBwcmVmaXg6IHpcbiAgICAuc3RyaW5nKClcbiAgICAudHJpbSgpXG4gICAgLnRvTG93ZXJDYXNlKClcbiAgICAubWluKDIsIFwiUHJlZml4IG11c3QgaGF2ZSBhdCBsZWFzdCAyIGNoYXJzXCIpXG4gICAgLm1heCg0LCBcIlByZWZpeCBtdXN0IGhhdmUgYXQgbW9zdCA0IGNoYXJzXCIpLFxufSk7XG5cbmV4cG9ydCB0eXBlIEVudmlyb25tZW50ID0gei5pbmZlcjx0eXBlb2YgZW52aXJvbm1lbnRTY2hlbWE+O1xuXG5leHBvcnQgdHlwZSBFbnZpcm9ubWVudElkID0gUGljazxFbnZpcm9ubWVudCwgXCJuYW1lXCIgfCBcInByZWZpeFwiPjtcblxuZXhwb3J0IHR5cGUgRW52aXJvbm1lbnRJbml0U3RhdHVzID1cbiAgfCB7XG4gICAgICBpbml0aWFsaXplZDogZmFsc2U7XG4gICAgICBpc3N1ZXM6IEVudmlyb25tZW50SW5pdElzc3VlW107XG4gICAgfVxuICB8IHtcbiAgICAgIGluaXRpYWxpemVkOiB0cnVlO1xuICAgIH07XG5cbnR5cGUgQ2xvdWRBY2NvdW50Tm90SW5pdGlhbGl6ZWRJc3N1ZSA9IHtcbiAgY2xvdWRBY2NvdW50OiBDbG91ZEFjY291bnQ7XG4gIHR5cGU6IFwiQ0xPVURfQUNDT1VOVF9OT1RfSU5JVElBTElaRURcIjtcbn07XG5cbnR5cGUgRW52aXJvbm1lbnRJbml0SXNzdWUgPVxuICB8IENsb3VkQWNjb3VudE5vdEluaXRpYWxpemVkSXNzdWVcbiAgfCBNaXNzaW5nUmVtb3RlQmFja2VuZElzc3VlO1xuXG50eXBlIE1pc3NpbmdSZW1vdGVCYWNrZW5kSXNzdWUgPSB7XG4gIHR5cGU6IFwiTUlTU0lOR19SRU1PVEVfQkFDS0VORFwiO1xufTtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEluaXRpYWxpemF0aW9uU3RhdHVzKFxuICBjbG91ZEFjY291bnRTZXJ2aWNlOiBDbG91ZEFjY291bnRTZXJ2aWNlLFxuICBlbnZpcm9ubWVudDogRW52aXJvbm1lbnQsXG4pOiBQcm9taXNlPEVudmlyb25tZW50SW5pdFN0YXR1cz4ge1xuICBjb25zdCBpc3N1ZXM6IEVudmlyb25tZW50SW5pdElzc3VlW10gPSBbXTtcbiAgZm9yIChjb25zdCBjbG91ZEFjY291bnQgb2YgZW52aXJvbm1lbnQuY2xvdWRBY2NvdW50cykge1xuICAgIGNvbnN0IGluaXRpYWxpemVkID0gYXdhaXQgY2xvdWRBY2NvdW50U2VydmljZS5pc0luaXRpYWxpemVkKFxuICAgICAgY2xvdWRBY2NvdW50LmlkLFxuICAgICAgZW52aXJvbm1lbnQsXG4gICAgKTtcbiAgICBpZiAoIWluaXRpYWxpemVkKSB7XG4gICAgICBpc3N1ZXMucHVzaCh7XG4gICAgICAgIGNsb3VkQWNjb3VudCxcbiAgICAgICAgdHlwZTogXCJDTE9VRF9BQ0NPVU5UX05PVF9JTklUSUFMSVpFRFwiLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIGNvbnN0IHRlcnJhZm9ybUJhY2tlbmQgPSBhd2FpdCBnZXRUZXJyYWZvcm1CYWNrZW5kKFxuICAgIGNsb3VkQWNjb3VudFNlcnZpY2UsXG4gICAgZW52aXJvbm1lbnQsXG4gICk7XG4gIGlmICghdGVycmFmb3JtQmFja2VuZCkge1xuICAgIGlzc3Vlcy5wdXNoKHtcbiAgICAgIHR5cGU6IFwiTUlTU0lOR19SRU1PVEVfQkFDS0VORFwiLFxuICAgIH0pO1xuICB9XG4gIGlmIChpc3N1ZXMubGVuZ3RoID4gMCkge1xuICAgIHJldHVybiB7XG4gICAgICBpbml0aWFsaXplZDogZmFsc2UsXG4gICAgICBpc3N1ZXMsXG4gICAgfTtcbiAgfVxuICByZXR1cm4ge1xuICAgIGluaXRpYWxpemVkOiB0cnVlLFxuICB9O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0VGVycmFmb3JtQmFja2VuZChcbiAgY2xvdWRBY2NvdW50U2VydmljZTogQ2xvdWRBY2NvdW50U2VydmljZSxcbiAgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50LFxuKTogUHJvbWlzZTxUZXJyYWZvcm1CYWNrZW5kIHwgdW5kZWZpbmVkPiB7XG4gIGZvciAoY29uc3QgY2xvdWRBY2NvdW50IG9mIGVudmlyb25tZW50LmNsb3VkQWNjb3VudHMpIHtcbiAgICBjb25zdCBiYWNrZW5kID0gYXdhaXQgY2xvdWRBY2NvdW50U2VydmljZS5nZXRUZXJyYWZvcm1CYWNrZW5kKFxuICAgICAgY2xvdWRBY2NvdW50LmlkLFxuICAgICAgZW52aXJvbm1lbnQsXG4gICAgKTtcbiAgICBpZiAoYmFja2VuZCkge1xuICAgICAgcmV0dXJuIGJhY2tlbmQ7XG4gICAgfVxuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBoYXNVc2VyUGVybWlzc2lvblRvSW5pdGlhbGl6ZShcbiAgY2xvdWRBY2NvdW50U2VydmljZTogQ2xvdWRBY2NvdW50U2VydmljZSxcbiAgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50LFxuKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGZvciAoY29uc3QgY2xvdWRBY2NvdW50IG9mIGVudmlyb25tZW50LmNsb3VkQWNjb3VudHMpIHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjbG91ZEFjY291bnRTZXJ2aWNlLmhhc1VzZXJQZXJtaXNzaW9uVG9Jbml0aWFsaXplKFxuICAgICAgY2xvdWRBY2NvdW50LmlkLFxuICAgICk7XG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59XG4iXX0=
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZG9tYWluL2Vudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFM0IsT0FBTyxFQUVMLGtCQUFrQixHQUVuQixNQUFNLG9CQUFvQixDQUFDO0FBRzVCLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzlCLEdBQUcsRUFBRSxHQUFHO0lBQ1IsSUFBSSxFQUFFLEdBQUc7SUFDVCxHQUFHLEVBQUUsR0FBRztDQUM4QyxDQUFDO0FBS3pELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDeEMsYUFBYSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2pELElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNwQyx1RUFBdUU7SUFDdkUsdUVBQXVFO0lBQ3ZFLE1BQU0sRUFBRSxDQUFDO1NBQ04sTUFBTSxFQUFFO1NBQ1IsSUFBSSxFQUFFO1NBQ04sV0FBVyxFQUFFO1NBQ2IsR0FBRyxDQUFDLENBQUMsRUFBRSxtQ0FBbUMsQ0FBQztTQUMzQyxHQUFHLENBQUMsQ0FBQyxFQUFFLGtDQUFrQyxDQUFDO0NBQzlDLENBQUMsQ0FBQztBQTRCSCxNQUFNLENBQUMsS0FBSyxVQUFVLHVCQUF1QixDQUMzQyxtQkFBd0MsRUFDeEMsV0FBd0I7SUFFeEIsTUFBTSxNQUFNLEdBQTJCLEVBQUUsQ0FBQztJQUMxQyxLQUFLLE1BQU0sWUFBWSxJQUFJLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyRCxNQUFNLFdBQVcsR0FBRyxNQUFNLG1CQUFtQixDQUFDLGFBQWEsQ0FDekQsWUFBWSxDQUFDLEVBQUUsRUFDZixXQUFXLENBQ1osQ0FBQztRQUNGLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqQixNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUNWLFlBQVk7Z0JBQ1osSUFBSSxFQUFFLCtCQUErQjthQUN0QyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUNELE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxtQkFBbUIsQ0FDaEQsbUJBQW1CLEVBQ25CLFdBQVcsQ0FDWixDQUFDO0lBQ0YsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDdEIsTUFBTSxDQUFDLElBQUksQ0FBQztZQUNWLElBQUksRUFBRSx3QkFBd0I7U0FDL0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN0QixPQUFPO1lBQ0wsV0FBVyxFQUFFLEtBQUs7WUFDbEIsTUFBTTtTQUNQLENBQUM7SUFDSixDQUFDO0lBQ0QsT0FBTztRQUNMLFdBQVcsRUFBRSxJQUFJO0tBQ2xCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxtQkFBbUIsQ0FDdkMsbUJBQXdDLEVBQ3hDLFdBQXdCO0lBRXhCLEtBQUssTUFBTSxZQUFZLElBQUksV0FBVyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JELE1BQU0sT0FBTyxHQUFHLE1BQU0sbUJBQW1CLENBQUMsbUJBQW1CLENBQzNELFlBQVksQ0FBQyxFQUFFLEVBQ2YsV0FBVyxDQUNaLENBQUM7UUFDRixJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSw2QkFBNkIsQ0FDakQsbUJBQXdDLEVBQ3hDLFdBQXdCO0lBRXhCLEtBQUssTUFBTSxZQUFZLElBQUksV0FBVyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JELE1BQU0sTUFBTSxHQUFHLE1BQU0sbUJBQW1CLENBQUMsNkJBQTZCLENBQ3BFLFlBQVksQ0FBQyxFQUFFLENBQ2hCLENBQUM7UUFDRixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2QvdjRcIjtcblxuaW1wb3J0IHtcbiAgQ2xvdWRBY2NvdW50LFxuICBjbG91ZEFjY291bnRTY2hlbWEsXG4gIENsb3VkQWNjb3VudFNlcnZpY2UsXG59IGZyb20gXCIuL2Nsb3VkLWFjY291bnQuanNcIjtcbmltcG9ydCB7IFRlcnJhZm9ybUJhY2tlbmQgfSBmcm9tIFwiLi9yZW1vdGUtYmFja2VuZC5qc1wiO1xuXG5leHBvcnQgY29uc3QgZW52aXJvbm1lbnRTaG9ydCA9IHtcbiAgZGV2OiBcImRcIixcbiAgcHJvZDogXCJwXCIsXG4gIHVhdDogXCJ1XCIsXG59IGFzIGNvbnN0IHNhdGlzZmllcyBSZWNvcmQ8RW52aXJvbm1lbnRbXCJuYW1lXCJdLCBzdHJpbmc+O1xuXG5leHBvcnQgdHlwZSBFbnZpcm9ubWVudFNob3J0VmFsdWUgPVxuICAodHlwZW9mIGVudmlyb25tZW50U2hvcnQpW2tleW9mIHR5cGVvZiBlbnZpcm9ubWVudFNob3J0XTtcblxuZXhwb3J0IGNvbnN0IGVudmlyb25tZW50U2NoZW1hID0gei5vYmplY3Qoe1xuICBjbG91ZEFjY291bnRzOiB6LmFycmF5KGNsb3VkQWNjb3VudFNjaGVtYSkubWluKDEpLFxuICBuYW1lOiB6LmVudW0oW1wiZGV2XCIsIFwicHJvZFwiLCBcInVhdFwiXSksXG4gIC8vIFRyaW0gYW5kIGxvd2VyY2FzZSBhdCB0aGUgc2NoZW1hIGxldmVsIHNvIHRoZSBjb25zdHJhaW50IGlzIGVuZm9yY2VkXG4gIC8vIHJlZ2FyZGxlc3Mgb2YgaG93IHRoZSBkYXRhIGVudGVycyB0aGUgc3lzdGVtIChwcm9tcHQsIHRlc3QsIG9yIEFQSSkuXG4gIHByZWZpeDogelxuICAgIC5zdHJpbmcoKVxuICAgIC50cmltKClcbiAgICAudG9Mb3dlckNhc2UoKVxuICAgIC5taW4oMiwgXCJQcmVmaXggbXVzdCBoYXZlIGF0IGxlYXN0IDIgY2hhcnNcIilcbiAgICAubWF4KDQsIFwiUHJlZml4IG11c3QgaGF2ZSBhdCBtb3N0IDQgY2hhcnNcIiksXG59KTtcblxuZXhwb3J0IHR5cGUgRW52aXJvbm1lbnQgPSB6LmluZmVyPHR5cGVvZiBlbnZpcm9ubWVudFNjaGVtYT47XG5cbmV4cG9ydCB0eXBlIEVudmlyb25tZW50SWQgPSBQaWNrPEVudmlyb25tZW50LCBcIm5hbWVcIiB8IFwicHJlZml4XCI+O1xuXG5leHBvcnQgdHlwZSBFbnZpcm9ubWVudEluaXRTdGF0dXMgPVxuICB8IHtcbiAgICAgIGluaXRpYWxpemVkOiBmYWxzZTtcbiAgICAgIGlzc3VlczogRW52aXJvbm1lbnRJbml0SXNzdWVbXTtcbiAgICB9XG4gIHwge1xuICAgICAgaW5pdGlhbGl6ZWQ6IHRydWU7XG4gICAgfTtcblxudHlwZSBDbG91ZEFjY291bnROb3RJbml0aWFsaXplZElzc3VlID0ge1xuICBjbG91ZEFjY291bnQ6IENsb3VkQWNjb3VudDtcbiAgdHlwZTogXCJDTE9VRF9BQ0NPVU5UX05PVF9JTklUSUFMSVpFRFwiO1xufTtcblxudHlwZSBFbnZpcm9ubWVudEluaXRJc3N1ZSA9XG4gIHwgQ2xvdWRBY2NvdW50Tm90SW5pdGlhbGl6ZWRJc3N1ZVxuICB8IE1pc3NpbmdSZW1vdGVCYWNrZW5kSXNzdWU7XG5cbnR5cGUgTWlzc2luZ1JlbW90ZUJhY2tlbmRJc3N1ZSA9IHtcbiAgdHlwZTogXCJNSVNTSU5HX1JFTU9URV9CQUNLRU5EXCI7XG59O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0SW5pdGlhbGl6YXRpb25TdGF0dXMoXG4gIGNsb3VkQWNjb3VudFNlcnZpY2U6IENsb3VkQWNjb3VudFNlcnZpY2UsXG4gIGVudmlyb25tZW50OiBFbnZpcm9ubWVudCxcbik6IFByb21pc2U8RW52aXJvbm1lbnRJbml0U3RhdHVzPiB7XG4gIGNvbnN0IGlzc3VlczogRW52aXJvbm1lbnRJbml0SXNzdWVbXSA9IFtdO1xuICBmb3IgKGNvbnN0IGNsb3VkQWNjb3VudCBvZiBlbnZpcm9ubWVudC5jbG91ZEFjY291bnRzKSB7XG4gICAgY29uc3QgaW5pdGlhbGl6ZWQgPSBhd2FpdCBjbG91ZEFjY291bnRTZXJ2aWNlLmlzSW5pdGlhbGl6ZWQoXG4gICAgICBjbG91ZEFjY291bnQuaWQsXG4gICAgICBlbnZpcm9ubWVudCxcbiAgICApO1xuICAgIGlmICghaW5pdGlhbGl6ZWQpIHtcbiAgICAgIGlzc3Vlcy5wdXNoKHtcbiAgICAgICAgY2xvdWRBY2NvdW50LFxuICAgICAgICB0eXBlOiBcIkNMT1VEX0FDQ09VTlRfTk9UX0lOSVRJQUxJWkVEXCIsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgY29uc3QgdGVycmFmb3JtQmFja2VuZCA9IGF3YWl0IGdldFRlcnJhZm9ybUJhY2tlbmQoXG4gICAgY2xvdWRBY2NvdW50U2VydmljZSxcbiAgICBlbnZpcm9ubWVudCxcbiAgKTtcbiAgaWYgKCF0ZXJyYWZvcm1CYWNrZW5kKSB7XG4gICAgaXNzdWVzLnB1c2goe1xuICAgICAgdHlwZTogXCJNSVNTSU5HX1JFTU9URV9CQUNLRU5EXCIsXG4gICAgfSk7XG4gIH1cbiAgaWYgKGlzc3Vlcy5sZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGluaXRpYWxpemVkOiBmYWxzZSxcbiAgICAgIGlzc3VlcyxcbiAgICB9O1xuICB9XG4gIHJldHVybiB7XG4gICAgaW5pdGlhbGl6ZWQ6IHRydWUsXG4gIH07XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRUZXJyYWZvcm1CYWNrZW5kKFxuICBjbG91ZEFjY291bnRTZXJ2aWNlOiBDbG91ZEFjY291bnRTZXJ2aWNlLFxuICBlbnZpcm9ubWVudDogRW52aXJvbm1lbnQsXG4pOiBQcm9taXNlPFRlcnJhZm9ybUJhY2tlbmQgfCB1bmRlZmluZWQ+IHtcbiAgZm9yIChjb25zdCBjbG91ZEFjY291bnQgb2YgZW52aXJvbm1lbnQuY2xvdWRBY2NvdW50cykge1xuICAgIGNvbnN0IGJhY2tlbmQgPSBhd2FpdCBjbG91ZEFjY291bnRTZXJ2aWNlLmdldFRlcnJhZm9ybUJhY2tlbmQoXG4gICAgICBjbG91ZEFjY291bnQuaWQsXG4gICAgICBlbnZpcm9ubWVudCxcbiAgICApO1xuICAgIGlmIChiYWNrZW5kKSB7XG4gICAgICByZXR1cm4gYmFja2VuZDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGhhc1VzZXJQZXJtaXNzaW9uVG9Jbml0aWFsaXplKFxuICBjbG91ZEFjY291bnRTZXJ2aWNlOiBDbG91ZEFjY291bnRTZXJ2aWNlLFxuICBlbnZpcm9ubWVudDogRW52aXJvbm1lbnQsXG4pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgZm9yIChjb25zdCBjbG91ZEFjY291bnQgb2YgZW52aXJvbm1lbnQuY2xvdWRBY2NvdW50cykge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNsb3VkQWNjb3VudFNlcnZpY2UuaGFzVXNlclBlcm1pc3Npb25Ub0luaXRpYWxpemUoXG4gICAgICBjbG91ZEFjY291bnQuaWQsXG4gICAgKTtcbiAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cbiJdfQ==
package/dist/index.js CHANGED
@@ -1,13 +1,19 @@
1
1
  import "core-js/actual/set/index.js";
2
- import { configure, getConsoleSink } from "@logtape/logtape";
2
+ import { configure, getConsoleSink, getLogger } from "@logtape/logtape";
3
+ import { getOpenTelemetrySink } from "@logtape/otel";
4
+ import { context, SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
5
+ import { logs } from "@opentelemetry/api-logs";
6
+ import { execa } from "execa";
3
7
  import { errAsync, okAsync, ResultAsync } from "neverthrow";
4
8
  import { Octokit } from "octokit";
9
+ import { enableAzureMonitor } from "./adapters/azure-monitor/instrumentation.js";
10
+ import { flushTelemetry } from "./adapters/azure-monitor/telemetry.js";
5
11
  import codemodRegistry from "./adapters/codemods/index.js";
6
12
  import { cliEnvSchema } from "./adapters/commander/env.js";
7
13
  import { makeCli } from "./adapters/commander/index.js";
8
14
  import { makePackageJsonReader } from "./adapters/node/package-json.js";
9
15
  import { makeRepositoryReader } from "./adapters/node/repository.js";
10
- import { getGitHubPAT, OctokitGitHubService, } from "./adapters/octokit/index.js";
16
+ import { getGitHubPAT, isPagopaOrgMember, OctokitGitHubService, } from "./adapters/octokit/index.js";
11
17
  import { makeAzureAuthorizationService } from "./adapters/pagopa-technology/azure-authorization.js";
12
18
  import { getConfig } from "./config.js";
13
19
  import { getInfo } from "./domain/info.js";
@@ -21,17 +27,46 @@ import { listCodemods } from "./use-cases/list-codemods.js";
21
27
  * (including the ones that emit debug logs while parsing prompts).
22
28
  */
23
29
  const detectVerboseFromArgv = (argv) => argv.includes("-v") || argv.includes("--verbose");
30
+ /**
31
+ * Returns `true` for invocations that should not require GitHub login or emit
32
+ * telemetry: `--version`/`-V`, `--help`/`-h`, the `help` subcommand, and the
33
+ * bare `dx` (which only prints usage).
34
+ *
35
+ * We inspect argv directly — instead of relying on Commander — because the
36
+ * login/telemetry gate must run before `parseAsync()`, and Commander's
37
+ * `preAction` hook fires too late (after the root span has already started).
38
+ * Note `-v` is the verbose flag, not version; version is `-V`.
39
+ */
40
+ const isVersionOrHelp = (argv) => {
41
+ const args = argv.slice(2);
42
+ return (args.length === 0 ||
43
+ args[0] === "help" ||
44
+ args.includes("--help") ||
45
+ args.includes("-h") ||
46
+ args.includes("--version") ||
47
+ args.includes("-V"));
48
+ };
24
49
  const configureLogging = async (verbose) => {
25
50
  const level = verbose ? "debug" : "info";
51
+ // Wire logtape logs to the same OTel LoggerProvider that useAzureMonitor()
52
+ // registered globally. When telemetry is disabled the provider is a no-op,
53
+ // so this is always safe to call unconditionally.
54
+ const otelSink = getOpenTelemetrySink({
55
+ loggerProvider: logs.getLoggerProvider(),
56
+ });
26
57
  await configure({
27
58
  loggers: [
28
- { category: ["dx-cli"], lowestLevel: level, sinks: ["console"] },
59
+ { category: ["dx-cli"], lowestLevel: level, sinks: ["console", "otel"] },
29
60
  // The environment generator (`gen.env`) emits debug messages about
30
61
  // provisioned Azure resources; surfacing them is the main value of
31
62
  // `--verbose` when running `dx init` / `dx add environment`.
32
- { category: ["gen"], lowestLevel: level, sinks: ["console"] },
63
+ { category: ["gen"], lowestLevel: level, sinks: ["console", "otel"] },
33
64
  // `savemoney` already emits structured debug output by default.
34
- { category: ["savemoney"], lowestLevel: "debug", sinks: ["console"] },
65
+ {
66
+ category: ["savemoney"],
67
+ lowestLevel: "debug",
68
+ sinks: ["console", "otel"],
69
+ },
35
70
  { category: ["json"], lowestLevel: "info", sinks: ["rawJson"] },
36
71
  {
37
72
  category: ["logtape", "meta"],
@@ -41,6 +76,7 @@ const configureLogging = async (verbose) => {
41
76
  ],
42
77
  sinks: {
43
78
  console: getConsoleSink(),
79
+ otel: otelSink,
44
80
  rawJson(record) {
45
81
  console.log(record.rawMessage);
46
82
  },
@@ -48,7 +84,26 @@ const configureLogging = async (verbose) => {
48
84
  });
49
85
  };
50
86
  export const runCli = async (version) => {
51
- await configureLogging(detectVerboseFromArgv(process.argv));
87
+ const verbose = detectVerboseFromArgv(process.argv);
88
+ // Enforce GitHub login (for every command except --version/--help) and decide
89
+ // whether telemetry is allowed. This runs before configureLogging() so the
90
+ // logtape OTel sink binds to the real LoggerProvider only when telemetry is
91
+ // enabled, and before the root span starts so enablement actually affects it.
92
+ if (!isVersionOrHelp(process.argv)) {
93
+ const token = await getGitHubPAT();
94
+ if (!token) {
95
+ await configureLogging(verbose);
96
+ getLogger(["dx-cli"]).error("You need to be logged in to GitHub. Run `gh auth login`, or set the GH_TOKEN or GITHUB_TOKEN environment variable.");
97
+ process.exitCode = 1;
98
+ return;
99
+ }
100
+ // Telemetry is restricted to PagoPA org members; everyone else uses the CLI
101
+ // normally with telemetry disabled.
102
+ if (await isPagopaOrgMember(token)) {
103
+ enableAzureMonitor();
104
+ }
105
+ }
106
+ await configureLogging(verbose);
52
107
  const repositoryReader = makeRepositoryReader();
53
108
  const packageJsonReader = makePackageJsonReader();
54
109
  /**
@@ -77,6 +132,75 @@ export const runCli = async (version) => {
77
132
  listCodemods: listCodemods(codemodRegistry),
78
133
  };
79
134
  const program = makeCli(deps, config, useCases, env, version);
80
- program.parse();
135
+ // Store the CLI version on the root program so hooks and exitWithError can
136
+ // retrieve it without needing it passed through every call site.
137
+ program.setOptionValue("_cliVersion", version);
138
+ // Fetch tool versions concurrently before parseAsync() so they are ready
139
+ // when the preAction hook fires (which is synchronous).
140
+ const [azVersion, tfVersion] = await Promise.all([
141
+ execa("az", ["version", "--output", "json"])
142
+ .then(({ stdout }) => JSON.parse(stdout)["azure-cli"])
143
+ .catch(() => undefined),
144
+ execa("terraform", ["version", "-json"])
145
+ .then(({ stdout }) => JSON.parse(stdout)["terraform_version"])
146
+ .catch(() => undefined),
147
+ ]);
148
+ // Rename the root span to the actual command (e.g. "init", "codemod apply")
149
+ // and tag it with CLI metadata. This runs inside context.with(rootSpan, ...)
150
+ // below, so trace.getActiveSpan() returns rootSpan.
151
+ program.hook("preAction", (_thisCommand, actionCommand) => {
152
+ trace.getActiveSpan()?.updateName(getCommandPath(actionCommand) || "dx");
153
+ const attrs = {
154
+ "cli.version": version,
155
+ "node.version": process.versions.node,
156
+ };
157
+ if (azVersion)
158
+ attrs["az.version"] = azVersion;
159
+ if (tfVersion)
160
+ attrs["terraform.version"] = tfVersion;
161
+ trace.getActiveSpan()?.setAttributes(attrs);
162
+ });
163
+ // exitOverride makes command.error() throw a CommanderError instead of
164
+ // calling process.exit(), so the finally block below always runs.
165
+ program.exitOverride();
166
+ // Create a single root span for the entire CLI invocation. Wrapping
167
+ // parseAsync() with context.with() makes this the active span for the
168
+ // duration of all command handlers, which causes every outbound HTTP
169
+ // dependency span (from UndiciInstrumentation) and every logtape log
170
+ // record to share the same operation ID and hang under this span.
171
+ const rootSpan = trace.getTracer("dx-cli", version).startSpan("dx", {
172
+ // SpanKind.SERVER causes Azure Monitor to classify this span as a
173
+ // "Request" rather than a dependency or internal span. This is what
174
+ // makes it appear as the root item at the top of the App Insights
175
+ // End-to-end transaction timeline.
176
+ kind: SpanKind.SERVER,
177
+ });
178
+ try {
179
+ await context.with(trace.setSpan(context.active(), rootSpan), () => program.parseAsync());
180
+ }
181
+ catch (error) {
182
+ rootSpan.setStatus({ code: SpanStatusCode.ERROR });
183
+ // CommanderError is thrown by exitOverride when command.error() is called.
184
+ // Re-apply the exit code so the process exits with the correct status.
185
+ if (error instanceof Error && "exitCode" in error) {
186
+ process.exitCode = error.exitCode;
187
+ }
188
+ }
189
+ finally {
190
+ rootSpan.end();
191
+ await flushTelemetry();
192
+ }
193
+ };
194
+ /** Build a dot-separated command path, e.g. "codemod apply", "add environment". */
195
+ const getCommandPath = (command) => {
196
+ const parts = [];
197
+ let cmd = command;
198
+ while (cmd !== null && cmd.name() !== "") {
199
+ if (cmd.name() !== "dx") {
200
+ parts.unshift(cmd.name());
201
+ }
202
+ cmd = cmd.parent;
203
+ }
204
+ return parts.join(" ");
81
205
  };
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdELE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRWxDLE9BQU8sZUFBZSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDckUsT0FBTyxFQUNMLFlBQVksRUFDWixvQkFBb0IsR0FDckIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFNUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLElBQXVCLEVBQVcsRUFBRSxDQUNqRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7QUFFcEQs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QWUsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEUsWUFBWSxFQUFFLFlBQVksQ0FBQyxlQUFlLENBQUM7S0FDNUMsQ0FBQztJQUVGLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFOUQsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO0FBQ2xCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcImNvcmUtanMvYWN0dWFsL3NldC9pbmRleC5qc1wiO1xuaW1wb3J0IHsgY29uZmlndXJlLCBnZXRDb25zb2xlU2luayB9IGZyb20gXCJAbG9ndGFwZS9sb2d0YXBlXCI7XG5pbXBvcnQgeyBlcnJBc3luYywgb2tBc3luYywgUmVzdWx0QXN5bmMgfSBmcm9tIFwibmV2ZXJ0aHJvd1wiO1xuaW1wb3J0IHsgT2N0b2tpdCB9IGZyb20gXCJvY3Rva2l0XCI7XG5cbmltcG9ydCBjb2RlbW9kUmVnaXN0cnkgZnJvbSBcIi4vYWRhcHRlcnMvY29kZW1vZHMvaW5kZXguanNcIjtcbmltcG9ydCB7IGNsaUVudlNjaGVtYSB9IGZyb20gXCIuL2FkYXB0ZXJzL2NvbW1hbmRlci9lbnYuanNcIjtcbmltcG9ydCB7IG1ha2VDbGkgfSBmcm9tIFwiLi9hZGFwdGVycy9jb21tYW5kZXIvaW5kZXguanNcIjtcbmltcG9ydCB7IG1ha2VQYWNrYWdlSnNvblJlYWRlciB9IGZyb20gXCIuL2FkYXB0ZXJzL25vZGUvcGFja2FnZS1qc29uLmpzXCI7XG5pbXBvcnQgeyBtYWtlUmVwb3NpdG9yeVJlYWRlciB9IGZyb20gXCIuL2FkYXB0ZXJzL25vZGUvcmVwb3NpdG9yeS5qc1wiO1xuaW1wb3J0IHtcbiAgZ2V0R2l0SHViUEFULFxuICBPY3Rva2l0R2l0SHViU2VydmljZSxcbn0gZnJvbSBcIi4vYWRhcHRlcnMvb2N0b2tpdC9pbmRleC5qc1wiO1xuaW1wb3J0IHsgbWFrZUF6dXJlQXV0aG9yaXphdGlvblNlcnZpY2UgfSBmcm9tIFwiLi9hZGFwdGVycy9wYWdvcGEtdGVjaG5vbG9neS9henVyZS1hdXRob3JpemF0aW9uLmpzXCI7XG5pbXBvcnQgeyBnZXRDb25maWcgfSBmcm9tIFwiLi9jb25maWcuanNcIjtcbmltcG9ydCB7IGdldEluZm8gfSBmcm9tIFwiLi9kb21haW4vaW5mby5qc1wiO1xuaW1wb3J0IHsgYXBwbHlDb2RlbW9kQnlJZCB9IGZyb20gXCIuL3VzZS1jYXNlcy9hcHBseS1jb2RlbW9kLmpzXCI7XG5pbXBvcnQgeyBsaXN0Q29kZW1vZHMgfSBmcm9tIFwiLi91c2UtY2FzZXMvbGlzdC1jb2RlbW9kcy5qc1wiO1xuXG4vKipcbiAqIFJldHVybnMgYHRydWVgIHdoZW4gYC12YCBvciBgLS12ZXJib3NlYCBpcyBwcmVzZW50IGluIGFyZ3YuXG4gKlxuICogV2UgaW5zcGVjdCBhcmd2IGRpcmVjdGx5IOKAlCBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gQ29tbWFuZGVyIOKAlCBiZWNhdXNlIHRoZVxuICogbG9ndGFwZSBjb25maWd1cmF0aW9uIG11c3QgYmUgaW4gcGxhY2UgYmVmb3JlIGFueSBjb21tYW5kIGhhbmRsZXIgcnVuc1xuICogKGluY2x1ZGluZyB0aGUgb25lcyB0aGF0IGVtaXQgZGVidWcgbG9ncyB3aGlsZSBwYXJzaW5nIHByb21wdHMpLlxuICovXG5jb25zdCBkZXRlY3RWZXJib3NlRnJvbUFyZ3YgPSAoYXJndjogcmVhZG9ubHkgc3RyaW5nW10pOiBib29sZWFuID0+XG4gIGFyZ3YuaW5jbHVkZXMoXCItdlwiKSB8fCBhcmd2LmluY2x1ZGVzKFwiLS12ZXJib3NlXCIpO1xuXG5jb25zdCBjb25maWd1cmVMb2dnaW5nID0gYXN5bmMgKHZlcmJvc2U6IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgY29uc3QgbGV2ZWwgPSB2ZXJib3NlID8gXCJkZWJ1Z1wiIDogXCJpbmZvXCI7XG4gIGF3YWl0IGNvbmZpZ3VyZSh7XG4gICAgbG9nZ2VyczogW1xuICAgICAgeyBjYXRlZ29yeTogW1wiZHgtY2xpXCJdLCBsb3dlc3RMZXZlbDogbGV2ZWwsIHNpbmtzOiBbXCJjb25zb2xlXCJdIH0sXG4gICAgICAvLyBUaGUgZW52aXJvbm1lbnQgZ2VuZXJhdG9yIChgZ2VuLmVudmApIGVtaXRzIGRlYnVnIG1lc3NhZ2VzIGFib3V0XG4gICAgICAvLyBwcm92aXNpb25lZCBBenVyZSByZXNvdXJjZXM7IHN1cmZhY2luZyB0aGVtIGlzIHRoZSBtYWluIHZhbHVlIG9mXG4gICAgICAvLyBgLS12ZXJib3NlYCB3aGVuIHJ1bm5pbmcgYGR4IGluaXRgIC8gYGR4IGFkZCBlbnZpcm9ubWVudGAuXG4gICAgICB7IGNhdGVnb3J5OiBbXCJnZW5cIl0sIGxvd2VzdExldmVsOiBsZXZlbCwgc2lua3M6IFtcImNvbnNvbGVcIl0gfSxcbiAgICAgIC8vIGBzYXZlbW9uZXlgIGFscmVhZHkgZW1pdHMgc3RydWN0dXJlZCBkZWJ1ZyBvdXRwdXQgYnkgZGVmYXVsdC5cbiAgICAgIHsgY2F0ZWdvcnk6IFtcInNhdmVtb25leVwiXSwgbG93ZXN0TGV2ZWw6IFwiZGVidWdcIiwgc2lua3M6IFtcImNvbnNvbGVcIl0gfSxcbiAgICAgIHsgY2F0ZWdvcnk6IFtcImpzb25cIl0sIGxvd2VzdExldmVsOiBcImluZm9cIiwgc2lua3M6IFtcInJhd0pzb25cIl0gfSxcbiAgICAgIHtcbiAgICAgICAgY2F0ZWdvcnk6IFtcImxvZ3RhcGVcIiwgXCJtZXRhXCJdLFxuICAgICAgICBsb3dlc3RMZXZlbDogXCJ3YXJuaW5nXCIsXG4gICAgICAgIHNpbmtzOiBbXCJjb25zb2xlXCJdLFxuICAgICAgfSxcbiAgICBdLFxuICAgIHNpbmtzOiB7XG4gICAgICBjb25zb2xlOiBnZXRDb25zb2xlU2luaygpLFxuICAgICAgcmF3SnNvbihyZWNvcmQpIHtcbiAgICAgICAgY29uc29sZS5sb2cocmVjb3JkLnJhd01lc3NhZ2UpO1xuICAgICAgfSxcbiAgICB9LFxuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBydW5DbGkgPSBhc3luYyAodmVyc2lvbjogc3RyaW5nKSA9PiB7XG4gIGF3YWl0IGNvbmZpZ3VyZUxvZ2dpbmcoZGV0ZWN0VmVyYm9zZUZyb21Bcmd2KHByb2Nlc3MuYXJndikpO1xuXG4gIGNvbnN0IHJlcG9zaXRvcnlSZWFkZXIgPSBtYWtlUmVwb3NpdG9yeVJlYWRlcigpO1xuICBjb25zdCBwYWNrYWdlSnNvblJlYWRlciA9IG1ha2VQYWNrYWdlSnNvblJlYWRlcigpO1xuXG4gIC8qKlxuICAgKiBMYXppbHkgY3JlYXRlcyBHaXRIdWItYXV0aGVudGljYXRlZCBzZXJ2aWNlcyBvbiBmaXJzdCBjYWxsLlxuICAgKiBPbmx5IGNvbW1hbmRzIHRoYXQgYWN0dWFsbHkgbmVlZCBHaXRIdWIgKGluaXQsIGFkZCkgd2lsbCB0cmlnZ2VyIHRoaXMsXG4gICAqIHNvIGNyZWRlbnRpYWwtZnJlZSBjb21tYW5kcyAoc3BlYywgZG9jdG9yLCBpbmZvLCDigKYpIG5ldmVyIHJlcXVpcmUgYSBQQVQuXG4gICAqL1xuICBjb25zdCByZXF1aXJlR2l0SHViQXV0aCA9ICgpID0+XG4gICAgUmVzdWx0QXN5bmMuZnJvbVByb21pc2UoXG4gICAgICBnZXRHaXRIdWJQQVQoKSxcbiAgICAgIChjYXVzZSkgPT4gbmV3IEVycm9yKFwiRmFpbGVkIHRvIHJlYWQgR2l0SHViIFBBVFwiLCB7IGNhdXNlIH0pLFxuICAgICkuYW5kVGhlbigoYXV0aCkgPT4ge1xuICAgICAgaWYgKCFhdXRoKSB7XG4gICAgICAgIHJldHVybiBlcnJBc3luYyhcbiAgICAgICAgICBuZXcgRXJyb3IoXG4gICAgICAgICAgICBcIkdpdEh1YiBQQVQgaXMgcmVxdWlyZWQuIFBsZWFzZSBzZXQgdGhlIEdIX1RPS0VOIGVudmlyb25tZW50IHZhcmlhYmxlIG9yIGxvZ2luIHVzaW5nIEdpdEh1YiBDTEkuXCIsXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG9jdG9raXQgPSBuZXcgT2N0b2tpdCh7IGF1dGggfSk7XG4gICAgICBjb25zdCBnaXRIdWJTZXJ2aWNlID0gbmV3IE9jdG9raXRHaXRIdWJTZXJ2aWNlKG9jdG9raXQpO1xuICAgICAgY29uc3QgYXV0aG9yaXphdGlvblNlcnZpY2UgPSBtYWtlQXp1cmVBdXRob3JpemF0aW9uU2VydmljZShnaXRIdWJTZXJ2aWNlKTtcbiAgICAgIHJldHVybiBva0FzeW5jKHsgYXV0aG9yaXphdGlvblNlcnZpY2UsIGdpdEh1YlNlcnZpY2UgfSk7XG4gICAgfSk7XG5cbiAgY29uc3QgZGVwcyA9IHtcbiAgICBwYWNrYWdlSnNvblJlYWRlcixcbiAgICByZXBvc2l0b3J5UmVhZGVyLFxuICAgIHJlcXVpcmVHaXRIdWJBdXRoLFxuICB9O1xuXG4gIGNvbnN0IGNvbmZpZyA9IGdldENvbmZpZygpO1xuICBjb25zdCBlbnYgPSBjbGlFbnZTY2hlbWEucGFyc2UocHJvY2Vzcy5lbnYpO1xuXG4gIGNvbnN0IHVzZUNhc2VzID0ge1xuICAgIGFwcGx5Q29kZW1vZEJ5SWQ6IGFwcGx5Q29kZW1vZEJ5SWQoY29kZW1vZFJlZ2lzdHJ5LCBnZXRJbmZvKGRlcHMpKSxcbiAgICBsaXN0Q29kZW1vZHM6IGxpc3RDb2RlbW9kcyhjb2RlbW9kUmVnaXN0cnkpLFxuICB9O1xuXG4gIGNvbnN0IHByb2dyYW0gPSBtYWtlQ2xpKGRlcHMsIGNvbmZpZywgdXNlQ2FzZXMsIGVudiwgdmVyc2lvbik7XG5cbiAgcHJvZ3JhbS5wYXJzZSgpO1xufTtcbiJdfQ==
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzlCLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRWxDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN2RSxPQUFPLGVBQWUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3JFLE9BQU8sRUFDTCxZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLG9CQUFvQixHQUNyQixNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FB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LElBQUksRUFBRSxDQUFDO1lBQ3hCLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUNELEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO0lBQ25CLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDekIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwiY29yZS1qcy9hY3R1YWwvc2V0L2luZGV4LmpzXCI7XG5pbXBvcnQgeyBjb25maWd1cmUsIGdldENvbnNvbGVTaW5rLCBnZXRMb2dnZXIgfSBmcm9tIFwiQGxvZ3RhcGUvbG9ndGFwZVwiO1xuaW1wb3J0IHsgZ2V0T3BlblRlbGVtZXRyeVNpbmsgfSBmcm9tIFwiQGxvZ3RhcGUvb3RlbFwiO1xuaW1wb3J0IHsgY29udGV4dCwgU3BhbktpbmQsIFNwYW5TdGF0dXNDb2RlLCB0cmFjZSB9IGZyb20gXCJAb3BlbnRlbGVtZXRyeS9hcGlcIjtcbmltcG9ydCB7IGxvZ3MgfSBmcm9tIFwiQG9wZW50ZWxlbWV0cnkvYXBpLWxvZ3NcIjtcbmltcG9ydCB7IGV4ZWNhIH0gZnJvbSBcImV4ZWNhXCI7XG5pbXBvcnQgeyBlcnJBc3luYywgb2tBc3luYywgUmVzdWx0QXN5bmMgfSBmcm9tIFwibmV2ZXJ0aHJvd1wiO1xuaW1wb3J0IHsgT2N0b2tpdCB9IGZyb20gXCJvY3Rva2l0XCI7XG5cbmltcG9ydCB7IGVuYWJsZUF6dXJlTW9uaXRvciB9IGZyb20gXCIuL2FkYXB0ZXJzL2F6dXJlLW1vbml0b3IvaW5zdHJ1bWVudGF0aW9uLmpzXCI7XG5pbXBvcnQgeyBmbHVzaFRlbGVtZXRyeSB9IGZyb20gXCIuL2FkYXB0ZXJzL2F6dXJlLW1vbml0b3IvdGVsZW1ldHJ5LmpzXCI7XG5pbXBvcnQgY29kZW1vZFJlZ2lzdHJ5IGZyb20gXCIuL2FkYXB0ZXJzL2NvZGVtb2RzL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBjbGlFbnZTY2hlbWEgfSBmcm9tIFwiLi9hZGFwdGVycy9jb21tYW5kZXIvZW52LmpzXCI7XG5pbXBvcnQgeyBtYWtlQ2xpIH0gZnJvbSBcIi4vYWRhcHRlcnMvY29tbWFuZGVyL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBtYWtlUGFja2FnZUpzb25SZWFkZXIgfSBmcm9tIFwiLi9hZGFwdGVycy9ub2RlL3BhY2thZ2UtanNvbi5qc1wiO1xuaW1wb3J0IHsgbWFrZVJlcG9zaXRvcnlSZWFkZXIgfSBmcm9tIFwiLi9hZGFwdGVycy9ub2RlL3JlcG9zaXRvcnkuanNcIjtcbmltcG9ydCB7XG4gIGdldEdpdEh1YlBBVCxcbiAgaXNQYWdvcGFPcmdNZW1iZXIsXG4gIE9jdG9raXRHaXRIdWJTZXJ2aWNlLFxufSBmcm9tIFwiLi9hZGFwdGVycy9vY3Rva2l0L2luZGV4LmpzXCI7XG5pbXBvcnQgeyBtYWtlQXp1cmVBdXRob3JpemF0aW9uU2VydmljZSB9IGZyb20gXCIuL2FkYXB0ZXJzL3BhZ29wYS10ZWNobm9sb2d5L2F6dXJlLWF1dGhvcml6YXRpb24uanNcIjtcbmltcG9ydCB7IGdldENvbmZpZyB9IGZyb20gXCIuL2NvbmZpZy5qc1wiO1xuaW1wb3J0IHsgZ2V0SW5mbyB9IGZyb20gXCIuL2RvbWFpbi9pbmZvLmpzXCI7XG5pbXBvcnQgeyBhcHBseUNvZGVtb2RCeUlkIH0gZnJvbSBcIi4vdXNlLWNhc2VzL2FwcGx5LWNvZGVtb2QuanNcIjtcbmltcG9ydCB7IGxpc3RDb2RlbW9kcyB9IGZyb20gXCIuL3VzZS1jYXNlcy9saXN0LWNvZGVtb2RzLmpzXCI7XG5cbi8qKlxuICogUmV0dXJucyBgdHJ1ZWAgd2hlbiBgLXZgIG9yIGAtLXZlcmJvc2VgIGlzIHByZXNlbnQgaW4gYXJndi5cbiAqXG4gKiBXZSBpbnNwZWN0IGFyZ3YgZGlyZWN0bHkg4oCUIGluc3RlYWQgb2YgcmVseWluZyBvbiBDb21tYW5kZXIg4oCUIGJlY2F1c2UgdGhlXG4gKiBsb2d0YXBlIGNvbmZpZ3VyYXRpb24gbXVzdCBiZSBpbiBwbGFjZSBiZWZvcmUgYW55IGNvbW1hbmQgaGFuZGxlciBydW5zXG4gKiAoaW5jbHVkaW5nIHRoZSBvbmVzIHRoYXQgZW1pdCBkZWJ1ZyBsb2dzIHdoaWxlIHBhcnNpbmcgcHJvbXB0cykuXG4gKi9cbmNvbnN0IGRldGVjdFZlcmJvc2VGcm9tQXJndiA9IChhcmd2OiByZWFkb25seSBzdHJpbmdbXSk6IGJvb2xlYW4gPT5cbiAgYXJndi5pbmNsdWRlcyhcIi12XCIpIHx8IGFyZ3YuaW5jbHVkZXMoXCItLXZlcmJvc2VcIik7XG5cbi8qKlxuICogUmV0dXJucyBgdHJ1ZWAgZm9yIGludm9jYXRpb25zIHRoYXQgc2hvdWxkIG5vdCByZXF1aXJlIEdpdEh1YiBsb2dpbiBvciBlbWl0XG4gKiB0ZWxlbWV0cnk6IGAtLXZlcnNpb25gL2AtVmAsIGAtLWhlbHBgL2AtaGAsIHRoZSBgaGVscGAgc3ViY29tbWFuZCwgYW5kIHRoZVxuICogYmFyZSBgZHhgICh3aGljaCBvbmx5IHByaW50cyB1c2FnZSkuXG4gKlxuICogV2UgaW5zcGVjdCBhcmd2IGRpcmVjdGx5IOKAlCBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gQ29tbWFuZGVyIOKAlCBiZWNhdXNlIHRoZVxuICogbG9naW4vdGVsZW1ldHJ5IGdhdGUgbXVzdCBydW4gYmVmb3JlIGBwYXJzZUFzeW5jKClgLCBhbmQgQ29tbWFuZGVyJ3NcbiAqIGBwcmVBY3Rpb25gIGhvb2sgZmlyZXMgdG9vIGxhdGUgKGFmdGVyIHRoZSByb290IHNwYW4gaGFzIGFscmVhZHkgc3RhcnRlZCkuXG4gKiBOb3RlIGAtdmAgaXMgdGhlIHZlcmJvc2UgZmxhZywgbm90IHZlcnNpb247IHZlcnNpb24gaXMgYC1WYC5cbiAqL1xuY29uc3QgaXNWZXJzaW9uT3JIZWxwID0gKGFyZ3Y6IHJlYWRvbmx5IHN0cmluZ1tdKTogYm9vbGVhbiA9PiB7XG4gIGNvbnN0IGFyZ3MgPSBhcmd2LnNsaWNlKDIpO1xuICByZXR1cm4gKFxuICAgIGFyZ3MubGVuZ3RoID09PSAwIHx8XG4gICAgYXJnc1swXSA9PT0gXCJoZWxwXCIgfHxcbiAgICBhcmdzLmluY2x1ZGVzKFwiLS1oZWxwXCIpIHx8XG4gICAgYXJncy5pbmNsdWRlcyhcIi1oXCIpIHx8XG4gICAgYXJncy5pbmNsdWRlcyhcIi0tdmVyc2lvblwiKSB8fFxuICAgIGFyZ3MuaW5jbHVkZXMoXCItVlwiKVxuICApO1xufTtcblxuY29uc3QgY29uZmlndXJlTG9nZ2luZyA9IGFzeW5jICh2ZXJib3NlOiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gIGNvbnN0IGxldmVsID0gdmVyYm9zZSA/IFwiZGVidWdcIiA6IFwiaW5mb1wiO1xuICAvLyBXaXJlIGxvZ3RhcGUgbG9ncyB0byB0aGUgc2FtZSBPVGVsIExvZ2dlclByb3ZpZGVyIHRoYXQgdXNlQXp1cmVNb25pdG9yKClcbiAgLy8gcmVnaXN0ZXJlZCBnbG9iYWxseS4gV2hlbiB0ZWxlbWV0cnkgaXMgZGlzYWJsZWQgdGhlIHByb3ZpZGVyIGlzIGEgbm8tb3AsXG4gIC8vIHNvIHRoaXMgaXMgYWx3YXlzIHNhZmUgdG8gY2FsbCB1bmNvbmRpdGlvbmFsbHkuXG4gIGNvbnN0IG90ZWxTaW5rID0gZ2V0T3BlblRlbGVtZXRyeVNpbmsoe1xuICAgIGxvZ2dlclByb3ZpZGVyOiBsb2dzLmdldExvZ2dlclByb3ZpZGVyKCksXG4gIH0pO1xuICBhd2FpdCBjb25maWd1cmUoe1xuICAgIGxvZ2dlcnM6IFtcbiAgICAgIHsgY2F0ZWdvcnk6IFtcImR4LWNsaVwiXSwgbG93ZXN0TGV2ZWw6IGxldmVsLCBzaW5rczogW1wiY29uc29sZVwiLCBcIm90ZWxcIl0gfSxcbiAgICAgIC8vIFRoZSBlbnZpcm9ubWVudCBnZW5lcmF0b3IgKGBnZW4uZW52YCkgZW1pdHMgZGVidWcgbWVzc2FnZXMgYWJvdXRcbiAgICAgIC8vIHByb3Zpc2lvbmVkIEF6dXJlIHJlc291cmNlczsgc3VyZmFjaW5nIHRoZW0gaXMgdGhlIG1haW4gdmFsdWUgb2ZcbiAgICAgIC8vIGAtLXZlcmJvc2VgIHdoZW4gcnVubmluZyBgZHggaW5pdGAgLyBgZHggYWRkIGVudmlyb25tZW50YC5cbiAgICAgIHsgY2F0ZWdvcnk6IFtcImdlblwiXSwgbG93ZXN0TGV2ZWw6IGxldmVsLCBzaW5rczogW1wiY29uc29sZVwiLCBcIm90ZWxcIl0gfSxcbiAgICAgIC8vIGBzYXZlbW9uZXlgIGFscmVhZHkgZW1pdHMgc3RydWN0dXJlZCBkZWJ1ZyBvdXRwdXQgYnkgZGVmYXVsdC5cbiAgICAgIHtcbiAgICAgICAgY2F0ZWdvcnk6IFtcInNhdmVtb25leVwiXSxcbiAgICAgICAgbG93ZXN0TGV2ZWw6IFwiZGVidWdcIixcbiAgICAgICAgc2lua3M6IFtcImNvbnNvbGVcIiwgXCJvdGVsXCJdLFxuICAgICAgfSxcbiAgICAgIHsgY2F0ZWdvcnk6IFtcImpzb25cIl0sIGxvd2VzdExldmVsOiBcImluZm9cIiwgc2lua3M6IFtcInJhd0pzb25cIl0gfSxcbiAgICAgIHtcbiAgICAgICAgY2F0ZWdvcnk6IFtcImxvZ3RhcGVcIiwgXCJtZXRhXCJdLFxuICAgICAgICBsb3dlc3RMZXZlbDogXCJ3YXJuaW5nXCIsXG4gICAgICAgIHNpbmtzOiBbXCJjb25zb2xlXCJdLFxuICAgICAgfSxcbiAgICBdLFxuICAgIHNpbmtzOiB7XG4gICAgICBjb25zb2xlOiBnZXRDb25zb2xlU2luaygpLFxuICAgICAgb3RlbDogb3RlbFNpbmssXG4gICAgICByYXdKc29uKHJlY29yZCkge1xuICAgICAgICBjb25zb2xlLmxvZyhyZWNvcmQucmF3TWVzc2FnZSk7XG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHJ1bkNsaSA9IGFzeW5jICh2ZXJzaW9uOiBzdHJpbmcpID0+IHtcbiAgY29uc3QgdmVyYm9zZSA9IGRldGVjdFZlcmJvc2VGcm9tQXJndihwcm9jZXNzLmFyZ3YpO1xuXG4gIC8vIEVuZm9yY2UgR2l0SHViIGxvZ2luIChmb3IgZXZlcnkgY29tbWFuZCBleGNlcHQgLS12ZXJzaW9uLy0taGVscCkgYW5kIGRlY2lkZVxuICAvLyB3aGV0aGVyIHRlbGVtZXRyeSBpcyBhbGxvd2VkLiBUaGlzIHJ1bnMgYmVmb3JlIGNvbmZpZ3VyZUxvZ2dpbmcoKSBzbyB0aGVcbiAgLy8gbG9ndGFwZSBPVGVsIHNpbmsgYmluZHMgdG8gdGhlIHJlYWwgTG9nZ2VyUHJvdmlkZXIgb25seSB3aGVuIHRlbGVtZXRyeSBpc1xuICAvLyBlbmFibGVkLCBhbmQgYmVmb3JlIHRoZSByb290IHNwYW4gc3RhcnRzIHNvIGVuYWJsZW1lbnQgYWN0dWFsbHkgYWZmZWN0cyBpdC5cbiAgaWYgKCFpc1ZlcnNpb25PckhlbHAocHJvY2Vzcy5hcmd2KSkge1xuICAgIGNvbnN0IHRva2VuID0gYXdhaXQgZ2V0R2l0SHViUEFUKCk7XG4gICAgaWYgKCF0b2tlbikge1xuICAgICAgYXdhaXQgY29uZmlndXJlTG9nZ2luZyh2ZXJib3NlKTtcbiAgICAgIGdldExvZ2dlcihbXCJkeC1jbGlcIl0pLmVycm9yKFxuICAgICAgICBcIllvdSBuZWVkIHRvIGJlIGxvZ2dlZCBpbiB0byBHaXRIdWIuIFJ1biBgZ2ggYXV0aCBsb2dpbmAsIG9yIHNldCB0aGUgR0hfVE9LRU4gb3IgR0lUSFVCX1RPS0VOIGVudmlyb25tZW50IHZhcmlhYmxlLlwiLFxuICAgICAgKTtcbiAgICAgIHByb2Nlc3MuZXhpdENvZGUgPSAxO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBUZWxlbWV0cnkgaXMgcmVzdHJpY3RlZCB0byBQYWdvUEEgb3JnIG1lbWJlcnM7IGV2ZXJ5b25lIGVsc2UgdXNlcyB0aGUgQ0xJXG4gICAgLy8gbm9ybWFsbHkgd2l0aCB0ZWxlbWV0cnkgZGlzYWJsZWQuXG4gICAgaWYgKGF3YWl0IGlzUGFnb3BhT3JnTWVtYmVyKHRva2VuKSkge1xuICAgICAgZW5hYmxlQXp1cmVNb25pdG9yKCk7XG4gICAgfVxuICB9XG5cbiAgYXdhaXQgY29uZmlndXJlTG9nZ2luZyh2ZXJib3NlKTtcblxuICBjb25zdCByZXBvc2l0b3J5UmVhZGVyID0gbWFrZVJlcG9zaXRvcnlSZWFkZXIoKTtcbiAgY29uc3QgcGFja2FnZUpzb25SZWFkZXIgPSBtYWtlUGFja2FnZUpzb25SZWFkZXIoKTtcblxuICAvKipcbiAgICogTGF6aWx5IGNyZWF0ZXMgR2l0SHViLWF1dGhlbnRpY2F0ZWQgc2VydmljZXMgb24gZmlyc3QgY2FsbC5cbiAgICogT25seSBjb21tYW5kcyB0aGF0IGFjdHVhbGx5IG5lZWQgR2l0SHViIChpbml0LCBhZGQpIHdpbGwgdHJpZ2dlciB0aGlzLFxuICAgKiBzbyBjcmVkZW50aWFsLWZyZWUgY29tbWFuZHMgKHNwZWMsIGRvY3RvciwgaW5mbywg4oCmKSBuZXZlciByZXF1aXJlIGEgUEFULlxuICAgKi9cbiAgY29uc3QgcmVxdWlyZUdpdEh1YkF1dGggPSAoKSA9PlxuICAgIFJlc3VsdEFzeW5jLmZyb21Qcm9taXNlKFxuICAgICAgZ2V0R2l0SHViUEFUKCksXG4gICAgICAoY2F1c2UpID0+IG5ldyBFcnJvcihcIkZhaWxlZCB0byByZWFkIEdpdEh1YiBQQVRcIiwgeyBjYXVzZSB9KSxcbiAgICApLmFuZFRoZW4oKGF1dGgpID0+IHtcbiAgICAgIGlmICghYXV0aCkge1xuICAgICAgICByZXR1cm4gZXJyQXN5bmMoXG4gICAgICAgICAgbmV3IEVycm9yKFxuICAgICAgICAgICAgXCJHaXRIdWIgUEFUIGlzIHJlcXVpcmVkLiBQbGVhc2Ugc2V0IHRoZSBHSF9UT0tFTiBlbnZpcm9ubWVudCB2YXJpYWJsZSBvciBsb2dpbiB1c2luZyBHaXRIdWIgQ0xJLlwiLFxuICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBjb25zdCBvY3Rva2l0ID0gbmV3IE9jdG9raXQoeyBhdXRoIH0pO1xuICAgICAgY29uc3QgZ2l0SHViU2VydmljZSA9IG5ldyBPY3Rva2l0R2l0SHViU2VydmljZShvY3Rva2l0KTtcbiAgICAgIGNvbnN0IGF1dGhvcml6YXRpb25TZXJ2aWNlID0gbWFrZUF6dXJlQXV0aG9yaXphdGlvblNlcnZpY2UoZ2l0SHViU2VydmljZSk7XG4gICAgICByZXR1cm4gb2tBc3luYyh7IGF1dGhvcml6YXRpb25TZXJ2aWNlLCBnaXRIdWJTZXJ2aWNlIH0pO1xuICAgIH0pO1xuXG4gIGNvbnN0IGRlcHMgPSB7XG4gICAgcGFja2FnZUpzb25SZWFkZXIsXG4gICAgcmVwb3NpdG9yeVJlYWRlcixcbiAgICByZXF1aXJlR2l0SHViQXV0aCxcbiAgfTtcblxuICBjb25zdCBjb25maWcgPSBnZXRDb25maWcoKTtcbiAgY29uc3QgZW52ID0gY2xpRW52U2NoZW1hLnBhcnNlKHByb2Nlc3MuZW52KTtcblxuICBjb25zdCB1c2VDYXNlcyA9IHtcbiAgICBhcHBseUNvZGVtb2RCeUlkOiBhcHBseUNvZGVtb2RCeUlkKGNvZGVtb2RSZWdpc3RyeSwgZ2V0SW5mbyhkZXBzKSksXG4gICAgbGlzdENvZGVtb2RzOiBsaXN0Q29kZW1vZHMoY29kZW1vZFJlZ2lzdHJ5KSxcbiAgfTtcblxuICBjb25zdCBwcm9ncmFtID0gbWFrZUNsaShkZXBzLCBjb25maWcsIHVzZUNhc2VzLCBlbnYsIHZlcnNpb24pO1xuXG4gIC8vIFN0b3JlIHRoZSBDTEkgdmVyc2lvbiBvbiB0aGUgcm9vdCBwcm9ncmFtIHNvIGhvb2tzIGFuZCBleGl0V2l0aEVycm9yIGNhblxuICAvLyByZXRyaWV2ZSBpdCB3aXRob3V0IG5lZWRpbmcgaXQgcGFzc2VkIHRocm91Z2ggZXZlcnkgY2FsbCBzaXRlLlxuICBwcm9ncmFtLnNldE9wdGlvblZhbHVlKFwiX2NsaVZlcnNpb25cIiwgdmVyc2lvbik7XG5cbiAgLy8gRmV0Y2ggdG9vbCB2ZXJzaW9ucyBjb25jdXJyZW50bHkgYmVmb3JlIHBhcnNlQXN5bmMoKSBzbyB0aGV5IGFyZSByZWFkeVxuICAvLyB3aGVuIHRoZSBwcmVBY3Rpb24gaG9vayBmaXJlcyAod2hpY2ggaXMgc3luY2hyb25vdXMpLlxuICBjb25zdCBbYXpWZXJzaW9uLCB0ZlZlcnNpb25dID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgIGV4ZWNhKFwiYXpcIiwgW1widmVyc2lvblwiLCBcIi0tb3V0cHV0XCIsIFwianNvblwiXSlcbiAgICAgIC50aGVuKFxuICAgICAgICAoeyBzdGRvdXQgfSkgPT5cbiAgICAgICAgICAoSlNPTi5wYXJzZShzdGRvdXQpIGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz4pW1wiYXp1cmUtY2xpXCJdLFxuICAgICAgKVxuICAgICAgLmNhdGNoKCgpID0+IHVuZGVmaW5lZCksXG4gICAgZXhlY2EoXCJ0ZXJyYWZvcm1cIiwgW1widmVyc2lvblwiLCBcIi1qc29uXCJdKVxuICAgICAgLnRoZW4oXG4gICAgICAgICh7IHN0ZG91dCB9KSA9PlxuICAgICAgICAgIChKU09OLnBhcnNlKHN0ZG91dCkgYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPilbXCJ0ZXJyYWZvcm1fdmVyc2lvblwiXSxcbiAgICAgIClcbiAgICAgIC5jYXRjaCgoKSA9PiB1bmRlZmluZWQpLFxuICBdKTtcblxuICAvLyBSZW5hbWUgdGhlIHJvb3Qgc3BhbiB0byB0aGUgYWN0dWFsIGNvbW1hbmQgKGUuZy4gXCJpbml0XCIsIFwiY29kZW1vZCBhcHBseVwiKVxuICAvLyBhbmQgdGFnIGl0IHdpdGggQ0xJIG1ldGFkYXRhLiBUaGlzIHJ1bnMgaW5zaWRlIGNvbnRleHQud2l0aChyb290U3BhbiwgLi4uKVxuICAvLyBiZWxvdywgc28gdHJhY2UuZ2V0QWN0aXZlU3BhbigpIHJldHVybnMgcm9vdFNwYW4uXG4gIHByb2dyYW0uaG9vayhcInByZUFjdGlvblwiLCAoX3RoaXNDb21tYW5kLCBhY3Rpb25Db21tYW5kKSA9PiB7XG4gICAgdHJhY2UuZ2V0QWN0aXZlU3BhbigpPy51cGRhdGVOYW1lKGdldENvbW1hbmRQYXRoKGFjdGlvbkNvbW1hbmQpIHx8IFwiZHhcIik7XG4gICAgY29uc3QgYXR0cnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICBcImNsaS52ZXJzaW9uXCI6IHZlcnNpb24sXG4gICAgICBcIm5vZGUudmVyc2lvblwiOiBwcm9jZXNzLnZlcnNpb25zLm5vZGUsXG4gICAgfTtcbiAgICBpZiAoYXpWZXJzaW9uKSBhdHRyc1tcImF6LnZlcnNpb25cIl0gPSBhelZlcnNpb247XG4gICAgaWYgKHRmVmVyc2lvbikgYXR0cnNbXCJ0ZXJyYWZvcm0udmVyc2lvblwiXSA9IHRmVmVyc2lvbjtcbiAgICB0cmFjZS5nZXRBY3RpdmVTcGFuKCk/LnNldEF0dHJpYnV0ZXMoYXR0cnMpO1xuICB9KTtcblxuICAvLyBleGl0T3ZlcnJpZGUgbWFrZXMgY29tbWFuZC5lcnJvcigpIHRocm93IGEgQ29tbWFuZGVyRXJyb3IgaW5zdGVhZCBvZlxuICAvLyBjYWxsaW5nIHByb2Nlc3MuZXhpdCgpLCBzbyB0aGUgZmluYWxseSBibG9jayBiZWxvdyBhbHdheXMgcnVucy5cbiAgcHJvZ3JhbS5leGl0T3ZlcnJpZGUoKTtcblxuICAvLyBDcmVhdGUgYSBzaW5nbGUgcm9vdCBzcGFuIGZvciB0aGUgZW50aXJlIENMSSBpbnZvY2F0aW9uLiBXcmFwcGluZ1xuICAvLyBwYXJzZUFzeW5jKCkgd2l0aCBjb250ZXh0LndpdGgoKSBtYWtlcyB0aGlzIHRoZSBhY3RpdmUgc3BhbiBmb3IgdGhlXG4gIC8vIGR1cmF0aW9uIG9mIGFsbCBjb21tYW5kIGhhbmRsZXJzLCB3aGljaCBjYXVzZXMgZXZlcnkgb3V0Ym91bmQgSFRUUFxuICAvLyBkZXBlbmRlbmN5IHNwYW4gKGZyb20gVW5kaWNpSW5zdHJ1bWVudGF0aW9uKSBhbmQgZXZlcnkgbG9ndGFwZSBsb2dcbiAgLy8gcmVjb3JkIHRvIHNoYXJlIHRoZSBzYW1lIG9wZXJhdGlvbiBJRCBhbmQgaGFuZyB1bmRlciB0aGlzIHNwYW4uXG4gIGNvbnN0IHJvb3RTcGFuID0gdHJhY2UuZ2V0VHJhY2VyKFwiZHgtY2xpXCIsIHZlcnNpb24pLnN0YXJ0U3BhbihcImR4XCIsIHtcbiAgICAvLyBTcGFuS2luZC5TRVJWRVIgY2F1c2VzIEF6dXJlIE1vbml0b3IgdG8gY2xhc3NpZnkgdGhpcyBzcGFuIGFzIGFcbiAgICAvLyBcIlJlcXVlc3RcIiByYXRoZXIgdGhhbiBhIGRlcGVuZGVuY3kgb3IgaW50ZXJuYWwgc3Bhbi4gVGhpcyBpcyB3aGF0XG4gICAgLy8gbWFrZXMgaXQgYXBwZWFyIGFzIHRoZSByb290IGl0ZW0gYXQgdGhlIHRvcCBvZiB0aGUgQXBwIEluc2lnaHRzXG4gICAgLy8gRW5kLXRvLWVuZCB0cmFuc2FjdGlvbiB0aW1lbGluZS5cbiAgICBraW5kOiBTcGFuS2luZC5TRVJWRVIsXG4gIH0pO1xuXG4gIHRyeSB7XG4gICAgYXdhaXQgY29udGV4dC53aXRoKHRyYWNlLnNldFNwYW4oY29udGV4dC5hY3RpdmUoKSwgcm9vdFNwYW4pLCAoKSA9PlxuICAgICAgcHJvZ3JhbS5wYXJzZUFzeW5jKCksXG4gICAgKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByb290U3Bhbi5zZXRTdGF0dXMoeyBjb2RlOiBTcGFuU3RhdHVzQ29kZS5FUlJPUiB9KTtcbiAgICAvLyBDb21tYW5kZXJFcnJvciBpcyB0aHJvd24gYnkgZXhpdE92ZXJyaWRlIHdoZW4gY29tbWFuZC5lcnJvcigpIGlzIGNhbGxlZC5cbiAgICAvLyBSZS1hcHBseSB0aGUgZXhpdCBjb2RlIHNvIHRoZSBwcm9jZXNzIGV4aXRzIHdpdGggdGhlIGNvcnJlY3Qgc3RhdHVzLlxuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yICYmIFwiZXhpdENvZGVcIiBpbiBlcnJvcikge1xuICAgICAgcHJvY2Vzcy5leGl0Q29kZSA9IChlcnJvciBhcyB7IGV4aXRDb2RlOiBudW1iZXIgfSkuZXhpdENvZGU7XG4gICAgfVxuICB9IGZpbmFsbHkge1xuICAgIHJvb3RTcGFuLmVuZCgpO1xuICAgIGF3YWl0IGZsdXNoVGVsZW1ldHJ5KCk7XG4gIH1cbn07XG5cbi8qKiBCdWlsZCBhIGRvdC1zZXBhcmF0ZWQgY29tbWFuZCBwYXRoLCBlLmcuIFwiY29kZW1vZCBhcHBseVwiLCBcImFkZCBlbnZpcm9ubWVudFwiLiAqL1xuY29uc3QgZ2V0Q29tbWFuZFBhdGggPSAoY29tbWFuZDogaW1wb3J0KFwiY29tbWFuZGVyXCIpLkNvbW1hbmQpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBwYXJ0czogc3RyaW5nW10gPSBbXTtcblxuICBsZXQgY21kOiBpbXBvcnQoXCJjb21tYW5kZXJcIikuQ29tbWFuZCB8IG51bGwgPSBjb21tYW5kO1xuICB3aGlsZSAoY21kICE9PSBudWxsICYmIGNtZC5uYW1lKCkgIT09IFwiXCIpIHtcbiAgICBpZiAoY21kLm5hbWUoKSAhPT0gXCJkeFwiKSB7XG4gICAgICBwYXJ0cy51bnNoaWZ0KGNtZC5uYW1lKCkpO1xuICAgIH1cbiAgICBjbWQgPSBjbWQucGFyZW50O1xuICB9XG4gIHJldHVybiBwYXJ0cy5qb2luKFwiIFwiKTtcbn07XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pagopa/dx-cli",
3
- "version": "0.24.0",
3
+ "version": "0.25.1",
4
4
  "type": "module",
5
5
  "description": "A CLI useful to manage DX tools.",
6
6
  "repository": {
@@ -29,43 +29,51 @@
29
29
  "@azure/arm-resources-subscriptions": "^2.1.0",
30
30
  "@azure/arm-storage": "^19.1.0",
31
31
  "@azure/identity": "^4.13.1",
32
- "@azure/keyvault-secrets": "^4.11.1",
33
- "@azure/storage-blob": "^12.31.0",
34
- "@logtape/logtape": "^1.3.8",
32
+ "@azure/keyvault-secrets": "^4.11.2",
33
+ "@azure/monitor-opentelemetry": "1.18.1",
34
+ "@azure/storage-blob": "^12.33.0",
35
+ "@logtape/logtape": "^1.3.11",
36
+ "@logtape/otel": "1.3.8",
35
37
  "@microsoft/microsoft-graph-client": "^3.0.7",
38
+ "@opentelemetry/api": "^1.9.1",
39
+ "@opentelemetry/api-logs": "^0.218.0",
40
+ "@opentelemetry/instrumentation": "^0.218.0",
41
+ "@opentelemetry/instrumentation-undici": "^0.28.0",
42
+ "@opentelemetry/sdk-logs": "^0.218.0",
36
43
  "chalk": "^5.6.2",
37
44
  "commander": "^14.0.3",
38
45
  "core-js": "^3.49.0",
39
46
  "execa": "^9.6.1",
40
47
  "glob": "^11.1.0",
48
+ "import-in-the-middle": "^3.2.0",
41
49
  "inquirer": "^9.3.8",
42
50
  "libsodium-wrappers": "^0.8.4",
43
51
  "neverthrow": "^8.2.0",
44
52
  "node-plop": "^0.32.3",
45
53
  "octokit": "^5.0.5",
46
- "ora": "^9.4.0",
54
+ "ora": "^9.4.1",
47
55
  "replace-in-file": "^8.4.0",
48
- "semver": "^7.7.4",
49
- "yaml": "^2.8.4",
50
- "zod": "^4.4.2",
51
- "@pagopa/dx-savemoney": "^0.3.2"
56
+ "semver": "^7.8.5",
57
+ "yaml": "^2.9.0",
58
+ "zod": "^4.4.3",
59
+ "@pagopa/dx-savemoney": "^0.3.3"
52
60
  },
53
61
  "devDependencies": {
54
62
  "@tsconfig/node24": "24.0.4",
55
- "@types/inquirer": "^9.0.9",
63
+ "@types/inquirer": "^9.0.10",
56
64
  "@types/libsodium-wrappers": "^0.8.2",
57
- "@types/node": "^22.19.17",
65
+ "@types/node": "^22.20.0",
58
66
  "@types/semver": "^7.7.1",
59
- "@vitest/coverage-v8": "^4.1.8",
60
- "eslint": "^10.3.0",
67
+ "@vitest/coverage-v8": "^4.1.9",
68
+ "eslint": "^10.6.0",
61
69
  "fast-check": "^4.8.0",
62
- "memfs": "^4.57.2",
70
+ "memfs": "^4.57.8",
63
71
  "plop": "^4.0.5",
64
72
  "prettier": "3.8.3",
65
73
  "typescript": "~5.9.3",
66
- "vitest": "^4.1.8",
74
+ "vitest": "^4.1.9",
67
75
  "vitest-mock-extended": "^4.0.0",
68
- "@pagopa/eslint-config": "^6.1.0"
76
+ "@pagopa/eslint-config": "^6.2.0"
69
77
  },
70
78
  "engines": {
71
79
  "node": ">=22.0.0"