@aws-cdk-testing/cli-integ 3.4.0 → 3.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/lib/process.js +4 -4
  2. package/lib/process.ts +3 -3
  3. package/lib/shell.js +27 -13
  4. package/lib/shell.ts +30 -11
  5. package/lib/with-aws.js +2 -2
  6. package/lib/with-aws.ts +1 -1
  7. package/package.json +1 -1
  8. package/resources/integ.jest.config.js +1 -1
  9. package/tests/cli-integ-tests/cdk-import-interactive.integtest.js +8 -4
  10. package/tests/cli-integ-tests/cdk-import-interactive.integtest.ts +7 -3
  11. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-csharp.integtest.js +2 -1
  12. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-csharp.integtest.ts +2 -0
  13. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-java.integtest.js +2 -1
  14. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-java.integtest.ts +3 -0
  15. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-python.integtest.js +2 -1
  16. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-python.integtest.ts +2 -0
  17. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-typescript.integtest.js +2 -1
  18. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-typescript.integtest.ts +2 -0
  19. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-csharp.integtest.js +2 -1
  20. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-csharp.integtest.ts +2 -0
  21. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-java.integtest.js +2 -1
  22. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-java.integtest.ts +2 -0
  23. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-python.integtest.js +2 -1
  24. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-python.integtest.ts +2 -0
  25. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-typescript.integtest.js +2 -1
  26. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-typescript.integtest.ts +2 -0
