@aws-cdk-testing/cli-integ 2.65.0 → 2.66.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/lib/aws.js CHANGED
@@ -2,6 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.sleep = exports.outputFromStack = exports.retry = exports.isBucketMissingError = exports.isStackMissingError = exports.AwsClients = void 0;
4
4
  const AWS = require("aws-sdk");
5
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
6
+ require('aws-sdk/lib/maintenance_mode_message').suppress = true;
5
7
  class AwsClients {
6
8
  constructor(region, output) {
7
9
  this.region = region;
@@ -240,4 +242,4 @@ function chainableCredentials(region) {
240
242
  }
241
243
  return undefined;
242
244
  }
243
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtCQUErQjtBQUUvQixNQUFhLFVBQVU7SUFvQnJCLFlBQTRCLE1BQWMsRUFBbUIsTUFBNkI7UUFBOUQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFtQixXQUFNLEdBQU4sTUFBTSxDQUF1QjtRQUN4RixJQUFJLENBQUMsTUFBTSxHQUFHO1lBQ1osV0FBVyxFQUFFLG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDOUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLFVBQVUsRUFBRSxDQUFDO1lBQ2IsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFO1lBQ2hDLG9CQUFvQixFQUFFLFVBQVU7U0FDakMsQ0FBQztRQUNGLElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxFQUFFLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxHQUFHLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxHQUFHLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxHQUFHLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JELElBQUks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RyxHQUFHLElBQUksR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztZQUN2QyxRQUFRLEVBQUUsVUFBVTtZQUNwQixRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUMsQ0FBQztRQUVILE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVqQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUFZLFdBQVcsb0NBQW9DLFVBQVUsR0FBRyxDQUFDLENBQUM7U0FDM0Y7UUFFRCxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQzdCLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFFdkMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNSLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLFdBQVcsRUFBRSxDQUFDLENBQUM7U0FDdEU7UUFFRCxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsVUFBVSxFQUFFLENBQUMsQ0FBQztTQUN4RTtRQUVELE9BQU8sSUFBSSxHQUFHLENBQUMsNkJBQTZCLENBQUM7WUFDM0MsTUFBTSxFQUFFO2dCQUNOLE9BQU8sRUFBRSxHQUFHO2dCQUNaLFVBQVUsRUFBRSxVQUFVO2dCQUN0QixlQUFlLEVBQUUsYUFBYTthQUMvQjtZQUNELFNBQVMsRUFBRTtnQkFDVCxNQUFNO2FBQ1A7WUFDRCxpQkFBaUIsRUFBRSxJQUFJLEdBQUcsQ0FBQyxjQUFjLEVBQUU7U0FDNUMsQ0FBQyxDQUFDO0tBQ0o7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgQVdTIGZyb20gJ2F3cy1zZGsnO1xuXG5leHBvcnQgY2xhc3MgQXdzQ2xpZW50cyB7XG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgZGVmYXVsdChvdXRwdXQ6IE5vZGVKUy5Xcml0YWJsZVN0cmVhbSkge1xuICAgIGNvbnN0IHJlZ2lvbiA9IHByb2Nlc3MuZW52LkFXU19SRUdJT04gPz8gcHJvY2Vzcy5lbnYuQVdTX0RFRkFVTFRfUkVHSU9OID8/ICd1cy1lYXN0LTEnO1xuICAgIHJldHVybiBBd3NDbGllbnRzLmZvclJlZ2lvbihyZWdpb24sIG91dHB1dCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGFzeW5jIGZvclJlZ2lvbihyZWdpb246IHN0cmluZywgb3V0cHV0OiBOb2RlSlMuV3JpdGFibGVTdHJlYW0pIHtcbiAgICByZXR1cm4gbmV3IEF3c0NsaWVudHMocmVnaW9uLCBvdXRwdXQpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IGFueTtcblxuICBwdWJsaWMgcmVhZG9ubHkgY2xvdWRGb3JtYXRpb246IEF3c0NhbGxlcjxBV1MuQ2xvdWRGb3JtYXRpb24+O1xuICBwdWJsaWMgcmVhZG9ubHkgczM6IEF3c0NhbGxlcjxBV1MuUzM+O1xuICBwdWJsaWMgcmVhZG9ubHkgZWNyOiBBd3NDYWxsZXI8QVdTLkVDUj47XG4gIHB1YmxpYyByZWFkb25seSBzbnM6IEF3c0NhbGxlcjxBV1MuU05TPjtcbiAgcHVibGljIHJlYWRvbmx5IGlhbTogQXdzQ2FsbGVyPEFXUy5JQU0+O1xuICBwdWJsaWMgcmVhZG9ubHkgbGFtYmRhOiBBd3NDYWxsZXI8QVdTLkxhbWJkYT47XG4gIHB1YmxpYyByZWFkb25seSBzdHM6IEF3c0NhbGxlcjxBV1MuU1RTPjtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgcmVnaW9uOiBzdHJpbmcsIHByaXZhdGUgcmVhZG9ubHkgb3V0cHV0OiBOb2RlSlMuV3JpdGFibGVTdHJlYW0pIHtcbiAgICB0aGlzLmNvbmZpZyA9IHtcbiAgICAgIGNyZWRlbnRpYWxzOiBjaGFpbmFibGVDcmVkZW50aWFscyh0aGlzLnJlZ2lvbiksXG4gICAgICByZWdpb246IHRoaXMucmVnaW9uLFxuICAgICAgbWF4UmV0cmllczogOCxcbiAgICAgIHJldHJ5RGVsYXlPcHRpb25zOiB7IGJhc2U6IDUwMCB9LFxuICAgICAgc3RzUmVnaW9uYWxFbmRwb2ludHM6ICdyZWdpb25hbCcsXG4gICAgfTtcbiAgICB0aGlzLmNsb3VkRm9ybWF0aW9uID0gbWFrZUF3c0NhbGxlcihBV1MuQ2xvdWRGb3JtYXRpb24sIHRoaXMuY29uZmlnKTtcbiAgICB0aGlzLnMzID0gbWFrZUF3c0NhbGxlcihBV1MuUzMsIHRoaXMuY29uZmlnKTtcbiAgICB0aGlzLmVjciA9IG1ha2VBd3NDYWxsZXIoQVdTLkVDUiwgdGhpcy5jb25maWcpO1xuICAgIHRoaXMuc25zID0gbWFrZUF3c0NhbGxlcihBV1MuU05TLCB0aGlzLmNvbmZpZyk7XG4gICAgdGhpcy5pYW0gPSBtYWtlQXdzQ2FsbGVyKEFXUy5JQU0sIHRoaXMuY29uZmlnKTtcbiAgICB0aGlzLmxhbWJkYSA9IG1ha2VBd3NDYWxsZXIoQVdTLkxhbWJkYSwgdGhpcy5jb25maWcpO1xuICAgIHRoaXMuc3RzID0gbWFrZUF3c0NhbGxlcihBV1MuU1RTLCB0aGlzLmNvbmZpZyk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgYWNjb3VudCgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIC8vIFJlZHVjZSAjIG9mIHJldHJpZXMsIHdlIHVzZSB0aGlzIGFzIGEgY2lyY3VpdCBicmVha2VyIGZvciBkZXRlY3Rpbmcgbm8tY29uZmlnXG4gICAgcmV0dXJuIChhd2FpdCBuZXcgQVdTLlNUUyh7IC4uLnRoaXMuY29uZmlnLCBtYXhSZXRyaWVzOiAxIH0pLmdldENhbGxlcklkZW50aXR5KCkucHJvbWlzZSgpKS5BY2NvdW50ITtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkZWxldGVTdGFja3MoLi4uc3RhY2tOYW1lczogc3RyaW5nW10pIHtcbiAgICBpZiAoc3RhY2tOYW1lcy5sZW5ndGggPT09IDApIHsgcmV0dXJuOyB9XG5cbiAgICAvLyBXZSBwdXJwb3NlbHkgZG8gYWxsIHN0YWNrcyBzZXJpYWxseSwgYmVjYXVzZSB0aGV5J3ZlIGJlZW4gb3JkZXJlZFxuICAgIC8vIHRvIGRvIHRoZSBib290c3RyYXAgc3RhY2sgbGFzdC5cbiAgICBmb3IgKGNvbnN0IHN0YWNrTmFtZSBvZiBzdGFja05hbWVzKSB7XG4gICAgICBhd2FpdCB0aGlzLmNsb3VkRm9ybWF0aW9uKCd1cGRhdGVUZXJtaW5hdGlvblByb3RlY3Rpb24nLCB7XG4gICAgICAgIEVuYWJsZVRlcm1pbmF0aW9uUHJvdGVjdGlvbjogZmFsc2UsXG4gICAgICAgIFN0YWNrTmFtZTogc3RhY2tOYW1lLFxuICAgICAgfSk7XG4gICAgICBhd2FpdCB0aGlzLmNsb3VkRm9ybWF0aW9uKCdkZWxldGVTdGFjaycsIHtcbiAgICAgICAgU3RhY2tOYW1lOiBzdGFja05hbWUsXG4gICAgICB9KTtcblxuICAgICAgYXdhaXQgcmV0cnkodGhpcy5vdXRwdXQsIGBEZWxldGluZyAke3N0YWNrTmFtZX1gLCByZXRyeS5mb3JTZWNvbmRzKDYwMCksIGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3Qgc3RhdHVzID0gYXdhaXQgdGhpcy5zdGFja1N0YXR1cyhzdGFja05hbWUpO1xuICAgICAgICBpZiAoc3RhdHVzICE9PSB1bmRlZmluZWQgJiYgc3RhdHVzLmVuZHNXaXRoKCdfRkFJTEVEJykpIHtcbiAgICAgICAgICB0aHJvdyByZXRyeS5hYm9ydChuZXcgRXJyb3IoYCcke3N0YWNrTmFtZX0nIGlzIGluIHN0YXRlICcke3N0YXR1c30nYCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGF0dXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRGVsZXRlIG9mICcke3N0YWNrTmFtZX0nIG5vdCBjb21wbGV0ZSB5ZXRgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHN0YWNrU3RhdHVzKHN0YWNrTmFtZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLmNsb3VkRm9ybWF0aW9uKCdkZXNjcmliZVN0YWNrcycsIHsgU3RhY2tOYW1lOiBzdGFja05hbWUgfSkpLlN0YWNrcz8uWzBdLlN0YWNrU3RhdHVzO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmIChpc1N0YWNrTWlzc2luZ0Vycm9yKGUpKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGVtcHR5QnVja2V0KGJ1Y2tldE5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IG9iamVjdHMgPSBhd2FpdCB0aGlzLnMzKCdsaXN0T2JqZWN0VmVyc2lvbnMnLCB7IEJ1Y2tldDogYnVja2V0TmFtZSB9KTtcbiAgICBjb25zdCBkZWxldGVzID0gWy4uLm9iamVjdHMuVmVyc2lvbnMgfHwgW10sIC4uLm9iamVjdHMuRGVsZXRlTWFya2VycyB8fCBbXV1cbiAgICAgIC5yZWR1Y2UoKGFjYywgb2JqKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2Ygb2JqLlZlcnNpb25JZCAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIG9iai5LZXkgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgYWNjLnB1c2goeyBLZXk6IG9iai5LZXksIFZlcnNpb25JZDogb2JqLlZlcnNpb25JZCB9KTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygb2JqLktleSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICBhY2MucHVzaCh7IEtleTogb2JqLktleSB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwgW10gYXMgQVdTLlMzLk9iamVjdElkZW50aWZpZXJMaXN0KTtcbiAgICBpZiAoZGVsZXRlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuczMoJ2RlbGV0ZU9iamVjdHMnLCB7XG4gICAgICBCdWNrZXQ6IGJ1Y2tldE5hbWUsXG4gICAgICBEZWxldGU6IHtcbiAgICAgICAgT2JqZWN0czogZGVsZXRlcyxcbiAgICAgICAgUXVpZXQ6IGZhbHNlLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkZWxldGVJbWFnZVJlcG9zaXRvcnkocmVwb3NpdG9yeU5hbWU6IHN0cmluZykge1xuICAgIGF3YWl0IHRoaXMuZWNyKCdkZWxldGVSZXBvc2l0b3J5JywgeyByZXBvc2l0b3J5TmFtZSwgZm9yY2U6IHRydWUgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGVsZXRlQnVja2V0KGJ1Y2tldE5hbWU6IHN0cmluZykge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmVtcHR5QnVja2V0KGJ1Y2tldE5hbWUpO1xuICAgICAgYXdhaXQgdGhpcy5zMygnZGVsZXRlQnVja2V0Jywge1xuICAgICAgICBCdWNrZXQ6IGJ1Y2tldE5hbWUsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAoaXNCdWNrZXRNaXNzaW5nRXJyb3IoZSkpIHsgcmV0dXJuOyB9XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFBlcmZvcm0gYW4gQVdTIGNhbGwgZnJvbSBub3RoaW5nXG4gKlxuICogQ3JlYXRlIHRoZSBjb3JyZWN0IGNsaWVudCwgZG8gdGhlIGNhbGwgYW5kIHJlc29sZSB0aGUgcHJvbWlzZSgpLlxuICovXG5hc3luYyBmdW5jdGlvbiBhd3NDYWxsPFxuICBBIGV4dGVuZHMgQVdTLlNlcnZpY2UsXG4gIEIgZXh0ZW5kcyBrZXlvZiBTZXJ2aWNlQ2FsbHM8QT4sXG4+KGN0b3I6IG5ldyAoY29uZmlnOiBhbnkpID0+IEEsIGNvbmZpZzogYW55LCBjYWxsOiBCLCByZXF1ZXN0OiBGaXJzdDxTZXJ2aWNlQ2FsbHM8QT5bQl0+KTogUHJvbWlzZTxTZWNvbmQ8U2VydmljZUNhbGxzPEE+W0JdPj4ge1xuICBjb25zdCBjZm4gPSBuZXcgY3Rvcihjb25maWcpO1xuICBjb25zdCByZXNwb25zZSA9IGNmbltjYWxsXShyZXF1ZXN0KTtcbiAgdHJ5IHtcbiAgICByZXR1cm4gcmVzcG9uc2UucHJvbWlzZSgpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc3QgbmV3RXJyID0gbmV3IEVycm9yKGAke2NhbGx9KCR7SlNPTi5zdHJpbmdpZnkocmVxdWVzdCl9KTogJHtlLm1lc3NhZ2V9YCk7XG4gICAgKG5ld0VyciBhcyBhbnkpLmNvZGUgPSBlLmNvZGU7XG4gICAgdGhyb3cgbmV3RXJyO1xuICB9XG59XG5cbnR5cGUgQXdzQ2FsbGVyPEE+ID0gPEIgZXh0ZW5kcyBrZXlvZiBTZXJ2aWNlQ2FsbHM8QT4+KGNhbGw6IEIsIHJlcXVlc3Q6IEZpcnN0PFNlcnZpY2VDYWxsczxBPltCXT4pID0+IFByb21pc2U8U2Vjb25kPFNlcnZpY2VDYWxsczxBPltCXT4+O1xuXG4vKipcbiAqIEZhY3RvcnkgZnVuY3Rpb24gdG8gaW52b2tlICdhd3NDYWxsJyBmb3Igc3BlY2lmaWMgc2VydmljZXMuXG4gKlxuICogTm90IHN0cmljdGx5IG5lY2Vzc2FyeSBidXQgY2FsbGluZyB0aGlzIHJlcGxhY2VzIGEgd2hvbGUgYnVuY2ggb2YgYW5ub3lpbmcgZ2VuZXJpY3MgeW91IG90aGVyd2lzZSBoYXZlIHRvIHR5cGU6XG4gKlxuICogYGBgdHNcbiAqIGV4cG9ydCBmdW5jdGlvbiBjbG91ZEZvcm1hdGlvbjxcbiAqICAgQyBleHRlbmRzIGtleW9mIFNlcnZpY2VDYWxsczxBV1MuQ2xvdWRGb3JtYXRpb24+LFxuICogPihjYWxsOiBDLCByZXF1ZXN0OiBGaXJzdDxTZXJ2aWNlQ2FsbHM8QVdTLkNsb3VkRm9ybWF0aW9uPltDXT4pOiBQcm9taXNlPFNlY29uZDxTZXJ2aWNlQ2FsbHM8QVdTLkNsb3VkRm9ybWF0aW9uPltDXT4+IHtcbiAqICAgcmV0dXJuIGF3c0NhbGwoQVdTLkNsb3VkRm9ybWF0aW9uLCBjYWxsLCByZXF1ZXN0KTtcbiAqIH1cbiAqIGBgYFxuICovXG5mdW5jdGlvbiBtYWtlQXdzQ2FsbGVyPEEgZXh0ZW5kcyBBV1MuU2VydmljZT4oY3RvcjogbmV3IChjb25maWc6IGFueSkgPT4gQSwgY29uZmlnOiBhbnkpOiBBd3NDYWxsZXI8QT4ge1xuICByZXR1cm4gPEIgZXh0ZW5kcyBrZXlvZiBTZXJ2aWNlQ2FsbHM8QT4+KGNhbGw6IEIsIHJlcXVlc3Q6IEZpcnN0PFNlcnZpY2VDYWxsczxBPltCXT4pOiBQcm9taXNlPFNlY29uZDxTZXJ2aWNlQ2FsbHM8QT5bQl0+PiA9PiB7XG4gICAgcmV0dXJuIGF3c0NhbGwoY3RvciwgY29uZmlnLCBjYWxsLCByZXF1ZXN0KTtcbiAgfTtcbn1cblxudHlwZSBTZXJ2aWNlQ2FsbHM8VD4gPSBOb05heU5ldmVyPFNpbXBsaWZpZWRTZXJ2aWNlPFQ+Pjtcbi8vIE1hcCBldmVyIG1lbWJlciBpbiB0aGUgdHlwZSB0byB0aGUgaW1wb3J0YW50IEFXUyBjYWxsIG92ZXJsb2FkLCBvciB0byAnbmV2ZXInXG50eXBlIFNpbXBsaWZpZWRTZXJ2aWNlPFQ+ID0ge1trIGluIGtleW9mIFRdOiBBd3NDYWxsSU88VFtrXT59O1xuLy8gUmVtb3ZlIGFsbCAnbmV2ZXInIHR5cGVzIGZyb20gYW4gb2JqZWN0IHR5cGVcbnR5cGUgTm9OYXlOZXZlcjxUPiA9IFBpY2s8VCwge1trIGluIGtleW9mIFRdOiBUW2tdIGV4dGVuZHMgbmV2ZXIgPyBuZXZlciA6IGsgfVtrZXlvZiBUXT47XG5cbi8vIEJlY2F1c2Ugb2YgdGhlIG92ZXJsb2FkcyBhbiBBV1MgaGFuZGxlciB0eXBlIGxvb2tzIGxpa2UgdGhpczpcbi8vXG4vLyAgIHtcbi8vICAgICAgKHBhcmFtczogSU5QVVRTVFJVQ1QsIGNhbGxiYWNrPzogKChlcnI6IEFXU0Vycm9yLCBkYXRhOiB7fSkgPT4gdm9pZCkgfCB1bmRlZmluZWQpOiBSZXF1ZXN0PE9VVFBVVCwgLi4uPjtcbi8vICAgICAgKGNhbGxiYWNrPzogKChlcnI6IEFXUy5BV1NFcnJvciwgZGF0YToge30pID0+IHZvaWQpIHwgdW5kZWZpbmVkKTogQVdTLlJlcXVlc3Q8Li4uPjtcbi8vICAgfVxuLy9cbi8vIEdldCB0aGUgZmlyc3Qgb3ZlcmxvYWQgYW5kIGV4dHJhY3QgdGhlIGlucHV0IGFuZCBvdXRwdXQgc3RydWN0IHR5cGVzXG50eXBlIEF3c0NhbGxJTzxUPiA9XG4gIFQgZXh0ZW5kcyB7XG4gICAgKGFyZ3M6IGluZmVyIElOUFVULCBjYWxsYmFjaz86ICgoZXJyOiBBV1MuQVdTRXJyb3IsIGRhdGE6IGFueSkgPT4gdm9pZCkgfCB1bmRlZmluZWQpOiBBV1MuUmVxdWVzdDxpbmZlciBPVVRQVVQsIEFXUy5BV1NFcnJvcj47XG4gICAgKGNhbGxiYWNrPzogKChlcnI6IEFXUy5BV1NFcnJvciwgZGF0YToge30pID0+IHZvaWQpIHwgdW5kZWZpbmVkKTogQVdTLlJlcXVlc3Q8YW55LCBhbnk+O1xuICB9ID8gW0lOUFVULCBPVVRQVVRdIDogbmV2ZXI7XG5cbnR5cGUgRmlyc3Q8VD4gPSBUIGV4dGVuZHMgW2FueSwgYW55XSA/IFRbMF0gOiBuZXZlcjtcbnR5cGUgU2Vjb25kPFQ+ID0gVCBleHRlbmRzIFthbnksIGFueV0gPyBUWzFdIDogbmV2ZXI7XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU3RhY2tNaXNzaW5nRXJyb3IoZTogRXJyb3IpIHtcbiAgcmV0dXJuIGUubWVzc2FnZS5pbmRleE9mKCdkb2VzIG5vdCBleGlzdCcpID4gLTE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0J1Y2tldE1pc3NpbmdFcnJvcihlOiBFcnJvcikge1xuICByZXR1cm4gZS5tZXNzYWdlLmluZGV4T2YoJ2RvZXMgbm90IGV4aXN0JykgPiAtMTtcbn1cblxuLyoqXG4gKiBSZXRyeSBhbiBhc3luYyBvcGVyYXRpb24gdW50aWwgYSBkZWFkbGluZSBpcyBoaXQuXG4gKlxuICogVXNlIGByZXRyeS5mb3JTZWNvbmRzKClgIHRvIGNvbnN0cnVjdCBhIGRlYWRsaW5lIHJlbGF0aXZlIHRvIHJpZ2h0IG5vdy5cbiAqXG4gKiBFeGNlcHRpb25zIHdpbGwgY2F1c2UgdGhlIG9wZXJhdGlvbiB0byByZXRyeS4gVXNlIGByZXRyeS5hYm9ydGAgdG8gYW5ub3RhdGUgYW4gZXhjZXB0aW9uXG4gKiB0byBzdG9wIHRoZSByZXRyeSBhbmQgZW5kIGluIGEgZmFpbHVyZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJldHJ5PEE+KG91dHB1dDogTm9kZUpTLldyaXRhYmxlU3RyZWFtLCBvcGVyYXRpb246IHN0cmluZywgZGVhZGxpbmU6IERhdGUsIGJsb2NrOiAoKSA9PiBQcm9taXNlPEE+KTogUHJvbWlzZTxBPiB7XG4gIGxldCBpID0gMDtcbiAgb3V0cHV0LndyaXRlKGDwn5KIICR7b3BlcmF0aW9ufVxcbmApO1xuICB3aGlsZSAodHJ1ZSkge1xuICAgIHRyeSB7XG4gICAgICBpKys7XG4gICAgICBjb25zdCByZXQgPSBhd2FpdCBibG9jaygpO1xuICAgICAgb3V0cHV0LndyaXRlKGDwn5KIICR7b3BlcmF0aW9ufTogc3VjY2VlZGVkIGFmdGVyICR7aX0gYXR0ZW1wdHNcXG5gKTtcbiAgICAgIHJldHVybiByZXQ7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKGUuYWJvcnQgfHwgRGF0ZS5ub3coKSA+IGRlYWRsaW5lLmdldFRpbWUoICkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke29wZXJhdGlvbn06IGRpZCBub3Qgc3VjY2VlZCBhZnRlciAke2l9IGF0dGVtcHRzOiAke2V9YCk7XG4gICAgICB9XG4gICAgICBvdXRwdXQud3JpdGUoYOKPsyAke29wZXJhdGlvbn0gKCR7ZS5tZXNzYWdlfSlcXG5gKTtcbiAgICAgIGF3YWl0IHNsZWVwKDUwMDApO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIE1ha2UgYSBkZWFkbGluZSBmb3IgdGhlIGByZXRyeWAgZnVuY3Rpb24gcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgdGltZS5cbiAqL1xucmV0cnkuZm9yU2Vjb25kcyA9IChzZWNvbmRzOiBudW1iZXIpOiBEYXRlID0+IHtcbiAgcmV0dXJuIG5ldyBEYXRlKERhdGUubm93KCkgKyBzZWNvbmRzICogMTAwMCk7XG59O1xuXG4vKipcbiAqIEFubm90YXRlIGFuIGVycm9yIHRvIHN0b3AgdGhlIHJldHJ5aW5nXG4gKi9cbnJldHJ5LmFib3J0ID0gKGU6IEVycm9yKTogRXJyb3IgPT4ge1xuICAoZSBhcyBhbnkpLmFib3J0ID0gdHJ1ZTtcbiAgcmV0dXJuIGU7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gb3V0cHV0RnJvbVN0YWNrKGtleTogc3RyaW5nLCBzdGFjazogQVdTLkNsb3VkRm9ybWF0aW9uLlN0YWNrKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIChzdGFjay5PdXRwdXRzID8/IFtdKS5maW5kKG8gPT4gby5PdXRwdXRLZXkgPT09IGtleSk/Lk91dHB1dFZhbHVlO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2xlZXAobXM6IG51bWJlcikge1xuICByZXR1cm4gbmV3IFByb21pc2Uob2sgPT4gc2V0VGltZW91dChvaywgbXMpKTtcbn1cblxuZnVuY3Rpb24gY2hhaW5hYmxlQ3JlZGVudGlhbHMocmVnaW9uOiBzdHJpbmcpOiBBV1MuQ3JlZGVudGlhbHMgfCB1bmRlZmluZWQge1xuXG4gIGNvbnN0IHByb2ZpbGVOYW1lID0gcHJvY2Vzcy5lbnYuQVdTX1BST0ZJTEU7XG4gIGlmIChwcm9jZXNzLmVudi5DT0RFQlVJTERfQlVJTERfQVJOICYmIHByb2ZpbGVOYW1lKSB7XG5cbiAgICAvLyBpbiBjb2RlYnVpbGQgd2UgbXVzdCBhc3N1bWUgdGhlIHJvbGUgdGhhdCB0aGUgY2RrIHVzZXNcbiAgICAvLyBvdGhlcndpc2UgY3JlZGVudGlhbHMgd2lsbCBqdXN0IGJlIHBpY2tlZCB1cCBieSB0aGUgbm9ybWFsIHNka1xuICAgIC8vIGhldXJpc3RpY3MgYW5kIGV4cGlyZSBhZnRlciBhbiBob3VyLlxuXG4gICAgLy8gY2FuJ3QgdXNlICd+JyBzaW5jZSB0aGUgU0RLIGRvZXNuJ3Qgc2VlbSB0byBleHBhbmQgaXQuLi4/XG4gICAgY29uc3QgY29uZmlnUGF0aCA9IGAke3Byb2Nlc3MuZW52LkhPTUV9Ly5hd3MvY29uZmlnYDtcbiAgICBjb25zdCBpbmkgPSBuZXcgQVdTLkluaUxvYWRlcigpLmxvYWRGcm9tKHtcbiAgICAgIGZpbGVuYW1lOiBjb25maWdQYXRoLFxuICAgICAgaXNDb25maWc6IHRydWUsXG4gICAgfSk7XG5cbiAgICBjb25zdCBwcm9maWxlID0gaW5pW3Byb2ZpbGVOYW1lXTtcblxuICAgIGlmICghcHJvZmlsZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBQcm9maWxlICcke3Byb2ZpbGVOYW1lfScgZG9lcyBub3QgZXhpc3QgaW4gY29uZmlnIGZpbGUgKCR7Y29uZmlnUGF0aH0pYCk7XG4gICAgfVxuXG4gICAgY29uc3QgYXJuID0gcHJvZmlsZS5yb2xlX2FybjtcbiAgICBjb25zdCBleHRlcm5hbElkID0gcHJvZmlsZS5leHRlcm5hbF9pZDtcblxuICAgIGlmICghYXJuKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHJvbGVfYXJuIGRvZXMgbm90IGV4aXN0IGluIHByb2ZpbGUgJHtwcm9maWxlTmFtZX1gKTtcbiAgICB9XG5cbiAgICBpZiAoIWV4dGVybmFsSWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgZXh0ZXJuYWxfaWQgZG9lcyBub3QgZXhpc3QgaW4gcHJvZmlsZSAke2V4dGVybmFsSWR9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBBV1MuQ2hhaW5hYmxlVGVtcG9yYXJ5Q3JlZGVudGlhbHMoe1xuICAgICAgcGFyYW1zOiB7XG4gICAgICAgIFJvbGVBcm46IGFybixcbiAgICAgICAgRXh0ZXJuYWxJZDogZXh0ZXJuYWxJZCxcbiAgICAgICAgUm9sZVNlc3Npb25OYW1lOiAnaW50ZWctdGVzdHMnLFxuICAgICAgfSxcbiAgICAgIHN0c0NvbmZpZzoge1xuICAgICAgICByZWdpb24sXG4gICAgICB9LFxuICAgICAgbWFzdGVyQ3JlZGVudGlhbHM6IG5ldyBBV1MuRUNTQ3JlZGVudGlhbHMoKSxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59Il19
245
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtCQUErQjtBQUUvQixpRUFBaUU7QUFDakUsT0FBTyxDQUFDLHNDQUFzQyxDQUFDLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztBQUVoRSxNQUFhLFVBQVU7SUFvQnJCLFlBQTRCLE1BQWMsRUFBbUIsTUFBNkI7UUFBOUQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFtQixXQUFNLEdBQU4sTUFBTSxDQUF1QjtRQUN4RixJQUFJLENBQUMsTUFBTSxHQUFHO1lBQ1osV0FBVyxFQUFFLG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDOUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLFVBQVUsRUFBRSxDQUFDO1lBQ2IsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFO1lBQ2hDLG9CQUFvQixFQUFFLFVBQVU7U0FDakMsQ0FBQztRQUNGLElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxFQUFFLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxHQUFHLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxHQUFHLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxHQUFHLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxNQUFNLEdBQUcs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TSxVQUFVLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksY0FBYyxDQUFDO1FBQ3JELE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztZQUN2QyxRQUFRLEVBQUUsVUFBVTtZQUNwQixRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUMsQ0FBQztRQUVILE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVqQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUFZLFdBQVcsb0NBQW9DLFVBQVUsR0FBRyxDQUFDLENBQUM7U0FDM0Y7UUFFRCxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQzdCLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFFdkMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNSLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLFdBQVcsRUFBRSxDQUFDLENBQUM7U0FDdEU7UUFFRCxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsVUFBVSxFQUFFLENBQUMsQ0FBQztTQUN4RTtRQUVELE9BQU8sSUFBSSxHQUFHLENBQUMsNkJBQTZCLENBQUM7WUFDM0MsTUFBTSxFQUFFO2dCQUNOLE9BQU8sRUFBRSxHQUFHO2dCQUNaLFVBQVUsRUFBRSxVQUFVO2dCQUN0QixlQUFlLEVBQUUsYUFBYTthQUMvQjtZQUNELFNBQVMsRUFBRTtnQkFDVCxNQUFNO2FBQ1A7WUFDRCxpQkFBaUIsRUFBRSxJQUFJLEdBQUcsQ0FBQyxjQUFjLEVBQUU7U0FDNUMsQ0FBQyxDQUFDO0tBQ0o7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgQVdTIGZyb20gJ2F3cy1zZGsnO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xucmVxdWlyZSgnYXdzLXNkay9saWIvbWFpbnRlbmFuY2VfbW9kZV9tZXNzYWdlJykuc3VwcHJlc3MgPSB0cnVlO1xuXG5leHBvcnQgY2xhc3MgQXdzQ2xpZW50cyB7XG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgZGVmYXVsdChvdXRwdXQ6IE5vZGVKUy5Xcml0YWJsZVN0cmVhbSkge1xuICAgIGNvbnN0IHJlZ2lvbiA9IHByb2Nlc3MuZW52LkFXU19SRUdJT04gPz8gcHJvY2Vzcy5lbnYuQVdTX0RFRkFVTFRfUkVHSU9OID8/ICd1cy1lYXN0LTEnO1xuICAgIHJldHVybiBBd3NDbGllbnRzLmZvclJlZ2lvbihyZWdpb24sIG91dHB1dCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGFzeW5jIGZvclJlZ2lvbihyZWdpb246IHN0cmluZywgb3V0cHV0OiBOb2RlSlMuV3JpdGFibGVTdHJlYW0pIHtcbiAgICByZXR1cm4gbmV3IEF3c0NsaWVudHMocmVnaW9uLCBvdXRwdXQpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IGFueTtcblxuICBwdWJsaWMgcmVhZG9ubHkgY2xvdWRGb3JtYXRpb246IEF3c0NhbGxlcjxBV1MuQ2xvdWRGb3JtYXRpb24+O1xuICBwdWJsaWMgcmVhZG9ubHkgczM6IEF3c0NhbGxlcjxBV1MuUzM+O1xuICBwdWJsaWMgcmVhZG9ubHkgZWNyOiBBd3NDYWxsZXI8QVdTLkVDUj47XG4gIHB1YmxpYyByZWFkb25seSBzbnM6IEF3c0NhbGxlcjxBV1MuU05TPjtcbiAgcHVibGljIHJlYWRvbmx5IGlhbTogQXdzQ2FsbGVyPEFXUy5JQU0+O1xuICBwdWJsaWMgcmVhZG9ubHkgbGFtYmRhOiBBd3NDYWxsZXI8QVdTLkxhbWJkYT47XG4gIHB1YmxpYyByZWFkb25seSBzdHM6IEF3c0NhbGxlcjxBV1MuU1RTPjtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgcmVnaW9uOiBzdHJpbmcsIHByaXZhdGUgcmVhZG9ubHkgb3V0cHV0OiBOb2RlSlMuV3JpdGFibGVTdHJlYW0pIHtcbiAgICB0aGlzLmNvbmZpZyA9IHtcbiAgICAgIGNyZWRlbnRpYWxzOiBjaGFpbmFibGVDcmVkZW50aWFscyh0aGlzLnJlZ2lvbiksXG4gICAgICByZWdpb246IHRoaXMucmVnaW9uLFxuICAgICAgbWF4UmV0cmllczogOCxcbiAgICAgIHJldHJ5RGVsYXlPcHRpb25zOiB7IGJhc2U6IDUwMCB9LFxuICAgICAgc3RzUmVnaW9uYWxFbmRwb2ludHM6ICdyZWdpb25hbCcsXG4gICAgfTtcbiAgICB0aGlzLmNsb3VkRm9ybWF0aW9uID0gbWFrZUF3c0NhbGxlcihBV1MuQ2xvdWRGb3JtYXRpb24sIHRoaXMuY29uZmlnKTtcbiAgICB0aGlzLnMzID0gbWFrZUF3c0NhbGxlcihBV1MuUzMsIHRoaXMuY29uZmlnKTtcbiAgICB0aGlzLmVjciA9IG1ha2VBd3NDYWxsZXIoQVdTLkVDUiwgdGhpcy5jb25maWcpO1xuICAgIHRoaXMuc25zID0gbWFrZUF3c0NhbGxlcihBV1MuU05TLCB0aGlzLmNvbmZpZyk7XG4gICAgdGhpcy5pYW0gPSBtYWtlQXdzQ2FsbGVyKEFXUy5JQU0sIHRoaXMuY29uZmlnKTtcbiAgICB0aGlzLmxhbWJkYSA9IG1ha2VBd3NDYWxsZXIoQVdTLkxhbWJkYSwgdGhpcy5jb25maWcpO1xuICAgIHRoaXMuc3RzID0gbWFrZUF3c0NhbGxlcihBV1MuU1RTLCB0aGlzLmNvbmZpZyk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgYWNjb3VudCgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIC8vIFJlZHVjZSAjIG9mIHJldHJpZXMsIHdlIHVzZSB0aGlzIGFzIGEgY2lyY3VpdCBicmVha2VyIGZvciBkZXRlY3Rpbmcgbm8tY29uZmlnXG4gICAgcmV0dXJuIChhd2FpdCBuZXcgQVdTLlNUUyh7IC4uLnRoaXMuY29uZmlnLCBtYXhSZXRyaWVzOiAxIH0pLmdldENhbGxlcklkZW50aXR5KCkucHJvbWlzZSgpKS5BY2NvdW50ITtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkZWxldGVTdGFja3MoLi4uc3RhY2tOYW1lczogc3RyaW5nW10pIHtcbiAgICBpZiAoc3RhY2tOYW1lcy5sZW5ndGggPT09IDApIHsgcmV0dXJuOyB9XG5cbiAgICAvLyBXZSBwdXJwb3NlbHkgZG8gYWxsIHN0YWNrcyBzZXJpYWxseSwgYmVjYXVzZSB0aGV5J3ZlIGJlZW4gb3JkZXJlZFxuICAgIC8vIHRvIGRvIHRoZSBib290c3RyYXAgc3RhY2sgbGFzdC5cbiAgICBmb3IgKGNvbnN0IHN0YWNrTmFtZSBvZiBzdGFja05hbWVzKSB7XG4gICAgICBhd2FpdCB0aGlzLmNsb3VkRm9ybWF0aW9uKCd1cGRhdGVUZXJtaW5hdGlvblByb3RlY3Rpb24nLCB7XG4gICAgICAgIEVuYWJsZVRlcm1pbmF0aW9uUHJvdGVjdGlvbjogZmFsc2UsXG4gICAgICAgIFN0YWNrTmFtZTogc3RhY2tOYW1lLFxuICAgICAgfSk7XG4gICAgICBhd2FpdCB0aGlzLmNsb3VkRm9ybWF0aW9uKCdkZWxldGVTdGFjaycsIHtcbiAgICAgICAgU3RhY2tOYW1lOiBzdGFja05hbWUsXG4gICAgICB9KTtcblxuICAgICAgYXdhaXQgcmV0cnkodGhpcy5vdXRwdXQsIGBEZWxldGluZyAke3N0YWNrTmFtZX1gLCByZXRyeS5mb3JTZWNvbmRzKDYwMCksIGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3Qgc3RhdHVzID0gYXdhaXQgdGhpcy5zdGFja1N0YXR1cyhzdGFja05hbWUpO1xuICAgICAgICBpZiAoc3RhdHVzICE9PSB1bmRlZmluZWQgJiYgc3RhdHVzLmVuZHNXaXRoKCdfRkFJTEVEJykpIHtcbiAgICAgICAgICB0aHJvdyByZXRyeS5hYm9ydChuZXcgRXJyb3IoYCcke3N0YWNrTmFtZX0nIGlzIGluIHN0YXRlICcke3N0YXR1c30nYCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGF0dXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRGVsZXRlIG9mICcke3N0YWNrTmFtZX0nIG5vdCBjb21wbGV0ZSB5ZXRgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHN0YWNrU3RhdHVzKHN0YWNrTmFtZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLmNsb3VkRm9ybWF0aW9uKCdkZXNjcmliZVN0YWNrcycsIHsgU3RhY2tOYW1lOiBzdGFja05hbWUgfSkpLlN0YWNrcz8uWzBdLlN0YWNrU3RhdHVzO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmIChpc1N0YWNrTWlzc2luZ0Vycm9yKGUpKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGVtcHR5QnVja2V0KGJ1Y2tldE5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IG9iamVjdHMgPSBhd2FpdCB0aGlzLnMzKCdsaXN0T2JqZWN0VmVyc2lvbnMnLCB7IEJ1Y2tldDogYnVja2V0TmFtZSB9KTtcbiAgICBjb25zdCBkZWxldGVzID0gWy4uLm9iamVjdHMuVmVyc2lvbnMgfHwgW10sIC4uLm9iamVjdHMuRGVsZXRlTWFya2VycyB8fCBbXV1cbiAgICAgIC5yZWR1Y2UoKGFjYywgb2JqKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2Ygb2JqLlZlcnNpb25JZCAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIG9iai5LZXkgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgYWNjLnB1c2goeyBLZXk6IG9iai5LZXksIFZlcnNpb25JZDogb2JqLlZlcnNpb25JZCB9KTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygb2JqLktleSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICBhY2MucHVzaCh7IEtleTogb2JqLktleSB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwgW10gYXMgQVdTLlMzLk9iamVjdElkZW50aWZpZXJMaXN0KTtcbiAgICBpZiAoZGVsZXRlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuczMoJ2RlbGV0ZU9iamVjdHMnLCB7XG4gICAgICBCdWNrZXQ6IGJ1Y2tldE5hbWUsXG4gICAgICBEZWxldGU6IHtcbiAgICAgICAgT2JqZWN0czogZGVsZXRlcyxcbiAgICAgICAgUXVpZXQ6IGZhbHNlLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkZWxldGVJbWFnZVJlcG9zaXRvcnkocmVwb3NpdG9yeU5hbWU6IHN0cmluZykge1xuICAgIGF3YWl0IHRoaXMuZWNyKCdkZWxldGVSZXBvc2l0b3J5JywgeyByZXBvc2l0b3J5TmFtZSwgZm9yY2U6IHRydWUgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGVsZXRlQnVja2V0KGJ1Y2tldE5hbWU6IHN0cmluZykge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmVtcHR5QnVja2V0KGJ1Y2tldE5hbWUpO1xuICAgICAgYXdhaXQgdGhpcy5zMygnZGVsZXRlQnVja2V0Jywge1xuICAgICAgICBCdWNrZXQ6IGJ1Y2tldE5hbWUsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAoaXNCdWNrZXRNaXNzaW5nRXJyb3IoZSkpIHsgcmV0dXJuOyB9XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFBlcmZvcm0gYW4gQVdTIGNhbGwgZnJvbSBub3RoaW5nXG4gKlxuICogQ3JlYXRlIHRoZSBjb3JyZWN0IGNsaWVudCwgZG8gdGhlIGNhbGwgYW5kIHJlc29sZSB0aGUgcHJvbWlzZSgpLlxuICovXG5hc3luYyBmdW5jdGlvbiBhd3NDYWxsPFxuICBBIGV4dGVuZHMgQVdTLlNlcnZpY2UsXG4gIEIgZXh0ZW5kcyBrZXlvZiBTZXJ2aWNlQ2FsbHM8QT4sXG4+KGN0b3I6IG5ldyAoY29uZmlnOiBhbnkpID0+IEEsIGNvbmZpZzogYW55LCBjYWxsOiBCLCByZXF1ZXN0OiBGaXJzdDxTZXJ2aWNlQ2FsbHM8QT5bQl0+KTogUHJvbWlzZTxTZWNvbmQ8U2VydmljZUNhbGxzPEE+W0JdPj4ge1xuICBjb25zdCBjZm4gPSBuZXcgY3Rvcihjb25maWcpO1xuICBjb25zdCByZXNwb25zZSA9IGNmbltjYWxsXShyZXF1ZXN0KTtcbiAgdHJ5IHtcbiAgICByZXR1cm4gcmVzcG9uc2UucHJvbWlzZSgpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc3QgbmV3RXJyID0gbmV3IEVycm9yKGAke2NhbGx9KCR7SlNPTi5zdHJpbmdpZnkocmVxdWVzdCl9KTogJHtlLm1lc3NhZ2V9YCk7XG4gICAgKG5ld0VyciBhcyBhbnkpLmNvZGUgPSBlLmNvZGU7XG4gICAgdGhyb3cgbmV3RXJyO1xuICB9XG59XG5cbnR5cGUgQXdzQ2FsbGVyPEE+ID0gPEIgZXh0ZW5kcyBrZXlvZiBTZXJ2aWNlQ2FsbHM8QT4+KGNhbGw6IEIsIHJlcXVlc3Q6IEZpcnN0PFNlcnZpY2VDYWxsczxBPltCXT4pID0+IFByb21pc2U8U2Vjb25kPFNlcnZpY2VDYWxsczxBPltCXT4+O1xuXG4vKipcbiAqIEZhY3RvcnkgZnVuY3Rpb24gdG8gaW52b2tlICdhd3NDYWxsJyBmb3Igc3BlY2lmaWMgc2VydmljZXMuXG4gKlxuICogTm90IHN0cmljdGx5IG5lY2Vzc2FyeSBidXQgY2FsbGluZyB0aGlzIHJlcGxhY2VzIGEgd2hvbGUgYnVuY2ggb2YgYW5ub3lpbmcgZ2VuZXJpY3MgeW91IG90aGVyd2lzZSBoYXZlIHRvIHR5cGU6XG4gKlxuICogYGBgdHNcbiAqIGV4cG9ydCBmdW5jdGlvbiBjbG91ZEZvcm1hdGlvbjxcbiAqICAgQyBleHRlbmRzIGtleW9mIFNlcnZpY2VDYWxsczxBV1MuQ2xvdWRGb3JtYXRpb24+LFxuICogPihjYWxsOiBDLCByZXF1ZXN0OiBGaXJzdDxTZXJ2aWNlQ2FsbHM8QVdTLkNsb3VkRm9ybWF0aW9uPltDXT4pOiBQcm9taXNlPFNlY29uZDxTZXJ2aWNlQ2FsbHM8QVdTLkNsb3VkRm9ybWF0aW9uPltDXT4+IHtcbiAqICAgcmV0dXJuIGF3c0NhbGwoQVdTLkNsb3VkRm9ybWF0aW9uLCBjYWxsLCByZXF1ZXN0KTtcbiAqIH1cbiAqIGBgYFxuICovXG5mdW5jdGlvbiBtYWtlQXdzQ2FsbGVyPEEgZXh0ZW5kcyBBV1MuU2VydmljZT4oY3RvcjogbmV3IChjb25maWc6IGFueSkgPT4gQSwgY29uZmlnOiBhbnkpOiBBd3NDYWxsZXI8QT4ge1xuICByZXR1cm4gPEIgZXh0ZW5kcyBrZXlvZiBTZXJ2aWNlQ2FsbHM8QT4+KGNhbGw6IEIsIHJlcXVlc3Q6IEZpcnN0PFNlcnZpY2VDYWxsczxBPltCXT4pOiBQcm9taXNlPFNlY29uZDxTZXJ2aWNlQ2FsbHM8QT5bQl0+PiA9PiB7XG4gICAgcmV0dXJuIGF3c0NhbGwoY3RvciwgY29uZmlnLCBjYWxsLCByZXF1ZXN0KTtcbiAgfTtcbn1cblxudHlwZSBTZXJ2aWNlQ2FsbHM8VD4gPSBOb05heU5ldmVyPFNpbXBsaWZpZWRTZXJ2aWNlPFQ+Pjtcbi8vIE1hcCBldmVyIG1lbWJlciBpbiB0aGUgdHlwZSB0byB0aGUgaW1wb3J0YW50IEFXUyBjYWxsIG92ZXJsb2FkLCBvciB0byAnbmV2ZXInXG50eXBlIFNpbXBsaWZpZWRTZXJ2aWNlPFQ+ID0ge1trIGluIGtleW9mIFRdOiBBd3NDYWxsSU88VFtrXT59O1xuLy8gUmVtb3ZlIGFsbCAnbmV2ZXInIHR5cGVzIGZyb20gYW4gb2JqZWN0IHR5cGVcbnR5cGUgTm9OYXlOZXZlcjxUPiA9IFBpY2s8VCwge1trIGluIGtleW9mIFRdOiBUW2tdIGV4dGVuZHMgbmV2ZXIgPyBuZXZlciA6IGsgfVtrZXlvZiBUXT47XG5cbi8vIEJlY2F1c2Ugb2YgdGhlIG92ZXJsb2FkcyBhbiBBV1MgaGFuZGxlciB0eXBlIGxvb2tzIGxpa2UgdGhpczpcbi8vXG4vLyAgIHtcbi8vICAgICAgKHBhcmFtczogSU5QVVRTVFJVQ1QsIGNhbGxiYWNrPzogKChlcnI6IEFXU0Vycm9yLCBkYXRhOiB7fSkgPT4gdm9pZCkgfCB1bmRlZmluZWQpOiBSZXF1ZXN0PE9VVFBVVCwgLi4uPjtcbi8vICAgICAgKGNhbGxiYWNrPzogKChlcnI6IEFXUy5BV1NFcnJvciwgZGF0YToge30pID0+IHZvaWQpIHwgdW5kZWZpbmVkKTogQVdTLlJlcXVlc3Q8Li4uPjtcbi8vICAgfVxuLy9cbi8vIEdldCB0aGUgZmlyc3Qgb3ZlcmxvYWQgYW5kIGV4dHJhY3QgdGhlIGlucHV0IGFuZCBvdXRwdXQgc3RydWN0IHR5cGVzXG50eXBlIEF3c0NhbGxJTzxUPiA9XG4gIFQgZXh0ZW5kcyB7XG4gICAgKGFyZ3M6IGluZmVyIElOUFVULCBjYWxsYmFjaz86ICgoZXJyOiBBV1MuQVdTRXJyb3IsIGRhdGE6IGFueSkgPT4gdm9pZCkgfCB1bmRlZmluZWQpOiBBV1MuUmVxdWVzdDxpbmZlciBPVVRQVVQsIEFXUy5BV1NFcnJvcj47XG4gICAgKGNhbGxiYWNrPzogKChlcnI6IEFXUy5BV1NFcnJvciwgZGF0YToge30pID0+IHZvaWQpIHwgdW5kZWZpbmVkKTogQVdTLlJlcXVlc3Q8YW55LCBhbnk+O1xuICB9ID8gW0lOUFVULCBPVVRQVVRdIDogbmV2ZXI7XG5cbnR5cGUgRmlyc3Q8VD4gPSBUIGV4dGVuZHMgW2FueSwgYW55XSA/IFRbMF0gOiBuZXZlcjtcbnR5cGUgU2Vjb25kPFQ+ID0gVCBleHRlbmRzIFthbnksIGFueV0gPyBUWzFdIDogbmV2ZXI7XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU3RhY2tNaXNzaW5nRXJyb3IoZTogRXJyb3IpIHtcbiAgcmV0dXJuIGUubWVzc2FnZS5pbmRleE9mKCdkb2VzIG5vdCBleGlzdCcpID4gLTE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0J1Y2tldE1pc3NpbmdFcnJvcihlOiBFcnJvcikge1xuICByZXR1cm4gZS5tZXNzYWdlLmluZGV4T2YoJ2RvZXMgbm90IGV4aXN0JykgPiAtMTtcbn1cblxuLyoqXG4gKiBSZXRyeSBhbiBhc3luYyBvcGVyYXRpb24gdW50aWwgYSBkZWFkbGluZSBpcyBoaXQuXG4gKlxuICogVXNlIGByZXRyeS5mb3JTZWNvbmRzKClgIHRvIGNvbnN0cnVjdCBhIGRlYWRsaW5lIHJlbGF0aXZlIHRvIHJpZ2h0IG5vdy5cbiAqXG4gKiBFeGNlcHRpb25zIHdpbGwgY2F1c2UgdGhlIG9wZXJhdGlvbiB0byByZXRyeS4gVXNlIGByZXRyeS5hYm9ydGAgdG8gYW5ub3RhdGUgYW4gZXhjZXB0aW9uXG4gKiB0byBzdG9wIHRoZSByZXRyeSBhbmQgZW5kIGluIGEgZmFpbHVyZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJldHJ5PEE+KG91dHB1dDogTm9kZUpTLldyaXRhYmxlU3RyZWFtLCBvcGVyYXRpb246IHN0cmluZywgZGVhZGxpbmU6IERhdGUsIGJsb2NrOiAoKSA9PiBQcm9taXNlPEE+KTogUHJvbWlzZTxBPiB7XG4gIGxldCBpID0gMDtcbiAgb3V0cHV0LndyaXRlKGDwn5KIICR7b3BlcmF0aW9ufVxcbmApO1xuICB3aGlsZSAodHJ1ZSkge1xuICAgIHRyeSB7XG4gICAgICBpKys7XG4gICAgICBjb25zdCByZXQgPSBhd2FpdCBibG9jaygpO1xuICAgICAgb3V0cHV0LndyaXRlKGDwn5KIICR7b3BlcmF0aW9ufTogc3VjY2VlZGVkIGFmdGVyICR7aX0gYXR0ZW1wdHNcXG5gKTtcbiAgICAgIHJldHVybiByZXQ7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKGUuYWJvcnQgfHwgRGF0ZS5ub3coKSA+IGRlYWRsaW5lLmdldFRpbWUoICkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke29wZXJhdGlvbn06IGRpZCBub3Qgc3VjY2VlZCBhZnRlciAke2l9IGF0dGVtcHRzOiAke2V9YCk7XG4gICAgICB9XG4gICAgICBvdXRwdXQud3JpdGUoYOKPsyAke29wZXJhdGlvbn0gKCR7ZS5tZXNzYWdlfSlcXG5gKTtcbiAgICAgIGF3YWl0IHNsZWVwKDUwMDApO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIE1ha2UgYSBkZWFkbGluZSBmb3IgdGhlIGByZXRyeWAgZnVuY3Rpb24gcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgdGltZS5cbiAqL1xucmV0cnkuZm9yU2Vjb25kcyA9IChzZWNvbmRzOiBudW1iZXIpOiBEYXRlID0+IHtcbiAgcmV0dXJuIG5ldyBEYXRlKERhdGUubm93KCkgKyBzZWNvbmRzICogMTAwMCk7XG59O1xuXG4vKipcbiAqIEFubm90YXRlIGFuIGVycm9yIHRvIHN0b3AgdGhlIHJldHJ5aW5nXG4gKi9cbnJldHJ5LmFib3J0ID0gKGU6IEVycm9yKTogRXJyb3IgPT4ge1xuICAoZSBhcyBhbnkpLmFib3J0ID0gdHJ1ZTtcbiAgcmV0dXJuIGU7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gb3V0cHV0RnJvbVN0YWNrKGtleTogc3RyaW5nLCBzdGFjazogQVdTLkNsb3VkRm9ybWF0aW9uLlN0YWNrKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIChzdGFjay5PdXRwdXRzID8/IFtdKS5maW5kKG8gPT4gby5PdXRwdXRLZXkgPT09IGtleSk/Lk91dHB1dFZhbHVlO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2xlZXAobXM6IG51bWJlcikge1xuICByZXR1cm4gbmV3IFByb21pc2Uob2sgPT4gc2V0VGltZW91dChvaywgbXMpKTtcbn1cblxuZnVuY3Rpb24gY2hhaW5hYmxlQ3JlZGVudGlhbHMocmVnaW9uOiBzdHJpbmcpOiBBV1MuQ3JlZGVudGlhbHMgfCB1bmRlZmluZWQge1xuXG4gIGNvbnN0IHByb2ZpbGVOYW1lID0gcHJvY2Vzcy5lbnYuQVdTX1BST0ZJTEU7XG4gIGlmIChwcm9jZXNzLmVudi5DT0RFQlVJTERfQlVJTERfQVJOICYmIHByb2ZpbGVOYW1lKSB7XG5cbiAgICAvLyBpbiBjb2RlYnVpbGQgd2UgbXVzdCBhc3N1bWUgdGhlIHJvbGUgdGhhdCB0aGUgY2RrIHVzZXNcbiAgICAvLyBvdGhlcndpc2UgY3JlZGVudGlhbHMgd2lsbCBqdXN0IGJlIHBpY2tlZCB1cCBieSB0aGUgbm9ybWFsIHNka1xuICAgIC8vIGhldXJpc3RpY3MgYW5kIGV4cGlyZSBhZnRlciBhbiBob3VyLlxuXG4gICAgLy8gY2FuJ3QgdXNlICd+JyBzaW5jZSB0aGUgU0RLIGRvZXNuJ3Qgc2VlbSB0byBleHBhbmQgaXQuLi4/XG4gICAgY29uc3QgY29uZmlnUGF0aCA9IGAke3Byb2Nlc3MuZW52LkhPTUV9Ly5hd3MvY29uZmlnYDtcbiAgICBjb25zdCBpbmkgPSBuZXcgQVdTLkluaUxvYWRlcigpLmxvYWRGcm9tKHtcbiAgICAgIGZpbGVuYW1lOiBjb25maWdQYXRoLFxuICAgICAgaXNDb25maWc6IHRydWUsXG4gICAgfSk7XG5cbiAgICBjb25zdCBwcm9maWxlID0gaW5pW3Byb2ZpbGVOYW1lXTtcblxuICAgIGlmICghcHJvZmlsZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBQcm9maWxlICcke3Byb2ZpbGVOYW1lfScgZG9lcyBub3QgZXhpc3QgaW4gY29uZmlnIGZpbGUgKCR7Y29uZmlnUGF0aH0pYCk7XG4gICAgfVxuXG4gICAgY29uc3QgYXJuID0gcHJvZmlsZS5yb2xlX2FybjtcbiAgICBjb25zdCBleHRlcm5hbElkID0gcHJvZmlsZS5leHRlcm5hbF9pZDtcblxuICAgIGlmICghYXJuKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHJvbGVfYXJuIGRvZXMgbm90IGV4aXN0IGluIHByb2ZpbGUgJHtwcm9maWxlTmFtZX1gKTtcbiAgICB9XG5cbiAgICBpZiAoIWV4dGVybmFsSWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgZXh0ZXJuYWxfaWQgZG9lcyBub3QgZXhpc3QgaW4gcHJvZmlsZSAke2V4dGVybmFsSWR9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBBV1MuQ2hhaW5hYmxlVGVtcG9yYXJ5Q3JlZGVudGlhbHMoe1xuICAgICAgcGFyYW1zOiB7XG4gICAgICAgIFJvbGVBcm46IGFybixcbiAgICAgICAgRXh0ZXJuYWxJZDogZXh0ZXJuYWxJZCxcbiAgICAgICAgUm9sZVNlc3Npb25OYW1lOiAnaW50ZWctdGVzdHMnLFxuICAgICAgfSxcbiAgICAgIHN0c0NvbmZpZzoge1xuICAgICAgICByZWdpb24sXG4gICAgICB9LFxuICAgICAgbWFzdGVyQ3JlZGVudGlhbHM6IG5ldyBBV1MuRUNTQ3JlZGVudGlhbHMoKSxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59Il19
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@aws-cdk-testing/cli-integ",
3
3
  "description": "Integration tests for the AWS CDK CLI",
4
- "version": "2.65.0",
4
+ "version": "2.66.0",
5
5
  "bin": {
6
6
  "run-suite": "bin/run-suite",
7
7
  "download-and-run-old-tests": "bin/download-and-run-old-tests",
@@ -29,27 +29,28 @@
29
29
  },
30
30
  "license": "Apache-2.0",
31
31
  "devDependencies": {
32
- "@aws-cdk/cdk-build-tools": "2.65.0",
32
+ "@aws-cdk/cdk-build-tools": "2.66.0",
33
33
  "@types/semver": "^7.3.13",
34
34
  "@types/yargs": "^15.0.15",
35
35
  "@types/fs-extra": "^9.0.13",
36
36
  "@types/glob": "^7.2.0",
37
37
  "@types/npm": "^7.19.0",
38
- "@aws-cdk/pkglint": "2.65.0"
38
+ "@aws-cdk/pkglint": "2.66.0"
39
39
  },
40
40
  "dependencies": {
41
41
  "@octokit/rest": "^18.12.0",
42
- "jest": "^27.5.1",
43
- "aws-sdk": "^2.1313.0",
42
+ "aws-sdk": "^2.1317.0",
44
43
  "axios": "^0.27.2",
44
+ "fs-extra": "^9.1.0",
45
+ "glob": "^7.2.3",
46
+ "jest": "^27.5.1",
45
47
  "jest-junit": "^14.0.1",
48
+ "make-runnable": "^1.4.1",
49
+ "npm": "^8.19.4",
50
+ "p-queue": "^6.6.2",
46
51
  "semver": "^7.3.8",
47
52
  "ts-mock-imports": "^1.3.8",
48
- "yargs": "^17.6.2",
49
- "glob": "^7.2.3",
50
- "p-queue": "^6.6.2",
51
- "fs-extra": "^9.1.0",
52
- "npm": "^8.19.3"
53
+ "yargs": "^17.7.0"
53
54
  },
54
55
  "repository": {
55
56
  "url": "https://github.com/aws/aws-cdk.git",
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const lib_1 = require("../../lib");
4
+ ['app', 'sample-app'].forEach(template => {
5
+ lib_1.integTest(`init go ${template}`, lib_1.withTemporaryDirectory(lib_1.withPackages(async (context) => {
6
+ context.packages.assertJsiiPackagesAvailable();
7
+ const shell = lib_1.ShellHelper.fromContext(context);
8
+ await context.packages.makeCliAvailable();
9
+ await shell.shell(['cdk', 'init', '-l', 'go', template]);
10
+ await shell.shell(['go', 'mod', 'edit', '-replace', 'github.com/aws/aws-cdk-go/awscdk=$dist_root/go/awscdk']);
11
+ await shell.shell(['go', 'mod', 'tidy']);
12
+ await shell.shell(['go', 'test']);
13
+ await shell.shell(['cdk', 'synth']);
14
+ })));
15
+ });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC1nby5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbml0LWdvLmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG1DQUF5RjtBQUV6RixDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7SUFDdkMsZUFBUyxDQUFDLFdBQVcsUUFBUSxFQUFFLEVBQUUsNEJBQXNCLENBQUMsa0JBQVksQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDckYsT0FBTyxDQUFDLFFBQVEsQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1FBRS9DLE1BQU0sS0FBSyxHQUFHLGlCQUFXLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9DLE1BQU0sT0FBTyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRTFDLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSx1REFBdUQsQ0FBQyxDQUFDLENBQUM7UUFDOUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW50ZWdUZXN0LCB3aXRoVGVtcG9yYXJ5RGlyZWN0b3J5LCBTaGVsbEhlbHBlciwgd2l0aFBhY2thZ2VzIH0gZnJvbSAnLi4vLi4vbGliJztcblxuWydhcHAnLCAnc2FtcGxlLWFwcCddLmZvckVhY2godGVtcGxhdGUgPT4ge1xuICBpbnRlZ1Rlc3QoYGluaXQgZ28gJHt0ZW1wbGF0ZX1gLCB3aXRoVGVtcG9yYXJ5RGlyZWN0b3J5KHdpdGhQYWNrYWdlcyhhc3luYyAoY29udGV4dCkgPT4ge1xuICAgIGNvbnRleHQucGFja2FnZXMuYXNzZXJ0SnNpaVBhY2thZ2VzQXZhaWxhYmxlKCk7XG5cbiAgICBjb25zdCBzaGVsbCA9IFNoZWxsSGVscGVyLmZyb21Db250ZXh0KGNvbnRleHQpO1xuICAgIGF3YWl0IGNvbnRleHQucGFja2FnZXMubWFrZUNsaUF2YWlsYWJsZSgpO1xuXG4gICAgYXdhaXQgc2hlbGwuc2hlbGwoWydjZGsnLCAnaW5pdCcsICctbCcsICdnbycsIHRlbXBsYXRlXSk7XG4gICAgYXdhaXQgc2hlbGwuc2hlbGwoWydnbycsICdtb2QnLCAnZWRpdCcsICctcmVwbGFjZScsICdnaXRodWIuY29tL2F3cy9hd3MtY2RrLWdvL2F3c2Nkaz0kZGlzdF9yb290L2dvL2F3c2NkayddKTtcbiAgICBhd2FpdCBzaGVsbC5zaGVsbChbJ2dvJywgJ21vZCcsICd0aWR5J10pO1xuICAgIGF3YWl0IHNoZWxsLnNoZWxsKFsnZ28nLCAndGVzdCddKTtcbiAgICBhd2FpdCBzaGVsbC5zaGVsbChbJ2NkaycsICdzeW50aCddKTtcbiAgfSkpKTtcbn0pO1xuIl19