@aws-solutions-constructs/aws-cloudfront-s3 2.44.0 → 2.46.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 (33) hide show
  1. package/.jsii +106 -17
  2. package/lib/index.d.ts +1 -1
  3. package/lib/index.js +4 -3
  4. package/package.json +5 -5
  5. package/test/{integ.custom-security-headers.expected.json → integ.cfts3-custom-headers.expected.json} +15 -116
  6. package/test/integ.cfts3-custom-headers.js +60 -0
  7. package/test/{integ.custom-originPath.expected.json → integ.cfts3-custom-originPath.expected.json} +11 -112
  8. package/test/integ.cfts3-custom-originPath.js +37 -0
  9. package/test/{integ.customCloudFrontLoggingBucket.expected.json → integ.cfts3-customCloudFrontLoggingBucket.expected.json} +11 -112
  10. package/test/integ.cfts3-customCloudFrontLoggingBucket.js +39 -0
  11. package/test/{integ.customLoggingBucket.expected.json → integ.cfts3-customLoggingBucket.expected.json} +12 -112
  12. package/test/integ.cfts3-customLoggingBucket.js +42 -0
  13. package/test/{integ.existing-bucket.expected.json → integ.cfts3-existing-bucket.expected.json} +14 -115
  14. package/test/integ.cfts3-existing-bucket.js +53 -0
  15. package/test/{integ.no-arguments.expected.json → integ.cfts3-no-arguments.expected.json} +11 -112
  16. package/test/integ.cfts3-no-arguments.js +43 -0
  17. package/test/{integ.no-security-headers.expected.json → integ.cfts3-no-security-headers.expected.json} +8 -109
  18. package/test/integ.cfts3-no-security-headers.js +39 -0
  19. package/test/test.cloudfront-s3.test.js +24 -24
  20. package/test/integ.custom-originPath.js +0 -37
  21. package/test/integ.custom-security-headers.js +0 -60
  22. package/test/integ.customCloudFrontLoggingBucket.js +0 -39
  23. package/test/integ.customLoggingBucket.js +0 -42
  24. package/test/integ.existing-bucket.js +0 -53
  25. package/test/integ.no-arguments.js +0 -43
  26. package/test/integ.no-security-headers.js +0 -39
  27. /package/test/{integ.custom-originPath.d.ts → integ.cfts3-custom-headers.d.ts} +0 -0
  28. /package/test/{integ.custom-security-headers.d.ts → integ.cfts3-custom-originPath.d.ts} +0 -0
  29. /package/test/{integ.customCloudFrontLoggingBucket.d.ts → integ.cfts3-customCloudFrontLoggingBucket.d.ts} +0 -0
  30. /package/test/{integ.customLoggingBucket.d.ts → integ.cfts3-customLoggingBucket.d.ts} +0 -0
  31. /package/test/{integ.existing-bucket.d.ts → integ.cfts3-existing-bucket.d.ts} +0 -0
  32. /package/test/{integ.no-arguments.d.ts → integ.cfts3-no-arguments.d.ts} +0 -0
  33. /package/test/{integ.no-security-headers.d.ts → integ.cfts3-no-security-headers.d.ts} +0 -0
package/.jsii CHANGED
@@ -8,8 +8,8 @@
8
8
  "url": "https://aws.amazon.com"
9
9
  },
10
10
  "dependencies": {
11
- "@aws-solutions-constructs/core": "2.44.0",
12
- "aws-cdk-lib": "^2.82.0",
11
+ "@aws-solutions-constructs/core": "2.46.0",
12
+ "aws-cdk-lib": "^2.105.0",
13
13
  "constructs": "^10.0.0"
14
14
  },
15
15
  "dependencyClosure": {
@@ -65,29 +65,29 @@
65
65
  }
66
66
  }
67
67
  },
68
- "@aws-cdk/asset-node-proxy-agent-v5": {
68
+ "@aws-cdk/asset-node-proxy-agent-v6": {
69
69
  "targets": {
70
70
  "dotnet": {
71
- "namespace": "Amazon.CDK.Asset.NodeProxyAgentV5",
72
- "packageId": "Amazon.CDK.Asset.NodeProxyAgentV5"
71
+ "namespace": "Amazon.CDK.Asset.NodeProxyAgentV6",
72
+ "packageId": "Amazon.CDK.Asset.NodeProxyAgentV6"
73
73
  },
74
74
  "go": {
75
75
  "moduleName": "github.com/cdklabs/awscdk-asset-node-proxy-agent-go",
76
- "packageName": "nodeproxyagentv5"
76
+ "packageName": "nodeproxyagentv6"
77
77
  },
78
78
  "java": {
79
79
  "maven": {
80
- "artifactId": "cdk-asset-node-proxy-agent-v5",
80
+ "artifactId": "cdk-asset-node-proxy-agent-v6",
81
81
  "groupId": "software.amazon.awscdk"
82
82
  },
83
- "package": "software.amazon.awscdk.cdk.asset.node.proxy.agent.v5"
83
+ "package": "software.amazon.awscdk.cdk.asset.node.proxy.agent.v6"
84
84
  },
85
85
  "js": {
86
- "npm": "@aws-cdk/asset-node-proxy-agent-v5"
86
+ "npm": "@aws-cdk/asset-node-proxy-agent-v6"
87
87
  },
88
88
  "python": {
89
- "distName": "aws-cdk.asset-node-proxy-agent-v5",
90
- "module": "aws_cdk.asset_node_proxy_agent_v5"
89
+ "distName": "aws-cdk.asset-node-proxy-agent-v6",
90
+ "module": "aws_cdk.asset_node_proxy_agent_v6"
91
91
  }
92
92
  }
93
93
  },
@@ -572,6 +572,19 @@
572
572
  }
573
573
  }
574
574
  },
575
+ "aws-cdk-lib.aws_cleanrooms": {
576
+ "targets": {
577
+ "dotnet": {
578
+ "package": "Amazon.CDK.AWS.CleanRooms"
579
+ },
580
+ "java": {
581
+ "package": "services.cleanrooms"
582
+ },
583
+ "python": {
584
+ "module": "aws_cdk.aws_cleanrooms"
585
+ }
586
+ }
587
+ },
575
588
  "aws-cdk-lib.aws_cloud9": {
576
589
  "targets": {
577
590
  "dotnet": {
@@ -1301,6 +1314,19 @@
1301
1314
  }
1302
1315
  }
1303
1316
  },
1317
+ "aws-cdk-lib.aws_entityresolution": {
1318
+ "targets": {
1319
+ "dotnet": {
1320
+ "package": "Amazon.CDK.AWS.EntityResolution"
1321
+ },
1322
+ "java": {
1323
+ "package": "services.entityresolution"
1324
+ },
1325
+ "python": {
1326
+ "module": "aws_cdk.aws_entityresolution"
1327
+ }
1328
+ }
1329
+ },
1304
1330
  "aws-cdk-lib.aws_events": {
1305
1331
  "targets": {
1306
1332
  "dotnet": {
@@ -1548,6 +1574,19 @@
1548
1574
  }
1549
1575
  }
1550
1576
  },
1577
+ "aws-cdk-lib.aws_healthimaging": {
1578
+ "targets": {
1579
+ "dotnet": {
1580
+ "package": "Amazon.CDK.AWS.HealthImaging"
1581
+ },
1582
+ "java": {
1583
+ "package": "services.healthimaging"
1584
+ },
1585
+ "python": {
1586
+ "module": "aws_cdk.aws_healthimaging"
1587
+ }
1588
+ }
1589
+ },
1551
1590
  "aws-cdk-lib.aws_healthlake": {
1552
1591
  "targets": {
1553
1592
  "dotnet": {
@@ -2198,6 +2237,19 @@
2198
2237
  }
2199
2238
  }
2200
2239
  },
2240
+ "aws-cdk-lib.aws_mediapackagev2": {
2241
+ "targets": {
2242
+ "dotnet": {
2243
+ "package": "Amazon.CDK.AWS.MediaPackageV2"
2244
+ },
2245
+ "java": {
2246
+ "package": "services.mediapackagev2"
2247
+ },
2248
+ "python": {
2249
+ "module": "aws_cdk.aws_mediapackagev2"
2250
+ }
2251
+ }
2252
+ },
2201
2253
  "aws-cdk-lib.aws_mediastore": {
2202
2254
  "targets": {
2203
2255
  "dotnet": {
@@ -2432,6 +2484,19 @@
2432
2484
  }
2433
2485
  }
2434
2486
  },
