aws-delivlib 13.6.2 → 13.7.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.
Files changed (29) hide show
  1. package/cdk.out/{asset.98dba9b3d79739d40a37e0621754556a791eef3b1c96e913c6e8d5df3a379bd4 → asset.0ff875115bf3a3ba9f32946b1f2b9b153553ecba0e511c42ac11bef064968c40}/index.js +30 -30
  2. package/cdk.out/asset.15684a15d07860e99d2a8079150ad33dd2cb743677fcd7016dd07345e1b69538/__entrypoint__.js +119 -0
  3. package/cdk.out/asset.15684a15d07860e99d2a8079150ad33dd2cb743677fcd7016dd07345e1b69538/index.d.ts +1 -0
  4. package/cdk.out/asset.15684a15d07860e99d2a8079150ad33dd2cb743677fcd7016dd07345e1b69538/index.js +81 -0
  5. package/cdk.out/{asset.70d613312145b8280d33a47035cc5be2a9bd0e5069705e39f83b14cd1f720e99 → asset.9012a4bd6eb36f7ec4fec65ce817435d9b8dda297c62e87163a773c7d25c60a9}/_cloud-formation.js +0 -0
  6. package/cdk.out/{asset.70d613312145b8280d33a47035cc5be2a9bd0e5069705e39f83b14cd1f720e99 → asset.9012a4bd6eb36f7ec4fec65ce817435d9b8dda297c62e87163a773c7d25c60a9}/_exec.js +0 -0
  7. package/cdk.out/{asset.70d613312145b8280d33a47035cc5be2a9bd0e5069705e39f83b14cd1f720e99 → asset.9012a4bd6eb36f7ec4fec65ce817435d9b8dda297c62e87163a773c7d25c60a9}/_lambda.js +0 -0
  8. package/cdk.out/{asset.70d613312145b8280d33a47035cc5be2a9bd0e5069705e39f83b14cd1f720e99 → asset.9012a4bd6eb36f7ec4fec65ce817435d9b8dda297c62e87163a773c7d25c60a9}/_rmrf.js +0 -0
  9. package/cdk.out/{asset.70d613312145b8280d33a47035cc5be2a9bd0e5069705e39f83b14cd1f720e99 → asset.9012a4bd6eb36f7ec4fec65ce817435d9b8dda297c62e87163a773c7d25c60a9}/certificate-signing-request.js +18 -3
  10. package/cdk.out/{asset.70d613312145b8280d33a47035cc5be2a9bd0e5069705e39f83b14cd1f720e99 → asset.9012a4bd6eb36f7ec4fec65ce817435d9b8dda297c62e87163a773c7d25c60a9}/index.js +18 -3
  11. package/cdk.out/delivlib-test.assets.json +22 -8
  12. package/cdk.out/delivlib-test.template.json +237 -4
  13. package/cdk.out/manifest.json +129 -16
  14. package/cdk.out/tree.json +228 -2
  15. package/lib/code-signing/certificate-signing-request.d.ts +4 -1
  16. package/lib/code-signing/certificate-signing-request.js +11 -1
  17. package/lib/code-signing/certificate-signing-request.ts +17 -1
  18. package/lib/custom-resource-handlers/bin/certificate-signing-request/certificate-signing-request.js +18 -3
  19. package/lib/custom-resource-handlers/bin/certificate-signing-request/index.js +18 -3
  20. package/lib/custom-resource-handlers/src/certificate-signing-request.js +18 -3
  21. package/lib/custom-resource-handlers/src/certificate-signing-request.ts +19 -2
  22. package/lib/custom-resource-handlers/src/certificate-signing-request.tsbuildinfo +1 -1
  23. package/lib/custom-resource-handlers/src/pgp-secret.tsbuildinfo +1 -1
  24. package/lib/custom-resource-handlers/src/private-key.tsbuildinfo +1 -1
  25. package/lib/package-integrity/handler/validate.bundle.js +11 -11
  26. package/lib/pipeline.d.ts +1 -0
  27. package/lib/pipeline.js +7 -1
  28. package/lib/pipeline.ts +7 -0
  29. package/package.json +5 -4
@@ -2691,9 +2691,9 @@ var require_axios2 = __commonJS({
2691
2691
  }
2692
2692
  });
2693
2693
 
