aws-cdk 2.19.0 → 2.21.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/README.md +59 -11
  2. package/THIRD_PARTY_LICENSES +8 -28
  3. package/build-info.json +2 -2
  4. package/does-not-exist.json +1 -1
  5. package/lib/api/aws-auth/account-cache.d.ts +1 -1
  6. package/lib/api/aws-auth/account-cache.js +2 -2
  7. package/lib/api/bootstrap/bootstrap-template.yaml +3 -1
  8. package/lib/api/cloudformation-deployments.d.ts +12 -1
  9. package/lib/api/cloudformation-deployments.js +31 -8
  10. package/lib/api/deploy-stack.d.ts +24 -0
  11. package/lib/api/deploy-stack.js +46 -8
  12. package/lib/api/evaluate-cloudformation-template.js +3 -2
  13. package/lib/api/hotswap/common.js +2 -2
  14. package/lib/api/util/cloudformation/stack-activity-monitor.d.ts +5 -0
  15. package/lib/api/util/cloudformation/stack-activity-monitor.js +24 -7
  16. package/lib/api/util/cloudformation/stack-status.js +2 -2
  17. package/lib/api/util/cloudformation.d.ts +3 -0
  18. package/lib/api/util/cloudformation.js +1 -1
  19. package/lib/api/util/display.d.ts +3 -0
  20. package/lib/api/util/display.js +23 -15
  21. package/lib/cdk-toolkit.d.ts +44 -21
  22. package/lib/cdk-toolkit.js +68 -1
  23. package/lib/cli.js +47 -5
  24. package/lib/commands/doctor.js +2 -2
  25. package/lib/import.d.ts +151 -0
  26. package/lib/import.js +245 -0
  27. package/lib/index.js +10499 -6069
  28. package/lib/init-templates/v1/app/csharp/README.md +1 -1
  29. package/lib/init-templates/v1/app/fsharp/README.md +1 -1
  30. package/lib/init-templates/v1/app/go/README.md +1 -1
  31. package/lib/init-templates/v1/app/java/README.md +1 -1
  32. package/lib/init-templates/v1/app/javascript/README.md +1 -1
  33. package/lib/init-templates/v1/app/python/README.template.md +1 -1
  34. package/lib/init-templates/v1/app/typescript/README.md +1 -1
  35. package/lib/init-templates/v2/app/csharp/README.md +1 -1
  36. package/lib/init-templates/v2/app/fsharp/README.md +1 -1
  37. package/lib/init-templates/v2/app/go/README.md +1 -1
  38. package/lib/init-templates/v2/app/java/README.md +1 -1
  39. package/lib/init-templates/v2/app/javascript/README.md +1 -1
  40. package/lib/init-templates/v2/app/python/README.template.md +1 -1
  41. package/lib/init-templates/v2/app/typescript/README.md +1 -1
  42. package/lib/notices.d.ts +1 -0
  43. package/lib/notices.js +43 -21
  44. package/lib/settings.js +3 -2
  45. package/lib/util/asset-publishing.d.ts +7 -1
  46. package/lib/util/asset-publishing.js +13 -6
  47. package/lib/version.js +2 -2
  48. package/package.json +12 -12
  49. package/test/api/hotswap/state-machine-hotswap-deployments.test.js +75 -1
  50. package/test/api/util/display.test.d.ts +1 -0
  51. package/test/api/util/display.test.js +54 -0
  52. package/test/bockfs.js +2 -2
  53. package/test/cdk-toolkit.test.js +4 -2
  54. package/test/import.test.d.ts +1 -0
  55. package/test/import.test.js +189 -0
  56. package/test/integ/cli/app/app.js +25 -0
  57. package/test/integ/cli/app/docker/Dockerfile +1 -1
  58. package/test/integ/cli/app/docker/Dockerfile.Custom +1 -1
  59. package/test/integ/cli/cli.integtest.js +33 -1
  60. package/test/integ/cli-regression-patches/v1.64.0/cdk-helpers.js +1 -1
  61. package/test/integ/cli-regression-patches/v1.64.1/cdk-helpers.js +1 -1
  62. package/test/integ/cli-regression-patches/v1.67.0/cdk-helpers.js +1 -1
  63. package/test/integ/helpers/cdk.js +4 -5
  64. package/test/integ/helpers/test-helpers.js +1 -3
  65. package/test/notices.test.js +35 -21
  66. package/test/settings.test.js +10 -1
  67. package/test/util/mock-sdk.d.ts +2 -0
  68. package/test/util/mock-sdk.js +8 -2