2487
+ "aws-cdk-lib.aws_pcaconnectorad": {
2488
+ "targets": {
2489
+ "dotnet": {
2490
+ "package": "Amazon.CDK.AWS.PCAConnectorAD"
2491
+ },
2492
+ "java": {
2493
+ "package": "services.pcaconnectorad"
2494
+ },
2495
+ "python": {
2496
+ "module": "aws_cdk.aws_pcaconnectorad"
2497
+ }
2498
+ }
2499
+ },
2435
2500
  "aws-cdk-lib.aws_personalize": {
2436
2501
  "targets": {
2437
2502
  "dotnet": {
@@ -3199,6 +3264,19 @@
3199
3264
  }
3200
3265
  }
3201
3266
  },
3267
+ "aws-cdk-lib.aws_verifiedpermissions": {
3268
+ "targets": {
3269
+ "dotnet": {
3270
+ "package": "Amazon.CDK.AWS.VerifiedPermissions"
3271
+ },
3272
+ "java": {
3273
+ "package": "services.verifiedpermissions"
3274
+ },
3275
+ "python": {
3276
+ "module": "aws_cdk.aws_verifiedpermissions"
3277
+ }
3278
+ }
3279
+ },
3202
3280
  "aws-cdk-lib.aws_voiceid": {
3203
3281
  "targets": {
3204
3282
  "dotnet": {
@@ -3290,6 +3368,19 @@
3290
3368
  }
3291
3369
  }
3292
3370
  },
