@aws-cdk/toolkit-lib 1.10.3 → 1.10.4

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.
package/build-info.json CHANGED
@@ -1,4 +1,4 @@
1
1
  {
2
- "comment": "Generated at 2025-11-06T20:17:58Z by build-info.sh",
3
- "commit": "779352d"
2
+ "comment": "Generated at 2025-11-17T14:54:13Z by build-info.sh",
3
+ "commit": "30ee4c9"
4
4
  }
@@ -20,4 +20,24 @@ export type TemplateBodyParameter = {
20
20
  * @param toolkitInfo - information about the toolkit stack
21
21
  */
22
22
  export declare function makeBodyParameter(ioHelper: IoHelper, stack: CloudFormationStackArtifact, resolvedEnvironment: Environment, assetManifest: AssetManifestBuilder, resources: EnvironmentResources, overrideTemplate?: any): Promise<TemplateBodyParameter>;
23
+ /**
24
+ * Format an S3 URL in the manifest for use with CloudFormation
25
+ *
26
+ * Replaces environment placeholders (which this field may contain),
27
+ * and reformats s3://.../... urls into S3 REST URLs (which CloudFormation
28
+ * expects).
29
+ *
30
+ * We need to return the official region- and partition-specific URL for AWS S3
31
+ * here, so we use the SDK's information about endpoints. At the same time, the
32
+ * SDK allows overriding this URL by setting an environment variable
33
+ * (specifically $AWS_ENDPOINT_URL_S3) but we want to *not* honor that, because
34
+ * there's a 99.9% chance this URL will not be routable from AWS CloudFormation.
35
+ *
36
+ * To allow for the off chance that someone is running this tool against a
37
+ * custom build of CloudFormation that does need a specific S3 endpoint passed
38
+ * to it, we'll introduce a new environment variable that we'll respect instead:
39
+ *
40
+ * AWS_ENDPOINT_URL_S3_FOR_CLOUDFORMATION
41
+ */
42
+ export declare function restUrlFromManifest(url: string, environment: Environment): Promise<string>;
23
43
  //# sourceMappingURL=template-body-parameter.d.ts.map
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeBodyParameter = makeBodyParameter;
4
+ exports.restUrlFromManifest = restUrlFromManifest;
4
5
  const fs = require("node:fs/promises");
5
6
  const path = require("node:path");
6
7
  const util = require("node:util");
@@ -67,7 +68,19 @@ async function makeBodyParameter(ioHelper, stack, resolvedEnvironment, assetMani
67
68
  *
68
69
  * Replaces environment placeholders (which this field may contain),
69
70
  * and reformats s3://.../... urls into S3 REST URLs (which CloudFormation
70
- * expects)
71
+ * expects).
72
+ *
73
+ * We need to return the official region- and partition-specific URL for AWS S3
74
+ * here, so we use the SDK's information about endpoints. At the same time, the
75
+ * SDK allows overriding this URL by setting an environment variable
76
+ * (specifically $AWS_ENDPOINT_URL_S3) but we want to *not* honor that, because
77
+ * there's a 99.9% chance this URL will not be routable from AWS CloudFormation.
78
+ *
79
+ * To allow for the off chance that someone is running this tool against a
80
+ * custom build of CloudFormation that does need a specific S3 endpoint passed
81
+ * to it, we'll introduce a new environment variable that we'll respect instead:
82
+ *
83
+ * AWS_ENDPOINT_URL_S3_FOR_CLOUDFORMATION
71
84
  */
