@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.
- package/README.md +14 -0
- package/bin/index.js +13 -3
- package/dist/adapters/azure/cloud-account-service.js +169 -92
- package/dist/adapters/azure/locations.d.ts +5 -1
- package/dist/adapters/azure/locations.js +1 -1
- package/dist/adapters/azure-monitor/instrumentation.d.ts +26 -0
- package/dist/adapters/azure-monitor/instrumentation.js +84 -0
- package/dist/adapters/azure-monitor/telemetry.d.ts +19 -0
- package/dist/adapters/azure-monitor/telemetry.js +28 -0
- package/dist/adapters/commander/commands/add.d.ts +32 -7
- package/dist/adapters/commander/commands/add.js +197 -15
- package/dist/adapters/commander/commands/doctor.js +4 -1
- package/dist/adapters/commander/commands/init.js +64 -15
- package/dist/adapters/github/github-repo.js +20 -2
- package/dist/adapters/octokit/index.d.ts +12 -0
- package/dist/adapters/octokit/index.js +26 -2
- package/dist/adapters/plop/actions/setup-pnpm.js +5 -1
- package/dist/adapters/plop/actions/sync-repository-environments.d.ts +15 -0
- package/dist/adapters/plop/actions/sync-repository-environments.js +98 -0
- package/dist/adapters/plop/generators/environment/actions.js +4 -1
- package/dist/adapters/plop/generators/environment/index.d.ts +3 -3
- package/dist/adapters/plop/generators/environment/index.js +6 -3
- package/dist/adapters/plop/generators/environment/prompts.d.ts +38 -0
- package/dist/adapters/plop/generators/environment/prompts.js +236 -91
- package/dist/adapters/plop/index.d.ts +3 -3
- package/dist/adapters/plop/index.js +5 -5
- package/dist/domain/authorization.js +4 -4
- package/dist/domain/environment.d.ts +6 -1
- package/dist/domain/environment.js +1 -1
- package/dist/index.js +132 -8
- package/package.json +24 -16
- 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
|
|
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-
|
|
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,
|
|
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:
|
|
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,
|
|
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
|
-
{
|
|
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
|
-
|
|
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
|
|
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.
|
|
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.
|
|
33
|
-
"@azure/
|
|
34
|
-
"@
|
|
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.
|
|
54
|
+
"ora": "^9.4.1",
|
|
47
55
|
"replace-in-file": "^8.4.0",
|
|
48
|
-
"semver": "^7.
|
|
49
|
-
"yaml": "^2.
|
|
50
|
-
"zod": "^4.4.
|
|
51
|
-
"@pagopa/dx-savemoney": "^0.3.
|
|
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.
|
|
63
|
+
"@types/inquirer": "^9.0.10",
|
|
56
64
|
"@types/libsodium-wrappers": "^0.8.2",
|
|
57
|
-
"@types/node": "^22.
|
|
65
|
+
"@types/node": "^22.20.0",
|
|
58
66
|
"@types/semver": "^7.7.1",
|
|
59
|
-
"@vitest/coverage-v8": "^4.1.
|
|
60
|
-
"eslint": "^10.
|
|
67
|
+
"@vitest/coverage-v8": "^4.1.9",
|
|
68
|
+
"eslint": "^10.6.0",
|
|
61
69
|
"fast-check": "^4.8.0",
|
|
62
|
-
"memfs": "^4.57.
|
|
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.
|
|
74
|
+
"vitest": "^4.1.9",
|
|
67
75
|
"vitest-mock-extended": "^4.0.0",
|
|
68
|
-
"@pagopa/eslint-config": "^6.
|
|
76
|
+
"@pagopa/eslint-config": "^6.2.0"
|
|
69
77
|
},
|
|
70
78
|
"engines": {
|
|
71
79
|
"node": ">=22.0.0"
|