2694
- // node_modules/uuid/dist/rng.js
2694
+ // node_modules/node-ical/node_modules/uuid/dist/rng.js
2695
2695
  var require_rng = __commonJS({
2696
- "node_modules/uuid/dist/rng.js"(exports) {
2696
+ "node_modules/node-ical/node_modules/uuid/dist/rng.js"(exports) {
2697
2697
  "use strict";
2698
2698
  Object.defineProperty(exports, "__esModule", {
2699
2699
  value: true
@@ -2715,9 +2715,9 @@ var require_rng = __commonJS({
2715
2715
  }
2716
2716
  });
2717
2717
 
2718
- // node_modules/uuid/dist/regex.js
2718
+ // node_modules/node-ical/node_modules/uuid/dist/regex.js
2719
2719
  var require_regex = __commonJS({
2720
- "node_modules/uuid/dist/regex.js"(exports) {
2720
+ "node_modules/node-ical/node_modules/uuid/dist/regex.js"(exports) {
2721
2721
  "use strict";
2722
2722
  Object.defineProperty(exports, "__esModule", {
2723
2723
  value: true
@@ -2728,9 +2728,9 @@ var require_regex = __commonJS({
2728
2728
  }
2729
2729
  });
2730
2730
 
2731
- // node_modules/uuid/dist/validate.js
2731
+ // node_modules/node-ical/node_modules/uuid/dist/validate.js
2732
2732
  var require_validate = __commonJS({
2733
- "node_modules/uuid/dist/validate.js"(exports) {
2733
+ "node_modules/node-ical/node_modules/uuid/dist/validate.js"(exports) {
2734
2734
  "use strict";
2735
2735
  Object.defineProperty(exports, "__esModule", {
2736
2736
  value: true
@@ -2748,9 +2748,9 @@ var require_validate = __commonJS({
2748
2748
  }
2749
2749
  });
2750
2750
 
2751
- // node_modules/uuid/dist/stringify.js
2751
+ // node_modules/node-ical/node_modules/uuid/dist/stringify.js
2752
2752
  var require_stringify = __commonJS({
2753
- "node_modules/uuid/dist/stringify.js"(exports) {
2753
+ "node_modules/node-ical/node_modules/uuid/dist/stringify.js"(exports) {
2754
2754
  "use strict";
2755
2755
  Object.defineProperty(exports, "__esModule", {
2756
2756
  value: true
@@ -2776,9 +2776,9 @@ var require_stringify = __commonJS({
2776
2776
  }
2777
2777
  });
2778
2778
 
2779
- // node_modules/uuid/dist/v1.js
2779
+ // node_modules/node-ical/node_modules/uuid/dist/v1.js
2780
2780
  var require_v1 = __commonJS({
2781
- "node_modules/uuid/dist/v1.js"(exports) {
2781
+ "node_modules/node-ical/node_modules/uuid/dist/v1.js"(exports) {
2782
2782
  "use strict";
2783
2783
  Object.defineProperty(exports, "__esModule", {
2784
2784
  value: true
@@ -2846,9 +2846,9 @@ var require_v1 = __commonJS({
2846
2846
  }
2847
2847
  });
2848
2848
 
2849
- // node_modules/uuid/dist/parse.js
2849
+ // node_modules/node-ical/node_modules/uuid/dist/parse.js
2850
2850
  var require_parse = __commonJS({
2851
- "node_modules/uuid/dist/parse.js"(exports) {
2851
+ "node_modules/node-ical/node_modules/uuid/dist/parse.js"(exports) {
2852
2852
  "use strict";
2853
2853
  Object.defineProperty(exports, "__esModule", {
2854
2854
  value: true
@@ -2887,9 +2887,9 @@ var require_parse = __commonJS({
2887
2887
  }
2888
2888
  });
2889
2889
 
2890
- // node_modules/uuid/dist/v35.js
2890
+ // node_modules/node-ical/node_modules/uuid/dist/v35.js
2891
2891
  var require_v35 = __commonJS({
2892
- "node_modules/uuid/dist/v35.js"(exports) {
2892
+ "node_modules/node-ical/node_modules/uuid/dist/v35.js"(exports) {
2893
2893
  "use strict";
2894
2894
  Object.defineProperty(exports, "__esModule", {
2895
2895
  value: true
@@ -2950,9 +2950,9 @@ var require_v35 = __commonJS({
2950
2950
  }
2951
2951
  });
2952
2952
 
2953
- // node_modules/uuid/dist/md5.js
2953
+ // node_modules/node-ical/node_modules/uuid/dist/md5.js
2954
2954
  var require_md5 = __commonJS({
2955
- "node_modules/uuid/dist/md5.js"(exports) {
2955
+ "node_modules/node-ical/node_modules/uuid/dist/md5.js"(exports) {
2956
2956
  "use strict";
2957
2957
  Object.defineProperty(exports, "__esModule", {
2958
2958
  value: true
@@ -2975,9 +2975,9 @@ var require_md5 = __commonJS({
2975
2975
  }
2976
2976
  });
2977
2977
 
2978
- // node_modules/uuid/dist/v3.js
2978
+ // node_modules/node-ical/node_modules/uuid/dist/v3.js
2979
2979
  var require_v3 = __commonJS({
2980
- "node_modules/uuid/dist/v3.js"(exports) {
2980
+ "node_modules/node-ical/node_modules/uuid/dist/v3.js"(exports) {
2981
2981
  "use strict";
2982
2982
  Object.defineProperty(exports, "__esModule", {
2983
2983
  value: true
@@ -2994,9 +2994,9 @@ var require_v3 = __commonJS({
2994
2994
  }
2995
2995
  });
2996
2996
 
2997
- // node_modules/uuid/dist/v4.js
2997
+ // node_modules/node-ical/node_modules/uuid/dist/v4.js
2998
2998
  var require_v4 = __commonJS({
2999
- "node_modules/uuid/dist/v4.js"(exports) {
2999
+ "node_modules/node-ical/node_modules/uuid/dist/v4.js"(exports) {
3000
3000
  "use strict";
3001
3001
  Object.defineProperty(exports, "__esModule", {
3002
3002
  value: true
@@ -3026,9 +3026,9 @@ var require_v4 = __commonJS({
3026
3026
  }
3027
3027
  });
3028
3028
 
3029
- // node_modules/uuid/dist/sha1.js
3029
+ // node_modules/node-ical/node_modules/uuid/dist/sha1.js
3030
3030
  var require_sha1 = __commonJS({
3031
- "node_modules/uuid/dist/sha1.js"(exports) {
3031
+ "node_modules/node-ical/node_modules/uuid/dist/sha1.js"(exports) {
3032
3032
  "use strict";
3033
3033
  Object.defineProperty(exports, "__esModule", {
3034
3034
  value: true
@@ -3051,9 +3051,9 @@ var require_sha1 = __commonJS({
3051
3051
  }
3052
3052
  });
3053
3053
 
3054
- // node_modules/uuid/dist/v5.js
3054
+ // node_modules/node-ical/node_modules/uuid/dist/v5.js
3055
3055
  var require_v5 = __commonJS({
3056
- "node_modules/uuid/dist/v5.js"(exports) {
3056
+ "node_modules/node-ical/node_modules/uuid/dist/v5.js"(exports) {
3057
3057
  "use strict";
3058
3058
  Object.defineProperty(exports, "__esModule", {
3059
3059
  value: true
@@ -3070,9 +3070,9 @@ var require_v5 = __commonJS({
3070
3070
  }
3071
3071
  });
3072
3072
 
3073
- // node_modules/uuid/dist/nil.js
3073
+ // node_modules/node-ical/node_modules/uuid/dist/nil.js
3074
3074
  var require_nil = __commonJS({
3075
- "node_modules/uuid/dist/nil.js"(exports) {
3075
+ "node_modules/node-ical/node_modules/uuid/dist/nil.js"(exports) {
3076
3076
  "use strict";
3077
3077
  Object.defineProperty(exports, "__esModule", {
3078
3078
  value: true
@@ -3083,9 +3083,9 @@ var require_nil = __commonJS({
3083
3083
  }
3084
3084
  });
3085
3085
 
3086
- // node_modules/uuid/dist/version.js
3086
+ // node_modules/node-ical/node_modules/uuid/dist/version.js
3087
3087
  var require_version = __commonJS({
3088
- "node_modules/uuid/dist/version.js"(exports) {
3088
+ "node_modules/node-ical/node_modules/uuid/dist/version.js"(exports) {
3089
3089
  "use strict";
3090
3090
  Object.defineProperty(exports, "__esModule", {
3091
3091
  value: true
@@ -3106,9 +3106,9 @@ var require_version = __commonJS({
3106
3106
  }
3107
3107
  });
3108
3108
 
3109
- // node_modules/uuid/dist/index.js
3109
+ // node_modules/node-ical/node_modules/uuid/dist/index.js
3110
3110
  var require_dist = __commonJS({
3111
- "node_modules/uuid/dist/index.js"(exports) {
3111
+ "node_modules/node-ical/node_modules/uuid/dist/index.js"(exports) {
3112
3112
  "use strict";
3113
3113
  Object.defineProperty(exports, "__esModule", {
3114
3114
  value: true
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handler = exports.external = void 0;
4
+ const https = require("https");
5
+ const url = require("url");
6
+ // for unit tests
7
+ exports.external = {
8
+ sendHttpRequest: defaultSendHttpRequest,
9
+ log: defaultLog,
10
+ includeStackTraces: true,
11
+ userHandlerIndex: './index',
12
+ };
13
+ const CREATE_FAILED_PHYSICAL_ID_MARKER = 'AWSCDK::CustomResourceProviderFramework::CREATE_FAILED';
14
+ const MISSING_PHYSICAL_ID_MARKER = 'AWSCDK::CustomResourceProviderFramework::MISSING_PHYSICAL_ID';
15
+ async function handler(event, context) {
16
+ exports.external.log(JSON.stringify(event, undefined, 2));
17
+ // ignore DELETE event when the physical resource ID is the marker that
18
+ // indicates that this DELETE is a subsequent DELETE to a failed CREATE
19
+ // operation.
20
+ if (event.RequestType === 'Delete' && event.PhysicalResourceId === CREATE_FAILED_PHYSICAL_ID_MARKER) {
21
+ exports.external.log('ignoring DELETE event caused by a failed CREATE event');
22
+ await submitResponse('SUCCESS', event);
23
+ return;
24
+ }
25
+ try {
26
+ // invoke the user handler. this is intentionally inside the try-catch to
27
+ // ensure that if there is an error it's reported as a failure to
28
+ // cloudformation (otherwise cfn waits).
29
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
30
+ const userHandler = require(exports.external.userHandlerIndex).handler;
31
+ const result = await userHandler(event, context);
32
+ // validate user response and create the combined event
33
+ const responseEvent = renderResponse(event, result);
34
+ // submit to cfn as success
35
+ await submitResponse('SUCCESS', responseEvent);
36
+ }
37
+ catch (e) {
38
+ const resp = {
39
+ ...event,
40
+ Reason: exports.external.includeStackTraces ? e.stack : e.message,
41
+ };
42
+ if (!resp.PhysicalResourceId) {
43
+ // special case: if CREATE fails, which usually implies, we usually don't
44
+ // have a physical resource id. in this case, the subsequent DELETE
45
+ // operation does not have any meaning, and will likely fail as well. to
46
+ // address this, we use a marker so the provider framework can simply
47
+ // ignore the subsequent DELETE.
48
+ if (event.RequestType === 'Create') {
49
+ exports.external.log('CREATE failed, responding with a marker physical resource id so that the subsequent DELETE will be ignored');
50
+ resp.PhysicalResourceId = CREATE_FAILED_PHYSICAL_ID_MARKER;
51
+ }
52
+ else {
53
+ // otherwise, if PhysicalResourceId is not specified, something is
54
+ // terribly wrong because all other events should have an ID.
55
+ exports.external.log(`ERROR: Malformed event. "PhysicalResourceId" is required: ${JSON.stringify(event)}`);
56
+ }
57
+ }
58
+ // this is an actual error, fail the activity altogether and exist.
59
+ await submitResponse('FAILED', resp);
60
+ }
61
+ }
62
+ exports.handler = handler;
63
+ function renderResponse(cfnRequest, handlerResponse = {}) {
64
+ var _a, _b;
65
+ // if physical ID is not returned, we have some defaults for you based
66
+ // on the request type.
67
+ const physicalResourceId = (_b = (_a = handlerResponse.PhysicalResourceId) !== null && _a !== void 0 ? _a : cfnRequest.PhysicalResourceId) !== null && _b !== void 0 ? _b : cfnRequest.RequestId;
68
+ // if we are in DELETE and physical ID was changed, it's an error.
69
+ if (cfnRequest.RequestType === 'Delete' && physicalResourceId !== cfnRequest.PhysicalResourceId) {
70
+ throw new Error(`DELETE: cannot change the physical resource ID from "${cfnRequest.PhysicalResourceId}" to "${handlerResponse.PhysicalResourceId}" during deletion`);
71
+ }
72
+ // merge request event and result event (result prevails).
73
+ return {
74
+ ...cfnRequest,
75
+ ...handlerResponse,
76
+ PhysicalResourceId: physicalResourceId,
77
+ };
78
+ }
79
+ async function submitResponse(status, event) {
80
+ var _a;
81
+ const json = {
82
+ Status: status,
83
+ Reason: (_a = event.Reason) !== null && _a !== void 0 ? _a : status,
84
+ StackId: event.StackId,
85
+ RequestId: event.RequestId,
86
+ PhysicalResourceId: event.PhysicalResourceId || MISSING_PHYSICAL_ID_MARKER,
87
+ LogicalResourceId: event.LogicalResourceId,
88
+ NoEcho: event.NoEcho,
89
+ Data: event.Data,
90
+ };
91
+ exports.external.log('submit response to cloudformation', json);
92
+ const responseBody = JSON.stringify(json);
93
+ const parsedUrl = url.parse(event.ResponseURL);
94
+ const req = {
95
+ hostname: parsedUrl.hostname,
96
+ path: parsedUrl.path,
97
+ method: 'PUT',
98
+ headers: { 'content-type': '', 'content-length': responseBody.length },
99
+ };
100
+ await exports.external.sendHttpRequest(req, responseBody);
101
+ }
102
+ async function defaultSendHttpRequest(options, responseBody) {
103
+ return new Promise((resolve, reject) => {
104
+ try {
105
+ const request = https.request(options, _ => resolve());
106
+ request.on('error', reject);
107
+ request.write(responseBody);
108
+ request.end();
109
+ }
110
+ catch (e) {
111
+ reject(e);
112
+ }
113
+ });
114
+ }
115
+ function defaultLog(fmt, ...params) {
116
+ // eslint-disable-next-line no-console
117
+ console.log(fmt, ...params);
118
+ }
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZWpzLWVudHJ5cG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJub2RlanMtZW50cnlwb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBK0I7QUFDL0IsMkJBQTJCO0FBRTNCLGlCQUFpQjtBQUNKLFFBQUEsUUFBUSxHQUFHO0lBQ3RCLGVBQWUsRUFBRSxzQkFBc0I7SUFDdkMsR0FBRyxFQUFFLFVBQVU7SUFDZixrQkFBa0IsRUFBRSxJQUFJO0lBQ3hCLGdCQUFnQixFQUFFLFNBQVM7Q0FDNUIsQ0FBQztBQUVGLE1BQU0sZ0NBQWdDLEdBQUcsd0RBQXdELENBQUM7QUFDbEcsTUFBTSwwQkFBMEIsR0FBRyw4REFBOEQsQ0FBQztBQVczRixLQUFLLFVBQVUsT0FBTyxDQUFDLEtBQWtELEVBQUUsT0FBMEI7SUFDMUcsZ0JBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFbEQsdUVBQXVFO0lBQ3ZFLHVFQUF1RTtJQUN2RSxhQUFhO0lBQ2IsSUFBSSxLQUFLLENBQUMsV0FBVyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsa0JBQWtCLEtBQUssZ0NBQWdDLEVBQUU7UUFDbkcsZ0JBQVEsQ0FBQyxHQUFHLENBQUMsdURBQXVELENBQUMsQ0FBQztRQUN0RSxNQUFNLGNBQWMsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdkMsT0FBTztLQUNSO0lBRUQsSUFBSTtRQUNGLHlFQUF5RTtRQUN6RSxpRUFBaUU7UUFDakUsd0NBQXdDO1FBQ3hDLGlFQUFpRTtRQUNqRSxNQUFNLFdBQVcsR0FBWSxPQUFPLENBQUMsZ0JBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUN4RSxNQUFNLE1BQU0sR0FBRyxNQUFNLFdBQVcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFakQsdURBQXVEO1FB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QUFFLEVBQUUsY0FBYyxFQUFFLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLENBQUMsTUFBTSxFQUFFO0tBQ3ZFLENBQUM7SUFFRixNQUFNLGdCQUFRLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBRUQsS0FBSyxVQUFVLHNCQUFzQixDQUFDLE9BQTZCLEVBQUUsWUFBb0I7SUFDdkYsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNyQyxJQUFJO1lBQ0YsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZELE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzVCLE9BQU8sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDNUIsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1NBQ2Y7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNYO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsR0FBVyxFQUFFLEdBQUcsTUFBYTtJQUMvQyxzQ0FBc0M7SUFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQztBQUM5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaHR0cHMgZnJvbSAnaHR0cHMnO1xuaW1wb3J0ICogYXMgdXJsIGZyb20gJ3VybCc7XG5cbi8vIGZvciB1bml0IHRlc3RzXG5leHBvcnQgY29uc3QgZXh0ZXJuYWwgPSB7XG4gIHNlbmRIdHRwUmVxdWVzdDogZGVmYXVsdFNlbmRIdHRwUmVxdWVzdCxcbiAgbG9nOiBkZWZhdWx0TG9nLFxuICBpbmNsdWRlU3RhY2tUcmFjZXM6IHRydWUsXG4gIHVzZXJIYW5kbGVySW5kZXg6ICcuL2luZGV4Jyxcbn07XG5cbmNvbnN0IENSRUFURV9GQUlMRURfUEhZU0lDQUxfSURfTUFSS0VSID0gJ0FXU0NESzo6Q3VzdG9tUmVzb3VyY2VQcm92aWRlckZyYW1ld29yazo6Q1JFQVRFX0ZBSUxFRCc7XG5jb25zdCBNSVNTSU5HX1BIWVNJQ0FMX0lEX01BUktFUiA9ICdBV1NDREs6OkN1c3RvbVJlc291cmNlUHJvdmlkZXJGcmFtZXdvcms6Ok1JU1NJTkdfUEhZU0lDQUxfSUQnO1xuXG5leHBvcnQgdHlwZSBSZXNwb25zZSA9IEFXU0xhbWJkYS5DbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlRXZlbnQgJiBIYW5kbGVyUmVzcG9uc2U7XG5leHBvcnQgdHlwZSBIYW5kbGVyID0gKGV2ZW50OiBBV1NMYW1iZGEuQ2xvdWRGb3JtYXRpb25DdXN0b21SZXNvdXJjZUV2ZW50LCBjb250ZXh0OiBBV1NMYW1iZGEuQ29udGV4dCkgPT4gUHJvbWlzZTxIYW5kbGVyUmVzcG9uc2UgfCB2b2lkPjtcbmV4cG9ydCB0eXBlIEhhbmRsZXJSZXNwb25zZSA9IHVuZGVmaW5lZCB8IHtcbiAgRGF0YT86IGFueTtcbiAgUGh5c2ljYWxSZXNvdXJjZUlkPzogc3RyaW5nO1xuICBSZWFzb24/OiBzdHJpbmc7XG4gIE5vRWNobz86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaGFuZGxlcihldmVudDogQVdTTGFtYmRhLkNsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VFdmVudCwgY29udGV4dDogQVdTTGFtYmRhLkNvbnRleHQpIHtcbiAgZXh0ZXJuYWwubG9nKEpTT04uc3RyaW5naWZ5KGV2ZW50LCB1bmRlZmluZWQsIDIpKTtcblxuICAvLyBpZ25vcmUgREVMRVRFIGV2ZW50IHdoZW4gdGhlIHBoeXNpY2FsIHJlc291cmNlIElEIGlzIHRoZSBtYXJrZXIgdGhhdFxuICAvLyBpbmRpY2F0ZXMgdGhhdCB0aGlzIERFTEVURSBpcyBhIHN1YnNlcXVlbnQgREVMRVRFIHRvIGEgZmFpbGVkIENSRUFURVxuICAvLyBvcGVyYXRpb24uXG4gIGlmIChldmVudC5SZXF1ZXN0VHlwZSA9PT0gJ0RlbGV0ZScgJiYgZXZlbnQuUGh5c2ljYWxSZXNvdXJjZUlkID09PSBDUkVBVEVfRkFJTEVEX1BIWVNJQ0FMX0lEX01BUktFUikge1xuICAgIGV4dGVybmFsLmxvZygnaWdub3JpbmcgREVMRVRFIGV2ZW50IGNhdXNlZCBieSBhIGZhaWxlZCBDUkVBVEUgZXZlbnQnKTtcbiAgICBhd2FpdCBzdWJtaXRSZXNwb25zZSgnU1VDQ0VTUycsIGV2ZW50KTtcbiAgICByZXR1cm47XG4gIH1cblxuICB0cnkge1xuICAgIC8vIGludm9rZSB0aGUgdXNlciBoYW5kbGVyLiB0aGlzIGlzIGludGVudGlvbmFsbHkgaW5zaWRlIHRoZSB0cnktY2F0Y2ggdG9cbiAgICAvLyBlbnN1cmUgdGhhdCBpZiB0aGVyZSBpcyBhbiBlcnJvciBpdCdzIHJlcG9ydGVkIGFzIGEgZmFpbHVyZSB0b1xuICAgIC8vIGNsb3VkZm9ybWF0aW9uIChvdGhlcndpc2UgY2ZuIHdhaXRzKS5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuICAgIGNvbnN0IHVzZXJIYW5kbGVyOiBIYW5kbGVyID0gcmVxdWlyZShleHRlcm5hbC51c2VySGFuZGxlckluZGV4KS5oYW5kbGVyO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHVzZXJIYW5kbGVyKGV2ZW50LCBjb250ZXh0KTtcblxuICAgIC8vIHZhbGlkYXRlIHVzZXIgcmVzcG9uc2UgYW5kIGNyZWF0ZSB0aGUgY29tYmluZWQgZXZlbnRcbiAgICBjb25zdCByZXNwb25zZUV2ZW50ID0gcmVuZGVyUmVzcG9uc2UoZXZlbnQsIHJlc3VsdCk7XG5cbiAgICAvLyBzdWJtaXQgdG8gY2ZuIGFzIHN1Y2Nlc3NcbiAgICBhd2FpdCBzdWJtaXRSZXNwb25zZSgnU1VDQ0VTUycsIHJlc3BvbnNlRXZlbnQpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc3QgcmVzcDogUmVzcG9uc2UgPSB7XG4gICAgICAuLi5ldmVudCxcbiAgICAgIFJlYXNvbjogZXh0ZXJuYWwuaW5jbHVkZVN0YWNrVHJhY2VzID8gZS5zdGFjayA6IGUubWVzc2FnZSxcbiAgICB9O1xuXG4gICAgaWYgKCFyZXNwLlBoeXNpY2FsUmVzb3VyY2VJZCkge1xuICAgICAgLy8gc3BlY2lhbCBjYXNlOiBpZiBDUkVBVEUgZmFpbHMsIHdoaWNoIHVzdWFsbHkgaW1wbGllcywgd2UgdXN1YWxseSBkb24ndFxuICAgICAgLy8gaGF2ZSBhIHBoeXNpY2FsIHJlc291cmNlIGlkLiBpbiB0aGlzIGNhc2UsIHRoZSBzdWJzZXF1ZW50IERFTEVURVxuICAgICAgLy8gb3BlcmF0aW9uIGRvZXMgbm90IGhhdmUgYW55IG1lYW5pbmcsIGFuZCB3aWxsIGxpa2VseSBmYWlsIGFzIHdlbGwuIHRvXG4gICAgICAvLyBhZGRyZXNzIHRoaXMsIHdlIHVzZSBhIG1hcmtlciBzbyB0aGUgcHJvdmlkZXIgZnJhbWV3b3JrIGNhbiBzaW1wbHlcbiAgICAgIC8vIGlnbm9yZSB0aGUgc3Vic2VxdWVudCBERUxFVEUuXG4gICAgICBpZiAoZXZlbnQuUmVxdWVzdFR5cGUgPT09ICdDcmVhdGUnKSB7XG4gICAgICAgIGV4dGVybmFsLmxvZygnQ1JFQVRFIGZhaWxlZCwgcmVzcG9uZGluZyB3aXRoIGEgbWFya2VyIHBoeXNpY2FsIHJlc291cmNlIGlkIHNvIHRoYXQgdGhlIHN1YnNlcXVlbnQgREVMRVRFIHdpbGwgYmUgaWdub3JlZCcpO1xuICAgICAgICByZXNwLlBoeXNpY2FsUmVzb3VyY2VJZCA9IENSRUFURV9GQUlMRURfUEhZU0lDQUxfSURfTUFSS0VSO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gb3RoZXJ3aXNlLCBpZiBQaHlzaWNhbFJlc291cmNlSWQgaXMgbm90IHNwZWNpZmllZCwgc29tZXRoaW5nIGlzXG4gICAgICAgIC8vIHRlcnJpYmx5IHdyb25nIGJlY2F1c2UgYWxsIG90aGVyIGV2ZW50cyBzaG91bGQgaGF2ZSBhbiBJRC5cbiAgICAgICAgZXh0ZXJuYWwubG9nKGBFUlJPUjogTWFsZm9ybWVkIGV2ZW50LiBcIlBoeXNpY2FsUmVzb3VyY2VJZFwiIGlzIHJlcXVpcmVkOiAke0pTT04uc3RyaW5naWZ5KGV2ZW50KX1gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB0aGlzIGlzIGFuIGFjdHVhbCBlcnJvciwgZmFpbCB0aGUgYWN0aXZpdHkgYWx0b2dldGhlciBhbmQgZXhpc3QuXG4gICAgYXdhaXQgc3VibWl0UmVzcG9uc2UoJ0ZBSUxFRCcsIHJlc3ApO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlbmRlclJlc3BvbnNlKFxuICBjZm5SZXF1ZXN0OiBBV1NMYW1iZGEuQ2xvdWRGb3JtYXRpb25DdXN0b21SZXNvdXJjZUV2ZW50ICYgeyBQaHlzaWNhbFJlc291cmNlSWQ/OiBzdHJpbmcgfSxcbiAgaGFuZGxlclJlc3BvbnNlOiB2b2lkIHwgSGFuZGxlclJlc3BvbnNlID0geyB9KTogUmVzcG9uc2Uge1xuXG4gIC8vIGlmIHBoeXNpY2FsIElEIGlzIG5vdCByZXR1cm5lZCwgd2UgaGF2ZSBzb21lIGRlZmF1bHRzIGZvciB5b3UgYmFzZWRcbiAgLy8gb24gdGhlIHJlcXVlc3QgdHlwZS5cbiAgY29uc3QgcGh5c2ljYWxSZXNvdXJjZUlkID0gaGFuZGxlclJlc3BvbnNlLlBoeXNpY2FsUmVzb3VyY2VJZCA/PyBjZm5SZXF1ZXN0LlBoeXNpY2FsUmVzb3VyY2VJZCA/PyBjZm5SZXF1ZXN0LlJlcXVlc3RJZDtcblxuICAvLyBpZiB3ZSBhcmUgaW4gREVMRVRFIGFuZCBwaHlzaWNhbCBJRCB3YXMgY2hhbmdlZCwgaXQncyBhbiBlcnJvci5cbiAgaWYgKGNmblJlcXVlc3QuUmVxdWVzdFR5cGUgPT09ICdEZWxldGUnICYmIHBoeXNpY2FsUmVzb3VyY2VJZCAhPT0gY2ZuUmVxdWVzdC5QaHlzaWNhbFJlc291cmNlSWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYERFTEVURTogY2Fubm90IGNoYW5nZSB0aGUgcGh5c2ljYWwgcmVzb3VyY2UgSUQgZnJvbSBcIiR7Y2ZuUmVxdWVzdC5QaHlzaWNhbFJlc291cmNlSWR9XCIgdG8gXCIke2hhbmRsZXJSZXNwb25zZS5QaHlzaWNhbFJlc291cmNlSWR9XCIgZHVyaW5nIGRlbGV0aW9uYCk7XG4gIH1cblxuICAvLyBtZXJnZSByZXF1ZXN0IGV2ZW50IGFuZCByZXN1bHQgZXZlbnQgKHJlc3VsdCBwcmV2YWlscykuXG4gIHJldHVybiB7XG4gICAgLi4uY2ZuUmVxdWVzdCxcbiAgICAuLi5oYW5kbGVyUmVzcG9uc2UsXG4gICAgUGh5c2ljYWxSZXNvdXJjZUlkOiBwaHlzaWNhbFJlc291cmNlSWQsXG4gIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHN1Ym1pdFJlc3BvbnNlKHN0YXR1czogJ1NVQ0NFU1MnIHwgJ0ZBSUxFRCcsIGV2ZW50OiBSZXNwb25zZSkge1xuICBjb25zdCBqc29uOiBBV1NMYW1iZGEuQ2xvdWRGb3JtYXRpb25DdXN0b21SZXNvdXJjZVJlc3BvbnNlID0ge1xuICAgIFN0YXR1czogc3RhdHVzLFxuICAgIFJlYXNvbjogZXZlbnQuUmVhc29uID8/IHN0YXR1cyxcbiAgICBTdGFja0lkOiBldmVudC5TdGFja0lkLFxuICAgIFJlcXVlc3RJZDogZXZlbnQuUmVxdWVzdElkLFxuICAgIFBoeXNpY2FsUmVzb3VyY2VJZDogZXZlbnQuUGh5c2ljYWxSZXNvdXJjZUlkIHx8IE1JU1NJTkdfUEhZU0lDQUxfSURfTUFSS0VSLFxuICAgIExvZ2ljYWxSZXNvdXJjZUlkOiBldmVudC5Mb2dpY2FsUmVzb3VyY2VJZCxcbiAgICBOb0VjaG86IGV2ZW50Lk5vRWNobyxcbiAgICBEYXRhOiBldmVudC5EYXRhLFxuICB9O1xuXG4gIGV4dGVybmFsLmxvZygnc3VibWl0IHJlc3BvbnNlIHRvIGNsb3VkZm9ybWF0aW9uJywganNvbik7XG5cbiAgY29uc3QgcmVzcG9uc2VCb2R5ID0gSlNPTi5zdHJpbmdpZnkoanNvbik7XG4gIGNvbnN0IHBhcnNlZFVybCA9IHVybC5wYXJzZShldmVudC5SZXNwb25zZVVSTCk7XG4gIGNvbnN0IHJlcSA9IHtcbiAgICBob3N0bmFtZTogcGFyc2VkVXJsLmhvc3RuYW1lLFxuICAgIHBhdGg6IHBhcnNlZFVybC5wYXRoLFxuICAgIG1ldGhvZDogJ1BVVCcsXG4gICAgaGVhZGVyczogeyAnY29udGVudC10eXBlJzogJycsICdjb250ZW50LWxlbmd0aCc6IHJlc3BvbnNlQm9keS5sZW5ndGggfSxcbiAgfTtcblxuICBhd2FpdCBleHRlcm5hbC5zZW5kSHR0cFJlcXVlc3QocmVxLCByZXNwb25zZUJvZHkpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBkZWZhdWx0U2VuZEh0dHBSZXF1ZXN0KG9wdGlvbnM6IGh0dHBzLlJlcXVlc3RPcHRpb25zLCByZXNwb25zZUJvZHk6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXF1ZXN0ID0gaHR0cHMucmVxdWVzdChvcHRpb25zLCBfID0+IHJlc29sdmUoKSk7XG4gICAgICByZXF1ZXN0Lm9uKCdlcnJvcicsIHJlamVjdCk7XG4gICAgICByZXF1ZXN0LndyaXRlKHJlc3BvbnNlQm9keSk7XG4gICAgICByZXF1ZXN0LmVuZCgpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJlamVjdChlKTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBkZWZhdWx0TG9nKGZtdDogc3RyaW5nLCAuLi5wYXJhbXM6IGFueVtdKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gIGNvbnNvbGUubG9nKGZtdCwgLi4ucGFyYW1zKTtcbn1cbiJdfQ==
@@ -0,0 +1 @@
1
+ export declare function handler(event: AWSLambda.CloudFormationCustomResourceEvent): Promise<void>;
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handler = void 0;
4
+ // eslint-disable-next-line import/no-extraneous-dependencies
5
+ const aws_sdk_1 = require("aws-sdk");
6
+ const AUTO_DELETE_OBJECTS_TAG = 'aws-cdk:auto-delete-objects';
7
+ const s3 = new aws_sdk_1.S3();
8
+ async function handler(event) {
9
+ var _a;
10
+ switch (event.RequestType) {
11
+ case 'Create':
12
+ return;
13
+ case 'Update':
14
+ return onUpdate(event);
15
+ case 'Delete':
16
+ return onDelete((_a = event.ResourceProperties) === null || _a === void 0 ? void 0 : _a.BucketName);
17
+ }
18
+ }
19
+ exports.handler = handler;
20
+ async function onUpdate(event) {
21
+ var _a, _b;
22
+ const updateEvent = event;
23
+ const oldBucketName = (_a = updateEvent.OldResourceProperties) === null || _a === void 0 ? void 0 : _a.BucketName;
24
+ const newBucketName = (_b = updateEvent.ResourceProperties) === null || _b === void 0 ? void 0 : _b.BucketName;
25
+ const bucketNameHasChanged = newBucketName != null && oldBucketName != null && newBucketName !== oldBucketName;
26
+ /* If the name of the bucket has changed, CloudFormation will try to delete the bucket
27
+ and create a new one with the new name. So we have to delete the contents of the
28
+ bucket so that this operation does not fail. */
29
+ if (bucketNameHasChanged) {
30
+ return onDelete(oldBucketName);
31
+ }
32
+ }
33
+ /**
34
+ * Recursively delete all items in the bucket
35
+ *
36
+ * @param bucketName the bucket name
37
+ */
38
+ async function emptyBucket(bucketName) {
39
+ var _a, _b;
40
+ const listedObjects = await s3.listObjectVersions({ Bucket: bucketName }).promise();
41
+ const contents = [...(_a = listedObjects.Versions) !== null && _a !== void 0 ? _a : [], ...(_b = listedObjects.DeleteMarkers) !== null && _b !== void 0 ? _b : []];
42
+ if (contents.length === 0) {
43
+ return;
44
+ }
45
+ const records = contents.map((record) => ({ Key: record.Key, VersionId: record.VersionId }));
46
+ await s3.deleteObjects({ Bucket: bucketName, Delete: { Objects: records } }).promise();
47
+ if (listedObjects === null || listedObjects === void 0 ? void 0 : listedObjects.IsTruncated) {
48
+ await emptyBucket(bucketName);
49
+ }
50
+ }
51
+ async function onDelete(bucketName) {
52
+ if (!bucketName) {
53
+ throw new Error('No BucketName was provided.');
54
+ }
55
+ if (!await isBucketTaggedForDeletion(bucketName)) {
56
+ process.stdout.write(`Bucket does not have '${AUTO_DELETE_OBJECTS_TAG}' tag, skipping cleaning.\n`);
57
+ return;
58
+ }
59
+ try {
60
+ await emptyBucket(bucketName);
61
+ }
62
+ catch (e) {
63
+ if (e.code !== 'NoSuchBucket') {
64
+ throw e;
65
+ }
66
+ // Bucket doesn't exist. Ignoring
67
+ }
68
+ }
69
+ /**
70
+ * The bucket will only be tagged for deletion if it's being deleted in the same
71
+ * deployment as this Custom Resource.
72
+ *
73
+ * If the Custom Resource is every deleted before the bucket, it must be because
74
+ * `autoDeleteObjects` has been switched to false, in which case the tag would have
75
+ * been removed before we get to this Delete event.
76
+ */
77
+ async function isBucketTaggedForDeletion(bucketName) {
78
+ const response = await s3.getBucketTagging({ Bucket: bucketName }).promise();
79
+ return response.TagSet.some(tag => tag.Key === AUTO_DELETE_OBJECTS_TAG && tag.Value === 'true');
80
+ }
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2REFBNkQ7QUFDN0QscUNBQTZCO0FBRTdCLE1BQU0sdUJBQXVCLEdBQUcsNkJBQTZCLENBQUM7QUFFOUQsTUFBTSxFQUFFLEdBQUcsSUFBSSxZQUFFLEVBQUUsQ0FBQztBQUViLEtBQUssVUFBVSxPQUFPLENBQUMsS0FBa0Q7O0lBQzlFLFFBQVEsS0FBSyxDQUFDLFdBQVcsRUFBRTtRQUN6QixLQUFLLFFBQVE7WUFDWCxPQUFPO1FBQ1QsS0FBSyxRQUFRO1lBQ1gsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsS0FBSyxRQUFRO1lBQ1gsT0FBTyxRQUFRLE9BQUMsS0FBSyxDQUFDLGtCQUFrQiwwQ0FBRSxVQUFVLENBQUMsQ0FBQztLQUN6RDtBQUNILENBQUM7QUFURCwwQkFTQztBQUVELEtBQUssVUFBVSxRQUFRLENBQUMsS0FBa0Q7O0lBQ3hFLE1BQU0sV0FBVyxHQUFHLEtBQTBELENBQUM7SUFDL0UsTUFBTSxhQUFhLFNBQUcsV0FBVyxDQUFDLHFCQUFxQiwwQ0FBRSxVQUFVLENBQUM7SUFDcEUsTUFBTSxhQUFhLFNBQUcsV0FBVyxDQUFDLGtCQUFrQiwwQ0FBRSxVQUFVLENBQUM7SUFDakUsTUFBTSxvQkFBb0IsR0FBRyxhQUFhLElBQUksSUFBSSxJQUFJLGFBQWEsSUFBSSxJQUFJLElBQUksYUFBYSxLQUFLLGFBQWEsQ0FBQztJQUUvRzs7c0RBRWtEO0lBQ2xELElBQUksb0JBQW9CLEVBQUU7UUFDeEIsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7S0FDaEM7QUFDSCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILEtBQUssVUFBVSxXQUFXLENBQUMsVUFBa0I7O0lBQzNDLE1BQU0sYUFBYSxHQUFHLE1BQU0sRUFBRSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDcEYsTUFBTSxRQUFRLEdBQUcsQ0FBQyxTQUFHLGFBQWEsQ0FBQyxRQUFRLG1DQUFJLEVBQUUsRUFBRSxTQUFHLGFBQWEsQ0FBQyxhQUFhLG1DQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3pGLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDekIsT0FBTztLQUNSO0lBRUQsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2xHLE1BQU0sRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUV2RixJQUFJLGFBQWEsYUFBYixhQUFhLHVCQUFiLGFBQWEsQ0FBRSxXQUFXLEVBQUU7UUFDOUIsTUFBTSxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7S0FDL0I7QUFDSCxDQUFDO0FBRUQsS0FBSyxVQUFVLFFBQVEsQ0FBQyxVQUFtQjtJQUN6QyxJQUFJLENBQUMsVUFBVSxFQUFFO1FBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0tBQ2hEO0lBQ0QsSUFBSSxDQUFDLE1BQU0seUJBQXlCLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFDaEQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMseUJBQXlCLHVCQUF1Qiw2QkFBNkIsQ0FBQyxDQUFDO1FBQ3BHLE9BQU87S0FDUjtJQUNELElBQUk7UUFDRixNQUFNLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztLQUMvQjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLGNBQWMsRUFBRTtZQUM3QixNQUFNLENBQUMsQ0FBQztTQUNUO1FBQ0QsaUNBQWlDO0tBQ2xDO0FBQ0gsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxLQUFLLFVBQVUseUJBQXlCLENBQUMsVUFBa0I7SUFDekQsTUFBTSxRQUFRLEdBQUcsTUFBTSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM3RSxPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyx1QkFBdUIsSUFBSSxHQUFHLENBQUMsS0FBSyxLQUFLLE1BQU0sQ0FBQyxDQUFDO0FBQ2xHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXG5pbXBvcnQgeyBTMyB9IGZyb20gJ2F3cy1zZGsnO1xuXG5jb25zdCBBVVRPX0RFTEVURV9PQkpFQ1RTX1RBRyA9ICdhd3MtY2RrOmF1dG8tZGVsZXRlLW9iamVjdHMnO1xuXG5jb25zdCBzMyA9IG5ldyBTMygpO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaGFuZGxlcihldmVudDogQVdTTGFtYmRhLkNsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VFdmVudCkge1xuICBzd2l0Y2ggKGV2ZW50LlJlcXVlc3RUeXBlKSB7XG4gICAgY2FzZSAnQ3JlYXRlJzpcbiAgICAgIHJldHVybjtcbiAgICBjYXNlICdVcGRhdGUnOlxuICAgICAgcmV0dXJuIG9uVXBkYXRlKGV2ZW50KTtcbiAgICBjYXNlICdEZWxldGUnOlxuICAgICAgcmV0dXJuIG9uRGVsZXRlKGV2ZW50LlJlc291cmNlUHJvcGVydGllcz8uQnVja2V0TmFtZSk7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gb25VcGRhdGUoZXZlbnQ6IEFXU0xhbWJkYS5DbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlRXZlbnQpIHtcbiAgY29uc3QgdXBkYXRlRXZlbnQgPSBldmVudCBhcyBBV1NMYW1iZGEuQ2xvdWRGb3JtYXRpb25DdXN0b21SZXNvdXJjZVVwZGF0ZUV2ZW50O1xuICBjb25zdCBvbGRCdWNrZXROYW1lID0gdXBkYXRlRXZlbnQuT2xkUmVzb3VyY2VQcm9wZXJ0aWVzPy5CdWNrZXROYW1lO1xuICBjb25zdCBuZXdCdWNrZXROYW1lID0gdXBkYXRlRXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzPy5CdWNrZXROYW1lO1xuICBjb25zdCBidWNrZXROYW1lSGFzQ2hhbmdlZCA9IG5ld0J1Y2tldE5hbWUgIT0gbnVsbCAmJiBvbGRCdWNrZXROYW1lICE9IG51bGwgJiYgbmV3QnVja2V0TmFtZSAhPT0gb2xkQnVja2V0TmFtZTtcblxuICAvKiBJZiB0aGUgbmFtZSBvZiB0aGUgYnVja2V0IGhhcyBjaGFuZ2VkLCBDbG91ZEZvcm1hdGlvbiB3aWxsIHRyeSB0byBkZWxldGUgdGhlIGJ1Y2tldFxuICAgICBhbmQgY3JlYXRlIGEgbmV3IG9uZSB3aXRoIHRoZSBuZXcgbmFtZS4gU28gd2UgaGF2ZSB0byBkZWxldGUgdGhlIGNvbnRlbnRzIG9mIHRoZVxuICAgICBidWNrZXQgc28gdGhhdCB0aGlzIG9wZXJhdGlvbiBkb2VzIG5vdCBmYWlsLiAqL1xuICBpZiAoYnVja2V0TmFtZUhhc0NoYW5nZWQpIHtcbiAgICByZXR1cm4gb25EZWxldGUob2xkQnVja2V0TmFtZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZWN1cnNpdmVseSBkZWxldGUgYWxsIGl0ZW1zIGluIHRoZSBidWNrZXRcbiAqXG4gKiBAcGFyYW0gYnVja2V0TmFtZSB0aGUgYnVja2V0IG5hbWVcbiAqL1xuYXN5bmMgZnVuY3Rpb24gZW1wdHlCdWNrZXQoYnVja2V0TmFtZTogc3RyaW5nKSB7XG4gIGNvbnN0IGxpc3RlZE9iamVjdHMgPSBhd2FpdCBzMy5saXN0T2JqZWN0VmVyc2lvbnMoeyBCdWNrZXQ6IGJ1Y2tldE5hbWUgfSkucHJvbWlzZSgpO1xuICBjb25zdCBjb250ZW50cyA9IFsuLi5saXN0ZWRPYmplY3RzLlZlcnNpb25zID8/IFtdLCAuLi5saXN0ZWRPYmplY3RzLkRlbGV0ZU1hcmtlcnMgPz8gW11dO1xuICBpZiAoY29udGVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgcmVjb3JkcyA9IGNvbnRlbnRzLm1hcCgocmVjb3JkOiBhbnkpID0+ICh7IEtleTogcmVjb3JkLktleSwgVmVyc2lvbklkOiByZWNvcmQuVmVyc2lvbklkIH0pKTtcbiAgYXdhaXQgczMuZGVsZXRlT2JqZWN0cyh7IEJ1Y2tldDogYnVja2V0TmFtZSwgRGVsZXRlOiB7IE9iamVjdHM6IHJlY29yZHMgfSB9KS5wcm9taXNlKCk7XG5cbiAgaWYgKGxpc3RlZE9iamVjdHM/LklzVHJ1bmNhdGVkKSB7XG4gICAgYXdhaXQgZW1wdHlCdWNrZXQoYnVja2V0TmFtZSk7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gb25EZWxldGUoYnVja2V0TmFtZT86IHN0cmluZykge1xuICBpZiAoIWJ1Y2tldE5hbWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIEJ1Y2tldE5hbWUgd2FzIHByb3ZpZGVkLicpO1xuICB9XG4gIGlmICghYXdhaXQgaXNCdWNrZXRUYWdnZWRGb3JEZWxldGlvbihidWNrZXROYW1lKSkge1xuICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKGBCdWNrZXQgZG9lcyBub3QgaGF2ZSAnJHtBVVRPX0RFTEVURV9PQkpFQ1RTX1RBR30nIHRhZywgc2tpcHBpbmcgY2xlYW5pbmcuXFxuYCk7XG4gICAgcmV0dXJuO1xuICB9XG4gIHRyeSB7XG4gICAgYXdhaXQgZW1wdHlCdWNrZXQoYnVja2V0TmFtZSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAoZS5jb2RlICE9PSAnTm9TdWNoQnVja2V0Jykge1xuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gICAgLy8gQnVja2V0IGRvZXNuJ3QgZXhpc3QuIElnbm9yaW5nXG4gIH1cbn1cblxuLyoqXG4gKiBUaGUgYnVja2V0IHdpbGwgb25seSBiZSB0YWdnZWQgZm9yIGRlbGV0aW9uIGlmIGl0J3MgYmVpbmcgZGVsZXRlZCBpbiB0aGUgc2FtZVxuICogZGVwbG95bWVudCBhcyB0aGlzIEN1c3RvbSBSZXNvdXJjZS5cbiAqXG4gKiBJZiB0aGUgQ3VzdG9tIFJlc291cmNlIGlzIGV2ZXJ5IGRlbGV0ZWQgYmVmb3JlIHRoZSBidWNrZXQsIGl0IG11c3QgYmUgYmVjYXVzZVxuICogYGF1dG9EZWxldGVPYmplY3RzYCBoYXMgYmVlbiBzd2l0Y2hlZCB0byBmYWxzZSwgaW4gd2hpY2ggY2FzZSB0aGUgdGFnIHdvdWxkIGhhdmVcbiAqIGJlZW4gcmVtb3ZlZCBiZWZvcmUgd2UgZ2V0IHRvIHRoaXMgRGVsZXRlIGV2ZW50LlxuICovXG5hc3luYyBmdW5jdGlvbiBpc0J1Y2tldFRhZ2dlZEZvckRlbGV0aW9uKGJ1Y2tldE5hbWU6IHN0cmluZykge1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHMzLmdldEJ1Y2tldFRhZ2dpbmcoeyBCdWNrZXQ6IGJ1Y2tldE5hbWUgfSkucHJvbWlzZSgpO1xuICByZXR1cm4gcmVzcG9uc2UuVGFnU2V0LnNvbWUodGFnID0+IHRhZy5LZXkgPT09IEFVVE9fREVMRVRFX09CSkVDVFNfVEFHICYmIHRhZy5WYWx1ZSA9PT0gJ3RydWUnKTtcbn0iXX0=
@@ -26,6 +26,7 @@ async function handleEvent(event, _context) {
26
26
  ExtendedKeyUsage: false,
27
27
  KeyUsage: true,
28
28
  PrivateKeySecretId: true,
29
+ OutputBucket: true,
29
30
  });
30
31
  }
31
32
  switch (event.RequestType) {
@@ -45,10 +46,24 @@ async function _createSelfSignedCertificate(event) {
45
46
  await _exec('/opt/openssl', 'req', '-config', configFile, '-key', pkeyFile, '-out', csrFile, '-new');
46
47
  const certFile = path.join(tempDir, 'cert.pem');
47
48
  await _exec('/opt/openssl', 'x509', '-in', csrFile, '-out', certFile, '-req', '-signkey', pkeyFile, '-days', '365');
49
+ const s3 = new aws.S3();
50
+ const bucketName = event.ResourceProperties.OutputBucket;
51
+ await s3.putObject({
52
+ Bucket: bucketName,
53
+ Key: 'certificate-signing-request.pem',
54
+ Body: await readFile(csrFile, { encoding: 'utf8' }),
55
+ ContentType: 'application/x-pem-file',
56
+ }).promise();
57
+ await s3.putObject({
58
+ Bucket: bucketName,
59
+ Key: 'self-signed-certificate.pem',
60
+ Body: await readFile(certFile, { encoding: 'utf8' }),
61
+ ContentType: 'application/x-pem-file',
62
+ }).promise();
48
63
  return {
49
64
  Ref: event.LogicalResourceId,
50
- CSR: await readFile(csrFile, { encoding: 'utf8' }),
51
- SelfSignedCertificate: await readFile(certFile, { encoding: 'utf8' }),
65
+ CSR: `s3://${bucketName}/certificate-signing-request.pem`,
66
+ SelfSignedCertificate: `s3://${bucketName}/self-signed-certificate.pem`,
52
67
  };
53
68
  }
54
69
  finally {
@@ -91,4 +106,4 @@ async function _retrievePrivateKey(event, dir) {
91
106
  await writeFile(file, secret.SecretString, { encoding: 'utf8' });
92
107
  return file;
93
108
  }
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VydGlmaWNhdGUtc2lnbmluZy1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NlcnRpZmljYXRlLXNpZ25pbmctcmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlCQUF5QjtBQUN6Qix5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDZCQUE2QjtBQUU3QiwrQkFBK0I7QUFFL0IsMENBQTBDO0FBRTFDLGlDQUFrQztBQUdsQyxpQ0FBa0M7QUFFbEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDM0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDN0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFL0MsTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7QUFFaEQsT0FBTyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUM7QUFPekQsS0FBSyxVQUFVLFdBQVcsQ0FBQyxLQUFnQixFQUFFLFFBQXdCO0lBQ25FLElBQUksS0FBSyxDQUFDLFdBQVcsS0FBSyxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRTtRQUNoRCxHQUFHLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFO1lBQy9DLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsY0FBYyxFQUFFLElBQUk7WUFDcEIsVUFBVSxFQUFFLElBQUk7WUFDaEIsa0JBQWtCLEVBQUUsSUFBSTtZQUN4Qix3QkFBd0IsRUFBRSxJQUFJO1lBQzlCLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsZ0JBQWdCLEVBQUUsS0FBSztZQUN2QixR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
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VydGlmaWNhdGUtc2lnbmluZy1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NlcnRpZmljYXRlLXNpZ25pbmctcmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlCQUF5QjtBQUN6Qix5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDZCQUE2QjtBQUU3QiwrQkFBK0I7QUFFL0IsMENBQTBDO0FBRTFDLGlDQUFrQztBQUdsQyxpQ0FBa0M7QUFFbEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDM0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDN0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFL0MsTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7QUFFaEQsT0FBTyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUM7QUFPekQsS0FBSyxVQUFVLFdBQVcsQ0FBQyxLQUFnQixFQUFFLFFBQXdCO0lBQ25FLElBQUksS0FBSyxDQUFDLFdBQVcsS0FBSyxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRTtRQUNoRCxHQUFHLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFO1lBQy9DLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsY0FBYyxFQUFFLElBQUk7WUFDcEIsVUFBVSxFQUFFLElBQUk7WUFDaEIsa0JBQWtCLEVBQUUsSUFBSTtZQUN4Qix3QkFBd0IsRUFBRSxJQUFJO1lBQzlCLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsZ0JBQWdCLEVBQUUsS0FBSztZQUN2QixR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
@@ -26,6 +26,7 @@ async function handleEvent(event, _context) {
26
26
  ExtendedKeyUsage: false,
27
27
  KeyUsage: true,
28
28
  PrivateKeySecretId: true,
29
+ OutputBucket: true,
29
30
  });
30
31
  }
31
32
  switch (event.RequestType) {
@@ -45,10 +46,24 @@ async function _createSelfSignedCertificate(event) {
45
46
  await _exec('/opt/openssl', 'req', '-config', configFile, '-key', pkeyFile, '-out', csrFile, '-new');
46
47
  const certFile = path.join(tempDir, 'cert.pem');
47
48
  await _exec('/opt/openssl', 'x509', '-in', csrFile, '-out', certFile, '-req', '-signkey', pkeyFile, '-days', '365');
49
+ const s3 = new aws.S3();
50
+ const bucketName = event.ResourceProperties.OutputBucket;
51
+ await s3.putObject({
52
+ Bucket: bucketName,
53
+ Key: 'certificate-signing-request.pem',
54
+ Body: await readFile(csrFile, { encoding: 'utf8' }),
55
+ ContentType: 'application/x-pem-file',
56
+ }).promise();
57
+ await s3.putObject({
58
+ Bucket: bucketName,
59
+ Key: 'self-signed-certificate.pem',
60
+ Body: await readFile(certFile, { encoding: 'utf8' }),
61
+ ContentType: 'application/x-pem-file',
62
+ }).promise();
48
63
  return {
49
64
  Ref: event.LogicalResourceId,
50
- CSR: await readFile(csrFile, { encoding: 'utf8' }),
51
- SelfSignedCertificate: await readFile(certFile, { encoding: 'utf8' }),
65
+ CSR: `s3://${bucketName}/certificate-signing-request.pem`,
66
+ SelfSignedCertificate: `s3://${bucketName}/self-signed-certificate.pem`,
52
67
  };
53
68
  }
54
69
  finally {
@@ -91,4 +106,4 @@ async function _retrievePrivateKey(event, dir) {
91
106
  await writeFile(file, secret.SecretString, { encoding: 'utf8' });
92
107
  return file;
93
108
  }
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VydGlmaWNhdGUtc2lnbmluZy1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NlcnRpZmljYXRlLXNpZ25pbmctcmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlCQUF5QjtBQUN6Qix5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDZCQUE2QjtBQUU3QiwrQkFBK0I7QUFFL0IsMENBQTBDO0FBRTFDLGlDQUFrQztBQUdsQyxpQ0FBa0M7QUFFbEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDM0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDN0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFL0MsTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7QUFFaEQsT0FBTyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUM7QUFPekQsS0FBSyxVQUFVLFdBQVcsQ0FBQyxLQUFnQixFQUFFLFFBQXdCO0lBQ25FLElBQUksS0FBSyxDQUFDLFdBQVcsS0FBSyxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRTtRQUNoRCxHQUFHLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFO1lBQy9DLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsY0FBYyxFQUFFLElBQUk7WUFDcEIsVUFBVSxFQUFFLElBQUk7WUFDaEIsa0JBQWtCLEVBQUUsSUFBSTtZQUN4Qix3QkFBd0IsRUFBRSxJQUFJO1lBQzlCLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsZ0JBQWdCLEVBQUUsS0FBSztZQUN2QixR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
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VydGlmaWNhdGUtc2lnbmluZy1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NlcnRpZmljYXRlLXNpZ25pbmctcmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlCQUF5QjtBQUN6Qix5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDZCQUE2QjtBQUU3QiwrQkFBK0I7QUFFL0IsMENBQTBDO0FBRTFDLGlDQUFrQztBQUdsQyxpQ0FBa0M7QUFFbEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDM0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDN0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFL0MsTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7QUFFaEQsT0FBTyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUM7QUFPekQsS0FBSyxVQUFVLFdBQVcsQ0FBQyxLQUFnQixFQUFFLFFBQXdCO0lBQ25FLElBQUksS0FBSyxDQUFDLFdBQVcsS0FBSyxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRTtRQUNoRCxHQUFHLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFO1lBQy9DLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsY0FBYyxFQUFFLElBQUk7WUFDcEIsVUFBVSxFQUFFLElBQUk7WUFDaEIsa0JBQWtCLEVBQUUsSUFBSTtZQUN4Qix3QkFBd0IsRUFBRSxJQUFJO1lBQzlCLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsZ0JBQWdCLEVBQUUsS0FBSztZQUN2QixR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
@@ -99,15 +99,29 @@
99
99
  }
100
100
  }
101
101
  },
102
- "70d613312145b8280d33a47035cc5be2a9bd0e5069705e39f83b14cd1f720e99": {
102
+ "9012a4bd6eb36f7ec4fec65ce817435d9b8dda297c62e87163a773c7d25c60a9": {
103
103
  "source": {
104
- "path": "asset.70d613312145b8280d33a47035cc5be2a9bd0e5069705e39f83b14cd1f720e99",
104
+ "path": "asset.9012a4bd6eb36f7ec4fec65ce817435d9b8dda297c62e87163a773c7d25c60a9",
105
105
  "packaging": "zip"
106
106
  },
107
107
  "destinations": {
108
108
  "712950704752-us-east-1": {
109
109
  "bucketName": "cdk-hnb659fds-assets-712950704752-us-east-1",
110
- "objectKey": "70d613312145b8280d33a47035cc5be2a9bd0e5069705e39f83b14cd1f720e99.zip",
110
+ "objectKey": "9012a4bd6eb36f7ec4fec65ce817435d9b8dda297c62e87163a773c7d25c60a9.zip",
111
+ "region": "us-east-1",
112
+ "assumeRoleArn": "arn:${AWS::Partition}:iam::712950704752:role/cdk-hnb659fds-file-publishing-role-712950704752-us-east-1"
113
+ }
114
+ }
115
+ },
116
+ "15684a15d07860e99d2a8079150ad33dd2cb743677fcd7016dd07345e1b69538": {
117
+ "source": {
118
+ "path": "asset.15684a15d07860e99d2a8079150ad33dd2cb743677fcd7016dd07345e1b69538",
119
+ "packaging": "zip"
120
+ },
121
+ "destinations": {
122
+ "712950704752-us-east-1": {
123
+ "bucketName": "cdk-hnb659fds-assets-712950704752-us-east-1",
124
+ "objectKey": "15684a15d07860e99d2a8079150ad33dd2cb743677fcd7016dd07345e1b69538.zip",
111
125
  "region": "us-east-1",
112
126
  "assumeRoleArn": "arn:${AWS::Partition}:iam::712950704752:role/cdk-hnb659fds-file-publishing-role-712950704752-us-east-1"
113
127
  }
@@ -225,21 +239,21 @@
225
239
  }
226
240
  }
227
241
  },
228
- "98dba9b3d79739d40a37e0621754556a791eef3b1c96e913c6e8d5df3a379bd4": {
242
+ "0ff875115bf3a3ba9f32946b1f2b9b153553ecba0e511c42ac11bef064968c40": {
229
243
  "source": {
230
- "path": "asset.98dba9b3d79739d40a37e0621754556a791eef3b1c96e913c6e8d5df3a379bd4",
244
+ "path": "asset.0ff875115bf3a3ba9f32946b1f2b9b153553ecba0e511c42ac11bef064968c40",
231
245
  "packaging": "zip"
232
246
  },
233
247
  "destinations": {
234
248
  "712950704752-us-east-1": {
235
249
  "bucketName": "cdk-hnb659fds-assets-712950704752-us-east-1",
236
- "objectKey": "98dba9b3d79739d40a37e0621754556a791eef3b1c96e913c6e8d5df3a379bd4.zip",
250
+ "objectKey": "0ff875115bf3a3ba9f32946b1f2b9b153553ecba0e511c42ac11bef064968c40.zip",
237
251
  "region": "us-east-1",
238
252
  "assumeRoleArn": "arn:${AWS::Partition}:iam::712950704752:role/cdk-hnb659fds-file-publishing-role-712950704752-us-east-1"
239
253
  }
240
254
  }
241
255
  },
242
- "3f51b0ef2bfe7d6fc58ae98a3c98325ad21b01b8695757f9f0748ecf98d47289": {
256
+ "c9a95a9366347258da0d2af5ffd2ec969caf38f51888e77082836696d557b5c3": {
243
257
  "source": {
244
258
  "path": "delivlib-test.template.json",
245
259
  "packaging": "file"
@@ -247,7 +261,7 @@
247
261
  "destinations": {
248
262
  "712950704752-us-east-1": {
249
263
  "bucketName": "cdk-hnb659fds-assets-712950704752-us-east-1",
250
- "objectKey": "3f51b0ef2bfe7d6fc58ae98a3c98325ad21b01b8695757f9f0748ecf98d47289.json",
264
+ "objectKey": "c9a95a9366347258da0d2af5ffd2ec969caf38f51888e77082836696d557b5c3.json",
251
265
  "region": "us-east-1",
252
266
  "assumeRoleArn": "arn:${AWS::Partition}:iam::712950704752:role/cdk-hnb659fds-file-publishing-role-712950704752-us-east-1"
253
267
  }