@@ -11,24 +11,34 @@ class RewritableBlock {
11
11
  constructor(stream) {
12
12
  this.stream = stream;
13
13
  this.lastHeight = 0;
14
+ this.trailingEmptyLines = 0;
14
15
  }
15
16
  get width() {
16
17
  // Might get changed if the user resizes the terminal
17
18
  return this.stream.columns;
18
19
  }
20
+ get height() {
21
+ // Might get changed if the user resizes the terminal
22
+ return this.stream.rows;
23
+ }
19
24
  displayLines(lines) {
20
25
  lines = terminalWrap(this.width, expandNewlines(lines));
26
+ lines = lines.slice(0, getMaxBlockHeight(this.height, this.lastHeight, lines));
21
27
  this.stream.write(cursorUp(this.lastHeight));
22
28
  for (const line of lines) {
23
29
  this.stream.write(cll() + line + '\n');
24
30
  }
31
+ this.trailingEmptyLines = Math.max(0, this.lastHeight - lines.length);
25
32
  // Clear remainder of unwritten lines
26
- for (let i = 0; i < this.lastHeight - lines.length; i++) {
33
+ for (let i = 0; i < this.trailingEmptyLines; i++) {
27
34
  this.stream.write(cll() + '\n');
28
35
  }
29
36
  // The block can only ever get bigger
30
37
  this.lastHeight = Math.max(this.lastHeight, lines.length);
31
38
  }
39
+ removeEmptyLines() {
40
+ this.stream.write(cursorUp(this.trailingEmptyLines));
41
+ }
32
42
  }
33
43
  exports.RewritableBlock = RewritableBlock;
34
44
  const ESC = '\u001b';
@@ -49,24 +59,22 @@ function terminalWrap(width, lines) {
49
59
  if (width === undefined) {
50
60
  return lines;
51
61
  }
52
- const ret = new Array();
53
- for (const line of lines) {
54
- ret.push(...wrapAnsi(line, width - 1, {
55
- hard: true,
56
- trim: true,
57
- wordWrap: false,
58
- }).split('\n'));
59
- }
60
- return ret;
62
+ return lines.flatMap(line => wrapAnsi(line, width - 1, {
63
+ hard: true,
64
+ trim: true,
65
+ wordWrap: false,
66
+ }).split('\n'));
61
67
  }
62
68
  /**
63
69
  * Make sure there are no hidden newlines in the gin strings
64
70
  */
65
71
  function expandNewlines(lines) {
66
- const ret = new Array();
67
- for (const line of lines) {
68
- ret.push(...line.split('\n'));
72
+ return lines.flatMap(line => line.split('\n'));
73
+ }
74
+ function getMaxBlockHeight(windowHeight, lastHeight, lines) {
75
+ if (windowHeight === undefined) {
76
+ return Math.max(lines.length, lastHeight);
69
77
  }
70
- return ret;
78
+ return lines.length < windowHeight ? lines.length : windowHeight - 1;
71
79
  }
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGxheS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRpc3BsYXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUVBQXlFO0FBQ3pFLGlFQUFpRTtBQUNqRSxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFFdEM7O0dBRUc7QUFDSCxNQUFhLGVBQWU7SUFHMUIsWUFBNkIsTUFBMEI7UUFBMUIsV0FBTSxHQUFOLE1BQU0sQ0FBb0I7UUFGL0MsZUFBVSxHQUFHLENBQUMsQ0FBQztJQUd2QixDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2QscURBQXFEO1FBQ3JELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDN0IsQ0FBQztJQUVNLFlBQVksQ0FBQyxLQUFlO1FBQ2pDLEtBQUssR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUV4RCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDN0MsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUU7WUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQ3hDO1FBQ0QscUNBQXFDO1FBQ3JDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDdkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7U0FDakM7UUFFRCxxQ0FBcUM7UUFDckMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVELENBQUM7Q0FDRjtBQTFCRCwwQ0EwQkM7QUFFRCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUM7QUFFckI7O0dBRUc7QUFDSCxTQUFTLFFBQVEsQ0FBQyxDQUFTO0lBQ3pCLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDMUMsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxHQUFHO0lBQ1YsT0FBTyxHQUFHLEdBQUcsSUFBSSxDQUFDO0FBQ3BCLENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBQyxLQUF5QixFQUFFLEtBQWU7SUFDOUQsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFO1FBQUUsT0FBTyxLQUFLLENBQUM7S0FBRTtJQUUxQyxNQUFNLEdBQUcsR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO0lBQ2hDLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFO1FBQ3hCLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssR0FBRyxDQUFDLEVBQUU7WUFDcEMsSUFBSSxFQUFFLElBQUk7WUFDVixJQUFJLEVBQUUsSUFBSTtZQUNWLFFBQVEsRUFBRSxLQUFLO1NBQ2hCLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztLQUNqQjtJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxjQUFjLENBQUMsS0FBZTtJQUNyQyxNQUFNLEdBQUcsR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO0lBQ2hDLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFO1FBQ3hCLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7S0FDL0I7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBuYW1lc3BhY2Ugb2JqZWN0IGltcG9ydHMgd29uJ3Qgd29yayBpbiB0aGUgYnVuZGxlIGZvciBmdW5jdGlvbiBleHBvcnRzXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuY29uc3Qgd3JhcEFuc2kgPSByZXF1aXJlKCd3cmFwLWFuc2knKTtcblxuLyoqXG4gKiBBIGNsYXNzIHJlcHJlc2VudGluZyByZXdyaXRhYmxlIGRpc3BsYXkgbGluZXNcbiAqL1xuZXhwb3J0IGNsYXNzIFJld3JpdGFibGVCbG9jayB7XG4gIHByaXZhdGUgbGFzdEhlaWdodCA9IDA7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBzdHJlYW06IE5vZGVKUy5Xcml0ZVN0cmVhbSkge1xuICB9XG5cbiAgcHVibGljIGdldCB3aWR0aCgpIHtcbiAgICAvLyBNaWdodCBnZXQgY2hhbmdlZCBpZiB0aGUgdXNlciByZXNpemVzIHRoZSB0ZXJtaW5hbFxuICAgIHJldHVybiB0aGlzLnN0cmVhbS5jb2x1bW5zO1xuICB9XG5cbiAgcHVibGljIGRpc3BsYXlMaW5lcyhsaW5lczogc3RyaW5nW10pIHtcbiAgICBsaW5lcyA9IHRlcm1pbmFsV3JhcCh0aGlzLndpZHRoLCBleHBhbmROZXdsaW5lcyhsaW5lcykpO1xuXG4gICAgdGhpcy5zdHJlYW0ud3JpdGUoY3Vyc29yVXAodGhpcy5sYXN0SGVpZ2h0KSk7XG4gICAgZm9yIChjb25zdCBsaW5lIG9mIGxpbmVzKSB7XG4gICAgICB0aGlzLnN0cmVhbS53cml0ZShjbGwoKSArIGxpbmUgKyAnXFxuJyk7XG4gICAgfVxuICAgIC8vIENsZWFyIHJlbWFpbmRlciBvZiB1bndyaXR0ZW4gbGluZXNcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubGFzdEhlaWdodCAtIGxpbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLnN0cmVhbS53cml0ZShjbGwoKSArICdcXG4nKTtcbiAgICB9XG5cbiAgICAvLyBUaGUgYmxvY2sgY2FuIG9ubHkgZXZlciBnZXQgYmlnZ2VyXG4gICAgdGhpcy5sYXN0SGVpZ2h0ID0gTWF0aC5tYXgodGhpcy5sYXN0SGVpZ2h0LCBsaW5lcy5sZW5ndGgpO1xuICB9XG59XG5cbmNvbnN0IEVTQyA9ICdcXHUwMDFiJztcblxuLypcbiAqIE1vdmUgY3Vyc29yIHVwIGBuYCBsaW5lcy4gRGVmYXVsdCBpcyAxXG4gKi9cbmZ1bmN0aW9uIGN1cnNvclVwKG46IG51bWJlcikge1xuICBuID0gdHlwZW9mIG4gPT09ICdudW1iZXInID8gbiA6IDE7XG4gIHJldHVybiBuID4gMCA/IEVTQyArICdbJyArIG4gKyAnQScgOiAnJztcbn1cblxuLyoqXG4gKiBDbGVhciB0byBlbmQgb2YgbGluZVxuICovXG5mdW5jdGlvbiBjbGwoKSB7XG4gIHJldHVybiBFU0MgKyAnW0snO1xufVxuXG5mdW5jdGlvbiB0ZXJtaW5hbFdyYXAod2lkdGg6IG51bWJlciB8IHVuZGVmaW5lZCwgbGluZXM6IHN0cmluZ1tdKSB7XG4gIGlmICh3aWR0aCA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiBsaW5lczsgfVxuXG4gIGNvbnN0IHJldCA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAgIHJldC5wdXNoKC4uLndyYXBBbnNpKGxpbmUsIHdpZHRoIC0gMSwge1xuICAgICAgaGFyZDogdHJ1ZSxcbiAgICAgIHRyaW06IHRydWUsXG4gICAgICB3b3JkV3JhcDogZmFsc2UsXG4gICAgfSkuc3BsaXQoJ1xcbicpKTtcbiAgfVxuICByZXR1cm4gcmV0O1xufVxuXG4vKipcbiAqIE1ha2Ugc3VyZSB0aGVyZSBhcmUgbm8gaGlkZGVuIG5ld2xpbmVzIGluIHRoZSBnaW4gc3RyaW5nc1xuICovXG5mdW5jdGlvbiBleHBhbmROZXdsaW5lcyhsaW5lczogc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gIGNvbnN0IHJldCA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAgIHJldC5wdXNoKC4uLmxpbmUuc3BsaXQoJ1xcbicpKTtcbiAgfVxuICByZXR1cm4gcmV0O1xufSJdfQ==
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGxheS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRpc3BsYXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUVBQXlFO0FBQ3pFLGlFQUFpRTtBQUNqRSxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFFdEM7O0dBRUc7QUFDSCxNQUFhLGVBQWU7SUFJMUIsWUFBNkIsTUFBMEI7UUFBMUIsV0FBTSxHQUFOLE1BQU0sQ0FBb0I7UUFIL0MsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNmLHVCQUFrQixHQUFHLENBQUMsQ0FBQztJQUcvQixDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2QscURBQXFEO1FBQ3JELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQVcsTUFBTTtRQUNmLHFEQUFxRDtRQUNyRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQzFCLENBQUM7SUFFTSxZQUFZLENBQUMsS0FBZTtRQUNqQyxLQUFLLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDeEQsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRS9FLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUM3QyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRTtZQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUM7U0FDeEM7UUFFRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFdEUscUNBQXFDO1FBQ3JDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDaEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7U0FDakM7UUFFRCxxQ0FBcUM7UUFDckMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztDQUNGO0FBeENELDBDQXdDQztBQUVELE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQztBQUVyQjs7R0FFRztBQUNILFNBQVMsUUFBUSxDQUFDLENBQVM7SUFDekIsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUMxQyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLEdBQUc7SUFDVixPQUFPLEdBQUcsR0FBRyxJQUFJLENBQUM7QUFDcEIsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLEtBQXlCLEVBQUUsS0FBZTtJQUM5RCxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7UUFBRSxPQUFPLEtBQUssQ0FBQztLQUFFO0lBRTFDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRTtRQUNyRCxJQUFJLEVBQUUsSUFBSTtRQUNWLElBQUksRUFBRSxJQUFJO1FBQ1YsUUFBUSxFQUFFLEtBQUs7S0FDaEIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ2xCLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQVMsY0FBYyxDQUFDLEtBQWU7SUFDckMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ2pELENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLFlBQWdDLEVBQUUsVUFBa0IsRUFBRSxLQUFlO0lBQzlGLElBQUksWUFBWSxLQUFLLFNBQVMsRUFBRTtRQUFFLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0tBQUU7SUFDOUUsT0FBTyxLQUFLLENBQUMsTUFBTSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztBQUN2RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gbmFtZXNwYWNlIG9iamVjdCBpbXBvcnRzIHdvbid0IHdvcmsgaW4gdGhlIGJ1bmRsZSBmb3IgZnVuY3Rpb24gZXhwb3J0c1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbmNvbnN0IHdyYXBBbnNpID0gcmVxdWlyZSgnd3JhcC1hbnNpJyk7XG5cbi8qKlxuICogQSBjbGFzcyByZXByZXNlbnRpbmcgcmV3cml0YWJsZSBkaXNwbGF5IGxpbmVzXG4gKi9cbmV4cG9ydCBjbGFzcyBSZXdyaXRhYmxlQmxvY2sge1xuICBwcml2YXRlIGxhc3RIZWlnaHQgPSAwO1xuICBwcml2YXRlIHRyYWlsaW5nRW1wdHlMaW5lcyA9IDA7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBzdHJlYW06IE5vZGVKUy5Xcml0ZVN0cmVhbSkge1xuICB9XG5cbiAgcHVibGljIGdldCB3aWR0aCgpIHtcbiAgICAvLyBNaWdodCBnZXQgY2hhbmdlZCBpZiB0aGUgdXNlciByZXNpemVzIHRoZSB0ZXJtaW5hbFxuICAgIHJldHVybiB0aGlzLnN0cmVhbS5jb2x1bW5zO1xuICB9XG5cbiAgcHVibGljIGdldCBoZWlnaHQoKSB7XG4gICAgLy8gTWlnaHQgZ2V0IGNoYW5nZWQgaWYgdGhlIHVzZXIgcmVzaXplcyB0aGUgdGVybWluYWxcbiAgICByZXR1cm4gdGhpcy5zdHJlYW0ucm93cztcbiAgfVxuXG4gIHB1YmxpYyBkaXNwbGF5TGluZXMobGluZXM6IHN0cmluZ1tdKSB7XG4gICAgbGluZXMgPSB0ZXJtaW5hbFdyYXAodGhpcy53aWR0aCwgZXhwYW5kTmV3bGluZXMobGluZXMpKTtcbiAgICBsaW5lcyA9IGxpbmVzLnNsaWNlKDAsIGdldE1heEJsb2NrSGVpZ2h0KHRoaXMuaGVpZ2h0LCB0aGlzLmxhc3RIZWlnaHQsIGxpbmVzKSk7XG5cbiAgICB0aGlzLnN0cmVhbS53cml0ZShjdXJzb3JVcCh0aGlzLmxhc3RIZWlnaHQpKTtcbiAgICBmb3IgKGNvbnN0IGxpbmUgb2YgbGluZXMpIHtcbiAgICAgIHRoaXMuc3RyZWFtLndyaXRlKGNsbCgpICsgbGluZSArICdcXG4nKTtcbiAgICB9XG5cbiAgICB0aGlzLnRyYWlsaW5nRW1wdHlMaW5lcyA9IE1hdGgubWF4KDAsIHRoaXMubGFzdEhlaWdodCAtIGxpbmVzLmxlbmd0aCk7XG5cbiAgICAvLyBDbGVhciByZW1haW5kZXIgb2YgdW53cml0dGVuIGxpbmVzXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnRyYWlsaW5nRW1wdHlMaW5lczsgaSsrKSB7XG4gICAgICB0aGlzLnN0cmVhbS53cml0ZShjbGwoKSArICdcXG4nKTtcbiAgICB9XG5cbiAgICAvLyBUaGUgYmxvY2sgY2FuIG9ubHkgZXZlciBnZXQgYmlnZ2VyXG4gICAgdGhpcy5sYXN0SGVpZ2h0ID0gTWF0aC5tYXgodGhpcy5sYXN0SGVpZ2h0LCBsaW5lcy5sZW5ndGgpO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZUVtcHR5TGluZXMoKSB7XG4gICAgdGhpcy5zdHJlYW0ud3JpdGUoY3Vyc29yVXAodGhpcy50cmFpbGluZ0VtcHR5TGluZXMpKTtcbiAgfVxufVxuXG5jb25zdCBFU0MgPSAnXFx1MDAxYic7XG5cbi8qXG4gKiBNb3ZlIGN1cnNvciB1cCBgbmAgbGluZXMuIERlZmF1bHQgaXMgMVxuICovXG5mdW5jdGlvbiBjdXJzb3JVcChuOiBudW1iZXIpIHtcbiAgbiA9IHR5cGVvZiBuID09PSAnbnVtYmVyJyA/IG4gOiAxO1xuICByZXR1cm4gbiA+IDAgPyBFU0MgKyAnWycgKyBuICsgJ0EnIDogJyc7XG59XG5cbi8qKlxuICogQ2xlYXIgdG8gZW5kIG9mIGxpbmVcbiAqL1xuZnVuY3Rpb24gY2xsKCkge1xuICByZXR1cm4gRVNDICsgJ1tLJztcbn1cblxuZnVuY3Rpb24gdGVybWluYWxXcmFwKHdpZHRoOiBudW1iZXIgfCB1bmRlZmluZWQsIGxpbmVzOiBzdHJpbmdbXSkge1xuICBpZiAod2lkdGggPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gbGluZXM7IH1cblxuICByZXR1cm4gbGluZXMuZmxhdE1hcChsaW5lID0+IHdyYXBBbnNpKGxpbmUsIHdpZHRoIC0gMSwge1xuICAgIGhhcmQ6IHRydWUsXG4gICAgdHJpbTogdHJ1ZSxcbiAgICB3b3JkV3JhcDogZmFsc2UsXG4gIH0pLnNwbGl0KCdcXG4nKSk7XG59XG5cbi8qKlxuICogTWFrZSBzdXJlIHRoZXJlIGFyZSBubyBoaWRkZW4gbmV3bGluZXMgaW4gdGhlIGdpbiBzdHJpbmdzXG4gKi9cbmZ1bmN0aW9uIGV4cGFuZE5ld2xpbmVzKGxpbmVzOiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIGxpbmVzLmZsYXRNYXAobGluZSA9PiBsaW5lLnNwbGl0KCdcXG4nKSk7XG59XG5cbmZ1bmN0aW9uIGdldE1heEJsb2NrSGVpZ2h0KHdpbmRvd0hlaWdodDogbnVtYmVyIHwgdW5kZWZpbmVkLCBsYXN0SGVpZ2h0OiBudW1iZXIsIGxpbmVzOiBzdHJpbmdbXSk6IG51bWJlciB7XG4gIGlmICh3aW5kb3dIZWlnaHQgPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gTWF0aC5tYXgobGluZXMubGVuZ3RoLCBsYXN0SGVpZ2h0KTsgfVxuICByZXR1cm4gbGluZXMubGVuZ3RoIDwgd2luZG93SGVpZ2h0ID8gbGluZXMubGVuZ3RoIDogd2luZG93SGVpZ2h0IC0gMTtcbn0iXX0=
@@ -58,6 +58,7 @@ export declare class CdkToolkit {
58
58
  diff(options: DiffOptions): Promise<number>;
59
59
  deploy(options: DeployOptions): Promise<void>;
60
60
  watch(options: WatchOptions): Promise<void>;
61
+ import(options: ImportOptions): Promise<void>;
61
62
  destroy(options: DestroyOptions): Promise<void>;
62
63
  list(selectors: string[], options?: {
63
64
  long?: boolean;
@@ -150,17 +151,11 @@ export interface DiffOptions {
150
151
  */
151
152
  securityOnly?: boolean;
152
153
  }
153
- interface WatchOptions {
154
+ interface CfnDeployOptions {
154
155
  /**
155
156
  * Criteria for selecting stacks to deploy
156
157
  */
157
158
  selector: StackSelector;
158
- /**
159
- * Only select the given stack
160
- *
161
- * @default false
162
- */
163
- exclusively?: boolean;
164
159
  /**
165
160
  * Name of the toolkit stack to use/deploy
166
161
  *
@@ -171,20 +166,17 @@ interface WatchOptions {
171
166
  * Role to pass to CloudFormation for deployment
172
167
  */
173
168
  roleArn?: string;
174
- /**
175
- * Reuse the assets with the given asset IDs
176
- */
177
- reuseAssets?: string[];
178
169
  /**
179
170
  * Optional name to use for the CloudFormation change set.
180
171
  * If not provided, a name will be generated automatically.
181
172
  */
182
173
  changeSetName?: string;
183
174
  /**
184
- * Always deploy, even if templates are identical.
185
- * @default false
175
+ * Whether to execute the ChangeSet
176
+ * Not providing `execute` parameter will result in execution of ChangeSet
177
+ * @default true
186
178
  */
187
- force?: boolean;
179
+ execute?: boolean;
188
180
  /**
189
181
  * Display mode for stack deployment progress.
190
182
  *
@@ -198,6 +190,23 @@ interface WatchOptions {
198
190
  * @default true
199
191
  */
200
192
  readonly rollback?: boolean;
193
+ }
194
+ interface WatchOptions extends Omit<CfnDeployOptions, 'execute'> {
195
+ /**
196
+ * Only select the given stack
197
+ *
198
+ * @default false
199
+ */
200
+ exclusively?: boolean;
201
+ /**
202
+ * Reuse the assets with the given asset IDs
203
+ */
204
+ reuseAssets?: string[];
205
+ /**
206
+ * Always deploy, even if templates are identical.
207
+ * @default false
208
+ */
209
+ force?: boolean;
201
210
  /**
202
211
  * Whether to perform a 'hotswap' deployment.
203
212
  * A 'hotswap' deployment will attempt to short-circuit CloudFormation
@@ -220,7 +229,7 @@ interface WatchOptions {
220
229
  */
221
230
  readonly traceLogs?: boolean;
222
231
  }
223
- export interface DeployOptions extends WatchOptions {
232
+ export interface DeployOptions extends CfnDeployOptions, WatchOptions {
224
233
  /**
225
234
  * ARNs of SNS topics that CloudFormation will notify with stack related events
226
235
  */
@@ -235,12 +244,6 @@ export interface DeployOptions extends WatchOptions {
235
244
  * Tags to pass to CloudFormation for deployment
236
245
  */
237
246
  tags?: Tag[];
238
- /**
239
- * Whether to execute the ChangeSet
240
- * Not providing `execute` parameter will result in execution of ChangeSet
241
- * @default true
242
- */
243
- execute?: boolean;
244
247
  /**
245
248
  * Additional parameters for CloudFormation at deploy time
246
249
  * @default {}
@@ -289,6 +292,26 @@ export interface DeployOptions extends WatchOptions {
289
292
  */
290
293
  readonly cloudWatchLogMonitor?: CloudWatchLogEventMonitor;
291
294
  }
295
+ export interface ImportOptions extends CfnDeployOptions {
296
+ /**
297
+ * Build a physical resource mapping and write it to the given file, without performing the actual import operation
298
+ *
299
+ * @default - No file
300
+ */
301
+ readonly recordResourceMapping?: string;
302
+ /**
303
+ * Path to a file with with the physical resource mapping to CDK constructs in JSON format
304
+ *
305
+ * @default - No mapping file
306
+ */
307
+ readonly resourceMappingFile?: string;
308
+ /**
309
+ * Allow non-addition changes to the template
310
+ *
311
+ * @default false
312
+ */
313
+ readonly force?: boolean;
314
+ }
292
315
  export interface DestroyOptions {
293
316
  /**
294
317
  * Criteria for selecting stacks to deploy