72
85
  async function restUrlFromManifest(url, environment) {
73
86
  const doNotUseMarker = '**DONOTUSE**';
@@ -91,13 +104,27 @@ async function restUrlFromManifest(url, environment) {
91
104
  // got an 's3://bucket/object' URL instead. Construct the rest API URL here.
92
105
  const bucketName = s3Url[1];
93
106
  const objectKey = s3Url[2];
94
- // SDK v3 no longer allows for getting endpoints from only region.
95
- // A command and client config must now be provided.
96
- const s3 = new client_s3_1.S3Client({ region });
97
- const endpoint = await (0, middleware_endpoint_1.getEndpointFromInstructions)({}, client_s3_1.HeadObjectCommand, {
98
- ...s3.config,
99
- });
100
- endpoint.url.hostname;
101
- return `${endpoint.url.origin}/${bucketName}/${objectKey}`;
107
+ const originalOverrideS3Endpoint = process.env.AWS_ENDPOINT_URL_S3;
108
+ setEnv('AWS_ENDPOINT_URL_S3', process.env.AWS_ENDPOINT_URL_S3_FOR_CLOUDFORMATION);
109
+ try {
110
+ // SDK v3 no longer allows for getting endpoints from only region.
111
+ // A command and client config must now be provided.
112
+ const s3 = new client_s3_1.S3Client({ region });
113
+ const endpoint = await (0, middleware_endpoint_1.getEndpointFromInstructions)({}, client_s3_1.HeadObjectCommand, {
114
+ ...s3.config,
115
+ });
116
+ return `${endpoint.url.origin}/${bucketName}/${objectKey}`;
117
+ }
118
+ finally {
119
+ setEnv('AWS_ENDPOINT_URL_S3', originalOverrideS3Endpoint);
120
+ }
121
+ }
122
+ function setEnv(name, value) {
123
+ if (value) {
124
+ process.env[name] = value;
125
+ }
126
+ else {
127
+ delete process.env[name];
128
+ }
102
129
  }
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtYm9keS1wYXJhbWV0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0ZW1wbGF0ZS1ib2R5LXBhcmFtZXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlDQSw4Q0E2REM7QUE5RkQsdUNBQXVDO0FBQ3ZDLGtDQUFrQztBQUNsQyxrQ0FBa0M7QUFDbEMsNENBQThHO0FBQzlHLGtEQUFpRTtBQUNqRSxxRUFBMEU7QUFDMUUsK0JBQStCO0FBQy9CLCtEQUEyRDtBQUMzRCxxQ0FBaUQ7QUFVakQsTUFBTSxzQkFBc0IsR0FBRyxFQUFFLENBQUM7QUFFbEM7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0ksS0FBSyxVQUFVLGlCQUFpQixDQUNyQyxRQUFrQixFQUNsQixLQUFrQyxFQUNsQyxtQkFBZ0MsRUFDaEMsYUFBbUMsRUFDbkMsU0FBK0IsRUFDL0IsZ0JBQXNCO0lBRXRCLDJFQUEyRTtJQUMzRSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDM0QsT0FBTztZQUNMLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDLEtBQUssQ0FBQywyQkFBMkIsRUFBRSxtQkFBbUIsQ0FBQztTQUMvRixDQUFDO0lBQ0osQ0FBQztJQUVELG9FQUFvRTtJQUNwRSxNQUFNLFlBQVksR0FBRyxJQUFBLGFBQU0sRUFBQyxnQkFBZ0IsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFaEUsSUFBSSxZQUFZLENBQUMsTUFBTSxJQUFJLHNCQUFzQixHQUFHLElBQUksRUFBRSxDQUFDO1FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELE1BQU0sV0FBVyxHQUFHLE1BQU0sU0FBUyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3BELElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdkIsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUss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QTJCLEVBQUMsRUFBRSxFQUFFLDZCQUFpQixFQUFFO1FBQ3hFLEdBQUcsRUFBRSxDQUFDLE1BQU07S0FDYixDQUFDLENBQUM7SUFDSCxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztJQUV0QixPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksVUFBVSxJQUFJLFNBQVMsRUFBRSxDQUFDO0FBQzdELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdub2RlOmZzL3Byb21pc2VzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCAqIGFzIHV0aWwgZnJvbSAnbm9kZTp1dGlsJztcbmltcG9ydCB7IHR5cGUgQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LCB0eXBlIEVudmlyb25tZW50LCBFbnZpcm9ubWVudFBsYWNlaG9sZGVycyB9IGZyb20gJ0Bhd3MtY2RrL2N4LWFwaSc7XG5pbXBvcnQgeyBIZWFkT2JqZWN0Q29tbWFuZCwgUzNDbGllbnQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtczMnO1xuaW1wb3J0IHsgZ2V0RW5kcG9pbnRGcm9tSW5zdHJ1Y3Rpb25zIH0gZnJvbSAnQHNtaXRoeS9taWRkbGV3YXJlLWVuZHBvaW50JztcbmltcG9ydCAqIGFzIGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgeyBjb250ZW50SGFzaCwgdG9ZQU1MIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5pbXBvcnQgdHlwZSB7IEFzc2V0TWFuaWZlc3RCdWlsZGVyIH0gZnJvbSAnLi4vZGVwbG95bWVudHMnO1xuaW1wb3J0IHR5cGUgeyBFbnZpcm9ubWVudFJlc291cmNlcyB9IGZyb20gJy4uL2Vudmlyb25tZW50JztcbmltcG9ydCB0eXBlIHsgSW9IZWxwZXIgfSBmcm9tICcuLi9pby9wcml2YXRlJztcblxuZXhwb3J0IHR5cGUgVGVtcGxhdGVCb2R5UGFyYW1ldGVyID0ge1xuICBUZW1wbGF0ZUJvZHk/OiBzdHJpbmc7XG4gIFRlbXBsYXRlVVJMPzogc3RyaW5nO1xufTtcblxuY29uc3QgTEFSR0VfVEVNUExBVEVfU0laRV9LQiA9IDUwO1xuXG4vKipcbiAqIFByZXBhcmVzIHRoZSBib2R5IHBhcmFtZXRlciBmb3IgK0NyZWF0ZUNoYW5nZVNldCsuXG4gKlxuICogSWYgdGhlIHRlbXBsYXRlIGlzIHNtYWxsIGVub3VnaCB0byBiZSBpbmxpbmVkIGludG8gdGhlIEFQSSBjYWxsLCBqdXN0IHJldHVyblxuICogaXQgaW1tZWRpYXRlbHkuXG4gKlxuICogT3RoZXJ3aXNlLCBhZGQgaXQgdG8gdGhlIGFzc2V0IG1hbmlmZXN0IHRvIGdldCB1cGxvYWRlZCB0byB0aGUgc3RhZ2luZ1xuICogYnVja2V0IGFuZCByZXR1cm4gaXRzIGNvb3JkaW5hdGVzLiBJZiB0aGVyZSBpcyBubyBzdGFnaW5nIGJ1Y2tldCwgYW4gZXJyb3JcbiAqIGlzIHRocm93bi5cbiAqXG4gKiBAcGFyYW0gc3RhY2sgICAgIC0gdGhlIHN5bnRoZXNpemVkIHN0YWNrIHRoYXQgcHJvdmlkZXMgdGhlIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlXG4gKiBAcGFyYW0gdG9vbGtpdEluZm8gLSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdG9vbGtpdCBzdGFja1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbWFrZUJvZHlQYXJhbWV0ZXIoXG4gIGlvSGVscGVyOiBJb0hlbHBlcixcbiAgc3RhY2s6IENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCxcbiAgcmVzb2x2ZWRFbnZpcm9ubWVudDogRW52aXJvbm1lbnQsXG4gIGFzc2V0TWFuaWZlc3Q6IEFzc2V0TWFuaWZlc3RCdWlsZGVyLFxuICByZXNvdXJjZXM6IEVudmlyb25tZW50UmVzb3VyY2VzLFxuICBvdmVycmlkZVRlbXBsYXRlPzogYW55LFxuKTogUHJvbWlzZTxUZW1wbGF0ZUJvZHlQYXJhbWV0ZXI+IHtcbiAgLy8gSWYgdGhlIHRlbXBsYXRlIGhhcyBhbHJlYWR5IGJlZW4gdXBsb2FkZWQgdG8gUzMsIGp1c3QgdXNlIGl0IGZyb20gdGhlcmUuXG4gIGlmIChzdGFjay5zdGFja1RlbXBsYXRlQXNzZXRPYmplY3RVcmwgJiYgIW92ZXJyaWRlVGVtcGxhdGUpIHtcbiAgICByZXR1cm4ge1xuICAgICAgVGVtcGxhdGVVUkw6IGF3YWl0IHJlc3RVcmxGcm9tTWFuaWZlc3Qoc3RhY2suc3RhY2tUZW1wbGF0ZUFzc2V0T2JqZWN0VXJsLCByZXNvbHZlZEVudmlyb25tZW50KSxcbiAgICB9O1xuICB9XG5cbiAgLy8gT3RoZXJ3aXNlLCBwYXNzIHZpYSBBUEkgY2FsbCAoaWYgc21hbGwpIG9yIHVwbG9hZCBoZXJlIChpZiBsYXJnZSlcbiAgY29uc3QgdGVtcGxhdGVKc29uID0gdG9ZQU1MKG92ZXJyaWRlVGVtcGxhdGUgPz8gc3RhY2sudGVtcGxhdGUpO1xuXG4gIGlmICh0ZW1wbGF0ZUpzb24ubGVuZ3RoIDw9IExBUkdFX1RFTVBMQVRFX1NJWkVfS0IgKiAxMDI0KSB7XG4gICAgcmV0dXJuIHsgVGVtcGxhdGVCb2R5OiB0ZW1wbGF0ZUpzb24gfTtcbiAgfVxuXG4gIGNvbnN0IHRvb2xraXRJbmZvID0gYXdhaXQgcmVzb3VyY2VzLmxvb2t1cFRvb2xraXQoKTtcbiAgaWYgKCF0b29sa2l0SW5mby5mb3VuZCkge1xuICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmVycm9yKFxuICAgICAgdXRpbC5mb3JtYXQoXG4gICAgICAgIGBUaGUgdGVtcGxhdGUgZm9yIHN0YWNrIFwiJHtzdGFjay5kaXNwbGF5TmFtZX1cIiBpcyAke01hdGgucm91bmQodGVtcGxhdGVKc29uLmxlbmd0aCAvIDEwMjQpfUtpQi4gYCArXG4gICAgICAgIGBUZW1wbGF0ZXMgbGFyZ2VyIHRoYW4gJHtMQVJHRV9URU1QTEFURV9TSVpFX0tCfUtpQiBtdXN0IGJlIHVwbG9hZGVkIHRvIFMzLlxcbmAgK1xuICAgICAgICAnUnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBpbiBvcmRlciB0byBzZXR1cCBhbiBTMyBidWNrZXQgaW4gdGhpcyBlbnZpcm9ubWVudCwgYW5kIHRoZW4gcmUtZGVwbG95OlxcblxcbicsXG4gICAgICAgIGNoYWxrLmJsdWUoYFxcdCQgY2RrIGJvb3RzdHJhcCAke3Jlc29sdmVkRW52aXJvbm1lbnQubmFtZX1cXG5gKSxcbiAgICAgICksXG4gICAgKTtcblxuICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1RlbXBsYXRlIHRvbyBsYXJnZSB0byBkZXBsb3kgKFwiY2RrIGJvb3RzdHJhcFwiIGlzIHJlcXVpcmVkKScpO1xuICB9XG5cbiAgY29uc3QgdGVtcGxhdGVIYXNoID0gY29udGVudEhhc2godGVtcGxhdGVKc29uKTtcbiAgY29uc3Qga2V5ID0gYGNkay8ke3N0YWNrLmlkfS8ke3RlbXBsYXRlSGFzaH0ueW1sYDtcblxuICBsZXQgdGVtcGxhdGVGaWxlID0gc3RhY2sudGVtcGxhdGVGaWxlO1xuICBpZiAob3ZlcnJpZGVUZW1wbGF0ZSkge1xuICAgIC8vIEFkZCBhIHZhcmlhbnQgb2YgdGhpcyB0ZW1wbGF0ZVxuICAgIHRlbXBsYXRlRmlsZSA9IGAke3N0YWNrLnRlbXBsYXRlRmlsZX0tJHt0ZW1wbGF0ZUhhc2h9LnlhbWxgO1xuICAgIGNvbnN0IHRlbXBsYXRlRmlsZVBhdGggPSBwYXRoLmpvaW4oc3RhY2suYXNzZW1ibHkuZGlyZWN0b3J5LCB0ZW1wbGF0ZUZpbGUpO1xuICAgIGF3YWl0IGZzLndyaXRlRmlsZSh0ZW1wbGF0ZUZpbGVQYXRoLCB0ZW1wbGF0ZUpzb24sIHsgZW5jb2Rpbmc6ICd1dGYtOCcgfSk7XG4gIH1cblxuICBhc3NldE1hbmlmZXN0LmFkZEZpbGVBc3NldChcbiAgICB0ZW1wbGF0ZUhhc2gsXG4gICAge1xuICAgICAgcGF0aDogdGVtcGxhdGVGaWxlLFxuICAgIH0sXG4gICAge1xuICAgICAgYnVja2V0TmFtZTogdG9vbGtpdEluZm8uYnVja2V0TmFtZSxcbiAgICAgIG9iamVjdEtleToga2V5LFxuICAgIH0sXG4gICk7XG5cbiAgY29uc3QgdGVtcGxhdGVVUkwgPSBgJHt0b29sa2l0SW5mby5idWNrZXRVcmx9LyR7a2V5fWA7XG4gIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGBTdG9yaW5nIHRlbXBsYXRlIGluIFMzIGF0OiAke3RlbXBsYXRlVVJMfWApO1xuICByZXR1cm4geyBUZW1wbGF0ZVVSTDogdGVtcGxhdGVVUkwgfTtcbn1cblxuLyoqXG4gKiBGb3JtYXQgYW4gUzMgVVJMIGluIHRoZSBtYW5pZmVzdCBmb3IgdXNlIHdpdGggQ2xvdWRGb3JtYXRpb25cbiAqXG4gKiBSZXBsYWNlcyBlbnZpcm9ubWVudCBwbGFjZWhvbGRlcnMgKHdoaWNoIHRoaXMgZmllbGQgbWF5IGNvbnRhaW4pLFxuICogYW5kIHJlZm9ybWF0cyBzMzovLy4uLi8uLi4gdXJscyBpbnRvIFMzIFJFU1QgVVJMcyAod2hpY2ggQ2xvdWRGb3JtYXRpb25cbiAqIGV4cGVjdHMpXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHJlc3RVcmxGcm9tTWFuaWZlc3QodXJsOiBzdHJpbmcsIGVudmlyb25tZW50OiBFbnZpcm9ubWVudCk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IGRvTm90VXNlTWFya2VyID0gJyoqRE9OT1RVU0UqKic7XG4gIGNvbnN0IHJlZ2lvbiA9IGVudmlyb25tZW50LnJlZ2lvbjtcbiAgLy8gVGhpcyBVUkwgbWF5IGNvbnRhaW4gcGxhY2Vob2xkZXJzLCBzbyBzdGlsbCBzdWJzdGl0dXRlIHRob3NlLlxuICB1cmwgPSBFbnZpcm9ubWVudFBsYWNlaG9sZGVycy5yZXBsYWNlKHVybCwge1xuICAgIGFjY291bnRJZDogZW52aXJvbm1lbnQuYWNjb3VudCxcbiAgICByZWdpb24sXG4gICAgcGFydGl0aW9uOiBkb05vdFVzZU1hcmtlcixcbiAgfSk7XG5cbiAgLy8gWWVzLCB0aGlzIGlzIGV4dHJlbWVseSBjcnVkZSwgYnV0IHdlIGRvbid0IGFjdHVhbGx5IG5lZWQgdGhpcyBzbyBJJ20gbm90IGluY2xpbmVkIHRvIHNwZW5kXG4gIC8vIGEgbG90IG9mIGVmZm9ydCB0cnlpbmcgdG8gdGhyZWFkIHRoZSByaWdodCB2YWx1ZSB0byB0aGlzIGxvY2F0aW9uLlxuICBpZiAodXJsLmluZGV4T2YoZG9Ob3RVc2VNYXJrZXIpID4gLTEpIHtcbiAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKFwiQ2Fubm90IHVzZSAnJHtBV1M6OlBhcnRpdGlvbn0nIGluIHRoZSAnc3RhY2tUZW1wbGF0ZUFzc2V0T2JqZWN0VXJsJyBmaWVsZFwiKTtcbiAgfVxuXG4gIGNvbnN0IHMzVXJsID0gdXJsLm1hdGNoKC9zMzpcXC9cXC8oW14vXSspXFwvKC4qKSQvKTtcbiAgaWYgKCFzM1VybCkge1xuICAgIHJldHVybiB1cmw7XG4gIH1cblxuICAvLyBXZSBuZWVkIHRvIHBhc3MgYW4gJ2h0dHBzOi8vczMuUkVHSU9OLmFtYXpvbmF3cy5jb21bLmNuXS9idWNrZXQvb2JqZWN0JyBVUkwgdG8gQ2xvdWRGb3JtYXRpb24sIGJ1dCB3ZVxuICAvLyBnb3QgYW4gJ3MzOi8vYnVja2V0L29iamVjdCcgVVJMIGluc3RlYWQuIENvbnN0cnVjdCB0aGUgcmVzdCBBUEkgVVJMIGhlcmUuXG4gIGNvbnN0IGJ1Y2tldE5hbWUgPSBzM1VybFsxXTtcbiAgY29uc3Qgb2JqZWN0S2V5ID0gczNVcmxbMl07XG5cbiAgLy8gU0RLIHYzIG5vIGxvbmdlciBhbGxvd3MgZm9yIGdldHRpbmcgZW5kcG9pbnRzIGZyb20gb25seSByZWdpb24uXG4gIC8vIEEgY29tbWFuZCBhbmQgY2xpZW50IGNvbmZpZyBtdXN0IG5vdyBiZSBwcm92aWRlZC5cbiAgY29uc3QgczMgPSBuZXcgUzNDbGllbnQoeyByZWdpb24gfSk7XG4gIGNvbnN0IGVuZHBvaW50ID0gYXdhaXQgZ2V0RW5kcG9pbnRGcm9tSW5zdHJ1Y3Rpb25zKHt9LCBIZWFkT2JqZWN0Q29tbWFuZCwge1xuICAgIC4uLnMzLmNvbmZpZyxcbiAgfSk7XG4gIGVuZHBvaW50LnVybC5ob3N0bmFtZTtcblxuICByZXR1cm4gYCR7ZW5kcG9pbnQudXJsLm9yaWdpbn0vJHtidWNrZXROYW1lfS8ke29iamVjdEtleX1gO1xufVxuIl19
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtYm9keS1wYXJhbWV0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0ZW1wbGF0ZS1ib2R5LXBhcmFtZXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlDQSw4Q0E2REM7QUFxQkQsa0RBd0NDO0FBM0pELHVDQUF1QztBQUN2QyxrQ0FBa0M7QUFDbEMsa0NBQWtDO0FBQ2xDLDRDQUE4RztBQUM5RyxrREFBaUU7QUFDakUscUVBQTBFO0FBQzFFLCtCQUErQjtBQUMvQiwrREFBMkQ7QUFDM0QscUNBQWlEO0FBVWpELE1BQU0sc0JBQXNCLEdBQUcsRUFBRSxDQUFDO0FBRWxDOzs7Ozs7Ozs7Ozs7R0FZRztBQUNJLEtBQUssVUFBVSxpQkFBaUIsQ0FDckMsUUFBa0IsRUFDbEIsS0FBa0MsRUFDbEMsbUJBQWdDLEVBQ2hDLGFBQW1DLEVBQ25DLFNBQStCLEVBQy9CLGdCQUFzQjtJQUV0QiwyRUFBMkU7SUFDM0UsSUFBSSxLQUFLLENBQUMsMkJBQTJCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzNELE9BQU87WUFDTCxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsMkJBQTJCLEVBQUUsbUJBQW1CLENBQUM7U0FDL0YsQ0FBQztJQUNKLENBQUM7SUFFRCxvRUFBb0U7SUFDcEUsTUFBTSxZQUFZLEdBQUcsSUFBQSxhQUFNLEVBQUMsZ0JBQWdCLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRWhFLElBQUksWUFBWSxDQUFDLE1BQU0sSUFBSSxzQkFBc0IsR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxNQUFNLFdBQVcsR0FBRyxNQUFNLFNBQVMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNwRCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sUUFBUSxDQUFDLFFB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RyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7SUFDbEYsSUFBSSxDQUFDO1FBQ0gsa0VBQWtFO1FBQ2xFLG9EQUFvRDtRQUNwRCxNQUFNLEVBQUUsR0FBRyxJQUFJLG9CQUFRLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBQSxpREFBMkIsRUFBQyxFQUFFLEVBQUUsNkJBQWlCLEVBQUU7WUFDeEUsR0FBRyxFQUFFLENBQUMsTUFBTTtTQUNiLENBQUMsQ0FBQztRQUVILE9BQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxVQUFVLElBQUksU0FBUyxFQUFFLENBQUM7SUFDN0QsQ0FBQztZQUFTLENBQUM7UUFDVCxNQUFNLENBQUMscUJBQXFCLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztJQUM1RCxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQVMsTUFBTSxDQUFDLElBQVksRUFBRSxLQUF5QjtJQUNyRCxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ1YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdub2RlOmZzL3Byb21pc2VzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCAqIGFzIHV0aWwgZnJvbSAnbm9kZTp1dGlsJztcbmltcG9ydCB7IHR5cGUgQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LCB0eXBlIEVudmlyb25tZW50LCBFbnZpcm9ubWVudFBsYWNlaG9sZGVycyB9IGZyb20gJ0Bhd3MtY2RrL2N4LWFwaSc7XG5pbXBvcnQgeyBIZWFkT2JqZWN0Q29tbWFuZCwgUzNDbGllbnQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtczMnO1xuaW1wb3J0IHsgZ2V0RW5kcG9pbnRGcm9tSW5zdHJ1Y3Rpb25zIH0gZnJvbSAnQHNtaXRoeS9taWRkbGV3YXJlLWVuZHBvaW50JztcbmltcG9ydCAqIGFzIGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgeyBjb250ZW50SGFzaCwgdG9ZQU1MIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5pbXBvcnQgdHlwZSB7IEFzc2V0TWFuaWZlc3RCdWlsZGVyIH0gZnJvbSAnLi4vZGVwbG95bWVudHMnO1xuaW1wb3J0IHR5cGUgeyBFbnZpcm9ubWVudFJlc291cmNlcyB9IGZyb20gJy4uL2Vudmlyb25tZW50JztcbmltcG9ydCB0eXBlIHsgSW9IZWxwZXIgfSBmcm9tICcuLi9pby9wcml2YXRlJztcblxuZXhwb3J0IHR5cGUgVGVtcGxhdGVCb2R5UGFyYW1ldGVyID0ge1xuICBUZW1wbGF0ZUJvZHk/OiBzdHJpbmc7XG4gIFRlbXBsYXRlVVJMPzogc3RyaW5nO1xufTtcblxuY29uc3QgTEFSR0VfVEVNUExBVEVfU0laRV9LQiA9IDUwO1xuXG4vKipcbiAqIFByZXBhcmVzIHRoZSBib2R5IHBhcmFtZXRlciBmb3IgK0NyZWF0ZUNoYW5nZVNldCsuXG4gKlxuICogSWYgdGhlIHRlbXBsYXRlIGlzIHNtYWxsIGVub3VnaCB0byBiZSBpbmxpbmVkIGludG8gdGhlIEFQSSBjYWxsLCBqdXN0IHJldHVyblxuICogaXQgaW1tZWRpYXRlbHkuXG4gKlxuICogT3RoZXJ3aXNlLCBhZGQgaXQgdG8gdGhlIGFzc2V0IG1hbmlmZXN0IHRvIGdldCB1cGxvYWRlZCB0byB0aGUgc3RhZ2luZ1xuICogYnVja2V0IGFuZCByZXR1cm4gaXRzIGNvb3JkaW5hdGVzLiBJZiB0aGVyZSBpcyBubyBzdGFnaW5nIGJ1Y2tldCwgYW4gZXJyb3JcbiAqIGlzIHRocm93bi5cbiAqXG4gKiBAcGFyYW0gc3RhY2sgICAgIC0gdGhlIHN5bnRoZXNpemVkIHN0YWNrIHRoYXQgcHJvdmlkZXMgdGhlIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlXG4gKiBAcGFyYW0gdG9vbGtpdEluZm8gLSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdG9vbGtpdCBzdGFja1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbWFrZUJvZHlQYXJhbWV0ZXIoXG4gIGlvSGVscGVyOiBJb0hlbHBlcixcbiAgc3RhY2s6IENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCxcbiAgcmVzb2x2ZWRFbnZpcm9ubWVudDogRW52aXJvbm1lbnQsXG4gIGFzc2V0TWFuaWZlc3Q6IEFzc2V0TWFuaWZlc3RCdWlsZGVyLFxuICByZXNvdXJjZXM6IEVudmlyb25tZW50UmVzb3VyY2VzLFxuICBvdmVycmlkZVRlbXBsYXRlPzogYW55LFxuKTogUHJvbWlzZTxUZW1wbGF0ZUJvZHlQYXJhbWV0ZXI+IHtcbiAgLy8gSWYgdGhlIHRlbXBsYXRlIGhhcyBhbHJlYWR5IGJlZW4gdXBsb2FkZWQgdG8gUzMsIGp1c3QgdXNlIGl0IGZyb20gdGhlcmUuXG4gIGlmIChzdGFjay5zdGFja1RlbXBsYXRlQXNzZXRPYmplY3RVcmwgJiYgIW92ZXJyaWRlVGVtcGxhdGUpIHtcbiAgICByZXR1cm4ge1xuICAgICAgVGVtcGxhdGVVUkw6IGF3YWl0IHJlc3RVcmxGcm9tTWFuaWZlc3Qoc3RhY2suc3RhY2tUZW1wbGF0ZUFzc2V0T2JqZWN0VXJsLCByZXNvbHZlZEVudmlyb25tZW50KSxcbiAgICB9O1xuICB9XG5cbiAgLy8gT3RoZXJ3aXNlLCBwYXNzIHZpYSBBUEkgY2FsbCAoaWYgc21hbGwpIG9yIHVwbG9hZCBoZXJlIChpZiBsYXJnZSlcbiAgY29uc3QgdGVtcGxhdGVKc29uID0gdG9ZQU1MKG92ZXJyaWRlVGVtcGxhdGUgPz8gc3RhY2sudGVtcGxhdGUpO1xuXG4gIGlmICh0ZW1wbGF0ZUpzb24ubGVuZ3RoIDw9IExBUkdFX1RFTVBMQVRFX1NJWkVfS0IgKiAxMDI0KSB7XG4gICAgcmV0dXJuIHsgVGVtcGxhdGVCb2R5OiB0ZW1wbGF0ZUpzb24gfTtcbiAgfVxuXG4gIGNvbnN0IHRvb2xraXRJbmZvID0gYXdhaXQgcmVzb3VyY2VzLmxvb2t1cFRvb2xraXQoKTtcbiAgaWYgKCF0b29sa2l0SW5mby5mb3VuZCkge1xuICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmVycm9yKFxuICAgICAgdXRpbC5mb3JtYXQoXG4gICAgICAgIGBUaGUgdGVtcGxhdGUgZm9yIHN0YWNrIFwiJHtzdGFjay5kaXNwbGF5TmFtZX1cIiBpcyAke01hdGgucm91bmQodGVtcGxhdGVKc29uLmxlbmd0aCAvIDEwMjQpfUtpQi4gYCArXG4gICAgICAgIGBUZW1wbGF0ZXMgbGFyZ2VyIHRoYW4gJHtMQVJHRV9URU1QTEFURV9TSVpFX0tCfUtpQiBtdXN0IGJlIHVwbG9hZGVkIHRvIFMzLlxcbmAgK1xuICAgICAgICAnUnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBpbiBvcmRlciB0byBzZXR1cCBhbiBTMyBidWNrZXQgaW4gdGhpcyBlbnZpcm9ubWVudCwgYW5kIHRoZW4gcmUtZGVwbG95OlxcblxcbicsXG4gICAgICAgIGNoYWxrLmJsdWUoYFxcdCQgY2RrIGJvb3RzdHJhcCAke3Jlc29sdmVkRW52aXJvbm1lbnQubmFtZX1cXG5gKSxcbiAgICAgICksXG4gICAgKTtcblxuICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1RlbXBsYXRlIHRvbyBsYXJnZSB0byBkZXBsb3kgKFwiY2RrIGJvb3RzdHJhcFwiIGlzIHJlcXVpcmVkKScpO1xuICB9XG5cbiAgY29uc3QgdGVtcGxhdGVIYXNoID0gY29udGVudEhhc2godGVtcGxhdGVKc29uKTtcbiAgY29uc3Qga2V5ID0gYGNkay8ke3N0YWNrLmlkfS8ke3RlbXBsYXRlSGFzaH0ueW1sYDtcblxuICBsZXQgdGVtcGxhdGVGaWxlID0gc3RhY2sudGVtcGxhdGVGaWxlO1xuICBpZiAob3ZlcnJpZGVUZW1wbGF0ZSkge1xuICAgIC8vIEFkZCBhIHZhcmlhbnQgb2YgdGhpcyB0ZW1wbGF0ZVxuICAgIHRlbXBsYXRlRmlsZSA9IGAke3N0YWNrLnRlbXBsYXRlRmlsZX0tJHt0ZW1wbGF0ZUhhc2h9LnlhbWxgO1xuICAgIGNvbnN0IHRlbXBsYXRlRmlsZVBhdGggPSBwYXRoLmpvaW4oc3RhY2suYXNzZW1ibHkuZGlyZWN0b3J5LCB0ZW1wbGF0ZUZpbGUpO1xuICAgIGF3YWl0IGZzLndyaXRlRmlsZSh0ZW1wbGF0ZUZpbGVQYXRoLCB0ZW1wbGF0ZUpzb24sIHsgZW5jb2Rpbmc6ICd1dGYtOCcgfSk7XG4gIH1cblxuICBhc3NldE1hbmlmZXN0LmFkZEZpbGVBc3NldChcbiAgICB0ZW1wbGF0ZUhhc2gsXG4gICAge1xuICAgICAgcGF0aDogdGVtcGxhdGVGaWxlLFxuICAgIH0sXG4gICAge1xuICAgICAgYnVja2V0TmFtZTogdG9vbGtpdEluZm8uYnVja2V0TmFtZSxcbiAgICAgIG9iamVjdEtleToga2V5LFxuICAgIH0sXG4gICk7XG5cbiAgY29uc3QgdGVtcGxhdGVVUkwgPSBgJHt0b29sa2l0SW5mby5idWNrZXRVcmx9LyR7a2V5fWA7XG4gIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGBTdG9yaW5nIHRlbXBsYXRlIGluIFMzIGF0OiAke3RlbXBsYXRlVVJMfWApO1xuICByZXR1cm4geyBUZW1wbGF0ZVVSTDogdGVtcGxhdGVVUkwgfTtcbn1cblxuLyoqXG4gKiBGb3JtYXQgYW4gUzMgVVJMIGluIHRoZSBtYW5pZmVzdCBmb3IgdXNlIHdpdGggQ2xvdWRGb3JtYXRpb25cbiAqXG4gKiBSZXBsYWNlcyBlbnZpcm9ubWVudCBwbGFjZWhvbGRlcnMgKHdoaWNoIHRoaXMgZmllbGQgbWF5IGNvbnRhaW4pLFxuICogYW5kIHJlZm9ybWF0cyBzMzovLy4uLi8uLi4gdXJscyBpbnRvIFMzIFJFU1QgVVJMcyAod2hpY2ggQ2xvdWRGb3JtYXRpb25cbiAqIGV4cGVjdHMpLlxuICpcbiAqIFdlIG5lZWQgdG8gcmV0dXJuIHRoZSBvZmZpY2lhbCByZWdpb24tIGFuZCBwYXJ0aXRpb24tc3BlY2lmaWMgVVJMIGZvciBBV1MgUzNcbiAqIGhlcmUsIHNvIHdlIHVzZSB0aGUgU0RLJ3MgaW5mb3JtYXRpb24gYWJvdXQgZW5kcG9pbnRzLiBBdCB0aGUgc2FtZSB0aW1lLCB0aGVcbiAqIFNESyBhbGxvd3Mgb3ZlcnJpZGluZyB0aGlzIFVSTCBieSBzZXR0aW5nIGFuIGVudmlyb25tZW50IHZhcmlhYmxlXG4gKiAoc3BlY2lmaWNhbGx5ICRBV1NfRU5EUE9JTlRfVVJMX1MzKSBidXQgd2Ugd2FudCB0byAqbm90KiBob25vciB0aGF0LCBiZWNhdXNlXG4gKiB0aGVyZSdzIGEgOTkuOSUgY2hhbmNlIHRoaXMgVVJMIHdpbGwgbm90IGJlIHJvdXRhYmxlIGZyb20gQVdTIENsb3VkRm9ybWF0aW9uLlxuICpcbiAqIFRvIGFsbG93IGZvciB0aGUgb2ZmIGNoYW5jZSB0aGF0IHNvbWVvbmUgaXMgcnVubmluZyB0aGlzIHRvb2wgYWdhaW5zdCBhXG4gKiBjdXN0b20gYnVpbGQgb2YgQ2xvdWRGb3JtYXRpb24gdGhhdCBkb2VzIG5lZWQgYSBzcGVjaWZpYyBTMyBlbmRwb2ludCBwYXNzZWRcbiAqIHRvIGl0LCB3ZSdsbCBpbnRyb2R1Y2UgYSBuZXcgZW52aXJvbm1lbnQgdmFyaWFibGUgdGhhdCB3ZSdsbCByZXNwZWN0IGluc3RlYWQ6XG4gKlxuICogIEFXU19FTkRQT0lOVF9VUkxfUzNfRk9SX0NMT1VERk9STUFUSU9OXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXN0VXJsRnJvbU1hbmlmZXN0KHVybDogc3RyaW5nLCBlbnZpcm9ubWVudDogRW52aXJvbm1lbnQpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBkb05vdFVzZU1hcmtlciA9ICcqKkRPTk9UVVNFKionO1xuICBjb25zdCByZWdpb24gPSBlbnZpcm9ubWVudC5yZWdpb247XG4gIC8vIFRoaXMgVVJMIG1heSBjb250YWluIHBsYWNlaG9sZGVycywgc28gc3RpbGwgc3Vic3RpdHV0ZSB0aG9zZS5cbiAgdXJsID0gRW52aXJvbm1lbnRQbGFjZWhvbGRlcnMucmVwbGFjZSh1cmwsIHtcbiAgICBhY2NvdW50SWQ6IGVudmlyb25tZW50LmFjY291bnQsXG4gICAgcmVnaW9uLFxuICAgIHBhcnRpdGlvbjogZG9Ob3RVc2VNYXJrZXIsXG4gIH0pO1xuXG4gIC8vIFllcywgdGhpcyBpcyBleHRyZW1lbHkgY3J1ZGUsIGJ1dCB3ZSBkb24ndCBhY3R1YWxseSBuZWVkIHRoaXMgc28gSSdtIG5vdCBpbmNsaW5lZCB0byBzcGVuZFxuICAvLyBhIGxvdCBvZiBlZmZvcnQgdHJ5aW5nIHRvIHRocmVhZCB0aGUgcmlnaHQgdmFsdWUgdG8gdGhpcyBsb2NhdGlvbi5cbiAgaWYgKHVybC5pbmRleE9mKGRvTm90VXNlTWFya2VyKSA+IC0xKSB7XG4gICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihcIkNhbm5vdCB1c2UgJyR7QVdTOjpQYXJ0aXRpb259JyBpbiB0aGUgJ3N0YWNrVGVtcGxhdGVBc3NldE9iamVjdFVybCcgZmllbGRcIik7XG4gIH1cblxuICBjb25zdCBzM1VybCA9IHVybC5tYXRjaCgvczM6XFwvXFwvKFteL10rKVxcLyguKikkLyk7XG4gIGlmICghczNVcmwpIHtcbiAgICByZXR1cm4gdXJsO1xuICB9XG5cbiAgLy8gV2UgbmVlZCB0byBwYXNzIGFuICdodHRwczovL3MzLlJFR0lPTi5hbWF6b25hd3MuY29tWy5jbl0vYnVja2V0L29iamVjdCcgVVJMIHRvIENsb3VkRm9ybWF0aW9uLCBidXQgd2VcbiAgLy8gZ290IGFuICdzMzovL2J1Y2tldC9vYmplY3QnIFVSTCBpbnN0ZWFkLiBDb25zdHJ1Y3QgdGhlIHJlc3QgQVBJIFVSTCBoZXJlLlxuICBjb25zdCBidWNrZXROYW1lID0gczNVcmxbMV07XG4gIGNvbnN0IG9iamVjdEtleSA9IHMzVXJsWzJdO1xuXG4gIGNvbnN0IG9yaWdpbmFsT3ZlcnJpZGVTM0VuZHBvaW50ID0gcHJvY2Vzcy5lbnYuQVdTX0VORFBPSU5UX1VSTF9TMztcbiAgc2V0RW52KCdBV1NfRU5EUE9JTlRfVVJMX1MzJywgcHJvY2Vzcy5lbnYuQVdTX0VORFBPSU5UX1VSTF9TM19GT1JfQ0xPVURGT1JNQVRJT04pO1xuICB0cnkge1xuICAgIC8vIFNESyB2MyBubyBsb25nZXIgYWxsb3dzIGZvciBnZXR0aW5nIGVuZHBvaW50cyBmcm9tIG9ubHkgcmVnaW9uLlxuICAgIC8vIEEgY29tbWFuZCBhbmQgY2xpZW50IGNvbmZpZyBtdXN0IG5vdyBiZSBwcm92aWRlZC5cbiAgICBjb25zdCBzMyA9IG5ldyBTM0NsaWVudCh7IHJlZ2lvbiB9KTtcbiAgICBjb25zdCBlbmRwb2ludCA9IGF3YWl0IGdldEVuZHBvaW50RnJvbUluc3RydWN0aW9ucyh7fSwgSGVhZE9iamVjdENvbW1hbmQsIHtcbiAgICAgIC4uLnMzLmNvbmZpZyxcbiAgICB9KTtcblxuICAgIHJldHVybiBgJHtlbmRwb2ludC51cmwub3JpZ2lufS8ke2J1Y2tldE5hbWV9LyR7b2JqZWN0S2V5fWA7XG4gIH0gZmluYWxseSB7XG4gICAgc2V0RW52KCdBV1NfRU5EUE9JTlRfVVJMX1MzJywgb3JpZ2luYWxPdmVycmlkZVMzRW5kcG9pbnQpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHNldEVudihuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgaWYgKHZhbHVlKSB7XG4gICAgcHJvY2Vzcy5lbnZbbmFtZV0gPSB2YWx1ZTtcbiAgfSBlbHNlIHtcbiAgICBkZWxldGUgcHJvY2Vzcy5lbnZbbmFtZV07XG4gIH1cbn1cbiJdfQ==
package/package.json CHANGED
@@ -79,7 +79,7 @@
79
79
  },
80
80
  "dependencies": {
81
81
  "@aws-cdk/cdk-assets-lib": "^1",
82
- "@aws-cdk/cloud-assembly-schema": ">=48.18.0",
82
+ "@aws-cdk/cloud-assembly-schema": ">=48.19.0",
83
83
  "@aws-cdk/cloudformation-diff": "^2",
84
84
  "@aws-cdk/cx-api": "^2",
85
85
  "@aws-sdk/client-appsync": "^3",
@@ -136,7 +136,7 @@
136
136
  "publishConfig": {
137
137
  "access": "public"
138
138
  },
139
- "version": "1.10.3",
139
+ "version": "1.10.4",
140
140
  "types": "lib/index.d.ts",
141
141
  "exports": {
142
142
  ".": {