3371
+ "aws-cdk-lib.aws_workspacesweb": {
3372
+ "targets": {
3373
+ "dotnet": {
3374
+ "package": "Amazon.CDK.AWS.WorkSpacesWeb"
3375
+ },
3376
+ "java": {
3377
+ "package": "services.workspacesweb"
3378
+ },
3379
+ "python": {
3380
+ "module": "aws_cdk.aws_workspacesweb"
3381
+ }
3382
+ }
3383
+ },
3293
3384
  "aws-cdk-lib.aws_xray": {
3294
3385
  "targets": {
3295
3386
  "dotnet": {
@@ -3488,7 +3579,7 @@
3488
3579
  },
3489
3580
  "description": "CDK Constructs for AWS Cloudfront to AWS S3 integration.",
3490
3581
  "homepage": "https://github.com/awslabs/aws-solutions-constructs.git",
3491
- "jsiiVersion": "1.88.0 (build eaabd08)",
3582
+ "jsiiVersion": "1.91.0 (build 1b1f239)",
3492
3583
  "keywords": [
3493
3584
  "aws",
3494
3585
  "cdk",
@@ -3804,9 +3895,7 @@
3804
3895
  {
3805
3896
  "abstract": true,
3806
3897
  "docs": {
3807
- "custom": {
3808
- "dafault": "= '/'"
3809
- },
3898
+ "default": "= '/'",
3810
3899
  "remarks": "The string should start with a `/`, for example `/production`.",
3811
3900
  "summary": "Optional user provided props to provide an originPath that CloudFront appends to the origin domain name when CloudFront requests content from the origin."
3812
3901
  },
@@ -3843,6 +3932,6 @@
3843
3932
  "symbolId": "lib/index:CloudFrontToS3Props"
3844
3933
  }
3845
3934
  },
3846
- "version": "2.44.0",
3847
- "fingerprint": "UpUAYvzur4SUWO7D5yQulFD9dYVFCHILZmE2Z1dIb/8="
3935
+ "version": "2.46.0",
3936
+ "fingerprint": "SivUcbZ+JgIHyNgUrrDH58wEjtrJKn7pq3xLL6Y6eW4="
3848
3937
  }
package/lib/index.d.ts CHANGED
@@ -60,7 +60,7 @@ export interface CloudFrontToS3Props {
60
60
  * Optional user provided props to provide an originPath that CloudFront appends to the
61
61
  * origin domain name when CloudFront requests content from the origin.
62
62
  * The string should start with a `/`, for example `/production`.
63
- * @dafault = '/'
63
+ * @default = '/'
64
64
  */
65
65
  readonly originPath?: string;
66
66
  /**
package/lib/index.js CHANGED
@@ -20,7 +20,8 @@ class CloudFrontToS3 extends constructs_1.Construct {
20
20
  // All our tests are based upon this behavior being on, so we're setting
21
21
  // context here rather than assuming the client will set it
22
22
  this.node.setContext("@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy", true);
23
- defaults.CheckProps(props);
23
+ defaults.CheckS3Props(props);
24
+ defaults.CheckCloudFrontProps(props);
24
25
  let bucket;
25
26
  if (!props.existingBucketObj) {
26
27
  const buildS3BucketResponse = defaults.buildS3Bucket(this, {
@@ -44,5 +45,5 @@ class CloudFrontToS3 extends constructs_1.Construct {
44
45
  }
45
46
  exports.CloudFrontToS3 = CloudFrontToS3;
46
47
  _a = JSII_RTTI_SYMBOL_1;
47
- CloudFrontToS3[_a] = { fqn: "@aws-solutions-constructs/aws-cloudfront-s3.CloudFrontToS3", version: "2.44.0" };
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWVBLHdGQUF3RjtBQUN4RiwyQ0FBdUM7QUFDdkMsMkRBQTJEO0FBeUUzRCxNQUFhLGNBQWUsU0FBUSxzQkFBUztJQVEzQzs7Ozs7OztPQU9HO0lBQ0gsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEwQjtRQUNsRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLHdFQUF3RTtRQUN4RSwyREFBMkQ7UUFDM0QsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsaURBQWlELEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFOUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUzQixJQUFJLE1BQWtCLENBQUM7UUFFdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRTtZQUM1QixNQUFNLHFCQUFxQixHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFO2dCQUN6RCxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7Z0JBQzlCLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxrQkFBa0I7Z0JBQzVDLGVBQWUsRUFBRSxLQUFLLENBQUMsZUFBZTthQUN2QyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLHFCQUFxQixDQUFDLE1BQU0sQ0FBQztZQUM3QyxJQUFJLENBQUMsZUFBZSxHQUFHLHFCQUFxQixDQUFDLGFBQWEsQ0FBQztZQUMzRCxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUN4QjthQUFNO1lBQ0wsTUFBTSxHQUFHLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztTQUNsQztRQUVELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLENBQUM7UUFFaEMsTUFBTSxtQ0FBbUMsR0FBRyxRQUFRLENBQUMsMkJBQTJCLENBQzlFLElBQUksRUFDSixJQUFJLENBQUMsaUJBQWlCLEVBQ3RCLEtBQUssQ0FBQywyQkFBMkIsRUFDakMsS0FBSyxDQUFDLHlCQUF5QixFQUMvQixLQUFLLENBQUMsVUFBVSxFQUNoQixLQUFLLENBQUMsNEJBQTRCLEVBQ2xDLEtBQUssQ0FBQywwQkFBMEIsQ0FDakMsQ0FBQztRQUNGLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxtQ0FBbUMsQ0FBQyxZQUFZLENBQUM7UUFDbEYsSUFBSSxDQUFDLGtCQUFrQixHQUFHLG1DQUFtQyxDQUFDLGtCQUFrQixDQUFDO1FBQ2pGLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxtQ0FBbUMsQ0FBQyxhQUFhLENBQUM7SUFDbkYsQ0FBQzs7QUF0REgsd0NBd0RDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0ICogYXMgY2xvdWRmcm9udCBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udCc7XG5pbXBvcnQgKiBhcyBzMyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuLy8gTm90ZTogVG8gZW5zdXJlIENES3YyIGNvbXBhdGliaWxpdHksIGtlZXAgdGhlIGltcG9ydCBzdGF0ZW1lbnQgZm9yIENvbnN0cnVjdCBzZXBhcmF0ZVxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgKiBhcyBkZWZhdWx0cyBmcm9tICdAYXdzLXNvbHV0aW9ucy1jb25zdHJ1Y3RzL2NvcmUnO1xuXG4vKipcbiAqIEBzdW1tYXJ5IFRoZSBwcm9wZXJ0aWVzIGZvciB0aGUgQ2xvdWRGcm9udFRvUzMgQ29uc3RydWN0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2xvdWRGcm9udFRvUzNQcm9wcyB7XG4gIC8qKlxuICAgKiBFeGlzdGluZyBpbnN0YW5jZSBvZiBTMyBCdWNrZXQgb2JqZWN0LCBwcm92aWRpbmcgYm90aCB0aGlzIGFuZCBgYnVja2V0UHJvcHNgIHdpbGwgY2F1c2UgYW4gZXJyb3IuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhpc3RpbmdCdWNrZXRPYmo/OiBzMy5JQnVja2V0LFxuICAvKipcbiAgICogT3B0aW9uYWwgdXNlciBwcm92aWRlZCBwcm9wcyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBwcm9wcyBmb3IgdGhlIFMzIEJ1Y2tldC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBEZWZhdWx0IHByb3BzIGFyZSB1c2VkXG4gICAqL1xuICByZWFkb25seSBidWNrZXRQcm9wcz86IHMzLkJ1Y2tldFByb3BzLFxuICAvKipcbiAgICogT3B0aW9uYWwgdXNlciBwcm92aWRlZCBwcm9wcyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBwcm9wc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIERlZmF1bHQgcHJvcHMgYXJlIHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wcz86IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uUHJvcHMgfCBhbnksXG4gIC8qKlxuICAgKiBPcHRpb25hbCB1c2VyIHByb3ZpZGVkIHByb3BzIHRvIHR1cm4gb24vb2ZmIHRoZSBhdXRvbWF0aWMgaW5qZWN0aW9uIG9mIGJlc3QgcHJhY3RpY2UgSFRUUFxuICAgKiBzZWN1cml0eSBoZWFkZXJzIGluIGFsbCByZXNwb25zZXMgZnJvbSBjbG91ZGZyb250LlxuICAgKiBUdXJuaW5nIHRoaXMgb24gd2lsbCBpbmplY3QgZGVmYXVsdCBoZWFkZXJzIGFuZCBpcyBtdXR1YWxseSBleGNsdXNpdmUgd2l0aCBwYXNzaW5nIGN1c3RvbSBzZWN1cml0eSBoZWFkZXJzXG4gICAqIHZpYSB0aGUgcmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHMgcGFyYW1ldGVyLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGluc2VydEh0dHBTZWN1cml0eUhlYWRlcnM/OiBib29sZWFuO1xuICAvKipcbiAgICogT3B0aW9uYWwgdXNlciBwcm92aWRlZCBjb25maWd1cmF0aW9uIHRoYXQgY2xvdWRmcm9udCBhcHBsaWVzIHRvIGFsbCBodHRwIHJlc3BvbnNlcy5cbiAgICogQ2FuIGJlIHVzZWQgdG8gcGFzcyBhIGN1c3RvbSBSZXNwb25zZVNlY3VyaXR5SGVhZGVyc0JlaGF2aW9yLCBSZXNwb25zZUN1c3RvbUhlYWRlcnNCZWhhdmlvciBvclxuICAgKiBSZXNwb25zZUhlYWRlcnNDb3JzQmVoYXZpb3IgdG8gdGhlIGNsb3VkZnJvbnQgZGlzdHJpYnV0aW9uLlxuICAgKlxuICAgKiBQYXNzaW5nIGEgY3VzdG9tIFJlc3BvbnNlU2VjdXJpdHlIZWFkZXJzQmVoYXZpb3IgaXMgbXV0dWFsbHkgZXhjbHVzaXZlIHdpdGggdHVybmluZyBvbiB0aGUgZGVmYXVsdCBzZWN1cml0eSBoZWFkZXJzXG4gICAqIHZpYSBgaW5zZXJ0SHR0cFNlY3VyaXR5SGVhZGVyc2AgcHJvcC4gV2lsbCB0aHJvdyBhbiBlcnJvciBpZiBib3RoIGBpbnNlcnRIdHRwU2VjdXJpdHlIZWFkZXJzYCBpcyBzZXQgdG8gYHRydWVgXG4gICAqIGFuZCBSZXNwb25zZVNlY3VyaXR5SGVhZGVyc0JlaGF2aW9yIGlzIHBhc3NlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IHJlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzPzogY2xvdWRmcm9udC5SZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wc1xuICAvKipcbiAgICogT3B0aW9uYWwgdXNlciBwcm92aWRlZCBwcm9wcyB0byBwcm92aWRlIGFuIG9yaWdpblBhdGggdGhhdCBDbG91ZEZyb250IGFwcGVuZHMgdG8gdGhlXG4gICAqIG9yaWdpbiBkb21haW4gbmFtZSB3aGVuIENsb3VkRnJvbnQgcmVxdWVzdHMgY29udGVudCBmcm9tIHRoZSBvcmlnaW4uXG4gICAqIFRoZSBzdHJpbmcgc2hvdWxkIHN0YXJ0IHdpdGggYSBgL2AsIGZvciBleGFtcGxlIGAvcHJvZHVjdGlvbmAuXG4gICAqIEBkYWZhdWx0ID0gJy8nXG4gICAqL1xuICByZWFkb25seSBvcmlnaW5QYXRoPzogc3RyaW5nLFxuICAvKipcbiAgICogT3B0aW9uYWwgdXNlciBwcm92aWRlZCBwcm9wcyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBwcm9wcyBmb3IgdGhlIFMzIExvZ2dpbmcgQnVja2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIERlZmF1bHQgcHJvcHMgYXJlIHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IGxvZ2dpbmdCdWNrZXRQcm9wcz86IHMzLkJ1Y2tldFByb3BzXG4gIC8qKlxuICAgKiBPcHRpb25hbCB1c2VyIHByb3ZpZGVkIHByb3BzIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHByb3BzIGZvciB0aGUgQ2xvdWRGcm9udCBMb2dnaW5nIEJ1Y2tldC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBEZWZhdWx0IHByb3BzIGFyZSB1c2VkXG4gICAqL1xuICByZWFkb25seSBjbG91ZEZyb250TG9nZ2luZ0J1Y2tldFByb3BzPzogczMuQnVja2V0UHJvcHNcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gdHVybiBvbiBBY2Nlc3MgTG9ncyBmb3IgdGhlIFMzIGJ1Y2tldCB3aXRoIHRoZSBhc3NvY2lhdGVkIHN0b3JhZ2UgY29zdHMuXG4gICAqIEVuYWJsaW5nIEFjY2VzcyBMb2dnaW5nIGlzIGEgYmVzdCBwcmFjdGljZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0cnVlXG4gICAqL1xuICByZWFkb25seSBsb2dTM0FjY2Vzc0xvZ3M/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgQ2xvdWRGcm9udFRvUzMgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgY2xvdWRGcm9udFdlYkRpc3RyaWJ1dGlvbjogY2xvdWRmcm9udC5EaXN0cmlidXRpb247XG4gIHB1YmxpYyByZWFkb25seSBjbG91ZEZyb250RnVuY3Rpb24/OiBjbG91ZGZyb250LkZ1bmN0aW9uO1xuICBwdWJsaWMgcmVhZG9ubHkgY2xvdWRGcm9udExvZ2dpbmdCdWNrZXQ/OiBzMy5CdWNrZXQ7XG4gIHB1YmxpYyByZWFkb25seSBzM0J1Y2tldEludGVyZmFjZTogczMuSUJ1Y2tldDtcbiAgcHVibGljIHJlYWRvbmx5IHMzQnVja2V0PzogczMuQnVja2V0O1xuICBwdWJsaWMgcmVhZG9ubHkgczNMb2dnaW5nQnVja2V0PzogczMuQnVja2V0O1xuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBDb25zdHJ1Y3RzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBDbG91ZEZyb250VG9TMyBjbGFzcy5cbiAgICogQHBhcmFtIHtDb25zdHJ1Y3R9IHNjb3BlIC0gcmVwcmVzZW50cyB0aGUgc2NvcGUgZm9yIGFsbCB0aGUgcmVzb3VyY2VzLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gaWQgLSB0aGlzIGlzIGEgYSBzY29wZS11bmlxdWUgaWQuXG4gICAqIEBwYXJhbSB7Q2xvdWRGcm9udFRvUzNQcm9wc30gcHJvcHMgLSB1c2VyIHByb3ZpZGVkIHByb3BzIGZvciB0aGUgY29uc3RydWN0XG4gICAqIEBzaW5jZSAwLjguMFxuICAgKiBAYWNjZXNzIHB1YmxpY1xuICAgKi9cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IENsb3VkRnJvbnRUb1MzUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgLy8gQWxsIG91ciB0ZXN0cyBhcmUgYmFzZWQgdXBvbiB0aGlzIGJlaGF2aW9yIGJlaW5nIG9uLCBzbyB3ZSdyZSBzZXR0aW5nXG4gICAgLy8gY29udGV4dCBoZXJlIHJhdGhlciB0aGFuIGFzc3VtaW5nIHRoZSBjbGllbnQgd2lsbCBzZXQgaXRcbiAgICB0aGlzLm5vZGUuc2V0Q29udGV4dChcIkBhd3MtY2RrL2F3cy1zMzpzZXJ2ZXJBY2Nlc3NMb2dzVXNlQnVja2V0UG9saWN5XCIsIHRydWUpO1xuXG4gICAgZGVmYXVsdHMuQ2hlY2tQcm9wcyhwcm9wcyk7XG5cbiAgICBsZXQgYnVja2V0OiBzMy5JQnVja2V0O1xuXG4gICAgaWYgKCFwcm9wcy5leGlzdGluZ0J1Y2tldE9iaikge1xuICAgICAgY29uc3QgYnVpbGRTM0J1Y2tldFJlc3BvbnNlID0gZGVmYXVsdHMuYnVpbGRTM0J1Y2tldCh0aGlzLCB7XG4gICAgICAgIGJ1Y2tldFByb3BzOiBwcm9wcy5idWNrZXRQcm9wcyxcbiAgICAgICAgbG9nZ2luZ0J1Y2tldFByb3BzOiBwcm9wcy5sb2dnaW5nQnVja2V0UHJvcHMsXG4gICAgICAgIGxvZ1MzQWNjZXNzTG9nczogcHJvcHMubG9nUzNBY2Nlc3NMb2dzXG4gICAgICB9KTtcbiAgICAgIHRoaXMuczNCdWNrZXQgPSBidWlsZFMzQnVja2V0UmVzcG9uc2UuYnVja2V0O1xuICAgICAgdGhpcy5zM0xvZ2dpbmdCdWNrZXQgPSBidWlsZFMzQnVja2V0UmVzcG9uc2UubG9nZ2luZ0J1Y2tldDtcbiAgICAgIGJ1Y2tldCA9IHRoaXMuczNCdWNrZXQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJ1Y2tldCA9IHByb3BzLmV4aXN0aW5nQnVja2V0T2JqO1xuICAgIH1cblxuICAgIHRoaXMuczNCdWNrZXRJbnRlcmZhY2UgPSBidWNrZXQ7XG5cbiAgICBjb25zdCBjbG91ZEZyb250RGlzdHJpYnV0aW9uRm9yUzNSZXNwb25zZSA9IGRlZmF1bHRzLkNsb3VkRnJvbnREaXN0cmlidXRpb25Gb3JTMyhcbiAgICAgIHRoaXMsXG4gICAgICB0aGlzLnMzQnVja2V0SW50ZXJmYWNlLFxuICAgICAgcHJvcHMuY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzLFxuICAgICAgcHJvcHMuaW5zZXJ0SHR0cFNlY3VyaXR5SGVhZGVycyxcbiAgICAgIHByb3BzLm9yaWdpblBhdGgsXG4gICAgICBwcm9wcy5jbG91ZEZyb250TG9nZ2luZ0J1Y2tldFByb3BzLFxuICAgICAgcHJvcHMucmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHNcbiAgICApO1xuICAgIHRoaXMuY2xvdWRGcm9udFdlYkRpc3RyaWJ1dGlvbiA9IGNsb3VkRnJvbnREaXN0cmlidXRpb25Gb3JTM1Jlc3BvbnNlLmRpc3RyaWJ1dGlvbjtcbiAgICB0aGlzLmNsb3VkRnJvbnRGdW5jdGlvbiA9IGNsb3VkRnJvbnREaXN0cmlidXRpb25Gb3JTM1Jlc3BvbnNlLmNsb3VkZnJvbnRGdW5jdGlvbjtcbiAgICB0aGlzLmNsb3VkRnJvbnRMb2dnaW5nQnVja2V0ID0gY2xvdWRGcm9udERpc3RyaWJ1dGlvbkZvclMzUmVzcG9uc2UubG9nZ2luZ0J1Y2tldDtcbiAgfVxuXG59XG4iXX0=
48
+ CloudFrontToS3[_a] = { fqn: "@aws-solutions-constructs/aws-cloudfront-s3.CloudFrontToS3", version: "2.46.0" };
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWVBLHdGQUF3RjtBQUN4RiwyQ0FBdUM7QUFDdkMsMkRBQTJEO0FBeUUzRCxNQUFhLGNBQWUsU0FBUSxzQkFBUztJQVEzQzs7Ozs7OztPQU9HO0lBQ0gsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEwQjtRQUNsRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLHdFQUF3RTtRQUN4RSwyREFBMkQ7UUFDM0QsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsaURBQWlELEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFOUUsUUFBUSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixRQUFRLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFckMsSUFBSSxNQUFrQixDQUFDO1FBRXZCLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUU7WUFDNUIsTUFBTSxxQkFBcUIsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRTtnQkFDekQsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO2dCQUM5QixrQkFBa0IsRUFBRSxLQUFLLENBQUMsa0JBQWtCO2dCQUM1QyxlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWU7YUFDdkMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxxQkFBcUIsQ0FBQyxNQUFNLENBQUM7WUFDN0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxxQkFBcUIsQ0FBQyxhQUFhLENBQUM7WUFDM0QsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7U0FDeEI7YUFBTTtZQUNMLE1BQU0sR0FBRyxLQUFLLENBQUMsaUJBQWlCLENBQUM7U0FDbEM7UUFFRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDO1FBRWhDLE1BQU0sbUNBQW1DLEdBQUcsUUFBUSxDQUFDLDJCQUEyQixDQUM5RSxJQUFJLEVBQ0osSUFBSSxDQUFDLGlCQUFpQixFQUN0QixLQUFLLENBQUMsMkJBQTJCLEVBQ2pDLEtBQUssQ0FBQyx5QkFBeUIsRUFDL0IsS0FBSyxDQUFDLFVBQVUsRUFDaEIsS0FBSyxDQUFDLDRCQUE0QixFQUNsQyxLQUFLLENBQUMsMEJBQTBCLENBQ2pDLENBQUM7UUFDRixJQUFJLENBQUMseUJBQXlCLEdBQUcsbUNBQW1DLENBQUMsWUFBWSxDQUFDO1FBQ2xGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxtQ0FBbUMsQ0FBQyxrQkFBa0IsQ0FBQztRQUNqRixJQUFJLENBQUMsdUJBQXVCLEdBQUcsbUNBQW1DLENBQUMsYUFBYSxDQUFDO0lBQ25GLENBQUM7O0FBdkRILHdDQXlEQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCAqIGFzIGNsb3VkZnJvbnQgZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnQnO1xuaW1wb3J0ICogYXMgczMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbi8vIE5vdGU6IFRvIGVuc3VyZSBDREt2MiBjb21wYXRpYmlsaXR5LCBrZWVwIHRoZSBpbXBvcnQgc3RhdGVtZW50IGZvciBDb25zdHJ1Y3Qgc2VwYXJhdGVcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0ICogYXMgZGVmYXVsdHMgZnJvbSAnQGF3cy1zb2x1dGlvbnMtY29uc3RydWN0cy9jb3JlJztcblxuLyoqXG4gKiBAc3VtbWFyeSBUaGUgcHJvcGVydGllcyBmb3IgdGhlIENsb3VkRnJvbnRUb1MzIENvbnN0cnVjdFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENsb3VkRnJvbnRUb1MzUHJvcHMge1xuICAvKipcbiAgICogRXhpc3RpbmcgaW5zdGFuY2Ugb2YgUzMgQnVja2V0IG9iamVjdCwgcHJvdmlkaW5nIGJvdGggdGhpcyBhbmQgYGJ1Y2tldFByb3BzYCB3aWxsIGNhdXNlIGFuIGVycm9yLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGV4aXN0aW5nQnVja2V0T2JqPzogczMuSUJ1Y2tldCxcbiAgLyoqXG4gICAqIE9wdGlvbmFsIHVzZXIgcHJvdmlkZWQgcHJvcHMgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgcHJvcHMgZm9yIHRoZSBTMyBCdWNrZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBwcm9wcyBhcmUgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgYnVja2V0UHJvcHM/OiBzMy5CdWNrZXRQcm9wcyxcbiAgLyoqXG4gICAqIE9wdGlvbmFsIHVzZXIgcHJvdmlkZWQgcHJvcHMgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgcHJvcHNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBEZWZhdWx0IHByb3BzIGFyZSB1c2VkXG4gICAqL1xuICByZWFkb25seSBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHM/OiBjbG91ZGZyb250LkRpc3RyaWJ1dGlvblByb3BzIHwgYW55LFxuICAvKipcbiAgICogT3B0aW9uYWwgdXNlciBwcm92aWRlZCBwcm9wcyB0byB0dXJuIG9uL29mZiB0aGUgYXV0b21hdGljIGluamVjdGlvbiBvZiBiZXN0IHByYWN0aWNlIEhUVFBcbiAgICogc2VjdXJpdHkgaGVhZGVycyBpbiBhbGwgcmVzcG9uc2VzIGZyb20gY2xvdWRmcm9udC5cbiAgICogVHVybmluZyB0aGlzIG9uIHdpbGwgaW5qZWN0IGRlZmF1bHQgaGVhZGVycyBhbmQgaXMgbXV0dWFsbHkgZXhjbHVzaXZlIHdpdGggcGFzc2luZyBjdXN0b20gc2VjdXJpdHkgaGVhZGVyc1xuICAgKiB2aWEgdGhlIHJlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzIHBhcmFtZXRlci5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0cnVlXG4gICAqL1xuICByZWFkb25seSBpbnNlcnRIdHRwU2VjdXJpdHlIZWFkZXJzPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIHVzZXIgcHJvdmlkZWQgY29uZmlndXJhdGlvbiB0aGF0IGNsb3VkZnJvbnQgYXBwbGllcyB0byBhbGwgaHR0cCByZXNwb25zZXMuXG4gICAqIENhbiBiZSB1c2VkIHRvIHBhc3MgYSBjdXN0b20gUmVzcG9uc2VTZWN1cml0eUhlYWRlcnNCZWhhdmlvciwgUmVzcG9uc2VDdXN0b21IZWFkZXJzQmVoYXZpb3Igb3JcbiAgICogUmVzcG9uc2VIZWFkZXJzQ29yc0JlaGF2aW9yIHRvIHRoZSBjbG91ZGZyb250IGRpc3RyaWJ1dGlvbi5cbiAgICpcbiAgICogUGFzc2luZyBhIGN1c3RvbSBSZXNwb25zZVNlY3VyaXR5SGVhZGVyc0JlaGF2aW9yIGlzIG11dHVhbGx5IGV4Y2x1c2l2ZSB3aXRoIHR1cm5pbmcgb24gdGhlIGRlZmF1bHQgc2VjdXJpdHkgaGVhZGVyc1xuICAgKiB2aWEgYGluc2VydEh0dHBTZWN1cml0eUhlYWRlcnNgIHByb3AuIFdpbGwgdGhyb3cgYW4gZXJyb3IgaWYgYm90aCBgaW5zZXJ0SHR0cFNlY3VyaXR5SGVhZGVyc2AgaXMgc2V0IHRvIGB0cnVlYFxuICAgKiBhbmQgUmVzcG9uc2VTZWN1cml0eUhlYWRlcnNCZWhhdmlvciBpcyBwYXNzZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSByZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wcz86IGNsb3VkZnJvbnQuUmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHNcbiAgLyoqXG4gICAqIE9wdGlvbmFsIHVzZXIgcHJvdmlkZWQgcHJvcHMgdG8gcHJvdmlkZSBhbiBvcmlnaW5QYXRoIHRoYXQgQ2xvdWRGcm9udCBhcHBlbmRzIHRvIHRoZVxuICAgKiBvcmlnaW4gZG9tYWluIG5hbWUgd2hlbiBDbG91ZEZyb250IHJlcXVlc3RzIGNvbnRlbnQgZnJvbSB0aGUgb3JpZ2luLlxuICAgKiBUaGUgc3RyaW5nIHNob3VsZCBzdGFydCB3aXRoIGEgYC9gLCBmb3IgZXhhbXBsZSBgL3Byb2R1Y3Rpb25gLlxuICAgKiBAZGVmYXVsdCA9ICcvJ1xuICAgKi9cbiAgcmVhZG9ubHkgb3JpZ2luUGF0aD86IHN0cmluZyxcbiAgLyoqXG4gICAqIE9wdGlvbmFsIHVzZXIgcHJvdmlkZWQgcHJvcHMgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgcHJvcHMgZm9yIHRoZSBTMyBMb2dnaW5nIEJ1Y2tldC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBEZWZhdWx0IHByb3BzIGFyZSB1c2VkXG4gICAqL1xuICByZWFkb25seSBsb2dnaW5nQnVja2V0UHJvcHM/OiBzMy5CdWNrZXRQcm9wc1xuICAvKipcbiAgICogT3B0aW9uYWwgdXNlciBwcm92aWRlZCBwcm9wcyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBwcm9wcyBmb3IgdGhlIENsb3VkRnJvbnQgTG9nZ2luZyBCdWNrZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBwcm9wcyBhcmUgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgY2xvdWRGcm9udExvZ2dpbmdCdWNrZXRQcm9wcz86IHMzLkJ1Y2tldFByb3BzXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHR1cm4gb24gQWNjZXNzIExvZ3MgZm9yIHRoZSBTMyBidWNrZXQgd2l0aCB0aGUgYXNzb2NpYXRlZCBzdG9yYWdlIGNvc3RzLlxuICAgKiBFbmFibGluZyBBY2Nlc3MgTG9nZ2luZyBpcyBhIGJlc3QgcHJhY3RpY2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9nUzNBY2Nlc3NMb2dzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIENsb3VkRnJvbnRUb1MzIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IGNsb3VkRnJvbnRXZWJEaXN0cmlidXRpb246IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uO1xuICBwdWJsaWMgcmVhZG9ubHkgY2xvdWRGcm9udEZ1bmN0aW9uPzogY2xvdWRmcm9udC5GdW5jdGlvbjtcbiAgcHVibGljIHJlYWRvbmx5IGNsb3VkRnJvbnRMb2dnaW5nQnVja2V0PzogczMuQnVja2V0O1xuICBwdWJsaWMgcmVhZG9ubHkgczNCdWNrZXRJbnRlcmZhY2U6IHMzLklCdWNrZXQ7XG4gIHB1YmxpYyByZWFkb25seSBzM0J1Y2tldD86IHMzLkJ1Y2tldDtcbiAgcHVibGljIHJlYWRvbmx5IHMzTG9nZ2luZ0J1Y2tldD86IHMzLkJ1Y2tldDtcblxuICAvKipcbiAgICogQHN1bW1hcnkgQ29uc3RydWN0cyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgQ2xvdWRGcm9udFRvUzMgY2xhc3MuXG4gICAqIEBwYXJhbSB7Q29uc3RydWN0fSBzY29wZSAtIHJlcHJlc2VudHMgdGhlIHNjb3BlIGZvciBhbGwgdGhlIHJlc291cmNlcy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGlkIC0gdGhpcyBpcyBhIGEgc2NvcGUtdW5pcXVlIGlkLlxuICAgKiBAcGFyYW0ge0Nsb3VkRnJvbnRUb1MzUHJvcHN9IHByb3BzIC0gdXNlciBwcm92aWRlZCBwcm9wcyBmb3IgdGhlIGNvbnN0cnVjdFxuICAgKiBAc2luY2UgMC44LjBcbiAgICogQGFjY2VzcyBwdWJsaWNcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDbG91ZEZyb250VG9TM1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIC8vIEFsbCBvdXIgdGVzdHMgYXJlIGJhc2VkIHVwb24gdGhpcyBiZWhhdmlvciBiZWluZyBvbiwgc28gd2UncmUgc2V0dGluZ1xuICAgIC8vIGNvbnRleHQgaGVyZSByYXRoZXIgdGhhbiBhc3N1bWluZyB0aGUgY2xpZW50IHdpbGwgc2V0IGl0XG4gICAgdGhpcy5ub2RlLnNldENvbnRleHQoXCJAYXdzLWNkay9hd3MtczM6c2VydmVyQWNjZXNzTG9nc1VzZUJ1Y2tldFBvbGljeVwiLCB0cnVlKTtcblxuICAgIGRlZmF1bHRzLkNoZWNrUzNQcm9wcyhwcm9wcyk7XG4gICAgZGVmYXVsdHMuQ2hlY2tDbG91ZEZyb250UHJvcHMocHJvcHMpO1xuXG4gICAgbGV0IGJ1Y2tldDogczMuSUJ1Y2tldDtcblxuICAgIGlmICghcHJvcHMuZXhpc3RpbmdCdWNrZXRPYmopIHtcbiAgICAgIGNvbnN0IGJ1aWxkUzNCdWNrZXRSZXNwb25zZSA9IGRlZmF1bHRzLmJ1aWxkUzNCdWNrZXQodGhpcywge1xuICAgICAgICBidWNrZXRQcm9wczogcHJvcHMuYnVja2V0UHJvcHMsXG4gICAgICAgIGxvZ2dpbmdCdWNrZXRQcm9wczogcHJvcHMubG9nZ2luZ0J1Y2tldFByb3BzLFxuICAgICAgICBsb2dTM0FjY2Vzc0xvZ3M6IHByb3BzLmxvZ1MzQWNjZXNzTG9nc1xuICAgICAgfSk7XG4gICAgICB0aGlzLnMzQnVja2V0ID0gYnVpbGRTM0J1Y2tldFJlc3BvbnNlLmJ1Y2tldDtcbiAgICAgIHRoaXMuczNMb2dnaW5nQnVja2V0ID0gYnVpbGRTM0J1Y2tldFJlc3BvbnNlLmxvZ2dpbmdCdWNrZXQ7XG4gICAgICBidWNrZXQgPSB0aGlzLnMzQnVja2V0O1xuICAgIH0gZWxzZSB7XG4gICAgICBidWNrZXQgPSBwcm9wcy5leGlzdGluZ0J1Y2tldE9iajtcbiAgICB9XG5cbiAgICB0aGlzLnMzQnVja2V0SW50ZXJmYWNlID0gYnVja2V0O1xuXG4gICAgY29uc3QgY2xvdWRGcm9udERpc3RyaWJ1dGlvbkZvclMzUmVzcG9uc2UgPSBkZWZhdWx0cy5DbG91ZEZyb250RGlzdHJpYnV0aW9uRm9yUzMoXG4gICAgICB0aGlzLFxuICAgICAgdGhpcy5zM0J1Y2tldEludGVyZmFjZSxcbiAgICAgIHByb3BzLmNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wcyxcbiAgICAgIHByb3BzLmluc2VydEh0dHBTZWN1cml0eUhlYWRlcnMsXG4gICAgICBwcm9wcy5vcmlnaW5QYXRoLFxuICAgICAgcHJvcHMuY2xvdWRGcm9udExvZ2dpbmdCdWNrZXRQcm9wcyxcbiAgICAgIHByb3BzLnJlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzXG4gICAgKTtcbiAgICB0aGlzLmNsb3VkRnJvbnRXZWJEaXN0cmlidXRpb24gPSBjbG91ZEZyb250RGlzdHJpYnV0aW9uRm9yUzNSZXNwb25zZS5kaXN0cmlidXRpb247XG4gICAgdGhpcy5jbG91ZEZyb250RnVuY3Rpb24gPSBjbG91ZEZyb250RGlzdHJpYnV0aW9uRm9yUzNSZXNwb25zZS5jbG91ZGZyb250RnVuY3Rpb247XG4gICAgdGhpcy5jbG91ZEZyb250TG9nZ2luZ0J1Y2tldCA9IGNsb3VkRnJvbnREaXN0cmlidXRpb25Gb3JTM1Jlc3BvbnNlLmxvZ2dpbmdCdWNrZXQ7XG4gIH1cblxufVxuIl19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-solutions-constructs/aws-cloudfront-s3",
3
- "version": "2.44.0",
3
+ "version": "2.46.0",
4
4
  "description": "CDK Constructs for AWS Cloudfront to AWS S3 integration.",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -53,12 +53,12 @@
53
53
  }
54
54
  },
55
55
  "dependencies": {
56
- "@aws-solutions-constructs/core": "2.44.0"
56
+ "@aws-solutions-constructs/core": "2.46.0"
57
57
  },
58
58
  "devDependencies": {
59
59
  "@types/jest": "^27.4.0",
60
60
  "@types/node": "^10.3.0",
61
- "aws-cdk-lib": "2.82.0",
61
+ "aws-cdk-lib": "2.105.0",
62
62
  "constructs": "^10.0.0"
63
63
  },
64
64
  "jest": {
@@ -76,8 +76,8 @@
76
76
  ]
77
77
  },
78
78
  "peerDependencies": {
79
- "@aws-solutions-constructs/core": "2.44.0",
80
- "aws-cdk-lib": "^2.82.0",
79
+ "@aws-solutions-constructs/core": "2.46.0",
80
+ "aws-cdk-lib": "^2.105.0",
81
81
  "constructs": "^10.0.0"
82
82
  },
83
83
  "keywords": [
@@ -4,6 +4,7 @@
4
4
  "MyFunction3BAA72D1": {
5
5
  "Type": "AWS::CloudFront::Function",
6
6
  "Properties": {
7
+ "AutoPublish": true,
7
8
  "FunctionCode": "function handler(event) { var response = event.response; var headers = response.headers; headers['strict-transport-security'] = { value: 'max-age=63072000; includeSubdomains; preload'}; headers['content-security-policy'] = { value: \"default-src 'none'; base-uri 'self'; img-src 'self'; script-src 'self'; style-src 'self' https:; object-src 'none'; frame-ancestors 'none'; font-src 'self' https:; form-action 'self'; manifest-src 'self'; connect-src 'self'\" }; headers['x-content-type-options'] = { value: 'nosniff'}; headers['x-frame-options'] = {value: 'DENY'}; headers['x-xss-protection'] = {value: '1; mode=block'}; headers['referrer-policy'] = { value: 'same-origin' }; return response; }",
8
9
  "FunctionConfig": {
9
10
  "Comment": {
@@ -13,7 +14,7 @@
13
14
  {
14
15
  "Ref": "AWS::Region"
15
16
  },
16
- "customsecurityheadersMyFunctionFAC550FB"
17
+ "cfts3customheadersMyFunction7C965360"
17
18
  ]
18
19
  ]
19
20
  },
@@ -26,11 +27,10 @@
26
27
  {
27
28
  "Ref": "AWS::Region"
28
29
  },
29
- "customsecurityheadersMyFunctionFAC550FB"
30
+ "cfts3customheadersMyFunction7C965360"
30
31
  ]
31
32
  ]
32
- },
33
- "AutoPublish": true
33
+ }
34
34
  }
35
35
  },
36
36
  "testcloudfronts3S3LoggingBucket90D239DD": {
@@ -244,6 +244,7 @@
244
244
  },
245
245
  {
246
246
  "Action": [
247
+ "s3:PutBucketPolicy",
247
248
  "s3:GetBucket*",
248
249
  "s3:List*",
249
250
  "s3:DeleteObject*"
@@ -343,13 +344,13 @@
343
344
  "testcloudfronts3SetHttpSecurityHeaders6C5A1E69": {
344
345
  "Type": "AWS::CloudFront::Function",
345
346
  "Properties": {
347
+ "AutoPublish": true,
346
348
  "FunctionCode": "function handler(event) { var response = event.response; var headers = response.headers; headers['strict-transport-security'] = { value: 'max-age=63072000; includeSubdomains; preload'}; headers['content-security-policy'] = { value: \"default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'\"}; headers['x-content-type-options'] = { value: 'nosniff'}; headers['x-frame-options'] = {value: 'DENY'}; headers['x-xss-protection'] = {value: '1; mode=block'}; return response; }",
347
349
  "FunctionConfig": {
348
- "Comment": "SetHttpSecurityHeadersc8132e0ba07d4c8fdbdb431ae46eef456c0589cb21",
350
+ "Comment": "SetHttpSecurityHeadersc8da5865185980f6eb00e7dd351786a8b49cd2929e",
349
351
  "Runtime": "cloudfront-js-1.0"
350
352
  },
351
- "Name": "SetHttpSecurityHeadersc8132e0ba07d4c8fdbdb431ae46eef456c0589cb21",
352
- "AutoPublish": true
353
+ "Name": "SetHttpSecurityHeadersc8da5865185980f6eb00e7dd351786a8b49cd2929e"
353
354
  }
354
355
  },
355
356
  "testcloudfronts3CloudfrontLoggingBucket985C0FE8": {
@@ -445,6 +446,7 @@
445
446
  },
446
447
  {
447
448
  "Action": [
449
+ "s3:PutBucketPolicy",
448
450
  "s3:GetBucket*",
449
451
  "s3:List*",
450
452
  "s3:DeleteObject*"
@@ -509,7 +511,7 @@
509
511
  "Type": "AWS::CloudFront::CloudFrontOriginAccessIdentity",
510
512
  "Properties": {
511
513
  "CloudFrontOriginAccessIdentityConfig": {
512
- "Comment": "Identity for customsecurityheaderstestcloudfronts3CloudFrontDistributionOrigin1FCAF9C77"
514
+ "Comment": "Identity for cfts3customheaderstestcloudfronts3CloudFrontDistributionOrigin126E0E496"
513
515
  }
514
516
  }
515
517
  },
@@ -531,7 +533,7 @@
531
533
  }
532
534
  }
533
535
  ],
534
- "TargetOriginId": "customsecurityheaderstestcloudfronts3CloudFrontDistributionOrigin1FCAF9C77",
536
+ "TargetOriginId": "cfts3customheaderstestcloudfronts3CloudFrontDistributionOrigin126E0E496",
535
537
  "ViewerProtocolPolicy": "redirect-to-https"
536
538
  },
537
539
  "DefaultRootObject": "index.html",
@@ -554,7 +556,7 @@
554
556
  "RegionalDomainName"
555
557
  ]
556
558
  },
557
- "Id": "customsecurityheaderstestcloudfronts3CloudFrontDistributionOrigin1FCAF9C77",
559
+ "Id": "cfts3customheaderstestcloudfronts3CloudFrontDistributionOrigin126E0E496",
558
560
  "S3OriginConfig": {
559
561
  "OriginAccessIdentity": {
560
562
  "Fn::Join": [
@@ -612,18 +614,18 @@
612
614
  "S3Bucket": {
613
615
  "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
614
616
  },
615
- "S3Key": "350185a1069fa20a23a583e20c77f6844218bd73097902362dc94f1a108f5d89.zip"
617
+ "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip"
616
618
  },
617
619
  "Timeout": 900,
618
620
  "MemorySize": 128,
619
- "Handler": "__entrypoint__.handler",
621
+ "Handler": "index.handler",
620
622
  "Role": {
621
623
  "Fn::GetAtt": [
622
624
  "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092",
623
625
  "Arn"
624
626
  ]
625
627
  },
626
- "Runtime": "nodejs16.x",
628
+ "Runtime": "nodejs18.x",
627
629
  "Description": {
628
630
  "Fn::Join": [
629
631
  "",
@@ -660,109 +662,6 @@
660
662
  }
661
663
  }
662
664
  },
663
- "Mappings": {
664
- "DefaultCrNodeVersionMap": {
665
- "af-south-1": {
666
- "value": "nodejs16.x"
667
- },
668
- "ap-east-1": {
669
- "value": "nodejs16.x"
670
- },
671
- "ap-northeast-1": {
672
- "value": "nodejs16.x"
673
- },
674
- "ap-northeast-2": {
675
- "value": "nodejs16.x"
676
- },
677
- "ap-northeast-3": {
678
- "value": "nodejs16.x"
679
- },
680
- "ap-south-1": {
681
- "value": "nodejs16.x"
682
- },
683
- "ap-south-2": {
684
- "value": "nodejs16.x"
685
- },
686
- "ap-southeast-1": {
687
- "value": "nodejs16.x"
688
- },
689
- "ap-southeast-2": {
690
- "value": "nodejs16.x"
691
- },
692
- "ap-southeast-3": {
693
- "value": "nodejs16.x"
694
- },
695
- "ca-central-1": {
696
- "value": "nodejs16.x"
697
- },
698
- "cn-north-1": {
699
- "value": "nodejs16.x"
700
- },
701
- "cn-northwest-1": {
702
- "value": "nodejs16.x"
703
- },
704
- "eu-central-1": {
705
- "value": "nodejs16.x"
706
- },
707
- "eu-central-2": {
708
- "value": "nodejs16.x"
709
- },
710
- "eu-north-1": {
711
- "value": "nodejs16.x"
712
- },
713
- "eu-south-1": {
714
- "value": "nodejs16.x"
715
- },
716
- "eu-south-2": {
717
- "value": "nodejs16.x"
718
- },
719
- "eu-west-1": {
720
- "value": "nodejs16.x"
721
- },
722
- "eu-west-2": {
723
- "value": "nodejs16.x"
724
- },
725
- "eu-west-3": {
726
- "value": "nodejs16.x"
727
- },
728
- "me-central-1": {
729
- "value": "nodejs16.x"
730
- },
731
- "me-south-1": {
732
- "value": "nodejs16.x"
733
- },
734
- "sa-east-1": {
735
- "value": "nodejs16.x"
736
- },
737
- "us-east-1": {
738
- "value": "nodejs16.x"
739
- },
740
- "us-east-2": {
741
- "value": "nodejs16.x"
742
- },
743
- "us-gov-east-1": {
744
- "value": "nodejs16.x"
745
- },
746
- "us-gov-west-1": {
747
- "value": "nodejs16.x"
748
- },
749
- "us-iso-east-1": {
750
- "value": "nodejs14.x"
751
- },
752
- "us-iso-west-1": {
753
- "value": "nodejs14.x"
754
- },
755
- "us-isob-east-1": {
756
- "value": "nodejs14.x"
757
- },
758
- "us-west-1": {
759
- "value": "nodejs16.x"
760
- },
761
- "us-west-2": {
762
- "value": "nodejs16.x"
763
- }
764
- }
765
- },
766
665
  "Parameters": {
767
666
  "BootstrapVersion": {
768
667
  "Type": "AWS::SSM::Parameter::Value<String>",
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
6
+ * with the License. A copy of the License is located at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
11
+ * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
12
+ * and limitations under the License.
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ // Imports
16
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
17
+ const lib_1 = require("../lib");
18
+ const core_1 = require("@aws-solutions-constructs/core");
19
+ const cloudfront = require("aws-cdk-lib/aws-cloudfront");
20
+ // Setup
21
+ const app = new aws_cdk_lib_1.App();
22
+ const stack = new aws_cdk_lib_1.Stack(app, core_1.generateIntegStackName(__filename));
23
+ stack.templateOptions.description = 'Integration Test for aws-cloudfront-s3';
24
+ // custom cloudfront function
25
+ const cloudfrontFunction = new cloudfront.Function(stack, "MyFunction", {
26
+ code: cloudfront.FunctionCode.fromInline("function handler(event) { var response = event.response; \
27
+ var headers = response.headers; \
28
+ headers['strict-transport-security'] = { value: 'max-age=63072000; includeSubdomains; preload'}; \
29
+ headers['content-security-policy'] = { value: \"default-src 'none'; base-uri 'self'; img-src 'self'; script-src 'self'; style-src 'self' https:; object-src 'none'; frame-ancestors 'none'; font-src 'self' https:; form-action 'self'; manifest-src 'self'; connect-src 'self'\" }; \
30
+ headers['x-content-type-options'] = { value: 'nosniff'}; \
31
+ headers['x-frame-options'] = {value: 'DENY'}; \
32
+ headers['x-xss-protection'] = {value: '1; mode=block'}; \
33
+ headers['referrer-policy'] = { value: 'same-origin' }; \
34
+ return response; \
35
+ }")
36
+ });
37
+ new lib_1.CloudFrontToS3(stack, 'test-cloudfront-s3', {
38
+ cloudFrontLoggingBucketProps: {
39
+ removalPolicy: aws_cdk_lib_1.RemovalPolicy.DESTROY,
40
+ autoDeleteObjects: true
41
+ },
42
+ cloudFrontDistributionProps: {
43
+ defaultBehavior: {
44
+ functionAssociations: [
45
+ {
46
+ eventType: cloudfront.FunctionEventType.VIEWER_RESPONSE,
47
+ function: cloudfrontFunction
48
+ }
49
+ ],
50
+ }
51
+ },
52
+ bucketProps: {
53
+ removalPolicy: aws_cdk_lib_1.RemovalPolicy.DESTROY,
54
+ autoDeleteObjects: true
55
+ }
56
+ });
57
+ core_1.suppressAutoDeleteHandlerWarnings(stack);
58
+ // Synth
59
+ app.synth();
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWcuY2Z0czMtY3VzdG9tLWhlYWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbnRlZy5jZnRzMy1jdXN0b20taGVhZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7O0FBRUgsVUFBVTtBQUNWLDZDQUF3RDtBQUN4RCxnQ0FBd0M7QUFDeEMseURBQTJHO0FBQzNHLHlEQUF5RDtBQUV6RCxRQUFRO0FBQ1IsTUFBTSxHQUFHLEdBQUcsSUFBSSxpQkFBRyxFQUFFLENBQUM7QUFDdEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxtQkFBSyxDQUFDLEdBQUcsRUFBRSw2QkFBc0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0FBQ2pFLEtBQUssQ0FBQyxlQUFlLENBQUMsV0FBVyxHQUFHLHdDQUF3QyxDQUFDO0FBRTdFLDZCQUE2QjtBQUM3QixNQUFNLGtCQUFrQixHQUFHLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFO0lBQ3RFLElBQUksRUFBRSxVQUFVLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQzs7Ozs7Ozs7O0lBU3ZDLENBQUM7Q0FDSixDQUFDLENBQUM7QUFFSCxJQUFJLG9CQUFjLENBQUMsS0FBSyxFQUFFLG9CQUFvQixFQUFFO0lBQzlDLDRCQUE0QixFQUFFO1FBQzVCLGFBQWEsRUFBRSwyQkFBYSxDQUFDLE9BQU87UUFDcEMsaUJBQWlCLEVBQUUsSUFBSTtLQUN4QjtJQUNELDJCQUEyQixFQUFFO1FBQzNCLGVBQWUsRUFBRTtZQUNmLG9CQUFvQixFQUFFO2dCQUNwQjtvQkFDRSxTQUFTLEVBQUUsVUFBVSxDQUFDLGlCQUFpQixDQUFDLGVBQWU7b0JBQ3ZELFFBQVEsRUFBRSxrQkFBa0I7aUJBQzdCO2FBQ0Y7U0FDRjtLQUNGO0lBQ0QsV0FBVyxFQUFFO1FBQ1gsYUFBYSxFQUFFLDJCQUFhLENBQUMsT0FBTztRQUNwQyxpQkFBaUIsRUFBRSxJQUFJO0tBQ3hCO0NBQ0YsQ0FBQyxDQUFDO0FBRUgsd0NBQWlDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDekMsUUFBUTtBQUNSLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8vIEltcG9ydHNcbmltcG9ydCB7IEFwcCwgU3RhY2ssIFJlbW92YWxQb2xpY3kgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IENsb3VkRnJvbnRUb1MzIH0gZnJvbSBcIi4uL2xpYlwiO1xuaW1wb3J0IHsgZ2VuZXJhdGVJbnRlZ1N0YWNrTmFtZSwgc3VwcHJlc3NBdXRvRGVsZXRlSGFuZGxlcldhcm5pbmdzIH0gZnJvbSAnQGF3cy1zb2x1dGlvbnMtY29uc3RydWN0cy9jb3JlJztcbmltcG9ydCAqIGFzIGNsb3VkZnJvbnQgZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250XCI7XG5cbi8vIFNldHVwXG5jb25zdCBhcHAgPSBuZXcgQXBwKCk7XG5jb25zdCBzdGFjayA9IG5ldyBTdGFjayhhcHAsIGdlbmVyYXRlSW50ZWdTdGFja05hbWUoX19maWxlbmFtZSkpO1xuc3RhY2sudGVtcGxhdGVPcHRpb25zLmRlc2NyaXB0aW9uID0gJ0ludGVncmF0aW9uIFRlc3QgZm9yIGF3cy1jbG91ZGZyb250LXMzJztcblxuLy8gY3VzdG9tIGNsb3VkZnJvbnQgZnVuY3Rpb25cbmNvbnN0IGNsb3VkZnJvbnRGdW5jdGlvbiA9IG5ldyBjbG91ZGZyb250LkZ1bmN0aW9uKHN0YWNrLCBcIk15RnVuY3Rpb25cIiwge1xuICBjb2RlOiBjbG91ZGZyb250LkZ1bmN0aW9uQ29kZS5mcm9tSW5saW5lKFwiZnVuY3Rpb24gaGFuZGxlcihldmVudCkgeyB2YXIgcmVzcG9uc2UgPSBldmVudC5yZXNwb25zZTsgXFxcbiAgICB2YXIgaGVhZGVycyA9IHJlc3BvbnNlLmhlYWRlcnM7IFxcXG4gICAgaGVhZGVyc1snc3RyaWN0LXRyYW5zcG9ydC1zZWN1cml0eSddID0geyB2YWx1ZTogJ21heC1hZ2U9NjMwNzIwMDA7IGluY2x1ZGVTdWJkb21haW5zOyBwcmVsb2FkJ307IFxcXG4gICAgaGVhZGVyc1snY29udGVudC1zZWN1cml0eS1wb2xpY3knXSA9IHsgdmFsdWU6IFxcXCJkZWZhdWx0LXNyYyAnbm9uZSc7IGJhc2UtdXJpICdzZWxmJzsgaW1nLXNyYyAnc2VsZic7IHNjcmlwdC1zcmMgJ3NlbGYnOyBzdHlsZS1zcmMgJ3NlbGYnIGh0dHBzOjsgb2JqZWN0LXNyYyAnbm9uZSc7IGZyYW1lLWFuY2VzdG9ycyAnbm9uZSc7IGZvbnQtc3JjICdzZWxmJyBodHRwczo7IGZvcm0tYWN0aW9uICdzZWxmJzsgbWFuaWZlc3Qtc3JjICdzZWxmJzsgY29ubmVjdC1zcmMgJ3NlbGYnXFxcIiB9OyBcXFxuICAgIGhlYWRlcnNbJ3gtY29udGVudC10eXBlLW9wdGlvbnMnXSA9IHsgdmFsdWU6ICdub3NuaWZmJ307IFxcXG4gICAgaGVhZGVyc1sneC1mcmFtZS1vcHRpb25zJ10gPSB7dmFsdWU6ICdERU5ZJ307IFxcXG4gICAgaGVhZGVyc1sneC14c3MtcHJvdGVjdGlvbiddID0ge3ZhbHVlOiAnMTsgbW9kZT1ibG9jayd9OyBcXFxuICAgIGhlYWRlcnNbJ3JlZmVycmVyLXBvbGljeSddID0geyB2YWx1ZTogJ3NhbWUtb3JpZ2luJyB9OyBcXFxuICAgIHJldHVybiByZXNwb25zZTsgXFxcbiAgfVwiKVxufSk7XG5cbm5ldyBDbG91ZEZyb250VG9TMyhzdGFjaywgJ3Rlc3QtY2xvdWRmcm9udC1zMycsIHtcbiAgY2xvdWRGcm9udExvZ2dpbmdCdWNrZXRQcm9wczoge1xuICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICBhdXRvRGVsZXRlT2JqZWN0czogdHJ1ZVxuICB9LFxuICBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHM6IHtcbiAgICBkZWZhdWx0QmVoYXZpb3I6IHtcbiAgICAgIGZ1bmN0aW9uQXNzb2NpYXRpb25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBldmVudFR5cGU6IGNsb3VkZnJvbnQuRnVuY3Rpb25FdmVudFR5cGUuVklFV0VSX1JFU1BPTlNFLFxuICAgICAgICAgIGZ1bmN0aW9uOiBjbG91ZGZyb250RnVuY3Rpb25cbiAgICAgICAgfVxuICAgICAgXSxcbiAgICB9XG4gIH0sXG4gIGJ1Y2tldFByb3BzOiB7XG4gICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgIGF1dG9EZWxldGVPYmplY3RzOiB0cnVlXG4gIH1cbn0pO1xuXG5zdXBwcmVzc0F1dG9EZWxldGVIYW5kbGVyV2FybmluZ3Moc3RhY2spO1xuLy8gU3ludGhcbmFwcC5zeW50aCgpO1xuIl19