@pagopa/dx-cli 0.23.4 → 0.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/commander/commands/add.js +2 -1
- package/dist/adapters/pagopa-technology/azure-authorization.js +11 -11
- package/dist/domain/authorization.d.ts +1 -0
- package/dist/domain/authorization.js +2 -1
- package/package.json +3 -3
- package/templates/monorepo/.pre-commit-config.yaml.hbs +0 -8
|
@@ -42,6 +42,7 @@ export const authorizeCloudAccounts = (authorizationService) => (envPayload) =>
|
|
|
42
42
|
envShort,
|
|
43
43
|
prefix,
|
|
44
44
|
repoName: envPayload.github.repo,
|
|
45
|
+
repoOwner: envPayload.github.owner,
|
|
45
46
|
subscriptionName: account.displayName,
|
|
46
47
|
});
|
|
47
48
|
if (!input.success) {
|
|
@@ -110,4 +111,4 @@ export const makeAddCommand = (requireGitHubAuth, env) => new Command()
|
|
|
110
111
|
.andThen(({ authorizationService, gitHubService }) => addEnvironmentAction(authorizationService, gitHubService, presenter))
|
|
111
112
|
.match(reportSummary(presenter, outputMode), reportCommandError(this, presenter, outputMode));
|
|
112
113
|
}));
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FkYXB0ZXJzL2NvbW1hbmRlci9jb21tYW5kcy9hZGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdDLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQjs7Ozs7Ozs7R0FRRztBQUNILE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFPbEQsT0FBTyxFQUdMLCtCQUErQixHQUNoQyxNQUFNLGtDQUFrQyxDQUFDO0FBRTFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRWxFLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUUsT0FBTyxFQUNMLG1DQUFtQyxFQUNuQyxlQUFlLEVBQ2YsK0JBQStCLEdBQ2hDLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25FLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsaUJBQWlCLEdBQ2xCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTNEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQ2pDLENBQUMsb0JBQTBDLEVBQUUsRUFBRSxDQUMvQyxDQUNFLFVBQThCLEVBQ2EsRUFBRTtJQUM3QyxNQUFNLG9CQUFvQixHQUN4QixVQUFVLENBQUMsSUFBSSxFQUFFLHlCQUF5QixJQUFJLEVBQUUsQ0FBQztJQUVuRCxJQUFJLG9CQUFvQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN0QyxPQUFPLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLGlCQUFpQixDQUFDLENBQUMsQ0FBQztJQUN4RCxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUM7SUFDeEMsTUFBTSxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFeEMsTUFBTSxVQUFVLEdBQUcsS0FBSyxJQUFvQyxFQUFFO1FBQzVELE1BQU0sT0FBTyxHQUEwQixFQUFFLENBQUM7UUFFMUMsS0FBSyxNQUFNLE9BQU8sSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7Z0JBQzlDLE1BQU0sQ0FBQyxJQUFJLENBQ1QsNERBQTRELEVBQzVELEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FDakMsQ0FBQztnQkFDRixTQUFTO1lBQ1gsQ0FBQztZQUVELE1BQU0sUUFBUSxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDeEQsTUFBTSxLQUFLLEdBQUcsK0JBQStCLENBQUMsU0FBUyxDQUFDO2dCQUN0RCxtQkFBbUIsRUFBRSxHQUFHLE1BQU0sSUFBSSxRQUFRLElBQUksUUFBUSxrQkFBa0I7Z0JBQ3hFLFFBQVE7Z0JBQ1IsTUFBTTtnQkFDTixRQUFRLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJO2dCQUNoQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsV0FBVzthQUN0QyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNuQixNQUFNLENBQUMsSUFBSSxDQUFDLHFEQUFxRCxFQUFFO29CQUNqRSxPQUFPLEVBQUUsT0FBTyxDQUFDLFdBQVc7aUJBQzdCLENBQUMsQ0FBQztnQkFDSCxTQUFTO1lBQ1gsQ0FBQztZQUVELE1BQU0sTUFBTSxHQUFHLE1BQU0sb0JBQW9CLENBQUMsb0JBQW9CLENBQzVELEtBQUssQ0FBQyxJQUFJLENBQ1gsQ0FBQztZQUVGLE1BQU0sQ0FBQyxLQUFLLENBQ1YsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQ3hDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDUixNQUFNLENBQUMsSUFBSSxDQUFDLHFEQUFxRCxFQUFFO2dCQUNqRSxPQUFPLEVBQUUsT0FBTyxDQUFDLFdBQVc7Z0JBQzVCLEtBQUssRUFBRSxLQUFLLENBQUMsT0FBTzthQUNyQixDQUFDLENBQ0wsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDLENBQUM7SUFFRixPQUFPLFdBQVcsQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUNqRSxPQUFPLENBQUMsRUFBRSxDQUFDLENBQ1osQ0FBQztBQUNKLENBQUMsQ0FBQztBQU1KLE1BQU0sY0FBYyxHQUFHLENBQUMsTUFBaUIsRUFBRSxFQUFFO0lBQzNDLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUNwQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLDJDQUEyQyxDQUFDLENBQUMsQ0FBQztJQUUzRSxJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7SUFDYixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7SUFDL0MsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUN4QyxDQUFDLEVBQUUsRUFBK0MsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUNwRSxDQUFDO0lBQ0YsSUFBSSxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLEVBQUUsbURBQW1ELENBQUMsQ0FBQztRQUMxRSxLQUFLLE1BQU0sTUFBTSxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDckQsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLENBQUMsR0FBRyxDQUNULEdBQUcsSUFBSSxXQUFXLEtBQUssQ0FBQyxTQUFTLENBQUMsc0NBQXNDLENBQUMsaUNBQWlDLENBQzNHLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLGFBQWEsR0FDakIsQ0FBQyxTQUEyQixFQUFFLFVBQTJCLEVBQUUsRUFBRSxDQUM3RCxDQUFDLE1BQWlCLEVBQVEsRUFBRTtJQUMxQixJQUFJLFVBQVUsS0FBSyxNQUFNLEVBQUUsQ0FBQztRQUMxQixTQUFTLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7U0FBTSxDQUFDO1FBQ04sY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pCLENBQUM7QUFDSCxDQUFDLENBQUM7QUFFSixNQUFNLFNBQVMsR0FBRyxDQUNoQixTQUEyQixFQUMzQixJQUFZLEVBQ1osSUFBc0IsRUFDdEIsUUFBK0IsRUFDWixFQUFFLENBQ3JCLFdBQVcsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFFckUsTUFBTSxvQkFBb0IsR0FBRyxDQUMzQixvQkFBMEMsRUFDMUMsYUFBNEIsRUFDNUIsU0FBMkIsRUFDSSxFQUFFLENBQ2pDLDhCQUE4QixDQUFDLFNBQVMsQ0FBQztLQUN0QyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQ1osU0FBUyxDQUNQLFNBQVMsRUFDVCx1Q0FBdUMsRUFDdkMsZUFBZSxFQUNmLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQUNyQyxDQUNGO0tBQ0EsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7QUFDaEIsc0VBQXNFO0FBQ3RFLGlFQUFpRTtBQUNqRSxXQUFXLENBQUMsV0FBVyxDQUNyQixtQ0FBbUMsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLEVBQ3hELE9BQU8sQ0FBQyxvREFBb0QsQ0FBQyxDQUM5RCxDQUNGO0tBQ0EsT0FBTyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUNsQyxTQUFTLENBQ1AsU0FBUyxFQUNULHlCQUF5QixFQUN6QixHQUFHLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLEVBQ3pELE9BQU8sQ0FBQyw2Q0FBNkMsQ0FBQyxDQUN2RCxDQUNGO0tBQ0EsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FDbkIsc0JBQXNCLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQ3ZELENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDckIsZ0JBQWdCO0NBQ2pCLENBQUMsQ0FDSCxDQUNGLENBQUM7QUFFTixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FDNUIsaUJBQW9DLEVBQ3BDLEdBQVcsRUFDRixFQUFFLENBQ1gsSUFBSSxPQUFPLEVBQUU7S0FDVixJQUFJLENBQUMsS0FBSyxDQUFDO0tBQ1gsV0FBVyxDQUFDLHVDQUF1QyxDQUFDO0tBQ3BELFVBQVUsQ0FDVCxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUM7S0FDdkIsV0FBVyxDQUFDLGtDQUFrQyxDQUFDO0tBQy9DLE1BQU0sQ0FBQyxLQUFLO0lBQ1gsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQWlCLENBQUM7SUFDekQsTUFBTSxVQUFVLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2xELE1BQU0sU0FBUyxHQUFHLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXJELE1BQU0saUJBQWlCLEVBQUU7U0FDdEIsT0FBTyxDQUFDLENBQUMsRUFBRSxvQkFBb0IsRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLENBQ25ELG9CQUFvQixDQUNsQixvQkFBb0IsRUFDcEIsYUFBYSxFQUNiLFNBQVMsQ0FDVixDQUNGO1NBQ0EsS0FBSyxDQUNKLGFBQWEsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLEVBQ3BDLGtCQUFrQixDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQ2hELENBQUM7QUFDTixDQUFDLENBQUMsQ0FDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0TG9nZ2VyIH0gZnJvbSBcIkBsb2d0YXBlL2xvZ3RhcGVcIjtcbmltcG9ydCBjaGFsayBmcm9tIFwiY2hhbGtcIjtcbi8qKlxuICogQWRkIGNvbW1hbmQgLSBTY2FmZm9sZCBuZXcgY29tcG9uZW50cyBpbnRvIGV4aXN0aW5nIHdvcmtzcGFjZXNcbiAqXG4gKiBUaGlzIG1vZHVsZSBpbXBsZW1lbnRzIHRoZSBgZHggYWRkYCBjb21tYW5kIHdoaWNoIGFsbG93cyBkZXZlbG9wZXJzIHRvIHNjYWZmb2xkXG4gKiBuZXcgY29tcG9uZW50cyBpbnRvIHRoZWlyIGV4aXN0aW5nIHdvcmtzcGFjZSBmb2xsb3dpbmcgRGV2RXggZ3VpZGVsaW5lcy5cbiAqXG4gKiBDdXJyZW50bHkgc3VwcG9ydGVkIGNvbXBvbmVudHM6XG4gKiAtIGVudmlyb25tZW50OiBBZGQgYSBuZXcgZGVwbG95bWVudCBlbnZpcm9ubWVudCB0byB0aGUgcHJvamVjdFxuICovXG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSBcImNvbW1hbmRlclwiO1xuaW1wb3J0IHsgb2tBc3luYywgUmVzdWx0QXN5bmMgfSBmcm9tIFwibmV2ZXJ0aHJvd1wiO1xuXG5pbXBvcnQgdHlwZSB7IENvbW1hbmRQcmVzZW50ZXIgfSBmcm9tIFwiLi4vLi4vLi4vZG9tYWluL2NvbW1hbmQtcHJlc2VudGVyLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFBheWxvYWQgYXMgRW52aXJvbm1lbnRQYXlsb2FkIH0gZnJvbSBcIi4uLy4uL3Bsb3AvZ2VuZXJhdG9ycy9lbnZpcm9ubWVudC9pbmRleC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBDbGlFbnYgfSBmcm9tIFwiLi4vZW52LmpzXCI7XG5pbXBvcnQgdHlwZSB7IEdsb2JhbE9wdGlvbnMgfSBmcm9tIFwiLi4vZ2xvYmFsLW9wdGlvbnMuanNcIjtcblxuaW1wb3J0IHtcbiAgQXV0aG9yaXphdGlvblJlc3VsdCxcbiAgQXV0aG9yaXphdGlvblNlcnZpY2UsXG4gIHJlcXVlc3RBdXRob3JpemF0aW9uSW5wdXRTY2hlbWEsXG59IGZyb20gXCIuLi8uLi8uLi9kb21haW4vYXV0aG9yaXphdGlvbi5qc1wiO1xuaW1wb3J0IHsgR2l0SHViQXV0aEZhY3RvcnkgfSBmcm9tIFwiLi4vLi4vLi4vZG9tYWluL2RlcGVuZGVuY2llcy5qc1wiO1xuaW1wb3J0IHsgZW52aXJvbm1lbnRTaG9ydCB9IGZyb20gXCIuLi8uLi8uLi9kb21haW4vZW52aXJvbm1lbnQuanNcIjtcbmltcG9ydCB7IHR5cGUgR2l0SHViU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9kb21haW4vZ2l0aHViLmpzXCI7XG5pbXBvcnQgeyBpc0F6dXJlTG9jYXRpb24sIGxvY2F0aW9uU2hvcnQgfSBmcm9tIFwiLi4vLi4vYXp1cmUvbG9jYXRpb25zLmpzXCI7XG5pbXBvcnQge1xuICBjb2xsZWN0RGVwbG95bWVudEVudmlyb25tZW50UGF5bG9hZCxcbiAgZ2V0UGxvcEluc3RhbmNlLFxuICBydW5EZXBsb3ltZW50RW52aXJvbm1lbnRBY3Rpb25zLFxufSBmcm9tIFwiLi4vLi4vcGxvcC9pbmRleC5qc1wiO1xuaW1wb3J0IHsgYXNFcnJvciwgcmVwb3J0Q29tbWFuZEVycm9yIH0gZnJvbSBcIi4uL2NvbW1hbmQtZXJyb3JzLmpzXCI7XG5pbXBvcnQge1xuICBjcmVhdGVDb21tYW5kUHJlc2VudGVyLFxuICByZXNvbHZlT3V0cHV0TW9kZSxcbn0gZnJvbSBcIi4uL3ByZXNlbnRlcnMvaW5kZXguanNcIjtcbmltcG9ydCB7IHJ1bkFkZEVudmlyb25tZW50UHJlY29uZGl0aW9ucyB9IGZyb20gXCIuL2luaXQuanNcIjtcblxuLyoqXG4gKiBBdXRob3JpemUgYSBDbG91ZCBBY2NvdW50IChBenVyZSBTdWJzY3JpcHRpb24sIEFXUyBBY2NvdW50LCAuLi4pLCBjcmVhdGluZyBhIFB1bGwgUmVxdWVzdCBmb3IgZWFjaCBhY2NvdW50IHRoYXQgcmVxdWlyZXMgYXV0aG9yaXphdGlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IGF1dGhvcml6ZUNsb3VkQWNjb3VudHMgPVxuICAoYXV0aG9yaXphdGlvblNlcnZpY2U6IEF1dGhvcml6YXRpb25TZXJ2aWNlKSA9PlxuICAoXG4gICAgZW52UGF5bG9hZDogRW52aXJvbm1lbnRQYXlsb2FkLFxuICApOiBSZXN1bHRBc3luYzxBdXRob3JpemF0aW9uUmVzdWx0W10sIG5ldmVyPiA9PiB7XG4gICAgY29uc3QgYWNjb3VudHNUb0luaXRpYWxpemUgPVxuICAgICAgZW52UGF5bG9hZC5pbml0Py5jbG91ZEFjY291bnRzVG9Jbml0aWFsaXplID8/IFtdO1xuXG4gICAgaWYgKGFjY291bnRzVG9Jbml0aWFsaXplLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIG9rQXN5bmMoW10pO1xuICAgIH1cblxuICAgIGNvbnN0IGxvZ2dlciA9IGdldExvZ2dlcihbXCJkeC1jbGlcIiwgXCJhZGQtZW52aXJvbm1lbnRcIl0pO1xuICAgIGNvbnN0IHsgbmFtZSwgcHJlZml4IH0gPSBlbnZQYXlsb2FkLmVudjtcbiAgICBjb25zdCBlbnZTaG9ydCA9IGVudmlyb25tZW50U2hvcnRbbmFtZV07XG5cbiAgICBjb25zdCByZXF1ZXN0QWxsID0gYXN5bmMgKCk6IFByb21pc2U8QXV0aG9yaXphdGlvblJlc3VsdFtdPiA9PiB7XG4gICAgICBjb25zdCByZXN1bHRzOiBBdXRob3JpemF0aW9uUmVzdWx0W10gPSBbXTtcblxuICAgICAgZm9yIChjb25zdCBhY2NvdW50IG9mIGFjY291bnRzVG9Jbml0aWFsaXplKSB7XG4gICAgICAgIGlmICghaXNBenVyZUxvY2F0aW9uKGFjY291bnQuZGVmYXVsdExvY2F0aW9uKSkge1xuICAgICAgICAgIGxvZ2dlci53YXJuKFxuICAgICAgICAgICAgXCJTa2lwcGluZyBhdXRob3JpemF0aW9uIGZvciB7YWNjb3VudH06IHVuc3VwcG9ydGVkIGxvY2F0aW9uXCIsXG4gICAgICAgICAgICB7IGFjY291bnQ6IGFjY291bnQuZGlzcGxheU5hbWUgfSxcbiAgICAgICAgICApO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbG9jU2hvcnQgPSBsb2NhdGlvblNob3J0W2FjY291bnQuZGVmYXVsdExvY2F0aW9uXTtcbiAgICAgICAgY29uc3QgaW5wdXQgPSByZXF1ZXN0QXV0aG9yaXphdGlvbklucHV0U2NoZW1hLnNhZmVQYXJzZSh7XG4gICAgICAgICAgYm9vdHN0cmFwSWRlbnRpdHlJZDogYCR7cHJlZml4fS0ke2VudlNob3J0fS0ke2xvY1Nob3J0fS1ib290c3RyYXAtaWQtMDFgLFxuICAgICAgICAgIGVudlNob3J0LFxuICAgICAgICAgIHByZWZpeCxcbiAgICAgICAgICByZXBvTmFtZTogZW52UGF5bG9hZC5naXRodWIucmVwbyxcbiAgICAgICAgICBzdWJzY3JpcHRpb25OYW1lOiBhY2NvdW50LmRpc3BsYXlOYW1lLFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIWlucHV0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICBsb2dnZXIud2FybihcIlNraXBwaW5nIGF1dGhvcml6YXRpb24gZm9yIHthY2NvdW50fTogaW52YWxpZCBpbnB1dFwiLCB7XG4gICAgICAgICAgICBhY2NvdW50OiBhY2NvdW50LmRpc3BsYXlOYW1lLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYXV0aG9yaXphdGlvblNlcnZpY2UucmVxdWVzdEF1dGhvcml6YXRpb24oXG4gICAgICAgICAgaW5wdXQuZGF0YSxcbiAgICAgICAgKTtcblxuICAgICAgICByZXN1bHQubWF0Y2goXG4gICAgICAgICAgKGF1dGhSZXN1bHQpID0+IHJlc3VsdHMucHVzaChhdXRoUmVzdWx0KSxcbiAgICAgICAgICAoZXJyb3IpID0+XG4gICAgICAgICAgICBsb2dnZXIud2FybihcIkF1dGhvcml6YXRpb24gcmVxdWVzdCBmYWlsZWQgZm9yIHthY2NvdW50fToge2Vycm9yfVwiLCB7XG4gICAgICAgICAgICAgIGFjY291bnQ6IGFjY291bnQuZGlzcGxheU5hbWUsXG4gICAgICAgICAgICAgIGVycm9yOiBlcnJvci5tZXNzYWdlLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHRzO1xuICAgIH07XG5cbiAgICByZXR1cm4gUmVzdWx0QXN5bmMuZnJvbVByb21pc2UocmVxdWVzdEFsbCgpLCAoKSA9PiBbXSkub3JFbHNlKCgpID0+XG4gICAgICBva0FzeW5jKFtdKSxcbiAgICApO1xuICB9O1xuXG50eXBlIEFkZFJlc3VsdCA9IHtcbiAgYXV0aG9yaXphdGlvblByczogQXV0aG9yaXphdGlvblJlc3VsdFtdO1xufTtcblxuY29uc3QgZGlzcGxheVN1bW1hcnkgPSAocmVzdWx0OiBBZGRSZXN1bHQpID0+IHtcbiAgY29uc3QgeyBhdXRob3JpemF0aW9uUHJzIH0gPSByZXN1bHQ7XG4gIGNvbnNvbGUubG9nKGNoYWxrLmdyZWVuLmJvbGQoXCJcXG5DbG91ZCBlbnZpcm9ubWVudCBjcmVhdGVkIHN1Y2Nlc3NmdWxseSFcIikpO1xuXG4gIGxldCBzdGVwID0gMTtcbiAgY29uc29sZS5sb2coY2hhbGsuZ3JlZW4uYm9sZChcIlxcbk5leHQgU3RlcHM6XCIpKTtcbiAgY29uc3QgcHJzV2l0aFVybCA9IGF1dGhvcml6YXRpb25QcnMuZmlsdGVyKFxuICAgIChwcik6IHByIGlzIEF1dGhvcml6YXRpb25SZXN1bHQgJiB7IHVybDogc3RyaW5nIH0gPT4gcHIudXJsICE9IG51bGwsXG4gICk7XG4gIGlmIChwcnNXaXRoVXJsLmxlbmd0aCA+IDApIHtcbiAgICBjb25zb2xlLmxvZyhgJHtzdGVwKyt9LiBSZXZpZXcgdGhlIEF6dXJlIGF1dGhvcml6YXRpb24gUHVsbCBSZXF1ZXN0KHMpOmApO1xuICAgIGZvciAoY29uc3QgYXV0aFByIG9mIHByc1dpdGhVcmwpIHtcbiAgICAgIGNvbnNvbGUubG9nKGAgICAtICR7Y2hhbGsudW5kZXJsaW5lKGF1dGhQci51cmwpfWApO1xuICAgIH1cbiAgfVxuICBjb25zb2xlLmxvZyhcbiAgICBgJHtzdGVwfS4gVmlzaXQgJHtjaGFsay51bmRlcmxpbmUoXCJodHRwczovL2R4LnBhZ29wYS5pdC9nZXR0aW5nLXN0YXJ0ZWRcIil9IHRvIGRlcGxveSB5b3VyIGZpcnN0IHByb2plY3RcXG5gLFxuICApO1xufTtcblxuLyoqXG4gKiBSb3V0ZXMgdGhlIHN1Y2Nlc3NmdWwgb3V0Y29tZSB0aHJvdWdoIHRoZSBwcmVzZW50ZXI6IEpTT04gbW9kZSBlbWl0cyB0aGVcbiAqIHN0cnVjdHVyZWQgZW52ZWxvcGUgd2hpbGUgdGV4dCBtb2RlIHJlbmRlcnMgdGhlIGh1bWFuLXJlYWRhYmxlIHN1bW1hcnkuXG4gKi9cbmNvbnN0IHJlcG9ydFN1bW1hcnkgPVxuICAocHJlc2VudGVyOiBDb21tYW5kUHJlc2VudGVyLCBvdXRwdXRNb2RlOiBcImpzb25cIiB8IFwidGV4dFwiKSA9PlxuICAocmVzdWx0OiBBZGRSZXN1bHQpOiB2b2lkID0+IHtcbiAgICBpZiAob3V0cHV0TW9kZSA9PT0gXCJqc29uXCIpIHtcbiAgICAgIHByZXNlbnRlci5yZXBvcnRSZXN1bHQocmVzdWx0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGlzcGxheVN1bW1hcnkocmVzdWx0KTtcbiAgICB9XG4gIH07XG5cbmNvbnN0IHRyYWNrU3RlcCA9IDxULCBFPihcbiAgcHJlc2VudGVyOiBDb21tYW5kUHJlc2VudGVyLFxuICBuYW1lOiBzdHJpbmcsXG4gIHRhc2s6ICgpID0+IFByb21pc2U8VD4sXG4gIG1hcEVycm9yOiAoY2F1c2U6IHVua25vd24pID0+IEUsXG4pOiBSZXN1bHRBc3luYzxULCBFPiA9PlxuICBSZXN1bHRBc3luYy5mcm9tUHJvbWlzZShwcmVzZW50ZXIudHJhY2tTdGVwKG5hbWUsIHRhc2spLCBtYXBFcnJvcik7XG5cbmNvbnN0IGFkZEVudmlyb25tZW50QWN0aW9uID0gKFxuICBhdXRob3JpemF0aW9uU2VydmljZTogQXV0aG9yaXphdGlvblNlcnZpY2UsXG4gIGdpdEh1YlNlcnZpY2U6IEdpdEh1YlNlcnZpY2UsXG4gIHByZXNlbnRlcjogQ29tbWFuZFByZXNlbnRlcixcbik6IFJlc3VsdEFzeW5jPEFkZFJlc3VsdCwgRXJyb3I+ID0+XG4gIHJ1bkFkZEVudmlyb25tZW50UHJlY29uZGl0aW9ucyhwcmVzZW50ZXIpXG4gICAgLmFuZFRoZW4oKCkgPT5cbiAgICAgIHRyYWNrU3RlcChcbiAgICAgICAgcHJlc2VudGVyLFxuICAgICAgICBcIkluaXRpYWxpemluZyBlbnZpcm9ubWVudCBnZW5lcmF0b3IuLi5cIixcbiAgICAgICAgZ2V0UGxvcEluc3RhbmNlLFxuICAgICAgICBhc0Vycm9yKFwiRmFpbGVkIHRvIGluaXRpYWxpemUgcGxvcFwiKSxcbiAgICAgICksXG4gICAgKVxuICAgIC5hbmRUaGVuKChwbG9wKSA9PlxuICAgICAgLy8gVGhlIHByb21wdCBwaGFzZSBtdXN0IHJ1biBvdXRzaWRlIHRyYWNrU3RlcDogaW4gdGV4dCBtb2RlIHRyYWNrU3RlcFxuICAgICAgLy8gcmVuZGVycyBhIHNwaW5uZXIgdGhhdCBvY2N1cGllcyB0aGUgVFRZIGFuZCBoaWRlcyB0aGUgcHJvbXB0cy5cbiAgICAgIFJlc3VsdEFzeW5jLmZyb21Qcm9taXNlKFxuICAgICAgICBjb2xsZWN0RGVwbG95bWVudEVudmlyb25tZW50UGF5bG9hZChwbG9wLCBnaXRIdWJTZXJ2aWNlKSxcbiAgICAgICAgYXNFcnJvcihcIkZhaWxlZCB0byBydW4gdGhlIGRlcGxveW1lbnQgZW52aXJvbm1lbnQgZ2VuZXJhdG9yXCIpLFxuICAgICAgKSxcbiAgICApXG4gICAgLmFuZFRoZW4oKHsgZ2VuZXJhdG9yLCBwYXlsb2FkIH0pID0+XG4gICAgICB0cmFja1N0ZXAoXG4gICAgICAgIHByZXNlbnRlcixcbiAgICAgICAgXCJDcmVhdGluZyBlbnZpcm9ubWVudC4uLlwiLFxuICAgICAgICAoKSA9PiBydW5EZXBsb3ltZW50RW52aXJvbm1lbnRBY3Rpb25zKGdlbmVyYXRvciwgcGF5bG9hZCksXG4gICAgICAgIGFzRXJyb3IoXCJGYWlsZWQgdG8gY3JlYXRlIHRoZSBkZXBsb3ltZW50IGVudmlyb25tZW50XCIpLFxuICAgICAgKSxcbiAgICApXG4gICAgLmFuZFRoZW4oKHBheWxvYWQpID0+XG4gICAgICBhdXRob3JpemVDbG91ZEFjY291bnRzKGF1dGhvcml6YXRpb25TZXJ2aWNlKShwYXlsb2FkKS5tYXAoXG4gICAgICAgIChhdXRob3JpemF0aW9uUHJzKSA9PiAoe1xuICAgICAgICAgIGF1dGhvcml6YXRpb25QcnMsXG4gICAgICAgIH0pLFxuICAgICAgKSxcbiAgICApO1xuXG5leHBvcnQgY29uc3QgbWFrZUFkZENvbW1hbmQgPSAoXG4gIHJlcXVpcmVHaXRIdWJBdXRoOiBHaXRIdWJBdXRoRmFjdG9yeSxcbiAgZW52OiBDbGlFbnYsXG4pOiBDb21tYW5kID0+XG4gIG5ldyBDb21tYW5kKClcbiAgICAubmFtZShcImFkZFwiKVxuICAgIC5kZXNjcmlwdGlvbihcIkFkZCBhIG5ldyBjb21wb25lbnQgdG8geW91ciB3b3Jrc3BhY2VcIilcbiAgICAuYWRkQ29tbWFuZChcbiAgICAgIG5ldyBDb21tYW5kKFwiZW52aXJvbm1lbnRcIilcbiAgICAgICAgLmRlc2NyaXB0aW9uKFwiQWRkIGEgbmV3IGRlcGxveW1lbnQgZW52aXJvbm1lbnRcIilcbiAgICAgICAgLmFjdGlvbihhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgY29uc3QgeyBvdXRwdXQgfSA9IHRoaXMub3B0c1dpdGhHbG9iYWxzPEdsb2JhbE9wdGlvbnM+KCk7XG4gICAgICAgICAgY29uc3Qgb3V0cHV0TW9kZSA9IHJlc29sdmVPdXRwdXRNb2RlKGVudiwgb3V0cHV0KTtcbiAgICAgICAgICBjb25zdCBwcmVzZW50ZXIgPSBjcmVhdGVDb21tYW5kUHJlc2VudGVyKG91dHB1dE1vZGUpO1xuXG4gICAgICAgICAgYXdhaXQgcmVxdWlyZUdpdEh1YkF1dGgoKVxuICAgICAgICAgICAgLmFuZFRoZW4oKHsgYXV0aG9yaXphdGlvblNlcnZpY2UsIGdpdEh1YlNlcnZpY2UgfSkgPT5cbiAgICAgICAgICAgICAgYWRkRW52aXJvbm1lbnRBY3Rpb24oXG4gICAgICAgICAgICAgICAgYXV0aG9yaXphdGlvblNlcnZpY2UsXG4gICAgICAgICAgICAgICAgZ2l0SHViU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcmVzZW50ZXIsXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAubWF0Y2goXG4gICAgICAgICAgICAgIHJlcG9ydFN1bW1hcnkocHJlc2VudGVyLCBvdXRwdXRNb2RlKSxcbiAgICAgICAgICAgICAgcmVwb3J0Q29tbWFuZEVycm9yKHRoaXMsIHByZXNlbnRlciwgb3V0cHV0TW9kZSksXG4gICAgICAgICAgICApO1xuICAgICAgICB9KSxcbiAgICApO1xuIl19
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FkYXB0ZXJzL2NvbW1hbmRlci9jb21tYW5kcy9hZGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdDLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQjs7Ozs7Ozs7R0FRRztBQUNILE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFPbEQsT0FBTyxFQUdMLCtCQUErQixHQUNoQyxNQUFNLGtDQUFrQyxDQUFDO0FBRTFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRWxFLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUUsT0FBTyxFQUNMLG1DQUFtQyxFQUNuQyxlQUFlLEVBQ2YsK0JBQStCLEdBQ2hDLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25FLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsaUJBQWlCLEdBQ2xCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTNEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQ2pDLENBQUMsb0JBQTBDLEVBQUUsRUFBRSxDQUMvQyxDQUNFLFVBQThCLEVBQ2EsRUFBRTtJQUM3QyxNQUFNLG9CQUFvQixHQUN4QixVQUFVLENBQUMsSUFBSSxFQUFFLHlCQUF5QixJQUFJLEVBQUUsQ0FBQztJQUVuRCxJQUFJLG9CQUFvQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN0QyxPQUFPLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLGlCQUFpQixDQUFDLENBQUMsQ0FBQztJQUN4RCxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUM7SUFDeEMsTUFBTSxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFeEMsTUFBTSxVQUFVLEdBQUcsS0FBSyxJQUFvQyxFQUFFO1FBQzVELE1BQU0sT0FBTyxHQUEwQixFQUFFLENBQUM7UUFFMUMsS0FBSyxNQUFNLE9BQU8sSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7Z0JBQzlDLE1BQU0sQ0FBQyxJQUFJLENBQ1QsNERBQTRELEVBQzVELEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FDakMsQ0FBQztnQkFDRixTQUFTO1lBQ1gsQ0FBQztZQUVELE1BQU0sUUFBUSxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDeEQsTUFBTSxLQUFLLEdBQUcsK0JBQStCLENBQUMsU0FBUyxDQUFDO2dCQUN0RCxtQkFBbUIsRUFBRSxHQUFHLE1BQU0sSUFBSSxRQUFRLElBQUksUUFBUSxrQkFBa0I7Z0JBQ3hFLFFBQVE7Z0JBQ1IsTUFBTTtnQkFDTixRQUFRLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJO2dCQUNoQyxTQUFTLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLO2dCQUNsQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsV0FBVzthQUN0QyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNuQixNQUFNLENBQUMsSUFBSSxDQUFDLHFEQUFxRCxFQUFFO29CQUNqRSxPQUFPLEVBQUUsT0FBTyxDQUFDLFdBQVc7aUJBQzdCLENBQUMsQ0FBQztnQkFDSCxTQUFTO1lBQ1gsQ0FBQztZQUVELE1BQU0sTUFBTSxHQUFHLE1BQU0sb0JBQW9CLENBQUMsb0JBQW9CLENBQzVELEtBQUssQ0FBQyxJQUFJLENBQ1gsQ0FBQztZQUVGLE1BQU0sQ0FBQyxLQUFLLENBQ1YsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQ3hDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDUixNQUFNLENBQUMsSUFBSSxDQUFDLHFEQUFxRCxFQUFFO2dCQUNqRSxPQUFPLEVBQUUsT0FBTyxDQUFDLFdBQVc7Z0JBQzVCLEtBQUssRUFBRSxLQUFLLENBQUMsT0FBTzthQUNyQixDQUFDLENBQ0wsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDLENBQUM7SUFFRixPQUFPLFdBQVcsQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUNqRSxPQUFPLENBQUMsRUFBRSxDQUFDLENBQ1osQ0FBQztBQUNKLENBQUMsQ0FBQztBQU1KLE1BQU0sY0FBYyxHQUFHLENBQUMsTUFBaUIsRUFBRSxFQUFFO0lBQzNDLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUNwQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLDJDQUEyQyxDQUFDLENBQUMsQ0FBQztJQUUzRSxJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7SUFDYixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7SUFDL0MsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUN4QyxDQUFDLEVBQUUsRUFBK0MsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUNwRSxDQUFDO0lBQ0YsSUFBSSxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLEVBQUUsbURBQW1ELENBQUMsQ0FBQztRQUMxRSxLQUFLLE1BQU0sTUFBTSxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDckQsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLENBQUMsR0FBRyxDQUNULEdBQUcsSUFBSSxXQUFXLEtBQUssQ0FBQyxTQUFTLENBQUMsc0NBQXNDLENBQUMsaUNBQWlDLENBQzNHLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLGFBQWEsR0FDakIsQ0FBQyxTQUEyQixFQUFFLFVBQTJCLEVBQUUsRUFBRSxDQUM3RCxDQUFDLE1BQWlCLEVBQVEsRUFBRTtJQUMxQixJQUFJLFVBQVUsS0FBSyxNQUFNLEVBQUUsQ0FBQztRQUMxQixTQUFTLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7U0FBTSxDQUFDO1FBQ04sY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pCLENBQUM7QUFDSCxDQUFDLENBQUM7QUFFSixNQUFNLFNBQVMsR0FBRyxDQUNoQixTQUEyQixFQUMzQixJQUFZLEVBQ1osSUFBc0IsRUFDdEIsUUFBK0IsRUFDWixFQUFFLENBQ3JCLFdBQVcsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFFckUsTUFBTSxvQkFBb0IsR0FBRyxDQUMzQixvQkFBMEMsRUFDMUMsYUFBNEIsRUFDNUIsU0FBMkIsRUFDSSxFQUFFLENBQ2pDLDhCQUE4QixDQUFDLFNBQVMsQ0FBQztLQUN0QyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQ1osU0FBUyxDQUNQLFNBQVMsRUFDVCx1Q0FBdUMsRUFDdkMsZUFBZSxFQUNmLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQUNyQyxDQUNGO0tBQ0EsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7QUFDaEIsc0VBQXNFO0FBQ3RFLGlFQUFpRTtBQUNqRSxXQUFXLENBQUMsV0FBVyxDQUNyQixtQ0FBbUMsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLEVBQ3hELE9BQU8sQ0FBQyxvREFBb0QsQ0FBQyxDQUM5RCxDQUNGO0tBQ0EsT0FBTyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUNsQyxTQUFTLENBQ1AsU0FBUyxFQUNULHlCQUF5QixFQUN6QixHQUFHLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLEVBQ3pELE9BQU8sQ0FBQyw2Q0FBNkMsQ0FBQyxDQUN2RCxDQUNGO0tBQ0EsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FDbkIsc0JBQXNCLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQ3ZELENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDckIsZ0JBQWdCO0NBQ2pCLENBQUMsQ0FDSCxDQUNGLENBQUM7QUFFTixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FDNUIsaUJBQW9DLEVBQ3BDLEdBQVcsRUFDRixFQUFFLENBQ1gsSUFBSSxPQUFPLEVBQUU7S0FDVixJQUFJLENBQUMsS0FBSyxDQUFDO0tBQ1gsV0FBVyxDQUFDLHVDQUF1QyxDQUFDO0tBQ3BELFVBQVUsQ0FDVCxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUM7S0FDdkIsV0FBVyxDQUFDLGtDQUFrQyxDQUFDO0tBQy9DLE1BQU0sQ0FBQyxLQUFLO0lBQ1gsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQWlCLENBQUM7SUFDekQsTUFBTSxVQUFVLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2xELE1BQU0sU0FBUyxHQUFHLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXJELE1BQU0saUJBQWlCLEVBQUU7U0FDdEIsT0FBTyxDQUFDLENBQUMsRUFBRSxvQkFBb0IsRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLENBQ25ELG9CQUFvQixDQUNsQixvQkFBb0IsRUFDcEIsYUFBYSxFQUNiLFNBQVMsQ0FDVixDQUNGO1NBQ0EsS0FBSyxDQUNKLGFBQWEsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLEVBQ3BDLGtCQUFrQixDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQ2hELENBQUM7QUFDTixDQUFDLENBQUMsQ0FDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0TG9nZ2VyIH0gZnJvbSBcIkBsb2d0YXBlL2xvZ3RhcGVcIjtcbmltcG9ydCBjaGFsayBmcm9tIFwiY2hhbGtcIjtcbi8qKlxuICogQWRkIGNvbW1hbmQgLSBTY2FmZm9sZCBuZXcgY29tcG9uZW50cyBpbnRvIGV4aXN0aW5nIHdvcmtzcGFjZXNcbiAqXG4gKiBUaGlzIG1vZHVsZSBpbXBsZW1lbnRzIHRoZSBgZHggYWRkYCBjb21tYW5kIHdoaWNoIGFsbG93cyBkZXZlbG9wZXJzIHRvIHNjYWZmb2xkXG4gKiBuZXcgY29tcG9uZW50cyBpbnRvIHRoZWlyIGV4aXN0aW5nIHdvcmtzcGFjZSBmb2xsb3dpbmcgRGV2RXggZ3VpZGVsaW5lcy5cbiAqXG4gKiBDdXJyZW50bHkgc3VwcG9ydGVkIGNvbXBvbmVudHM6XG4gKiAtIGVudmlyb25tZW50OiBBZGQgYSBuZXcgZGVwbG95bWVudCBlbnZpcm9ubWVudCB0byB0aGUgcHJvamVjdFxuICovXG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSBcImNvbW1hbmRlclwiO1xuaW1wb3J0IHsgb2tBc3luYywgUmVzdWx0QXN5bmMgfSBmcm9tIFwibmV2ZXJ0aHJvd1wiO1xuXG5pbXBvcnQgdHlwZSB7IENvbW1hbmRQcmVzZW50ZXIgfSBmcm9tIFwiLi4vLi4vLi4vZG9tYWluL2NvbW1hbmQtcHJlc2VudGVyLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFBheWxvYWQgYXMgRW52aXJvbm1lbnRQYXlsb2FkIH0gZnJvbSBcIi4uLy4uL3Bsb3AvZ2VuZXJhdG9ycy9lbnZpcm9ubWVudC9pbmRleC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBDbGlFbnYgfSBmcm9tIFwiLi4vZW52LmpzXCI7XG5pbXBvcnQgdHlwZSB7IEdsb2JhbE9wdGlvbnMgfSBmcm9tIFwiLi4vZ2xvYmFsLW9wdGlvbnMuanNcIjtcblxuaW1wb3J0IHtcbiAgQXV0aG9yaXphdGlvblJlc3VsdCxcbiAgQXV0aG9yaXphdGlvblNlcnZpY2UsXG4gIHJlcXVlc3RBdXRob3JpemF0aW9uSW5wdXRTY2hlbWEsXG59IGZyb20gXCIuLi8uLi8uLi9kb21haW4vYXV0aG9yaXphdGlvbi5qc1wiO1xuaW1wb3J0IHsgR2l0SHViQXV0aEZhY3RvcnkgfSBmcm9tIFwiLi4vLi4vLi4vZG9tYWluL2RlcGVuZGVuY2llcy5qc1wiO1xuaW1wb3J0IHsgZW52aXJvbm1lbnRTaG9ydCB9IGZyb20gXCIuLi8uLi8uLi9kb21haW4vZW52aXJvbm1lbnQuanNcIjtcbmltcG9ydCB7IHR5cGUgR2l0SHViU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9kb21haW4vZ2l0aHViLmpzXCI7XG5pbXBvcnQgeyBpc0F6dXJlTG9jYXRpb24sIGxvY2F0aW9uU2hvcnQgfSBmcm9tIFwiLi4vLi4vYXp1cmUvbG9jYXRpb25zLmpzXCI7XG5pbXBvcnQge1xuICBjb2xsZWN0RGVwbG95bWVudEVudmlyb25tZW50UGF5bG9hZCxcbiAgZ2V0UGxvcEluc3RhbmNlLFxuICBydW5EZXBsb3ltZW50RW52aXJvbm1lbnRBY3Rpb25zLFxufSBmcm9tIFwiLi4vLi4vcGxvcC9pbmRleC5qc1wiO1xuaW1wb3J0IHsgYXNFcnJvciwgcmVwb3J0Q29tbWFuZEVycm9yIH0gZnJvbSBcIi4uL2NvbW1hbmQtZXJyb3JzLmpzXCI7XG5pbXBvcnQge1xuICBjcmVhdGVDb21tYW5kUHJlc2VudGVyLFxuICByZXNvbHZlT3V0cHV0TW9kZSxcbn0gZnJvbSBcIi4uL3ByZXNlbnRlcnMvaW5kZXguanNcIjtcbmltcG9ydCB7IHJ1bkFkZEVudmlyb25tZW50UHJlY29uZGl0aW9ucyB9IGZyb20gXCIuL2luaXQuanNcIjtcblxuLyoqXG4gKiBBdXRob3JpemUgYSBDbG91ZCBBY2NvdW50IChBenVyZSBTdWJzY3JpcHRpb24sIEFXUyBBY2NvdW50LCAuLi4pLCBjcmVhdGluZyBhIFB1bGwgUmVxdWVzdCBmb3IgZWFjaCBhY2NvdW50IHRoYXQgcmVxdWlyZXMgYXV0aG9yaXphdGlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IGF1dGhvcml6ZUNsb3VkQWNjb3VudHMgPVxuICAoYXV0aG9yaXphdGlvblNlcnZpY2U6IEF1dGhvcml6YXRpb25TZXJ2aWNlKSA9PlxuICAoXG4gICAgZW52UGF5bG9hZDogRW52aXJvbm1lbnRQYXlsb2FkLFxuICApOiBSZXN1bHRBc3luYzxBdXRob3JpemF0aW9uUmVzdWx0W10sIG5ldmVyPiA9PiB7XG4gICAgY29uc3QgYWNjb3VudHNUb0luaXRpYWxpemUgPVxuICAgICAgZW52UGF5bG9hZC5pbml0Py5jbG91ZEFjY291bnRzVG9Jbml0aWFsaXplID8/IFtdO1xuXG4gICAgaWYgKGFjY291bnRzVG9Jbml0aWFsaXplLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIG9rQXN5bmMoW10pO1xuICAgIH1cblxuICAgIGNvbnN0IGxvZ2dlciA9IGdldExvZ2dlcihbXCJkeC1jbGlcIiwgXCJhZGQtZW52aXJvbm1lbnRcIl0pO1xuICAgIGNvbnN0IHsgbmFtZSwgcHJlZml4IH0gPSBlbnZQYXlsb2FkLmVudjtcbiAgICBjb25zdCBlbnZTaG9ydCA9IGVudmlyb25tZW50U2hvcnRbbmFtZV07XG5cbiAgICBjb25zdCByZXF1ZXN0QWxsID0gYXN5bmMgKCk6IFByb21pc2U8QXV0aG9yaXphdGlvblJlc3VsdFtdPiA9PiB7XG4gICAgICBjb25zdCByZXN1bHRzOiBBdXRob3JpemF0aW9uUmVzdWx0W10gPSBbXTtcblxuICAgICAgZm9yIChjb25zdCBhY2NvdW50IG9mIGFjY291bnRzVG9Jbml0aWFsaXplKSB7XG4gICAgICAgIGlmICghaXNBenVyZUxvY2F0aW9uKGFjY291bnQuZGVmYXVsdExvY2F0aW9uKSkge1xuICAgICAgICAgIGxvZ2dlci53YXJuKFxuICAgICAgICAgICAgXCJTa2lwcGluZyBhdXRob3JpemF0aW9uIGZvciB7YWNjb3VudH06IHVuc3VwcG9ydGVkIGxvY2F0aW9uXCIsXG4gICAgICAgICAgICB7IGFjY291bnQ6IGFjY291bnQuZGlzcGxheU5hbWUgfSxcbiAgICAgICAgICApO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbG9jU2hvcnQgPSBsb2NhdGlvblNob3J0W2FjY291bnQuZGVmYXVsdExvY2F0aW9uXTtcbiAgICAgICAgY29uc3QgaW5wdXQgPSByZXF1ZXN0QXV0aG9yaXphdGlvbklucHV0U2NoZW1hLnNhZmVQYXJzZSh7XG4gICAgICAgICAgYm9vdHN0cmFwSWRlbnRpdHlJZDogYCR7cHJlZml4fS0ke2VudlNob3J0fS0ke2xvY1Nob3J0fS1ib290c3RyYXAtaWQtMDFgLFxuICAgICAgICAgIGVudlNob3J0LFxuICAgICAgICAgIHByZWZpeCxcbiAgICAgICAgICByZXBvTmFtZTogZW52UGF5bG9hZC5naXRodWIucmVwbyxcbiAgICAgICAgICByZXBvT3duZXI6IGVudlBheWxvYWQuZ2l0aHViLm93bmVyLFxuICAgICAgICAgIHN1YnNjcmlwdGlvbk5hbWU6IGFjY291bnQuZGlzcGxheU5hbWUsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICghaW5wdXQuc3VjY2Vzcykge1xuICAgICAgICAgIGxvZ2dlci53YXJuKFwiU2tpcHBpbmcgYXV0aG9yaXphdGlvbiBmb3Ige2FjY291bnR9OiBpbnZhbGlkIGlucHV0XCIsIHtcbiAgICAgICAgICAgIGFjY291bnQ6IGFjY291bnQuZGlzcGxheU5hbWUsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBhdXRob3JpemF0aW9uU2VydmljZS5yZXF1ZXN0QXV0aG9yaXphdGlvbihcbiAgICAgICAgICBpbnB1dC5kYXRhLFxuICAgICAgICApO1xuXG4gICAgICAgIHJlc3VsdC5tYXRjaChcbiAgICAgICAgICAoYXV0aFJlc3VsdCkgPT4gcmVzdWx0cy5wdXNoKGF1dGhSZXN1bHQpLFxuICAgICAgICAgIChlcnJvcikgPT5cbiAgICAgICAgICAgIGxvZ2dlci53YXJuKFwiQXV0aG9yaXphdGlvbiByZXF1ZXN0IGZhaWxlZCBmb3Ige2FjY291bnR9OiB7ZXJyb3J9XCIsIHtcbiAgICAgICAgICAgICAgYWNjb3VudDogYWNjb3VudC5kaXNwbGF5TmFtZSxcbiAgICAgICAgICAgICAgZXJyb3I6IGVycm9yLm1lc3NhZ2UsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgfTtcblxuICAgIHJldHVybiBSZXN1bHRBc3luYy5mcm9tUHJvbWlzZShyZXF1ZXN0QWxsKCksICgpID0+IFtdKS5vckVsc2UoKCkgPT5cbiAgICAgIG9rQXN5bmMoW10pLFxuICAgICk7XG4gIH07XG5cbnR5cGUgQWRkUmVzdWx0ID0ge1xuICBhdXRob3JpemF0aW9uUHJzOiBBdXRob3JpemF0aW9uUmVzdWx0W107XG59O1xuXG5jb25zdCBkaXNwbGF5U3VtbWFyeSA9IChyZXN1bHQ6IEFkZFJlc3VsdCkgPT4ge1xuICBjb25zdCB7IGF1dGhvcml6YXRpb25QcnMgfSA9IHJlc3VsdDtcbiAgY29uc29sZS5sb2coY2hhbGsuZ3JlZW4uYm9sZChcIlxcbkNsb3VkIGVudmlyb25tZW50IGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5IVwiKSk7XG5cbiAgbGV0IHN0ZXAgPSAxO1xuICBjb25zb2xlLmxvZyhjaGFsay5ncmVlbi5ib2xkKFwiXFxuTmV4dCBTdGVwczpcIikpO1xuICBjb25zdCBwcnNXaXRoVXJsID0gYXV0aG9yaXphdGlvblBycy5maWx0ZXIoXG4gICAgKHByKTogcHIgaXMgQXV0aG9yaXphdGlvblJlc3VsdCAmIHsgdXJsOiBzdHJpbmcgfSA9PiBwci51cmwgIT0gbnVsbCxcbiAgKTtcbiAgaWYgKHByc1dpdGhVcmwubGVuZ3RoID4gMCkge1xuICAgIGNvbnNvbGUubG9nKGAke3N0ZXArK30uIFJldmlldyB0aGUgQXp1cmUgYXV0aG9yaXphdGlvbiBQdWxsIFJlcXVlc3Qocyk6YCk7XG4gICAgZm9yIChjb25zdCBhdXRoUHIgb2YgcHJzV2l0aFVybCkge1xuICAgICAgY29uc29sZS5sb2coYCAgIC0gJHtjaGFsay51bmRlcmxpbmUoYXV0aFByLnVybCl9YCk7XG4gICAgfVxuICB9XG4gIGNvbnNvbGUubG9nKFxuICAgIGAke3N0ZXB9LiBWaXNpdCAke2NoYWxrLnVuZGVybGluZShcImh0dHBzOi8vZHgucGFnb3BhLml0L2dldHRpbmctc3RhcnRlZFwiKX0gdG8gZGVwbG95IHlvdXIgZmlyc3QgcHJvamVjdFxcbmAsXG4gICk7XG59O1xuXG4vKipcbiAqIFJvdXRlcyB0aGUgc3VjY2Vzc2Z1bCBvdXRjb21lIHRocm91Z2ggdGhlIHByZXNlbnRlcjogSlNPTiBtb2RlIGVtaXRzIHRoZVxuICogc3RydWN0dXJlZCBlbnZlbG9wZSB3aGlsZSB0ZXh0IG1vZGUgcmVuZGVycyB0aGUgaHVtYW4tcmVhZGFibGUgc3VtbWFyeS5cbiAqL1xuY29uc3QgcmVwb3J0U3VtbWFyeSA9XG4gIChwcmVzZW50ZXI6IENvbW1hbmRQcmVzZW50ZXIsIG91dHB1dE1vZGU6IFwianNvblwiIHwgXCJ0ZXh0XCIpID0+XG4gIChyZXN1bHQ6IEFkZFJlc3VsdCk6IHZvaWQgPT4ge1xuICAgIGlmIChvdXRwdXRNb2RlID09PSBcImpzb25cIikge1xuICAgICAgcHJlc2VudGVyLnJlcG9ydFJlc3VsdChyZXN1bHQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkaXNwbGF5U3VtbWFyeShyZXN1bHQpO1xuICAgIH1cbiAgfTtcblxuY29uc3QgdHJhY2tTdGVwID0gPFQsIEU+KFxuICBwcmVzZW50ZXI6IENvbW1hbmRQcmVzZW50ZXIsXG4gIG5hbWU6IHN0cmluZyxcbiAgdGFzazogKCkgPT4gUHJvbWlzZTxUPixcbiAgbWFwRXJyb3I6IChjYXVzZTogdW5rbm93bikgPT4gRSxcbik6IFJlc3VsdEFzeW5jPFQsIEU+ID0+XG4gIFJlc3VsdEFzeW5jLmZyb21Qcm9taXNlKHByZXNlbnRlci50cmFja1N0ZXAobmFtZSwgdGFzayksIG1hcEVycm9yKTtcblxuY29uc3QgYWRkRW52aXJvbm1lbnRBY3Rpb24gPSAoXG4gIGF1dGhvcml6YXRpb25TZXJ2aWNlOiBBdXRob3JpemF0aW9uU2VydmljZSxcbiAgZ2l0SHViU2VydmljZTogR2l0SHViU2VydmljZSxcbiAgcHJlc2VudGVyOiBDb21tYW5kUHJlc2VudGVyLFxuKTogUmVzdWx0QXN5bmM8QWRkUmVzdWx0LCBFcnJvcj4gPT5cbiAgcnVuQWRkRW52aXJvbm1lbnRQcmVjb25kaXRpb25zKHByZXNlbnRlcilcbiAgICAuYW5kVGhlbigoKSA9PlxuICAgICAgdHJhY2tTdGVwKFxuICAgICAgICBwcmVzZW50ZXIsXG4gICAgICAgIFwiSW5pdGlhbGl6aW5nIGVudmlyb25tZW50IGdlbmVyYXRvci4uLlwiLFxuICAgICAgICBnZXRQbG9wSW5zdGFuY2UsXG4gICAgICAgIGFzRXJyb3IoXCJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBwbG9wXCIpLFxuICAgICAgKSxcbiAgICApXG4gICAgLmFuZFRoZW4oKHBsb3ApID0+XG4gICAgICAvLyBUaGUgcHJvbXB0IHBoYXNlIG11c3QgcnVuIG91dHNpZGUgdHJhY2tTdGVwOiBpbiB0ZXh0IG1vZGUgdHJhY2tTdGVwXG4gICAgICAvLyByZW5kZXJzIGEgc3Bpbm5lciB0aGF0IG9jY3VwaWVzIHRoZSBUVFkgYW5kIGhpZGVzIHRoZSBwcm9tcHRzLlxuICAgICAgUmVzdWx0QXN5bmMuZnJvbVByb21pc2UoXG4gICAgICAgIGNvbGxlY3REZXBsb3ltZW50RW52aXJvbm1lbnRQYXlsb2FkKHBsb3AsIGdpdEh1YlNlcnZpY2UpLFxuICAgICAgICBhc0Vycm9yKFwiRmFpbGVkIHRvIHJ1biB0aGUgZGVwbG95bWVudCBlbnZpcm9ubWVudCBnZW5lcmF0b3JcIiksXG4gICAgICApLFxuICAgIClcbiAgICAuYW5kVGhlbigoeyBnZW5lcmF0b3IsIHBheWxvYWQgfSkgPT5cbiAgICAgIHRyYWNrU3RlcChcbiAgICAgICAgcHJlc2VudGVyLFxuICAgICAgICBcIkNyZWF0aW5nIGVudmlyb25tZW50Li4uXCIsXG4gICAgICAgICgpID0+IHJ1bkRlcGxveW1lbnRFbnZpcm9ubWVudEFjdGlvbnMoZ2VuZXJhdG9yLCBwYXlsb2FkKSxcbiAgICAgICAgYXNFcnJvcihcIkZhaWxlZCB0byBjcmVhdGUgdGhlIGRlcGxveW1lbnQgZW52aXJvbm1lbnRcIiksXG4gICAgICApLFxuICAgIClcbiAgICAuYW5kVGhlbigocGF5bG9hZCkgPT5cbiAgICAgIGF1dGhvcml6ZUNsb3VkQWNjb3VudHMoYXV0aG9yaXphdGlvblNlcnZpY2UpKHBheWxvYWQpLm1hcChcbiAgICAgICAgKGF1dGhvcml6YXRpb25QcnMpID0+ICh7XG4gICAgICAgICAgYXV0aG9yaXphdGlvblBycyxcbiAgICAgICAgfSksXG4gICAgICApLFxuICAgICk7XG5cbmV4cG9ydCBjb25zdCBtYWtlQWRkQ29tbWFuZCA9IChcbiAgcmVxdWlyZUdpdEh1YkF1dGg6IEdpdEh1YkF1dGhGYWN0b3J5LFxuICBlbnY6IENsaUVudixcbik6IENvbW1hbmQgPT5cbiAgbmV3IENvbW1hbmQoKVxuICAgIC5uYW1lKFwiYWRkXCIpXG4gICAgLmRlc2NyaXB0aW9uKFwiQWRkIGEgbmV3IGNvbXBvbmVudCB0byB5b3VyIHdvcmtzcGFjZVwiKVxuICAgIC5hZGRDb21tYW5kKFxuICAgICAgbmV3IENvbW1hbmQoXCJlbnZpcm9ubWVudFwiKVxuICAgICAgICAuZGVzY3JpcHRpb24oXCJBZGQgYSBuZXcgZGVwbG95bWVudCBlbnZpcm9ubWVudFwiKVxuICAgICAgICAuYWN0aW9uKGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBjb25zdCB7IG91dHB1dCB9ID0gdGhpcy5vcHRzV2l0aEdsb2JhbHM8R2xvYmFsT3B0aW9ucz4oKTtcbiAgICAgICAgICBjb25zdCBvdXRwdXRNb2RlID0gcmVzb2x2ZU91dHB1dE1vZGUoZW52LCBvdXRwdXQpO1xuICAgICAgICAgIGNvbnN0IHByZXNlbnRlciA9IGNyZWF0ZUNvbW1hbmRQcmVzZW50ZXIob3V0cHV0TW9kZSk7XG5cbiAgICAgICAgICBhd2FpdCByZXF1aXJlR2l0SHViQXV0aCgpXG4gICAgICAgICAgICAuYW5kVGhlbigoeyBhdXRob3JpemF0aW9uU2VydmljZSwgZ2l0SHViU2VydmljZSB9KSA9PlxuICAgICAgICAgICAgICBhZGRFbnZpcm9ubWVudEFjdGlvbihcbiAgICAgICAgICAgICAgICBhdXRob3JpemF0aW9uU2VydmljZSxcbiAgICAgICAgICAgICAgICBnaXRIdWJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByZXNlbnRlcixcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5tYXRjaChcbiAgICAgICAgICAgICAgcmVwb3J0U3VtbWFyeShwcmVzZW50ZXIsIG91dHB1dE1vZGUpLFxuICAgICAgICAgICAgICByZXBvcnRDb21tYW5kRXJyb3IodGhpcywgcHJlc2VudGVyLCBvdXRwdXRNb2RlKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pLFxuICAgICk7XG4iXX0=
|
|
@@ -152,23 +152,23 @@ const ensureIdentity = (jsonContent, identityId) => {
|
|
|
152
152
|
},
|
|
153
153
|
};
|
|
154
154
|
};
|
|
155
|
-
const REPO_OWNER = "pagopa";
|
|
156
155
|
const REPO_NAME = "eng-azure-authorization";
|
|
157
156
|
const BASE_BRANCH = "main";
|
|
158
157
|
export const makeAzureAuthorizationService = (gitHubService) => ({
|
|
159
158
|
requestAuthorization(input) {
|
|
160
159
|
const logger = getLogger(["dx-cli", "pagopa-azure-authorization"]);
|
|
161
|
-
const { bootstrapIdentityId, envShort, prefix, repoName, subscriptionName, } = input;
|
|
160
|
+
const { bootstrapIdentityId, envShort, prefix, repoName, repoOwner, subscriptionName, } = input;
|
|
161
|
+
const authorizationRepoOwner = repoOwner;
|
|
162
162
|
const filePath = `src/azure-subscriptions/subscriptions/${subscriptionName}/terraform.tfvars.json`;
|
|
163
163
|
const branchName = `feats/add-${repoName}-${subscriptionName}-bootstrap-identity`;
|
|
164
164
|
return (
|
|
165
165
|
// Step 1: Read file from main to determine if changes are needed
|
|
166
166
|
ResultAsync.fromPromise(gitHubService.getFileContent({
|
|
167
|
-
owner:
|
|
167
|
+
owner: authorizationRepoOwner,
|
|
168
168
|
path: filePath,
|
|
169
169
|
ref: BASE_BRANCH,
|
|
170
170
|
repo: REPO_NAME,
|
|
171
|
-
}), () => new AuthorizationError(`Unable to get ${filePath} in ${
|
|
171
|
+
}), () => new AuthorizationError(`Unable to get ${filePath} in ${authorizationRepoOwner}/${REPO_NAME}`))
|
|
172
172
|
.orTee((error) => {
|
|
173
173
|
logger.error(error.message);
|
|
174
174
|
})
|
|
@@ -202,9 +202,9 @@ export const makeAzureAuthorizationService = (gitHubService) => ({
|
|
|
202
202
|
return (ResultAsync.fromPromise(gitHubService.createBranch({
|
|
203
203
|
branchName,
|
|
204
204
|
fromRef: BASE_BRANCH,
|
|
205
|
-
owner:
|
|
205
|
+
owner: authorizationRepoOwner,
|
|
206
206
|
repo: REPO_NAME,
|
|
207
|
-
}), () => new AuthorizationError(`Unable to create branch ${branchName} in ${
|
|
207
|
+
}), () => new AuthorizationError(`Unable to create branch ${branchName} in ${authorizationRepoOwner}/${REPO_NAME}`))
|
|
208
208
|
.orTee((error) => {
|
|
209
209
|
logger.error(error.message);
|
|
210
210
|
})
|
|
@@ -213,11 +213,11 @@ export const makeAzureAuthorizationService = (gitHubService) => ({
|
|
|
213
213
|
branch: branchName,
|
|
214
214
|
content: JSON.stringify(updatedJson, null, 2),
|
|
215
215
|
message,
|
|
216
|
-
owner:
|
|
216
|
+
owner: authorizationRepoOwner,
|
|
217
217
|
path: filePath,
|
|
218
218
|
repo: REPO_NAME,
|
|
219
219
|
sha,
|
|
220
|
-
}), () => new AuthorizationError(`Unable to update ${filePath} on branch ${branchName} in ${
|
|
220
|
+
}), () => new AuthorizationError(`Unable to update ${filePath} on branch ${branchName} in ${authorizationRepoOwner}/${REPO_NAME}`)))
|
|
221
221
|
.orTee((error) => {
|
|
222
222
|
logger.error(error.message);
|
|
223
223
|
})
|
|
@@ -226,10 +226,10 @@ export const makeAzureAuthorizationService = (gitHubService) => ({
|
|
|
226
226
|
base: BASE_BRANCH,
|
|
227
227
|
body,
|
|
228
228
|
head: branchName,
|
|
229
|
-
owner:
|
|
229
|
+
owner: authorizationRepoOwner,
|
|
230
230
|
repo: REPO_NAME,
|
|
231
231
|
title,
|
|
232
|
-
}), () => new AuthorizationError(`Unable to create pull request from ${branchName} to ${BASE_BRANCH} in ${
|
|
232
|
+
}), () => new AuthorizationError(`Unable to create pull request from ${branchName} to ${BASE_BRANCH} in ${authorizationRepoOwner}/${REPO_NAME}`)))
|
|
233
233
|
.orTee((error) => {
|
|
234
234
|
logger.error(error.message);
|
|
235
235
|
})
|
|
@@ -237,4 +237,4 @@ export const makeAzureAuthorizationService = (gitHubService) => ({
|
|
|
237
237
|
}));
|
|
238
238
|
},
|
|
239
239
|
});
|
|
240
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp1cmUtYXV0aG9yaXphdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hZGFwdGVycy9wYWdvcGEtdGVjaG5vbG9neS9henVyZS1hdXRob3JpemF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0dBT0c7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBVSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDN0UsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUVuQixtQ0FBbUMsR0FFcEMsTUFBTSwrQkFBK0IsQ0FBQztBQUV2QyxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLG9CQUFvQixHQUNyQixNQUFNLGlDQUFpQyxDQUFDO0FBRXpDLE1BQU0sNEJBQTRCLEdBQUcsQ0FBQztLQUNuQyxNQUFNLENBQUM7SUFDTixpQkFBaUIsRUFBRSxDQUFDO1NBQ2pCLE1BQU0sQ0FBQztRQUNOLHVCQUF1QixFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0tBQzdDLENBQUM7U0FDRCxLQUFLLEVBQUU7SUFDVixNQUFNLEVBQUUsQ0FBQztTQUNOLEtBQUssQ0FDSixDQUFDO1NBQ0UsTUFBTSxDQUFDO1FBQ04sT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzVCLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO1FBQ2hCLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztLQUMzQixDQUFDO1NBQ0QsS0FBSyxFQUFFLENBQ1g7U0FDQSxRQUFRLEVBQUU7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aUJBQ0EsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2YsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDOUIsQ0FBQyxDQUFDO2lCQUNELEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDaEQsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDSixDQUFDO0NBQ0YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQYWdvUEEgVGVjaG5vbG9neSBBenVyZSBBdXRob3JpemF0aW9uIEFkYXB0ZXJcbiAqXG4gKiBJbXBsZW1lbnRzIHRoZSBBdXRob3JpemF0aW9uU2VydmljZSBpbnRlcmZhY2UgZm9yIHRoZSBQYWdvUEEgQXp1cmVcbiAqIGF1dGhvcml6YXRpb24gd29ya2Zsb3cuIEVuY2Fwc3VsYXRlcyBhbGwgcGxhdGZvcm0tc3BlY2lmaWMgZGV0YWlsczpcbiAqIHRoZSB0YXJnZXQgR2l0SHViIHJlcG9zaXRvcnksIGZpbGUgcGF0aHMsIGJyYW5jaCBuYW1pbmcsIEpTT04gZmlsZVxuICogcGFyc2luZywgYW5kIHB1bGwgcmVxdWVzdCBjcmVhdGlvbi5cbiAqL1xuXG5pbXBvcnQgeyBnZXRMb2dnZXIgfSBmcm9tIFwiQGxvZ3RhcGUvbG9ndGFwZVwiO1xuaW1wb3J0IHsgZXJyLCBlcnJBc3luYywgb2ssIG9rQXN5bmMsIFJlc3VsdCwgUmVzdWx0QXN5bmMgfSBmcm9tIFwibmV2ZXJ0aHJvd1wiO1xuaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcblxuaW1wb3J0IHtcbiAgQXV0aG9yaXphdGlvbkVycm9yLFxuICBBdXRob3JpemF0aW9uUmVzdWx0LFxuICBBdXRob3JpemF0aW9uU2VydmljZSxcbiAgSW52YWxpZEF1dGhvcml6YXRpb25GaWxlRm9ybWF0RXJyb3IsXG4gIFJlcXVlc3RBdXRob3JpemF0aW9uSW5wdXQsXG59IGZyb20gXCIuLi8uLi9kb21haW4vYXV0aG9yaXphdGlvbi5qc1wiO1xuaW1wb3J0IHsgR2l0SHViU2VydmljZSB9IGZyb20gXCIuLi8uLi9kb21haW4vZ2l0aHViLmpzXCI7XG5pbXBvcnQge1xuICBERUZBVUxUX0dST1VQX1NQRUNTLFxuICBtYWtlQXp1cmVBZEdyb3VwTmFtZSxcbn0gZnJvbSBcIi4vYXp1cmUtYXV0aG9yaXphdGlvbi1jb25maWcuanNcIjtcblxuY29uc3QgYXp1cmVBdXRob3JpemF0aW9uRmlsZVNjaGVtYSA9IHpcbiAgLm9iamVjdCh7XG4gICAgZGlyZWN0b3J5X3JlYWRlcnM6IHpcbiAgICAgIC5vYmplY3Qoe1xuICAgICAgICBzZXJ2aWNlX3ByaW5jaXBhbHNfbmFtZTogei5hcnJheSh6LnN0cmluZygpKSxcbiAgICAgIH0pXG4gICAgICAubG9vc2UoKSxcbiAgICBncm91cHM6IHpcbiAgICAgIC5hcnJheShcbiAgICAgICAgelxuICAgICAgICAgIC5vYmplY3Qoe1xuICAgICAgICAgICAgbWVtYmVyczogei5hcnJheSh6LnN0cmluZygpKSxcbiAgICAgICAgICAgIG5hbWU6IHouc3RyaW5nKCksXG4gICAgICAgICAgICByb2xlczogei5hcnJheSh6LnN0cmluZygpKSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5sb29zZSgpLFxuICAgICAgKVxuICAgICAgLm9wdGlvbmFsKCksXG4gIH0pXG4gIC5sb29zZSgpO1xuXG4vKipcbiAqIENoZWNrcyBpZiB0d28gcm9sZSBhcnJheXMgYXJlIGVxdWl2YWxlbnQgKHNhbWUgcm9sZXMsIG9yZGVyLWluZGVwZW5kZW50KS5cbiAqL1xuY29uc3Qgcm9sZXNBcmVFcXVhbCA9IChcbiAgcm9sZXMxOiByZWFkb25seSBzdHJpbmdbXSxcbiAgcm9sZXMyOiByZWFkb25seSBzdHJpbmdbXSxcbik6IGJvb2xlYW4gPT4ge1xuICBpZiAocm9sZXMxLmxlbmd0aCAhPT0gcm9sZXMyLmxlbmd0aCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBjb25zdCBzb3J0ZWQxID0gWy4uLnJvbGVzMV0uc29ydCgpO1xuICBjb25zdCBzb3J0ZWQyID0gWy4uLnJvbGVzMl0uc29ydCgpO1xuICByZXR1cm4gc29ydGVkMS5ldmVyeSgocm9sZSwgaWR4KSA9PiByb2xlID09PSBzb3J0ZWQyW2lkeF0pO1xufTtcblxuLyoqXG4gKiBBZGRzIG9yIHVwZGF0ZXMgdGhlIEFEIGdyb3VwcyBhcnJheSBpbiB0aGUgcGFyc2VkIGF1dGhvcml6YXRpb24gSlNPTi5cbiAqIC0gTWlzc2luZyBkZWZhdWx0IGdyb3VwcyBhcmUgYWRkZWQgd2l0aCBlbXB0eSBtZW1iZXJzLlxuICogLSBFeGlzdGluZyBncm91cHMgd2l0aCB3cm9uZyByb2xlcyBoYXZlIHRoZWlyIHJvbGVzIHVwZGF0ZWQ7IG1lbWJlcnMgYXJlIHByZXNlcnZlZC5cbiAqIC0gQ3VzdG9tIChub24tZGVmYXVsdCkgZ3JvdXBzIGFyZSBwcmVzZXJ2ZWQgdW5jaGFuZ2VkLlxuICogUmV0dXJucyB0aGUgdXBkYXRlZCBKU09OIGFsb25nIHdpdGggYSBmbGFnIGluZGljYXRpbmcgd2hldGhlciBhbnl0aGluZyBjaGFuZ2VkLlxuICovXG5jb25zdCB1cHNlcnRHcm91cHMgPSAoXG4gIGpzb25Db250ZW50OiB6LmluZmVyPHR5cGVvZiBhenVyZUF1dGhvcml6YXRpb25GaWxlU2NoZW1hPixcbiAgcHJlZml4OiBzdHJpbmcsXG4gIGVudlNob3J0OiBzdHJpbmcsXG4pOiB7XG4gIGdyb3Vwc0NoYW5nZWQ6IGJvb2xlYW47XG4gIGpzb246IHouaW5mZXI8dHlwZW9mIGF6dXJlQXV0aG9yaXphdGlvbkZpbGVTY2hlbWE+O1xufSA9PiB7XG4gIGNvbnN0IGV4cGVjdGVkQnlOYW1lID0gbmV3IE1hcChcbiAgICBERUZBVUxUX0dST1VQX1NQRUNTLm1hcCgoc3BlYykgPT4gW1xuICAgICAgbWFrZUF6dXJlQWRHcm91cE5hbWUocHJlZml4LCBlbnZTaG9ydCwgc3BlYy5ncm91cE5hbWUpLFxuICAgICAgc3BlYyxcbiAgICBdKSxcbiAgKTtcblxuICBjb25zdCBleGlzdGluZ0dyb3VwcyA9IGpzb25Db250ZW50Lmdyb3VwcyA/PyBbXTtcbiAgY29uc3Qgc2VlbkRlZmF1bHRzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgLy8gV2FsayBleGlzdGluZyBncm91cHMgaW4gdGhlaXIgb3JpZ2luYWwgb3JkZXIsIHVwZGF0aW5nIHJvbGVzIHdoZXJlIG5lZWRlZFxuICBjb25zdCBmaW5hbEdyb3VwczogdHlwZW9mIGV4aXN0aW5nR3JvdXBzID0gW107XG4gIGxldCBncm91cHNDaGFuZ2VkID0gZmFsc2U7XG5cbiAgZm9yIChjb25zdCBleGlzdGluZyBvZiBleGlzdGluZ0dyb3Vwcykge1xuICAgIGNvbnN0IHNwZWMgPSBleHBlY3RlZEJ5TmFtZS5nZXQoZXhpc3RpbmcubmFtZSk7XG4gICAgaWYgKCFzcGVjKSB7XG4gICAgICAvLyBDdXN0b20gZ3JvdXAg4oCUIHByZXNlcnZlIGFzLWlzXG4gICAgICBmaW5hbEdyb3Vwcy5wdXNoKGV4aXN0aW5nKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2VlbkRlZmF1bHRzLmFkZChleGlzdGluZy5uYW1lKTtcbiAgICAgIGlmICghcm9sZXNBcmVFcXVhbChleGlzdGluZy5yb2xlcywgc3BlYy5yb2xlcykpIHtcbiAgICAgICAgLy8gUm9sZXMgZGlmZmVyIOKAlCB1cGRhdGUgcm9sZXMsIHByZXNlcnZlIG1lbWJlcnMgYW5kIGFueSBleHRyYSBmaWVsZHNcbiAgICAgICAgZmluYWxHcm91cHMucHVzaCh7IC4uLmV4aXN0aW5nLCByb2xlczogWy4uLnNwZWMucm9sZXNdIH0pO1xuICAgICAgICBncm91cHNDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZpbmFsR3JvdXBzLnB1c2goZXhpc3RpbmcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIEFwcGVuZCBtaXNzaW5nIGRlZmF1bHQgZ3JvdXBzIGF0IHRoZSBlbmRcbiAgZm9yIChjb25zdCBzcGVjIG9mIERFRkFVTFRfR1JPVVBfU1BFQ1MpIHtcbiAgICBjb25zdCBuYW1lID0gbWFrZUF6dXJlQWRHcm91cE5hbWUocHJlZml4LCBlbnZTaG9ydCwgc3BlYy5ncm91cE5hbWUpO1xuICAgIGlmICghc2VlbkRlZmF1bHRzLmhhcyhuYW1lKSkge1xuICAgICAgZmluYWxHcm91cHMucHVzaCh7IG1lbWJlcnM6IFtdLCBuYW1lLCByb2xlczogWy4uLnNwZWMucm9sZXNdIH0pO1xuICAgICAgZ3JvdXBzQ2hhbmdlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHsgZ3JvdXBzQ2hhbmdlZCwganNvbjogeyAuLi5qc29uQ29udGVudCwgZ3JvdXBzOiBmaW5hbEdyb3VwcyB9IH07XG59O1xuXG4vKipcbiAqIFBhcnNlcyBhbmQgdmFsaWRhdGVzIHRoZSBhdXRob3JpemF0aW9uIGZpbGUgY29udGVudCAoSlNPTiBwYXJzaW5nICsgc2NoZW1hIHZhbGlkYXRpb24pLlxuICovXG5jb25zdCBwYXJzZUF1dGhvcml6YXRpb25GaWxlID0gKFxuICBjb250ZW50OiBzdHJpbmcsXG4pOiBSZXN1bHQ8ei5pbmZlcjx0eXBlb2YgYXp1cmVBdXRob3JpemF0aW9uRmlsZVNjaGVtYT4sIEF1dGhvcml6YXRpb25FcnJvcj4gPT4ge1xuICBsZXQgcGFyc2VkO1xuICB0cnkge1xuICAgIHBhcnNlZCA9IEpTT04ucGFyc2UoY29udGVudCk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBlcnIoXG4gICAgICBuZXcgSW52YWxpZEF1dGhvcml6YXRpb25GaWxlRm9ybWF0RXJyb3IoXCJGaWxlIGNvbnRlbnQgaXMgbm90IHZhbGlkIEpTT05cIiksXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdCA9IGF6dXJlQXV0aG9yaXphdGlvbkZpbGVTY2hlbWEuc2FmZVBhcnNlKHBhcnNlZCk7XG4gIGlmICghcmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICByZXR1cm4gZXJyKFxuICAgICAgbmV3IEludmFsaWRBdXRob3JpemF0aW9uRmlsZUZvcm1hdEVycm9yKFxuICAgICAgICBcIkNvdWxkIG5vdCBmaW5kIGRpcmVjdG9yeV9yZWFkZXJzLnNlcnZpY2VfcHJpbmNpcGFsc19uYW1lIGxpc3RcIixcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBvayhyZXN1bHQuZGF0YSk7XG59O1xuXG4vKipcbiAqIFByb2R1Y2VzIGNvbW1pdCBtZXNzYWdlLCBQUiB0aXRsZSwgYW5kIFBSIGJvZHkgdGFpbG9yZWQgdG8gd2hhdCBhY3R1YWxseSBjaGFuZ2VkLlxuICovXG5jb25zdCBtYWtlQ2hhbmdlRGVzY3JpcHRpb24gPSAoXG4gIHN1YnNjcmlwdGlvbk5hbWU6IHN0cmluZyxcbiAgYm9vdHN0cmFwSWRlbnRpdHlJZDogc3RyaW5nLFxuICBpZGVudGl0eUFkZGVkOiBib29sZWFuLFxuICBncm91cHNDaGFuZ2VkOiBib29sZWFuLFxuKTogeyBib2R5OiBzdHJpbmc7IG1lc3NhZ2U6IHN0cmluZzsgdGl0bGU6IHN0cmluZyB9ID0+IHtcbiAgaWYgKGlkZW50aXR5QWRkZWQgJiYgZ3JvdXBzQ2hhbmdlZCkge1xuICAgIGNvbnN0IHRpdGxlID0gYEFkZCBib290c3RyYXAgaWRlbnRpdHkgYW5kIEFEIGdyb3VwcyBmb3IgJHtzdWJzY3JpcHRpb25OYW1lfWA7XG4gICAgcmV0dXJuIHtcbiAgICAgIGJvZHk6IGBUaGlzIFBSIGFkZHMgdGhlIGJvb3RzdHJhcCBpZGVudGl0eSBcXGAke2Jvb3RzdHJhcElkZW50aXR5SWR9XFxgIHRvIHRoZSBkaXJlY3RvcnkgcmVhZGVycyBhbmQgY29uZmlndXJlcyBBRCBncm91cHMgZm9yIHN1YnNjcmlwdGlvbiBcXGAke3N1YnNjcmlwdGlvbk5hbWV9XFxgLmAsXG4gICAgICBtZXNzYWdlOiB0aXRsZSxcbiAgICAgIHRpdGxlLFxuICAgIH07XG4gIH1cbiAgaWYgKGlkZW50aXR5QWRkZWQpIHtcbiAgICBjb25zdCB0aXRsZSA9IGBBZGQgYm9vdHN0cmFwIGlkZW50aXR5IGZvciAke3N1YnNjcmlwdGlvbk5hbWV9YDtcbiAgICByZXR1cm4ge1xuICAgICAgYm9keTogYFRoaXMgUFIgYWRkcyB0aGUgYm9vdHN0cmFwIGlkZW50aXR5IFxcYCR7Ym9vdHN0cmFwSWRlbnRpdHlJZH1cXGAgdG8gdGhlIGRpcmVjdG9yeSByZWFkZXJzIGZvciBzdWJzY3JpcHRpb24gXFxgJHtzdWJzY3JpcHRpb25OYW1lfVxcYC5gLFxuICAgICAgbWVzc2FnZTogdGl0bGUsXG4gICAgICB0aXRsZSxcbiAgICB9O1xuICB9XG4gIGNvbnN0IHRpdGxlID0gYENvbmZpZ3VyZSBBRCBncm91cHMgZm9yICR7c3Vic2NyaXB0aW9uTmFtZX1gO1xuICByZXR1cm4ge1xuICAgIGJvZHk6IGBUaGlzIFBSIGNvbmZpZ3VyZXMgQUQgZ3JvdXBzIGZvciBzdWJzY3JpcHRpb24gXFxgJHtzdWJzY3JpcHRpb25OYW1lfVxcYC5gLFxuICAgIG1lc3NhZ2U6IHRpdGxlLFxuICAgIHRpdGxlLFxuICB9O1xufTtcblxuLyoqXG4gKiBFbnN1cmVzIHRoZSBnaXZlbiBpZGVudGl0eSBpcyBwcmVzZW50IGluIHRoZSBzZXJ2aWNlX3ByaW5jaXBhbHNfbmFtZSBsaXN0LlxuICogUmV0dXJucyB0aGUgKHBvc3NpYmx5IHVwZGF0ZWQpIEpTT04gYW5kIHdoZXRoZXIgdGhlIGlkZW50aXR5IHdhcyBuZXdseSBhZGRlZC5cbiAqIE5ldmVyIGZhaWxzOiBpZiB0aGUgaWRlbnRpdHkgYWxyZWFkeSBleGlzdHMgaXQgaXMgYSBuby1vcCB3aXRoIGlkZW50aXR5QWRkZWQgPSBmYWxzZS5cbiAqL1xuY29uc3QgZW5zdXJlSWRlbnRpdHkgPSAoXG4gIGpzb25Db250ZW50OiB6LmluZmVyPHR5cGVvZiBhenVyZUF1dGhvcml6YXRpb25GaWxlU2NoZW1hPixcbiAgaWRlbnRpdHlJZDogc3RyaW5nLFxuKToge1xuICBpZGVudGl0eUFkZGVkOiBib29sZWFuO1xuICBqc29uOiB6LmluZmVyPHR5cGVvZiBhenVyZUF1dGhvcml6YXRpb25GaWxlU2NoZW1hPjtcbn0gPT4ge1xuICBpZiAoXG4gICAganNvbkNvbnRlbnQuZGlyZWN0b3J5X3JlYWRlcnMuc2VydmljZV9wcmluY2lwYWxzX25hbWUuaW5jbHVkZXMoaWRlbnRpdHlJZClcbiAgKSB7XG4gICAgcmV0dXJuIHsgaWRlbnRpdHlBZGRlZDogZmFsc2UsIGpzb246IGpzb25Db250ZW50IH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGlkZW50aXR5QWRkZWQ6IHRydWUsXG4gICAganNvbjoge1xuICAgICAgLi4uanNvbkNvbnRlbnQsXG4gICAgICBkaXJlY3RvcnlfcmVhZGVyczoge1xuICAgICAgICAuLi5qc29uQ29udGVudC5kaXJlY3RvcnlfcmVhZGVycyxcbiAgICAgICAgc2VydmljZV9wcmluY2lwYWxzX25hbWU6IFtcbiAgICAgICAgICAuLi5qc29uQ29udGVudC5kaXJlY3RvcnlfcmVhZGVycy5zZXJ2aWNlX3ByaW5jaXBhbHNfbmFtZSxcbiAgICAgICAgICBpZGVudGl0eUlkLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xufTtcblxuY29uc3QgUkVQT19PV05FUiA9IFwicGFnb3BhXCI7XG5jb25zdCBSRVBPX05BTUUgPSBcImVuZy1henVyZS1hdXRob3JpemF0aW9uXCI7XG5jb25zdCBCQVNFX0JSQU5DSCA9IFwibWFpblwiO1xuXG5leHBvcnQgY29uc3QgbWFrZUF6dXJlQXV0aG9yaXphdGlvblNlcnZpY2UgPSAoXG4gIGdpdEh1YlNlcnZpY2U6IEdpdEh1YlNlcnZpY2UsXG4pOiBBdXRob3JpemF0aW9uU2VydmljZSA9PiAoe1xuICByZXF1ZXN0QXV0aG9yaXphdGlvbihcbiAgICBpbnB1dDogUmVxdWVzdEF1dGhvcml6YXRpb25JbnB1dCxcbiAgKTogUmVzdWx0QXN5bmM8QXV0aG9yaXphdGlvblJlc3VsdCwgQXV0aG9yaXphdGlvbkVycm9yPiB7XG4gICAgY29uc3QgbG9nZ2VyID0gZ2V0TG9nZ2VyKFtcImR4LWNsaVwiLCBcInBhZ29wYS1henVyZS1hdXRob3JpemF0aW9uXCJdKTtcbiAgICBjb25zdCB7XG4gICAgICBib290c3RyYXBJZGVudGl0eUlkLFxuICAgICAgZW52U2hvcnQsXG4gICAgICBwcmVmaXgsXG4gICAgICByZXBvTmFtZSxcbiAgICAgIHN1YnNjcmlwdGlvbk5hbWUsXG4gICAgfSA9IGlucHV0O1xuICAgIGNvbnN0IGZpbGVQYXRoID0gYHNyYy9henVyZS1zdWJzY3JpcHRpb25zL3N1YnNjcmlwdGlvbnMvJHtzdWJzY3JpcHRpb25OYW1lfS90ZXJyYWZvcm0udGZ2YXJzLmpzb25gO1xuICAgIGNvbnN0IGJyYW5jaE5hbWUgPSBgZmVhdHMvYWRkLSR7cmVwb05hbWV9LSR7c3Vic2NyaXB0aW9uTmFtZX0tYm9vdHN0cmFwLWlkZW50aXR5YDtcblxuICAgIHJldHVybiAoXG4gICAgICAvLyBTdGVwIDE6IFJlYWQgZmlsZSBmcm9tIG1haW4gdG8gZGV0ZXJtaW5lIGlmIGNoYW5nZXMgYXJlIG5lZWRlZFxuICAgICAgUmVzdWx0QXN5bmMuZnJvbVByb21pc2UoXG4gICAgICAgIGdpdEh1YlNlcnZpY2UuZ2V0RmlsZUNvbnRlbnQoe1xuICAgICAgICAgIG93bmVyOiBSRVBPX09XTkVSLFxuICAgICAgICAgIHBhdGg6IGZpbGVQYXRoLFxuICAgICAgICAgIHJlZjogQkFTRV9CUkFOQ0gsXG4gICAgICAgICAgcmVwbzogUkVQT19OQU1FLFxuICAgICAgICB9KSxcbiAgICAgICAgKCkgPT5cbiAgICAgICAgICBuZXcgQXV0aG9yaXphdGlvbkVycm9yKFxuICAgICAgICAgICAgYFVuYWJsZSB0byBnZXQgJHtmaWxlUGF0aH0gaW4gJHtSRVBPX09XTkVSfS8ke1JFUE9fTkFNRX1gLFxuICAgICAgICAgICksXG4gICAgICApXG4gICAgICAgIC5vclRlZSgoZXJyb3IpID0+IHtcbiAgICAgICAgICBsb2dnZXIuZXJyb3IoZXJyb3IubWVzc2FnZSk7XG4gICAgICAgIH0pXG4gICAgICAgIC8vIFN0ZXAgMjogUGFyc2UgZmlsZSwgZW5zdXJlIGlkZW50aXR5LCB1cHNlcnQgZ3JvdXBzLCBkZXRlY3Qgbm8tb3BcbiAgICAgICAgLmFuZFRoZW4oKHsgY29udGVudCwgc2hhIH0pID0+IHtcbiAgICAgICAgICBjb25zdCBwYXJzZVJlc3VsdCA9IHBhcnNlQXV0aG9yaXphdGlvbkZpbGUoY29udGVudCk7XG4gICAgICAgICAgaWYgKHBhcnNlUmVzdWx0LmlzRXJyKCkpIHtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcihcIkZhaWxlZCB0byBtb2RpZnkgdGZ2YXJzXCIsIHtcbiAgICAgICAgICAgICAgZXJyb3I6IHBhcnNlUmVzdWx0LmVycm9yLm1lc3NhZ2UsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBlcnJBc3luYyhwYXJzZVJlc3VsdC5lcnJvcik7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlUmVzdWx0LnZhbHVlO1xuXG4gICAgICAgICAgY29uc3QgeyBpZGVudGl0eUFkZGVkLCBqc29uOiB3aXRoSWRlbnRpdHkgfSA9IGVuc3VyZUlkZW50aXR5KFxuICAgICAgICAgICAgcGFyc2VkLFxuICAgICAgICAgICAgYm9vdHN0cmFwSWRlbnRpdHlJZCxcbiAgICAgICAgICApO1xuICAgICAgICAgIGlmICghaWRlbnRpdHlBZGRlZCkge1xuICAgICAgICAgICAgbG9nZ2VyLndhcm4oXCJJZGVudGl0eSBhbHJlYWR5IGV4aXN0cywgY2hlY2tpbmcgZ3JvdXBzXCIsIHtcbiAgICAgICAgICAgICAgaWRlbnRpdHlJZDogYm9vdHN0cmFwSWRlbnRpdHlJZCxcbiAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uOiBzdWJzY3JpcHRpb25OYW1lLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgeyBncm91cHNDaGFuZ2VkLCBqc29uOiB1cGRhdGVkSnNvbiB9ID0gdXBzZXJ0R3JvdXBzKFxuICAgICAgICAgICAgd2l0aElkZW50aXR5LFxuICAgICAgICAgICAgcHJlZml4LFxuICAgICAgICAgICAgZW52U2hvcnQsXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmICghaWRlbnRpdHlBZGRlZCAmJiAhZ3JvdXBzQ2hhbmdlZCkge1xuICAgICAgICAgICAgLy8gTm90aGluZyB0byBkbyDigJQgbm8gYnJhbmNoIGNyZWF0ZWQsIG5vIFBSIG5lZWRlZC5cbiAgICAgICAgICAgIGxvZ2dlci5pbmZvKFwiTm8gY2hhbmdlcyBuZWVkZWQsIHNraXBwaW5nIFBSXCIsIHtcbiAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uOiBzdWJzY3JpcHRpb25OYW1lLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gb2tBc3luYyhuZXcgQXV0aG9yaXphdGlvblJlc3VsdCgpKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCB7IGJvZHksIG1lc3NhZ2UsIHRpdGxlIH0gPSBtYWtlQ2hhbmdlRGVzY3JpcHRpb24oXG4gICAgICAgICAgICBzdWJzY3JpcHRpb25OYW1lLFxuICAgICAgICAgICAgYm9vdHN0cmFwSWRlbnRpdHlJZCxcbiAgICAgICAgICAgIGlkZW50aXR5QWRkZWQsXG4gICAgICAgICAgICBncm91cHNDaGFuZ2VkLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICAvLyBTdGVwIDM6IENyZWF0ZSBicmFuY2ggb25seSB3aGVuIGNoYW5nZXMgYXJlIG5lZWRlZFxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBSZXN1bHRBc3luYy5mcm9tUHJvbWlzZShcbiAgICAgICAgICAgICAgZ2l0SHViU2VydmljZS5jcmVhdGVCcmFuY2goe1xuICAgICAgICAgICAgICAgIGJyYW5jaE5hbWUsXG4gICAgICAgICAgICAgICAgZnJvbVJlZjogQkFTRV9CUkFOQ0gsXG4gICAgICAgICAgICAgICAgb3duZXI6IFJFUE9fT1dORVIsXG4gICAgICAgICAgICAgICAgcmVwbzogUkVQT19OQU1FLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgKCkgPT5cbiAgICAgICAgICAgICAgICBuZXcgQXV0aG9yaXphdGlvbkVycm9yKFxuICAgICAgICAgICAgICAgICAgYFVuYWJsZSB0byBjcmVhdGUgYnJhbmNoICR7YnJhbmNoTmFtZX0gaW4gJHtSRVBPX09XTkVSfS8ke1JFUE9fTkFNRX1gLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgIC5vclRlZSgoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoZXJyb3IubWVzc2FnZSk7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC8vIFN0ZXAgNDogVXBkYXRlIGZpbGUgb24gdGhlIGJyYW5jaCB1c2luZyB0aGUgU0hBIHJlYWQgZnJvbSBtYWluXG4gICAgICAgICAgICAgIC5hbmRUaGVuKCgpID0+XG4gICAgICAgICAgICAgICAgUmVzdWx0QXN5bmMuZnJvbVByb21pc2UoXG4gICAgICAgICAgICAgICAgICBnaXRIdWJTZXJ2aWNlLnVwZGF0ZUZpbGUoe1xuICAgICAgICAgICAgICAgICAgICBicmFuY2g6IGJyYW5jaE5hbWUsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IEpTT04uc3RyaW5naWZ5KHVwZGF0ZWRKc29uLCBudWxsLCAyKSxcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgb3duZXI6IFJFUE9fT1dORVIsXG4gICAgICAgICAgICAgICAgICAgIHBhdGg6IGZpbGVQYXRoLFxuICAgICAgICAgICAgICAgICAgICByZXBvOiBSRVBPX05BTUUsXG4gICAgICAgICAgICAgICAgICAgIHNoYSxcbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgbmV3IEF1dGhvcml6YXRpb25FcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICBgVW5hYmxlIHRvIHVwZGF0ZSAke2ZpbGVQYXRofSBvbiBicmFuY2ggJHticmFuY2hOYW1lfSBpbiAke1JFUE9fT1dORVJ9LyR7UkVQT19OQU1FfWAsXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAub3JUZWUoKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAvLyBTdGVwIDU6IENyZWF0ZSBQUlxuICAgICAgICAgICAgICAuYW5kVGhlbigoKSA9PlxuICAgICAgICAgICAgICAgIFJlc3VsdEFzeW5jLmZyb21Qcm9taXNlKFxuICAgICAgICAgICAgICAgICAgZ2l0SHViU2VydmljZS5jcmVhdGVQdWxsUmVxdWVzdCh7XG4gICAgICAgICAgICAgICAgICAgIGJhc2U6IEJBU0VfQlJBTkNILFxuICAgICAgICAgICAgICAgICAgICBib2R5LFxuICAgICAgICAgICAgICAgICAgICBoZWFkOiBicmFuY2hOYW1lLFxuICAgICAgICAgICAgICAgICAgICBvd25lcjogUkVQT19PV05FUixcbiAgICAgICAgICAgICAgICAgICAgcmVwbzogUkVQT19OQU1FLFxuICAgICAgICAgICAgICAgICAgICB0aXRsZSxcbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgbmV3IEF1dGhvcml6YXRpb25FcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICBgVW5hYmxlIHRvIGNyZWF0ZSBwdWxsIHJlcXVlc3QgZnJvbSAke2JyYW5jaE5hbWV9IHRvICR7QkFTRV9CUkFOQ0h9IGluICR7UkVQT19PV05FUn0vJHtSRVBPX05BTUV9YCxcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIC5vclRlZSgoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoZXJyb3IubWVzc2FnZSk7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC5tYXAoKHByKSA9PiBuZXcgQXV0aG9yaXphdGlvblJlc3VsdChwci51cmwpKVxuICAgICAgICAgICk7XG4gICAgICAgIH0pXG4gICAgKTtcbiAgfSxcbn0pO1xuIl19
|
|
240
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp1cmUtYXV0aG9yaXphdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hZGFwdGVycy9wYWdvcGEtdGVjaG5vbG9neS9henVyZS1hdXRob3JpemF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0dBT0c7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBVSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDN0UsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUVuQixtQ0FBbUMsR0FFcEMsTUFBTSwrQkFBK0IsQ0FBQztBQUV2QyxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLG9CQUFvQixHQUNyQixNQUFNLGlDQUFpQyxDQUFDO0FBRXpDLE1BQU0sNEJBQTRCLEdBQUcsQ0FBQztLQUNuQyxNQUFNLENBQUM7SUFDTixpQkFBaUIsRUFBRSxDQUFDO1NBQ2pCLE1BQU0sQ0FBQztRQUNOLHVCQUF1QixFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0tBQzdDLENBQUM7U0FDRCxLQUFLLEVBQUU7SUFDVixNQUFNLEVBQUUsQ0FBQztTQUNOLEtBQUssQ0FDSixDQUFDO1NBQ0UsTUFBTSxDQUFDO1FBQ04sT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzVCLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO1FBQ2hCLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztLQUMzQixDQUFDO1NBQ0QsS0FBSyxFQUFFLENBQ1g7U0FDQSxRQUFRLEVBQUU7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SSxTQUFTLEVBQUUsQ0FDL0csQ0FDSixDQUNGO2lCQUNBLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNmLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzlCLENBQUMsQ0FBQztpQkFDRCxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksbUJBQW1CLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQ2hELENBQUM7UUFDSixDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ0osQ0FBQztDQUNGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUGFnb1BBIFRlY2hub2xvZ3kgQXp1cmUgQXV0aG9yaXphdGlvbiBBZGFwdGVyXG4gKlxuICogSW1wbGVtZW50cyB0aGUgQXV0aG9yaXphdGlvblNlcnZpY2UgaW50ZXJmYWNlIGZvciB0aGUgUGFnb1BBIEF6dXJlXG4gKiBhdXRob3JpemF0aW9uIHdvcmtmbG93LiBFbmNhcHN1bGF0ZXMgYWxsIHBsYXRmb3JtLXNwZWNpZmljIGRldGFpbHM6XG4gKiB0aGUgdGFyZ2V0IEdpdEh1YiByZXBvc2l0b3J5LCBmaWxlIHBhdGhzLCBicmFuY2ggbmFtaW5nLCBKU09OIGZpbGVcbiAqIHBhcnNpbmcsIGFuZCBwdWxsIHJlcXVlc3QgY3JlYXRpb24uXG4gKi9cblxuaW1wb3J0IHsgZ2V0TG9nZ2VyIH0gZnJvbSBcIkBsb2d0YXBlL2xvZ3RhcGVcIjtcbmltcG9ydCB7IGVyciwgZXJyQXN5bmMsIG9rLCBva0FzeW5jLCBSZXN1bHQsIFJlc3VsdEFzeW5jIH0gZnJvbSBcIm5ldmVydGhyb3dcIjtcbmltcG9ydCB7IHogfSBmcm9tIFwiem9kXCI7XG5cbmltcG9ydCB7XG4gIEF1dGhvcml6YXRpb25FcnJvcixcbiAgQXV0aG9yaXphdGlvblJlc3VsdCxcbiAgQXV0aG9yaXphdGlvblNlcnZpY2UsXG4gIEludmFsaWRBdXRob3JpemF0aW9uRmlsZUZvcm1hdEVycm9yLFxuICBSZXF1ZXN0QXV0aG9yaXphdGlvbklucHV0LFxufSBmcm9tIFwiLi4vLi4vZG9tYWluL2F1dGhvcml6YXRpb24uanNcIjtcbmltcG9ydCB7IEdpdEh1YlNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vZG9tYWluL2dpdGh1Yi5qc1wiO1xuaW1wb3J0IHtcbiAgREVGQVVMVF9HUk9VUF9TUEVDUyxcbiAgbWFrZUF6dXJlQWRHcm91cE5hbWUsXG59IGZyb20gXCIuL2F6dXJlLWF1dGhvcml6YXRpb24tY29uZmlnLmpzXCI7XG5cbmNvbnN0IGF6dXJlQXV0aG9yaXphdGlvbkZpbGVTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIGRpcmVjdG9yeV9yZWFkZXJzOiB6XG4gICAgICAub2JqZWN0KHtcbiAgICAgICAgc2VydmljZV9wcmluY2lwYWxzX25hbWU6IHouYXJyYXkoei5zdHJpbmcoKSksXG4gICAgICB9KVxuICAgICAgLmxvb3NlKCksXG4gICAgZ3JvdXBzOiB6XG4gICAgICAuYXJyYXkoXG4gICAgICAgIHpcbiAgICAgICAgICAub2JqZWN0KHtcbiAgICAgICAgICAgIG1lbWJlcnM6IHouYXJyYXkoei5zdHJpbmcoKSksXG4gICAgICAgICAgICBuYW1lOiB6LnN0cmluZygpLFxuICAgICAgICAgICAgcm9sZXM6IHouYXJyYXkoei5zdHJpbmcoKSksXG4gICAgICAgICAgfSlcbiAgICAgICAgICAubG9vc2UoKSxcbiAgICAgIClcbiAgICAgIC5vcHRpb25hbCgpLFxuICB9KVxuICAubG9vc2UoKTtcblxuLyoqXG4gKiBDaGVja3MgaWYgdHdvIHJvbGUgYXJyYXlzIGFyZSBlcXVpdmFsZW50IChzYW1lIHJvbGVzLCBvcmRlci1pbmRlcGVuZGVudCkuXG4gKi9cbmNvbnN0IHJvbGVzQXJlRXF1YWwgPSAoXG4gIHJvbGVzMTogcmVhZG9ubHkgc3RyaW5nW10sXG4gIHJvbGVzMjogcmVhZG9ubHkgc3RyaW5nW10sXG4pOiBib29sZWFuID0+IHtcbiAgaWYgKHJvbGVzMS5sZW5ndGggIT09IHJvbGVzMi5sZW5ndGgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgY29uc3Qgc29ydGVkMSA9IFsuLi5yb2xlczFdLnNvcnQoKTtcbiAgY29uc3Qgc29ydGVkMiA9IFsuLi5yb2xlczJdLnNvcnQoKTtcbiAgcmV0dXJuIHNvcnRlZDEuZXZlcnkoKHJvbGUsIGlkeCkgPT4gcm9sZSA9PT0gc29ydGVkMltpZHhdKTtcbn07XG5cbi8qKlxuICogQWRkcyBvciB1cGRhdGVzIHRoZSBBRCBncm91cHMgYXJyYXkgaW4gdGhlIHBhcnNlZCBhdXRob3JpemF0aW9uIEpTT04uXG4gKiAtIE1pc3NpbmcgZGVmYXVsdCBncm91cHMgYXJlIGFkZGVkIHdpdGggZW1wdHkgbWVtYmVycy5cbiAqIC0gRXhpc3RpbmcgZ3JvdXBzIHdpdGggd3Jvbmcgcm9sZXMgaGF2ZSB0aGVpciByb2xlcyB1cGRhdGVkOyBtZW1iZXJzIGFyZSBwcmVzZXJ2ZWQuXG4gKiAtIEN1c3RvbSAobm9uLWRlZmF1bHQpIGdyb3VwcyBhcmUgcHJlc2VydmVkIHVuY2hhbmdlZC5cbiAqIFJldHVybnMgdGhlIHVwZGF0ZWQgSlNPTiBhbG9uZyB3aXRoIGEgZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgYW55dGhpbmcgY2hhbmdlZC5cbiAqL1xuY29uc3QgdXBzZXJ0R3JvdXBzID0gKFxuICBqc29uQ29udGVudDogei5pbmZlcjx0eXBlb2YgYXp1cmVBdXRob3JpemF0aW9uRmlsZVNjaGVtYT4sXG4gIHByZWZpeDogc3RyaW5nLFxuICBlbnZTaG9ydDogc3RyaW5nLFxuKToge1xuICBncm91cHNDaGFuZ2VkOiBib29sZWFuO1xuICBqc29uOiB6LmluZmVyPHR5cGVvZiBhenVyZUF1dGhvcml6YXRpb25GaWxlU2NoZW1hPjtcbn0gPT4ge1xuICBjb25zdCBleHBlY3RlZEJ5TmFtZSA9IG5ldyBNYXAoXG4gICAgREVGQVVMVF9HUk9VUF9TUEVDUy5tYXAoKHNwZWMpID0+IFtcbiAgICAgIG1ha2VBenVyZUFkR3JvdXBOYW1lKHByZWZpeCwgZW52U2hvcnQsIHNwZWMuZ3JvdXBOYW1lKSxcbiAgICAgIHNwZWMsXG4gICAgXSksXG4gICk7XG5cbiAgY29uc3QgZXhpc3RpbmdHcm91cHMgPSBqc29uQ29udGVudC5ncm91cHMgPz8gW107XG4gIGNvbnN0IHNlZW5EZWZhdWx0cyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIC8vIFdhbGsgZXhpc3RpbmcgZ3JvdXBzIGluIHRoZWlyIG9yaWdpbmFsIG9yZGVyLCB1cGRhdGluZyByb2xlcyB3aGVyZSBuZWVkZWRcbiAgY29uc3QgZmluYWxHcm91cHM6IHR5cGVvZiBleGlzdGluZ0dyb3VwcyA9IFtdO1xuICBsZXQgZ3JvdXBzQ2hhbmdlZCA9IGZhbHNlO1xuXG4gIGZvciAoY29uc3QgZXhpc3Rpbmcgb2YgZXhpc3RpbmdHcm91cHMpIHtcbiAgICBjb25zdCBzcGVjID0gZXhwZWN0ZWRCeU5hbWUuZ2V0KGV4aXN0aW5nLm5hbWUpO1xuICAgIGlmICghc3BlYykge1xuICAgICAgLy8gQ3VzdG9tIGdyb3VwIOKAlCBwcmVzZXJ2ZSBhcy1pc1xuICAgICAgZmluYWxHcm91cHMucHVzaChleGlzdGluZyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNlZW5EZWZhdWx0cy5hZGQoZXhpc3RpbmcubmFtZSk7XG4gICAgICBpZiAoIXJvbGVzQXJlRXF1YWwoZXhpc3Rpbmcucm9sZXMsIHNwZWMucm9sZXMpKSB7XG4gICAgICAgIC8vIFJvbGVzIGRpZmZlciDigJQgdXBkYXRlIHJvbGVzLCBwcmVzZXJ2ZSBtZW1iZXJzIGFuZCBhbnkgZXh0cmEgZmllbGRzXG4gICAgICAgIGZpbmFsR3JvdXBzLnB1c2goeyAuLi5leGlzdGluZywgcm9sZXM6IFsuLi5zcGVjLnJvbGVzXSB9KTtcbiAgICAgICAgZ3JvdXBzQ2hhbmdlZCA9IHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmaW5hbEdyb3Vwcy5wdXNoKGV4aXN0aW5nKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBBcHBlbmQgbWlzc2luZyBkZWZhdWx0IGdyb3VwcyBhdCB0aGUgZW5kXG4gIGZvciAoY29uc3Qgc3BlYyBvZiBERUZBVUxUX0dST1VQX1NQRUNTKSB7XG4gICAgY29uc3QgbmFtZSA9IG1ha2VBenVyZUFkR3JvdXBOYW1lKHByZWZpeCwgZW52U2hvcnQsIHNwZWMuZ3JvdXBOYW1lKTtcbiAgICBpZiAoIXNlZW5EZWZhdWx0cy5oYXMobmFtZSkpIHtcbiAgICAgIGZpbmFsR3JvdXBzLnB1c2goeyBtZW1iZXJzOiBbXSwgbmFtZSwgcm9sZXM6IFsuLi5zcGVjLnJvbGVzXSB9KTtcbiAgICAgIGdyb3Vwc0NoYW5nZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7IGdyb3Vwc0NoYW5nZWQsIGpzb246IHsgLi4uanNvbkNvbnRlbnQsIGdyb3VwczogZmluYWxHcm91cHMgfSB9O1xufTtcblxuLyoqXG4gKiBQYXJzZXMgYW5kIHZhbGlkYXRlcyB0aGUgYXV0aG9yaXphdGlvbiBmaWxlIGNvbnRlbnQgKEpTT04gcGFyc2luZyArIHNjaGVtYSB2YWxpZGF0aW9uKS5cbiAqL1xuY29uc3QgcGFyc2VBdXRob3JpemF0aW9uRmlsZSA9IChcbiAgY29udGVudDogc3RyaW5nLFxuKTogUmVzdWx0PHouaW5mZXI8dHlwZW9mIGF6dXJlQXV0aG9yaXphdGlvbkZpbGVTY2hlbWE+LCBBdXRob3JpemF0aW9uRXJyb3I+ID0+IHtcbiAgbGV0IHBhcnNlZDtcbiAgdHJ5IHtcbiAgICBwYXJzZWQgPSBKU09OLnBhcnNlKGNvbnRlbnQpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZXJyKFxuICAgICAgbmV3IEludmFsaWRBdXRob3JpemF0aW9uRmlsZUZvcm1hdEVycm9yKFwiRmlsZSBjb250ZW50IGlzIG5vdCB2YWxpZCBKU09OXCIpLFxuICAgICk7XG4gIH1cblxuICBjb25zdCByZXN1bHQgPSBhenVyZUF1dGhvcml6YXRpb25GaWxlU2NoZW1hLnNhZmVQYXJzZShwYXJzZWQpO1xuICBpZiAoIXJlc3VsdC5zdWNjZXNzKSB7XG4gICAgcmV0dXJuIGVycihcbiAgICAgIG5ldyBJbnZhbGlkQXV0aG9yaXphdGlvbkZpbGVGb3JtYXRFcnJvcihcbiAgICAgICAgXCJDb3VsZCBub3QgZmluZCBkaXJlY3RvcnlfcmVhZGVycy5zZXJ2aWNlX3ByaW5jaXBhbHNfbmFtZSBsaXN0XCIsXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gb2socmVzdWx0LmRhdGEpO1xufTtcblxuLyoqXG4gKiBQcm9kdWNlcyBjb21taXQgbWVzc2FnZSwgUFIgdGl0bGUsIGFuZCBQUiBib2R5IHRhaWxvcmVkIHRvIHdoYXQgYWN0dWFsbHkgY2hhbmdlZC5cbiAqL1xuY29uc3QgbWFrZUNoYW5nZURlc2NyaXB0aW9uID0gKFxuICBzdWJzY3JpcHRpb25OYW1lOiBzdHJpbmcsXG4gIGJvb3RzdHJhcElkZW50aXR5SWQ6IHN0cmluZyxcbiAgaWRlbnRpdHlBZGRlZDogYm9vbGVhbixcbiAgZ3JvdXBzQ2hhbmdlZDogYm9vbGVhbixcbik6IHsgYm9keTogc3RyaW5nOyBtZXNzYWdlOiBzdHJpbmc7IHRpdGxlOiBzdHJpbmcgfSA9PiB7XG4gIGlmIChpZGVudGl0eUFkZGVkICYmIGdyb3Vwc0NoYW5nZWQpIHtcbiAgICBjb25zdCB0aXRsZSA9IGBBZGQgYm9vdHN0cmFwIGlkZW50aXR5IGFuZCBBRCBncm91cHMgZm9yICR7c3Vic2NyaXB0aW9uTmFtZX1gO1xuICAgIHJldHVybiB7XG4gICAgICBib2R5OiBgVGhpcyBQUiBhZGRzIHRoZSBib290c3RyYXAgaWRlbnRpdHkgXFxgJHtib290c3RyYXBJZGVudGl0eUlkfVxcYCB0byB0aGUgZGlyZWN0b3J5IHJlYWRlcnMgYW5kIGNvbmZpZ3VyZXMgQUQgZ3JvdXBzIGZvciBzdWJzY3JpcHRpb24gXFxgJHtzdWJzY3JpcHRpb25OYW1lfVxcYC5gLFxuICAgICAgbWVzc2FnZTogdGl0bGUsXG4gICAgICB0aXRsZSxcbiAgICB9O1xuICB9XG4gIGlmIChpZGVudGl0eUFkZGVkKSB7XG4gICAgY29uc3QgdGl0bGUgPSBgQWRkIGJvb3RzdHJhcCBpZGVudGl0eSBmb3IgJHtzdWJzY3JpcHRpb25OYW1lfWA7XG4gICAgcmV0dXJuIHtcbiAgICAgIGJvZHk6IGBUaGlzIFBSIGFkZHMgdGhlIGJvb3RzdHJhcCBpZGVudGl0eSBcXGAke2Jvb3RzdHJhcElkZW50aXR5SWR9XFxgIHRvIHRoZSBkaXJlY3RvcnkgcmVhZGVycyBmb3Igc3Vic2NyaXB0aW9uIFxcYCR7c3Vic2NyaXB0aW9uTmFtZX1cXGAuYCxcbiAgICAgIG1lc3NhZ2U6IHRpdGxlLFxuICAgICAgdGl0bGUsXG4gICAgfTtcbiAgfVxuICBjb25zdCB0aXRsZSA9IGBDb25maWd1cmUgQUQgZ3JvdXBzIGZvciAke3N1YnNjcmlwdGlvbk5hbWV9YDtcbiAgcmV0dXJuIHtcbiAgICBib2R5OiBgVGhpcyBQUiBjb25maWd1cmVzIEFEIGdyb3VwcyBmb3Igc3Vic2NyaXB0aW9uIFxcYCR7c3Vic2NyaXB0aW9uTmFtZX1cXGAuYCxcbiAgICBtZXNzYWdlOiB0aXRsZSxcbiAgICB0aXRsZSxcbiAgfTtcbn07XG5cbi8qKlxuICogRW5zdXJlcyB0aGUgZ2l2ZW4gaWRlbnRpdHkgaXMgcHJlc2VudCBpbiB0aGUgc2VydmljZV9wcmluY2lwYWxzX25hbWUgbGlzdC5cbiAqIFJldHVybnMgdGhlIChwb3NzaWJseSB1cGRhdGVkKSBKU09OIGFuZCB3aGV0aGVyIHRoZSBpZGVudGl0eSB3YXMgbmV3bHkgYWRkZWQuXG4gKiBOZXZlciBmYWlsczogaWYgdGhlIGlkZW50aXR5IGFscmVhZHkgZXhpc3RzIGl0IGlzIGEgbm8tb3Agd2l0aCBpZGVudGl0eUFkZGVkID0gZmFsc2UuXG4gKi9cbmNvbnN0IGVuc3VyZUlkZW50aXR5ID0gKFxuICBqc29uQ29udGVudDogei5pbmZlcjx0eXBlb2YgYXp1cmVBdXRob3JpemF0aW9uRmlsZVNjaGVtYT4sXG4gIGlkZW50aXR5SWQ6IHN0cmluZyxcbik6IHtcbiAgaWRlbnRpdHlBZGRlZDogYm9vbGVhbjtcbiAganNvbjogei5pbmZlcjx0eXBlb2YgYXp1cmVBdXRob3JpemF0aW9uRmlsZVNjaGVtYT47XG59ID0+IHtcbiAgaWYgKFxuICAgIGpzb25Db250ZW50LmRpcmVjdG9yeV9yZWFkZXJzLnNlcnZpY2VfcHJpbmNpcGFsc19uYW1lLmluY2x1ZGVzKGlkZW50aXR5SWQpXG4gICkge1xuICAgIHJldHVybiB7IGlkZW50aXR5QWRkZWQ6IGZhbHNlLCBqc29uOiBqc29uQ29udGVudCB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBpZGVudGl0eUFkZGVkOiB0cnVlLFxuICAgIGpzb246IHtcbiAgICAgIC4uLmpzb25Db250ZW50LFxuICAgICAgZGlyZWN0b3J5X3JlYWRlcnM6IHtcbiAgICAgICAgLi4uanNvbkNvbnRlbnQuZGlyZWN0b3J5X3JlYWRlcnMsXG4gICAgICAgIHNlcnZpY2VfcHJpbmNpcGFsc19uYW1lOiBbXG4gICAgICAgICAgLi4uanNvbkNvbnRlbnQuZGlyZWN0b3J5X3JlYWRlcnMuc2VydmljZV9wcmluY2lwYWxzX25hbWUsXG4gICAgICAgICAgaWRlbnRpdHlJZCxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcbn07XG5cbmNvbnN0IFJFUE9fTkFNRSA9IFwiZW5nLWF6dXJlLWF1dGhvcml6YXRpb25cIjtcbmNvbnN0IEJBU0VfQlJBTkNIID0gXCJtYWluXCI7XG5cbmV4cG9ydCBjb25zdCBtYWtlQXp1cmVBdXRob3JpemF0aW9uU2VydmljZSA9IChcbiAgZ2l0SHViU2VydmljZTogR2l0SHViU2VydmljZSxcbik6IEF1dGhvcml6YXRpb25TZXJ2aWNlID0+ICh7XG4gIHJlcXVlc3RBdXRob3JpemF0aW9uKFxuICAgIGlucHV0OiBSZXF1ZXN0QXV0aG9yaXphdGlvbklucHV0LFxuICApOiBSZXN1bHRBc3luYzxBdXRob3JpemF0aW9uUmVzdWx0LCBBdXRob3JpemF0aW9uRXJyb3I+IHtcbiAgICBjb25zdCBsb2dnZXIgPSBnZXRMb2dnZXIoW1wiZHgtY2xpXCIsIFwicGFnb3BhLWF6dXJlLWF1dGhvcml6YXRpb25cIl0pO1xuICAgIGNvbnN0IHtcbiAgICAgIGJvb3RzdHJhcElkZW50aXR5SWQsXG4gICAgICBlbnZTaG9ydCxcbiAgICAgIHByZWZpeCxcbiAgICAgIHJlcG9OYW1lLFxuICAgICAgcmVwb093bmVyLFxuICAgICAgc3Vic2NyaXB0aW9uTmFtZSxcbiAgICB9ID0gaW5wdXQ7XG4gICAgY29uc3QgYXV0aG9yaXphdGlvblJlcG9Pd25lciA9IHJlcG9Pd25lcjtcbiAgICBjb25zdCBmaWxlUGF0aCA9IGBzcmMvYXp1cmUtc3Vic2NyaXB0aW9ucy9zdWJzY3JpcHRpb25zLyR7c3Vic2NyaXB0aW9uTmFtZX0vdGVycmFmb3JtLnRmdmFycy5qc29uYDtcbiAgICBjb25zdCBicmFuY2hOYW1lID0gYGZlYXRzL2FkZC0ke3JlcG9OYW1lfS0ke3N1YnNjcmlwdGlvbk5hbWV9LWJvb3RzdHJhcC1pZGVudGl0eWA7XG5cbiAgICByZXR1cm4gKFxuICAgICAgLy8gU3RlcCAxOiBSZWFkIGZpbGUgZnJvbSBtYWluIHRvIGRldGVybWluZSBpZiBjaGFuZ2VzIGFyZSBuZWVkZWRcbiAgICAgIFJlc3VsdEFzeW5jLmZyb21Qcm9taXNlKFxuICAgICAgICBnaXRIdWJTZXJ2aWNlLmdldEZpbGVDb250ZW50KHtcbiAgICAgICAgICBvd25lcjogYXV0aG9yaXphdGlvblJlcG9Pd25lcixcbiAgICAgICAgICBwYXRoOiBmaWxlUGF0aCxcbiAgICAgICAgICByZWY6IEJBU0VfQlJBTkNILFxuICAgICAgICAgIHJlcG86IFJFUE9fTkFNRSxcbiAgICAgICAgfSksXG4gICAgICAgICgpID0+XG4gICAgICAgICAgbmV3IEF1dGhvcml6YXRpb25FcnJvcihcbiAgICAgICAgICAgIGBVbmFibGUgdG8gZ2V0ICR7ZmlsZVBhdGh9IGluICR7YXV0aG9yaXphdGlvblJlcG9Pd25lcn0vJHtSRVBPX05BTUV9YCxcbiAgICAgICAgICApLFxuICAgICAgKVxuICAgICAgICAub3JUZWUoKGVycm9yKSA9PiB7XG4gICAgICAgICAgbG9nZ2VyLmVycm9yKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgICB9KVxuICAgICAgICAvLyBTdGVwIDI6IFBhcnNlIGZpbGUsIGVuc3VyZSBpZGVudGl0eSwgdXBzZXJ0IGdyb3VwcywgZGV0ZWN0IG5vLW9wXG4gICAgICAgIC5hbmRUaGVuKCh7IGNvbnRlbnQsIHNoYSB9KSA9PiB7XG4gICAgICAgICAgY29uc3QgcGFyc2VSZXN1bHQgPSBwYXJzZUF1dGhvcml6YXRpb25GaWxlKGNvbnRlbnQpO1xuICAgICAgICAgIGlmIChwYXJzZVJlc3VsdC5pc0VycigpKSB7XG4gICAgICAgICAgICBsb2dnZXIuZXJyb3IoXCJGYWlsZWQgdG8gbW9kaWZ5IHRmdmFyc1wiLCB7XG4gICAgICAgICAgICAgIGVycm9yOiBwYXJzZVJlc3VsdC5lcnJvci5tZXNzYWdlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gZXJyQXN5bmMocGFyc2VSZXN1bHQuZXJyb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBwYXJzZWQgPSBwYXJzZVJlc3VsdC52YWx1ZTtcblxuICAgICAgICAgIGNvbnN0IHsgaWRlbnRpdHlBZGRlZCwganNvbjogd2l0aElkZW50aXR5IH0gPSBlbnN1cmVJZGVudGl0eShcbiAgICAgICAgICAgIHBhcnNlZCxcbiAgICAgICAgICAgIGJvb3RzdHJhcElkZW50aXR5SWQsXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoIWlkZW50aXR5QWRkZWQpIHtcbiAgICAgICAgICAgIGxvZ2dlci53YXJuKFwiSWRlbnRpdHkgYWxyZWFkeSBleGlzdHMsIGNoZWNraW5nIGdyb3Vwc1wiLCB7XG4gICAgICAgICAgICAgIGlkZW50aXR5SWQ6IGJvb3RzdHJhcElkZW50aXR5SWQsXG4gICAgICAgICAgICAgIHN1YnNjcmlwdGlvbjogc3Vic2NyaXB0aW9uTmFtZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHsgZ3JvdXBzQ2hhbmdlZCwganNvbjogdXBkYXRlZEpzb24gfSA9IHVwc2VydEdyb3VwcyhcbiAgICAgICAgICAgIHdpdGhJZGVudGl0eSxcbiAgICAgICAgICAgIHByZWZpeCxcbiAgICAgICAgICAgIGVudlNob3J0LFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAoIWlkZW50aXR5QWRkZWQgJiYgIWdyb3Vwc0NoYW5nZWQpIHtcbiAgICAgICAgICAgIC8vIE5vdGhpbmcgdG8gZG8g4oCUIG5vIGJyYW5jaCBjcmVhdGVkLCBubyBQUiBuZWVkZWQuXG4gICAgICAgICAgICBsb2dnZXIuaW5mbyhcIk5vIGNoYW5nZXMgbmVlZGVkLCBza2lwcGluZyBQUlwiLCB7XG4gICAgICAgICAgICAgIHN1YnNjcmlwdGlvbjogc3Vic2NyaXB0aW9uTmFtZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIG9rQXN5bmMobmV3IEF1dGhvcml6YXRpb25SZXN1bHQoKSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgeyBib2R5LCBtZXNzYWdlLCB0aXRsZSB9ID0gbWFrZUNoYW5nZURlc2NyaXB0aW9uKFxuICAgICAgICAgICAgc3Vic2NyaXB0aW9uTmFtZSxcbiAgICAgICAgICAgIGJvb3RzdHJhcElkZW50aXR5SWQsXG4gICAgICAgICAgICBpZGVudGl0eUFkZGVkLFxuICAgICAgICAgICAgZ3JvdXBzQ2hhbmdlZCxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgLy8gU3RlcCAzOiBDcmVhdGUgYnJhbmNoIG9ubHkgd2hlbiBjaGFuZ2VzIGFyZSBuZWVkZWRcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgUmVzdWx0QXN5bmMuZnJvbVByb21pc2UoXG4gICAgICAgICAgICAgIGdpdEh1YlNlcnZpY2UuY3JlYXRlQnJhbmNoKHtcbiAgICAgICAgICAgICAgICBicmFuY2hOYW1lLFxuICAgICAgICAgICAgICAgIGZyb21SZWY6IEJBU0VfQlJBTkNILFxuICAgICAgICAgICAgICAgIG93bmVyOiBhdXRob3JpemF0aW9uUmVwb093bmVyLFxuICAgICAgICAgICAgICAgIHJlcG86IFJFUE9fTkFNRSxcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICgpID0+XG4gICAgICAgICAgICAgICAgbmV3IEF1dGhvcml6YXRpb25FcnJvcihcbiAgICAgICAgICAgICAgICAgIGBVbmFibGUgdG8gY3JlYXRlIGJyYW5jaCAke2JyYW5jaE5hbWV9IGluICR7YXV0aG9yaXphdGlvblJlcG9Pd25lcn0vJHtSRVBPX05BTUV9YCxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAub3JUZWUoKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAvLyBTdGVwIDQ6IFVwZGF0ZSBmaWxlIG9uIHRoZSBicmFuY2ggdXNpbmcgdGhlIFNIQSByZWFkIGZyb20gbWFpblxuICAgICAgICAgICAgICAuYW5kVGhlbigoKSA9PlxuICAgICAgICAgICAgICAgIFJlc3VsdEFzeW5jLmZyb21Qcm9taXNlKFxuICAgICAgICAgICAgICAgICAgZ2l0SHViU2VydmljZS51cGRhdGVGaWxlKHtcbiAgICAgICAgICAgICAgICAgICAgYnJhbmNoOiBicmFuY2hOYW1lLFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBKU09OLnN0cmluZ2lmeSh1cGRhdGVkSnNvbiwgbnVsbCwgMiksXG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIG93bmVyOiBhdXRob3JpemF0aW9uUmVwb093bmVyLFxuICAgICAgICAgICAgICAgICAgICBwYXRoOiBmaWxlUGF0aCxcbiAgICAgICAgICAgICAgICAgICAgcmVwbzogUkVQT19OQU1FLFxuICAgICAgICAgICAgICAgICAgICBzaGEsXG4gICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICgpID0+XG4gICAgICAgICAgICAgICAgICAgIG5ldyBBdXRob3JpemF0aW9uRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgYFVuYWJsZSB0byB1cGRhdGUgJHtmaWxlUGF0aH0gb24gYnJhbmNoICR7YnJhbmNoTmFtZX0gaW4gJHthdXRob3JpemF0aW9uUmVwb093bmVyfS8ke1JFUE9fTkFNRX1gLFxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgLm9yVGVlKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihlcnJvci5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLy8gU3RlcCA1OiBDcmVhdGUgUFJcbiAgICAgICAgICAgICAgLmFuZFRoZW4oKCkgPT5cbiAgICAgICAgICAgICAgICBSZXN1bHRBc3luYy5mcm9tUHJvbWlzZShcbiAgICAgICAgICAgICAgICAgIGdpdEh1YlNlcnZpY2UuY3JlYXRlUHVsbFJlcXVlc3Qoe1xuICAgICAgICAgICAgICAgICAgICBiYXNlOiBCQVNFX0JSQU5DSCxcbiAgICAgICAgICAgICAgICAgICAgYm9keSxcbiAgICAgICAgICAgICAgICAgICAgaGVhZDogYnJhbmNoTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgb3duZXI6IGF1dGhvcml6YXRpb25SZXBvT3duZXIsXG4gICAgICAgICAgICAgICAgICAgIHJlcG86IFJFUE9fTkFNRSxcbiAgICAgICAgICAgICAgICAgICAgdGl0bGUsXG4gICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICgpID0+XG4gICAgICAgICAgICAgICAgICAgIG5ldyBBdXRob3JpemF0aW9uRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgYFVuYWJsZSB0byBjcmVhdGUgcHVsbCByZXF1ZXN0IGZyb20gJHticmFuY2hOYW1lfSB0byAke0JBU0VfQlJBTkNIfSBpbiAke2F1dGhvcml6YXRpb25SZXBvT3duZXJ9LyR7UkVQT19OQU1FfWAsXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAub3JUZWUoKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAubWFwKChwcikgPT4gbmV3IEF1dGhvcml6YXRpb25SZXN1bHQocHIudXJsKSlcbiAgICAgICAgICApO1xuICAgICAgICB9KVxuICAgICk7XG4gIH0sXG59KTtcbiJdfQ==
|
|
@@ -15,6 +15,7 @@ export declare const requestAuthorizationInputSchema: z.ZodObject<{
|
|
|
15
15
|
envShort: z.core.$ZodBranded<z.ZodString, "EnvShort", "out">;
|
|
16
16
|
prefix: z.core.$ZodBranded<z.ZodString, "ResourcePrefix", "out">;
|
|
17
17
|
repoName: z.ZodString;
|
|
18
|
+
repoOwner: z.ZodString;
|
|
18
19
|
subscriptionName: z.core.$ZodBranded<z.ZodString, "SubscriptionName", "out">;
|
|
19
20
|
}, z.core.$strip>;
|
|
20
21
|
/**
|
|
@@ -59,6 +59,7 @@ export const requestAuthorizationInputSchema = z.object({
|
|
|
59
59
|
envShort: EnvShort,
|
|
60
60
|
prefix: ResourcePrefix,
|
|
61
61
|
repoName: z.string().min(1),
|
|
62
|
+
repoOwner: z.string().min(1),
|
|
62
63
|
subscriptionName: SubscriptionName,
|
|
63
64
|
});
|
|
64
65
|
/**
|
|
@@ -89,4 +90,4 @@ export class InvalidAuthorizationFileFormatError extends AuthorizationError {
|
|
|
89
90
|
this.name = "InvalidAuthorizationFileFormatError";
|
|
90
91
|
}
|
|
91
92
|
}
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXphdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb21haW4vYXV0aG9yaXphdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFHSCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRTNCOzs7R0FHRztBQUNILE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQztLQUN2QixNQUFNLEVBQUU7S0FDUixHQUFHLENBQUMsQ0FBQyxDQUFDO0tBQ04sS0FBSyxDQUFDLGlCQUFpQixFQUFFO0lBQ3hCLE9BQU8sRUFBRSxrRUFBa0U7Q0FDNUUsQ0FBQztLQUNELEtBQUssRUFBc0IsQ0FBQztBQUUvQjs7O0dBR0c7QUFDSCxNQUFNLG1CQUFtQixHQUFHLENBQUM7S0FDMUIsTUFBTSxFQUFFO0tBQ1IsR0FBRyxDQUFDLENBQUMsQ0FBQztLQUNOLEtBQUssQ0FBQyxjQUFjLEVBQUU7SUFDckIsT0FBTyxFQUNMLGdGQUFnRjtDQUNuRixDQUFDO0tBQ0QsS0FBSyxFQUF5QixDQUFDO0FBRWxDOzs7R0FHRztBQUNILE1BQU0sY0FBYyxHQUFHLENBQUM7S0FDckIsTUFBTSxFQUFFO0tBQ1IsR0FBRyxDQUFDLENBQUMsQ0FBQztLQUNOLEtBQUssQ0FBQyxVQUFVLEVBQUU7SUFDakIsT0FBTyxFQUFFLG9EQUFvRDtDQUM5RCxDQUFDO0tBQ0QsS0FBSyxFQUFvQixDQUFDO0FBRTdCOzs7R0FHRztBQUNILE1BQU0sUUFBUSxHQUFHLENBQUM7S0FDZixNQUFNLEVBQUU7S0FDUixHQUFHLENBQUMsQ0FBQyxDQUFDO0tBQ04sR0FBRyxDQUFDLENBQUMsQ0FBQztLQUNOLEtBQUssQ0FBQyxTQUFTLEVBQUU7SUFDaEIsT0FBTyxFQUFFLDBEQUEwRDtDQUNwRSxDQUFDO0tBQ0QsS0FBSyxFQUFjLENBQUM7QUFFdkI7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3RELG1CQUFtQixFQUFFLG1CQUFtQjtJQUN4QyxRQUFRLEVBQUUsUUFBUTtJQUNsQixNQUFNLEVBQUUsY0FBYztJQUN0QixRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDM0IsU0FBUyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzVCLGdCQUFnQixFQUFFLGdCQUFnQjtDQUNuQyxDQUFDLENBQUM7QUFpQkg7O0dBRUc7QUFDSCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsS0FBSztJQUMzQyxZQUFZLE9BQWU7UUFDekIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxvQkFBb0IsQ0FBQztJQUNuQyxDQUFDO0NBQ0Y7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sbUJBQW1CO0lBQ0Y7SUFBNUIsWUFBNEIsR0FBWTtRQUFaLFFBQUcsR0FBSCxHQUFHLENBQVM7SUFBRyxDQUFDO0NBQzdDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sbUNBQW9DLFNBQVEsa0JBQWtCO0lBQ3pFLFlBQVksT0FBZTtRQUN6QixLQUFLLENBQUMsc0NBQXNDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLElBQUksR0FBRyxxQ0FBcUMsQ0FBQztJQUNwRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEF1dGhvcml6YXRpb24gRG9tYWluXG4gKlxuICogUHJvdmlkZXMgdHlwZXMgYW5kIGludGVyZmFjZXMgZm9yIHJlcXVlc3RpbmcgY2xvdWQgYXV0aG9yaXphdGlvbi5cbiAqIFRoaXMgbW9kdWxlIGlzIHRlY2hub2xvZ3ktYWdub3N0aWM6IGl0IGRvZXMgbm90IGRlcGVuZCBvbiBhbnkgc3BlY2lmaWNcbiAqIGNsb3VkIHByb3ZpZGVyIG9yIHZlcnNpb24tY29udHJvbCBwbGF0Zm9ybS5cbiAqL1xuXG5pbXBvcnQgeyBSZXN1bHRBc3luYyB9IGZyb20gXCJuZXZlcnRocm93XCI7XG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZC92NFwiO1xuXG4vKipcbiAqIEJyYW5kZWQgdHlwZSBmb3Igc3Vic2NyaXB0aW9uIG5hbWUuXG4gKiBWYWxpZGF0ZXMgdGhhdCB0aGUgbmFtZSBjb250YWlucyBvbmx5IGxldHRlcnMsIG51bWJlcnMsIGFuZCBoeXBoZW5zIHRvIHByZXZlbnQgcGF0aCB0cmF2ZXJzYWwgYXR0YWNrcy5cbiAqL1xuY29uc3QgU3Vic2NyaXB0aW9uTmFtZSA9IHpcbiAgLnN0cmluZygpXG4gIC5taW4oMSlcbiAgLnJlZ2V4KC9eW0EtWmEtejAtOS1dKyQvLCB7XG4gICAgbWVzc2FnZTogXCJTdWJzY3JpcHRpb24gbmFtZSBtYXkgY29udGFpbiBvbmx5IGxldHRlcnMsIG51bWJlcnMsIGFuZCBoeXBoZW5zXCIsXG4gIH0pXG4gIC5icmFuZDxcIlN1YnNjcmlwdGlvbk5hbWVcIj4oKTtcblxuLyoqXG4gKiBCcmFuZGVkIHR5cGUgZm9yIGJvb3RzdHJhcCBpZGVudGl0eSBJRC5cbiAqIFZhbGlkYXRlcyB0aGF0IHRoZSBJRCBjb250YWlucyBvbmx5IGxvd2VyY2FzZSBsZXR0ZXJzLCBudW1iZXJzLCBhbmQgaHlwaGVucyB0byBwcmV2ZW50IGluamVjdGlvbiBhdHRhY2tzLlxuICovXG5jb25zdCBCb290c3RyYXBJZGVudGl0eUlkID0gelxuICAuc3RyaW5nKClcbiAgLm1pbigxKVxuICAucmVnZXgoL15bYS16MC05LV0rJC8sIHtcbiAgICBtZXNzYWdlOlxuICAgICAgXCJCb290c3RyYXAgaWRlbnRpdHkgSUQgbWF5IGNvbnRhaW4gb25seSBsb3dlcmNhc2UgbGV0dGVycywgbnVtYmVycywgYW5kIGh5cGhlbnNcIixcbiAgfSlcbiAgLmJyYW5kPFwiQm9vdHN0cmFwSWRlbnRpdHlJZFwiPigpO1xuXG4vKipcbiAqIEJyYW5kZWQgdHlwZSBmb3IgcmVzb3VyY2UgcHJlZml4IChlLmcuLCBcImR4XCIsIFwiaW9cIikuXG4gKiBWYWxpZGF0ZXMgdGhhdCB0aGUgcHJlZml4IGNvbnRhaW5zIG9ubHkgbG93ZXJjYXNlIGxldHRlcnMgdG8gcHJldmVudCBpbmplY3Rpb24uXG4gKi9cbmNvbnN0IFJlc291cmNlUHJlZml4ID0gelxuICAuc3RyaW5nKClcbiAgLm1pbigxKVxuICAucmVnZXgoL15bYS16XSskLywge1xuICAgIG1lc3NhZ2U6IFwiUmVzb3VyY2UgcHJlZml4IG1heSBjb250YWluIG9ubHkgbG93ZXJjYXNlIGxldHRlcnNcIixcbiAgfSlcbiAgLmJyYW5kPFwiUmVzb3VyY2VQcmVmaXhcIj4oKTtcblxuLyoqXG4gKiBCcmFuZGVkIHR5cGUgZm9yIGVudmlyb25tZW50IHNob3J0IG5hbWUgKGUuZy4sIFwiZFwiLCBcInVcIiwgXCJwXCIpLlxuICogVmFsaWRhdGVzIHNpbmdsZSBsb3dlcmNhc2UgbGV0dGVyIGZvciBlbnZpcm9ubWVudC5cbiAqL1xuY29uc3QgRW52U2hvcnQgPSB6XG4gIC5zdHJpbmcoKVxuICAubWluKDEpXG4gIC5tYXgoMSlcbiAgLnJlZ2V4KC9eW2Etel0kLywge1xuICAgIG1lc3NhZ2U6IFwiRW52aXJvbm1lbnQgc2hvcnQgbmFtZSBtdXN0IGJlIGEgc2luZ2xlIGxvd2VyY2FzZSBsZXR0ZXJcIixcbiAgfSlcbiAgLmJyYW5kPFwiRW52U2hvcnRcIj4oKTtcblxuLyoqXG4gKiBJbnB1dCB2YWxpZGF0aW9uIHNjaGVtYSBmb3IgdGhlIGF1dGhvcml6YXRpb24gd29ya2Zsb3cuXG4gKi9cbmV4cG9ydCBjb25zdCByZXF1ZXN0QXV0aG9yaXphdGlvbklucHV0U2NoZW1hID0gei5vYmplY3Qoe1xuICBib290c3RyYXBJZGVudGl0eUlkOiBCb290c3RyYXBJZGVudGl0eUlkLFxuICBlbnZTaG9ydDogRW52U2hvcnQsXG4gIHByZWZpeDogUmVzb3VyY2VQcmVmaXgsXG4gIHJlcG9OYW1lOiB6LnN0cmluZygpLm1pbigxKSxcbiAgcmVwb093bmVyOiB6LnN0cmluZygpLm1pbigxKSxcbiAgc3Vic2NyaXB0aW9uTmFtZTogU3Vic2NyaXB0aW9uTmFtZSxcbn0pO1xuXG4vKipcbiAqIFNlcnZpY2UgaW50ZXJmYWNlIGZvciByZXF1ZXN0aW5nIGNsb3VkIGF1dGhvcml6YXRpb24uXG4gKiBJbXBsZW1lbnRhdGlvbnMgaGFuZGxlIHRoZSBwbGF0Zm9ybS1zcGVjaWZpYyBkZXRhaWxzIG9mIGdyYW50aW5nIGFjY2Vzcy5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9jb25zaXN0ZW50LXR5cGUtZGVmaW5pdGlvbnNcbmV4cG9ydCBpbnRlcmZhY2UgQXV0aG9yaXphdGlvblNlcnZpY2Uge1xuICByZXF1ZXN0QXV0aG9yaXphdGlvbihcbiAgICBpbnB1dDogUmVxdWVzdEF1dGhvcml6YXRpb25JbnB1dCxcbiAgKTogUmVzdWx0QXN5bmM8QXV0aG9yaXphdGlvblJlc3VsdCwgQXV0aG9yaXphdGlvbkVycm9yPjtcbn1cblxuZXhwb3J0IHR5cGUgUmVxdWVzdEF1dGhvcml6YXRpb25JbnB1dCA9IHouaW5mZXI8XG4gIHR5cGVvZiByZXF1ZXN0QXV0aG9yaXphdGlvbklucHV0U2NoZW1hXG4+O1xuXG4vKipcbiAqIEJhc2UgZXJyb3IgY2xhc3MgZm9yIGF1dGhvcml6YXRpb24tcmVsYXRlZCBlcnJvcnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBBdXRob3JpemF0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9IFwiQXV0aG9yaXphdGlvbkVycm9yXCI7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXN1bHQgcmV0dXJuZWQgYnkgYSBzdWNjZXNzZnVsIGF1dGhvcml6YXRpb24gcmVxdWVzdC5cbiAqIFdoZW4gdXJsIGlzIHVuZGVmaW5lZCwgdGhlIHdvcmtmbG93IHdhcyBhIG5vLW9wIChub3RoaW5nIGNoYW5nZWQsIG5vIFBSIGNyZWF0ZWQpLlxuICovXG5leHBvcnQgY2xhc3MgQXV0aG9yaXphdGlvblJlc3VsdCB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSB1cmw/OiBzdHJpbmcpIHt9XG59XG5cbi8qKlxuICogRXJyb3IgdGhyb3duIHdoZW4gdGhlIGF1dGhvcml6YXRpb24gY29uZmlndXJhdGlvbiBmb3JtYXQgaXMgaW52YWxpZCBvciBjYW5ub3QgYmUgcGFyc2VkLlxuICovXG5leHBvcnQgY2xhc3MgSW52YWxpZEF1dGhvcml6YXRpb25GaWxlRm9ybWF0RXJyb3IgZXh0ZW5kcyBBdXRob3JpemF0aW9uRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihkZXRhaWxzOiBzdHJpbmcpIHtcbiAgICBzdXBlcihgSW52YWxpZCBhdXRob3JpemF0aW9uIGZpbGUgZm9ybWF0OiAke2RldGFpbHN9YCk7XG4gICAgdGhpcy5uYW1lID0gXCJJbnZhbGlkQXV0aG9yaXphdGlvbkZpbGVGb3JtYXRFcnJvclwiO1xuICB9XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pagopa/dx-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.24.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A CLI useful to manage DX tools.",
|
|
6
6
|
"repository": {
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"semver": "^7.7.4",
|
|
49
49
|
"yaml": "^2.8.4",
|
|
50
50
|
"zod": "^4.4.2",
|
|
51
|
-
"@pagopa/dx-savemoney": "^0.3.
|
|
51
|
+
"@pagopa/dx-savemoney": "^0.3.2"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
54
|
"@tsconfig/node24": "24.0.4",
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"typescript": "~5.9.3",
|
|
66
66
|
"vitest": "^4.1.8",
|
|
67
67
|
"vitest-mock-extended": "^4.0.0",
|
|
68
|
-
"@pagopa/eslint-config": "^6.0
|
|
68
|
+
"@pagopa/eslint-config": "^6.1.0"
|
|
69
69
|
},
|
|
70
70
|
"engines": {
|
|
71
71
|
"node": ">=22.0.0"
|
|
@@ -13,14 +13,6 @@ repos:
|
|
|
13
13
|
args:
|
|
14
14
|
- --args=--config=__GIT_WORKING_DIR__/.tflint.hcl
|
|
15
15
|
- id: terraform_fmt
|
|
16
|
-
- id: terraform_docs
|
|
17
|
-
name: terraform_docs on resources
|
|
18
|
-
args:
|
|
19
|
-
- --hook-config=--create-file-if-not-exist=true
|
|
20
|
-
exclude: |
|
|
21
|
-
(?x)^(
|
|
22
|
-
src\/(?:.*\/)?(?:_?modules)\/.*
|
|
23
|
-
)$
|
|
24
16
|
- id: terraform_validate
|
|
25
17
|
exclude: '(\/_?modules\/.*)'
|
|
26
18
|
args:
|