package/lib/process.js CHANGED
@@ -41,9 +41,9 @@ class PtyProcess {
41
41
  onStdout(callback) {
42
42
  this.process.onData((e) => callback(Buffer.from(e)));
43
43
  }
44
- onStderr(callback) {
45
- // in a pty all streams are the same
46
- return this.onStdout(callback);
44
+ onStderr(_callback) {
45
+ // https://github.com/microsoft/node-pty/issues/71
46
+ throw new Error(`Cannot register callback for 'stderr'. A tty does not have separate output and error channels`);
47
47
  }
48
48
  onExit(callback) {
49
49
  this.process.onExit((e) => { callback(e.exitCode); });
@@ -94,4 +94,4 @@ class NonPtyProcess {
94
94
  }
95
95
  }
96
96
  ;
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInByb2Nlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdUNBQXVDO0FBRXZDLGdDQUFnQztBQXlDL0IsQ0FBQztBQUVGLE1BQWEsT0FBTztJQUVsQjs7T0FFRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBZSxFQUFFLElBQWMsRUFBRSxVQUE0RCxFQUFFO1FBRXBILE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRTtZQUN2QyxJQUFJLEVBQUUsYUFBYTtZQUNuQixHQUFHLE9BQU87U0FDWCxDQUFDLENBQUE7UUFDRixPQUFPLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRWpDLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBZSxFQUFFLElBQWMsRUFBRSxVQUE4QixFQUFFO1FBRW5GLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRTtZQUN6QyxLQUFLLEVBQUUsSUFBSTtZQUNYLEtBQUssRUFBRSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDO1lBQ2pDLEdBQUcsT0FBTztTQUNYLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFcEMsQ0FBQztDQUVGO0FBN0JELDBCQTZCQztBQUVELE1BQU0sVUFBVTtJQUVkLFlBQW9DLE9BQWlCO1FBQWpCLFlBQU8sR0FBUCxPQUFPLENBQVU7SUFBRyxDQUFDO0lBRWxELFFBQVEsQ0FBQyxDQUFVO1FBQ3hCLHNEQUFzRDtJQUN4RCxDQUFDO0lBRU0sT0FBTyxDQUFDLENBQXlCO1FBQ3RDLGtFQUFrRTtJQUNwRSxDQUFDO0lBRU0sUUFBUSxDQUFDLFFBQWlDO1FBQy9DLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVNLFFBQVEsQ0FBQyxRQUFpQztRQUMvQyxvQ0FBb0M7UUFDcEMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFTSxNQUFNLENBQUMsUUFBb0M7UUFDaEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBR00sVUFBVSxDQUFDLElBQVk7UUFDNUIsb0NBQW9DO1FBQ3BDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzFCLENBQUM7Q0FFRjtBQUFBLENBQUM7QUFFRixNQUFNLGFBQWE7SUFFakIsWUFBb0MsT0FBMkI7UUFBM0IsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7SUFBRyxDQUFDO0lBRTVELE9BQU8sQ0FBQyxRQUFnQztRQUM3QyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVNLFFBQVEsQ0FBQyxRQUFpQztRQUMvQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVNLFFBQVEsQ0FBQyxRQUFpQztRQUMvQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVNLE1BQU0sQ0FBQyxRQUFvQztRQUNoRCxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVNLFVBQVUsQ0FBQyxPQUFlO1FBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxRQUFRLENBQUMsS0FBYztRQUM1QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQy9CLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBQ0QsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQU0sQ0FBQyxHQUFHLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNyRCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzVCLENBQUM7SUFDSCxDQUFDO0lBRU0sYUFBYSxDQUFDLElBQW1DLEVBQUUsTUFBK0M7UUFDdkcsSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFLENBQUM7WUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksNEJBQTRCLENBQUMsQ0FBQztRQUMxRCxDQUFDO0lBQ0gsQ0FBQztDQUVGO0FBQUEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNoaWxkIGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0IHsgUmVhZGFibGUsIFdyaXRhYmxlIH0gZnJvbSAnc3RyZWFtJztcbmltcG9ydCAqIGFzIHB0eSBmcm9tICdub2RlLXB0eSc7XG5cbi8qKlxuICogSVByb2Nlc3MgcHJvdmlkZXMgYW4gaW50ZXJmYWNlIHRvIHdvcmsgd2l0aCBhIHN1YnByb2Nlc3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVByb2Nlc3Mge1xuXG4gIC8qKlxuICAgKiBSZWdpc3RlciBhIGNhbGxiYWNrIHRvIGJlIGludm9rZWQgd2hlbiBhIGNodW5rIGlzIHdyaXR0ZW4gdG8gc3Rkb3V0LlxuICAgKi9cbiAgb25TdGRvdXQoY2FsbGJhY2s6IChjaHVuazogQnVmZmVyKSA9PiB2b2lkKTogdm9pZDtcblxuICAvKipcbiAgICogUmVnaXN0ZXIgYSBjYWxsYmFjayB0byBiZSBpbnZva2VkIHdoZW4gYSBjaHVuayBpcyB3cml0dGVuIHRvIHN0ZGVyci5cbiAgICovXG4gIG9uU3RkZXJyKGNhbGxiYWNrOiAoY2h1bms6IEJ1ZmZlcikgPT4gdm9pZCk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVyIGEgY2FsbGJhY2sgdG8gYmUgaW52b2tlZCB3aGVuIHRoZSBwcm9jZXNzIGV4aXN0cy5cbiAgICovXG4gIG9uRXhpdChjYWxsYmFjazogKGV4aXRDb2RlOiBudW1iZXIpID0+IHZvaWQpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBSZWdpc3RlciBhIGNhbGxiYWNrIHRvIGJlIGludm9rZWQgaWYgdGhlIHByb2Nlc3MgZmFpbGVkIHRvIHN0YXJ0LlxuICAgKi9cbiAgb25FcnJvcihjYWxsYmFjazogKGVycm9yOiBFcnJvcikgPT4gdm9pZCk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFdyaXRlIHRoZSBwcm9jZXNzIHN0ZGluIHN0cmVhbS5cbiAgICovXG4gIHdyaXRlU3RkaW4oZGF0YTogc3RyaW5nKTogdm9pZDtcblxuICAvKipcbiAgICogU2luZ2FsIHRoYXQgbm8gbW9yZSBkYXRhIHdpbGwgYmUgd3JpdHRlbiB0byBzdGRpbi4gSW4gbm9uIHR0eSBwcm9jZXNzIHlvdSBtdXN0XG4gICAqIGNhbGwgdGhpcyBtZXRob2QgdG8gbWFrZSBzdXJlIHRoZSBwcm9jZXNzIGV4aXRzLlxuICAgKlxuICAgKiBAcGFyYW0gZGVsYXkgLSBvcHRpb25hbCBkZWxheSBpbiBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSBzaWduYWwgaXMgc2VudC5cbiAgICpcbiAgICovXG4gIGVuZFN0ZGluKGRlbGF5PzogbnVtYmVyKTogdm9pZDtcblxufTtcblxuZXhwb3J0IGNsYXNzIFByb2Nlc3Mge1xuXG4gIC8qKlxuICAgKiBTcGF3biBhIHByb2Nlc3Mgd2l0aCBhIFRUWSBhdHRhY2hlZC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgc3Bhd25UVFkoY29tbWFuZDogc3RyaW5nLCBhcmdzOiBzdHJpbmdbXSwgb3B0aW9uczogcHR5LklQdHlGb3JrT3B0aW9ucyB8IHB0eS5JV2luZG93c1B0eUZvcmtPcHRpb25zID0ge30pOiBJUHJvY2VzcyB7XG5cbiAgICBjb25zdCBwcm9jZXNzID0gcHR5LnNwYXduKGNvbW1hbmQsIGFyZ3MsIHtcbiAgICAgIG5hbWU6ICd4dGVybS1jb2xvcicsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pXG4gICAgcmV0dXJuIG5ldyBQdHlQcm9jZXNzKHByb2Nlc3MpO1xuXG4gIH1cblxuICAvKipcbiAgICogU3Bhd24gYSBwcm9jZXNzIHdpdGhvdXQgYSBmb3JjaW5nIGEgVFRZLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzcGF3bihjb21tYW5kOiBzdHJpbmcsIGFyZ3M6IHN0cmluZ1tdLCBvcHRpb25zOiBjaGlsZC5TcGF3bk9wdGlvbnMgPSB7fSk6IElQcm9jZXNzIHtcblxuICAgIGNvbnN0IHByb2Nlc3MgPSBjaGlsZC5zcGF3bihjb21tYW5kLCBhcmdzLCB7XG4gICAgICBzaGVsbDogdHJ1ZSxcbiAgICAgIHN0ZGlvOiBbJ2lnbm9yZScsICdwaXBlJywgJ3BpcGUnXSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG4gICAgcmV0dXJuIG5ldyBOb25QdHlQcm9jZXNzKHByb2Nlc3MpO1xuXG4gIH1cblxufVxuXG5jbGFzcyBQdHlQcm9jZXNzIGltcGxlbWVudHMgSVByb2Nlc3Mge1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHByb2Nlc3M6IHB0eS5JUHR5KSB7fVxuXG4gIHB1YmxpYyBlbmRTdGRpbihfPzogbnVtYmVyKTogdm9pZCB7XG4gICAgLy8gbm90IG5lZWRlZCBiZWNhdXNlIGFsbCBzdHJlYW1zIGFyZSB0aGUgc2FtZSBpbiB0dHkuXG4gIH1cblxuICBwdWJsaWMgb25FcnJvcihfOiAoZXJyb3I6IEVycm9yKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgLy8gbm90IG5lZWRlZCBiZWNhdXNlIHRoZSBwdHkuc3Bhd24gd2lsbCBzaW1wbHkgZmFpbCBpbiB0aGlzIGNhc2UuXG4gIH1cblxuICBwdWJsaWMgb25TdGRvdXQoY2FsbGJhY2s6IChjaHVuazogQnVmZmVyKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5wcm9jZXNzLm9uRGF0YSgoZSkgPT4gY2FsbGJhY2soQnVmZmVyLmZyb20oZSkpKTtcbiAgfVxuXG4gIHB1YmxpYyBvblN0ZGVycihjYWxsYmFjazogKGNodW5rOiBCdWZmZXIpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAvLyBpbiBhIHB0eSBhbGwgc3RyZWFtcyBhcmUgdGhlIHNhbWVcbiAgICByZXR1cm4gdGhpcy5vblN0ZG91dChjYWxsYmFjayk7XG4gIH1cblxuICBwdWJsaWMgb25FeGl0KGNhbGxiYWNrOiAoZXhpdENvZGU6IG51bWJlcikgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMucHJvY2Vzcy5vbkV4aXQoKGUpID0+IHsgY2FsbGJhY2soZS5leGl0Q29kZSkgfSk7XG4gIH1cblxuXG4gIHB1YmxpYyB3cml0ZVN0ZGluKGRhdGE6IHN0cmluZyk6IHZvaWQge1xuICAgIC8vIGluIGEgcHR5IGFsbCBzdHJlYW1zIGFyZSB0aGUgc2FtZVxuICAgIHRoaXMucHJvY2Vzcy53cml0ZShkYXRhKVxuICB9XG5cbn07XG5cbmNsYXNzIE5vblB0eVByb2Nlc3MgaW1wbGVtZW50cyBJUHJvY2VzcyB7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcHJvY2VzczogY2hpbGQuQ2hpbGRQcm9jZXNzKSB7fVxuXG4gIHB1YmxpYyBvbkVycm9yKGNhbGxiYWNrOiAoZXJyb3I6IEVycm9yKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5wcm9jZXNzLm9uY2UoJ2Vycm9yJywgY2FsbGJhY2spO1xuICB9XG5cbiAgcHVibGljIG9uU3Rkb3V0KGNhbGxiYWNrOiAoY2h1bms6IEJ1ZmZlcikgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuYXNzZXJ0RGVmaW5lZCgnc3Rkb3V0JywgdGhpcy5wcm9jZXNzLnN0ZG91dCk7XG4gICAgdGhpcy5wcm9jZXNzLnN0ZG91dC5vbignZGF0YScsIGNhbGxiYWNrKTtcbiAgfVxuXG4gIHB1YmxpYyBvblN0ZGVycihjYWxsYmFjazogKGNodW5rOiBCdWZmZXIpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLmFzc2VydERlZmluZWQoJ3N0ZGVycicsIHRoaXMucHJvY2Vzcy5zdGRlcnIpO1xuICAgIHRoaXMucHJvY2Vzcy5zdGRlcnIub24oJ2RhdGEnLCBjYWxsYmFjayk7XG4gIH1cblxuICBwdWJsaWMgb25FeGl0KGNhbGxiYWNrOiAoZXhpdENvZGU6IG51bWJlcikgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMucHJvY2Vzcy5vbignY2xvc2UnLCBjYWxsYmFjayk7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVTdGRpbihjb250ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmFzc2VydERlZmluZWQoJ3N0ZGluJywgdGhpcy5wcm9jZXNzLnN0ZGluKTtcbiAgICB0aGlzLnByb2Nlc3Muc3RkaW4ud3JpdGUoY29udGVudCk7XG4gIH1cblxuICBwdWJsaWMgZW5kU3RkaW4oZGVsYXk/OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcm9jZXNzLnN0ZGluID09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gc3RkaW4gZGVmaW5lZCBmb3IgcHJvY2VzcycpO1xuICAgIH1cbiAgICBpZiAoZGVsYXkpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5wcm9jZXNzLnN0ZGluIS5lbmQoKSwgZGVsYXkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnByb2Nlc3Muc3RkaW4hLmVuZCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3NlcnREZWZpbmVkKG5hbWU6ICdzdGRpbicgfCAnc3Rkb3V0JyB8ICdzdGRlcnInLCBzdHJlYW0/OiBSZWFkYWJsZSB8IFdyaXRhYmxlIHwgdW5kZWZpbmVkIHwgbnVsbCk6IGFzc2VydHMgc3RyZWFtIHtcbiAgICBpZiAoc3RyZWFtID09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gJHtuYW1lfSBkZWZpbmVkIGZvciBjaGlsZCBwcm9jZXNzYCk7XG4gICAgfVxuICB9XG5cbn07Il19
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInByb2Nlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdUNBQXVDO0FBRXZDLGdDQUFnQztBQXlDL0IsQ0FBQztBQUVGLE1BQWEsT0FBTztJQUVsQjs7T0FFRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBZSxFQUFFLElBQWMsRUFBRSxVQUE0RCxFQUFFO1FBRXBILE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRTtZQUN2QyxJQUFJLEVBQUUsYUFBYTtZQUNuQixHQUFHLE9BQU87U0FDWCxDQUFDLENBQUE7UUFDRixPQUFPLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRWpDLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBZSxFQUFFLElBQWMsRUFBRSxVQUE4QixFQUFFO1FBRW5GLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRTtZQUN6QyxLQUFLLEVBQUUsSUFBSTtZQUNYLEtBQUssRUFBRSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDO1lBQ2pDLEdBQUcsT0FBTztTQUNYLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFcEMsQ0FBQztDQUVGO0FBN0JELDBCQTZCQztBQUVELE1BQU0sVUFBVTtJQUVkLFlBQW9DLE9BQWlCO1FBQWpCLFlBQU8sR0FBUCxPQUFPLENBQVU7SUFBRyxDQUFDO0lBRWxELFFBQVEsQ0FBQyxDQUFVO1FBQ3hCLHNEQUFzRDtJQUN4RCxDQUFDO0lBRU0sT0FBTyxDQUFDLENBQXlCO1FBQ3RDLGtFQUFrRTtJQUNwRSxDQUFDO0lBRU0sUUFBUSxDQUFDLFFBQWlDO1FBQy9DLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVNLFFBQVEsQ0FBQyxTQUFrQztRQUNoRCxrREFBa0Q7UUFDbEQsTUFBTSxJQUFJLEtBQUssQ0FBQywrRkFBK0YsQ0FBQyxDQUFDO0lBQ25ILENBQUM7SUFFTSxNQUFNLENBQUMsUUFBb0M7UUFDaEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBR00sVUFBVSxDQUFDLElBQVk7UUFDNUIsb0NBQW9DO1FBQ3BDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzFCLENBQUM7Q0FFRjtBQUFBLENBQUM7QUFFRixNQUFNLGFBQWE7SUFFakIsWUFBb0MsT0FBMkI7UUFBM0IsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7SUFBRyxDQUFDO0lBRTVELE9BQU8sQ0FBQyxRQUFnQztRQUM3QyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVNLFFBQVEsQ0FBQyxRQUFpQztRQUMvQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVNLFFBQVEsQ0FBQyxRQUFpQztRQUMvQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVNLE1BQU0sQ0FBQyxRQUFvQztRQUNoRCxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVNLFVBQVUsQ0FBQyxPQUFlO1FBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxRQUFRLENBQUMsS0FBYztRQUM1QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQy9CLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBQ0QsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQU0sQ0FBQyxHQUFHLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNyRCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzVCLENBQUM7SUFDSCxDQUFDO0lBRU0sYUFBYSxDQUFDLElBQW1DLEVBQUUsTUFBK0M7UUFDdkcsSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFLENBQUM7WUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksNEJBQTRCLENBQUMsQ0FBQztRQUMxRCxDQUFDO0lBQ0gsQ0FBQztDQUVGO0FBQUEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNoaWxkIGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0IHsgUmVhZGFibGUsIFdyaXRhYmxlIH0gZnJvbSAnc3RyZWFtJztcbmltcG9ydCAqIGFzIHB0eSBmcm9tICdub2RlLXB0eSc7XG5cbi8qKlxuICogSVByb2Nlc3MgcHJvdmlkZXMgYW4gaW50ZXJmYWNlIHRvIHdvcmsgd2l0aCBhIHN1YnByb2Nlc3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVByb2Nlc3Mge1xuXG4gIC8qKlxuICAgKiBSZWdpc3RlciBhIGNhbGxiYWNrIHRvIGJlIGludm9rZWQgd2hlbiBhIGNodW5rIGlzIHdyaXR0ZW4gdG8gc3Rkb3V0LlxuICAgKi9cbiAgb25TdGRvdXQoY2FsbGJhY2s6IChjaHVuazogQnVmZmVyKSA9PiB2b2lkKTogdm9pZDtcblxuICAvKipcbiAgICogUmVnaXN0ZXIgYSBjYWxsYmFjayB0byBiZSBpbnZva2VkIHdoZW4gYSBjaHVuayBpcyB3cml0dGVuIHRvIHN0ZGVyci5cbiAgICovXG4gIG9uU3RkZXJyKGNhbGxiYWNrOiAoY2h1bms6IEJ1ZmZlcikgPT4gdm9pZCk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVyIGEgY2FsbGJhY2sgdG8gYmUgaW52b2tlZCB3aGVuIHRoZSBwcm9jZXNzIGV4aXN0cy5cbiAgICovXG4gIG9uRXhpdChjYWxsYmFjazogKGV4aXRDb2RlOiBudW1iZXIpID0+IHZvaWQpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBSZWdpc3RlciBhIGNhbGxiYWNrIHRvIGJlIGludm9rZWQgaWYgdGhlIHByb2Nlc3MgZmFpbGVkIHRvIHN0YXJ0LlxuICAgKi9cbiAgb25FcnJvcihjYWxsYmFjazogKGVycm9yOiBFcnJvcikgPT4gdm9pZCk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFdyaXRlIHRoZSBwcm9jZXNzIHN0ZGluIHN0cmVhbS5cbiAgICovXG4gIHdyaXRlU3RkaW4oZGF0YTogc3RyaW5nKTogdm9pZDtcblxuICAvKipcbiAgICogU2luZ2FsIHRoYXQgbm8gbW9yZSBkYXRhIHdpbGwgYmUgd3JpdHRlbiB0byBzdGRpbi4gSW4gbm9uIHR0eSBwcm9jZXNzIHlvdSBtdXN0XG4gICAqIGNhbGwgdGhpcyBtZXRob2QgdG8gbWFrZSBzdXJlIHRoZSBwcm9jZXNzIGV4aXRzLlxuICAgKlxuICAgKiBAcGFyYW0gZGVsYXkgLSBvcHRpb25hbCBkZWxheSBpbiBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSBzaWduYWwgaXMgc2VudC5cbiAgICpcbiAgICovXG4gIGVuZFN0ZGluKGRlbGF5PzogbnVtYmVyKTogdm9pZDtcblxufTtcblxuZXhwb3J0IGNsYXNzIFByb2Nlc3Mge1xuXG4gIC8qKlxuICAgKiBTcGF3biBhIHByb2Nlc3Mgd2l0aCBhIFRUWSBhdHRhY2hlZC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgc3Bhd25UVFkoY29tbWFuZDogc3RyaW5nLCBhcmdzOiBzdHJpbmdbXSwgb3B0aW9uczogcHR5LklQdHlGb3JrT3B0aW9ucyB8IHB0eS5JV2luZG93c1B0eUZvcmtPcHRpb25zID0ge30pOiBJUHJvY2VzcyB7XG5cbiAgICBjb25zdCBwcm9jZXNzID0gcHR5LnNwYXduKGNvbW1hbmQsIGFyZ3MsIHtcbiAgICAgIG5hbWU6ICd4dGVybS1jb2xvcicsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pXG4gICAgcmV0dXJuIG5ldyBQdHlQcm9jZXNzKHByb2Nlc3MpO1xuXG4gIH1cblxuICAvKipcbiAgICogU3Bhd24gYSBwcm9jZXNzIHdpdGhvdXQgYSBmb3JjaW5nIGEgVFRZLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzcGF3bihjb21tYW5kOiBzdHJpbmcsIGFyZ3M6IHN0cmluZ1tdLCBvcHRpb25zOiBjaGlsZC5TcGF3bk9wdGlvbnMgPSB7fSk6IElQcm9jZXNzIHtcblxuICAgIGNvbnN0IHByb2Nlc3MgPSBjaGlsZC5zcGF3bihjb21tYW5kLCBhcmdzLCB7XG4gICAgICBzaGVsbDogdHJ1ZSxcbiAgICAgIHN0ZGlvOiBbJ2lnbm9yZScsICdwaXBlJywgJ3BpcGUnXSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG4gICAgcmV0dXJuIG5ldyBOb25QdHlQcm9jZXNzKHByb2Nlc3MpO1xuXG4gIH1cblxufVxuXG5jbGFzcyBQdHlQcm9jZXNzIGltcGxlbWVudHMgSVByb2Nlc3Mge1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHByb2Nlc3M6IHB0eS5JUHR5KSB7fVxuXG4gIHB1YmxpYyBlbmRTdGRpbihfPzogbnVtYmVyKTogdm9pZCB7XG4gICAgLy8gbm90IG5lZWRlZCBiZWNhdXNlIGFsbCBzdHJlYW1zIGFyZSB0aGUgc2FtZSBpbiB0dHkuXG4gIH1cblxuICBwdWJsaWMgb25FcnJvcihfOiAoZXJyb3I6IEVycm9yKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgLy8gbm90IG5lZWRlZCBiZWNhdXNlIHRoZSBwdHkuc3Bhd24gd2lsbCBzaW1wbHkgZmFpbCBpbiB0aGlzIGNhc2UuXG4gIH1cblxuICBwdWJsaWMgb25TdGRvdXQoY2FsbGJhY2s6IChjaHVuazogQnVmZmVyKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5wcm9jZXNzLm9uRGF0YSgoZSkgPT4gY2FsbGJhY2soQnVmZmVyLmZyb20oZSkpKTtcbiAgfVxuXG4gIHB1YmxpYyBvblN0ZGVycihfY2FsbGJhY2s6IChjaHVuazogQnVmZmVyKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9ub2RlLXB0eS9pc3N1ZXMvNzFcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCByZWdpc3RlciBjYWxsYmFjayBmb3IgJ3N0ZGVycicuIEEgdHR5IGRvZXMgbm90IGhhdmUgc2VwYXJhdGUgb3V0cHV0IGFuZCBlcnJvciBjaGFubmVsc2ApO1xuICB9XG5cbiAgcHVibGljIG9uRXhpdChjYWxsYmFjazogKGV4aXRDb2RlOiBudW1iZXIpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLnByb2Nlc3Mub25FeGl0KChlKSA9PiB7IGNhbGxiYWNrKGUuZXhpdENvZGUpIH0pO1xuICB9XG5cblxuICBwdWJsaWMgd3JpdGVTdGRpbihkYXRhOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAvLyBpbiBhIHB0eSBhbGwgc3RyZWFtcyBhcmUgdGhlIHNhbWVcbiAgICB0aGlzLnByb2Nlc3Mud3JpdGUoZGF0YSlcbiAgfVxuXG59O1xuXG5jbGFzcyBOb25QdHlQcm9jZXNzIGltcGxlbWVudHMgSVByb2Nlc3Mge1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHByb2Nlc3M6IGNoaWxkLkNoaWxkUHJvY2Vzcykge31cblxuICBwdWJsaWMgb25FcnJvcihjYWxsYmFjazogKGVycm9yOiBFcnJvcikgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMucHJvY2Vzcy5vbmNlKCdlcnJvcicsIGNhbGxiYWNrKTtcbiAgfVxuXG4gIHB1YmxpYyBvblN0ZG91dChjYWxsYmFjazogKGNodW5rOiBCdWZmZXIpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLmFzc2VydERlZmluZWQoJ3N0ZG91dCcsIHRoaXMucHJvY2Vzcy5zdGRvdXQpO1xuICAgIHRoaXMucHJvY2Vzcy5zdGRvdXQub24oJ2RhdGEnLCBjYWxsYmFjayk7XG4gIH1cblxuICBwdWJsaWMgb25TdGRlcnIoY2FsbGJhY2s6IChjaHVuazogQnVmZmVyKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5hc3NlcnREZWZpbmVkKCdzdGRlcnInLCB0aGlzLnByb2Nlc3Muc3RkZXJyKTtcbiAgICB0aGlzLnByb2Nlc3Muc3RkZXJyLm9uKCdkYXRhJywgY2FsbGJhY2spO1xuICB9XG5cbiAgcHVibGljIG9uRXhpdChjYWxsYmFjazogKGV4aXRDb2RlOiBudW1iZXIpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLnByb2Nlc3Mub24oJ2Nsb3NlJywgY2FsbGJhY2spO1xuICB9XG5cbiAgcHVibGljIHdyaXRlU3RkaW4oY29udGVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5hc3NlcnREZWZpbmVkKCdzdGRpbicsIHRoaXMucHJvY2Vzcy5zdGRpbik7XG4gICAgdGhpcy5wcm9jZXNzLnN0ZGluLndyaXRlKGNvbnRlbnQpO1xuICB9XG5cbiAgcHVibGljIGVuZFN0ZGluKGRlbGF5PzogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucHJvY2Vzcy5zdGRpbiA9PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHN0ZGluIGRlZmluZWQgZm9yIHByb2Nlc3MnKTtcbiAgICB9XG4gICAgaWYgKGRlbGF5KSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucHJvY2Vzcy5zdGRpbiEuZW5kKCksIGRlbGF5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcm9jZXNzLnN0ZGluIS5lbmQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXNzZXJ0RGVmaW5lZChuYW1lOiAnc3RkaW4nIHwgJ3N0ZG91dCcgfCAnc3RkZXJyJywgc3RyZWFtPzogUmVhZGFibGUgfCBXcml0YWJsZSB8IHVuZGVmaW5lZCB8IG51bGwpOiBhc3NlcnRzIHN0cmVhbSB7XG4gICAgaWYgKHN0cmVhbSA9PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vICR7bmFtZX0gZGVmaW5lZCBmb3IgY2hpbGQgcHJvY2Vzc2ApO1xuICAgIH1cbiAgfVxuXG59OyJdfQ==
package/lib/process.ts CHANGED
@@ -90,9 +90,9 @@ class PtyProcess implements IProcess {
90
90
  this.process.onData((e) => callback(Buffer.from(e)));
91
91
  }
92
92
 
93
- public onStderr(callback: (chunk: Buffer) => void): void {
94
- // in a pty all streams are the same
95
- return this.onStdout(callback);
93
+ public onStderr(_callback: (chunk: Buffer) => void): void {
94
+ // https://github.com/microsoft/node-pty/issues/71
95
+ throw new Error(`Cannot register callback for 'stderr'. A tty does not have separate output and error channels`);
96
96
  }
97
97
 
98
98
  public onExit(callback: (exitCode: number) => void): void {
package/lib/shell.js CHANGED
@@ -53,25 +53,36 @@ async function shell(command, options = {}) {
53
53
  if (interaction) {
54
54
  if (interaction.prompt.test(lastLine.get())) {
55
55
  // subprocess expects a user input now.
56
- // we have to write the input AFTER the child has started
57
- // reading, so we do this with a small delay.
56
+ // first, shift the interactions to ensure the same interaction is not reused
57
+ remainingInteractions.shift();
58
+ // then, reset the last line to prevent repeated matches caused by tty echoing
59
+ lastLine.reset();
60
+ // now write the input with a slight delay to ensure
61
+ // the child process has already started reading.
58
62
  setTimeout(() => {
59
63
  var _a;
60
64
  child.writeStdin(interaction.input + ((_a = interaction.end) !== null && _a !== void 0 ? _a : os.EOL));
61
- remainingInteractions.shift();
62
65
  }, 500);
63
66
  }
64
67
  }
65
68
  });
66
- child.onStderr(chunk => {
67
- var _a;
68
- if (show === 'always') {
69
- writeToOutputs(chunk.toString('utf-8'));
70
- }
71
- if ((_a = options.captureStderr) !== null && _a !== void 0 ? _a : true) {
72
- stderr.push(chunk);
73
- }
74
- });
69
+ if (tty && options.captureStderr === false) {
70
+ // in a tty stderr goes to the same fd as stdout
71
+ throw new Error(`Cannot disable 'captureStderr' in tty`);
72
+ }
73
+ if (!tty) {
74
+ // in a tty stderr goes to the same fd as stdout, so onStdout
75
+ // is sufficient.
76
+ child.onStderr(chunk => {
77
+ var _a;
78
+ if (show === 'always') {
79
+ writeToOutputs(chunk.toString('utf-8'));
80
+ }
81
+ if ((_a = options.captureStderr) !== null && _a !== void 0 ? _a : true) {
82
+ stderr.push(chunk);
83
+ }
84
+ });
85
+ }
75
86
  child.onError(reject);
76
87
  child.onExit(code => {
77
88
  const stderrOutput = Buffer.concat(stderr).toString('utf-8');
@@ -198,5 +209,8 @@ class LastLine {
198
209
  get() {
199
210
  return this.lastLine;
200
211
  }
212
+ reset() {
213
+ this.lastLine = '';
214
+ }
201
215
  }
202
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzaGVsbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFhQSxzQkFtR0M7QUFnSUQsd0JBd0JDO0FBRUQsd0NBUUM7QUFqUkQseUJBQXlCO0FBQ3pCLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFFN0IsdUNBQW9DO0FBR3BDOzs7O0dBSUc7QUFDSSxLQUFLLFVBQVUsS0FBSyxDQUFDLE9BQWlCLEVBQUUsVUFBd0IsRUFBRTs7SUFDdkUsSUFBSSxPQUFPLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QyxNQUFNLGNBQWMsR0FBRyxDQUFDLENBQVMsRUFBRSxFQUFFO1FBQ25DLEtBQUssTUFBTSxZQUFZLElBQUksT0FBTyxFQUFFLENBQUM7WUFDbkMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QixDQUFDO0lBQ0gsQ0FBQyxDQUFDO0lBRUYsNEJBQTRCO0lBQzVCLGNBQWMsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVDLE1BQU0sSUFBSSxHQUFHLE1BQUEsT0FBTyxDQUFDLElBQUksbUNBQUksUUFBUSxDQUFDO0lBRXRDLE1BQU0sR0FBRyxHQUFHLE1BQUEsT0FBTyxDQUFDLEdBQUcsbUNBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xHLE1BQU0sR0FBRyxHQUFHLE9B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SSxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsQ0FBQzthQUFNLENBQUM7WUFDTixtRUFBbUU7WUFDbkUsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxQyxDQUFDO0lBQ0gsQ0FBQztJQUVNLEdBQUc7UUFDUixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2hpbGRfcHJvY2VzcyBmcm9tICdjaGlsZF9wcm9jZXNzJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIG9zIGZyb20gJ29zJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBUZXN0Q29udGV4dCB9IGZyb20gJy4vaW50ZWctdGVzdCc7XG5pbXBvcnQgeyBQcm9jZXNzIH0gZnJvbSAnLi9wcm9jZXNzJztcbmltcG9ydCB7IFRlbXBvcmFyeURpcmVjdG9yeUNvbnRleHQgfSBmcm9tICcuL3dpdGgtdGVtcG9yYXJ5LWRpcmVjdG9yeSc7XG5cbi8qKlxuICogQSBzaGVsbCBjb21tYW5kIHRoYXQgZG9lcyB3aGF0IHlvdSB3YW50XG4gKlxuICogSXMgcGxhdGZvcm0tYXdhcmUsIGhhbmRsZXMgZXJyb3JzIG5pY2VseS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNoZWxsKGNvbW1hbmQ6IHN0cmluZ1tdLCBvcHRpb25zOiBTaGVsbE9wdGlvbnMgPSB7fSk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGlmIChvcHRpb25zLm1vZEVudiAmJiBvcHRpb25zLmVudikge1xuICAgIHRocm93IG5ldyBFcnJvcignVXNlIGVpdGhlciBlbnYgb3IgbW9kRW52IGJ1dCBub3QgYm90aCcpO1xuICB9XG5cbiAgY29uc3Qgb3V0cHV0cyA9IG5ldyBTZXQob3B0aW9ucy5vdXRwdXRzKTtcbiAgY29uc3Qgd3JpdGVUb091dHB1dHMgPSAoeDogc3RyaW5nKSA9PiB7XG4gICAgZm9yIChjb25zdCBvdXRwdXRTdHJlYW0gb2Ygb3V0cHV0cykge1xuICAgICAgb3V0cHV0U3RyZWFtLndyaXRlKHgpO1xuICAgIH1cbiAgfTtcblxuICAvLyBBbHdheXMgb3V0cHV0IHRoZSBjb21tYW5kXG4gIHdyaXRlVG9PdXRwdXRzKGDwn5K7ICR7Y29tbWFuZC5qb2luKCcgJyl9XFxuYCk7XG4gIGNvbnN0IHNob3cgPSBvcHRpb25zLnNob3cgPz8gJ2Fsd2F5cyc7XG5cbiAgY29uc3QgZW52ID0gb3B0aW9ucy5lbnYgPz8gKG9wdGlvbnMubW9kRW52ID8geyAuLi5wcm9jZXNzLmVudiwgLi4ub3B0aW9ucy5tb2RFbnYgfSA6IHByb2Nlc3MuZW52KTtcbiAgY29uc3QgdHR5ID0gb3B0aW9ucy5pbnRlcmFjdCAmJiBvcHRpb25zLmludGVyYWN0Lmxlbmd0aCA+IDA7XG5cbiAgLy8gQ29lcmNlIHRvIGBhbnlgIGJlY2F1c2UgYFNoZWxsT3B0aW9uc2AgY29udGFpbnMgY3VzdG9tIHByb3BlcnRpZXNcbiAgLy8gdGhhdCBkb24ndCBleGlzdCBpbiB0aGUgdW5kZXJseWluZyBpbnRlcmZhY2VzLiBXZSBjb3VsZCBlaXRoZXIgcmVidWlsZCBlYWNoIG9wdGlvbnMgbWFwLFxuICAvLyBvciBqdXN0IHBhc3MgdGhyb3VnaCBhbmQgbGV0IHRoZSB1bmRlcmx5aW5nIGltcGxlbWVuYXRpb24gaWdub3JlIHdoYXQgaXQgZG9lc24ndCBrbm93IGFib3V0LlxuICAvLyBXZSBjaG9vc2UgdGhlIGxhenkgb25lLlxuICBjb25zdCBzcGF3bk9wdGlvbnMgPSB7IC4uLm9wdGlvbnMsIGVudiB9IGFzIGFueTtcblxuICBjb25zdCBjaGlsZCA9IHR0eVxuICAgID8gUHJvY2Vzcy5zcGF3blRUWShjb21tYW5kWzBdLCBjb21tYW5kLnNsaWNlKDEpLCBzcGF3bk9wdGlvbnMpXG4gICAgOiBQcm9jZXNzLnNwYXduKGNvbW1hbmRbMF0sIGNvbW1hbmQuc2xpY2UoMSksIHNwYXduT3B0aW9ucylcblxuICAvLyBjb3B5IGJlY2F1c2Ugd2Ugd2lsbCBiZSBzaGlmdGluZyBpdFxuICBjb25zdCByZW1haW5pbmdJbnRlcmFjdGlvbnMgPSBbLi4uKG9wdGlvbnMuaW50ZXJhY3QgPz8gW10pXTtcblxuICByZXR1cm4gbmV3IFByb21pc2U8c3RyaW5nPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3Qgc3Rkb3V0ID0gbmV3IEFycmF5PEJ1ZmZlcj4oKTtcbiAgICBjb25zdCBzdGRlcnIgPSBuZXcgQXJyYXk8QnVmZmVyPigpO1xuXG4gICAgY29uc3QgbGFzdExpbmUgPSBuZXcgTGFzdExpbmUoKTtcblxuICAgIGNoaWxkLm9uU3Rkb3V0KGNodW5rID0+IHtcbiAgICAgIGlmIChzaG93ID09PSAnYWx3YXlzJykge1xuICAgICAgICB3cml0ZVRvT3V0cHV0cyhjaHVuay50b1N0cmluZygndXRmLTgnKSk7XG4gICAgICB9XG4gICAgICBzdGRvdXQucHVzaChjaHVuayk7XG4gICAgICBsYXN0TGluZS5hcHBlbmQoY2h1bmsudG9TdHJpbmcoJ3V0Zi04JykpO1xuXG4gICAgICBjb25zdCBpbnRlcmFjdGlvbiA9IHJlbWFpbmluZ0ludGVyYWN0aW9uc1swXTtcbiAgICAgIGlmIChpbnRlcmFjdGlvbikge1xuXG4gICAgICAgIGlmIChpbnRlcmFjdGlvbi5wcm9tcHQudGVzdChsYXN0TGluZS5nZXQoKSkpIHtcbiAgICAgICAgICAvLyBzdWJwcm9jZXNzIGV4cGVjdHMgYSB1c2VyIGlucHV0IG5vdy5cbiAgICAgICAgICAvLyB3ZSBoYXZlIHRvIHdyaXRlIHRoZSBpbnB1dCBBRlRFUiB0aGUgY2hpbGQgaGFzIHN0YXJ0ZWRcbiAgICAgICAgICAvLyByZWFkaW5nLCBzbyB3ZSBkbyB0aGlzIHdpdGggYSBzbWFsbCBkZWxheS5cbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGNoaWxkLndyaXRlU3RkaW4oaW50ZXJhY3Rpb24uaW5wdXQgKyAoaW50ZXJhY3Rpb24uZW5kID8/IG9zLkVPTCkpO1xuICAgICAgICAgICAgcmVtYWluaW5nSW50ZXJhY3Rpb25zLnNoaWZ0KCk7XG4gICAgICAgICAgfSwgNTAwKTtcbiAgICAgICAgfVxuXG4gICAgICB9XG5cbiAgICB9KTtcblxuICAgIGNoaWxkLm9uU3RkZXJyKGNodW5rID0+IHtcbiAgICAgIGlmIChzaG93ID09PSAnYWx3YXlzJykge1xuICAgICAgICB3cml0ZVRvT3V0cHV0cyhjaHVuay50b1N0cmluZygndXRmLTgnKSk7XG4gICAgICB9XG4gICAgICBpZiAob3B0aW9ucy5jYXB0dXJlU3RkZXJyID8/IHRydWUpIHtcbiAgICAgICAgc3RkZXJyLnB1c2goY2h1bmspO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY2hpbGQub25FcnJvcihyZWplY3QpO1xuXG4gICAgY2hpbGQub25FeGl0KGNvZGUgPT4ge1xuICAgICAgY29uc3Qgc3RkZXJyT3V0cHV0ID0gQnVmZmVyLmNvbmNhdChzdGRlcnIpLnRvU3RyaW5nKCd1dGYtOCcpO1xuICAgICAgY29uc3Qgc3Rkb3V0T3V0cHV0ID0gQnVmZmVyLmNvbmNhdChzdGRvdXQpLnRvU3RyaW5nKCd1dGYtOCcpO1xuICAgICAgY29uc3Qgb3V0ID0gKG9wdGlvbnMub25seVN0ZGVyciA/IHN0ZGVyck91dHB1dCA6IHN0ZG91dE91dHB1dCArIHN0ZGVyck91dHB1dCkudHJpbSgpO1xuXG4gICAgICBjb25zdCBsb2dBbmRyZWplY3QgPSAoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICAgIGlmIChzaG93ID09PSAnZXJyb3InKSB7XG4gICAgICAgICAgd3JpdGVUb091dHB1dHMoYCR7b3V0fVxcbmApO1xuICAgICAgICB9XG4gICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICB9XG5cbiAgICAgIGlmIChyZW1haW5pbmdJbnRlcmFjdGlvbnMubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgIC8vIHJlZ2FyZGxlc3Mgb2YgdGhlIGV4aXQgY29kZSwgaWYgd2UgZGlkbid0IGNvbnN1bWUgYWxsIGV4cGVjdGVkIGludGVyYWN0aW9ucyB3ZSBwcm9iYWJseVxuICAgICAgICAvLyBkaWQgc29tZXRoaWluZyB3cm9uZy5cbiAgICAgICAgbG9nQW5kcmVqZWN0KG5ldyBFcnJvcihgRXhwZWN0ZWQgbW9yZSB1c2VyIGludGVyYWN0aW9ucyBidXQgc3VicHJvY2VzcyBleGl0ZWQgd2l0aCAke2NvZGV9YCkpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChjb2RlID09PSAwIHx8IG9wdGlvbnMuYWxsb3dFcnJFeGl0KSB7XG4gICAgICAgIHJlc29sdmUob3V0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxvZ0FuZHJlamVjdChuZXcgRXJyb3IoYCcke2NvbW1hbmQuam9pbignICcpfScgZXhpdGVkIHdpdGggZXJyb3IgY29kZSAke2NvZGV9LmApKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59XG5cbi8qKlxuICogTW9kZWxzIGEgc2luZ2xlIHVzZXIgaW50ZXJhY3Rpb24gd2l0aCB0aGUgc2hlbGwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXNlckludGVyYWN0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSBwcm9tcHQgdG8gZXhwZWN0LiBSZWdleCBtYXRjaGVkIGFnYWluc3QgdGhlIGxhc3QgbGluZSBpblxuICAgKiB0aGUgb3V0cHV0IGJlZm9yZSB0aGUgcHJvbXB0IGlzIGRpc3BsYXllZC5cbiAgICpcbiAgICogTW9zdCBjb21tb25seSB0aGlzIHdvdWxkIGJlIGEgc2ltcGxlIHN0cmluZyB0byBtYXRjaCBmb3IgaW5jbHVzaW9uLlxuICAgKlxuICAgKiBFeGFtcGxlczpcbiAgICpcbiAgICogLSBQcm9jZXNzIE91dHB1dDogXCJIZXkgdGhlcmUhIEFyZSB5b3Ugc3VyZT9cIlxuICAgKiAgIFByb21wdDogL0FyZSB5b3Ugc3VyZT8vXG4gICAqICAgTWF0Y2ggKFllcy9Obyk6IFllc1xuICAgKiAgIFJlYXNvbjogXCJIZXkgdGhlcmUhIEFyZSB5b3Ugc3VyZT9cIiB+IC9BcmUgeW91IHN1cmU/L1xuICAgKlxuICAgKiAtIFByb2Nlc3MgT3V0cHV0OiBcIkhleSB0aGVyZSFcXG5BcmUgeW91IHN1cmU/XCJcbiAgICogICBQcm9tcHQ6IC9BcmUgeW91IHN1cmU/L1xuICAgKiAgIE1hdGNoIChZZXMvTm8pOiBZZXNcbiAgICogICBSZWFzb246IFwiQXJlIHlvdSBzdXJlP1wiIH4gL0FyZSB5b3Ugc3VyZT8vXG4gICAqXG4gICAqIC0gUHJvY2VzcyBPdXRwdXQ6IFwiQXJlIHlvdSBzdXJlP1xcbihyZW1lbWJlciB0aGlzIGlzIGRlc3RydWN0aXZlKVwiXG4gICAqICAgUHJvbXB0OiAvQXJlIHlvdSBzdXJlPy9cbiAgICogICBNYXRjaCAoWWVzL05vKTogTm9cbiAgICogICBSZWFzb246IFwiKHJlbWVtYmVyIHRoaXMgaXMgZGVzdHJ1Y3RpdmUpXCIg4omEIC9BcmUgeW91IHN1cmU/L1xuICAgKlxuICAgKiAtIFByb2Nlc3MgT3V0cHV0OiBcIkFyZSB5b3Ugc3VyZT9cXG4ocmVtZW1iZXIgdGhpcyBpcyBkZXN0cnVjdGl2ZSlcIlxuICAgKiAgIFByb21wdDogL3JlbWVtYmVyIHRoaXMgaXMgZGVzdHJ1Y3RpdmUvXG4gICAqICAgTWF0Y2ggKFllcy9Obyk6IFllc1xuICAgKiAgIFJlYXNvbjogXCIocmVtZW1iZXIgdGhpcyBpcyBkZXN0cnVjdGl2ZSlcIiB+IC9yZW1lbWJlciB0aGlzIGlzIGRlc3RydWN0aXZlL1xuICAgKlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvbXB0OiBSZWdFeHA7XG4gIC8qKlxuICAgKiBUaGUgaW5wdXQgdG8gcHJvdmlkZS5cbiAgICovXG4gIHJlYWRvbmx5IGlucHV0OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzdHJpbmcgdG8gc2lnbmFsIHRoZSBlbmQgb2YgaW5wdXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IG9zLkVPTFxuICAgKi9cbiAgcmVhZG9ubHkgZW5kPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoZWxsT3B0aW9ucyBleHRlbmRzIGNoaWxkX3Byb2Nlc3MuU3Bhd25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFByb3BlcnRpZXMgdG8gYWRkIHRvICdlbnYnXG4gICAqL1xuICByZWFkb25seSBtb2RFbnY/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+O1xuXG4gIC8qKlxuICAgKiBEb24ndCBmYWlsIHdoZW4gZXhpdGluZyB3aXRoIGFuIGVycm9yXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBhbGxvd0VyckV4aXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGNhcHR1cmUgc3RkZXJyXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGNhcHR1cmVTdGRlcnI/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBQYXNzIG91dHB1dCBoZXJlXG4gICAqL1xuICByZWFkb25seSBvdXRwdXRzPzogTm9kZUpTLldyaXRhYmxlU3RyZWFtW107XG5cbiAgLyoqXG4gICAqIE9ubHkgcmV0dXJuIHN0ZGVyci4gRm9yIGV4YW1wbGUsIHRoaXMgaXMgdXNlZCB0byB2YWxpZGF0ZVxuICAgKiB0aGF0IHdoZW4gQ0k9dHJ1ZSwgYWxsIGxvZ3MgYXJlIHNlbnQgdG8gc3Rkb3V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgb25seVN0ZGVycj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIERvbid0IGxvZyB0byBzdGRvdXRcbiAgICpcbiAgICogQGRlZmF1bHQgYWx3YXlzXG4gICAqL1xuICByZWFkb25seSBzaG93PzogJ2Fsd2F5cycgfCAnbmV2ZXInIHwgJ2Vycm9yJztcblxuICAvKipcbiAgICogUHJvdmlkZSB1c2VyIGludGVyYWN0aW9uIHRvIHJlc3BvbmQgdG8gc2hlbGwgcHJvbXB0cy5cbiAgICpcbiAgICogT3JkZXIgYW5kIGNvdW50IHNob3VsZCBjb3JyZXNwb25kIHRvIHRoZSBleHBlY3RlZCBwcm9tcHRzIGlzc3VlZCBieSB0aGUgc3VicHJvY2Vzcy5cbiAgICovXG4gIHJlYWRvbmx5IGludGVyYWN0PzogVXNlckludGVyYWN0aW9uW107XG5cbn1cblxuZXhwb3J0IGNsYXNzIFNoZWxsSGVscGVyIHtcbiAgcHVibGljIHN0YXRpYyBmcm9tQ29udGV4dChjb250ZXh0OiBUZXN0Q29udGV4dCAmIFRlbXBvcmFyeURpcmVjdG9yeUNvbnRleHQpIHtcbiAgICByZXR1cm4gbmV3IFNoZWxsSGVscGVyKGNvbnRleHQuaW50ZWdUZXN0RGlyLCBjb250ZXh0Lm91dHB1dCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jd2Q6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9vdXRwdXQ6IE5vZGVKUy5Xcml0YWJsZVN0cmVhbSkgeyB9XG5cbiAgcHVibGljIGFzeW5jIHNoZWxsKGNvbW1hbmQ6IHN0cmluZ1tdLCBvcHRpb25zOiBPbWl0PFNoZWxsT3B0aW9ucywgJ2N3ZCcgfCAnb3V0cHV0cyc+ID0ge30pOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBzaGVsbChjb21tYW5kLCB7XG4gICAgICBvdXRwdXRzOiBbdGhpcy5fb3V0cHV0XSxcbiAgICAgIGN3ZDogdGhpcy5fY3dkLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIG1vZEVudjoge1xuICAgICAgICAvLyBnaXZlIGV2ZXJ5IHNoZWxsIGl0cyBvd24gZG9ja2VyIGNvbmZpZyBkaXJlY3RvcnlcbiAgICAgICAgLy8gc28gdGhhdCBwYXJhbGxlbCBydW5zIGRvbid0IGludGVyZmVyZSB3aXRoIGVhY2ggb3RoZXIuXG4gICAgICAgIERPQ0tFUl9DT05GSUc6IHBhdGguam9pbih0aGlzLl9jd2QsICcuZG9ja2VyJyksXG4gICAgICAgIC4uLm9wdGlvbnMubW9kRW52LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIHJtIC1yZiByZWltcGxlbWVudGF0aW9uLCBkb24ndCB3YW50IHRvIGRlcGVuZCBvbiBhbiBOUE0gcGFja2FnZSBmb3IgdGhpc1xuICpcbiAqIFJldHVybnMgYHRydWVgIGlmIGV2ZXJ5dGhpbmcgZ290IGRlbGV0ZWQsIG9yIGBmYWxzZWAgaWYgc29tZSBmaWxlcyBjb3VsZFxuICogbm90IGJlIGRlbGV0ZWQgZHVlIHRvIHBlcm1pc3Npb25zIGlzc3Vlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJpbXJhZihmc1BhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICB0cnkge1xuICAgIGxldCBzdWNjZXNzID0gdHJ1ZTtcbiAgICBjb25zdCBpc0RpciA9IGZzLmxzdGF0U3luYyhmc1BhdGgpLmlzRGlyZWN0b3J5KCk7XG5cbiAgICBpZiAoaXNEaXIpIHtcbiAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBmcy5yZWFkZGlyU3luYyhmc1BhdGgpKSB7XG4gICAgICAgIHN1Y2Nlc3MgJiY9IHJpbXJhZihwYXRoLmpvaW4oZnNQYXRoLCBmaWxlKSk7XG4gICAgICB9XG4gICAgICBmcy5ybWRpclN5bmMoZnNQYXRoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZnMudW5saW5rU3luYyhmc1BhdGgpO1xuICAgIH1cbiAgICByZXR1cm4gc3VjY2VzcztcbiAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgLy8gQ2FuIGhhcHBlbiBpZiBzb21lIGZpbGVzIGdvdCBnZW5lcmF0ZWQgaW5zaWRlIGEgRG9ja2VyIGNvbnRhaW5lciBhbmQgYXJlIG5vdyBpbmFkdmVydGVudGx5IG93bmVkIGJ5IGByb290YC5cbiAgICAvLyBXZSBjYW4ndCBldmVyIGNsZWFuIHRob3NlIHVwIGFueW1vcmUsIGJ1dCBzaW5jZSBpdCBvbmx5IGhhcHBlbnMgaW5zaWRlIEdpdEh1YiBBY3Rpb25zIGNvbnRhaW5lcnMgd2UgYWxzbyBkb24ndCBjYXJlIHRvbyBtdWNoLlxuICAgIGlmIChlLmNvZGUgPT09ICdFQUNDRVMnIHx8IGUuY29kZSA9PT0gJ0VOT1RFTVBUWScpIHsgcmV0dXJuIGZhbHNlOyB9XG5cbiAgICAvLyBBbHJlYWR5IGdvbmVcbiAgICBpZiAoZS5jb2RlID09PSAnRU5PRU5UJykgeyByZXR1cm4gdHJ1ZTsgfVxuXG4gICAgdGhyb3cgZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkVG9TaGVsbFBhdGgoeDogc3RyaW5nKSB7XG4gIGNvbnN0IHBhcnRzID0gcHJvY2Vzcy5lbnYuUEFUSD8uc3BsaXQoJzonKSA/PyBbXTtcblxuICBpZiAoIXBhcnRzLmluY2x1ZGVzKHgpKSB7XG4gICAgcGFydHMudW5zaGlmdCh4KTtcbiAgfVxuXG4gIHByb2Nlc3MuZW52LlBBVEggPSBwYXJ0cy5qb2luKCc6Jyk7XG59XG5cbi8qKlxuICogQWNjdW11bGF0ZSB0ZXh0IHNpbmNlIHRoZSBsYXN0IGxpbmUgYnJlYWsgKG9yIGJlZ2lubmluZyBvZiBzdHJpbmcpIGl0IGhhcyBzZWVuIGluIHRoZSBjaHVua3MuXG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogLSBDaHVua3M6IFsnb25lXFxuJywgJ3R3b1xcbicsIHRocmVlJ11cbiAqIC0gTGFzdCBMaW5lOiAndGhyZWUnXG4gKlxuICogLSBDaHVua3M6IFsnb25lJywgJ3R3bycsICdcXG50aHJlZSddXG4gKiAtIExhc3QgTGluZTogJ3RocmVlJ1xuICpcbiAqIC0gQ2h1bmtzOiBbJ29uZScsICd0d28nXVxuICogLSBMYXN0IExpbmU6ICdvbmV0d28nXG4gKlxuICogLSBDaHVua3M6IFsnb25lJywgJ3R3bycsICdcXG50aHJlZScsICdmb3VyJ11cbiAqIC0gTGFzdCBMaW5lOiAndGhyZWVmb3VyJ1xuICovXG5jbGFzcyBMYXN0TGluZSB7XG5cbiAgcHJpdmF0ZSBsYXN0TGluZTogc3RyaW5nID0gJyc7XG5cbiAgcHVibGljIGFwcGVuZChjaHVuazogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgbGluZXMgPSBjaHVuay5zcGxpdChvcy5FT0wpO1xuICAgIGlmIChsaW5lcy5sZW5ndGggPT09IDEpIHtcbiAgICAgIC8vIGNodW5rIGRvZXNuJ3QgY29udGFpbiBhIG5ldyBsaW5lIHNvIGp1c3QgYXBwZW5kXG4gICAgICB0aGlzLmxhc3RMaW5lICs9IGxpbmVzWzBdO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBjaHVuayBjb250YWlucyBtdWx0aXBsZSBsaW5lcyBzbyBqdXN0IG92ZXJyaWRlIHdpdGggdGhlIGxhc3Qgb25lXG4gICAgICB0aGlzLmxhc3RMaW5lID0gbGluZXNbbGluZXMubGVuZ3RoIC0gMV07XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmxhc3RMaW5lO1xuICB9XG59Il19
216
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzaGVsbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFhQSxzQkFrSEM7QUFnSUQsd0JBd0JDO0FBRUQsd0NBUUM7QUFoU0QseUJBQXlCO0FBQ3pCLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFFN0IsdUNBQW9DO0FBR3BDOzs7O0dBSUc7QUFDSSxLQUFLLFVBQVUsS0FBSyxDQUFDLE9BQWlCLEVBQUUsVUFBd0IsRUFBRTs7SUFDdkUsSUFBSSxPQUFPLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QyxNQUFNLGNBQWMsR0FBRyxDQUFDLENBQVMsRUFBRSxFQUFFO1FBQ25DLEtBQUssTUFBTSxZQUFZLElBQUksT0FBTyxFQUFFLENBQUM7WUFDbkMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QixDQUFDO0lBQ0gsQ0FBQyxDQUFDO0lBRUYsNEJBQTRCO0lBQzVCLGNBQWMsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVDLE1BQU0sSUFBSSxHQUFHLE1BQUEsT0FBTyxDQUFDLElBQUksbUNBQUksUUFBUSxDQUFDO0lBRXRDLE1BQU0sR0FBRyxHQUFHLE1BQUEsT0FBTyxDQUFDLEdBQUcsbUNBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xHLE1BQU0sR0FBRyxHQUFHLE9B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QUFDO0FBQ3JDLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILE1BQU0sUUFBUTtJQUFkO1FBRVUsYUFBUSxHQUFXLEVBQUUsQ0FBQztJQW9CaEMsQ0FBQztJQWxCUSxNQUFNLENBQUMsS0FBYTtRQUN6QixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdkIsa0RBQWtEO1lBQ2xELElBQUksQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVCLENBQUM7YUFBTSxDQUFDO1lBQ04sbUVBQW1FO1lBQ25FLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7SUFFTSxHQUFHO1FBQ1IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2hpbGRfcHJvY2VzcyBmcm9tICdjaGlsZF9wcm9jZXNzJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIG9zIGZyb20gJ29zJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBUZXN0Q29udGV4dCB9IGZyb20gJy4vaW50ZWctdGVzdCc7XG5pbXBvcnQgeyBQcm9jZXNzIH0gZnJvbSAnLi9wcm9jZXNzJztcbmltcG9ydCB7IFRlbXBvcmFyeURpcmVjdG9yeUNvbnRleHQgfSBmcm9tICcuL3dpdGgtdGVtcG9yYXJ5LWRpcmVjdG9yeSc7XG5cbi8qKlxuICogQSBzaGVsbCBjb21tYW5kIHRoYXQgZG9lcyB3aGF0IHlvdSB3YW50XG4gKlxuICogSXMgcGxhdGZvcm0tYXdhcmUsIGhhbmRsZXMgZXJyb3JzIG5pY2VseS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNoZWxsKGNvbW1hbmQ6IHN0cmluZ1tdLCBvcHRpb25zOiBTaGVsbE9wdGlvbnMgPSB7fSk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGlmIChvcHRpb25zLm1vZEVudiAmJiBvcHRpb25zLmVudikge1xuICAgIHRocm93IG5ldyBFcnJvcignVXNlIGVpdGhlciBlbnYgb3IgbW9kRW52IGJ1dCBub3QgYm90aCcpO1xuICB9XG5cbiAgY29uc3Qgb3V0cHV0cyA9IG5ldyBTZXQob3B0aW9ucy5vdXRwdXRzKTtcbiAgY29uc3Qgd3JpdGVUb091dHB1dHMgPSAoeDogc3RyaW5nKSA9PiB7XG4gICAgZm9yIChjb25zdCBvdXRwdXRTdHJlYW0gb2Ygb3V0cHV0cykge1xuICAgICAgb3V0cHV0U3RyZWFtLndyaXRlKHgpO1xuICAgIH1cbiAgfTtcblxuICAvLyBBbHdheXMgb3V0cHV0IHRoZSBjb21tYW5kXG4gIHdyaXRlVG9PdXRwdXRzKGDwn5K7ICR7Y29tbWFuZC5qb2luKCcgJyl9XFxuYCk7XG4gIGNvbnN0IHNob3cgPSBvcHRpb25zLnNob3cgPz8gJ2Fsd2F5cyc7XG5cbiAgY29uc3QgZW52ID0gb3B0aW9ucy5lbnYgPz8gKG9wdGlvbnMubW9kRW52ID8geyAuLi5wcm9jZXNzLmVudiwgLi4ub3B0aW9ucy5tb2RFbnYgfSA6IHByb2Nlc3MuZW52KTtcbiAgY29uc3QgdHR5ID0gb3B0aW9ucy5pbnRlcmFjdCAmJiBvcHRpb25zLmludGVyYWN0Lmxlbmd0aCA+IDA7XG5cbiAgLy8gQ29lcmNlIHRvIGBhbnlgIGJlY2F1c2UgYFNoZWxsT3B0aW9uc2AgY29udGFpbnMgY3VzdG9tIHByb3BlcnRpZXNcbiAgLy8gdGhhdCBkb24ndCBleGlzdCBpbiB0aGUgdW5kZXJseWluZyBpbnRlcmZhY2VzLiBXZSBjb3VsZCBlaXRoZXIgcmVidWlsZCBlYWNoIG9wdGlvbnMgbWFwLFxuICAvLyBvciBqdXN0IHBhc3MgdGhyb3VnaCBhbmQgbGV0IHRoZSB1bmRlcmx5aW5nIGltcGxlbWVuYXRpb24gaWdub3JlIHdoYXQgaXQgZG9lc24ndCBrbm93IGFib3V0LlxuICAvLyBXZSBjaG9vc2UgdGhlIGxhenkgb25lLlxuICBjb25zdCBzcGF3bk9wdGlvbnMgPSB7IC4uLm9wdGlvbnMsIGVudiB9IGFzIGFueTtcblxuICBjb25zdCBjaGlsZCA9IHR0eVxuICAgID8gUHJvY2Vzcy5zcGF3blRUWShjb21tYW5kWzBdLCBjb21tYW5kLnNsaWNlKDEpLCBzcGF3bk9wdGlvbnMpXG4gICAgOiBQcm9jZXNzLnNwYXduKGNvbW1hbmRbMF0sIGNvbW1hbmQuc2xpY2UoMSksIHNwYXduT3B0aW9ucylcblxuICAvLyBjb3B5IGJlY2F1c2Ugd2Ugd2lsbCBiZSBzaGlmdGluZyBpdFxuICBjb25zdCByZW1haW5pbmdJbnRlcmFjdGlvbnMgPSBbLi4uKG9wdGlvbnMuaW50ZXJhY3QgPz8gW10pXTtcblxuICByZXR1cm4gbmV3IFByb21pc2U8c3RyaW5nPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3Qgc3Rkb3V0ID0gbmV3IEFycmF5PEJ1ZmZlcj4oKTtcbiAgICBjb25zdCBzdGRlcnIgPSBuZXcgQXJyYXk8QnVmZmVyPigpO1xuXG4gICAgY29uc3QgbGFzdExpbmUgPSBuZXcgTGFzdExpbmUoKTtcblxuICAgIGNoaWxkLm9uU3Rkb3V0KGNodW5rID0+IHtcbiAgICAgIGlmIChzaG93ID09PSAnYWx3YXlzJykge1xuICAgICAgICB3cml0ZVRvT3V0cHV0cyhjaHVuay50b1N0cmluZygndXRmLTgnKSk7XG4gICAgICB9XG4gICAgICBzdGRvdXQucHVzaChjaHVuayk7XG4gICAgICBsYXN0TGluZS5hcHBlbmQoY2h1bmsudG9TdHJpbmcoJ3V0Zi04JykpO1xuXG4gICAgICBjb25zdCBpbnRlcmFjdGlvbiA9IHJlbWFpbmluZ0ludGVyYWN0aW9uc1swXTtcbiAgICAgIGlmIChpbnRlcmFjdGlvbikge1xuXG4gICAgICAgIGlmIChpbnRlcmFjdGlvbi5wcm9tcHQudGVzdChsYXN0TGluZS5nZXQoKSkpIHtcblxuICAgICAgICAgIC8vIHN1YnByb2Nlc3MgZXhwZWN0cyBhIHVzZXIgaW5wdXQgbm93LlxuICAgICAgICAgIC8vIGZpcnN0LCBzaGlmdCB0aGUgaW50ZXJhY3Rpb25zIHRvIGVuc3VyZSB0aGUgc2FtZSBpbnRlcmFjdGlvbiBpcyBub3QgcmV1c2VkXG4gICAgICAgICAgcmVtYWluaW5nSW50ZXJhY3Rpb25zLnNoaWZ0KCk7XG5cbiAgICAgICAgICAvLyB0aGVuLCByZXNldCB0aGUgbGFzdCBsaW5lIHRvIHByZXZlbnQgcmVwZWF0ZWQgbWF0Y2hlcyBjYXVzZWQgYnkgdHR5IGVjaG9pbmdcbiAgICAgICAgICBsYXN0TGluZS5yZXNldCgpO1xuXG4gICAgICAgICAgLy8gbm93IHdyaXRlIHRoZSBpbnB1dCB3aXRoIGEgc2xpZ2h0IGRlbGF5IHRvIGVuc3VyZVxuICAgICAgICAgIC8vIHRoZSBjaGlsZCBwcm9jZXNzIGhhcyBhbHJlYWR5IHN0YXJ0ZWQgcmVhZGluZy5cbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGNoaWxkLndyaXRlU3RkaW4oaW50ZXJhY3Rpb24uaW5wdXQgKyAoaW50ZXJhY3Rpb24uZW5kID8/IG9zLkVPTCkpO1xuICAgICAgICAgIH0sIDUwMCk7XG4gICAgICAgIH1cblxuICAgICAgfVxuXG4gICAgfSk7XG5cbiAgICBpZiAodHR5ICYmIG9wdGlvbnMuY2FwdHVyZVN0ZGVyciA9PT0gZmFsc2UpIHtcbiAgICAgIC8vIGluIGEgdHR5IHN0ZGVyciBnb2VzIHRvIHRoZSBzYW1lIGZkIGFzIHN0ZG91dFxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZGlzYWJsZSAnY2FwdHVyZVN0ZGVycicgaW4gdHR5YCk7XG4gICAgfVxuXG4gICAgaWYgKCF0dHkpIHtcbiAgICAgIC8vIGluIGEgdHR5IHN0ZGVyciBnb2VzIHRvIHRoZSBzYW1lIGZkIGFzIHN0ZG91dCwgc28gb25TdGRvdXRcbiAgICAgIC8vIGlzIHN1ZmZpY2llbnQuXG4gICAgICBjaGlsZC5vblN0ZGVycihjaHVuayA9PiB7XG4gICAgICAgIGlmIChzaG93ID09PSAnYWx3YXlzJykge1xuICAgICAgICAgIHdyaXRlVG9PdXRwdXRzKGNodW5rLnRvU3RyaW5nKCd1dGYtOCcpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5jYXB0dXJlU3RkZXJyID8/IHRydWUpIHtcbiAgICAgICAgICBzdGRlcnIucHVzaChjaHVuayk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNoaWxkLm9uRXJyb3IocmVqZWN0KTtcblxuICAgIGNoaWxkLm9uRXhpdChjb2RlID0+IHtcbiAgICAgIGNvbnN0IHN0ZGVyck91dHB1dCA9IEJ1ZmZlci5jb25jYXQoc3RkZXJyKS50b1N0cmluZygndXRmLTgnKTtcbiAgICAgIGNvbnN0IHN0ZG91dE91dHB1dCA9IEJ1ZmZlci5jb25jYXQoc3Rkb3V0KS50b1N0cmluZygndXRmLTgnKTtcbiAgICAgIGNvbnN0IG91dCA9IChvcHRpb25zLm9ubHlTdGRlcnIgPyBzdGRlcnJPdXRwdXQgOiBzdGRvdXRPdXRwdXQgKyBzdGRlcnJPdXRwdXQpLnRyaW0oKTtcblxuICAgICAgY29uc3QgbG9nQW5kcmVqZWN0ID0gKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgICBpZiAoc2hvdyA9PT0gJ2Vycm9yJykge1xuICAgICAgICAgIHdyaXRlVG9PdXRwdXRzKGAke291dH1cXG5gKTtcbiAgICAgICAgfVxuICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVtYWluaW5nSW50ZXJhY3Rpb25zLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICAvLyByZWdhcmRsZXNzIG9mIHRoZSBleGl0IGNvZGUsIGlmIHdlIGRpZG4ndCBjb25zdW1lIGFsbCBleHBlY3RlZCBpbnRlcmFjdGlvbnMgd2UgcHJvYmFibHlcbiAgICAgICAgLy8gZGlkIHNvbWV0aGlpbmcgd3JvbmcuXG4gICAgICAgIGxvZ0FuZHJlamVjdChuZXcgRXJyb3IoYEV4cGVjdGVkIG1vcmUgdXNlciBpbnRlcmFjdGlvbnMgYnV0IHN1YnByb2Nlc3MgZXhpdGVkIHdpdGggJHtjb2RlfWApKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoY29kZSA9PT0gMCB8fCBvcHRpb25zLmFsbG93RXJyRXhpdCkge1xuICAgICAgICByZXNvbHZlKG91dCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsb2dBbmRyZWplY3QobmV3IEVycm9yKGAnJHtjb21tYW5kLmpvaW4oJyAnKX0nIGV4aXRlZCB3aXRoIGVycm9yIGNvZGUgJHtjb2RlfS5gKSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufVxuXG4vKipcbiAqIE1vZGVscyBhIHNpbmdsZSB1c2VyIGludGVyYWN0aW9uIHdpdGggdGhlIHNoZWxsLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJJbnRlcmFjdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgcHJvbXB0IHRvIGV4cGVjdC4gUmVnZXggbWF0Y2hlZCBhZ2FpbnN0IHRoZSBsYXN0IGxpbmUgaW5cbiAgICogdGhlIG91dHB1dCBiZWZvcmUgdGhlIHByb21wdCBpcyBkaXNwbGF5ZWQuXG4gICAqXG4gICAqIE1vc3QgY29tbW9ubHkgdGhpcyB3b3VsZCBiZSBhIHNpbXBsZSBzdHJpbmcgdG8gbWF0Y2ggZm9yIGluY2x1c2lvbi5cbiAgICpcbiAgICogRXhhbXBsZXM6XG4gICAqXG4gICAqIC0gUHJvY2VzcyBPdXRwdXQ6IFwiSGV5IHRoZXJlISBBcmUgeW91IHN1cmU/XCJcbiAgICogICBQcm9tcHQ6IC9BcmUgeW91IHN1cmU/L1xuICAgKiAgIE1hdGNoIChZZXMvTm8pOiBZZXNcbiAgICogICBSZWFzb246IFwiSGV5IHRoZXJlISBBcmUgeW91IHN1cmU/XCIgfiAvQXJlIHlvdSBzdXJlPy9cbiAgICpcbiAgICogLSBQcm9jZXNzIE91dHB1dDogXCJIZXkgdGhlcmUhXFxuQXJlIHlvdSBzdXJlP1wiXG4gICAqICAgUHJvbXB0OiAvQXJlIHlvdSBzdXJlPy9cbiAgICogICBNYXRjaCAoWWVzL05vKTogWWVzXG4gICAqICAgUmVhc29uOiBcIkFyZSB5b3Ugc3VyZT9cIiB+IC9BcmUgeW91IHN1cmU/L1xuICAgKlxuICAgKiAtIFByb2Nlc3MgT3V0cHV0OiBcIkFyZSB5b3Ugc3VyZT9cXG4ocmVtZW1iZXIgdGhpcyBpcyBkZXN0cnVjdGl2ZSlcIlxuICAgKiAgIFByb21wdDogL0FyZSB5b3Ugc3VyZT8vXG4gICAqICAgTWF0Y2ggKFllcy9Obyk6IE5vXG4gICAqICAgUmVhc29uOiBcIihyZW1lbWJlciB0aGlzIGlzIGRlc3RydWN0aXZlKVwiIOKJhCAvQXJlIHlvdSBzdXJlPy9cbiAgICpcbiAgICogLSBQcm9jZXNzIE91dHB1dDogXCJBcmUgeW91IHN1cmU/XFxuKHJlbWVtYmVyIHRoaXMgaXMgZGVzdHJ1Y3RpdmUpXCJcbiAgICogICBQcm9tcHQ6IC9yZW1lbWJlciB0aGlzIGlzIGRlc3RydWN0aXZlL1xuICAgKiAgIE1hdGNoIChZZXMvTm8pOiBZZXNcbiAgICogICBSZWFzb246IFwiKHJlbWVtYmVyIHRoaXMgaXMgZGVzdHJ1Y3RpdmUpXCIgfiAvcmVtZW1iZXIgdGhpcyBpcyBkZXN0cnVjdGl2ZS9cbiAgICpcbiAgICovXG4gIHJlYWRvbmx5IHByb21wdDogUmVnRXhwO1xuICAvKipcbiAgICogVGhlIGlucHV0IHRvIHByb3ZpZGUuXG4gICAqL1xuICByZWFkb25seSBpbnB1dDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RyaW5nIHRvIHNpZ25hbCB0aGUgZW5kIG9mIGlucHV0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBvcy5FT0xcbiAgICovXG4gIHJlYWRvbmx5IGVuZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGVsbE9wdGlvbnMgZXh0ZW5kcyBjaGlsZF9wcm9jZXNzLlNwYXduT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBQcm9wZXJ0aWVzIHRvIGFkZCB0byAnZW52J1xuICAgKi9cbiAgcmVhZG9ubHkgbW9kRW52PzogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPjtcblxuICAvKipcbiAgICogRG9uJ3QgZmFpbCB3aGVuIGV4aXRpbmcgd2l0aCBhbiBlcnJvclxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dFcnJFeGl0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBjYXB0dXJlIHN0ZGVyclxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBjYXB0dXJlU3RkZXJyPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUGFzcyBvdXRwdXQgaGVyZVxuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0cz86IE5vZGVKUy5Xcml0YWJsZVN0cmVhbVtdO1xuXG4gIC8qKlxuICAgKiBPbmx5IHJldHVybiBzdGRlcnIuIEZvciBleGFtcGxlLCB0aGlzIGlzIHVzZWQgdG8gdmFsaWRhdGVcbiAgICogdGhhdCB3aGVuIENJPXRydWUsIGFsbCBsb2dzIGFyZSBzZW50IHRvIHN0ZG91dC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IG9ubHlTdGRlcnI/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEb24ndCBsb2cgdG8gc3Rkb3V0XG4gICAqXG4gICAqIEBkZWZhdWx0IGFsd2F5c1xuICAgKi9cbiAgcmVhZG9ubHkgc2hvdz86ICdhbHdheXMnIHwgJ25ldmVyJyB8ICdlcnJvcic7XG5cbiAgLyoqXG4gICAqIFByb3ZpZGUgdXNlciBpbnRlcmFjdGlvbiB0byByZXNwb25kIHRvIHNoZWxsIHByb21wdHMuXG4gICAqXG4gICAqIE9yZGVyIGFuZCBjb3VudCBzaG91bGQgY29ycmVzcG9uZCB0byB0aGUgZXhwZWN0ZWQgcHJvbXB0cyBpc3N1ZWQgYnkgdGhlIHN1YnByb2Nlc3MuXG4gICAqL1xuICByZWFkb25seSBpbnRlcmFjdD86IFVzZXJJbnRlcmFjdGlvbltdO1xuXG59XG5cbmV4cG9ydCBjbGFzcyBTaGVsbEhlbHBlciB7XG4gIHB1YmxpYyBzdGF0aWMgZnJvbUNvbnRleHQoY29udGV4dDogVGVzdENvbnRleHQgJiBUZW1wb3JhcnlEaXJlY3RvcnlDb250ZXh0KSB7XG4gICAgcmV0dXJuIG5ldyBTaGVsbEhlbHBlcihjb250ZXh0LmludGVnVGVzdERpciwgY29udGV4dC5vdXRwdXQpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY3dkOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfb3V0cHV0OiBOb2RlSlMuV3JpdGFibGVTdHJlYW0pIHsgfVxuXG4gIHB1YmxpYyBhc3luYyBzaGVsbChjb21tYW5kOiBzdHJpbmdbXSwgb3B0aW9uczogT21pdDxTaGVsbE9wdGlvbnMsICdjd2QnIHwgJ291dHB1dHMnPiA9IHt9KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gc2hlbGwoY29tbWFuZCwge1xuICAgICAgb3V0cHV0czogW3RoaXMuX291dHB1dF0sXG4gICAgICBjd2Q6IHRoaXMuX2N3ZCxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBtb2RFbnY6IHtcbiAgICAgICAgLy8gZ2l2ZSBldmVyeSBzaGVsbCBpdHMgb3duIGRvY2tlciBjb25maWcgZGlyZWN0b3J5XG4gICAgICAgIC8vIHNvIHRoYXQgcGFyYWxsZWwgcnVucyBkb24ndCBpbnRlcmZlcmUgd2l0aCBlYWNoIG90aGVyLlxuICAgICAgICBET0NLRVJfQ09ORklHOiBwYXRoLmpvaW4odGhpcy5fY3dkLCAnLmRvY2tlcicpLFxuICAgICAgICAuLi5vcHRpb25zLm1vZEVudixcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBybSAtcmYgcmVpbXBsZW1lbnRhdGlvbiwgZG9uJ3Qgd2FudCB0byBkZXBlbmQgb24gYW4gTlBNIHBhY2thZ2UgZm9yIHRoaXNcbiAqXG4gKiBSZXR1cm5zIGB0cnVlYCBpZiBldmVyeXRoaW5nIGdvdCBkZWxldGVkLCBvciBgZmFsc2VgIGlmIHNvbWUgZmlsZXMgY291bGRcbiAqIG5vdCBiZSBkZWxldGVkIGR1ZSB0byBwZXJtaXNzaW9ucyBpc3N1ZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByaW1yYWYoZnNQYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgdHJ5IHtcbiAgICBsZXQgc3VjY2VzcyA9IHRydWU7XG4gICAgY29uc3QgaXNEaXIgPSBmcy5sc3RhdFN5bmMoZnNQYXRoKS5pc0RpcmVjdG9yeSgpO1xuXG4gICAgaWYgKGlzRGlyKSB7XG4gICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZnMucmVhZGRpclN5bmMoZnNQYXRoKSkge1xuICAgICAgICBzdWNjZXNzICYmPSByaW1yYWYocGF0aC5qb2luKGZzUGF0aCwgZmlsZSkpO1xuICAgICAgfVxuICAgICAgZnMucm1kaXJTeW5jKGZzUGF0aCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZzLnVubGlua1N5bmMoZnNQYXRoKTtcbiAgICB9XG4gICAgcmV0dXJuIHN1Y2Nlc3M7XG4gIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgIC8vIENhbiBoYXBwZW4gaWYgc29tZSBmaWxlcyBnb3QgZ2VuZXJhdGVkIGluc2lkZSBhIERvY2tlciBjb250YWluZXIgYW5kIGFyZSBub3cgaW5hZHZlcnRlbnRseSBvd25lZCBieSBgcm9vdGAuXG4gICAgLy8gV2UgY2FuJ3QgZXZlciBjbGVhbiB0aG9zZSB1cCBhbnltb3JlLCBidXQgc2luY2UgaXQgb25seSBoYXBwZW5zIGluc2lkZSBHaXRIdWIgQWN0aW9ucyBjb250YWluZXJzIHdlIGFsc28gZG9uJ3QgY2FyZSB0b28gbXVjaC5cbiAgICBpZiAoZS5jb2RlID09PSAnRUFDQ0VTJyB8fCBlLmNvZGUgPT09ICdFTk9URU1QVFknKSB7IHJldHVybiBmYWxzZTsgfVxuXG4gICAgLy8gQWxyZWFkeSBnb25lXG4gICAgaWYgKGUuY29kZSA9PT0gJ0VOT0VOVCcpIHsgcmV0dXJuIHRydWU7IH1cblxuICAgIHRocm93IGU7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFkZFRvU2hlbGxQYXRoKHg6IHN0cmluZykge1xuICBjb25zdCBwYXJ0cyA9IHByb2Nlc3MuZW52LlBBVEg/LnNwbGl0KCc6JykgPz8gW107XG5cbiAgaWYgKCFwYXJ0cy5pbmNsdWRlcyh4KSkge1xuICAgIHBhcnRzLnVuc2hpZnQoeCk7XG4gIH1cblxuICBwcm9jZXNzLmVudi5QQVRIID0gcGFydHMuam9pbignOicpO1xufVxuXG4vKipcbiAqIEFjY3VtdWxhdGUgdGV4dCBzaW5jZSB0aGUgbGFzdCBsaW5lIGJyZWFrIChvciBiZWdpbm5pbmcgb2Ygc3RyaW5nKSBpdCBoYXMgc2VlbiBpbiB0aGUgY2h1bmtzLlxuICpcbiAqIEV4YW1wbGVzOlxuICpcbiAqIC0gQ2h1bmtzOiBbJ29uZVxcbicsICd0d29cXG4nLCB0aHJlZSddXG4gKiAtIExhc3QgTGluZTogJ3RocmVlJ1xuICpcbiAqIC0gQ2h1bmtzOiBbJ29uZScsICd0d28nLCAnXFxudGhyZWUnXVxuICogLSBMYXN0IExpbmU6ICd0aHJlZSdcbiAqXG4gKiAtIENodW5rczogWydvbmUnLCAndHdvJ11cbiAqIC0gTGFzdCBMaW5lOiAnb25ldHdvJ1xuICpcbiAqIC0gQ2h1bmtzOiBbJ29uZScsICd0d28nLCAnXFxudGhyZWUnLCAnZm91ciddXG4gKiAtIExhc3QgTGluZTogJ3RocmVlZm91cidcbiAqL1xuY2xhc3MgTGFzdExpbmUge1xuXG4gIHByaXZhdGUgbGFzdExpbmU6IHN0cmluZyA9ICcnO1xuXG4gIHB1YmxpYyBhcHBlbmQoY2h1bms6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGxpbmVzID0gY2h1bmsuc3BsaXQob3MuRU9MKTtcbiAgICBpZiAobGluZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAvLyBjaHVuayBkb2Vzbid0IGNvbnRhaW4gYSBuZXcgbGluZSBzbyBqdXN0IGFwcGVuZFxuICAgICAgdGhpcy5sYXN0TGluZSArPSBsaW5lc1swXTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gY2h1bmsgY29udGFpbnMgbXVsdGlwbGUgbGluZXMgc28ganVzdCBvdmVycmlkZSB3aXRoIHRoZSBsYXN0IG9uZVxuICAgICAgdGhpcy5sYXN0TGluZSA9IGxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5sYXN0TGluZTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldCgpIHtcbiAgICB0aGlzLmxhc3RMaW5lID0gJyc7XG4gIH1cbn0iXX0=
package/lib/shell.ts CHANGED
@@ -60,12 +60,18 @@ export async function shell(command: string[], options: ShellOptions = {}): Prom
60
60
  if (interaction) {
61
61
 
62
62
  if (interaction.prompt.test(lastLine.get())) {
63
+
63
64
  // subprocess expects a user input now.
64
- // we have to write the input AFTER the child has started
65
- // reading, so we do this with a small delay.
65
+ // first, shift the interactions to ensure the same interaction is not reused
66
+ remainingInteractions.shift();
67
+
68
+ // then, reset the last line to prevent repeated matches caused by tty echoing
69
+ lastLine.reset();
70
+
71
+ // now write the input with a slight delay to ensure
72
+ // the child process has already started reading.
66
73
  setTimeout(() => {
67
74
  child.writeStdin(interaction.input + (interaction.end ?? os.EOL));
68
- remainingInteractions.shift();
69
75
  }, 500);
70
76
  }
71
77
 
@@ -73,14 +79,23 @@ export async function shell(command: string[], options: ShellOptions = {}): Prom
73
79
 
74
80
  });
75
81
 
76
- child.onStderr(chunk => {
77
- if (show === 'always') {
78
- writeToOutputs(chunk.toString('utf-8'));
79
- }
80
- if (options.captureStderr ?? true) {
81
- stderr.push(chunk);
82
- }
83
- });
82
+ if (tty && options.captureStderr === false) {
83
+ // in a tty stderr goes to the same fd as stdout
84
+ throw new Error(`Cannot disable 'captureStderr' in tty`);
85
+ }
86
+
87
+ if (!tty) {
88
+ // in a tty stderr goes to the same fd as stdout, so onStdout
89
+ // is sufficient.
90
+ child.onStderr(chunk => {
91
+ if (show === 'always') {
92
+ writeToOutputs(chunk.toString('utf-8'));
93
+ }
94
+ if (options.captureStderr ?? true) {
95
+ stderr.push(chunk);
96
+ }
97
+ });
98
+ }
84
99
 
85
100
  child.onError(reject);
86
101
 
@@ -309,4 +324,8 @@ class LastLine {
309
324
  public get(): string {
310
325
  return this.lastLine;
311
326
  }
327
+
328
+ public reset() {
329
+ this.lastLine = '';
330
+ }
312
331
  }
package/lib/with-aws.js CHANGED
@@ -35,7 +35,7 @@ function withAws(block, disableBootstrap = false) {
35
35
  return async (context) => {
36
36
  if (atmosphereEnabled()) {
37
37
  const atmosphere = new cdk_atmosphere_client_1.AtmosphereClient(atmosphereEndpoint());
38
- const allocation = await atmosphere.acquire({ pool: atmospherePool(), requester: context.name });
38
+ const allocation = await atmosphere.acquire({ pool: atmospherePool(), requester: context.name, timeoutSeconds: 60 * 30 });
39
39
  const aws = await aws_1.AwsClients.forIdentity(allocation.environment.region, {
40
40
  accessKeyId: allocation.credentials.accessKeyId,
41
41
  secretAccessKey: allocation.credentials.secretAccessKey,
@@ -103,4 +103,4 @@ async function sanityCheck(aws) {
103
103
  }
104
104
  }
105
105
  let sanityChecked;
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1hd3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ3aXRoLWF3cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQU1BLDhDQUdDO0FBRUQsZ0RBTUM7QUFFRCx3Q0FNQztBQVNELDBCQW1DQztBQUdELGdDQVdDO0FBbkZELDBFQUFrRTtBQUNsRSwrQkFBbUM7QUFFbkMsbURBQStDO0FBRy9DLFNBQWdCLGlCQUFpQjtJQUMvQixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDO0lBQ3pELE9BQU8sT0FBTyxLQUFLLE1BQU0sSUFBSSxPQUFPLEtBQUssR0FBRyxDQUFDO0FBQy9DLENBQUM7QUFFRCxTQUFnQixrQkFBa0I7SUFDaEMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsQ0FBQztJQUN4RCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLDhDQUE4QyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELFNBQWdCLGNBQWM7SUFDNUIsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQztJQUNwRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUlEOzs7O0dBSUc7QUFDSCxTQUFnQixPQUFPLENBQ3JCLEtBQTJFLEVBQzNFLG1CQUE0QixLQUFLO0lBRWpDLE9BQU8sS0FBSyxFQUFFLE9BQVUsRUFBRSxFQUFFO1FBQzFCLElBQUksaUJBQWlCLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sVUFBVSxHQUFHLElBQUksd0NBQWdCLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO1lBQzlELE1BQU0sVUFB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QyxhQUFhLEVBQUUsQ0FBQztRQUNuQixNQUFNLElBQUksS0FBSyxDQUFDLDZEQUE2RCxDQUFDLENBQUM7SUFDakYsQ0FBQztBQUNILENBQUM7QUFDRCxJQUFJLGFBQWtDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdG1vc3BoZXJlQ2xpZW50IH0gZnJvbSAnQGNka2xhYnMvY2RrLWF0bW9zcGhlcmUtY2xpZW50JztcbmltcG9ydCB7IEF3c0NsaWVudHMgfSBmcm9tICcuL2F3cyc7XG5pbXBvcnQgeyBUZXN0Q29udGV4dCB9IGZyb20gJy4vaW50ZWctdGVzdCc7XG5pbXBvcnQgeyBSZXNvdXJjZVBvb2wgfSBmcm9tICcuL3Jlc291cmNlLXBvb2wnO1xuaW1wb3J0IHsgRGlzYWJsZUJvb3RzdHJhcENvbnRleHQgfSBmcm9tICcuL3dpdGgtY2RrLWFwcCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBhdG1vc3BoZXJlRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgY29uc3QgZW5hYmxlZCA9IHByb2Nlc3MuZW52LkNES19JTlRFR19BVE1PU1BIRVJFX0VOQUJMRUQ7XG4gIHJldHVybiBlbmFibGVkID09PSAndHJ1ZScgfHwgZW5hYmxlZCA9PT0gJzEnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXRtb3NwaGVyZUVuZHBvaW50KCk6IHN0cmluZyB7XG4gIGNvbnN0IHZhbHVlID0gcHJvY2Vzcy5lbnYuQ0RLX0lOVEVHX0FUTU9TUEhFUkVfRU5EUE9JTlQ7XG4gIGlmICghdmFsdWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0NES19JTlRFR19BVE1PU1BIRVJFX0VORFBPSU5UIGlzIG5vdCBkZWZpbmVkJyk7XG4gIH1cbiAgcmV0dXJuIHZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXRtb3NwaGVyZVBvb2woKSB7XG4gIGNvbnN0IHZhbHVlID0gcHJvY2Vzcy5lbnYuQ0RLX0lOVEVHX0FUTU9TUEhFUkVfUE9PTDtcbiAgaWYgKCF2YWx1ZSkge1xuICAgIHRocm93IG5ldyBFcnJvcignQ0RLX0lOVEVHX0FUTU9TUEhFUkVfUE9PTCBpcyBub3QgZGVmaW5lZCcpO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn1cblxuZXhwb3J0IHR5cGUgQXdzQ29udGV4dCA9IHsgcmVhZG9ubHkgYXdzOiBBd3NDbGllbnRzIH07XG5cbi8qKlxuICogSGlnaGVyIG9yZGVyIGZ1bmN0aW9uIHRvIGV4ZWN1dGUgYSBibG9jayB3aXRoIGFuIEFXUyBjbGllbnQgc2V0dXBcbiAqXG4gKiBBbGxvY2F0ZSB0aGUgbmV4dCByZWdpb24gZnJvbSB0aGUgUkVHSU9OIHBvb2wgYW5kIGRpc3Bvc2UgaXQgYWZ0ZXJ3YXJkcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhBd3M8QSBleHRlbmRzIFRlc3RDb250ZXh0PihcbiAgYmxvY2s6IChjb250ZXh0OiBBICYgQXdzQ29udGV4dCAmIERpc2FibGVCb290c3RyYXBDb250ZXh0KSA9PiBQcm9taXNlPHZvaWQ+LFxuICBkaXNhYmxlQm9vdHN0cmFwOiBib29sZWFuID0gZmFsc2UsXG4pOiAoY29udGV4dDogQSkgPT4gUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiBhc3luYyAoY29udGV4dDogQSkgPT4ge1xuICAgIGlmIChhdG1vc3BoZXJlRW5hYmxlZCgpKSB7XG4gICAgICBjb25zdCBhdG1vc3BoZXJlID0gbmV3IEF0bW9zcGhlcmVDbGllbnQoYXRtb3NwaGVyZUVuZHBvaW50KCkpO1xuICAgICAgY29uc3QgYWxsb2NhdGlvbiA9IGF3YWl0IGF0bW9zcGhlcmUuYWNxdWlyZSh7IHBvb2w6IGF0bW9zcGhlcmVQb29sKCksIHJlcXVlc3RlcjogY29udGV4dC5uYW1lIH0pO1xuICAgICAgY29uc3QgYXdzID0gYXdhaXQgQXdzQ2xpZW50cy5mb3JJZGVudGl0eShhbGxvY2F0aW9uLmVudmlyb25tZW50LnJlZ2lvbiwge1xuICAgICAgICBhY2Nlc3NLZXlJZDogYWxsb2NhdGlvbi5jcmVkZW50aWFscy5hY2Nlc3NLZXlJZCxcbiAgICAgICAgc2VjcmV0QWNjZXNzS2V5OiBhbGxvY2F0aW9uLmNyZWRlbnRpYWxzLnNlY3JldEFjY2Vzc0tleSxcbiAgICAgICAgc2Vzc2lvblRva2VuOiBhbGxvY2F0aW9uLmNyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbixcbiAgICAgICAgYWNjb3VudElkOiBhbGxvY2F0aW9uLmVudmlyb25tZW50LmFjY291bnQsXG4gICAgICB9LCBjb250ZXh0Lm91dHB1dCk7XG5cbiAgICAgIGF3YWl0IHNhbml0eUNoZWNrKGF3cyk7XG5cbiAgICAgIGxldCBvdXRjb21lID0gJ3N1Y2Nlc3MnO1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IGJsb2NrKHsgLi4uY29udGV4dCwgZGlzYWJsZUJvb3RzdHJhcCwgYXdzIH0pO1xuICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgIG91dGNvbWUgPSAnZmFpbHVyZSc7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBhd2FpdCBhdG1vc3BoZXJlLnJlbGVhc2UoYWxsb2NhdGlvbi5pZCwgb3V0Y29tZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiByZWdpb25Qb29sKCkudXNpbmcoYXN5bmMgKHJlZ2lvbikgPT4ge1xuICAgICAgICBjb25zdCBhd3MgPSBhd2FpdCBBd3NDbGllbnRzLmZvclJlZ2lvbihyZWdpb24sIGNvbnRleHQub3V0cHV0KTtcbiAgICAgICAgYXdhaXQgc2FuaXR5Q2hlY2soYXdzKTtcblxuICAgICAgICByZXR1cm4gYmxvY2soeyAuLi5jb250ZXh0LCBkaXNhYmxlQm9vdHN0cmFwLCBhd3MgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG59XG5cbmxldCBfcmVnaW9uUG9vbDogdW5kZWZpbmVkIHwgUmVzb3VyY2VQb29sO1xuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lvblBvb2woKTogUmVzb3VyY2VQb29sIHtcbiAgaWYgKF9yZWdpb25Qb29sICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gX3JlZ2lvblBvb2w7XG4gIH1cblxuICBjb25zdCBSRUdJT05TID0gcHJvY2Vzcy5lbnYuQVdTX1JFR0lPTlNcbiAgICA/IHByb2Nlc3MuZW52LkFXU19SRUdJT05TLnNwbGl0KCcsJylcbiAgICA6IFtwcm9jZXNzLmVudi5BV1NfUkVHSU9OID8/IHByb2Nlc3MuZW52LkFXU19ERUZBVUxUX1JFR0lPTiA/PyAndXMtZWFzdC0xJ107XG5cbiAgX3JlZ2lvblBvb2wgPSBSZXNvdXJjZVBvb2wud2l0aFJlc291cmNlcygnYXdzX3JlZ2lvbnMnLCBSRUdJT05TKTtcbiAgcmV0dXJuIF9yZWdpb25Qb29sO1xufVxuXG4vKipcbiAqIFBlcmZvcm0gYSBvbmUtdGltZSBxdWljayBzYW5pdHkgY2hlY2sgdGhhdCB0aGUgQVdTIGNsaWVudHMgaGF2ZSBwcm9wZXJseSBjb25maWd1cmVkIGNyZWRlbnRpYWxzXG4gKlxuICogSWYgd2UgZG9uJ3QgZG8gdGhpcywgY2FsbHMgYXJlIGdvaW5nIHRvIGZhaWwgYW5kIHRoZXknbGwgYmUgcmV0cmllZCBhbmQgZXZlcnl0aGluZyB3aWxsIHRha2VcbiAqIGZvcmV2ZXIgYmVmb3JlIHRoZSB1c2VyIG5vdGljZXMgYSBzaW1wbGUgbWlzY29uZmlndXJhdGlvbi5cbiAqXG4gKiBXZSBjYW4ndCBjaGVjayBmb3IgdGhlIHByZXNlbmNlIG9mIGVudmlyb25tZW50IHZhcmlhYmxlcyBzaW5jZSBjcmVkZW50aWFscyBjb3VsZCBjb21lIGZyb21cbiAqIGFueXdoZXJlLCBzbyBkbyBzaW1wbGUgYWNjb3VudCByZXRyaWV2YWwuXG4gKlxuICogT25seSBkbyBpdCBvbmNlIHBlciBwcm9jZXNzLlxuICovXG5hc3luYyBmdW5jdGlvbiBzYW5pdHlDaGVjayhhd3M6IEF3c0NsaWVudHMpIHtcbiAgaWYgKHNhbml0eUNoZWNrZWQgPT09IHVuZGVmaW5lZCkge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBhd3MuYWNjb3VudCgpO1xuICAgICAgc2FuaXR5Q2hlY2tlZCA9IHRydWU7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBzYW5pdHlDaGVja2VkID0gZmFsc2U7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEFXUyBjcmVkZW50aWFscyBwcm9iYWJseSBub3QgY29uZmlndXJlZCwgZ290IGVycm9yOiAke2UubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cbiAgaWYgKCFzYW5pdHlDaGVja2VkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdBV1MgY3JlZGVudGlhbHMgcHJvYmFibHkgbm90IGNvbmZpZ3VyZWQsIHNlZSBwcmV2aW91cyBlcnJvcicpO1xuICB9XG59XG5sZXQgc2FuaXR5Q2hlY2tlZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiJdfQ==
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1hd3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ3aXRoLWF3cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQU1BLDhDQUdDO0FBRUQsZ0RBTUM7QUFFRCx3Q0FNQztBQVNELDBCQW1DQztBQUdELGdDQVdDO0FBbkZELDBFQUFrRTtBQUNsRSwrQkFBbUM7QUFFbkMsbURBQStDO0FBRy9DLFNBQWdCLGlCQUFpQjtJQUMvQixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDO0lBQ3pELE9BQU8sT0FBTyxLQUFLLE1BQU0sSUFBSSxPQUFPLEtBQUssR0FBRyxDQUFDO0FBQy9DLENBQUM7QUFFRCxTQUFnQixrQkFBa0I7SUFDaEMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsQ0FBQztJQUN4RCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLDhDQUE4QyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELFNBQWdCLGNBQWM7SUFDNUIsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQztJQUNwRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUlEOzs7O0dBSUc7QUFDSCxTQUFnQixPQUFPLENBQ3JCLEtBQTJFLEVBQzNFLG1CQUE0QixLQUFLO0lBRWpDLE9BQU8sS0FBSyxFQUFFLE9BQVUsRUFBRSxFQUFFO1FBQzFCLElBQUksaUJBQWlCLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sVUFBVSxHQUFHLElBQUksd0NBQWdCLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO1lBQzlELE1BQU0sVUFB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RixDQUFDO0lBQ0gsQ0FBQztJQUNELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNuQixNQUFNLElBQUksS0FBSyxDQUFDLDZEQUE2RCxDQUFDLENBQUM7SUFDakYsQ0FBQztBQUNILENBQUM7QUFDRCxJQUFJLGFBQWtDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdG1vc3BoZXJlQ2xpZW50IH0gZnJvbSAnQGNka2xhYnMvY2RrLWF0bW9zcGhlcmUtY2xpZW50JztcbmltcG9ydCB7IEF3c0NsaWVudHMgfSBmcm9tICcuL2F3cyc7XG5pbXBvcnQgeyBUZXN0Q29udGV4dCB9IGZyb20gJy4vaW50ZWctdGVzdCc7XG5pbXBvcnQgeyBSZXNvdXJjZVBvb2wgfSBmcm9tICcuL3Jlc291cmNlLXBvb2wnO1xuaW1wb3J0IHsgRGlzYWJsZUJvb3RzdHJhcENvbnRleHQgfSBmcm9tICcuL3dpdGgtY2RrLWFwcCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBhdG1vc3BoZXJlRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgY29uc3QgZW5hYmxlZCA9IHByb2Nlc3MuZW52LkNES19JTlRFR19BVE1PU1BIRVJFX0VOQUJMRUQ7XG4gIHJldHVybiBlbmFibGVkID09PSAndHJ1ZScgfHwgZW5hYmxlZCA9PT0gJzEnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXRtb3NwaGVyZUVuZHBvaW50KCk6IHN0cmluZyB7XG4gIGNvbnN0IHZhbHVlID0gcHJvY2Vzcy5lbnYuQ0RLX0lOVEVHX0FUTU9TUEhFUkVfRU5EUE9JTlQ7XG4gIGlmICghdmFsdWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0NES19JTlRFR19BVE1PU1BIRVJFX0VORFBPSU5UIGlzIG5vdCBkZWZpbmVkJyk7XG4gIH1cbiAgcmV0dXJuIHZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXRtb3NwaGVyZVBvb2woKSB7XG4gIGNvbnN0IHZhbHVlID0gcHJvY2Vzcy5lbnYuQ0RLX0lOVEVHX0FUTU9TUEhFUkVfUE9PTDtcbiAgaWYgKCF2YWx1ZSkge1xuICAgIHRocm93IG5ldyBFcnJvcignQ0RLX0lOVEVHX0FUTU9TUEhFUkVfUE9PTCBpcyBub3QgZGVmaW5lZCcpO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn1cblxuZXhwb3J0IHR5cGUgQXdzQ29udGV4dCA9IHsgcmVhZG9ubHkgYXdzOiBBd3NDbGllbnRzIH07XG5cbi8qKlxuICogSGlnaGVyIG9yZGVyIGZ1bmN0aW9uIHRvIGV4ZWN1dGUgYSBibG9jayB3aXRoIGFuIEFXUyBjbGllbnQgc2V0dXBcbiAqXG4gKiBBbGxvY2F0ZSB0aGUgbmV4dCByZWdpb24gZnJvbSB0aGUgUkVHSU9OIHBvb2wgYW5kIGRpc3Bvc2UgaXQgYWZ0ZXJ3YXJkcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhBd3M8QSBleHRlbmRzIFRlc3RDb250ZXh0PihcbiAgYmxvY2s6IChjb250ZXh0OiBBICYgQXdzQ29udGV4dCAmIERpc2FibGVCb290c3RyYXBDb250ZXh0KSA9PiBQcm9taXNlPHZvaWQ+LFxuICBkaXNhYmxlQm9vdHN0cmFwOiBib29sZWFuID0gZmFsc2UsXG4pOiAoY29udGV4dDogQSkgPT4gUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiBhc3luYyAoY29udGV4dDogQSkgPT4ge1xuICAgIGlmIChhdG1vc3BoZXJlRW5hYmxlZCgpKSB7XG4gICAgICBjb25zdCBhdG1vc3BoZXJlID0gbmV3IEF0bW9zcGhlcmVDbGllbnQoYXRtb3NwaGVyZUVuZHBvaW50KCkpO1xuICAgICAgY29uc3QgYWxsb2NhdGlvbiA9IGF3YWl0IGF0bW9zcGhlcmUuYWNxdWlyZSh7IHBvb2w6IGF0bW9zcGhlcmVQb29sKCksIHJlcXVlc3RlcjogY29udGV4dC5uYW1lLCB0aW1lb3V0U2Vjb25kczogNjAgKiAzMCB9KTtcbiAgICAgIGNvbnN0IGF3cyA9IGF3YWl0IEF3c0NsaWVudHMuZm9ySWRlbnRpdHkoYWxsb2NhdGlvbi5lbnZpcm9ubWVudC5yZWdpb24sIHtcbiAgICAgICAgYWNjZXNzS2V5SWQ6IGFsbG9jYXRpb24uY3JlZGVudGlhbHMuYWNjZXNzS2V5SWQsXG4gICAgICAgIHNlY3JldEFjY2Vzc0tleTogYWxsb2NhdGlvbi5jcmVkZW50aWFscy5zZWNyZXRBY2Nlc3NLZXksXG4gICAgICAgIHNlc3Npb25Ub2tlbjogYWxsb2NhdGlvbi5jcmVkZW50aWFscy5zZXNzaW9uVG9rZW4sXG4gICAgICAgIGFjY291bnRJZDogYWxsb2NhdGlvbi5lbnZpcm9ubWVudC5hY2NvdW50LFxuICAgICAgfSwgY29udGV4dC5vdXRwdXQpO1xuXG4gICAgICBhd2FpdCBzYW5pdHlDaGVjayhhd3MpO1xuXG4gICAgICBsZXQgb3V0Y29tZSA9ICdzdWNjZXNzJztcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBhd2FpdCBibG9jayh7IC4uLmNvbnRleHQsIGRpc2FibGVCb290c3RyYXAsIGF3cyB9KTtcbiAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICBvdXRjb21lID0gJ2ZhaWx1cmUnO1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgYXdhaXQgYXRtb3NwaGVyZS5yZWxlYXNlKGFsbG9jYXRpb24uaWQsIG91dGNvbWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcmVnaW9uUG9vbCgpLnVzaW5nKGFzeW5jIChyZWdpb24pID0+IHtcbiAgICAgICAgY29uc3QgYXdzID0gYXdhaXQgQXdzQ2xpZW50cy5mb3JSZWdpb24ocmVnaW9uLCBjb250ZXh0Lm91dHB1dCk7XG4gICAgICAgIGF3YWl0IHNhbml0eUNoZWNrKGF3cyk7XG5cbiAgICAgICAgcmV0dXJuIGJsb2NrKHsgLi4uY29udGV4dCwgZGlzYWJsZUJvb3RzdHJhcCwgYXdzIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9O1xufVxuXG5sZXQgX3JlZ2lvblBvb2w6IHVuZGVmaW5lZCB8IFJlc291cmNlUG9vbDtcbmV4cG9ydCBmdW5jdGlvbiByZWdpb25Qb29sKCk6IFJlc291cmNlUG9vbCB7XG4gIGlmIChfcmVnaW9uUG9vbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIF9yZWdpb25Qb29sO1xuICB9XG5cbiAgY29uc3QgUkVHSU9OUyA9IHByb2Nlc3MuZW52LkFXU19SRUdJT05TXG4gICAgPyBwcm9jZXNzLmVudi5BV1NfUkVHSU9OUy5zcGxpdCgnLCcpXG4gICAgOiBbcHJvY2Vzcy5lbnYuQVdTX1JFR0lPTiA/PyBwcm9jZXNzLmVudi5BV1NfREVGQVVMVF9SRUdJT04gPz8gJ3VzLWVhc3QtMSddO1xuXG4gIF9yZWdpb25Qb29sID0gUmVzb3VyY2VQb29sLndpdGhSZXNvdXJjZXMoJ2F3c19yZWdpb25zJywgUkVHSU9OUyk7XG4gIHJldHVybiBfcmVnaW9uUG9vbDtcbn1cblxuLyoqXG4gKiBQZXJmb3JtIGEgb25lLXRpbWUgcXVpY2sgc2FuaXR5IGNoZWNrIHRoYXQgdGhlIEFXUyBjbGllbnRzIGhhdmUgcHJvcGVybHkgY29uZmlndXJlZCBjcmVkZW50aWFsc1xuICpcbiAqIElmIHdlIGRvbid0IGRvIHRoaXMsIGNhbGxzIGFyZSBnb2luZyB0byBmYWlsIGFuZCB0aGV5J2xsIGJlIHJldHJpZWQgYW5kIGV2ZXJ5dGhpbmcgd2lsbCB0YWtlXG4gKiBmb3JldmVyIGJlZm9yZSB0aGUgdXNlciBub3RpY2VzIGEgc2ltcGxlIG1pc2NvbmZpZ3VyYXRpb24uXG4gKlxuICogV2UgY2FuJ3QgY2hlY2sgZm9yIHRoZSBwcmVzZW5jZSBvZiBlbnZpcm9ubWVudCB2YXJpYWJsZXMgc2luY2UgY3JlZGVudGlhbHMgY291bGQgY29tZSBmcm9tXG4gKiBhbnl3aGVyZSwgc28gZG8gc2ltcGxlIGFjY291bnQgcmV0cmlldmFsLlxuICpcbiAqIE9ubHkgZG8gaXQgb25jZSBwZXIgcHJvY2Vzcy5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gc2FuaXR5Q2hlY2soYXdzOiBBd3NDbGllbnRzKSB7XG4gIGlmIChzYW5pdHlDaGVja2VkID09PSB1bmRlZmluZWQpIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgYXdzLmFjY291bnQoKTtcbiAgICAgIHNhbml0eUNoZWNrZWQgPSB0cnVlO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgc2FuaXR5Q2hlY2tlZCA9IGZhbHNlO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBBV1MgY3JlZGVudGlhbHMgcHJvYmFibHkgbm90IGNvbmZpZ3VyZWQsIGdvdCBlcnJvcjogJHtlLm1lc3NhZ2V9YCk7XG4gICAgfVxuICB9XG4gIGlmICghc2FuaXR5Q2hlY2tlZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignQVdTIGNyZWRlbnRpYWxzIHByb2JhYmx5IG5vdCBjb25maWd1cmVkLCBzZWUgcHJldmlvdXMgZXJyb3InKTtcbiAgfVxufVxubGV0IHNhbml0eUNoZWNrZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4iXX0=
package/lib/with-aws.ts CHANGED
@@ -39,7 +39,7 @@ export function withAws<A extends TestContext>(
39
39
  return async (context: A) => {
40
40
  if (atmosphereEnabled()) {
41
41
  const atmosphere = new AtmosphereClient(atmosphereEndpoint());
42
- const allocation = await atmosphere.acquire({ pool: atmospherePool(), requester: context.name });
42
+ const allocation = await atmosphere.acquire({ pool: atmospherePool(), requester: context.name, timeoutSeconds: 60 * 30 });
43
43
  const aws = await AwsClients.forIdentity(allocation.environment.region, {
44
44
  accessKeyId: allocation.credentials.accessKeyId,
45
45
  secretAccessKey: allocation.credentials.secretAccessKey,
package/package.json CHANGED
@@ -109,7 +109,7 @@
109
109
  "publishConfig": {
110
110
  "access": "public"
111
111
  },
112
- "version": "3.4.0",
112
+ "version": "3.4.2",
113
113
  "types": "lib/index.d.ts",
114
114
  "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\"."
115
115
  }
@@ -17,7 +17,7 @@ module.exports = {
17
17
 
18
18
  // Because of the way Jest concurrency works, this timeout includes waiting
19
19
  // for the lock. Which is almost never what we actually care about. Set it high.
20
- testTimeout: 600000,
20
+ testTimeout: 2 * 60 * 60_000,
21
21
 
22
22
  maxWorkers: 50,
23
23
  reporters: [
@@ -22,14 +22,18 @@ const lib_1 = require("../../lib");
22
22
  await fixture.cdk(['import', fullStackName], {
23
23
  interact: [
24
24
  {
25
- prompt: /\(empty to skip\)/,
25
+ prompt: /Topic1.*\(empty to skip\):/,
26
26
  input: topic1Arn,
27
27
  },
28
28
  {
29
- prompt: /\(empty to skip\)/,
29
+ prompt: /Topic2.*\(empty to skip\):/,
30
30
  input: topic2Arn,
31
31
  }
32
- ]
32
+ ],
33
+ modEnv: {
34
+ // disable coloring because it messes up prompt matching.
35
+ FORCE_COLOR: '0'
36
+ }
33
37
  });
34
38
  // assert the stack now has the two topics
35
39
  const stackResources = await fixture.aws.cloudFormation.send(new client_cloudformation_1.DescribeStackResourcesCommand({ StackName: fullStackName }));
@@ -43,4 +47,4 @@ const lib_1 = require("../../lib");
43
47
  await fixture.aws.sns.send(new client_sns_1.DeleteTopicCommand({ TopicArn: topic2Arn }));
44
48
  }
45
49
  }));
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWltcG9ydC1pbnRlcmFjdGl2ZS5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZGstaW1wb3J0LWludGVyYWN0aXZlLmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDBFQUErRTtBQUMvRSxvREFBNkU7QUFDN0UsbUNBQTBEO0FBRTFELElBQUEsZUFBUyxFQUFDLGdEQUFnRCxFQUFFLElBQUEsd0JBQWtCLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFOztJQUUvRixNQUFNLFNBQVMsR0FBRyxDQUFDLFNBQWlCLEVBQUUsRUFBRSxDQUFDLEdBQUcsU0FBUyxJQUFJLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNoRixNQUFNLFFBQVEsR0FBRyxLQUFLLEVBQUUsSUFBWSxFQUFFLEVBQUUsQ0FBQyxlQUFlLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFLLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQTtJQUVwSCxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkMsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRXZDLE1BQU0sU0FBUyxHQUFHLE1BQU0sUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzdDLE1BQU0sU0FBUyxHQUFHLE1BQU0sUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRTdDLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDNUMsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSwrQkFBa0IsQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDeEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUM1QyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLCtCQUFrQixDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUV4RSxJQUFJLENBQUM7UUFFSCxNQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQztRQUNuQyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXZELE9BQU8sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFDMUQsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxFQUFFO1lBQzNDLFFBQVEsRUFBRTtnQkFDUjtvQkFDRSxNQUFNLEVBQUUsbUJBQW1CO29CQUMzQixLQUFLLEVBQUUsU0FBUztpQkFDakI7Z0JBQ0Q7b0JBQ0UsTUFBTSxFQUFFLG1CQUFtQjtvQkFDM0IsS0FBSyxFQUFFLFNBQVM7aUJBQ2pCO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFFSCwwQ0FBMEM7UUFDMUMsTUFBTSxjQUFjLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxxREFBNkIsQ0FBQyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDN0gsTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBQSxNQUFBLGNBQWMsQ0FBQyxjQUFjLDBDQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLEtBQUssaUJBQWlCLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLG1DQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXRKLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBRWpFLENBQUM7WUFBUyxDQUFDO1FBQ1QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUM1QyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLCtCQUFrQixDQUFDLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUMzRSxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksK0JBQWtCLENBQUMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQzdFLENBQUM7QUFFSCxDQUFDLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVzY3JpYmVTdGFja1Jlc291cmNlc0NvbW1hbmQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHsgQ3JlYXRlVG9waWNDb21tYW5kLCBEZWxldGVUb3BpY0NvbW1hbmQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtc25zJztcbmltcG9ydCB7IGludGVnVGVzdCwgd2l0aERlZmF1bHRGaXh0dXJlIH0gZnJvbSAnLi4vLi4vbGliJztcblxuaW50ZWdUZXN0KCdjZGsgaW1wb3J0IHByb21wdHMgdGhlIHVzZXIgZm9yIHNucyB0b3BpYyBhcm5zJywgd2l0aERlZmF1bHRGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG5cbiAgY29uc3QgdG9waWNOYW1lID0gKGxvZ2ljYWxJZDogc3RyaW5nKSA9PiBgJHtsb2dpY2FsSWR9LSR7Zml4dHVyZS5yYW5kb21TdHJpbmd9YDtcbiAgY29uc3QgdG9waWNBcm4gPSBhc3luYyAobmFtZTogc3RyaW5nKSA9PiBgYXJuOmF3czpzbnM6JHtmaXh0dXJlLmF3cy5yZWdpb259OiR7IGF3YWl0IGZpeHR1cmUuYXdzLmFjY291bnQoKX06JHtuYW1lfWBcblxuICBjb25zdCB0b3BpYzFOYW1lID0gdG9waWNOYW1lKCdUb3BpYzEnKTtcbiAgY29uc3QgdG9waWMyTmFtZSA9IHRvcGljTmFtZSgnVG9waWMyJyk7XG5cbiAgY29uc3QgdG9waWMxQXJuID0gYXdhaXQgdG9waWNBcm4odG9waWMxTmFtZSk7XG4gIGNvbnN0IHRvcGljMkFybiA9IGF3YWl0IHRvcGljQXJuKHRvcGljMk5hbWUpO1xuXG4gIGZpeHR1cmUubG9nKGBDcmVhdGluZyB0b3BpYyAke3RvcGljMU5hbWV9YCk7XG4gIGF3YWl0IGZpeHR1cmUuYXdzLnNucy5zZW5kKG5ldyBDcmVhdGVUb3BpY0NvbW1hbmQoeyBOYW1lOiB0b3BpYzFOYW1lIH0pKVxuICBmaXh0dXJlLmxvZyhgQ3JlYXRpbmcgdG9waWMgJHt0b3BpYzJOYW1lfWApO1xuICBhd2FpdCBmaXh0dXJlLmF3cy5zbnMuc2VuZChuZXcgQ3JlYXRlVG9waWNDb21tYW5kKHsgTmFtZTogdG9waWMyTmFtZSB9KSlcblxuICB0cnkge1xuXG4gICAgY29uc3Qgc3RhY2tOYW1lID0gJ3R3by1zbnMtdG9waWNzJztcbiAgICBjb25zdCBmdWxsU3RhY2tOYW1lID0gZml4dHVyZS5mdWxsU3RhY2tOYW1lKHN0YWNrTmFtZSk7XG5cbiAgICBmaXh0dXJlLmxvZyhgSW1wb3J0aW5nIHRvcGljcyB0byBzdGFjayAke2Z1bGxTdGFja05hbWV9YCk7XG4gICAgYXdhaXQgZml4dHVyZS5jZGsoWydpbXBvcnQnLCBmdWxsU3RhY2tOYW1lXSwge1xuICAgICAgaW50ZXJhY3Q6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb21wdDogL1xcKGVtcHR5IHRvIHNraXBcXCkvLFxuICAgICAgICAgIGlucHV0OiB0b3BpYzFBcm4sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm9tcHQ6IC9cXChlbXB0eSB0byBza2lwXFwpLyxcbiAgICAgICAgICBpbnB1dDogdG9waWMyQXJuLFxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSk7XG5cbiAgICAvLyBhc3NlcnQgdGhlIHN0YWNrIG5vdyBoYXMgdGhlIHR3byB0b3BpY3NcbiAgICBjb25zdCBzdGFja1Jlc291cmNlcyA9IGF3YWl0IGZpeHR1cmUuYXdzLmNsb3VkRm9ybWF0aW9uLnNlbmQobmV3IERlc2NyaWJlU3RhY2tSZXNvdXJjZXNDb21tYW5kKHsgU3RhY2tOYW1lOiBmdWxsU3RhY2tOYW1lIH0pKVxuICAgIGNvbnN0IHN0YWNrVG9waWNBcm5zID0gbmV3IFNldChzdGFja1Jlc291cmNlcy5TdGFja1Jlc291cmNlcz8uZmlsdGVyKHIgPT4gci5SZXNvdXJjZVR5cGUgPT09ICdBV1M6OlNOUzo6VG9waWMnKS5tYXAociA9PiByLlBoeXNpY2FsUmVzb3VyY2VJZCkgPz8gW10pO1xuXG4gICAgZXhwZWN0KHN0YWNrVG9waWNBcm5zKS50b0VxdWFsKG5ldyBTZXQoW3RvcGljMUFybiwgdG9waWMyQXJuXSkpXG5cbiAgfSBmaW5hbGx5IHtcbiAgICBmaXh0dXJlLmxvZyhgRGVsZXRpbmcgdG9waWMgJHt0b3BpYzFOYW1lfWApO1xuICAgIGF3YWl0IGZpeHR1cmUuYXdzLnNucy5zZW5kKG5ldyBEZWxldGVUb3BpY0NvbW1hbmQoeyBUb3BpY0FybjogdG9waWMxQXJuIH0pKVxuICAgIGZpeHR1cmUubG9nKGBEZWxldGluZyB0b3BpYyAke3RvcGljMk5hbWV9YCk7XG4gICAgYXdhaXQgZml4dHVyZS5hd3Muc25zLnNlbmQobmV3IERlbGV0ZVRvcGljQ29tbWFuZCh7IFRvcGljQXJuOiB0b3BpYzJBcm4gfSkpXG4gIH1cblxufSkpOyJdfQ==
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWltcG9ydC1pbnRlcmFjdGl2ZS5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZGstaW1wb3J0LWludGVyYWN0aXZlLmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDBFQUErRTtBQUMvRSxvREFBNkU7QUFDN0UsbUNBQTBEO0FBRTFELElBQUEsZUFBUyxFQUFDLGdEQUFnRCxFQUFFLElBQUEsd0JBQWtCLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFOztJQUUvRixNQUFNLFNBQVMsR0FBRyxDQUFDLFNBQWlCLEVBQUUsRUFBRSxDQUFDLEdBQUcsU0FBUyxJQUFJLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNoRixNQUFNLFFBQVEsR0FBRyxLQUFLLEVBQUUsSUFBWSxFQUFFLEVBQUUsQ0FBQyxlQUFlLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFLLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQTtJQUVwSCxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkMsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRXZDLE1BQU0sU0FBUyxHQUFHLE1BQU0sUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzdDLE1BQU0sU0FBUyxHQUFHLE1BQU0sUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRTdDLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDNUMsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSwrQkFBa0IsQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDeEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUM1QyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLCtCQUFrQixDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUV4RSxJQUFJLENBQUM7UUFFSCxNQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQztRQUNuQyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXZELE9BQU8sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFDMUQsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxFQUFFO1lBQzNDLFFBQVEsRUFBRTtnQkFDUjtvQkFDRSxNQUFNLEVBQUUsNEJBQTRCO29CQUNwQyxLQUFLLEVBQUUsU0FBUztpQkFDakI7Z0JBQ0Q7b0JBQ0UsTUFBTSxFQUFFLDRCQUE0QjtvQkFDcEMsS0FBSyxFQUFFLFNBQVM7aUJBQ2pCO2FBQ0Y7WUFDRCxNQUFNLEVBQUU7Z0JBQ04seURBQXlEO2dCQUN6RCxXQUFXLEVBQUUsR0FBRzthQUNqQjtTQUNGLENBQUMsQ0FBQztRQUVILDBDQUEwQztRQUMxQyxNQUFNLGNBQWMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLHFEQUE2QixDQUFDLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUM3SCxNQUFNLGNBQWMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFBLE1BQUEsY0FBYyxDQUFDLGNBQWMsMENBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksS0FBSyxpQkFBaUIsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsbUNBQUksRUFBRSxDQUFDLENBQUM7UUFFdEosTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFFakUsQ0FBQztZQUFTLENBQUM7UUFDVCxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksK0JBQWtCLENBQUMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQzNFLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDNUMsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSwrQkFBa0IsQ0FBQyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDN0UsQ0FBQztBQUVILENBQUMsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXNjcmliZVN0YWNrUmVzb3VyY2VzQ29tbWFuZCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgeyBDcmVhdGVUb3BpY0NvbW1hbmQsIERlbGV0ZVRvcGljQ29tbWFuZCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1zbnMnO1xuaW1wb3J0IHsgaW50ZWdUZXN0LCB3aXRoRGVmYXVsdEZpeHR1cmUgfSBmcm9tICcuLi8uLi9saWInO1xuXG5pbnRlZ1Rlc3QoJ2NkayBpbXBvcnQgcHJvbXB0cyB0aGUgdXNlciBmb3Igc25zIHRvcGljIGFybnMnLCB3aXRoRGVmYXVsdEZpeHR1cmUoYXN5bmMgKGZpeHR1cmUpID0+IHtcblxuICBjb25zdCB0b3BpY05hbWUgPSAobG9naWNhbElkOiBzdHJpbmcpID0+IGAke2xvZ2ljYWxJZH0tJHtmaXh0dXJlLnJhbmRvbVN0cmluZ31gO1xuICBjb25zdCB0b3BpY0FybiA9IGFzeW5jIChuYW1lOiBzdHJpbmcpID0+IGBhcm46YXdzOnNuczoke2ZpeHR1cmUuYXdzLnJlZ2lvbn06JHsgYXdhaXQgZml4dHVyZS5hd3MuYWNjb3VudCgpfToke25hbWV9YFxuXG4gIGNvbnN0IHRvcGljMU5hbWUgPSB0b3BpY05hbWUoJ1RvcGljMScpO1xuICBjb25zdCB0b3BpYzJOYW1lID0gdG9waWNOYW1lKCdUb3BpYzInKTtcblxuICBjb25zdCB0b3BpYzFBcm4gPSBhd2FpdCB0b3BpY0Fybih0b3BpYzFOYW1lKTtcbiAgY29uc3QgdG9waWMyQXJuID0gYXdhaXQgdG9waWNBcm4odG9waWMyTmFtZSk7XG5cbiAgZml4dHVyZS5sb2coYENyZWF0aW5nIHRvcGljICR7dG9waWMxTmFtZX1gKTtcbiAgYXdhaXQgZml4dHVyZS5hd3Muc25zLnNlbmQobmV3IENyZWF0ZVRvcGljQ29tbWFuZCh7IE5hbWU6IHRvcGljMU5hbWUgfSkpXG4gIGZpeHR1cmUubG9nKGBDcmVhdGluZyB0b3BpYyAke3RvcGljMk5hbWV9YCk7XG4gIGF3YWl0IGZpeHR1cmUuYXdzLnNucy5zZW5kKG5ldyBDcmVhdGVUb3BpY0NvbW1hbmQoeyBOYW1lOiB0b3BpYzJOYW1lIH0pKVxuXG4gIHRyeSB7XG5cbiAgICBjb25zdCBzdGFja05hbWUgPSAndHdvLXNucy10b3BpY3MnO1xuICAgIGNvbnN0IGZ1bGxTdGFja05hbWUgPSBmaXh0dXJlLmZ1bGxTdGFja05hbWUoc3RhY2tOYW1lKTtcblxuICAgIGZpeHR1cmUubG9nKGBJbXBvcnRpbmcgdG9waWNzIHRvIHN0YWNrICR7ZnVsbFN0YWNrTmFtZX1gKTtcbiAgICBhd2FpdCBmaXh0dXJlLmNkayhbJ2ltcG9ydCcsIGZ1bGxTdGFja05hbWVdLCB7XG4gICAgICBpbnRlcmFjdDogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvbXB0OiAvVG9waWMxLipcXChlbXB0eSB0byBza2lwXFwpOi8sXG4gICAgICAgICAgaW5wdXQ6IHRvcGljMUFybixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb21wdDogL1RvcGljMi4qXFwoZW1wdHkgdG8gc2tpcFxcKTovLFxuICAgICAgICAgIGlucHV0OiB0b3BpYzJBcm4sXG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBtb2RFbnY6IHtcbiAgICAgICAgLy8gZGlzYWJsZSBjb2xvcmluZyBiZWNhdXNlIGl0IG1lc3NlcyB1cCBwcm9tcHQgbWF0Y2hpbmcuXG4gICAgICAgIEZPUkNFX0NPTE9SOiAnMCdcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIGFzc2VydCB0aGUgc3RhY2sgbm93IGhhcyB0aGUgdHdvIHRvcGljc1xuICAgIGNvbnN0IHN0YWNrUmVzb3VyY2VzID0gYXdhaXQgZml4dHVyZS5hd3MuY2xvdWRGb3JtYXRpb24uc2VuZChuZXcgRGVzY3JpYmVTdGFja1Jlc291cmNlc0NvbW1hbmQoeyBTdGFja05hbWU6IGZ1bGxTdGFja05hbWUgfSkpXG4gICAgY29uc3Qgc3RhY2tUb3BpY0FybnMgPSBuZXcgU2V0KHN0YWNrUmVzb3VyY2VzLlN0YWNrUmVzb3VyY2VzPy5maWx0ZXIociA9PiByLlJlc291cmNlVHlwZSA9PT0gJ0FXUzo6U05TOjpUb3BpYycpLm1hcChyID0+IHIuUGh5c2ljYWxSZXNvdXJjZUlkKSA/PyBbXSk7XG5cbiAgICBleHBlY3Qoc3RhY2tUb3BpY0FybnMpLnRvRXF1YWwobmV3IFNldChbdG9waWMxQXJuLCB0b3BpYzJBcm5dKSlcblxuICB9IGZpbmFsbHkge1xuICAgIGZpeHR1cmUubG9nKGBEZWxldGluZyB0b3BpYyAke3RvcGljMU5hbWV9YCk7XG4gICAgYXdhaXQgZml4dHVyZS5hd3Muc25zLnNlbmQobmV3IERlbGV0ZVRvcGljQ29tbWFuZCh7IFRvcGljQXJuOiB0b3BpYzFBcm4gfSkpXG4gICAgZml4dHVyZS5sb2coYERlbGV0aW5nIHRvcGljICR7dG9waWMyTmFtZX1gKTtcbiAgICBhd2FpdCBmaXh0dXJlLmF3cy5zbnMuc2VuZChuZXcgRGVsZXRlVG9waWNDb21tYW5kKHsgVG9waWNBcm46IHRvcGljMkFybiB9KSlcbiAgfVxuXG59KSk7Il19
@@ -27,14 +27,18 @@ integTest('cdk import prompts the user for sns topic arns', withDefaultFixture(a
27
27
  await fixture.cdk(['import', fullStackName], {
28
28
  interact: [
29
29
  {
30
- prompt: /\(empty to skip\)/,
30
+ prompt: /Topic1.*\(empty to skip\):/,
31
31
  input: topic1Arn,
32
32
  },
33
33
  {
34
- prompt: /\(empty to skip\)/,
34
+ prompt: /Topic2.*\(empty to skip\):/,
35
35
  input: topic2Arn,
36
36
  }
37
- ]
37
+ ],
38
+ modEnv: {
39
+ // disable coloring because it messes up prompt matching.
40
+ FORCE_COLOR: '0'
41
+ }
38
42
  });
39
43
 
40
44
  // assert the stack now has the two topics
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const testcase_1 = require("./testcase");
4
4
  const lib_1 = require("../../../lib");
5
5
  const language = 'csharp';
6
+ jest.setTimeout(2 * 60 * 60000); // Includes the time to acquire locks, worst-case single-threaded runtime
6
7
  (0, lib_1.integTest)(`cdk migrate --from-stack creates deployable ${language} app`, (0, lib_1.withExtendedTimeoutFixture)(async (fixture) => {
7
8
  await (0, testcase_1.fromStackCreatesDeployableApp)(fixture, language);
8
9
  }));
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLW1pZ3JhdGUtLWZyb20tc3RhY2stY3JlYXRlcy1kZXBsb3lhYmxlLWFwcC1jc2hhcnAuaW50ZWd0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2RrLW1pZ3JhdGUtLWZyb20tc3RhY2stY3JlYXRlcy1kZXBsb3lhYmxlLWFwcC1jc2hhcnAuaW50ZWd0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEseUNBQTJEO0FBQzNELHNDQUFxRTtBQUVyRSxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUM7QUFFMUIsSUFBQSxlQUFTLEVBQ1AsK0NBQStDLFFBQVEsTUFBTSxFQUM3RCxJQUFBLGdDQUEwQixFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUMzQyxNQUFNLElBQUEsd0NBQTZCLEVBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ3pELENBQUMsQ0FBQyxDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmcm9tU3RhY2tDcmVhdGVzRGVwbG95YWJsZUFwcCB9IGZyb20gXCIuL3Rlc3RjYXNlXCI7XG5pbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhFeHRlbmRlZFRpbWVvdXRGaXh0dXJlIH0gZnJvbSBcIi4uLy4uLy4uL2xpYlwiO1xuXG5jb25zdCBsYW5ndWFnZSA9ICdjc2hhcnAnO1xuXG5pbnRlZ1Rlc3QoXG4gIGBjZGsgbWlncmF0ZSAtLWZyb20tc3RhY2sgY3JlYXRlcyBkZXBsb3lhYmxlICR7bGFuZ3VhZ2V9IGFwcGAsXG4gIHdpdGhFeHRlbmRlZFRpbWVvdXRGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gICAgYXdhaXQgZnJvbVN0YWNrQ3JlYXRlc0RlcGxveWFibGVBcHAoZml4dHVyZSwgbGFuZ3VhZ2UpO1xuICB9KSxcbik7XG4iXX0=
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLW1pZ3JhdGUtLWZyb20tc3RhY2stY3JlYXRlcy1kZXBsb3lhYmxlLWFwcC1jc2hhcnAuaW50ZWd0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2RrLW1pZ3JhdGUtLWZyb20tc3RhY2stY3JlYXRlcy1kZXBsb3lhYmxlLWFwcC1jc2hhcnAuaW50ZWd0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEseUNBQTJEO0FBQzNELHNDQUFxRTtBQUVyRSxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUM7QUFFMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQU0sQ0FBQyxDQUFDLENBQUMseUVBQXlFO0FBRTNHLElBQUEsZUFBUyxFQUNQLCtDQUErQyxRQUFRLE1BQU0sRUFDN0QsSUFBQSxnQ0FBMEIsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDM0MsTUFBTSxJQUFBLHdDQUE2QixFQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztBQUN6RCxDQUFDLENBQUMsQ0FDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZnJvbVN0YWNrQ3JlYXRlc0RlcGxveWFibGVBcHAgfSBmcm9tIFwiLi90ZXN0Y2FzZVwiO1xuaW1wb3J0IHsgaW50ZWdUZXN0LCB3aXRoRXh0ZW5kZWRUaW1lb3V0Rml4dHVyZSB9IGZyb20gXCIuLi8uLi8uLi9saWJcIjtcblxuY29uc3QgbGFuZ3VhZ2UgPSAnY3NoYXJwJztcblxuamVzdC5zZXRUaW1lb3V0KDIgKiA2MCAqIDYwXzAwMCk7IC8vIEluY2x1ZGVzIHRoZSB0aW1lIHRvIGFjcXVpcmUgbG9ja3MsIHdvcnN0LWNhc2Ugc2luZ2xlLXRocmVhZGVkIHJ1bnRpbWVcblxuaW50ZWdUZXN0KFxuICBgY2RrIG1pZ3JhdGUgLS1mcm9tLXN0YWNrIGNyZWF0ZXMgZGVwbG95YWJsZSAke2xhbmd1YWdlfSBhcHBgLFxuICB3aXRoRXh0ZW5kZWRUaW1lb3V0Rml4dHVyZShhc3luYyAoZml4dHVyZSkgPT4ge1xuICAgIGF3YWl0IGZyb21TdGFja0NyZWF0ZXNEZXBsb3lhYmxlQXBwKGZpeHR1cmUsIGxhbmd1YWdlKTtcbiAgfSksXG4pO1xuIl19
@@ -3,6 +3,8 @@ import { integTest, withExtendedTimeoutFixture } from "../../../lib";
3
3
 
4
4
  const language = 'csharp';
5
5
 
6
+ jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime
7
+
6
8
  integTest(
7
9
  `cdk migrate --from-stack creates deployable ${language} app`,
8
10
  withExtendedTimeoutFixture(async (fixture) => {
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const testcase_1 = require("./testcase");
4
4
  const lib_1 = require("../../../lib");
5
5
  const language = 'java';
6
+ jest.setTimeout(2 * 60 * 60000); // Includes the time to acquire locks, worst-case single-threaded runtime
6
7
  (0, lib_1.integTest)(`cdk migrate --from-stack creates deployable ${language} app`, (0, lib_1.withExtendedTimeoutFixture)(async (fixture) => {
7
8
  await (0, testcase_1.fromStackCreatesDeployableApp)(fixture, language);
8
9
  }));
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLW1pZ3JhdGUtLWZyb20tc3RhY2stY3JlYXRlcy1kZXBsb3lhYmxlLWFwcC1qYXZhLmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay1taWdyYXRlLS1mcm9tLXN0YWNrLWNyZWF0ZXMtZGVwbG95YWJsZS1hcHAtamF2YS5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5Q0FBMkQ7QUFDM0Qsc0NBQXFFO0FBRXJFLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQztBQUV4QixJQUFBLGVBQVMsRUFDUCwrQ0FBK0MsUUFBUSxNQUFNLEVBQzdELElBQUEsZ0NBQTBCLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO0lBQzNDLE1BQU0sSUFBQSx3Q0FBNkIsRUFBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDekQsQ0FBQyxDQUFDLENBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZyb21TdGFja0NyZWF0ZXNEZXBsb3lhYmxlQXBwIH0gZnJvbSBcIi4vdGVzdGNhc2VcIjtcbmltcG9ydCB7IGludGVnVGVzdCwgd2l0aEV4dGVuZGVkVGltZW91dEZpeHR1cmUgfSBmcm9tIFwiLi4vLi4vLi4vbGliXCI7XG5cbmNvbnN0IGxhbmd1YWdlID0gJ2phdmEnO1xuXG5pbnRlZ1Rlc3QoXG4gIGBjZGsgbWlncmF0ZSAtLWZyb20tc3RhY2sgY3JlYXRlcyBkZXBsb3lhYmxlICR7bGFuZ3VhZ2V9IGFwcGAsXG4gIHdpdGhFeHRlbmRlZFRpbWVvdXRGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gICAgYXdhaXQgZnJvbVN0YWNrQ3JlYXRlc0RlcGxveWFibGVBcHAoZml4dHVyZSwgbGFuZ3VhZ2UpO1xuICB9KSxcbik7XG4iXX0=
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLW1pZ3JhdGUtLWZyb20tc3RhY2stY3JlYXRlcy1kZXBsb3lhYmxlLWFwcC1qYXZhLmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay1taWdyYXRlLS1mcm9tLXN0YWNrLWNyZWF0ZXMtZGVwbG95YWJsZS1hcHAtamF2YS5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5Q0FBMkQ7QUFDM0Qsc0NBQXFFO0FBRXJFLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQztBQUV4QixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBTSxDQUFDLENBQUMsQ0FBQyx5RUFBeUU7QUFHM0csSUFBQSxlQUFTLEVBQ1AsK0NBQStDLFFBQVEsTUFBTSxFQUM3RCxJQUFBLGdDQUEwQixFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUMzQyxNQUFNLElBQUEsd0NBQTZCLEVBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ3pELENBQUMsQ0FBQyxDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmcm9tU3RhY2tDcmVhdGVzRGVwbG95YWJsZUFwcCB9IGZyb20gXCIuL3Rlc3RjYXNlXCI7XG5pbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhFeHRlbmRlZFRpbWVvdXRGaXh0dXJlIH0gZnJvbSBcIi4uLy4uLy4uL2xpYlwiO1xuXG5jb25zdCBsYW5ndWFnZSA9ICdqYXZhJztcblxuamVzdC5zZXRUaW1lb3V0KDIgKiA2MCAqIDYwXzAwMCk7IC8vIEluY2x1ZGVzIHRoZSB0aW1lIHRvIGFjcXVpcmUgbG9ja3MsIHdvcnN0LWNhc2Ugc2luZ2xlLXRocmVhZGVkIHJ1bnRpbWVcblxuXG5pbnRlZ1Rlc3QoXG4gIGBjZGsgbWlncmF0ZSAtLWZyb20tc3RhY2sgY3JlYXRlcyBkZXBsb3lhYmxlICR7bGFuZ3VhZ2V9IGFwcGAsXG4gIHdpdGhFeHRlbmRlZFRpbWVvdXRGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gICAgYXdhaXQgZnJvbVN0YWNrQ3JlYXRlc0RlcGxveWFibGVBcHAoZml4dHVyZSwgbGFuZ3VhZ2UpO1xuICB9KSxcbik7XG4iXX0=
@@ -3,6 +3,9 @@ import { integTest, withExtendedTimeoutFixture } from "../../../lib";
3
3
 
4
4
  const language = 'java';
5
5
 
6
+ jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime
7
+
8
+
6
9
  integTest(
7
10
  `cdk migrate --from-stack creates deployable ${language} app`,
8
11
  withExtendedTimeoutFixture(async (fixture) => {
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const testcase_1 = require("./testcase");
4
4
  const lib_1 = require("../../../lib");
5
5
  const language = 'python';
6
+ jest.setTimeout(2 * 60 * 60000); // Includes the time to acquire locks, worst-case single-threaded runtime
6
7
  (0, lib_1.integTest)(`cdk migrate --from-stack creates deployable ${language} app`, (0, lib_1.withExtendedTimeoutFixture)(async (fixture) => {
7
8
  await (0, testcase_1.fromStackCreatesDeployableApp)(fixture, language);
8
9
  }));
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLW1pZ3JhdGUtLWZyb20tc3RhY2stY3JlYXRlcy1kZXBsb3lhYmxlLWFwcC1weXRob24uaW50ZWd0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2RrLW1pZ3JhdGUtLWZyb20tc3RhY2stY3JlYXRlcy1kZXBsb3lhYmxlLWFwcC1weXRob24uaW50ZWd0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEseUNBQTJEO0FBQzNELHNDQUFxRTtBQUVyRSxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUM7QUFFMUIsSUFBQSxlQUFTLEVBQ1AsK0NBQStDLFFBQVEsTUFBTSxFQUM3RCxJQUFBLGdDQUEwQixFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUMzQyxNQUFNLElBQUEsd0NBQTZCLEVBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ3pELENBQUMsQ0FBQyxDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmcm9tU3RhY2tDcmVhdGVzRGVwbG95YWJsZUFwcCB9IGZyb20gXCIuL3Rlc3RjYXNlXCI7XG5pbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhFeHRlbmRlZFRpbWVvdXRGaXh0dXJlIH0gZnJvbSBcIi4uLy4uLy4uL2xpYlwiO1xuXG5jb25zdCBsYW5ndWFnZSA9ICdweXRob24nO1xuXG5pbnRlZ1Rlc3QoXG4gIGBjZGsgbWlncmF0ZSAtLWZyb20tc3RhY2sgY3JlYXRlcyBkZXBsb3lhYmxlICR7bGFuZ3VhZ2V9IGFwcGAsXG4gIHdpdGhFeHRlbmRlZFRpbWVvdXRGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gICAgYXdhaXQgZnJvbVN0YWNrQ3JlYXRlc0RlcGxveWFibGVBcHAoZml4dHVyZSwgbGFuZ3VhZ2UpO1xuICB9KSxcbik7XG4iXX0=
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLW1pZ3JhdGUtLWZyb20tc3RhY2stY3JlYXRlcy1kZXBsb3lhYmxlLWFwcC1weXRob24uaW50ZWd0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2RrLW1pZ3JhdGUtLWZyb20tc3RhY2stY3JlYXRlcy1kZXBsb3lhYmxlLWFwcC1weXRob24uaW50ZWd0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEseUNBQTJEO0FBQzNELHNDQUFxRTtBQUVyRSxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUM7QUFFMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQU0sQ0FBQyxDQUFDLENBQUMseUVBQXlFO0FBRTNHLElBQUEsZUFBUyxFQUNQLCtDQUErQyxRQUFRLE1BQU0sRUFDN0QsSUFBQSxnQ0FBMEIsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDM0MsTUFBTSxJQUFBLHdDQUE2QixFQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztBQUN6RCxDQUFDLENBQUMsQ0FDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZnJvbVN0YWNrQ3JlYXRlc0RlcGxveWFibGVBcHAgfSBmcm9tIFwiLi90ZXN0Y2FzZVwiO1xuaW1wb3J0IHsgaW50ZWdUZXN0LCB3aXRoRXh0ZW5kZWRUaW1lb3V0Rml4dHVyZSB9IGZyb20gXCIuLi8uLi8uLi9saWJcIjtcblxuY29uc3QgbGFuZ3VhZ2UgPSAncHl0aG9uJztcblxuamVzdC5zZXRUaW1lb3V0KDIgKiA2MCAqIDYwXzAwMCk7IC8vIEluY2x1ZGVzIHRoZSB0aW1lIHRvIGFjcXVpcmUgbG9ja3MsIHdvcnN0LWNhc2Ugc2luZ2xlLXRocmVhZGVkIHJ1bnRpbWVcblxuaW50ZWdUZXN0KFxuICBgY2RrIG1pZ3JhdGUgLS1mcm9tLXN0YWNrIGNyZWF0ZXMgZGVwbG95YWJsZSAke2xhbmd1YWdlfSBhcHBgLFxuICB3aXRoRXh0ZW5kZWRUaW1lb3V0Rml4dHVyZShhc3luYyAoZml4dHVyZSkgPT4ge1xuICAgIGF3YWl0IGZyb21TdGFja0NyZWF0ZXNEZXBsb3lhYmxlQXBwKGZpeHR1cmUsIGxhbmd1YWdlKTtcbiAgfSksXG4pO1xuIl19
@@ -3,6 +3,8 @@ import { integTest, withExtendedTimeoutFixture } from "../../../lib";
3
3
 
4
4
  const language = 'python';
5
5
 
6
+ jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime
7
+
6
8
  integTest(
7
9
  `cdk migrate --from-stack creates deployable ${language} app`,
8
10
  withExtendedTimeoutFixture(async (fixture) => {
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const testcase_1 = require("./testcase");
4
4
  const lib_1 = require("../../../lib");
5
5
  const language = 'typescript';
6
+ jest.setTimeout(2 * 60 * 60000); // Includes the time to acquire locks, worst-case single-threaded runtime
6
7
  (0, lib_1.integTest)(`cdk migrate --from-stack creates deployable ${language} app`, (0, lib_1.withExtendedTimeoutFixture)(async (fixture) => {
7
8
  await (0, testcase_1.fromStackCreatesDeployableApp)(fixture, language);
8
9
  }));
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLW1pZ3JhdGUtLWZyb20tc3RhY2stY3JlYXRlcy1kZXBsb3lhYmxlLWFwcC10eXBlc2NyaXB0LmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay1taWdyYXRlLS1mcm9tLXN0YWNrLWNyZWF0ZXMtZGVwbG95YWJsZS1hcHAtdHlwZXNjcmlwdC5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5Q0FBMkQ7QUFDM0Qsc0NBQXFFO0FBRXJFLE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQztBQUU5QixJQUFBLGVBQVMsRUFDUCwrQ0FBK0MsUUFBUSxNQUFNLEVBQzdELElBQUEsZ0NBQTBCLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO0lBQzNDLE1BQU0sSUFBQSx3Q0FBNkIsRUFBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDekQsQ0FBQyxDQUFDLENBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZyb21TdGFja0NyZWF0ZXNEZXBsb3lhYmxlQXBwIH0gZnJvbSBcIi4vdGVzdGNhc2VcIjtcbmltcG9ydCB7IGludGVnVGVzdCwgd2l0aEV4dGVuZGVkVGltZW91dEZpeHR1cmUgfSBmcm9tIFwiLi4vLi4vLi4vbGliXCI7XG5cbmNvbnN0IGxhbmd1YWdlID0gJ3R5cGVzY3JpcHQnO1xuXG5pbnRlZ1Rlc3QoXG4gIGBjZGsgbWlncmF0ZSAtLWZyb20tc3RhY2sgY3JlYXRlcyBkZXBsb3lhYmxlICR7bGFuZ3VhZ2V9IGFwcGAsXG4gIHdpdGhFeHRlbmRlZFRpbWVvdXRGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gICAgYXdhaXQgZnJvbVN0YWNrQ3JlYXRlc0RlcGxveWFibGVBcHAoZml4dHVyZSwgbGFuZ3VhZ2UpO1xuICB9KSxcbik7XG4iXX0=
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLW1pZ3JhdGUtLWZyb20tc3RhY2stY3JlYXRlcy1kZXBsb3lhYmxlLWFwcC10eXBlc2NyaXB0LmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay1taWdyYXRlLS1mcm9tLXN0YWNrLWNyZWF0ZXMtZGVwbG95YWJsZS1hcHAtdHlwZXNjcmlwdC5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5Q0FBMkQ7QUFDM0Qsc0NBQXFFO0FBRXJFLE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQztBQUU5QixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBTSxDQUFDLENBQUMsQ0FBQyx5RUFBeUU7QUFFM0csSUFBQSxlQUFTLEVBQ1AsK0NBQStDLFFBQVEsTUFBTSxFQUM3RCxJQUFBLGdDQUEwQixFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUMzQyxNQUFNLElBQUEsd0NBQTZCLEVBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ3pELENBQUMsQ0FBQyxDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmcm9tU3RhY2tDcmVhdGVzRGVwbG95YWJsZUFwcCB9IGZyb20gXCIuL3Rlc3RjYXNlXCI7XG5pbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhFeHRlbmRlZFRpbWVvdXRGaXh0dXJlIH0gZnJvbSBcIi4uLy4uLy4uL2xpYlwiO1xuXG5jb25zdCBsYW5ndWFnZSA9ICd0eXBlc2NyaXB0JztcblxuamVzdC5zZXRUaW1lb3V0KDIgKiA2MCAqIDYwXzAwMCk7IC8vIEluY2x1ZGVzIHRoZSB0aW1lIHRvIGFjcXVpcmUgbG9ja3MsIHdvcnN0LWNhc2Ugc2luZ2xlLXRocmVhZGVkIHJ1bnRpbWVcblxuaW50ZWdUZXN0KFxuICBgY2RrIG1pZ3JhdGUgLS1mcm9tLXN0YWNrIGNyZWF0ZXMgZGVwbG95YWJsZSAke2xhbmd1YWdlfSBhcHBgLFxuICB3aXRoRXh0ZW5kZWRUaW1lb3V0Rml4dHVyZShhc3luYyAoZml4dHVyZSkgPT4ge1xuICAgIGF3YWl0IGZyb21TdGFja0NyZWF0ZXNEZXBsb3lhYmxlQXBwKGZpeHR1cmUsIGxhbmd1YWdlKTtcbiAgfSksXG4pO1xuIl19
@@ -3,6 +3,8 @@ import { integTest, withExtendedTimeoutFixture } from "../../../lib";
3
3
 
4
4
  const language = 'typescript';
5
5
 
6
+ jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime
7
+
6
8
  integTest(
7
9
  `cdk migrate --from-stack creates deployable ${language} app`,
8
10
  withExtendedTimeoutFixture(async (fixture) => {
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const testcase_1 = require("./testcase");
4
4
  const lib_1 = require("../../../lib");
5
5
  const language = 'csharp';
6
+ jest.setTimeout(2 * 60 * 60000); // Includes the time to acquire locks, worst-case single-threaded runtime
6
7
  (0, lib_1.integTest)(`cdk migrate ${language} deploys successfully`, (0, lib_1.withCDKMigrateFixture)(language, async (fixture) => {
7
8
  await (0, testcase_1.deploysSuccessfully)(fixture, language);
8
9
  }));
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLW1pZ3JhdGUtZGVwbG95cy1zdWNjZXNzZnVsbHktY3NoYXJwLmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay1taWdyYXRlLWRlcGxveXMtc3VjY2Vzc2Z1bGx5LWNzaGFycC5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5Q0FBaUQ7QUFDakQsc0NBQWdFO0FBRWhFLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUUxQixJQUFBLGVBQVMsRUFDUCxlQUFlLFFBQVEsdUJBQXVCLEVBQzlDLElBQUEsMkJBQXFCLEVBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUVoRCxNQUFNLElBQUEsOEJBQW1CLEVBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBRS9DLENBQUMsQ0FBQyxDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZXBsb3lzU3VjY2Vzc2Z1bGx5IH0gZnJvbSAnLi90ZXN0Y2FzZSc7XG5pbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhDREtNaWdyYXRlRml4dHVyZSB9IGZyb20gXCIuLi8uLi8uLi9saWJcIjtcblxuY29uc3QgbGFuZ3VhZ2UgPSAnY3NoYXJwJztcblxuaW50ZWdUZXN0KFxuICBgY2RrIG1pZ3JhdGUgJHtsYW5ndWFnZX0gZGVwbG95cyBzdWNjZXNzZnVsbHlgLFxuICB3aXRoQ0RLTWlncmF0ZUZpeHR1cmUobGFuZ3VhZ2UsIGFzeW5jIChmaXh0dXJlKSA9PiB7XG5cbiAgICBhd2FpdCBkZXBsb3lzU3VjY2Vzc2Z1bGx5KGZpeHR1cmUsIGxhbmd1YWdlKTtcblxuICB9KSxcbik7XG4iXX0=
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLW1pZ3JhdGUtZGVwbG95cy1zdWNjZXNzZnVsbHktY3NoYXJwLmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay1taWdyYXRlLWRlcGxveXMtc3VjY2Vzc2Z1bGx5LWNzaGFycC5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5Q0FBaUQ7QUFDakQsc0NBQWdFO0FBRWhFLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUUxQixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBTSxDQUFDLENBQUMsQ0FBQyx5RUFBeUU7QUFFM0csSUFBQSxlQUFTLEVBQ1AsZUFBZSxRQUFRLHVCQUF1QixFQUM5QyxJQUFBLDJCQUFxQixFQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFFaEQsTUFBTSxJQUFBLDhCQUFtQixFQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztBQUUvQyxDQUFDLENBQUMsQ0FDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVwbG95c1N1Y2Nlc3NmdWxseSB9IGZyb20gJy4vdGVzdGNhc2UnO1xuaW1wb3J0IHsgaW50ZWdUZXN0LCB3aXRoQ0RLTWlncmF0ZUZpeHR1cmUgfSBmcm9tIFwiLi4vLi4vLi4vbGliXCI7XG5cbmNvbnN0IGxhbmd1YWdlID0gJ2NzaGFycCc7XG5cbmplc3Quc2V0VGltZW91dCgyICogNjAgKiA2MF8wMDApOyAvLyBJbmNsdWRlcyB0aGUgdGltZSB0byBhY3F1aXJlIGxvY2tzLCB3b3JzdC1jYXNlIHNpbmdsZS10aHJlYWRlZCBydW50aW1lXG5cbmludGVnVGVzdChcbiAgYGNkayBtaWdyYXRlICR7bGFuZ3VhZ2V9IGRlcGxveXMgc3VjY2Vzc2Z1bGx5YCxcbiAgd2l0aENES01pZ3JhdGVGaXh0dXJlKGxhbmd1YWdlLCBhc3luYyAoZml4dHVyZSkgPT4ge1xuXG4gICAgYXdhaXQgZGVwbG95c1N1Y2Nlc3NmdWxseShmaXh0dXJlLCBsYW5ndWFnZSk7XG5cbiAgfSksXG4pO1xuIl19
@@ -3,6 +3,8 @@ import { integTest, withCDKMigrateFixture } from "../../../lib";
3
3
 
4
4
  const language = 'csharp';
5
5
 
6
+ jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime
7
+
6
8
  integTest(
7
9
  `cdk migrate ${language} deploys successfully`,
8
10
  withCDKMigrateFixture(language, async (fixture) => {
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const testcase_1 = require("./testcase");
4
4
  const lib_1 = require("../../../lib");
5
5
  const language = 'java';
6
+ jest.setTimeout(2 * 60 * 60000); // Includes the time to acquire locks, worst-case single-threaded runtime
6
7
  (0, lib_1.integTest)(`cdk migrate ${language} deploys successfully`, (0, lib_1.withCDKMigrateFixture)(language, async (fixture) => {
7
8
  await (0, testcase_1.deploysSuccessfully)(fixture, language);
8
9
  }));
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLW1pZ3JhdGUtZGVwbG95cy1zdWNjZXNzZnVsbHktamF2YS5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZGstbWlncmF0ZS1kZXBsb3lzLXN1Y2Nlc3NmdWxseS1qYXZhLmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlDQUFpRDtBQUNqRCxzQ0FBZ0U7QUFFaEUsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDO0FBRXhCLElBQUEsZUFBUyxFQUNQLGVBQWUsUUFBUSx1QkFBdUIsRUFDOUMsSUFBQSwyQkFBcUIsRUFBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO0lBRWhELE1BQU0sSUFBQSw4QkFBbUIsRUFBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFFL0MsQ0FBQyxDQUFDLENBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlcGxveXNTdWNjZXNzZnVsbHkgfSBmcm9tICcuL3Rlc3RjYXNlJztcbmltcG9ydCB7IGludGVnVGVzdCwgd2l0aENES01pZ3JhdGVGaXh0dXJlIH0gZnJvbSBcIi4uLy4uLy4uL2xpYlwiO1xuXG5jb25zdCBsYW5ndWFnZSA9ICdqYXZhJztcblxuaW50ZWdUZXN0KFxuICBgY2RrIG1pZ3JhdGUgJHtsYW5ndWFnZX0gZGVwbG95cyBzdWNjZXNzZnVsbHlgLFxuICB3aXRoQ0RLTWlncmF0ZUZpeHR1cmUobGFuZ3VhZ2UsIGFzeW5jIChmaXh0dXJlKSA9PiB7XG5cbiAgICBhd2FpdCBkZXBsb3lzU3VjY2Vzc2Z1bGx5KGZpeHR1cmUsIGxhbmd1YWdlKTtcblxuICB9KSxcbik7XG4iXX0=
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLW1pZ3JhdGUtZGVwbG95cy1zdWNjZXNzZnVsbHktamF2YS5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZGstbWlncmF0ZS1kZXBsb3lzLXN1Y2Nlc3NmdWxseS1qYXZhLmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlDQUFpRDtBQUNqRCxzQ0FBZ0U7QUFFaEUsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDO0FBRXhCLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxLQUFNLENBQUMsQ0FBQyxDQUFDLHlFQUF5RTtBQUUzRyxJQUFBLGVBQVMsRUFDUCxlQUFlLFFBQVEsdUJBQXVCLEVBQzlDLElBQUEsMkJBQXFCLEVBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUVoRCxNQUFNLElBQUEsOEJBQW1CLEVBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBRS9DLENBQUMsQ0FBQyxDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZXBsb3lzU3VjY2Vzc2Z1bGx5IH0gZnJvbSAnLi90ZXN0Y2FzZSc7XG5pbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhDREtNaWdyYXRlRml4dHVyZSB9IGZyb20gXCIuLi8uLi8uLi9saWJcIjtcblxuY29uc3QgbGFuZ3VhZ2UgPSAnamF2YSc7XG5cbmplc3Quc2V0VGltZW91dCgyICogNjAgKiA2MF8wMDApOyAvLyBJbmNsdWRlcyB0aGUgdGltZSB0byBhY3F1aXJlIGxvY2tzLCB3b3JzdC1jYXNlIHNpbmdsZS10aHJlYWRlZCBydW50aW1lXG5cbmludGVnVGVzdChcbiAgYGNkayBtaWdyYXRlICR7bGFuZ3VhZ2V9IGRlcGxveXMgc3VjY2Vzc2Z1bGx5YCxcbiAgd2l0aENES01pZ3JhdGVGaXh0dXJlKGxhbmd1YWdlLCBhc3luYyAoZml4dHVyZSkgPT4ge1xuXG4gICAgYXdhaXQgZGVwbG95c1N1Y2Nlc3NmdWxseShmaXh0dXJlLCBsYW5ndWFnZSk7XG5cbiAgfSksXG4pO1xuIl19
@@ -3,6 +3,8 @@ import { integTest, withCDKMigrateFixture } from "../../../lib";
3
3
 
4
4
  const language = 'java';
5
5
 
6
+ jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime
7
+
6
8
  integTest(
7
9
  `cdk migrate ${language} deploys successfully`,
8
10
  withCDKMigrateFixture(language, async (fixture) => {
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const testcase_1 = require("./testcase");
4
4
  const lib_1 = require("../../../lib");
5
5
  const language = 'python';
6
+ jest.setTimeout(2 * 60 * 60000); // Includes the time to acquire locks, worst-case single-threaded runtime
6
7
  (0, lib_1.integTest)(`cdk migrate ${language} deploys successfully`, (0, lib_1.withCDKMigrateFixture)(language, async (fixture) => {
7
8
  await (0, testcase_1.deploysSuccessfully)(fixture, language);
8
9
  }));
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLW1pZ3JhdGUtZGVwbG95cy1zdWNjZXNzZnVsbHktcHl0aG9uLmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay1taWdyYXRlLWRlcGxveXMtc3VjY2Vzc2Z1bGx5LXB5dGhvbi5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5Q0FBaUQ7QUFDakQsc0NBQWdFO0FBRWhFLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUUxQixJQUFBLGVBQVMsRUFDUCxlQUFlLFFBQVEsdUJBQXVCLEVBQzlDLElBQUEsMkJBQXFCLEVBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUVoRCxNQUFNLElBQUEsOEJBQW1CLEVBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBRS9DLENBQUMsQ0FBQyxDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZXBsb3lzU3VjY2Vzc2Z1bGx5IH0gZnJvbSAnLi90ZXN0Y2FzZSc7XG5pbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhDREtNaWdyYXRlRml4dHVyZSB9IGZyb20gXCIuLi8uLi8uLi9saWJcIjtcblxuY29uc3QgbGFuZ3VhZ2UgPSAncHl0aG9uJztcblxuaW50ZWdUZXN0KFxuICBgY2RrIG1pZ3JhdGUgJHtsYW5ndWFnZX0gZGVwbG95cyBzdWNjZXNzZnVsbHlgLFxuICB3aXRoQ0RLTWlncmF0ZUZpeHR1cmUobGFuZ3VhZ2UsIGFzeW5jIChmaXh0dXJlKSA9PiB7XG5cbiAgICBhd2FpdCBkZXBsb3lzU3VjY2Vzc2Z1bGx5KGZpeHR1cmUsIGxhbmd1YWdlKTtcblxuICB9KSxcbik7XG4iXX0=
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLW1pZ3JhdGUtZGVwbG95cy1zdWNjZXNzZnVsbHktcHl0aG9uLmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay1taWdyYXRlLWRlcGxveXMtc3VjY2Vzc2Z1bGx5LXB5dGhvbi5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5Q0FBaUQ7QUFDakQsc0NBQWdFO0FBRWhFLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUUxQixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBTSxDQUFDLENBQUMsQ0FBQyx5RUFBeUU7QUFFM0csSUFBQSxlQUFTLEVBQ1AsZUFBZSxRQUFRLHVCQUF1QixFQUM5QyxJQUFBLDJCQUFxQixFQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFFaEQsTUFBTSxJQUFBLDhCQUFtQixFQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztBQUUvQyxDQUFDLENBQUMsQ0FDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVwbG95c1N1Y2Nlc3NmdWxseSB9IGZyb20gJy4vdGVzdGNhc2UnO1xuaW1wb3J0IHsgaW50ZWdUZXN0LCB3aXRoQ0RLTWlncmF0ZUZpeHR1cmUgfSBmcm9tIFwiLi4vLi4vLi4vbGliXCI7XG5cbmNvbnN0IGxhbmd1YWdlID0gJ3B5dGhvbic7XG5cbmplc3Quc2V0VGltZW91dCgyICogNjAgKiA2MF8wMDApOyAvLyBJbmNsdWRlcyB0aGUgdGltZSB0byBhY3F1aXJlIGxvY2tzLCB3b3JzdC1jYXNlIHNpbmdsZS10aHJlYWRlZCBydW50aW1lXG5cbmludGVnVGVzdChcbiAgYGNkayBtaWdyYXRlICR7bGFuZ3VhZ2V9IGRlcGxveXMgc3VjY2Vzc2Z1bGx5YCxcbiAgd2l0aENES01pZ3JhdGVGaXh0dXJlKGxhbmd1YWdlLCBhc3luYyAoZml4dHVyZSkgPT4ge1xuXG4gICAgYXdhaXQgZGVwbG95c1N1Y2Nlc3NmdWxseShmaXh0dXJlLCBsYW5ndWFnZSk7XG5cbiAgfSksXG4pO1xuIl19
@@ -3,6 +3,8 @@ import { integTest, withCDKMigrateFixture } from "../../../lib";
3
3
 
4
4
  const language = 'python';
5
5
 
6
+ jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime
7
+
6
8
  integTest(
7
9
  `cdk migrate ${language} deploys successfully`,
8
10
  withCDKMigrateFixture(language, async (fixture) => {
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const testcase_1 = require("./testcase");
4
4
  const lib_1 = require("../../../lib");
5
5
  const language = 'typescript';
6
+ jest.setTimeout(2 * 60 * 60000); // Includes the time to acquire locks, worst-case single-threaded runtime
6
7
  (0, lib_1.integTest)(`cdk migrate ${language} deploys successfully`, (0, lib_1.withCDKMigrateFixture)(language, async (fixture) => {
7
8
  await (0, testcase_1.deploysSuccessfully)(fixture, language);
8
9
  }));
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLW1pZ3JhdGUtZGVwbG95cy1zdWNjZXNzZnVsbHktdHlwZXNjcmlwdC5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZGstbWlncmF0ZS1kZXBsb3lzLXN1Y2Nlc3NmdWxseS10eXBlc2NyaXB0LmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlDQUFpRDtBQUNqRCxzQ0FBZ0U7QUFFaEUsTUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDO0FBRTlCLElBQUEsZUFBUyxFQUNQLGVBQWUsUUFBUSx1QkFBdUIsRUFDOUMsSUFBQSwyQkFBcUIsRUFBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO0lBRWhELE1BQU0sSUFBQSw4QkFBbUIsRUFBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFFL0MsQ0FBQyxDQUFDLENBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlcGxveXNTdWNjZXNzZnVsbHkgfSBmcm9tICcuL3Rlc3RjYXNlJztcbmltcG9ydCB7IGludGVnVGVzdCwgd2l0aENES01pZ3JhdGVGaXh0dXJlIH0gZnJvbSBcIi4uLy4uLy4uL2xpYlwiO1xuXG5jb25zdCBsYW5ndWFnZSA9ICd0eXBlc2NyaXB0JztcblxuaW50ZWdUZXN0KFxuICBgY2RrIG1pZ3JhdGUgJHtsYW5ndWFnZX0gZGVwbG95cyBzdWNjZXNzZnVsbHlgLFxuICB3aXRoQ0RLTWlncmF0ZUZpeHR1cmUobGFuZ3VhZ2UsIGFzeW5jIChmaXh0dXJlKSA9PiB7XG5cbiAgICBhd2FpdCBkZXBsb3lzU3VjY2Vzc2Z1bGx5KGZpeHR1cmUsIGxhbmd1YWdlKTtcblxuICB9KSxcbik7XG4iXX0=
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLW1pZ3JhdGUtZGVwbG95cy1zdWNjZXNzZnVsbHktdHlwZXNjcmlwdC5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZGstbWlncmF0ZS1kZXBsb3lzLXN1Y2Nlc3NmdWxseS10eXBlc2NyaXB0LmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlDQUFpRDtBQUNqRCxzQ0FBZ0U7QUFFaEUsTUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDO0FBRTlCLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxLQUFNLENBQUMsQ0FBQyxDQUFDLHlFQUF5RTtBQUUzRyxJQUFBLGVBQVMsRUFDUCxlQUFlLFFBQVEsdUJBQXVCLEVBQzlDLElBQUEsMkJBQXFCLEVBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUVoRCxNQUFNLElBQUEsOEJBQW1CLEVBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBRS9DLENBQUMsQ0FBQyxDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZXBsb3lzU3VjY2Vzc2Z1bGx5IH0gZnJvbSAnLi90ZXN0Y2FzZSc7XG5pbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhDREtNaWdyYXRlRml4dHVyZSB9IGZyb20gXCIuLi8uLi8uLi9saWJcIjtcblxuY29uc3QgbGFuZ3VhZ2UgPSAndHlwZXNjcmlwdCc7XG5cbmplc3Quc2V0VGltZW91dCgyICogNjAgKiA2MF8wMDApOyAvLyBJbmNsdWRlcyB0aGUgdGltZSB0byBhY3F1aXJlIGxvY2tzLCB3b3JzdC1jYXNlIHNpbmdsZS10aHJlYWRlZCBydW50aW1lXG5cbmludGVnVGVzdChcbiAgYGNkayBtaWdyYXRlICR7bGFuZ3VhZ2V9IGRlcGxveXMgc3VjY2Vzc2Z1bGx5YCxcbiAgd2l0aENES01pZ3JhdGVGaXh0dXJlKGxhbmd1YWdlLCBhc3luYyAoZml4dHVyZSkgPT4ge1xuXG4gICAgYXdhaXQgZGVwbG95c1N1Y2Nlc3NmdWxseShmaXh0dXJlLCBsYW5ndWFnZSk7XG5cbiAgfSksXG4pO1xuIl19
@@ -3,6 +3,8 @@ import { integTest, withCDKMigrateFixture } from "../../../lib";
3
3
 
4
4
  const language = 'typescript';
5
5
 
6
+ jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime
7
+
6
8
  integTest(
7
9
  `cdk migrate ${language} deploys successfully`,
8
10
  withCDKMigrateFixture(language, async (fixture) => {