@aws-cdk/cloud-assembly-api 0.0.1 → 2.0.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 (114) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +15 -41
  3. package/design/NESTED_ASSEMBLIES.md +93 -0
  4. package/lib/artifacts/asset-manifest-artifact.d.ts +46 -0
  5. package/lib/artifacts/asset-manifest-artifact.js +66 -0
  6. package/lib/artifacts/cloudformation-artifact.d.ts +147 -0
  7. package/lib/artifacts/cloudformation-artifact.js +94 -0
  8. package/lib/artifacts/nested-cloud-assembly-artifact-aug.d.ts +1 -0
  9. package/lib/artifacts/nested-cloud-assembly-artifact-aug.js +19 -0
  10. package/lib/artifacts/nested-cloud-assembly-artifact.d.ts +45 -0
  11. package/lib/artifacts/nested-cloud-assembly-artifact.js +56 -0
  12. package/lib/artifacts/tree-cloud-artifact.d.ts +25 -0
  13. package/lib/artifacts/tree-cloud-artifact.js +49 -0
  14. package/lib/assets.d.ts +33 -0
  15. package/lib/assets.js +37 -0
  16. package/lib/bootstrap.d.ts +7 -0
  17. package/lib/bootstrap.js +12 -0
  18. package/lib/cloud-artifact-aug.d.ts +1 -0
  19. package/lib/cloud-artifact-aug.js +29 -0
  20. package/lib/cloud-artifact.d.ts +73 -0
  21. package/lib/cloud-artifact.js +94 -0
  22. package/lib/cloud-assembly.d.ts +266 -0
  23. package/lib/cloud-assembly.js +374 -0
  24. package/lib/context/ami.d.ts +4 -0
  25. package/lib/context/ami.js +3 -0
  26. package/lib/context/availability-zones.d.ts +12 -0
  27. package/lib/context/availability-zones.js +12 -0
  28. package/lib/context/endpoint-service-availability-zones.d.ts +22 -0
  29. package/lib/context/endpoint-service-availability-zones.js +5 -0
  30. package/lib/context/generic.d.ts +4 -0
  31. package/lib/context/generic.js +8 -0
  32. package/lib/context/key.d.ts +9 -0
  33. package/lib/context/key.js +3 -0
  34. package/lib/context/load-balancer.d.ts +63 -0
  35. package/lib/context/load-balancer.js +22 -0
  36. package/lib/context/security-group.d.ts +15 -0
  37. package/lib/context/security-group.js +3 -0
  38. package/lib/context/vpc.d.ts +152 -0
  39. package/lib/context/vpc.js +18 -0
  40. package/lib/environment.d.ts +24 -0
  41. package/lib/environment.js +40 -0
  42. package/lib/index.d.ts +21 -0
  43. package/lib/index.js +38 -0
  44. package/lib/metadata.d.ts +27 -0
  45. package/lib/metadata.js +14 -0
  46. package/lib/placeholders.d.ts +66 -0
  47. package/lib/placeholders.js +90 -0
  48. package/lib/private/error.d.ts +1 -0
  49. package/lib/private/error.js +47 -0
  50. package/lib/private/toposort.d.ts +11 -0
  51. package/lib/private/toposort.js +35 -0
  52. package/node_modules/jsonschema/.editorconfig +10 -0
  53. package/node_modules/jsonschema/LICENSE +21 -0
  54. package/node_modules/jsonschema/README.md +421 -0
  55. package/node_modules/jsonschema/lib/attribute.js +978 -0
  56. package/node_modules/jsonschema/lib/helpers.js +390 -0
  57. package/node_modules/jsonschema/lib/index.d.ts +142 -0
  58. package/node_modules/jsonschema/lib/index.js +15 -0
  59. package/node_modules/jsonschema/lib/scan.js +75 -0
  60. package/node_modules/jsonschema/lib/validator.js +336 -0
  61. package/node_modules/jsonschema/package.json +42 -0
  62. package/node_modules/semver/LICENSE +15 -0
  63. package/node_modules/semver/README.md +664 -0
  64. package/node_modules/semver/bin/semver.js +191 -0
  65. package/node_modules/semver/classes/comparator.js +143 -0
  66. package/node_modules/semver/classes/index.js +7 -0
  67. package/node_modules/semver/classes/range.js +557 -0
  68. package/node_modules/semver/classes/semver.js +333 -0
  69. package/node_modules/semver/functions/clean.js +8 -0
  70. package/node_modules/semver/functions/cmp.js +54 -0
  71. package/node_modules/semver/functions/coerce.js +62 -0
  72. package/node_modules/semver/functions/compare-build.js +9 -0
  73. package/node_modules/semver/functions/compare-loose.js +5 -0
  74. package/node_modules/semver/functions/compare.js +7 -0
  75. package/node_modules/semver/functions/diff.js +60 -0
  76. package/node_modules/semver/functions/eq.js +5 -0
  77. package/node_modules/semver/functions/gt.js +5 -0
  78. package/node_modules/semver/functions/gte.js +5 -0
  79. package/node_modules/semver/functions/inc.js +21 -0
  80. package/node_modules/semver/functions/lt.js +5 -0
  81. package/node_modules/semver/functions/lte.js +5 -0
  82. package/node_modules/semver/functions/major.js +5 -0
  83. package/node_modules/semver/functions/minor.js +5 -0
  84. package/node_modules/semver/functions/neq.js +5 -0
  85. package/node_modules/semver/functions/parse.js +18 -0
  86. package/node_modules/semver/functions/patch.js +5 -0
  87. package/node_modules/semver/functions/prerelease.js +8 -0
  88. package/node_modules/semver/functions/rcompare.js +5 -0
  89. package/node_modules/semver/functions/rsort.js +5 -0
  90. package/node_modules/semver/functions/satisfies.js +12 -0
  91. package/node_modules/semver/functions/sort.js +5 -0
  92. package/node_modules/semver/functions/valid.js +8 -0
  93. package/node_modules/semver/index.js +91 -0
  94. package/node_modules/semver/internal/constants.js +37 -0
  95. package/node_modules/semver/internal/debug.js +11 -0
  96. package/node_modules/semver/internal/identifiers.js +29 -0
  97. package/node_modules/semver/internal/lrucache.js +42 -0
  98. package/node_modules/semver/internal/parse-options.js +17 -0
  99. package/node_modules/semver/internal/re.js +223 -0
  100. package/node_modules/semver/package.json +78 -0
  101. package/node_modules/semver/preload.js +4 -0
  102. package/node_modules/semver/range.bnf +16 -0
  103. package/node_modules/semver/ranges/gtr.js +6 -0
  104. package/node_modules/semver/ranges/intersects.js +9 -0
  105. package/node_modules/semver/ranges/ltr.js +6 -0
  106. package/node_modules/semver/ranges/max-satisfying.js +27 -0
  107. package/node_modules/semver/ranges/min-satisfying.js +26 -0
  108. package/node_modules/semver/ranges/min-version.js +63 -0
  109. package/node_modules/semver/ranges/outside.js +82 -0
  110. package/node_modules/semver/ranges/simplify.js +49 -0
  111. package/node_modules/semver/ranges/subset.js +249 -0
  112. package/node_modules/semver/ranges/to-comparators.js +10 -0
  113. package/node_modules/semver/ranges/valid.js +13 -0
  114. package/package.json +80 -6
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHktZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzZWN1cml0eS1ncm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiXG4vKipcbiAqIFByb3BlcnRpZXMgb2YgYSBkaXNjb3ZlcmVkIFNlY3VyaXR5R3JvdXAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VjdXJpdHlHcm91cENvbnRleHRSZXNwb25zZSB7XG4gIC8qKlxuICAgKiBUaGUgc2VjdXJpdHkgZ3JvdXAncyBpZC5cbiAgICovXG4gIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXBJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBzZWN1cml0eSBncm91cCBhbGxvd3MgYWxsIG91dGJvdW5kIHRyYWZmaWMuIFRoaXMgd2lsbCBiZSB0cnVlXG4gICAqIHdoZW4gdGhlIHNlY3VyaXR5IGdyb3VwIGhhcyBhbGwtcHJvdG9jb2wgZWdyZXNzIHBlcm1pc3Npb25zIHRvIGFjY2VzcyBib3RoXG4gICAqIGAwLjAuMC4wLzBgIGFuZCBgOjovMGAuXG4gICAqL1xuICByZWFkb25seSBhbGxvd0FsbE91dGJvdW5kOiBib29sZWFuO1xufVxuIl19
@@ -0,0 +1,152 @@
1
+ /**
2
+ * The type of subnet group.
3
+ * Same as SubnetType in the aws-cdk-lib/aws-ec2 package,
4
+ * but we can't use that because of cyclical dependencies.
5
+ */
6
+ export declare enum VpcSubnetGroupType {
7
+ /** Public subnet group type. */
8
+ PUBLIC = "Public",
9
+ /** Private subnet group type. */
10
+ PRIVATE = "Private",
11
+ /** Isolated subnet group type. */
12
+ ISOLATED = "Isolated"
13
+ }
14
+ /**
15
+ * A subnet representation that the VPC provider uses.
16
+ */
17
+ export interface VpcSubnet {
18
+ /** The identifier of the subnet. */
19
+ readonly subnetId: string;
20
+ /**
21
+ * The code of the availability zone this subnet is in
22
+ * (for example, 'us-west-2a').
23
+ */
24
+ readonly availabilityZone: string;
25
+ /** The identifier of the route table for this subnet. */
26
+ readonly routeTableId: string;
27
+ /**
28
+ * CIDR range of the subnet
29
+ *
30
+ * @default - CIDR information not available
31
+ */
32
+ readonly cidr?: string;
33
+ }
34
+ /**
35
+ * A group of subnets returned by the VPC provider.
36
+ * The included subnets do NOT have to be symmetric!
37
+ */
38
+ export interface VpcSubnetGroup {
39
+ /**
40
+ * The name of the subnet group,
41
+ * determined by looking at the tags of of the subnets
42
+ * that belong to it.
43
+ */
44
+ readonly name: string;
45
+ /** The type of the subnet group. */
46
+ readonly type: VpcSubnetGroupType;
47
+ /**
48
+ * The subnets that are part of this group.
49
+ * There is no condition that the subnets have to be symmetric
50
+ * in the group.
51
+ */
52
+ readonly subnets: VpcSubnet[];
53
+ }
54
+ /**
55
+ * Properties of a discovered VPC
56
+ */
57
+ export interface VpcContextResponse {
58
+ /**
59
+ * VPC id
60
+ */
61
+ readonly vpcId: string;
62
+ /**
63
+ * VPC cidr
64
+ *
65
+ * @default - CIDR information not available
66
+ */
67
+ readonly vpcCidrBlock?: string;
68
+ /**
69
+ * AZs
70
+ */
71
+ readonly availabilityZones: string[];
72
+ /**
73
+ * IDs of all public subnets
74
+ *
75
+ * Element count: #(availabilityZones) · #(publicGroups)
76
+ */
77
+ readonly publicSubnetIds?: string[];
78
+ /**
79
+ * Name of public subnet groups
80
+ *
81
+ * Element count: #(publicGroups)
82
+ */
83
+ readonly publicSubnetNames?: string[];
84
+ /**
85
+ * Route Table IDs of public subnet groups.
86
+ *
87
+ * Element count: #(availabilityZones) · #(publicGroups)
88
+ */
89
+ readonly publicSubnetRouteTableIds?: string[];
90
+ /**
91
+ * IDs of all private subnets
92
+ *
93
+ * Element count: #(availabilityZones) · #(privateGroups)
94
+ */
95
+ readonly privateSubnetIds?: string[];
96
+ /**
97
+ * Name of private subnet groups
98
+ *
99
+ * Element count: #(privateGroups)
100
+ */
101
+ readonly privateSubnetNames?: string[];
102
+ /**
103
+ * Route Table IDs of private subnet groups.
104
+ *
105
+ * Element count: #(availabilityZones) · #(privateGroups)
106
+ */
107
+ readonly privateSubnetRouteTableIds?: string[];
108
+ /**
109
+ * IDs of all isolated subnets
110
+ *
111
+ * Element count: #(availabilityZones) · #(isolatedGroups)
112
+ */
113
+ readonly isolatedSubnetIds?: string[];
114
+ /**
115
+ * Name of isolated subnet groups
116
+ *
117
+ * Element count: #(isolatedGroups)
118
+ */
119
+ readonly isolatedSubnetNames?: string[];
120
+ /**
121
+ * Route Table IDs of isolated subnet groups.
122
+ *
123
+ * Element count: #(availabilityZones) · #(isolatedGroups)
124
+ */
125
+ readonly isolatedSubnetRouteTableIds?: string[];
126
+ /**
127
+ * The VPN gateway ID
128
+ */
129
+ readonly vpnGatewayId?: string;
130
+ /**
131
+ * The subnet groups discovered for the given VPC.
132
+ * Unlike the above properties, this will include asymmetric subnets,
133
+ * if the VPC has any.
134
+ * This property will only be populated if `VpcContextQuery.returnAsymmetricSubnets`
135
+ * is true.
136
+ *
137
+ * @default - no subnet groups will be returned unless `VpcContextQuery.returnAsymmetricSubnets` is true
138
+ */
139
+ readonly subnetGroups?: VpcSubnetGroup[];
140
+ /**
141
+ * The region in which the VPC is in.
142
+ *
143
+ * @default - Region of the parent stack
144
+ */
145
+ readonly region?: string;
146
+ /**
147
+ * The ID of the AWS account that owns the VPC.
148
+ *
149
+ * @default the account id of the parent stack
150
+ */
151
+ readonly ownerAccountId?: string;
152
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VpcSubnetGroupType = void 0;
4
+ /**
5
+ * The type of subnet group.
6
+ * Same as SubnetType in the aws-cdk-lib/aws-ec2 package,
7
+ * but we can't use that because of cyclical dependencies.
8
+ */
9
+ var VpcSubnetGroupType;
10
+ (function (VpcSubnetGroupType) {
11
+ /** Public subnet group type. */
12
+ VpcSubnetGroupType["PUBLIC"] = "Public";
13
+ /** Private subnet group type. */
14
+ VpcSubnetGroupType["PRIVATE"] = "Private";
15
+ /** Isolated subnet group type. */
16
+ VpcSubnetGroupType["ISOLATED"] = "Isolated";
17
+ })(VpcSubnetGroupType || (exports.VpcSubnetGroupType = VpcSubnetGroupType = {}));
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnBjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidnBjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7O0dBSUc7QUFDSCxJQUFZLGtCQVNYO0FBVEQsV0FBWSxrQkFBa0I7SUFDNUIsZ0NBQWdDO0lBQ2hDLHVDQUFpQixDQUFBO0lBRWpCLGlDQUFpQztJQUNqQyx5Q0FBbUIsQ0FBQTtJQUVuQixrQ0FBa0M7SUFDbEMsMkNBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQVRXLGtCQUFrQixrQ0FBbEIsa0JBQWtCLFFBUzdCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGUgdHlwZSBvZiBzdWJuZXQgZ3JvdXAuXG4gKiBTYW1lIGFzIFN1Ym5ldFR5cGUgaW4gdGhlIGF3cy1jZGstbGliL2F3cy1lYzIgcGFja2FnZSxcbiAqIGJ1dCB3ZSBjYW4ndCB1c2UgdGhhdCBiZWNhdXNlIG9mIGN5Y2xpY2FsIGRlcGVuZGVuY2llcy5cbiAqL1xuZXhwb3J0IGVudW0gVnBjU3VibmV0R3JvdXBUeXBlIHtcbiAgLyoqIFB1YmxpYyBzdWJuZXQgZ3JvdXAgdHlwZS4gKi9cbiAgUFVCTElDID0gJ1B1YmxpYycsXG5cbiAgLyoqIFByaXZhdGUgc3VibmV0IGdyb3VwIHR5cGUuICovXG4gIFBSSVZBVEUgPSAnUHJpdmF0ZScsXG5cbiAgLyoqIElzb2xhdGVkIHN1Ym5ldCBncm91cCB0eXBlLiAqL1xuICBJU09MQVRFRCA9ICdJc29sYXRlZCcsXG59XG5cbi8qKlxuICogQSBzdWJuZXQgcmVwcmVzZW50YXRpb24gdGhhdCB0aGUgVlBDIHByb3ZpZGVyIHVzZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVnBjU3VibmV0IHtcbiAgLyoqIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBzdWJuZXQuICovXG4gIHJlYWRvbmx5IHN1Ym5ldElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjb2RlIG9mIHRoZSBhdmFpbGFiaWxpdHkgem9uZSB0aGlzIHN1Ym5ldCBpcyBpblxuICAgKiAoZm9yIGV4YW1wbGUsICd1cy13ZXN0LTJhJykuXG4gICAqL1xuICByZWFkb25seSBhdmFpbGFiaWxpdHlab25lOiBzdHJpbmc7XG5cbiAgLyoqIFRoZSBpZGVudGlmaWVyIG9mIHRoZSByb3V0ZSB0YWJsZSBmb3IgdGhpcyBzdWJuZXQuICovXG4gIHJlYWRvbmx5IHJvdXRlVGFibGVJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDSURSIHJhbmdlIG9mIHRoZSBzdWJuZXRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBDSURSIGluZm9ybWF0aW9uIG5vdCBhdmFpbGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGNpZHI/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBncm91cCBvZiBzdWJuZXRzIHJldHVybmVkIGJ5IHRoZSBWUEMgcHJvdmlkZXIuXG4gKiBUaGUgaW5jbHVkZWQgc3VibmV0cyBkbyBOT1QgaGF2ZSB0byBiZSBzeW1tZXRyaWMhXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVnBjU3VibmV0R3JvdXAge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHN1Ym5ldCBncm91cCxcbiAgICogZGV0ZXJtaW5lZCBieSBsb29raW5nIGF0IHRoZSB0YWdzIG9mIG9mIHRoZSBzdWJuZXRzXG4gICAqIHRoYXQgYmVsb25nIHRvIGl0LlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKiBUaGUgdHlwZSBvZiB0aGUgc3VibmV0IGdyb3VwLiAqL1xuICByZWFkb25seSB0eXBlOiBWcGNTdWJuZXRHcm91cFR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBzdWJuZXRzIHRoYXQgYXJlIHBhcnQgb2YgdGhpcyBncm91cC5cbiAgICogVGhlcmUgaXMgbm8gY29uZGl0aW9uIHRoYXQgdGhlIHN1Ym5ldHMgaGF2ZSB0byBiZSBzeW1tZXRyaWNcbiAgICogaW4gdGhlIGdyb3VwLlxuICAgKi9cbiAgcmVhZG9ubHkgc3VibmV0czogVnBjU3VibmV0W107XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBvZiBhIGRpc2NvdmVyZWQgVlBDXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVnBjQ29udGV4dFJlc3BvbnNlIHtcblxuICAvKipcbiAgICogVlBDIGlkXG4gICAqL1xuICByZWFkb25seSB2cGNJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBWUEMgY2lkclxuICAgKlxuICAgKiBAZGVmYXVsdCAtIENJRFIgaW5mb3JtYXRpb24gbm90IGF2YWlsYWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgdnBjQ2lkckJsb2NrPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBWnNcbiAgICovXG4gIHJlYWRvbmx5IGF2YWlsYWJpbGl0eVpvbmVzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogSURzIG9mIGFsbCBwdWJsaWMgc3VibmV0c1xuICAgKlxuICAgKiBFbGVtZW50IGNvdW50OiAjKGF2YWlsYWJpbGl0eVpvbmVzKSDCtyAjKHB1YmxpY0dyb3VwcylcbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY1N1Ym5ldElkcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHB1YmxpYyBzdWJuZXQgZ3JvdXBzXG4gICAqXG4gICAqIEVsZW1lbnQgY291bnQ6ICMocHVibGljR3JvdXBzKVxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGljU3VibmV0TmFtZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUm91dGUgVGFibGUgSURzIG9mIHB1YmxpYyBzdWJuZXQgZ3JvdXBzLlxuICAgKlxuICAgKiBFbGVtZW50IGNvdW50OiAjKGF2YWlsYWJpbGl0eVpvbmVzKSDCtyAjKHB1YmxpY0dyb3VwcylcbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY1N1Ym5ldFJvdXRlVGFibGVJZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogSURzIG9mIGFsbCBwcml2YXRlIHN1Ym5ldHNcbiAgICpcbiAgICogRWxlbWVudCBjb3VudDogIyhhdmFpbGFiaWxpdHlab25lcykgwrcgIyhwcml2YXRlR3JvdXBzKVxuICAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZVN1Ym5ldElkcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHByaXZhdGUgc3VibmV0IGdyb3Vwc1xuICAgKlxuICAgKiBFbGVtZW50IGNvdW50OiAjKHByaXZhdGVHcm91cHMpXG4gICAqL1xuICByZWFkb25seSBwcml2YXRlU3VibmV0TmFtZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUm91dGUgVGFibGUgSURzIG9mIHByaXZhdGUgc3VibmV0IGdyb3Vwcy5cbiAgICpcbiAgICogRWxlbWVudCBjb3VudDogIyhhdmFpbGFiaWxpdHlab25lcykgwrcgIyhwcml2YXRlR3JvdXBzKVxuICAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZVN1Ym5ldFJvdXRlVGFibGVJZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogSURzIG9mIGFsbCBpc29sYXRlZCBzdWJuZXRzXG4gICAqXG4gICAqIEVsZW1lbnQgY291bnQ6ICMoYXZhaWxhYmlsaXR5Wm9uZXMpIMK3ICMoaXNvbGF0ZWRHcm91cHMpXG4gICAqL1xuICByZWFkb25seSBpc29sYXRlZFN1Ym5ldElkcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIGlzb2xhdGVkIHN1Ym5ldCBncm91cHNcbiAgICpcbiAgICogRWxlbWVudCBjb3VudDogIyhpc29sYXRlZEdyb3VwcylcbiAgICovXG4gIHJlYWRvbmx5IGlzb2xhdGVkU3VibmV0TmFtZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUm91dGUgVGFibGUgSURzIG9mIGlzb2xhdGVkIHN1Ym5ldCBncm91cHMuXG4gICAqXG4gICAqIEVsZW1lbnQgY291bnQ6ICMoYXZhaWxhYmlsaXR5Wm9uZXMpIMK3ICMoaXNvbGF0ZWRHcm91cHMpXG4gICAqL1xuICByZWFkb25seSBpc29sYXRlZFN1Ym5ldFJvdXRlVGFibGVJZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIFZQTiBnYXRld2F5IElEXG4gICAqL1xuICByZWFkb25seSB2cG5HYXRld2F5SWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzdWJuZXQgZ3JvdXBzIGRpc2NvdmVyZWQgZm9yIHRoZSBnaXZlbiBWUEMuXG4gICAqIFVubGlrZSB0aGUgYWJvdmUgcHJvcGVydGllcywgdGhpcyB3aWxsIGluY2x1ZGUgYXN5bW1ldHJpYyBzdWJuZXRzLFxuICAgKiBpZiB0aGUgVlBDIGhhcyBhbnkuXG4gICAqIFRoaXMgcHJvcGVydHkgd2lsbCBvbmx5IGJlIHBvcHVsYXRlZCBpZiBgVnBjQ29udGV4dFF1ZXJ5LnJldHVybkFzeW1tZXRyaWNTdWJuZXRzYFxuICAgKiBpcyB0cnVlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHN1Ym5ldCBncm91cHMgd2lsbCBiZSByZXR1cm5lZCB1bmxlc3MgYFZwY0NvbnRleHRRdWVyeS5yZXR1cm5Bc3ltbWV0cmljU3VibmV0c2AgaXMgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgc3VibmV0R3JvdXBzPzogVnBjU3VibmV0R3JvdXBbXTtcblxuICAvKipcbiAgICogVGhlIHJlZ2lvbiBpbiB3aGljaCB0aGUgVlBDIGlzIGluLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFJlZ2lvbiBvZiB0aGUgcGFyZW50IHN0YWNrXG4gICAqL1xuICByZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgQVdTIGFjY291bnQgdGhhdCBvd25zIHRoZSBWUEMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRoZSBhY2NvdW50IGlkIG9mIHRoZSBwYXJlbnQgc3RhY2tcbiAgICovXG4gIHJlYWRvbmx5IG93bmVyQWNjb3VudElkPzogc3RyaW5nO1xufVxuIl19
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Models an AWS execution environment, for use within the CDK toolkit.
3
+ */
4
+ export interface Environment {
5
+ /** The arbitrary name of this environment (user-set, or at least user-meaningful) */
6
+ readonly name: string;
7
+ /** The AWS account this environment deploys into */
8
+ readonly account: string;
9
+ /** The AWS region name where this environment deploys into */
10
+ readonly region: string;
11
+ }
12
+ export declare const UNKNOWN_ACCOUNT = "unknown-account";
13
+ export declare const UNKNOWN_REGION = "unknown-region";
14
+ export declare class EnvironmentUtils {
15
+ static parse(environment: string): Environment;
16
+ /**
17
+ * Build an environment object from an account and region
18
+ */
19
+ static make(account: string, region: string): Environment;
20
+ /**
21
+ * Format an environment string from an account and region
22
+ */
23
+ static format(account: string, region: string): string;
24
+ }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EnvironmentUtils = exports.UNKNOWN_REGION = exports.UNKNOWN_ACCOUNT = void 0;
4
+ const error_1 = require("./private/error");
5
+ /**
6
+ * Parser for the artifact environment field.
7
+ *
8
+ * Account validation is relaxed to allow account aliasing in the future.
9
+ */
10
+ const AWS_ENV_REGEX = /aws\:\/\/([a-z0-9A-Z\-\@\.\_]+)\/([a-z\-0-9]+)/;
11
+ exports.UNKNOWN_ACCOUNT = 'unknown-account';
12
+ exports.UNKNOWN_REGION = 'unknown-region';
13
+ class EnvironmentUtils {
14
+ static parse(environment) {
15
+ const env = AWS_ENV_REGEX.exec(environment);
16
+ if (!env) {
17
+ throw new error_1.CloudAssemblyError(`Unable to parse environment specification "${environment}". ` +
18
+ 'Expected format: aws://account/region');
19
+ }
20
+ const [, account, region] = env;
21
+ if (!account || !region) {
22
+ throw new error_1.CloudAssemblyError(`Invalid environment specification: ${environment}`);
23
+ }
24
+ return { account, region, name: environment };
25
+ }
26
+ /**
27
+ * Build an environment object from an account and region
28
+ */
29
+ static make(account, region) {
30
+ return { account, region, name: this.format(account, region) };
31
+ }
32
+ /**
33
+ * Format an environment string from an account and region
34
+ */
35
+ static format(account, region) {
36
+ return `aws://${account}/${region}`;
37
+ }
38
+ }
39
+ exports.EnvironmentUtils = EnvironmentUtils;
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBcUQ7QUFFckQ7Ozs7R0FJRztBQUNILE1BQU0sYUFBYSxHQUFHLGdEQUFnRCxDQUFDO0FBZ0IxRCxRQUFBLGVBQWUsR0FBRyxpQkFBaUIsQ0FBQztBQUNwQyxRQUFBLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQztBQUUvQyxNQUFhLGdCQUFnQjtJQUNwQixNQUFNLENBQUMsS0FBSyxDQUFDLFdBQW1CO1FBQ3JDLE1BQU0sR0FBRyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1QsTUFBTSxJQUFJLDBCQUFrQixDQUMxQiw4Q0FBOEMsV0FBVyxLQUFLO2dCQUM5RCx1Q0FBdUMsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFFRCxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN4QixNQUFNLElBQUksMEJBQWtCLENBQUMsc0NBQXNDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDcEYsQ0FBQztRQUVELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQWUsRUFBRSxNQUFjO1FBQ2hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBZSxFQUFFLE1BQWM7UUFDbEQsT0FBTyxTQUFTLE9BQU8sSUFBSSxNQUFNLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0NBQ0Y7QUE5QkQsNENBOEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2xvdWRBc3NlbWJseUVycm9yIH0gZnJvbSAnLi9wcml2YXRlL2Vycm9yJztcblxuLyoqXG4gKiBQYXJzZXIgZm9yIHRoZSBhcnRpZmFjdCBlbnZpcm9ubWVudCBmaWVsZC5cbiAqXG4gKiBBY2NvdW50IHZhbGlkYXRpb24gaXMgcmVsYXhlZCB0byBhbGxvdyBhY2NvdW50IGFsaWFzaW5nIGluIHRoZSBmdXR1cmUuXG4gKi9cbmNvbnN0IEFXU19FTlZfUkVHRVggPSAvYXdzXFw6XFwvXFwvKFthLXowLTlBLVpcXC1cXEBcXC5cXF9dKylcXC8oW2EtelxcLTAtOV0rKS87XG5cbi8qKlxuICogTW9kZWxzIGFuIEFXUyBleGVjdXRpb24gZW52aXJvbm1lbnQsIGZvciB1c2Ugd2l0aGluIHRoZSBDREsgdG9vbGtpdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbnZpcm9ubWVudCB7XG4gIC8qKiBUaGUgYXJiaXRyYXJ5IG5hbWUgb2YgdGhpcyBlbnZpcm9ubWVudCAodXNlci1zZXQsIG9yIGF0IGxlYXN0IHVzZXItbWVhbmluZ2Z1bCkgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKiBUaGUgQVdTIGFjY291bnQgdGhpcyBlbnZpcm9ubWVudCBkZXBsb3lzIGludG8gKi9cbiAgcmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXG4gIC8qKiBUaGUgQVdTIHJlZ2lvbiBuYW1lIHdoZXJlIHRoaXMgZW52aXJvbm1lbnQgZGVwbG95cyBpbnRvICovXG4gIHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgVU5LTk9XTl9BQ0NPVU5UID0gJ3Vua25vd24tYWNjb3VudCc7XG5leHBvcnQgY29uc3QgVU5LTk9XTl9SRUdJT04gPSAndW5rbm93bi1yZWdpb24nO1xuXG5leHBvcnQgY2xhc3MgRW52aXJvbm1lbnRVdGlscyB7XG4gIHB1YmxpYyBzdGF0aWMgcGFyc2UoZW52aXJvbm1lbnQ6IHN0cmluZyk6IEVudmlyb25tZW50IHtcbiAgICBjb25zdCBlbnYgPSBBV1NfRU5WX1JFR0VYLmV4ZWMoZW52aXJvbm1lbnQpO1xuICAgIGlmICghZW52KSB7XG4gICAgICB0aHJvdyBuZXcgQ2xvdWRBc3NlbWJseUVycm9yKFxuICAgICAgICBgVW5hYmxlIHRvIHBhcnNlIGVudmlyb25tZW50IHNwZWNpZmljYXRpb24gXCIke2Vudmlyb25tZW50fVwiLiBgICtcbiAgICAgICAgJ0V4cGVjdGVkIGZvcm1hdDogYXdzOi8vYWNjb3VudC9yZWdpb24nKTtcbiAgICB9XG5cbiAgICBjb25zdCBbLCBhY2NvdW50LCByZWdpb25dID0gZW52O1xuICAgIGlmICghYWNjb3VudCB8fCAhcmVnaW9uKSB7XG4gICAgICB0aHJvdyBuZXcgQ2xvdWRBc3NlbWJseUVycm9yKGBJbnZhbGlkIGVudmlyb25tZW50IHNwZWNpZmljYXRpb246ICR7ZW52aXJvbm1lbnR9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgYWNjb3VudCwgcmVnaW9uLCBuYW1lOiBlbnZpcm9ubWVudCB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGFuIGVudmlyb25tZW50IG9iamVjdCBmcm9tIGFuIGFjY291bnQgYW5kIHJlZ2lvblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBtYWtlKGFjY291bnQ6IHN0cmluZywgcmVnaW9uOiBzdHJpbmcpOiBFbnZpcm9ubWVudCB7XG4gICAgcmV0dXJuIHsgYWNjb3VudCwgcmVnaW9uLCBuYW1lOiB0aGlzLmZvcm1hdChhY2NvdW50LCByZWdpb24pIH07XG4gIH1cblxuICAvKipcbiAgICogRm9ybWF0IGFuIGVudmlyb25tZW50IHN0cmluZyBmcm9tIGFuIGFjY291bnQgYW5kIHJlZ2lvblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmb3JtYXQoYWNjb3VudDogc3RyaW5nLCByZWdpb246IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBhd3M6Ly8ke2FjY291bnR9LyR7cmVnaW9ufWA7XG4gIH1cbn1cbiJdfQ==
package/lib/index.d.ts ADDED
@@ -0,0 +1,21 @@
1
+ export * from './context/vpc';
2
+ export * from './context/ami';
3
+ export * from './context/load-balancer';
4
+ export * from './context/availability-zones';
5
+ export * from './context/endpoint-service-availability-zones';
6
+ export * from './context/security-group';
7
+ export * from './context/key';
8
+ export * from './context/generic';
9
+ export * from './cloud-artifact';
10
+ import './cloud-artifact-aug';
11
+ export * from './artifacts/asset-manifest-artifact';
12
+ export * from './artifacts/cloudformation-artifact';
13
+ export * from './artifacts/tree-cloud-artifact';
14
+ export * from './artifacts/nested-cloud-assembly-artifact';
15
+ import './artifacts/nested-cloud-assembly-artifact-aug';
16
+ export * from './cloud-assembly';
17
+ export * from './assets';
18
+ export * from './metadata';
19
+ export * from './placeholders';
20
+ export * from './environment';
21
+ export * from './bootstrap';
package/lib/index.js ADDED
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./context/vpc"), exports);
18
+ __exportStar(require("./context/ami"), exports);
19
+ __exportStar(require("./context/load-balancer"), exports);
20
+ __exportStar(require("./context/availability-zones"), exports);
21
+ __exportStar(require("./context/endpoint-service-availability-zones"), exports);
22
+ __exportStar(require("./context/security-group"), exports);
23
+ __exportStar(require("./context/key"), exports);
24
+ __exportStar(require("./context/generic"), exports);
25
+ __exportStar(require("./cloud-artifact"), exports);
26
+ require("./cloud-artifact-aug");
27
+ __exportStar(require("./artifacts/asset-manifest-artifact"), exports);
28
+ __exportStar(require("./artifacts/cloudformation-artifact"), exports);
29
+ __exportStar(require("./artifacts/tree-cloud-artifact"), exports);
30
+ __exportStar(require("./artifacts/nested-cloud-assembly-artifact"), exports);
31
+ require("./artifacts/nested-cloud-assembly-artifact-aug");
32
+ __exportStar(require("./cloud-assembly"), exports);
33
+ __exportStar(require("./assets"), exports);
34
+ __exportStar(require("./metadata"), exports);
35
+ __exportStar(require("./placeholders"), exports);
36
+ __exportStar(require("./environment"), exports);
37
+ __exportStar(require("./bootstrap"), exports);
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0RBQThCO0FBQzlCLGdEQUE4QjtBQUM5QiwwREFBd0M7QUFDeEMsK0RBQTZDO0FBQzdDLGdGQUE4RDtBQUM5RCwyREFBeUM7QUFDekMsZ0RBQThCO0FBQzlCLG9EQUFrQztBQUNsQyxtREFBaUM7QUFDakMsZ0NBQThCO0FBQzlCLHNFQUFvRDtBQUNwRCxzRUFBb0Q7QUFDcEQsa0VBQWdEO0FBQ2hELDZFQUEyRDtBQUMzRCwwREFBd0Q7QUFDeEQsbURBQWlDO0FBQ2pDLDJDQUF5QjtBQUN6Qiw2Q0FBMkI7QUFDM0IsaURBQStCO0FBQy9CLGdEQUE4QjtBQUM5Qiw4Q0FBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbnRleHQvdnBjJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC9hbWknO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0L2xvYWQtYmFsYW5jZXInO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0L2F2YWlsYWJpbGl0eS16b25lcyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRleHQvZW5kcG9pbnQtc2VydmljZS1hdmFpbGFiaWxpdHktem9uZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0L3NlY3VyaXR5LWdyb3VwJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC9rZXknO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0L2dlbmVyaWMnO1xuZXhwb3J0ICogZnJvbSAnLi9jbG91ZC1hcnRpZmFjdCc7XG5pbXBvcnQgJy4vY2xvdWQtYXJ0aWZhY3QtYXVnJztcbmV4cG9ydCAqIGZyb20gJy4vYXJ0aWZhY3RzL2Fzc2V0LW1hbmlmZXN0LWFydGlmYWN0JztcbmV4cG9ydCAqIGZyb20gJy4vYXJ0aWZhY3RzL2Nsb3VkZm9ybWF0aW9uLWFydGlmYWN0JztcbmV4cG9ydCAqIGZyb20gJy4vYXJ0aWZhY3RzL3RyZWUtY2xvdWQtYXJ0aWZhY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9hcnRpZmFjdHMvbmVzdGVkLWNsb3VkLWFzc2VtYmx5LWFydGlmYWN0JztcbmltcG9ydCAnLi9hcnRpZmFjdHMvbmVzdGVkLWNsb3VkLWFzc2VtYmx5LWFydGlmYWN0LWF1Zyc7XG5leHBvcnQgKiBmcm9tICcuL2Nsb3VkLWFzc2VtYmx5JztcbmV4cG9ydCAqIGZyb20gJy4vYXNzZXRzJztcbmV4cG9ydCAqIGZyb20gJy4vbWV0YWRhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi9wbGFjZWhvbGRlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9lbnZpcm9ubWVudCc7XG5leHBvcnQgKiBmcm9tICcuL2Jvb3RzdHJhcCc7XG4iXX0=
@@ -0,0 +1,27 @@
1
+ import type * as cxschema from '@aws-cdk/cloud-assembly-schema';
2
+ /**
3
+ * The key used when CDK path is embedded in **CloudFormation template** metadata (not cdk metadata).
4
+ */
5
+ export declare const PATH_METADATA_KEY = "aws:cdk:path";
6
+ export declare enum SynthesisMessageLevel {
7
+ INFO = "info",
8
+ WARNING = "warning",
9
+ ERROR = "error"
10
+ }
11
+ export interface MetadataEntryResult extends cxschema.MetadataEntry {
12
+ /**
13
+ * The path in which this entry was defined.
14
+ */
15
+ readonly path: string;
16
+ }
17
+ /**
18
+ * Metadata associated with the objects in the stack's Construct tree
19
+ */
20
+ export type StackMetadata = {
21
+ [path: string]: cxschema.MetadataEntry[];
22
+ };
23
+ export interface SynthesisMessage {
24
+ readonly level: SynthesisMessageLevel;
25
+ readonly id: string;
26
+ readonly entry: cxschema.MetadataEntry;
27
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SynthesisMessageLevel = exports.PATH_METADATA_KEY = void 0;
4
+ /**
5
+ * The key used when CDK path is embedded in **CloudFormation template** metadata (not cdk metadata).
6
+ */
7
+ exports.PATH_METADATA_KEY = 'aws:cdk:path';
8
+ var SynthesisMessageLevel;
9
+ (function (SynthesisMessageLevel) {
10
+ SynthesisMessageLevel["INFO"] = "info";
11
+ SynthesisMessageLevel["WARNING"] = "warning";
12
+ SynthesisMessageLevel["ERROR"] = "error";
13
+ })(SynthesisMessageLevel || (exports.SynthesisMessageLevel = SynthesisMessageLevel = {}));
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtZXRhZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQTs7R0FFRztBQUNVLFFBQUEsaUJBQWlCLEdBQUcsY0FBYyxDQUFDO0FBRWhELElBQVkscUJBSVg7QUFKRCxXQUFZLHFCQUFxQjtJQUMvQixzQ0FBYSxDQUFBO0lBQ2IsNENBQW1CLENBQUE7SUFDbkIsd0NBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSlcscUJBQXFCLHFDQUFyQixxQkFBcUIsUUFJaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIGN4c2NoZW1hIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5cbi8qKlxuICogVGhlIGtleSB1c2VkIHdoZW4gQ0RLIHBhdGggaXMgZW1iZWRkZWQgaW4gKipDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZSoqIG1ldGFkYXRhIChub3QgY2RrIG1ldGFkYXRhKS5cbiAqL1xuZXhwb3J0IGNvbnN0IFBBVEhfTUVUQURBVEFfS0VZID0gJ2F3czpjZGs6cGF0aCc7XG5cbmV4cG9ydCBlbnVtIFN5bnRoZXNpc01lc3NhZ2VMZXZlbCB7XG4gIElORk8gPSAnaW5mbycsXG4gIFdBUk5JTkcgPSAnd2FybmluZycsXG4gIEVSUk9SID0gJ2Vycm9yJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXRhZGF0YUVudHJ5UmVzdWx0IGV4dGVuZHMgY3hzY2hlbWEuTWV0YWRhdGFFbnRyeSB7XG4gIC8qKlxuICAgKiBUaGUgcGF0aCBpbiB3aGljaCB0aGlzIGVudHJ5IHdhcyBkZWZpbmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xufVxuXG4vKipcbiAqIE1ldGFkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgb2JqZWN0cyBpbiB0aGUgc3RhY2sncyBDb25zdHJ1Y3QgdHJlZVxuICovXG5leHBvcnQgdHlwZSBTdGFja01ldGFkYXRhID0geyBbcGF0aDogc3RyaW5nXTogY3hzY2hlbWEuTWV0YWRhdGFFbnRyeVtdIH07XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3ludGhlc2lzTWVzc2FnZSB7XG4gIHJlYWRvbmx5IGxldmVsOiBTeW50aGVzaXNNZXNzYWdlTGV2ZWw7XG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGVudHJ5OiBjeHNjaGVtYS5NZXRhZGF0YUVudHJ5O1xufVxuIl19
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Placeholders which can be used manifests
3
+ *
4
+ * These can occur both in the Asset Manifest as well as the general
5
+ * Cloud Assembly manifest.
6
+ */
7
+ export declare class EnvironmentPlaceholders {
8
+ /**
9
+ * Insert this into the destination fields to be replaced with the current region
10
+ */
11
+ static readonly CURRENT_REGION = "${AWS::Region}";
12
+ /**
13
+ * Insert this into the destination fields to be replaced with the current account
14
+ */
15
+ static readonly CURRENT_ACCOUNT = "${AWS::AccountId}";
16
+ /**
17
+ * Insert this into the destination fields to be replaced with the current partition
18
+ */
19
+ static readonly CURRENT_PARTITION = "${AWS::Partition}";
20
+ /**
21
+ * Replace the environment placeholders in all strings found in a complex object.
22
+ *
23
+ * Duplicated between cdk-assets and aws-cdk CLI because we don't have a good single place to put it
24
+ * (they're nominally independent tools).
25
+ */
26
+ static replace(object: any, values: EnvironmentPlaceholderValues): any;
27
+ /**
28
+ * Like 'replace', but asynchronous
29
+ */
30
+ static replaceAsync(object: any, provider: IEnvironmentPlaceholderProvider): Promise<any>;
31
+ private static recurse;
32
+ }
33
+ /**
34
+ * Return the appropriate values for the environment placeholders
35
+ */
36
+ export interface EnvironmentPlaceholderValues {
37
+ /**
38
+ * Return the region
39
+ */
40
+ readonly region: string;
41
+ /**
42
+ * Return the account
43
+ */
44
+ readonly accountId: string;
45
+ /**
46
+ * Return the partition
47
+ */
48
+ readonly partition: string;
49
+ }
50
+ /**
51
+ * Return the appropriate values for the environment placeholders
52
+ */
53
+ export interface IEnvironmentPlaceholderProvider {
54
+ /**
55
+ * Return the region
56
+ */
57
+ region(): Promise<string>;
58
+ /**
59
+ * Return the account
60
+ */
61
+ accountId(): Promise<string>;
62
+ /**
63
+ * Return the partition
64
+ */
65
+ partition(): Promise<string>;
66
+ }
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EnvironmentPlaceholders = void 0;
4
+ /**
5
+ * Placeholders which can be used manifests
6
+ *
7
+ * These can occur both in the Asset Manifest as well as the general
8
+ * Cloud Assembly manifest.
9
+ */
10
+ class EnvironmentPlaceholders {
11
+ /**
12
+ * Replace the environment placeholders in all strings found in a complex object.
13
+ *
14
+ * Duplicated between cdk-assets and aws-cdk CLI because we don't have a good single place to put it
15
+ * (they're nominally independent tools).
16
+ */
17
+ static replace(object, values) {
18
+ return this.recurse(object, value => {
19
+ value = replaceAll(value, EnvironmentPlaceholders.CURRENT_REGION, values.region);
20
+ value = replaceAll(value, EnvironmentPlaceholders.CURRENT_ACCOUNT, values.accountId);
21
+ value = replaceAll(value, EnvironmentPlaceholders.CURRENT_PARTITION, values.partition);
22
+ return value;
23
+ });
24
+ }
25
+ /**
26
+ * Like 'replace', but asynchronous
27
+ */
28
+ static async replaceAsync(object, provider) {
29
+ let needRegion = false;
30
+ let needAccountId = false;
31
+ let needPartition = false;
32
+ this.recurse(object, value => {
33
+ if (value.indexOf(EnvironmentPlaceholders.CURRENT_REGION) > 1) {
34
+ needRegion = true;
35
+ }
36
+ if (value.indexOf(EnvironmentPlaceholders.CURRENT_ACCOUNT) > 1) {
37
+ needAccountId = true;
38
+ }
39
+ if (value.indexOf(EnvironmentPlaceholders.CURRENT_PARTITION) > 1) {
40
+ needPartition = true;
41
+ }
42
+ return value;
43
+ });
44
+ const region = needRegion ? await provider.region() : undefined;
45
+ const accountId = needAccountId ? await provider.accountId() : undefined;
46
+ const partition = needPartition ? await provider.partition() : undefined;
47
+ return this.recurse(object, value => {
48
+ value = replaceAll(value, EnvironmentPlaceholders.CURRENT_REGION, region ?? 'WONTHAPPEN');
49
+ value = replaceAll(value, EnvironmentPlaceholders.CURRENT_ACCOUNT, accountId ?? 'WONTHAPPEN');
50
+ value = replaceAll(value, EnvironmentPlaceholders.CURRENT_PARTITION, partition ?? 'WONTHAPPEN');
51
+ return value;
52
+ });
53
+ }
54
+ static recurse(value, cb) {
55
+ if (typeof value === 'string') {
56
+ return cb(value);
57
+ }
58
+ if (typeof value !== 'object' || value === null) {
59
+ return value;
60
+ }
61
+ if (Array.isArray(value)) {
62
+ return value.map(x => this.recurse(x, cb));
63
+ }
64
+ const ret = {};
65
+ for (const [key, inner] of Object.entries(value)) {
66
+ ret[key] = this.recurse(inner, cb);
67
+ }
68
+ return ret;
69
+ }
70
+ }
71
+ exports.EnvironmentPlaceholders = EnvironmentPlaceholders;
72
+ /**
73
+ * Insert this into the destination fields to be replaced with the current region
74
+ */
75
+ EnvironmentPlaceholders.CURRENT_REGION = '${AWS::Region}';
76
+ /**
77
+ * Insert this into the destination fields to be replaced with the current account
78
+ */
79
+ EnvironmentPlaceholders.CURRENT_ACCOUNT = '${AWS::AccountId}';
80
+ /**
81
+ * Insert this into the destination fields to be replaced with the current partition
82
+ */
83
+ EnvironmentPlaceholders.CURRENT_PARTITION = '${AWS::Partition}';
84
+ /**
85
+ * A "replace-all" function that doesn't require us escaping a literal string to a regex
86
+ */
87
+ function replaceAll(s, search, replace) {
88
+ return s.split(search).join(replace);
89
+ }
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Vob2xkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicGxhY2Vob2xkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7OztHQUtHO0FBQ0gsTUFBYSx1QkFBdUI7SUFnQmxDOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFXLEVBQUUsTUFBb0M7UUFDckUsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRTtZQUNsQyxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssRUFBRSx1QkFBdUIsQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2pGLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxFQUFFLHVCQUF1QixDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDckYsS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsdUJBQXVCLENBQUMsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZGLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFXLEVBQUUsUUFBeUM7UUFDckYsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFFMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDM0IsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUM5RCxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQ3BCLENBQUM7WUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENB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d2hpY2ggY2FuIGJlIHVzZWQgbWFuaWZlc3RzXG4gKlxuICogVGhlc2UgY2FuIG9jY3VyIGJvdGggaW4gdGhlIEFzc2V0IE1hbmlmZXN0IGFzIHdlbGwgYXMgdGhlIGdlbmVyYWxcbiAqIENsb3VkIEFzc2VtYmx5IG1hbmlmZXN0LlxuICovXG5leHBvcnQgY2xhc3MgRW52aXJvbm1lbnRQbGFjZWhvbGRlcnMge1xuICAvKipcbiAgICogSW5zZXJ0IHRoaXMgaW50byB0aGUgZGVzdGluYXRpb24gZmllbGRzIHRvIGJlIHJlcGxhY2VkIHdpdGggdGhlIGN1cnJlbnQgcmVnaW9uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENVUlJFTlRfUkVHSU9OID0gJyR7QVdTOjpSZWdpb259JztcblxuICAvKipcbiAgICogSW5zZXJ0IHRoaXMgaW50byB0aGUgZGVzdGluYXRpb24gZmllbGRzIHRvIGJlIHJlcGxhY2VkIHdpdGggdGhlIGN1cnJlbnQgYWNjb3VudFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDVVJSRU5UX0FDQ09VTlQgPSAnJHtBV1M6OkFjY291bnRJZH0nO1xuXG4gIC8qKlxuICAgKiBJbnNlcnQgdGhpcyBpbnRvIHRoZSBkZXN0aW5hdGlvbiBmaWVsZHMgdG8gYmUgcmVwbGFjZWQgd2l0aCB0aGUgY3VycmVudCBwYXJ0aXRpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ1VSUkVOVF9QQVJUSVRJT04gPSAnJHtBV1M6OlBhcnRpdGlvbn0nO1xuXG4gIC8qKlxuICAgKiBSZXBsYWNlIHRoZSBlbnZpcm9ubWVudCBwbGFjZWhvbGRlcnMgaW4gYWxsIHN0cmluZ3MgZm91bmQgaW4gYSBjb21wbGV4IG9iamVjdC5cbiAgICpcbiAgICogRHVwbGljYXRlZCBiZXR3ZWVuIGNkay1hc3NldHMgYW5kIGF3cy1jZGsgQ0xJIGJlY2F1c2Ugd2UgZG9uJ3QgaGF2ZSBhIGdvb2Qgc2luZ2xlIHBsYWNlIHRvIHB1dCBpdFxuICAgKiAodGhleSdyZSBub21pbmFsbHkgaW5kZXBlbmRlbnQgdG9vbHMpLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZXBsYWNlKG9iamVjdDogYW55LCB2YWx1ZXM6IEVudmlyb25tZW50UGxhY2Vob2xkZXJWYWx1ZXMpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLnJlY3Vyc2Uob2JqZWN0LCB2YWx1ZSA9PiB7XG4gICAgICB2YWx1ZSA9IHJlcGxhY2VBbGwodmFsdWUsIEVudmlyb25tZW50UGxhY2Vob2xkZXJzLkNVUlJFTlRfUkVHSU9OLCB2YWx1ZXMucmVnaW9uKTtcbiAgICAgIHZhbHVlID0gcmVwbGFjZUFsbCh2YWx1ZSwgRW52aXJvbm1lbnRQbGFjZWhvbGRlcnMuQ1VSUkVOVF9BQ0NPVU5ULCB2YWx1ZXMuYWNjb3VudElkKTtcbiAgICAgIHZhbHVlID0gcmVwbGFjZUFsbCh2YWx1ZSwgRW52aXJvbm1lbnRQbGFjZWhvbGRlcnMuQ1VSUkVOVF9QQVJUSVRJT04sIHZhbHVlcy5wYXJ0aXRpb24pO1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIExpa2UgJ3JlcGxhY2UnLCBidXQgYXN5bmNocm9ub3VzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFzeW5jIHJlcGxhY2VBc3luYyhvYmplY3Q6IGFueSwgcHJvdmlkZXI6IElFbnZpcm9ubWVudFBsYWNlaG9sZGVyUHJvdmlkZXIpOiBQcm9taXNlPGFueT4ge1xuICAgIGxldCBuZWVkUmVnaW9uID0gZmFsc2U7XG4gICAgbGV0IG5lZWRBY2NvdW50SWQgPSBmYWxzZTtcbiAgICBsZXQgbmVlZFBhcnRpdGlvbiA9IGZhbHNlO1xuXG4gICAgdGhpcy5yZWN1cnNlKG9iamVjdCwgdmFsdWUgPT4ge1xuICAgICAgaWYgKHZhbHVlLmluZGV4T2YoRW52aXJvbm1lbnRQbGFjZWhvbGRlcnMuQ1VSUkVOVF9SRUdJT04pID4gMSkge1xuICAgICAgICBuZWVkUmVnaW9uID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmICh2YWx1ZS5pbmRleE9mKEVudmlyb25tZW50UGxhY2Vob2xkZXJzLkNVUlJFTlRfQUNDT1VOVCkgPiAxKSB7XG4gICAgICAgIG5lZWRBY2NvdW50SWQgPSB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKHZhbHVlLmluZGV4T2YoRW52aXJvbm1lbnRQbGFjZWhvbGRlcnMuQ1VSUkVOVF9QQVJUSVRJT04pID4gMSkge1xuICAgICAgICBuZWVkUGFydGl0aW9uID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlZ2lvbiA9IG5lZWRSZWdpb24gPyBhd2FpdCBwcm92aWRlci5yZWdpb24oKSA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBhY2NvdW50SWQgPSBuZWVkQWNjb3VudElkID8gYXdhaXQgcHJvdmlkZXIuYWNjb3VudElkKCkgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgcGFydGl0aW9uID0gbmVlZFBhcnRpdGlvbiA/IGF3YWl0IHByb3ZpZGVyLnBhcnRpdGlvbigpIDogdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIHRoaXMucmVjdXJzZShvYmplY3QsIHZhbHVlID0+IHtcbiAgICAgIHZhbHVlID0gcmVwbGFjZUFsbCh2YWx1ZSwgRW52aXJvbm1lbnRQbGFjZWhvbGRlcnMuQ1VSUkVOVF9SRUdJT04sIHJlZ2lvbiA/PyAnV09OVEhBUFBFTicpO1xuICAgICAgdmFsdWUgPSByZXBsYWNlQWxsKHZhbHVlLCBFbnZpcm9ubWVudFBsYWNlaG9sZGVycy5DVVJSRU5UX0FDQ09VTlQsIGFjY291bnRJZCA/PyAnV09OVEhBUFBFTicpO1xuICAgICAgdmFsdWUgPSByZXBsYWNlQWxsKHZhbHVlLCBFbnZpcm9ubWVudFBsYWNlaG9sZGVycy5DVVJSRU5UX1BBUlRJVElPTiwgcGFydGl0aW9uID8/ICdXT05USEFQUEVOJyk7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyByZWN1cnNlKHZhbHVlOiBhbnksIGNiOiAoeDogc3RyaW5nKSA9PiBzdHJpbmcpOiBhbnkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gY2IodmFsdWUpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0JyB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5tYXAoeCA9PiB0aGlzLnJlY3Vyc2UoeCwgY2IpKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIGlubmVyXSBvZiBPYmplY3QuZW50cmllcyh2YWx1ZSkpIHtcbiAgICAgIHJldFtrZXldID0gdGhpcy5yZWN1cnNlKGlubmVyLCBjYik7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm4gdGhlIGFwcHJvcHJpYXRlIHZhbHVlcyBmb3IgdGhlIGVudmlyb25tZW50IHBsYWNlaG9sZGVyc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEVudmlyb25tZW50UGxhY2Vob2xkZXJWYWx1ZXMge1xuICAvKipcbiAgICogUmV0dXJuIHRoZSByZWdpb25cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGFjY291bnRcbiAgICovXG4gIHJlYWRvbmx5IGFjY291bnRJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIHBhcnRpdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSBhcHByb3ByaWF0ZSB2YWx1ZXMgZm9yIHRoZSBlbnZpcm9ubWVudCBwbGFjZWhvbGRlcnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJRW52aXJvbm1lbnRQbGFjZWhvbGRlclByb3ZpZGVyIHtcbiAgLyoqXG4gICAqIFJldHVybiB0aGUgcmVnaW9uXG4gICAqL1xuICByZWdpb24oKTogUHJvbWlzZTxzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGFjY291bnRcbiAgICovXG4gIGFjY291bnRJZCgpOiBQcm9taXNlPHN0cmluZz47XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgcGFydGl0aW9uXG4gICAqL1xuICBwYXJ0aXRpb24oKTogUHJvbWlzZTxzdHJpbmc+O1xufVxuXG4vKipcbiAqIEEgXCJyZXBsYWNlLWFsbFwiIGZ1bmN0aW9uIHRoYXQgZG9lc24ndCByZXF1aXJlIHVzIGVzY2FwaW5nIGEgbGl0ZXJhbCBzdHJpbmcgdG8gYSByZWdleFxuICovXG5mdW5jdGlvbiByZXBsYWNlQWxsKHM6IHN0cmluZywgc2VhcmNoOiBzdHJpbmcsIHJlcGxhY2U6IHN0cmluZykge1xuICByZXR1cm4gcy5zcGxpdChzZWFyY2gpLmpvaW4ocmVwbGFjZSk7XG59XG4iXX0=
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
5
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
6
+ };
7
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
8
+ if (kind === "m") throw new TypeError("Private method is not writable");
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
11
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
12
+ };
13
+ var _CloudAssemblyError_time;
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.CloudAssemblyError = void 0;
16
+ const ASSEMBLY_ERROR_SYMBOL = Symbol.for('@aws-cdk/cx-api.CloudAssemblyError');
17
+ /**
18
+ * A CloudAssemblyError is thrown for issues with the synthesized CloudAssembly.
19
+ *
20
+ * These are typically exceptions that are unexpected for end-users,
21
+ * and should only occur during abnormal operation, e.g. when the synthesis
22
+ * didn't fully complete.
23
+ *
24
+ * @internal
25
+ */
26
+ class CloudAssemblyError extends Error {
27
+ /**
28
+ * The time the error was thrown.
29
+ */
30
+ get time() {
31
+ return __classPrivateFieldGet(this, _CloudAssemblyError_time, "f");
32
+ }
33
+ get type() {
34
+ return 'assembly';
35
+ }
36
+ constructor(msg) {
37
+ super(msg);
38
+ _CloudAssemblyError_time.set(this, void 0);
39
+ Object.setPrototypeOf(this, CloudAssemblyError.prototype);
40
+ Object.defineProperty(this, ASSEMBLY_ERROR_SYMBOL, { value: true });
41
+ this.name = new.target.name;
42
+ __classPrivateFieldSet(this, _CloudAssemblyError_time, new Date().toISOString(), "f");
43
+ }
44
+ }
45
+ exports.CloudAssemblyError = CloudAssemblyError;
46
+ _CloudAssemblyError_time = new WeakMap();
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxNQUFNLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsb0NBQW9DLENBQUMsQ0FBQztBQUUvRTs7Ozs7Ozs7R0FRRztBQUNILE1BQWEsa0JBQW1CLFNBQVEsS0FBSztJQUczQzs7T0FFRztJQUNILElBQVcsSUFBSTtRQUNiLE9BQU8sdUJBQUEsSUFBSSxnQ0FBTSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLElBQUk7UUFDYixPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQsWUFBWSxHQUFXO1FBQ3JCLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQWRiLDJDQUFjO1FBZ0JaLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFELE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFcEUsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztRQUM1Qix1QkFBQSxJQUFJLDRCQUFTLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLE1BQUEsQ0FBQztJQUN4QyxDQUFDO0NBQ0Y7QUF2QkQsZ0RBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgQVNTRU1CTFlfRVJST1JfU1lNQk9MID0gU3ltYm9sLmZvcignQGF3cy1jZGsvY3gtYXBpLkNsb3VkQXNzZW1ibHlFcnJvcicpO1xuXG4vKipcbiAqIEEgQ2xvdWRBc3NlbWJseUVycm9yIGlzIHRocm93biBmb3IgaXNzdWVzIHdpdGggdGhlIHN5bnRoZXNpemVkIENsb3VkQXNzZW1ibHkuXG4gKlxuICogVGhlc2UgYXJlIHR5cGljYWxseSBleGNlcHRpb25zIHRoYXQgYXJlIHVuZXhwZWN0ZWQgZm9yIGVuZC11c2VycyxcbiAqIGFuZCBzaG91bGQgb25seSBvY2N1ciBkdXJpbmcgYWJub3JtYWwgb3BlcmF0aW9uLCBlLmcuIHdoZW4gdGhlIHN5bnRoZXNpc1xuICogZGlkbid0IGZ1bGx5IGNvbXBsZXRlLlxuICpcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgQ2xvdWRBc3NlbWJseUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAjdGltZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZSB0aGUgZXJyb3Igd2FzIHRocm93bi5cbiAgICovXG4gIHB1YmxpYyBnZXQgdGltZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiN0aW1lO1xuICB9XG5cbiAgcHVibGljIGdldCB0eXBlKCk6ICdhc3NlbWJseScge1xuICAgIHJldHVybiAnYXNzZW1ibHknO1xuICB9XG5cbiAgY29uc3RydWN0b3IobXNnOiBzdHJpbmcpIHtcbiAgICBzdXBlcihtc2cpO1xuXG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIENsb3VkQXNzZW1ibHlFcnJvci5wcm90b3R5cGUpO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBBU1NFTUJMWV9FUlJPUl9TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG5cbiAgICB0aGlzLm5hbWUgPSBuZXcudGFyZ2V0Lm5hbWU7XG4gICAgdGhpcy4jdGltZSA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,11 @@
1
+ export type KeyFunc<T> = (x: T) => string;
2
+ export type DepFunc<T> = (x: T) => string[];
3
+ /**
4
+ * Return a topological sort of all elements of xs, according to the given dependency functions
5
+ *
6
+ * Dependencies outside the referenced set are ignored.
7
+ *
8
+ * Not a stable sort, but in order to keep the order as stable as possible, we'll sort by key
9
+ * among elements of equal precedence.
10
+ */
11
+ export declare function topologicalSort<T>(xs: Iterable<T>, keyFn: KeyFunc<T>, depFn: DepFunc<T>): T[];
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.topologicalSort = topologicalSort;
4
+ const error_1 = require("./error");
5
+ /**
6
+ * Return a topological sort of all elements of xs, according to the given dependency functions
7
+ *
8
+ * Dependencies outside the referenced set are ignored.
9
+ *
10
+ * Not a stable sort, but in order to keep the order as stable as possible, we'll sort by key
11
+ * among elements of equal precedence.
12
+ */
13
+ function topologicalSort(xs, keyFn, depFn) {
14
+ const remaining = new Map();
15
+ for (const element of xs) {
16
+ const key = keyFn(element);
17
+ remaining.set(key, { key, element, dependencies: depFn(element) });
18
+ }
19
+ const ret = new Array();
20
+ while (remaining.size > 0) {
21
+ // All elements with no more deps in the set can be ordered
22
+ const selectable = Array.from(remaining.values()).filter(e => e.dependencies.every(d => !remaining.has(d)));
23
+ selectable.sort((a, b) => a.key < b.key ? -1 : b.key < a.key ? 1 : 0);
24
+ for (const selected of selectable) {
25
+ ret.push(selected.element);
26
+ remaining.delete(selected.key);
27
+ }
28
+ // If we didn't make any progress, we got stuck
29
+ if (selectable.length === 0) {
30
+ throw new error_1.CloudAssemblyError(`Could not determine ordering between: ${Array.from(remaining.keys()).join(', ')}`);
31
+ }
32
+ }
33
+ return ret;
34
+ }
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wb3NvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0b3Bvc29ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWFBLDBDQTBCQztBQXZDRCxtQ0FBNkM7QUFLN0M7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLGVBQWUsQ0FBSSxFQUFlLEVBQUUsS0FBaUIsRUFBRSxLQUFpQjtJQUN0RixNQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBMEIsQ0FBQztJQUNwRCxLQUFLLE1BQU0sT0FBTyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxFQUFLLENBQUM7SUFDM0IsT0FBTyxTQUFTLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzFCLDJEQUEyRDtRQUMzRCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU1RyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXRFLEtBQUssTUFBTSxRQUFRLElBQUksVUFBVSxFQUFFLENBQUM7WUFDbEMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDM0IsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUVELCtDQUErQztRQUMvQyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDNUIsTUFBTSxJQUFJLDBCQUFrQixDQUFDLHlDQUF5QyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbkgsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDbG91ZEFzc2VtYmx5RXJyb3IgfSBmcm9tICcuL2Vycm9yJztcblxuZXhwb3J0IHR5cGUgS2V5RnVuYzxUPiA9ICh4OiBUKSA9PiBzdHJpbmc7XG5leHBvcnQgdHlwZSBEZXBGdW5jPFQ+ID0gKHg6IFQpID0+IHN0cmluZ1tdO1xuXG4vKipcbiAqIFJldHVybiBhIHRvcG9sb2dpY2FsIHNvcnQgb2YgYWxsIGVsZW1lbnRzIG9mIHhzLCBhY2NvcmRpbmcgdG8gdGhlIGdpdmVuIGRlcGVuZGVuY3kgZnVuY3Rpb25zXG4gKlxuICogRGVwZW5kZW5jaWVzIG91dHNpZGUgdGhlIHJlZmVyZW5jZWQgc2V0IGFyZSBpZ25vcmVkLlxuICpcbiAqIE5vdCBhIHN0YWJsZSBzb3J0LCBidXQgaW4gb3JkZXIgdG8ga2VlcCB0aGUgb3JkZXIgYXMgc3RhYmxlIGFzIHBvc3NpYmxlLCB3ZSdsbCBzb3J0IGJ5IGtleVxuICogYW1vbmcgZWxlbWVudHMgb2YgZXF1YWwgcHJlY2VkZW5jZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvcG9sb2dpY2FsU29ydDxUPih4czogSXRlcmFibGU8VD4sIGtleUZuOiBLZXlGdW5jPFQ+LCBkZXBGbjogRGVwRnVuYzxUPik6IFRbXSB7XG4gIGNvbnN0IHJlbWFpbmluZyA9IG5ldyBNYXA8c3RyaW5nLCBUb3BvRWxlbWVudDxUPj4oKTtcbiAgZm9yIChjb25zdCBlbGVtZW50IG9mIHhzKSB7XG4gICAgY29uc3Qga2V5ID0ga2V5Rm4oZWxlbWVudCk7XG4gICAgcmVtYWluaW5nLnNldChrZXksIHsga2V5LCBlbGVtZW50LCBkZXBlbmRlbmNpZXM6IGRlcEZuKGVsZW1lbnQpIH0pO1xuICB9XG5cbiAgY29uc3QgcmV0ID0gbmV3IEFycmF5PFQ+KCk7XG4gIHdoaWxlIChyZW1haW5pbmcuc2l6ZSA+IDApIHtcbiAgICAvLyBBbGwgZWxlbWVudHMgd2l0aCBubyBtb3JlIGRlcHMgaW4gdGhlIHNldCBjYW4gYmUgb3JkZXJlZFxuICAgIGNvbnN0IHNlbGVjdGFibGUgPSBBcnJheS5mcm9tKHJlbWFpbmluZy52YWx1ZXMoKSkuZmlsdGVyKGUgPT4gZS5kZXBlbmRlbmNpZXMuZXZlcnkoZCA9PiAhcmVtYWluaW5nLmhhcyhkKSkpO1xuXG4gICAgc2VsZWN0YWJsZS5zb3J0KChhLCBiKSA9PiBhLmtleSA8IGIua2V5ID8gLTEgOiBiLmtleSA8IGEua2V5ID8gMSA6IDApO1xuXG4gICAgZm9yIChjb25zdCBzZWxlY3RlZCBvZiBzZWxlY3RhYmxlKSB7XG4gICAgICByZXQucHVzaChzZWxlY3RlZC5lbGVtZW50KTtcbiAgICAgIHJlbWFpbmluZy5kZWxldGUoc2VsZWN0ZWQua2V5KTtcbiAgICB9XG5cbiAgICAvLyBJZiB3ZSBkaWRuJ3QgbWFrZSBhbnkgcHJvZ3Jlc3MsIHdlIGdvdCBzdHVja1xuICAgIGlmIChzZWxlY3RhYmxlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IENsb3VkQXNzZW1ibHlFcnJvcihgQ291bGQgbm90IGRldGVybWluZSBvcmRlcmluZyBiZXR3ZWVuOiAke0FycmF5LmZyb20ocmVtYWluaW5nLmtleXMoKSkuam9pbignLCAnKX1gKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmV0O1xufVxuXG5pbnRlcmZhY2UgVG9wb0VsZW1lbnQ8VD4ge1xuICBrZXk6IHN0cmluZztcbiAgZGVwZW5kZW5jaWVzOiBzdHJpbmdbXTtcbiAgZWxlbWVudDogVDtcbn1cbiJdfQ==