@aws-cdk-testing/cli-integ 3.8.0 → 3.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -18,6 +18,7 @@ class RunnerCliNpmSource {
18
18
  fs.mkdirSync(tempDir, { recursive: true });
19
19
  await (0, shell_1.shell)(['node', require.resolve('npm'), 'install', `aws-cdk@${this.range}`], {
20
20
  cwd: tempDir,
21
+ show: 'error',
21
22
  });
22
23
  const installedVersion = await (0, npm_1.npmQueryInstalledVersion)('aws-cdk', tempDir);
23
24
  return {
@@ -47,4 +48,4 @@ class TestCliNpmSource {
47
48
  }
48
49
  }
49
50
  exports.TestCliNpmSource = TestCliNpmSource;
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLW5wbS1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbGktbnBtLXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUUvQixnQ0FBa0Q7QUFDbEQsb0NBQXlEO0FBRXpELE1BQWEsa0JBQWtCO0lBR0E7SUFGYixpQkFBaUIsQ0FBUztJQUUxQyxZQUE2QixLQUFhO1FBQWIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUN4QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxRQUFRLENBQUM7SUFDakQsQ0FBQztJQUVNLEtBQUssQ0FBQyxhQUFhO1FBQ3hCLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNqRSxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTNDLE1BQU0sSUFBQSxhQUFLLEVBQUMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsV0FBVyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRTtZQUNoRixHQUFHLEVBQUUsT0FBTztTQUNiLENBQUMsQ0FBQztRQUNILE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxJQUFBLDhCQUF3QixFQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUU1RSxPQUFPO1lBQ0wsT0FBTyxFQUFFLGdCQUFnQjtZQUN6QixLQUFLLENBQUMsT0FBTztnQkFDWCxJQUFBLGNBQU0sRUFBQyxPQUFPLENBQUMsQ0FBQztZQUNsQixDQUFDO1lBQ0QsU0FBUyxFQUFFLEdBQUcsRUFBRTtnQkFDZCxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDbkQsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUExQkQsZ0RBMEJDO0FBRUQsTUFBYSxnQkFBZ0I7SUFDRTtJQUFzQztJQUFuRSxZQUE2QixXQUFtQixFQUFtQixLQUFhO1FBQW5ELGdCQUFXLEdBQVgsV0FBVyxDQUFRO1FBQW1CLFVBQUssR0FBTCxLQUFLLENBQVE7SUFDaEYsQ0FBQztJQUVNLEtBQUssQ0FBQyxnQkFBZ0I7UUFDM0IsSUFBQSxzQkFBYyxFQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxjQUFjLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0NBQ0Y7QUFYRCw0Q0FXQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG9zIGZyb20gJ29zJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgdHlwZSB7IElSdW5uZXJTb3VyY2UsIElUZXN0Q2xpU291cmNlLCBJUHJlcGFyZWRSdW5uZXJTb3VyY2UgfSBmcm9tICcuL3NvdXJjZSc7XG5pbXBvcnQgeyBucG1RdWVyeUluc3RhbGxlZFZlcnNpb24gfSBmcm9tICcuLi9ucG0nO1xuaW1wb3J0IHsgYWRkVG9TaGVsbFBhdGgsIHJpbXJhZiwgc2hlbGwgfSBmcm9tICcuLi9zaGVsbCc7XG5cbmV4cG9ydCBjbGFzcyBSdW5uZXJDbGlOcG1Tb3VyY2UgaW1wbGVtZW50cyBJUnVubmVyU291cmNlPElUZXN0Q2xpU291cmNlPiB7XG4gIHB1YmxpYyByZWFkb25seSBzb3VyY2VEZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcmFuZ2U6IHN0cmluZykge1xuICAgIHRoaXMuc291cmNlRGVzY3JpcHRpb24gPSBgJHt0aGlzLnJhbmdlfSAobnBtKWA7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcnVubmVyUHJlcGFyZSgpOiBQcm9taXNlPElQcmVwYXJlZFJ1bm5lclNvdXJjZTxJVGVzdENsaVNvdXJjZT4+IHtcbiAgICBjb25zdCB0ZW1wRGlyID0gZnMubWtkdGVtcFN5bmMocGF0aC5qb2luKG9zLnRtcGRpcigpLCAndG1wY2RrJykpO1xuICAgIGZzLm1rZGlyU3luYyh0ZW1wRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICAgIGF3YWl0IHNoZWxsKFsnbm9kZScsIHJlcXVpcmUucmVzb2x2ZSgnbnBtJyksICdpbnN0YWxsJywgYGF3cy1jZGtAJHt0aGlzLnJhbmdlfWBdLCB7XG4gICAgICBjd2Q6IHRlbXBEaXIsXG4gICAgfSk7XG4gICAgY29uc3QgaW5zdGFsbGVkVmVyc2lvbiA9IGF3YWl0IG5wbVF1ZXJ5SW5zdGFsbGVkVmVyc2lvbignYXdzLWNkaycsIHRlbXBEaXIpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHZlcnNpb246IGluc3RhbGxlZFZlcnNpb24sXG4gICAgICBhc3luYyBkaXNwb3NlKCkge1xuICAgICAgICByaW1yYWYodGVtcERpcik7XG4gICAgICB9LFxuICAgICAgc2VyaWFsaXplOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiBbVGVzdENsaU5wbVNvdXJjZSwgW3RlbXBEaXIsIHRoaXMucmFuZ2VdXTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGVzdENsaU5wbVNvdXJjZSBpbXBsZW1lbnRzIElUZXN0Q2xpU291cmNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBpbnN0YWxsUm9vdDogc3RyaW5nLCBwcml2YXRlIHJlYWRvbmx5IHJhbmdlOiBzdHJpbmcpIHtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBtYWtlQ2xpQXZhaWxhYmxlKCkge1xuICAgIGFkZFRvU2hlbGxQYXRoKHBhdGguam9pbih0aGlzLmluc3RhbGxSb290LCAnbm9kZV9tb2R1bGVzJywgJy5iaW4nKSk7XG4gIH1cblxuICBwdWJsaWMgcmVxdWVzdGVkVmVyc2lvbigpIHtcbiAgICByZXR1cm4gdGhpcy5yYW5nZTtcbiAgfVxufVxuXG4iXX0=
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLW5wbS1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbGktbnBtLXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUUvQixnQ0FBa0Q7QUFDbEQsb0NBQXlEO0FBRXpELE1BQWEsa0JBQWtCO0lBR0E7SUFGYixpQkFBaUIsQ0FBUztJQUUxQyxZQUE2QixLQUFhO1FBQWIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUN4QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxRQUFRLENBQUM7SUFDakQsQ0FBQztJQUVNLEtBQUssQ0FBQyxhQUFhO1FBQ3hCLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNqRSxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTNDLE1BQU0sSUFBQSxhQUFLLEVBQUMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsV0FBVyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRTtZQUNoRixHQUFHLEVBQUUsT0FBTztZQUNaLElBQUksRUFBRSxPQUFPO1NBQ2QsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLElBQUEsOEJBQXdCLEVBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRTVFLE9BQU87WUFDTCxPQUFPLEVBQUUsZ0JBQWdCO1lBQ3pCLEtBQUssQ0FBQyxPQUFPO2dCQUNYLElBQUEsY0FBTSxFQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2xCLENBQUM7WUFDRCxTQUFTLEVBQUUsR0FBRyxFQUFFO2dCQUNkLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNuRCxDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQTNCRCxnREEyQkM7QUFFRCxNQUFhLGdCQUFnQjtJQUNFO0lBQXNDO0lBQW5FLFlBQTZCLFdBQW1CLEVBQW1CLEtBQWE7UUFBbkQsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFBbUIsVUFBSyxHQUFMLEtBQUssQ0FBUTtJQUNoRixDQUFDO0lBRU0sS0FBSyxDQUFDLGdCQUFnQjtRQUMzQixJQUFBLHNCQUFjLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLGNBQWMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7Q0FDRjtBQVhELDRDQVdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCB0eXBlIHsgSVJ1bm5lclNvdXJjZSwgSVRlc3RDbGlTb3VyY2UsIElQcmVwYXJlZFJ1bm5lclNvdXJjZSB9IGZyb20gJy4vc291cmNlJztcbmltcG9ydCB7IG5wbVF1ZXJ5SW5zdGFsbGVkVmVyc2lvbiB9IGZyb20gJy4uL25wbSc7XG5pbXBvcnQgeyBhZGRUb1NoZWxsUGF0aCwgcmltcmFmLCBzaGVsbCB9IGZyb20gJy4uL3NoZWxsJztcblxuZXhwb3J0IGNsYXNzIFJ1bm5lckNsaU5wbVNvdXJjZSBpbXBsZW1lbnRzIElSdW5uZXJTb3VyY2U8SVRlc3RDbGlTb3VyY2U+IHtcbiAgcHVibGljIHJlYWRvbmx5IHNvdXJjZURlc2NyaXB0aW9uOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSByYW5nZTogc3RyaW5nKSB7XG4gICAgdGhpcy5zb3VyY2VEZXNjcmlwdGlvbiA9IGAke3RoaXMucmFuZ2V9IChucG0pYDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBydW5uZXJQcmVwYXJlKCk6IFByb21pc2U8SVByZXBhcmVkUnVubmVyU291cmNlPElUZXN0Q2xpU291cmNlPj4ge1xuICAgIGNvbnN0IHRlbXBEaXIgPSBmcy5ta2R0ZW1wU3luYyhwYXRoLmpvaW4ob3MudG1wZGlyKCksICd0bXBjZGsnKSk7XG4gICAgZnMubWtkaXJTeW5jKHRlbXBEaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG4gICAgYXdhaXQgc2hlbGwoWydub2RlJywgcmVxdWlyZS5yZXNvbHZlKCducG0nKSwgJ2luc3RhbGwnLCBgYXdzLWNka0Ake3RoaXMucmFuZ2V9YF0sIHtcbiAgICAgIGN3ZDogdGVtcERpcixcbiAgICAgIHNob3c6ICdlcnJvcicsXG4gICAgfSk7XG4gICAgY29uc3QgaW5zdGFsbGVkVmVyc2lvbiA9IGF3YWl0IG5wbVF1ZXJ5SW5zdGFsbGVkVmVyc2lvbignYXdzLWNkaycsIHRlbXBEaXIpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHZlcnNpb246IGluc3RhbGxlZFZlcnNpb24sXG4gICAgICBhc3luYyBkaXNwb3NlKCkge1xuICAgICAgICByaW1yYWYodGVtcERpcik7XG4gICAgICB9LFxuICAgICAgc2VyaWFsaXplOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiBbVGVzdENsaU5wbVNvdXJjZSwgW3RlbXBEaXIsIHRoaXMucmFuZ2VdXTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGVzdENsaU5wbVNvdXJjZSBpbXBsZW1lbnRzIElUZXN0Q2xpU291cmNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBpbnN0YWxsUm9vdDogc3RyaW5nLCBwcml2YXRlIHJlYWRvbmx5IHJhbmdlOiBzdHJpbmcpIHtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBtYWtlQ2xpQXZhaWxhYmxlKCkge1xuICAgIGFkZFRvU2hlbGxQYXRoKHBhdGguam9pbih0aGlzLmluc3RhbGxSb290LCAnbm9kZV9tb2R1bGVzJywgJy5iaW4nKSk7XG4gIH1cblxuICBwdWJsaWMgcmVxdWVzdGVkVmVyc2lvbigpIHtcbiAgICByZXR1cm4gdGhpcy5yYW5nZTtcbiAgfVxufVxuXG4iXX0=
@@ -25,6 +25,7 @@ class RunnerLibraryGlobalInstallSource {
25
25
  await fs_1.promises.mkdir(tempDir, { recursive: true });
26
26
  await (0, shell_1.shell)(['node', require.resolve('npm'), 'install', `${this.packageName}@${this.range}`], {
27
27
  cwd: tempDir,
28
+ show: 'error',
28
29
  });
29
30
  const symlinkPath = path.join(__dirname, '..', '..', 'node_modules', this.packageName);
30
31
  await fs_1.promises.mkdir(path.dirname(symlinkPath), { recursive: true });
@@ -67,4 +68,4 @@ class TestLibraryGlobalInstallSource {
67
68
  }
68
69
  }
69
70
  exports.TestLibraryGlobalInstallSource = TestLibraryGlobalInstallSource;
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicmFyeS1nbG9iYWxpbnN0YWxsLXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImxpYnJhcnktZ2xvYmFsaW5zdGFsbC1zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkJBQW9DO0FBQ3BDLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFFN0Isb0NBQWlEO0FBQ2pELGdDQUFrRDtBQUNsRCxvQ0FBaUM7QUFFakM7O0dBRUc7QUFDSCxNQUFhLGdDQUFnQztJQUdkO0lBQXNDO0lBRm5ELGlCQUFpQixDQUFTO0lBRTFDLFlBQTZCLFdBQW1CLEVBQW1CLEtBQWE7UUFBbkQsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFBbUIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUM5RSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMvRCxDQUFDO0lBRU0sS0FBSyxDQUFDLGFBQWE7UUFDeEIsZ0dBQWdHO1FBQ2hHLE1BQU0sT0FBTyxHQUFHLE1BQU0sYUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sYUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUU3QyxNQUFNLElBQUEsYUFBSyxFQUFDLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRTtZQUM1RixHQUFHLEVBQUUsT0FBTztTQUNiLENBQUMsQ0FBQztRQUVILE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN2RixNQUFNLGFBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sYUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUVoRyxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUEsOEJBQXdCLEVBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUUxRSxPQUFPO1lBQ0wsT0FBTztZQUNQLEtBQUssQ0FBQyxPQUFPO2dCQUNYLDJCQUEyQjtnQkFDM0IsTUFBTSxhQUFFLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQy9CLENBQUM7WUFDRCxTQUFTLEVBQUUsR0FBRyxFQUFFO2dCQUNkLE9BQU8sQ0FBQyw4QkFBOEIsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUN2RSxDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQWpDRCw0RUFpQ0M7QUFFRCxNQUFhLDhCQUE4QjtJQUNiO0lBQXNDO0lBQWxFLFlBQTRCLFdBQW1CLEVBQW1CLE9BQWU7UUFBckQsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFBbUIsWUFBTyxHQUFQLE9BQU8sQ0FBUTtJQUNqRixDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRU0sMkJBQTJCO1FBQ2hDLHlCQUF5QjtJQUMzQixDQUFDO0lBRU0sS0FBSyxDQUFDLHdCQUF3QixDQUFDLFVBQWtCO1FBQ3RELDRGQUE0RjtRQUM1RixJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDOUIsTUFBTSxJQUFBLDZCQUFxQixFQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3JFLENBQUM7SUFDSCxDQUFDO0lBRU0scUJBQXFCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0NBQ0Y7QUF0QkQsd0VBc0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcHJvbWlzZXMgYXMgZnMgfSBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBvcyBmcm9tICdvcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHR5cGUgeyBJUnVubmVyU291cmNlLCBJUHJlcGFyZWRSdW5uZXJTb3VyY2UsIElUZXN0TGlicmFyeVNvdXJjZSB9IGZyb20gJy4vc291cmNlJztcbmltcG9ydCB7IGNvcHlEaXJlY3RvcnlDb250ZW50cyB9IGZyb20gJy4uL2ZpbGVzJztcbmltcG9ydCB7IG5wbVF1ZXJ5SW5zdGFsbGVkVmVyc2lvbiB9IGZyb20gJy4uL25wbSc7XG5pbXBvcnQgeyBzaGVsbCB9IGZyb20gJy4uL3NoZWxsJztcblxuLyoqXG4gKiBBIGxpYnJhcnkgZGVwZW5kZW5jeSB0aGF0IGNsaS1pbnRlZyBpbnN0YWxscyBpbnRvIGl0cyBvd24gYG5vZGVfbW9kdWxlc2AuXG4gKi9cbmV4cG9ydCBjbGFzcyBSdW5uZXJMaWJyYXJ5R2xvYmFsSW5zdGFsbFNvdXJjZSBpbXBsZW1lbnRzIElSdW5uZXJTb3VyY2U8SVRlc3RMaWJyYXJ5U291cmNlPiB7XG4gIHB1YmxpYyByZWFkb25seSBzb3VyY2VEZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcGFja2FnZU5hbWU6IHN0cmluZywgcHJpdmF0ZSByZWFkb25seSByYW5nZTogc3RyaW5nKSB7XG4gICAgdGhpcy5zb3VyY2VEZXNjcmlwdGlvbiA9IGAke3RoaXMucGFja2FnZU5hbWV9QCR7dGhpcy5yYW5nZX1gO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHJ1bm5lclByZXBhcmUoKTogUHJvbWlzZTxJUHJlcGFyZWRSdW5uZXJTb3VyY2U8SVRlc3RMaWJyYXJ5U291cmNlPj4ge1xuICAgIC8vIENyZWF0ZSBhIHRlbXBkaXIgd2hlcmUgd2UgaW5zdGFsbCB0aGUgcmVxdWVzdGVkIHBhY2thZ2UsIHRoZW4gc3ltbGluayBpbnRvIG91ciBgbm9kZV9tb2R1bGVzYFxuICAgIGNvbnN0IHRlbXBEaXIgPSBhd2FpdCBmcy5ta2R0ZW1wKHBhdGguam9pbihvcy50bXBkaXIoKSwgJ3RtcGNkaycpKTtcbiAgICBhd2FpdCBmcy5ta2Rpcih0ZW1wRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICAgIGF3YWl0IHNoZWxsKFsnbm9kZScsIHJlcXVpcmUucmVzb2x2ZSgnbnBtJyksICdpbnN0YWxsJywgYCR7dGhpcy5wYWNrYWdlTmFtZX1AJHt0aGlzLnJhbmdlfWBdLCB7XG4gICAgICBjd2Q6IHRlbXBEaXIsXG4gICAgfSk7XG5cbiAgICBjb25zdCBzeW1saW5rUGF0aCA9IHBhdGguam9pbihfX2Rpcm5hbWUsICcuLicsICcuLicsICdub2RlX21vZHVsZXMnLCB0aGlzLnBhY2thZ2VOYW1lKTtcbiAgICBhd2FpdCBmcy5ta2RpcihwYXRoLmRpcm5hbWUoc3ltbGlua1BhdGgpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICBhd2FpdCBmcy5zeW1saW5rKHBhdGguam9pbih0ZW1wRGlyLCAnbm9kZV9tb2R1bGVzJywgdGhpcy5wYWNrYWdlTmFtZSksIHN5bWxpbmtQYXRoLCAnanVuY3Rpb24nKTtcblxuICAgIGNvbnN0IHZlcnNpb24gPSBhd2FpdCBucG1RdWVyeUluc3RhbGxlZFZlcnNpb24odGhpcy5wYWNrYWdlTmFtZSwgdGVtcERpcik7XG5cbiAgICByZXR1cm4ge1xuICAgICAgdmVyc2lvbixcbiAgICAgIGFzeW5jIGRpc3Bvc2UoKSB7XG4gICAgICAgIC8vIFJlbW92ZSB0aGUgc3ltbGluayBhZ2FpblxuICAgICAgICBhd2FpdCBmcy51bmxpbmsoc3ltbGlua1BhdGgpO1xuICAgICAgfSxcbiAgICAgIHNlcmlhbGl6ZTogKCkgPT4ge1xuICAgICAgICByZXR1cm4gW1Rlc3RMaWJyYXJ5R2xvYmFsSW5zdGFsbFNvdXJjZSwgW3RoaXMucGFja2FnZU5hbWUsIHZlcnNpb25dXTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGVzdExpYnJhcnlHbG9iYWxJbnN0YWxsU291cmNlIGltcGxlbWVudHMgSVRlc3RMaWJyYXJ5U291cmNlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHBhY2thZ2VOYW1lOiBzdHJpbmcsIHByaXZhdGUgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nKSB7XG4gIH1cblxuICBwdWJsaWMgcmVxdWVzdGVkVmVyc2lvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnZlcnNpb247XG4gIH1cblxuICBwdWJsaWMgYXNzZXJ0SnNpaVBhY2thZ2VzQXZhaWxhYmxlKCk6IHZvaWQge1xuICAgIC8vIEZJWE1FOiBBbHdheXMgYSBuby1vcC5cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBpbml0aWFsaXplRG90bmV0UGFja2FnZXMoY3VycmVudERpcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gRklYTUU6IHRoaXMgY29kZSBoYXMgbm90aGluZyB0byBkbyB3aXRoIHRoZSBwYWNrYWdlIHNvdXJjZSwgcmVhbGx5LCBzbyBzaG91bGRuJ3QgYmUgaGVyZS5cbiAgICBpZiAocHJvY2Vzcy5lbnYuQ1dEX0ZJTEVTX0RJUikge1xuICAgICAgYXdhaXQgY29weURpcmVjdG9yeUNvbnRlbnRzKHByb2Nlc3MuZW52LkNXRF9GSUxFU19ESVIsIGN1cnJlbnREaXIpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZXF1ZXN0ZWRBbHBoYVZlcnNpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy52ZXJzaW9uO1xuICB9XG59XG5cbiJdfQ==
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicmFyeS1nbG9iYWxpbnN0YWxsLXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImxpYnJhcnktZ2xvYmFsaW5zdGFsbC1zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkJBQW9DO0FBQ3BDLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFFN0Isb0NBQWlEO0FBQ2pELGdDQUFrRDtBQUNsRCxvQ0FBaUM7QUFFakM7O0dBRUc7QUFDSCxNQUFhLGdDQUFnQztJQUdkO0lBQXNDO0lBRm5ELGlCQUFpQixDQUFTO0lBRTFDLFlBQTZCLFdBQW1CLEVBQW1CLEtBQWE7UUFBbkQsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFBbUIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUM5RSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMvRCxDQUFDO0lBRU0sS0FBSyxDQUFDLGFBQWE7UUFDeEIsZ0dBQWdHO1FBQ2hHLE1BQU0sT0FBTyxHQUFHLE1BQU0sYUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sYUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUU3QyxNQUFNLElBQUEsYUFBSyxFQUFDLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRTtZQUM1RixHQUFHLEVBQUUsT0FBTztZQUNaLElBQUksRUFBRSxPQUFPO1NBQ2QsQ0FBQyxDQUFDO1FBRUgsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZGLE1BQU0sYUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDL0QsTUFBTSxhQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRWhHLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBQSw4QkFBd0IsRUFBQyxJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRTFFLE9BQU87WUFDTCxPQUFPO1lBQ1AsS0FBSyxDQUFDLE9BQU87Z0JBQ1gsMkJBQTJCO2dCQUMzQixNQUFNLGFBQUUsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDL0IsQ0FBQztZQUNELFNBQVMsRUFBRSxHQUFHLEVBQUU7Z0JBQ2QsT0FBTyxDQUFDLDhCQUE4QixFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ3ZFLENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBbENELDRFQWtDQztBQUVELE1BQWEsOEJBQThCO0lBQ2I7SUFBc0M7SUFBbEUsWUFBNEIsV0FBbUIsRUFBbUIsT0FBZTtRQUFyRCxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUFtQixZQUFPLEdBQVAsT0FBTyxDQUFRO0lBQ2pGLENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFTSwyQkFBMkI7UUFDaEMseUJBQXlCO0lBQzNCLENBQUM7SUFFTSxLQUFLLENBQUMsd0JBQXdCLENBQUMsVUFBa0I7UUFDdEQsNEZBQTRGO1FBQzVGLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUM5QixNQUFNLElBQUEsNkJBQXFCLEVBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDckUsQ0FBQztJQUNILENBQUM7SUFFTSxxQkFBcUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7Q0FDRjtBQXRCRCx3RUFzQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwcm9taXNlcyBhcyBmcyB9IGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIG9zIGZyb20gJ29zJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgdHlwZSB7IElSdW5uZXJTb3VyY2UsIElQcmVwYXJlZFJ1bm5lclNvdXJjZSwgSVRlc3RMaWJyYXJ5U291cmNlIH0gZnJvbSAnLi9zb3VyY2UnO1xuaW1wb3J0IHsgY29weURpcmVjdG9yeUNvbnRlbnRzIH0gZnJvbSAnLi4vZmlsZXMnO1xuaW1wb3J0IHsgbnBtUXVlcnlJbnN0YWxsZWRWZXJzaW9uIH0gZnJvbSAnLi4vbnBtJztcbmltcG9ydCB7IHNoZWxsIH0gZnJvbSAnLi4vc2hlbGwnO1xuXG4vKipcbiAqIEEgbGlicmFyeSBkZXBlbmRlbmN5IHRoYXQgY2xpLWludGVnIGluc3RhbGxzIGludG8gaXRzIG93biBgbm9kZV9tb2R1bGVzYC5cbiAqL1xuZXhwb3J0IGNsYXNzIFJ1bm5lckxpYnJhcnlHbG9iYWxJbnN0YWxsU291cmNlIGltcGxlbWVudHMgSVJ1bm5lclNvdXJjZTxJVGVzdExpYnJhcnlTb3VyY2U+IHtcbiAgcHVibGljIHJlYWRvbmx5IHNvdXJjZURlc2NyaXB0aW9uOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBwYWNrYWdlTmFtZTogc3RyaW5nLCBwcml2YXRlIHJlYWRvbmx5IHJhbmdlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNvdXJjZURlc2NyaXB0aW9uID0gYCR7dGhpcy5wYWNrYWdlTmFtZX1AJHt0aGlzLnJhbmdlfWA7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcnVubmVyUHJlcGFyZSgpOiBQcm9taXNlPElQcmVwYXJlZFJ1bm5lclNvdXJjZTxJVGVzdExpYnJhcnlTb3VyY2U+PiB7XG4gICAgLy8gQ3JlYXRlIGEgdGVtcGRpciB3aGVyZSB3ZSBpbnN0YWxsIHRoZSByZXF1ZXN0ZWQgcGFja2FnZSwgdGhlbiBzeW1saW5rIGludG8gb3VyIGBub2RlX21vZHVsZXNgXG4gICAgY29uc3QgdGVtcERpciA9IGF3YWl0IGZzLm1rZHRlbXAocGF0aC5qb2luKG9zLnRtcGRpcigpLCAndG1wY2RrJykpO1xuICAgIGF3YWl0IGZzLm1rZGlyKHRlbXBEaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG4gICAgYXdhaXQgc2hlbGwoWydub2RlJywgcmVxdWlyZS5yZXNvbHZlKCducG0nKSwgJ2luc3RhbGwnLCBgJHt0aGlzLnBhY2thZ2VOYW1lfUAke3RoaXMucmFuZ2V9YF0sIHtcbiAgICAgIGN3ZDogdGVtcERpcixcbiAgICAgIHNob3c6ICdlcnJvcicsXG4gICAgfSk7XG5cbiAgICBjb25zdCBzeW1saW5rUGF0aCA9IHBhdGguam9pbihfX2Rpcm5hbWUsICcuLicsICcuLicsICdub2RlX21vZHVsZXMnLCB0aGlzLnBhY2thZ2VOYW1lKTtcbiAgICBhd2FpdCBmcy5ta2RpcihwYXRoLmRpcm5hbWUoc3ltbGlua1BhdGgpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICBhd2FpdCBmcy5zeW1saW5rKHBhdGguam9pbih0ZW1wRGlyLCAnbm9kZV9tb2R1bGVzJywgdGhpcy5wYWNrYWdlTmFtZSksIHN5bWxpbmtQYXRoLCAnanVuY3Rpb24nKTtcblxuICAgIGNvbnN0IHZlcnNpb24gPSBhd2FpdCBucG1RdWVyeUluc3RhbGxlZFZlcnNpb24odGhpcy5wYWNrYWdlTmFtZSwgdGVtcERpcik7XG5cbiAgICByZXR1cm4ge1xuICAgICAgdmVyc2lvbixcbiAgICAgIGFzeW5jIGRpc3Bvc2UoKSB7XG4gICAgICAgIC8vIFJlbW92ZSB0aGUgc3ltbGluayBhZ2FpblxuICAgICAgICBhd2FpdCBmcy51bmxpbmsoc3ltbGlua1BhdGgpO1xuICAgICAgfSxcbiAgICAgIHNlcmlhbGl6ZTogKCkgPT4ge1xuICAgICAgICByZXR1cm4gW1Rlc3RMaWJyYXJ5R2xvYmFsSW5zdGFsbFNvdXJjZSwgW3RoaXMucGFja2FnZU5hbWUsIHZlcnNpb25dXTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGVzdExpYnJhcnlHbG9iYWxJbnN0YWxsU291cmNlIGltcGxlbWVudHMgSVRlc3RMaWJyYXJ5U291cmNlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHBhY2thZ2VOYW1lOiBzdHJpbmcsIHByaXZhdGUgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nKSB7XG4gIH1cblxuICBwdWJsaWMgcmVxdWVzdGVkVmVyc2lvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnZlcnNpb247XG4gIH1cblxuICBwdWJsaWMgYXNzZXJ0SnNpaVBhY2thZ2VzQXZhaWxhYmxlKCk6IHZvaWQge1xuICAgIC8vIEZJWE1FOiBBbHdheXMgYSBuby1vcC5cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBpbml0aWFsaXplRG90bmV0UGFja2FnZXMoY3VycmVudERpcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gRklYTUU6IHRoaXMgY29kZSBoYXMgbm90aGluZyB0byBkbyB3aXRoIHRoZSBwYWNrYWdlIHNvdXJjZSwgcmVhbGx5LCBzbyBzaG91bGRuJ3QgYmUgaGVyZS5cbiAgICBpZiAocHJvY2Vzcy5lbnYuQ1dEX0ZJTEVTX0RJUikge1xuICAgICAgYXdhaXQgY29weURpcmVjdG9yeUNvbnRlbnRzKHByb2Nlc3MuZW52LkNXRF9GSUxFU19ESVIsIGN1cnJlbnREaXIpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZXF1ZXN0ZWRBbHBoYVZlcnNpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy52ZXJzaW9uO1xuICB9XG59XG5cbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-cdk-testing/cli-integ",
3
- "version": "3.8.0",
3
+ "version": "3.9.0",
4
4
  "lockfileVersion": 1,
5
5
  "requires": true,
6
6
  "dependencies": {
package/package.json CHANGED
@@ -39,7 +39,7 @@
39
39
  "organization": true
40
40
  },
41
41
  "devDependencies": {
42
- "@aws-cdk/toolkit-lib": "0.3.5",
42
+ "@aws-cdk/toolkit-lib": "0.3.6",
43
43
  "@aws-cdk/yarn-cling": "0.0.0",
44
44
  "@cdklabs/eslint-plugin": "^1.3.2",
45
45
  "@stylistic/eslint-plugin": "^3",
@@ -115,7 +115,7 @@
115
115
  "publishConfig": {
116
116
  "access": "public"
117
117
  },
118
- "version": "3.8.0",
118
+ "version": "3.9.0",
119
119
  "types": "lib/index.d.ts",
120
120
  "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\"."
121
121
  }
@@ -0,0 +1,38 @@
1
+ const cdk = require('aws-cdk-lib/core');
2
+ const dynamodb = require('aws-cdk-lib/aws-dynamodb');
3
+
4
+ const stackPrefix = process.env.STACK_NAME_PREFIX;
5
+ if (!stackPrefix) {
6
+ throw new Error(`the STACK_NAME_PREFIX environment variable is required`);
7
+ }
8
+
9
+ class BaseStack extends cdk.Stack {
10
+ constructor(scope, id, props) {
11
+ super(scope, id, props);
12
+
13
+ // Create a random table name with prefix
14
+ if (process.env.VERSION == 'v2') {
15
+ new dynamodb.TableV2(this, 'MyGlobalTable', {
16
+ partitionKey: {
17
+ name: 'PK',
18
+ type: dynamodb.AttributeType.STRING,
19
+ },
20
+ tableName: 'integ-test-import-app-base-table-1',
21
+ });
22
+ } else {
23
+ new dynamodb.Table(this, 'MyTable', {
24
+ partitionKey: {
25
+ name: 'PK',
26
+ type: dynamodb.AttributeType.STRING,
27
+ },
28
+ tableName: 'integ-test-import-app-base-table-1',
29
+ removalPolicy: process.env.VERSION == 'v1' ? cdk.RemovalPolicy.RETAIN : cdk.RemovalPolicy.DESTROY,
30
+ });
31
+ }
32
+ }
33
+ }
34
+
35
+ const app = new cdk.App();
36
+ new BaseStack(app, `${stackPrefix}-base-1`);
37
+
38
+ app.synth();
@@ -0,0 +1,7 @@
1
+ {
2
+ "app": "node app.js",
3
+ "versionReporting": false,
4
+ "context": {
5
+ "aws-cdk:enableDiffNoFail": "true"
6
+ }
7
+ }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const lib_1 = require("../../lib");
4
+ jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime
5
+ (0, lib_1.integTest)('cdk diff --import-existing-resources show resource being imported', (0, lib_1.withSpecificFixture)('import-app', async (fixture) => {
6
+ // GIVEN
7
+ await fixture.cdkDeploy('base-1', {
8
+ modEnv: {
9
+ VERSION: 'v1',
10
+ },
11
+ });
12
+ // THEN
13
+ let diff = await fixture.cdk(['diff', '--import-existing-resources', fixture.fullStackName('base-1')], {
14
+ modEnv: {
15
+ VERSION: 'v2',
16
+ },
17
+ });
18
+ // Assert there are no changes and diff shows import
19
+ expect(diff).not.toContain('There were no differences');
20
+ expect(diff).toContain('[←]');
21
+ expect(diff).toContain('import');
22
+ // THEN
23
+ diff = await fixture.cdk(['diff', fixture.fullStackName('base-1')], {
24
+ modEnv: {
25
+ VERSION: 'v2',
26
+ },
27
+ });
28
+ // Assert there are no changes and diff shows add
29
+ expect(diff).not.toContain('There were no differences');
30
+ expect(diff).toContain('[+]');
31
+ // Deploy the stack with v3 to set table removal policy as destroy
32
+ await fixture.cdkDeploy('base-1', {
33
+ modEnv: {
34
+ VERSION: 'v3',
35
+ },
36
+ });
37
+ }));
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWNkay1kaWZmLS1pbXBvcnQtZXhpc3RpbmctcmVzb3VyY2VzLXNob3dzLWltcG9ydC5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZGstY2RrLWRpZmYtLWltcG9ydC1leGlzdGluZy1yZXNvdXJjZXMtc2hvd3MtaW1wb3J0LmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG1DQUEyRDtBQUUzRCxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyx5RUFBeUU7QUFFM0csSUFBQSxlQUFTLEVBQ1AsbUVBQW1FLEVBQ25FLElBQUEseUJBQW1CLEVBQUMsWUFBWSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUNsRCxRQUFRO0lBQ1IsTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRTtRQUNoQyxNQUFNLEVBQUU7WUFDTixPQUFPLEVBQUUsSUFBSTtTQUNkO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsT0FBTztJQUNQLElBQUksSUFBSSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSw2QkFBNkIsRUFBRSxPQUFPLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUU7UUFDckcsTUFBTSxFQUFFO1lBQ04sT0FBTyxFQUFFLElBQUk7U0FDZDtLQUNGLENBQUMsQ0FBQztJQUVILG9EQUFvRDtJQUNwRCxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQ3hELE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUVqQyxPQUFPO0lBQ1AsSUFBSSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUU7UUFDbEUsTUFBTSxFQUFFO1lBQ04sT0FBTyxFQUFFLElBQUk7U0FDZDtLQUNGLENBQUMsQ0FBQztJQUVILGlEQUFpRDtJQUNqRCxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQ3hELE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFOUIsa0VBQWtFO0lBQ2xFLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUU7UUFDaEMsTUFBTSxFQUFFO1lBQ04sT0FBTyxFQUFFLElBQUk7U0FDZDtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhTcGVjaWZpY0ZpeHR1cmUgfSBmcm9tICcuLi8uLi9saWInO1xuXG5qZXN0LnNldFRpbWVvdXQoMiAqIDYwICogNjBfMDAwKTsgLy8gSW5jbHVkZXMgdGhlIHRpbWUgdG8gYWNxdWlyZSBsb2Nrcywgd29yc3QtY2FzZSBzaW5nbGUtdGhyZWFkZWQgcnVudGltZVxuXG5pbnRlZ1Rlc3QoXG4gICdjZGsgZGlmZiAtLWltcG9ydC1leGlzdGluZy1yZXNvdXJjZXMgc2hvdyByZXNvdXJjZSBiZWluZyBpbXBvcnRlZCcsXG4gIHdpdGhTcGVjaWZpY0ZpeHR1cmUoJ2ltcG9ydC1hcHAnLCBhc3luYyAoZml4dHVyZSkgPT4ge1xuICAgIC8vIEdJVkVOXG4gICAgYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koJ2Jhc2UtMScsIHtcbiAgICAgIG1vZEVudjoge1xuICAgICAgICBWRVJTSU9OOiAndjEnLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIFRIRU5cbiAgICBsZXQgZGlmZiA9IGF3YWl0IGZpeHR1cmUuY2RrKFsnZGlmZicsICctLWltcG9ydC1leGlzdGluZy1yZXNvdXJjZXMnLCBmaXh0dXJlLmZ1bGxTdGFja05hbWUoJ2Jhc2UtMScpXSwge1xuICAgICAgbW9kRW52OiB7XG4gICAgICAgIFZFUlNJT046ICd2MicsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gQXNzZXJ0IHRoZXJlIGFyZSBubyBjaGFuZ2VzIGFuZCBkaWZmIHNob3dzIGltcG9ydFxuICAgIGV4cGVjdChkaWZmKS5ub3QudG9Db250YWluKCdUaGVyZSB3ZXJlIG5vIGRpZmZlcmVuY2VzJyk7XG4gICAgZXhwZWN0KGRpZmYpLnRvQ29udGFpbignW+KGkF0nKTtcbiAgICBleHBlY3QoZGlmZikudG9Db250YWluKCdpbXBvcnQnKTtcblxuICAgIC8vIFRIRU5cbiAgICBkaWZmID0gYXdhaXQgZml4dHVyZS5jZGsoWydkaWZmJywgZml4dHVyZS5mdWxsU3RhY2tOYW1lKCdiYXNlLTEnKV0sIHtcbiAgICAgIG1vZEVudjoge1xuICAgICAgICBWRVJTSU9OOiAndjInLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIEFzc2VydCB0aGVyZSBhcmUgbm8gY2hhbmdlcyBhbmQgZGlmZiBzaG93cyBhZGRcbiAgICBleHBlY3QoZGlmZikubm90LnRvQ29udGFpbignVGhlcmUgd2VyZSBubyBkaWZmZXJlbmNlcycpO1xuICAgIGV4cGVjdChkaWZmKS50b0NvbnRhaW4oJ1srXScpO1xuXG4gICAgLy8gRGVwbG95IHRoZSBzdGFjayB3aXRoIHYzIHRvIHNldCB0YWJsZSByZW1vdmFsIHBvbGljeSBhcyBkZXN0cm95XG4gICAgYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koJ2Jhc2UtMScsIHtcbiAgICAgIG1vZEVudjoge1xuICAgICAgICBWRVJTSU9OOiAndjMnLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfSksXG4pO1xuIl19
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const client_s3_1 = require("@aws-sdk/client-s3");
4
+ const lib_1 = require("../../lib");
5
+ jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime
6
+ const DAY = 24 * 60 * 60 * 1000;
7
+ const S3_ISOLATED_TAG = 'aws-cdk:isolated';
8
+ (0, lib_1.integTest)('Garbage Collection deletes unused s3 objects with rollback-buffer-days', (0, lib_1.withoutBootstrap)(async (fixture) => {
9
+ const toolkitStackName = fixture.bootstrapStackName;
10
+ const bootstrapBucketName = `aws-cdk-garbage-collect-integ-test-bckt-${(0, lib_1.randomString)()}`;
11
+ fixture.rememberToDeleteBucket(bootstrapBucketName); // just in case
12
+ await fixture.cdkBootstrapModern({
13
+ toolkitStackName,
14
+ bootstrapBucketName,
15
+ });
16
+ await fixture.cdkDeploy('lambda', {
17
+ options: [
18
+ '--context', `bootstrapBucket=${bootstrapBucketName}`,
19
+ '--context', `@aws-cdk/core:bootstrapQualifier=${fixture.qualifier}`,
20
+ '--toolkit-stack-name', toolkitStackName,
21
+ '--force',
22
+ ],
23
+ });
24
+ fixture.log('Setup complete!');
25
+ await fixture.cdkDestroy('lambda', {
26
+ options: [
27
+ '--context', `bootstrapBucket=${bootstrapBucketName}`,
28
+ '--context', `@aws-cdk/core:bootstrapQualifier=${fixture.qualifier}`,
29
+ '--toolkit-stack-name', toolkitStackName,
30
+ '--force',
31
+ ],
32
+ });
33
+ // Pretend the assets were tagged with an old date > 1 day ago so that garbage collection
34
+ // should pick up and delete asset even with rollbackBufferDays=1
35
+ const res = await fixture.aws.s3.send(new client_s3_1.ListObjectsV2Command({ Bucket: bootstrapBucketName }));
36
+ for (const contents of res.Contents ?? []) {
37
+ await fixture.aws.s3.send(new client_s3_1.PutObjectTaggingCommand({
38
+ Bucket: bootstrapBucketName,
39
+ Key: contents.Key,
40
+ Tagging: {
41
+ TagSet: [{
42
+ Key: S3_ISOLATED_TAG,
43
+ Value: String(Date.now() - (30 * DAY)),
44
+ }],
45
+ },
46
+ }));
47
+ }
48
+ await fixture.cdkGarbageCollect({
49
+ rollbackBufferDays: 1,
50
+ type: 's3',
51
+ bootstrapStackName: toolkitStackName,
52
+ });
53
+ fixture.log('Garbage collection complete!');
54
+ // assert that the bootstrap bucket is empty
55
+ await fixture.aws.s3.send(new client_s3_1.ListObjectsV2Command({ Bucket: bootstrapBucketName }))
56
+ .then((result) => {
57
+ expect(result.Contents).toBeUndefined();
58
+ });
59
+ }));
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWdjLWRlbGV0ZXMtdW51c2VkLXMzLW9iamVjdHMtcm9sbGJhY2suaW50ZWd0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2RrLWdjLWRlbGV0ZXMtdW51c2VkLXMzLW9iamVjdHMtcm9sbGJhY2suaW50ZWd0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsa0RBQW1GO0FBQ25GLG1DQUFzRTtBQUV0RSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyx5RUFBeUU7QUFFM0csTUFBTSxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBQ2hDLE1BQU0sZUFBZSxHQUFHLGtCQUFrQixDQUFDO0FBRTNDLElBQUEsZUFBUyxFQUNQLHdFQUF3RSxFQUN4RSxJQUFBLHNCQUFnQixFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUNqQyxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQztJQUNwRCxNQUFNLG1CQUFtQixHQUFHLDJDQUEyQyxJQUFBLGtCQUFZLEdBQUUsRUFBRSxDQUFDO0lBQ3hGLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsZUFBZTtJQUVwRSxNQUFNLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQztRQUMvQixnQkFBZ0I7UUFDaEIsbUJBQW1CO0tBQ3BCLENBQUMsQ0FBQztJQUVILE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUU7UUFDaEMsT0FBTyxFQUFFO1lBQ1AsV0FBVyxFQUFFLG1CQUFtQixtQkFBbUIsRUFBRTtZQUNyRCxXQUFXLEVBQUUsb0NBQW9DLE9BQU8sQ0FBQyxTQUFTLEVBQUU7WUFDcEUsc0JBQXNCLEVBQUUsZ0JBQWdCO1lBQ3hDLFNBQVM7U0FDVjtLQUNGLENBQUMsQ0FBQztJQUNILE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUUvQixNQUFNLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFO1FBQ2pDLE9BQU8sRUFBRTtZQUNQLFdBQVcsRUFBRSxtQkFBbUIsbUJBQW1CLEVBQUU7WUFDckQsV0FBVyxFQUFFLG9DQUFvQyxPQUFPLENBQUMsU0FBUyxFQUFFO1lBQ3BFLHNCQUFzQixFQUFFLGdCQUFnQjtZQUN4QyxTQUFTO1NBQ1Y7S0FDRixDQUFDLENBQUM7SUFFSCx5RkFBeUY7SUFDekYsaUVBQWlFO0lBQ2pFLE1BQU0sR0FBRyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksZ0NBQW9CLENBQUMsRUFBRSxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDakcsS0FBSyxNQUFNLFFBQVEsSUFBSSxHQUFHLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQzFDLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksbUNBQXVCLENBQUM7WUFDcEQsTUFBTSxFQUFFLG1CQUFtQjtZQUMzQixHQUFHLEVBQUUsUUFBUSxDQUFDLEdBQUc7WUFDakIsT0FBTyxFQUFFO2dCQUNQLE1BQU0sRUFBRSxDQUFDO3dCQUNQLEdBQUcsRUFBRSxlQUFlO3dCQUNwQixLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQztxQkFDdkMsQ0FBQzthQUNIO1NBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsTUFBTSxPQUFPLENBQUMsaUJBQWlCLENBQUM7UUFDOUIsa0JBQWtCLEVBQUUsQ0FBQztRQUNyQixJQUFJLEVBQUUsSUFBSTtRQUNWLGtCQUFrQixFQUFFLGdCQUFnQjtLQUNyQyxDQUFDLENBQUM7SUFDSCxPQUFPLENBQUMsR0FBRyxDQUFDLDhCQUE4QixDQUFDLENBQUM7SUFFNUMsNENBQTRDO0lBQzVDLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksZ0NBQW9CLENBQUMsRUFBRSxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO1NBQ2pGLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1FBQ2YsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMxQyxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyxDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMaXN0T2JqZWN0c1YyQ29tbWFuZCwgUHV0T2JqZWN0VGFnZ2luZ0NvbW1hbmQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtczMnO1xuaW1wb3J0IHsgaW50ZWdUZXN0LCB3aXRob3V0Qm9vdHN0cmFwLCByYW5kb21TdHJpbmcgfSBmcm9tICcuLi8uLi9saWInO1xuXG5qZXN0LnNldFRpbWVvdXQoMiAqIDYwICogNjBfMDAwKTsgLy8gSW5jbHVkZXMgdGhlIHRpbWUgdG8gYWNxdWlyZSBsb2Nrcywgd29yc3QtY2FzZSBzaW5nbGUtdGhyZWFkZWQgcnVudGltZVxuXG5jb25zdCBEQVkgPSAyNCAqIDYwICogNjAgKiAxMDAwO1xuY29uc3QgUzNfSVNPTEFURURfVEFHID0gJ2F3cy1jZGs6aXNvbGF0ZWQnO1xuXG5pbnRlZ1Rlc3QoXG4gICdHYXJiYWdlIENvbGxlY3Rpb24gZGVsZXRlcyB1bnVzZWQgczMgb2JqZWN0cyB3aXRoIHJvbGxiYWNrLWJ1ZmZlci1kYXlzJyxcbiAgd2l0aG91dEJvb3RzdHJhcChhc3luYyAoZml4dHVyZSkgPT4ge1xuICAgIGNvbnN0IHRvb2xraXRTdGFja05hbWUgPSBmaXh0dXJlLmJvb3RzdHJhcFN0YWNrTmFtZTtcbiAgICBjb25zdCBib290c3RyYXBCdWNrZXROYW1lID0gYGF3cy1jZGstZ2FyYmFnZS1jb2xsZWN0LWludGVnLXRlc3QtYmNrdC0ke3JhbmRvbVN0cmluZygpfWA7XG4gICAgZml4dHVyZS5yZW1lbWJlclRvRGVsZXRlQnVja2V0KGJvb3RzdHJhcEJ1Y2tldE5hbWUpOyAvLyBqdXN0IGluIGNhc2VcblxuICAgIGF3YWl0IGZpeHR1cmUuY2RrQm9vdHN0cmFwTW9kZXJuKHtcbiAgICAgIHRvb2xraXRTdGFja05hbWUsXG4gICAgICBib290c3RyYXBCdWNrZXROYW1lLFxuICAgIH0pO1xuXG4gICAgYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koJ2xhbWJkYScsIHtcbiAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgJy0tY29udGV4dCcsIGBib290c3RyYXBCdWNrZXQ9JHtib290c3RyYXBCdWNrZXROYW1lfWAsXG4gICAgICAgICctLWNvbnRleHQnLCBgQGF3cy1jZGsvY29yZTpib290c3RyYXBRdWFsaWZpZXI9JHtmaXh0dXJlLnF1YWxpZmllcn1gLFxuICAgICAgICAnLS10b29sa2l0LXN0YWNrLW5hbWUnLCB0b29sa2l0U3RhY2tOYW1lLFxuICAgICAgICAnLS1mb3JjZScsXG4gICAgICBdLFxuICAgIH0pO1xuICAgIGZpeHR1cmUubG9nKCdTZXR1cCBjb21wbGV0ZSEnKTtcblxuICAgIGF3YWl0IGZpeHR1cmUuY2RrRGVzdHJveSgnbGFtYmRhJywge1xuICAgICAgb3B0aW9uczogW1xuICAgICAgICAnLS1jb250ZXh0JywgYGJvb3RzdHJhcEJ1Y2tldD0ke2Jvb3RzdHJhcEJ1Y2tldE5hbWV9YCxcbiAgICAgICAgJy0tY29udGV4dCcsIGBAYXdzLWNkay9jb3JlOmJvb3RzdHJhcFF1YWxpZmllcj0ke2ZpeHR1cmUucXVhbGlmaWVyfWAsXG4gICAgICAgICctLXRvb2xraXQtc3RhY2stbmFtZScsIHRvb2xraXRTdGFja05hbWUsXG4gICAgICAgICctLWZvcmNlJyxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICAvLyBQcmV0ZW5kIHRoZSBhc3NldHMgd2VyZSB0YWdnZWQgd2l0aCBhbiBvbGQgZGF0ZSA+IDEgZGF5IGFnbyBzbyB0aGF0IGdhcmJhZ2UgY29sbGVjdGlvblxuICAgIC8vIHNob3VsZCBwaWNrIHVwIGFuZCBkZWxldGUgYXNzZXQgZXZlbiB3aXRoIHJvbGxiYWNrQnVmZmVyRGF5cz0xXG4gICAgY29uc3QgcmVzID0gYXdhaXQgZml4dHVyZS5hd3MuczMuc2VuZChuZXcgTGlzdE9iamVjdHNWMkNvbW1hbmQoeyBCdWNrZXQ6IGJvb3RzdHJhcEJ1Y2tldE5hbWUgfSkpO1xuICAgIGZvciAoY29uc3QgY29udGVudHMgb2YgcmVzLkNvbnRlbnRzID8/IFtdKSB7XG4gICAgICBhd2FpdCBmaXh0dXJlLmF3cy5zMy5zZW5kKG5ldyBQdXRPYmplY3RUYWdnaW5nQ29tbWFuZCh7XG4gICAgICAgIEJ1Y2tldDogYm9vdHN0cmFwQnVja2V0TmFtZSxcbiAgICAgICAgS2V5OiBjb250ZW50cy5LZXksXG4gICAgICAgIFRhZ2dpbmc6IHtcbiAgICAgICAgICBUYWdTZXQ6IFt7XG4gICAgICAgICAgICBLZXk6IFMzX0lTT0xBVEVEX1RBRyxcbiAgICAgICAgICAgIFZhbHVlOiBTdHJpbmcoRGF0ZS5ub3coKSAtICgzMCAqIERBWSkpLFxuICAgICAgICAgIH1dLFxuICAgICAgICB9LFxuICAgICAgfSkpO1xuICAgIH1cblxuICAgIGF3YWl0IGZpeHR1cmUuY2RrR2FyYmFnZUNvbGxlY3Qoe1xuICAgICAgcm9sbGJhY2tCdWZmZXJEYXlzOiAxLFxuICAgICAgdHlwZTogJ3MzJyxcbiAgICAgIGJvb3RzdHJhcFN0YWNrTmFtZTogdG9vbGtpdFN0YWNrTmFtZSxcbiAgICB9KTtcbiAgICBmaXh0dXJlLmxvZygnR2FyYmFnZSBjb2xsZWN0aW9uIGNvbXBsZXRlIScpO1xuXG4gICAgLy8gYXNzZXJ0IHRoYXQgdGhlIGJvb3RzdHJhcCBidWNrZXQgaXMgZW1wdHlcbiAgICBhd2FpdCBmaXh0dXJlLmF3cy5zMy5zZW5kKG5ldyBMaXN0T2JqZWN0c1YyQ29tbWFuZCh7IEJ1Y2tldDogYm9vdHN0cmFwQnVja2V0TmFtZSB9KSlcbiAgICAgIC50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgZXhwZWN0KHJlc3VsdC5Db250ZW50cykudG9CZVVuZGVmaW5lZCgpO1xuICAgICAgfSk7XG4gIH0pLFxuKTtcbiJdfQ==