cdk-nextjs 0.4.2 → 0.4.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.
Files changed (42) hide show
  1. package/.jsii +1254 -733
  2. package/API.md +2458 -1108
  3. package/README.md +37 -5
  4. package/docs/cdk-nextjs-NextjsRegionalFunctions.png +0 -0
  5. package/docs/cdk-nextjs-cfn-exec-policy.json +27 -0
  6. package/docs/cdk-nextjs.drawio +71 -11
  7. package/lib/constants.d.ts +2 -1
  8. package/lib/constants.js +2 -1
  9. package/lib/generated-structs/OptionalNextjsDistributionProps.d.ts +1 -1
  10. package/lib/generated-structs/OptionalNextjsDistributionProps.js +1 -1
  11. package/lib/index.d.ts +3 -2
  12. package/lib/index.js +8 -2
  13. package/lib/nextjs-api.d.ts +71 -0
  14. package/lib/nextjs-api.js +173 -0
  15. package/lib/nextjs-assets-deployment.js +2 -2
  16. package/lib/nextjs-build/nextjs-build.d.ts +1 -1
  17. package/lib/nextjs-build/nextjs-build.js +2 -2
  18. package/lib/nextjs-compute/nextjs-containers.js +1 -1
  19. package/lib/nextjs-compute/nextjs-functions.d.ts +3 -1
  20. package/lib/nextjs-compute/nextjs-functions.js +11 -10
  21. package/lib/nextjs-distribution.d.ts +2 -2
  22. package/lib/nextjs-distribution.js +2 -2
  23. package/lib/nextjs-file-system.js +1 -1
  24. package/lib/nextjs-post-deploy.js +1 -1
  25. package/lib/nextjs-static-assets.d.ts +0 -4
  26. package/lib/nextjs-static-assets.js +2 -2
  27. package/lib/nextjs-vpc.js +1 -1
  28. package/lib/root-constructs/nextjs-base-construct.d.ts +137 -0
  29. package/lib/root-constructs/nextjs-base-construct.js +112 -0
  30. package/lib/root-constructs/nextjs-global-containers.d.ts +5 -32
  31. package/lib/root-constructs/nextjs-global-containers.js +10 -83
  32. package/lib/root-constructs/nextjs-global-functions.d.ts +5 -32
  33. package/lib/root-constructs/nextjs-global-functions.js +12 -84
  34. package/lib/root-constructs/nextjs-regional-containers.d.ts +5 -21
  35. package/lib/root-constructs/nextjs-regional-containers.js +10 -71
  36. package/lib/root-constructs/nextjs-regional-functions.d.ts +37 -0
  37. package/lib/root-constructs/nextjs-regional-functions.js +58 -0
  38. package/package.json +10 -10
  39. package/lib/root-constructs/nextjs-base-overrides.d.ts +0 -30
  40. package/lib/root-constructs/nextjs-base-overrides.js +0 -3
  41. package/lib/root-constructs/nextjs-base-props.d.ts +0 -64
  42. package/lib/root-constructs/nextjs-base-props.js +0 -3
@@ -3,86 +3,29 @@ var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.NextjsGlobalContainers = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
- const constructs_1 = require("constructs");
7
6
  const constants_1 = require("../constants");
8
- const nextjs_assets_deployment_1 = require("../nextjs-assets-deployment");
9
- const nextjs_build_1 = require("../nextjs-build/nextjs-build");
10
7
  const nextjs_containers_1 = require("../nextjs-compute/nextjs-containers");
11
8
  const nextjs_distribution_1 = require("../nextjs-distribution");
12
- const nextjs_file_system_1 = require("../nextjs-file-system");
13
- const nextjs_post_deploy_1 = require("../nextjs-post-deploy");
14
- const nextjs_static_assets_1 = require("../nextjs-static-assets");
15
- const nextjs_vpc_1 = require("../nextjs-vpc");
16
- const handle_deprecated_properties_1 = require("../utils/handle-deprecated-properties");
9
+ const nextjs_base_construct_1 = require("./nextjs-base-construct");
17
10
  /**
18
11
  * Deploy Next.js globally distributed with containers. Uses [CloudFront
19
12
  * Distribution](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-working-with.html)
20
13
  * as Content Delivery Network (CDN) for global distribution and [AWS Fargate](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html)
21
14
  * for containers.
22
15
  */
23
- class NextjsGlobalContainers extends constructs_1.Construct {
16
+ class NextjsGlobalContainers extends nextjs_base_construct_1.NextjsBaseConstruct {
17
+ get url() {
18
+ return `https://${this.nextjsDistribution.distribution.domainName}`;
19
+ }
24
20
  constructor(scope, id, props) {
25
- super(scope, id);
26
- this.nextjsType = constants_1.NextjsType.GLOBAL_CONTAINERS;
27
- this.props = (0, handle_deprecated_properties_1.handleDeprecatedProperties)(props);
28
- this.nextjsBuild = this.createNextjsBuild();
29
- this.nextjsStaticAssets = this.createNextjsStaticAssets();
30
- this.nextjsVpc = this.createVpc();
31
- this.nextjsFileSystem = this.createNextjsFileSystem();
32
- this.nextjsAssetsDeployment = this.createNextjsAssetsDeployment();
21
+ super(scope, id, props, constants_1.NextjsType.GLOBAL_CONTAINERS);
22
+ this.props = props;
33
23
  this.nextjsContainers = this.createNextjsContainers();
34
24
  this.nextjsFileSystem.allowCompute({
35
25
  connections: this.nextjsContainers.albFargateService.service.connections,
36
26
  role: this.nextjsContainers.albFargateService.taskDefinition.taskRole,
37
27
  });
38
28
  this.nextjsDistribution = this.createNextjsDistribution();
39
- this.nextjsPostDeploy = this.createNextjsPostDeploy();
40
- }
41
- createNextjsBuild() {
42
- return new nextjs_build_1.NextjsBuild(this, "NextjsBuild", {
43
- buildCommand: this.props.buildCommand,
44
- buildContext: this.props.buildContext,
45
- nextjsType: this.nextjsType,
46
- relativePathToPackage: this.props.relativePathToPackage,
47
- overrides: this.props.overrides?.nextjsBuild,
48
- ...this.props.overrides?.nextjsGlobalContainers?.nextjsBuildProps,
49
- });
50
- }
51
- createNextjsStaticAssets() {
52
- return new nextjs_static_assets_1.NextjsStaticAssets(this, "NextjsStaticAssets", {
53
- overrides: this.props.overrides?.nextjsStaticAssets,
54
- ...this.props.overrides?.nextjsGlobalContainers?.nextjsStaticAssetsProps,
55
- });
56
- }
57
- createVpc() {
58
- return new nextjs_vpc_1.NextjsVpc(this, "NextjsVpc", {
59
- nextjsType: this.nextjsType,
60
- overrides: this.props.overrides?.nextjsVpc,
61
- ...this.props.overrides?.nextjsGlobalContainers?.nextjsVpcProps,
62
- });
63
- }
64
- createNextjsFileSystem() {
65
- return new nextjs_file_system_1.NextjsFileSystem(this, "NextjsFileSystem", {
66
- vpc: this.nextjsVpc.vpc,
67
- overrides: this.props.overrides?.nextjsFileSystem,
68
- ...this.props.overrides?.nextjsGlobalContainers?.nextjsFileSystemProps,
69
- });
70
- }
71
- createNextjsAssetsDeployment() {
72
- return new nextjs_assets_deployment_1.NextjsAssetsDeployment(this, "NextjsAssetsDeployment", {
73
- accessPoint: this.nextjsFileSystem.accessPoint,
74
- basePath: this.props.basePath,
75
- buildId: this.nextjsBuild.buildId,
76
- buildImageDigest: this.nextjsBuild.buildImageDigest,
77
- dockerImageCode: this.nextjsBuild.imageForNextjsAssetsDeployment,
78
- nextjsType: this.nextjsType,
79
- overrides: this.props.overrides?.nextjsAssetsDeployment,
80
- relativePathToPackage: this.props.relativePathToPackage,
81
- staticAssetsBucket: this.nextjsStaticAssets.bucket,
82
- vpc: this.nextjsVpc.vpc,
83
- ...this.props.overrides?.nextjsGlobalContainers
84
- ?.nextjsAssetsDeploymentProps,
85
- });
86
29
  }
87
30
  createNextjsContainers() {
88
31
  if (!this.nextjsBuild.imageForNextjsContainers) {
@@ -93,7 +36,7 @@ class NextjsGlobalContainers extends constructs_1.Construct {
93
36
  buildId: this.nextjsBuild.buildId,
94
37
  dockerImageAsset: this.nextjsBuild.imageForNextjsContainers,
95
38
  fileSystem: this.nextjsFileSystem.fileSystem,
96
- healthCheckPath: this.props.healthCheckPath,
39
+ healthCheckPath: this.baseProps.healthCheckPath,
97
40
  nextjsType: this.nextjsType,
98
41
  relativeEntrypointPath: this.nextjsBuild.relativePathToEntrypoint,
99
42
  overrides: this.props.overrides?.nextjsContainers,
@@ -114,24 +57,8 @@ class NextjsGlobalContainers extends constructs_1.Construct {
114
57
  ...this.props.overrides?.nextjsGlobalContainers?.nextjsDistributionProps,
115
58
  });
116
59
  }
117
- createNextjsPostDeploy() {
118
- const nextjsPostDeploy = new nextjs_post_deploy_1.NextjsPostDeploy(this, "NextjsPostDeploy", {
119
- accessPoint: this.nextjsFileSystem.accessPoint,
120
- buildId: this.nextjsBuild.buildId,
121
- buildImageDigest: this.nextjsBuild.buildImageDigest,
122
- distribution: this.nextjsDistribution.distribution,
123
- overrides: this.props.overrides?.nextjsPostDeploy,
124
- relativePathToPackage: this.props.relativePathToPackage,
125
- staticAssetsBucket: this.nextjsStaticAssets.bucket,
126
- vpc: this.nextjsVpc.vpc,
127
- ...this.props.overrides?.nextjsGlobalContainers?.nextjsPostDeployProps,
128
- });
129
- // ensure NextjsAssetsDeployment finishes before NextjsPostDeploy
130
- nextjsPostDeploy.node.addDependency(this.nextjsAssetsDeployment);
131
- return nextjsPostDeploy;
132
- }
133
60
  }
134
61
  exports.NextjsGlobalContainers = NextjsGlobalContainers;
135
62
  _a = JSII_RTTI_SYMBOL_1;
136
- NextjsGlobalContainers[_a] = { fqn: "cdk-nextjs.NextjsGlobalContainers", version: "0.4.2" };
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dGpzLWdsb2JhbC1jb250YWluZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Jvb3QtY29uc3RydWN0cy9uZXh0anMtZ2xvYmFsLWNvbnRhaW5lcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSwyQ0FBdUM7QUFNdkMsNENBQTBDO0FBRzFDLDBFQUFxRTtBQUNyRSwrREFBMkQ7QUFDM0QsMkVBRzZDO0FBQzdDLGdFQUdnQztBQUNoQyw4REFBeUQ7QUFDekQsOERBQXlEO0FBQ3pELGtFQUlpQztBQUNqQyw4Q0FBMEM7QUFDMUMsd0ZBQW1GO0FBdUNuRjs7Ozs7R0FLRztBQUNILE1BQWEsc0JBQXVCLFNBQVEsc0JBQVM7SUFhbkQsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBa0M7UUFFbEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQVJYLGVBQVUsR0FBRyxzQkFBVSxDQUFDLGlCQUFpQixDQUFDO1FBU2hELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBQSx5REFBMEIsRUFBQyxLQUFLLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUMxRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDdEQsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO1FBQ2xFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUN0RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDO1lBQ2pDLFdBQVcsRUFB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QWdCLENBQUM7SUFDMUIsQ0FBQzs7QUE3SEgsd0RBOEhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlzdHJpYnV0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250XCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtcbiAgQmFzZU5leHRqc0NvbnN0cnVjdE92ZXJyaWRlcyxcbiAgQmFzZU5leHRqc092ZXJyaWRlcyxcbn0gZnJvbSBcIi4vbmV4dGpzLWJhc2Utb3ZlcnJpZGVzXCI7XG5pbXBvcnQgeyBOZXh0anNCYXNlUHJvcHMgfSBmcm9tIFwiLi9uZXh0anMtYmFzZS1wcm9wc1wiO1xuaW1wb3J0IHsgTmV4dGpzVHlwZSB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IE9wdGlvbmFsTmV4dGpzQ29udGFpbmVyc1Byb3BzIH0gZnJvbSBcIi4uL2dlbmVyYXRlZC1zdHJ1Y3RzL09wdGlvbmFsTmV4dGpzQ29udGFpbmVyc1Byb3BzXCI7XG5pbXBvcnQgeyBPcHRpb25hbE5leHRqc0Rpc3RyaWJ1dGlvblByb3BzIH0gZnJvbSBcIi4uL2dlbmVyYXRlZC1zdHJ1Y3RzL09wdGlvbmFsTmV4dGpzRGlzdHJpYnV0aW9uUHJvcHNcIjtcbmltcG9ydCB7IE5leHRqc0Fzc2V0c0RlcGxveW1lbnQgfSBmcm9tIFwiLi4vbmV4dGpzLWFzc2V0cy1kZXBsb3ltZW50XCI7XG5pbXBvcnQgeyBOZXh0anNCdWlsZCB9IGZyb20gXCIuLi9uZXh0anMtYnVpbGQvbmV4dGpzLWJ1aWxkXCI7XG5pbXBvcnQge1xuICBOZXh0anNDb250YWluZXJzLFxuICBOZXh0anNDb250YWluZXJzT3ZlcnJpZGVzLFxufSBmcm9tIFwiLi4vbmV4dGpzLWNvbXB1dGUvbmV4dGpzLWNvbnRhaW5lcnNcIjtcbmltcG9ydCB7XG4gIE5leHRqc0Rpc3RyaWJ1dGlvbixcbiAgTmV4dGpzRGlzdHJpYnV0aW9uT3ZlcnJpZGVzLFxufSBmcm9tIFwiLi4vbmV4dGpzLWRpc3RyaWJ1dGlvblwiO1xuaW1wb3J0IHsgTmV4dGpzRmlsZVN5c3RlbSB9IGZyb20gXCIuLi9uZXh0anMtZmlsZS1zeXN0ZW1cIjtcbmltcG9ydCB7IE5leHRqc1Bvc3REZXBsb3kgfSBmcm9tIFwiLi4vbmV4dGpzLXBvc3QtZGVwbG95XCI7XG5pbXBvcnQge1xuICBOZXh0anNTdGF0aWNBc3NldHMsXG4gIE5leHRqc1N0YXRpY0Fzc2V0c092ZXJyaWRlcyxcbiAgTmV4dGpzU3RhdGljQXNzZXRzUHJvcHMsXG59IGZyb20gXCIuLi9uZXh0anMtc3RhdGljLWFzc2V0c1wiO1xuaW1wb3J0IHsgTmV4dGpzVnBjIH0gZnJvbSBcIi4uL25leHRqcy12cGNcIjtcbmltcG9ydCB7IGhhbmRsZURlcHJlY2F0ZWRQcm9wZXJ0aWVzIH0gZnJvbSBcIi4uL3V0aWxzL2hhbmRsZS1kZXByZWNhdGVkLXByb3BlcnRpZXNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBOZXh0anNHbG9iYWxDb250YWluZXJzQ29uc3RydWN0T3ZlcnJpZGVzXG4gIGV4dGVuZHMgQmFzZU5leHRqc0NvbnN0cnVjdE92ZXJyaWRlcyB7XG4gIHJlYWRvbmx5IG5leHRqc0NvbnRhaW5lcnNQcm9wcz86IE9wdGlvbmFsTmV4dGpzQ29udGFpbmVyc1Byb3BzO1xuICByZWFkb25seSBuZXh0anNEaXN0cmlidXRpb25Qcm9wcz86IE9wdGlvbmFsTmV4dGpzRGlzdHJpYnV0aW9uUHJvcHM7XG4gIHJlYWRvbmx5IG5leHRqc1N0YXRpY0Fzc2V0c1Byb3BzPzogTmV4dGpzU3RhdGljQXNzZXRzUHJvcHM7XG59XG5cbi8qKlxuICogT3ZlcnJpZGVzIGZvciBgTmV4dGpzR2xvYmFsQ29udGFpbmVyc2AuIE92ZXJyaWRlcyBhcmUgbG93ZXIgbGV2ZWwgdGhhblxuICogcHJvcHMgYW5kIGFyZSBwYXNzZWQgZGlyZWN0bHkgdG8gQ0RLIENvbnN0cnVjdHMgZ2l2aW5nIHlvdSBtb3JlIGNvbnRyb2wuIEl0J3NcbiAqIHJlY29tbWVuZGVkIHRvIHVzZSBjYXV0aW9uIGFuZCByZXZpZXcgc291cmNlIGNvZGUgc28geW91IGtub3cgaG93IHRoZXkncmUgdXNlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXh0anNHbG9iYWxDb250YWluZXJzT3ZlcnJpZGVzIGV4dGVuZHMgQmFzZU5leHRqc092ZXJyaWRlcyB7XG4gIHJlYWRvbmx5IG5leHRqc0dsb2JhbENvbnRhaW5lcnM/OiBOZXh0anNHbG9iYWxDb250YWluZXJzQ29uc3RydWN0T3ZlcnJpZGVzO1xuICByZWFkb25seSBuZXh0anNDb250YWluZXJzPzogTmV4dGpzQ29udGFpbmVyc092ZXJyaWRlcztcbiAgcmVhZG9ubHkgbmV4dGpzRGlzdHJpYnV0aW9uPzogTmV4dGpzRGlzdHJpYnV0aW9uT3ZlcnJpZGVzO1xuICByZWFkb25seSBuZXh0anNTdGF0aWNBc3NldHM/OiBOZXh0anNTdGF0aWNBc3NldHNPdmVycmlkZXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV4dGpzR2xvYmFsQ29udGFpbmVyc1Byb3BzIGV4dGVuZHMgTmV4dGpzQmFzZVByb3BzIHtcbiAgLyoqXG4gICAqIFByZWZpeCB0byB0aGUgVVJJIHBhdGggdGhlIGFwcCB3aWxsIGJlIHNlcnZlZCBhdC4gRXNwZWNpYWxseSB1c2VmdWwgd2hlblxuICAgKiBwYXNzaW5nIGluIHlvdXIgb3duIGBkaXN0cmlidXRpb25gLlxuICAgKiBAZXhhbXBsZSBcIi9teS1iYXNlLXBhdGhcIlxuICAgKi9cbiAgcmVhZG9ubHkgYmFzZVBhdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBCcmluZyB5b3VyIG93biBkaXN0cmlidXRpb24uIENhbiBiZSB1c2VkIHdpdGggYGJhc2VQYXRoYCB0byBob3N0IG11bHRpcGxlXG4gICAqIGFwcHMgb24gdGhlIHNhbWUgQ2xvdWRGcm9udCBkaXN0cmlidXRpb24uXG4gICAqL1xuICByZWFkb25seSBkaXN0cmlidXRpb24/OiBEaXN0cmlidXRpb247XG4gIC8qKlxuICAgKiBPdmVycmlkZSBwcm9wcyBvZiBhbnkgY29uc3RydWN0LlxuICAgKi9cbiAgcmVhZG9ubHkgb3ZlcnJpZGVzPzogTmV4dGpzR2xvYmFsQ29udGFpbmVyc092ZXJyaWRlcztcbn1cblxuLyoqXG4gKiBEZXBsb3kgTmV4dC5qcyBnbG9iYWxseSBkaXN0cmlidXRlZCB3aXRoIGNvbnRhaW5lcnMuIFVzZXMgW0Nsb3VkRnJvbnRcbiAqIERpc3RyaWJ1dGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkRnJvbnQvbGF0ZXN0L0RldmVsb3Blckd1aWRlL2Rpc3RyaWJ1dGlvbi13b3JraW5nLXdpdGguaHRtbClcbiAqIGFzIENvbnRlbnQgRGVsaXZlcnkgTmV0d29yayAoQ0ROKSBmb3IgZ2xvYmFsIGRpc3RyaWJ1dGlvbiBhbmQgW0FXUyBGYXJnYXRlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uRUNTL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9BV1NfRmFyZ2F0ZS5odG1sKVxuICogZm9yIGNvbnRhaW5lcnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBOZXh0anNHbG9iYWxDb250YWluZXJzIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgbmV4dGpzQnVpbGQ6IE5leHRqc0J1aWxkO1xuICBuZXh0anNTdGF0aWNBc3NldHM6IE5leHRqc1N0YXRpY0Fzc2V0cztcbiAgbmV4dGpzVnBjOiBOZXh0anNWcGM7XG4gIG5leHRqc0ZpbGVTeXN0ZW06IE5leHRqc0ZpbGVTeXN0ZW07XG4gIG5leHRqc0Fzc2V0c0RlcGxveW1lbnQ6IE5leHRqc0Fzc2V0c0RlcGxveW1lbnQ7XG4gIG5leHRqc0NvbnRhaW5lcnM6IE5leHRqc0NvbnRhaW5lcnM7XG4gIG5leHRqc0Rpc3RyaWJ1dGlvbjogTmV4dGpzRGlzdHJpYnV0aW9uO1xuICBuZXh0anNQb3N0RGVwbG95OiBOZXh0anNQb3N0RGVwbG95O1xuXG4gIHByaXZhdGUgbmV4dGpzVHlwZSA9IE5leHRqc1R5cGUuR0xPQkFMX0NPTlRBSU5FUlM7XG4gIHByaXZhdGUgcHJvcHM6IE5leHRqc0dsb2JhbENvbnRhaW5lcnNQcm9wcztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IE5leHRqc0dsb2JhbENvbnRhaW5lcnNQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICB0aGlzLnByb3BzID0gaGFuZGxlRGVwcmVjYXRlZFByb3BlcnRpZXMocHJvcHMpO1xuICAgIHRoaXMubmV4dGpzQnVpbGQgPSB0aGlzLmNyZWF0ZU5leHRqc0J1aWxkKCk7XG4gICAgdGhpcy5uZXh0anNTdGF0aWNBc3NldHMgPSB0aGlzLmNyZWF0ZU5leHRqc1N0YXRpY0Fzc2V0cygpO1xuICAgIHRoaXMubmV4dGpzVnBjID0gdGhpcy5jcmVhdGVWcGMoKTtcbiAgICB0aGlzLm5leHRqc0ZpbGVTeXN0ZW0gPSB0aGlzLmNyZWF0ZU5leHRqc0ZpbGVTeXN0ZW0oKTtcbiAgICB0aGlzLm5leHRqc0Fzc2V0c0RlcGxveW1lbnQgPSB0aGlzLmNyZWF0ZU5leHRqc0Fzc2V0c0RlcGxveW1lbnQoKTtcbiAgICB0aGlzLm5leHRqc0NvbnRhaW5lcnMgPSB0aGlzLmNyZWF0ZU5leHRqc0NvbnRhaW5lcnMoKTtcbiAgICB0aGlzLm5leHRqc0ZpbGVTeXN0ZW0uYWxsb3dDb21wdXRlKHtcbiAgICAgIGNvbm5lY3Rpb25zOiB0aGlzLm5leHRqc0NvbnRhaW5lcnMuYWxiRmFyZ2F0ZVNlcnZpY2Uuc2VydmljZS5jb25uZWN0aW9ucyxcbiAgICAgIHJvbGU6IHRoaXMubmV4dGpzQ29udGFpbmVycy5hbGJGYXJnYXRlU2VydmljZS50YXNrRGVmaW5pdGlvbi50YXNrUm9sZSxcbiAgICB9KTtcbiAgICB0aGlzLm5leHRqc0Rpc3RyaWJ1dGlvbiA9IHRoaXMuY3JlYXRlTmV4dGpzRGlzdHJpYnV0aW9uKCk7XG4gICAgdGhpcy5uZXh0anNQb3N0RGVwbG95ID0gdGhpcy5jcmVhdGVOZXh0anNQb3N0RGVwbG95KCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU5leHRqc0J1aWxkKCkge1xuICAgIHJldHVybiBuZXcgTmV4dGpzQnVpbGQodGhpcywgXCJOZXh0anNCdWlsZFwiLCB7XG4gICAgICBidWlsZENvbW1hbmQ6IHRoaXMucHJvcHMuYnVpbGRDb21tYW5kLFxuICAgICAgYnVpbGRDb250ZXh0OiB0aGlzLnByb3BzLmJ1aWxkQ29udGV4dCxcbiAgICAgIG5leHRqc1R5cGU6IHRoaXMubmV4dGpzVHlwZSxcbiAgICAgIHJlbGF0aXZlUGF0aFRvUGFja2FnZTogdGhpcy5wcm9wcy5yZWxhdGl2ZVBhdGhUb1BhY2thZ2UsXG4gICAgICBvdmVycmlkZXM6IHRoaXMucHJvcHMub3ZlcnJpZGVzPy5uZXh0anNCdWlsZCxcbiAgICAgIC4uLnRoaXMucHJvcHMub3ZlcnJpZGVzPy5uZXh0anNHbG9iYWxDb250YWluZXJzPy5uZXh0anNCdWlsZFByb3BzLFxuICAgIH0pO1xuICB9XG4gIHByaXZhdGUgY3JlYXRlTmV4dGpzU3RhdGljQXNzZXRzKCkge1xuICAgIHJldHVybiBuZXcgTmV4dGpzU3RhdGljQXNzZXRzKHRoaXMsIFwiTmV4dGpzU3RhdGljQXNzZXRzXCIsIHtcbiAgICAgIG92ZXJyaWRlczogdGhpcy5wcm9wcy5vdmVycmlkZXM/Lm5leHRqc1N0YXRpY0Fzc2V0cyxcbiAgICAgIC4uLnRoaXMucHJvcHMub3ZlcnJpZGVzPy5uZXh0anNHbG9iYWxDb250YWluZXJzPy5uZXh0anNTdGF0aWNBc3NldHNQcm9wcyxcbiAgICB9KTtcbiAgfVxuICBwcml2YXRlIGNyZWF0ZVZwYygpIHtcbiAgICByZXR1cm4gbmV3IE5leHRqc1ZwYyh0aGlzLCBcIk5leHRqc1ZwY1wiLCB7XG4gICAgICBuZXh0anNUeXBlOiB0aGlzLm5leHRqc1R5cGUsXG4gICAgICBvdmVycmlkZXM6IHRoaXMucHJvcHMub3ZlcnJpZGVzPy5uZXh0anNWcGMsXG4gICAgICAuLi50aGlzLnByb3BzLm92ZXJyaWRlcz8ubmV4dGpzR2xvYmFsQ29udGFpbmVycz8ubmV4dGpzVnBjUHJvcHMsXG4gICAgfSk7XG4gIH1cbiAgcHJpdmF0ZSBjcmVhdGVOZXh0anNGaWxlU3lzdGVtKCkge1xuICAgIHJldHVybiBuZXcgTmV4dGpzRmlsZVN5c3RlbSh0aGlzLCBcIk5leHRqc0ZpbGVTeXN0ZW1cIiwge1xuICAgICAgdnBjOiB0aGlzLm5leHRqc1ZwYy52cGMsXG4gICAgICBvdmVycmlkZXM6IHRoaXMucHJvcHMub3ZlcnJpZGVzPy5uZXh0anNGaWxlU3lzdGVtLFxuICAgICAgLi4udGhpcy5wcm9wcy5vdmVycmlkZXM/Lm5leHRqc0dsb2JhbENvbnRhaW5lcnM/Lm5leHRqc0ZpbGVTeXN0ZW1Qcm9wcyxcbiAgICB9KTtcbiAgfVxuICBwcml2YXRlIGNyZWF0ZU5leHRqc0Fzc2V0c0RlcGxveW1lbnQoKSB7XG4gICAgcmV0dXJuIG5ldyBOZXh0anNBc3NldHNEZXBsb3ltZW50KHRoaXMsIFwiTmV4dGpzQXNzZXRzRGVwbG95bWVudFwiLCB7XG4gICAgICBhY2Nlc3NQb2ludDogdGhpcy5uZXh0anNGaWxlU3lzdGVtLmFjY2Vzc1BvaW50LFxuICAgICAgYmFzZVBhdGg6IHRoaXMucHJvcHMuYmFzZVBhdGgsXG4gICAgICBidWlsZElkOiB0aGlzLm5leHRqc0J1aWxkLmJ1aWxkSWQsXG4gICAgICBidWlsZEltYWdlRGlnZXN0OiB0aGlzLm5leHRqc0J1aWxkLmJ1aWxkSW1hZ2VEaWdlc3QsXG4gICAgICBkb2NrZXJJbWFnZUNvZGU6IHRoaXMubmV4dGpzQnVpbGQuaW1hZ2VGb3JOZXh0anNBc3NldHNEZXBsb3ltZW50LFxuICAgICAgbmV4dGpzVHlwZTogdGhpcy5uZXh0anNUeXBlLFxuICAgICAgb3ZlcnJpZGVzOiB0aGlzLnByb3BzLm92ZXJyaWRlcz8ubmV4dGpzQXNzZXRzRGVwbG95bWVudCxcbiAgICAgIHJlbGF0aXZlUGF0aFRvUGFja2FnZTogdGhpcy5wcm9wcy5yZWxhdGl2ZVBhdGhUb1BhY2thZ2UsXG4gICAgICBzdGF0aWNBc3NldHNCdWNrZXQ6IHRoaXMubmV4dGpzU3RhdGljQXNzZXRzLmJ1Y2tldCxcbiAgICAgIHZwYzogdGhpcy5uZXh0anNWcGMudnBjLFxuICAgICAgLi4udGhpcy5wcm9wcy5vdmVycmlkZXM/Lm5leHRqc0dsb2JhbENvbnRhaW5lcnNcbiAgICAgICAgPy5uZXh0anNBc3NldHNEZXBsb3ltZW50UHJvcHMsXG4gICAgfSk7XG4gIH1cbiAgcHJpdmF0ZSBjcmVhdGVOZXh0anNDb250YWluZXJzKCkge1xuICAgIGlmICghdGhpcy5uZXh0anNCdWlsZC5pbWFnZUZvck5leHRqc0NvbnRhaW5lcnMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIm5leHRqc0J1aWxkLmRvY2tlckltYWdlQXNzZXQgaXMgdW5kZWZpbmVkXCIpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IE5leHRqc0NvbnRhaW5lcnModGhpcywgXCJOZXh0anNDb250YWluZXJzXCIsIHtcbiAgICAgIGFjY2Vzc1BvaW50OiB0aGlzLm5leHRqc0ZpbGVTeXN0ZW0uYWNjZXNzUG9pbnQsXG4gICAgICBidWlsZElkOiB0aGlzLm5leHRqc0J1aWxkLmJ1aWxkSWQsXG4gICAgICBkb2NrZXJJbWFnZUFzc2V0OiB0aGlzLm5leHRqc0J1aWxkLmltYWdlRm9yTmV4dGpzQ29udGFpbmVycyxcbiAgICAgIGZpbGVTeXN0ZW06IHRoaXMubmV4dGpzRmlsZVN5c3RlbS5maWxlU3lzdGVtLFxuICAgICAgaGVhbHRoQ2hlY2tQYXRoOiB0aGlzLnByb3BzLmhlYWx0aENoZWNrUGF0aCxcbiAgICAgIG5leHRqc1R5cGU6IHRoaXMubmV4dGpzVHlwZSxcbiAgICAgIHJlbGF0aXZlRW50cnlwb2ludFBhdGg6IHRoaXMubmV4dGpzQnVpbGQucmVsYXRpdmVQYXRoVG9FbnRyeXBvaW50LFxuICAgICAgb3ZlcnJpZGVzOiB0aGlzLnByb3BzLm92ZXJyaWRlcz8ubmV4dGpzQ29udGFpbmVycyxcbiAgICAgIHZwYzogdGhpcy5uZXh0anNWcGMudnBjLFxuICAgICAgLi4udGhpcy5wcm9wcy5vdmVycmlkZXM/Lm5leHRqc0dsb2JhbENvbnRhaW5lcnM/Lm5leHRqc0NvbnRhaW5lcnNQcm9wcyxcbiAgICB9KTtcbiAgfVxuICBwcml2YXRlIGNyZWF0ZU5leHRqc0Rpc3RyaWJ1dGlvbigpIHtcbiAgICByZXR1cm4gbmV3IE5leHRqc0Rpc3RyaWJ1dGlvbih0aGlzLCBcIk5leHRqc0Rpc3RyaWJ1dGlvblwiLCB7XG4gICAgICBhc3NldHNCdWNrZXQ6IHRoaXMubmV4dGpzU3RhdGljQXNzZXRzLmJ1Y2tldCxcbiAgICAgIGJhc2VQYXRoOiB0aGlzLnByb3BzLmJhc2VQYXRoLFxuICAgICAgY2VydGlmaWNhdGU6IHRoaXMubmV4dGpzQ29udGFpbmVycy5hbGJGYXJnYXRlU2VydmljZS5jZXJ0aWZpY2F0ZSxcbiAgICAgIGRpc3RyaWJ1dGlvbjogdGhpcy5wcm9wcy5kaXN0cmlidXRpb24sXG4gICAgICBsb2FkQmFsYW5jZXI6IHRoaXMubmV4dGpzQ29udGFpbmVycy5hbGJGYXJnYXRlU2VydmljZS5sb2FkQmFsYW5jZXIsXG4gICAgICBuZXh0anNUeXBlOiB0aGlzLm5leHRqc1R5cGUsXG4gICAgICBvdmVycmlkZXM6IHRoaXMucHJvcHMub3ZlcnJpZGVzPy5uZXh0anNEaXN0cmlidXRpb24sXG4gICAgICBwdWJsaWNEaXJFbnRyaWVzOiB0aGlzLm5leHRqc0J1aWxkLnB1YmxpY0RpckVudHJpZXMsXG4gICAgICAuLi50aGlzLnByb3BzLm92ZXJyaWRlcz8ubmV4dGpzR2xvYmFsQ29udGFpbmVycz8ubmV4dGpzRGlzdHJpYnV0aW9uUHJvcHMsXG4gICAgfSk7XG4gIH1cbiAgcHJpdmF0ZSBjcmVhdGVOZXh0anNQb3N0RGVwbG95KCkge1xuICAgIGNvbnN0IG5leHRqc1Bvc3REZXBsb3kgPSBuZXcgTmV4dGpzUG9zdERlcGxveSh0aGlzLCBcIk5leHRqc1Bvc3REZXBsb3lcIiwge1xuICAgICAgYWNjZXNzUG9pbnQ6IHRoaXMubmV4dGpzRmlsZVN5c3RlbS5hY2Nlc3NQb2ludCxcbiAgICAgIGJ1aWxkSWQ6IHRoaXMubmV4dGpzQnVpbGQuYnVpbGRJZCxcbiAgICAgIGJ1aWxkSW1hZ2VEaWdlc3Q6IHRoaXMubmV4dGpzQnVpbGQuYnVpbGRJbWFnZURpZ2VzdCxcbiAgICAgIGRpc3RyaWJ1dGlvbjogdGhpcy5uZXh0anNEaXN0cmlidXRpb24uZGlzdHJpYnV0aW9uLFxuICAgICAgb3ZlcnJpZGVzOiB0aGlzLnByb3BzLm92ZXJyaWRlcz8ubmV4dGpzUG9zdERlcGxveSxcbiAgICAgIHJlbGF0aXZlUGF0aFRvUGFja2FnZTogdGhpcy5wcm9wcy5yZWxhdGl2ZVBhdGhUb1BhY2thZ2UsXG4gICAgICBzdGF0aWNBc3NldHNCdWNrZXQ6IHRoaXMubmV4dGpzU3RhdGljQXNzZXRzLmJ1Y2tldCxcbiAgICAgIHZwYzogdGhpcy5uZXh0anNWcGMudnBjLFxuICAgICAgLi4udGhpcy5wcm9wcy5vdmVycmlkZXM/Lm5leHRqc0dsb2JhbENvbnRhaW5lcnM/Lm5leHRqc1Bvc3REZXBsb3lQcm9wcyxcbiAgICB9KTtcbiAgICAvLyBlbnN1cmUgTmV4dGpzQXNzZXRzRGVwbG95bWVudCBmaW5pc2hlcyBiZWZvcmUgTmV4dGpzUG9zdERlcGxveVxuICAgIG5leHRqc1Bvc3REZXBsb3kubm9kZS5hZGREZXBlbmRlbmN5KHRoaXMubmV4dGpzQXNzZXRzRGVwbG95bWVudCk7XG4gICAgcmV0dXJuIG5leHRqc1Bvc3REZXBsb3k7XG4gIH1cbn1cbiJdfQ==
63
+ NextjsGlobalContainers[_a] = { fqn: "cdk-nextjs.NextjsGlobalContainers", version: "0.4.4" };
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dGpzLWdsb2JhbC1jb250YWluZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Jvb3QtY29uc3RydWN0cy9uZXh0anMtZ2xvYmFsLWNvbnRhaW5lcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSw0Q0FBMEM7QUFHMUMsMkVBRzZDO0FBQzdDLGdFQUdnQztBQUNoQyxtRUFLaUM7QUErQmpDOzs7OztHQUtHO0FBQ0gsTUFBYSxzQkFBdUIsU0FBUSwyQ0FBbUI7SUFHN0QsSUFBSSxHQUFHO1FBQ0wsT0FBTyxXQUFXLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDdEUsQ0FBQztJQUlELFlBQ0UsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLEtBQWtDO1FBRWxDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxzQkFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ3RELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUM7WUFDakMsV0FBVyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsV0FBVztZQUN4RSxJQUFJLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxRQUFRO1NBQ3RFLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUM1RCxDQUFDO0lBQ08sc0JBQXNCO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLHdCQUF3QixFQUFFLENBQUM7WUFDL0MsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1FBQy9ELENBQUM7UUFDRCxPQUFPLElBQUksb0NBQWdCLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFO1lBQ3BELFdBQVcsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVztZQUM5QyxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPO1lBQ2pDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsd0JBQXdCO1lBQzNELFVBQVUsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVTtZQUM1QyxlQUFlLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlO1lBQy9DLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixzQkFBc0IsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLHdCQUF3QjtZQUNqRSxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCO1lBQ2pELEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUc7WUFDdkIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxxQkFBcUI7U0FDdkUsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNPLHdCQUF3QjtRQUM5QixPQUFPLElBQUksd0NBQWtCLENBQUMsSUFBSSxFQUFFLG9CQUFvQixFQUFFO1lBQ3hELFlBQVksRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTTtZQUM1QyxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRO1lBQzdCLFdBQVcsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsV0FBVztZQUNoRSxZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZO1lBQ3JDLFlBQVksRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsWUFBWTtZQUNsRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLGtCQUFrQjtZQUNuRCxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQjtZQUNuRCxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QjtTQUN6RSxDQUFDLENBQUM7SUFDTCxDQUFDOztBQXBESCx3REFxREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXN0cmlidXRpb24gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnRcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBOZXh0anNUeXBlIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgT3B0aW9uYWxOZXh0anNDb250YWluZXJzUHJvcHMgfSBmcm9tIFwiLi4vZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxOZXh0anNDb250YWluZXJzUHJvcHNcIjtcbmltcG9ydCB7IE9wdGlvbmFsTmV4dGpzRGlzdHJpYnV0aW9uUHJvcHMgfSBmcm9tIFwiLi4vZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxOZXh0anNEaXN0cmlidXRpb25Qcm9wc1wiO1xuaW1wb3J0IHtcbiAgTmV4dGpzQ29udGFpbmVycyxcbiAgTmV4dGpzQ29udGFpbmVyc092ZXJyaWRlcyxcbn0gZnJvbSBcIi4uL25leHRqcy1jb21wdXRlL25leHRqcy1jb250YWluZXJzXCI7XG5pbXBvcnQge1xuICBOZXh0anNEaXN0cmlidXRpb24sXG4gIE5leHRqc0Rpc3RyaWJ1dGlvbk92ZXJyaWRlcyxcbn0gZnJvbSBcIi4uL25leHRqcy1kaXN0cmlidXRpb25cIjtcbmltcG9ydCB7XG4gIE5leHRqc0Jhc2VDb25zdHJ1Y3RPdmVycmlkZXMsXG4gIE5leHRqc0Jhc2VPdmVycmlkZXMsXG4gIE5leHRqc0Jhc2VDb25zdHJ1Y3QsXG4gIE5leHRqc0Jhc2VQcm9wcyxcbn0gZnJvbSBcIi4vbmV4dGpzLWJhc2UtY29uc3RydWN0XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV4dGpzR2xvYmFsQ29udGFpbmVyc0NvbnN0cnVjdE92ZXJyaWRlc1xuICBleHRlbmRzIE5leHRqc0Jhc2VDb25zdHJ1Y3RPdmVycmlkZXMge1xuICByZWFkb25seSBuZXh0anNDb250YWluZXJzUHJvcHM/OiBPcHRpb25hbE5leHRqc0NvbnRhaW5lcnNQcm9wcztcbiAgcmVhZG9ubHkgbmV4dGpzRGlzdHJpYnV0aW9uUHJvcHM/OiBPcHRpb25hbE5leHRqc0Rpc3RyaWJ1dGlvblByb3BzO1xufVxuXG4vKipcbiAqIE92ZXJyaWRlcyBmb3IgYE5leHRqc0dsb2JhbENvbnRhaW5lcnNgLiBPdmVycmlkZXMgYXJlIGxvd2VyIGxldmVsIHRoYW5cbiAqIHByb3BzIGFuZCBhcmUgcGFzc2VkIGRpcmVjdGx5IHRvIENESyBDb25zdHJ1Y3RzIGdpdmluZyB5b3UgbW9yZSBjb250cm9sLiBJdCdzXG4gKiByZWNvbW1lbmRlZCB0byB1c2UgY2F1dGlvbiBhbmQgcmV2aWV3IHNvdXJjZSBjb2RlIHNvIHlvdSBrbm93IGhvdyB0aGV5J3JlIHVzZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmV4dGpzR2xvYmFsQ29udGFpbmVyc092ZXJyaWRlcyBleHRlbmRzIE5leHRqc0Jhc2VPdmVycmlkZXMge1xuICByZWFkb25seSBuZXh0anNHbG9iYWxDb250YWluZXJzPzogTmV4dGpzR2xvYmFsQ29udGFpbmVyc0NvbnN0cnVjdE92ZXJyaWRlcztcbiAgcmVhZG9ubHkgbmV4dGpzQ29udGFpbmVycz86IE5leHRqc0NvbnRhaW5lcnNPdmVycmlkZXM7XG4gIHJlYWRvbmx5IG5leHRqc0Rpc3RyaWJ1dGlvbj86IE5leHRqc0Rpc3RyaWJ1dGlvbk92ZXJyaWRlcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZXh0anNHbG9iYWxDb250YWluZXJzUHJvcHMgZXh0ZW5kcyBOZXh0anNCYXNlUHJvcHMge1xuICAvKipcbiAgICogQnJpbmcgeW91ciBvd24gZGlzdHJpYnV0aW9uLiBDYW4gYmUgdXNlZCB3aXRoIGBiYXNlUGF0aGAgdG8gaG9zdCBtdWx0aXBsZVxuICAgKiBhcHBzIG9uIHRoZSBzYW1lIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgZGlzdHJpYnV0aW9uPzogRGlzdHJpYnV0aW9uO1xuICAvKipcbiAgICogT3ZlcnJpZGUgcHJvcHMgb2YgYW55IGNvbnN0cnVjdC5cbiAgICovXG4gIHJlYWRvbmx5IG92ZXJyaWRlcz86IE5leHRqc0dsb2JhbENvbnRhaW5lcnNPdmVycmlkZXM7XG59XG5cbi8qKlxuICogRGVwbG95IE5leHQuanMgZ2xvYmFsbHkgZGlzdHJpYnV0ZWQgd2l0aCBjb250YWluZXJzLiBVc2VzIFtDbG91ZEZyb250XG4gKiBEaXN0cmlidXRpb25dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZEZyb250L2xhdGVzdC9EZXZlbG9wZXJHdWlkZS9kaXN0cmlidXRpb24td29ya2luZy13aXRoLmh0bWwpXG4gKiBhcyBDb250ZW50IERlbGl2ZXJ5IE5ldHdvcmsgKENETikgZm9yIGdsb2JhbCBkaXN0cmlidXRpb24gYW5kIFtBV1MgRmFyZ2F0ZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkVDUy9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvQVdTX0ZhcmdhdGUuaHRtbClcbiAqIGZvciBjb250YWluZXJzLlxuICovXG5leHBvcnQgY2xhc3MgTmV4dGpzR2xvYmFsQ29udGFpbmVycyBleHRlbmRzIE5leHRqc0Jhc2VDb25zdHJ1Y3Qge1xuICBuZXh0anNDb250YWluZXJzOiBOZXh0anNDb250YWluZXJzO1xuICBuZXh0anNEaXN0cmlidXRpb246IE5leHRqc0Rpc3RyaWJ1dGlvbjtcbiAgZ2V0IHVybCgpIHtcbiAgICByZXR1cm4gYGh0dHBzOi8vJHt0aGlzLm5leHRqc0Rpc3RyaWJ1dGlvbi5kaXN0cmlidXRpb24uZG9tYWluTmFtZX1gO1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9wczogTmV4dGpzR2xvYmFsQ29udGFpbmVyc1Byb3BzO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogTmV4dGpzR2xvYmFsQ29udGFpbmVyc1Byb3BzLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzLCBOZXh0anNUeXBlLkdMT0JBTF9DT05UQUlORVJTKTtcbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG4gICAgdGhpcy5uZXh0anNDb250YWluZXJzID0gdGhpcy5jcmVhdGVOZXh0anNDb250YWluZXJzKCk7XG4gICAgdGhpcy5uZXh0anNGaWxlU3lzdGVtLmFsbG93Q29tcHV0ZSh7XG4gICAgICBjb25uZWN0aW9uczogdGhpcy5uZXh0anNDb250YWluZXJzLmFsYkZhcmdhdGVTZXJ2aWNlLnNlcnZpY2UuY29ubmVjdGlvbnMsXG4gICAgICByb2xlOiB0aGlzLm5leHRqc0NvbnRhaW5lcnMuYWxiRmFyZ2F0ZVNlcnZpY2UudGFza0RlZmluaXRpb24udGFza1JvbGUsXG4gICAgfSk7XG4gICAgdGhpcy5uZXh0anNEaXN0cmlidXRpb24gPSB0aGlzLmNyZWF0ZU5leHRqc0Rpc3RyaWJ1dGlvbigpO1xuICB9XG4gIHByaXZhdGUgY3JlYXRlTmV4dGpzQ29udGFpbmVycygpIHtcbiAgICBpZiAoIXRoaXMubmV4dGpzQnVpbGQuaW1hZ2VGb3JOZXh0anNDb250YWluZXJzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJuZXh0anNCdWlsZC5kb2NrZXJJbWFnZUFzc2V0IGlzIHVuZGVmaW5lZFwiKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBOZXh0anNDb250YWluZXJzKHRoaXMsIFwiTmV4dGpzQ29udGFpbmVyc1wiLCB7XG4gICAgICBhY2Nlc3NQb2ludDogdGhpcy5uZXh0anNGaWxlU3lzdGVtLmFjY2Vzc1BvaW50LFxuICAgICAgYnVpbGRJZDogdGhpcy5uZXh0anNCdWlsZC5idWlsZElkLFxuICAgICAgZG9ja2VySW1hZ2VBc3NldDogdGhpcy5uZXh0anNCdWlsZC5pbWFnZUZvck5leHRqc0NvbnRhaW5lcnMsXG4gICAgICBmaWxlU3lzdGVtOiB0aGlzLm5leHRqc0ZpbGVTeXN0ZW0uZmlsZVN5c3RlbSxcbiAgICAgIGhlYWx0aENoZWNrUGF0aDogdGhpcy5iYXNlUHJvcHMuaGVhbHRoQ2hlY2tQYXRoLFxuICAgICAgbmV4dGpzVHlwZTogdGhpcy5uZXh0anNUeXBlLFxuICAgICAgcmVsYXRpdmVFbnRyeXBvaW50UGF0aDogdGhpcy5uZXh0anNCdWlsZC5yZWxhdGl2ZVBhdGhUb0VudHJ5cG9pbnQsXG4gICAgICBvdmVycmlkZXM6IHRoaXMucHJvcHMub3ZlcnJpZGVzPy5uZXh0anNDb250YWluZXJzLFxuICAgICAgdnBjOiB0aGlzLm5leHRqc1ZwYy52cGMsXG4gICAgICAuLi50aGlzLnByb3BzLm92ZXJyaWRlcz8ubmV4dGpzR2xvYmFsQ29udGFpbmVycz8ubmV4dGpzQ29udGFpbmVyc1Byb3BzLFxuICAgIH0pO1xuICB9XG4gIHByaXZhdGUgY3JlYXRlTmV4dGpzRGlzdHJpYnV0aW9uKCkge1xuICAgIHJldHVybiBuZXcgTmV4dGpzRGlzdHJpYnV0aW9uKHRoaXMsIFwiTmV4dGpzRGlzdHJpYnV0aW9uXCIsIHtcbiAgICAgIGFzc2V0c0J1Y2tldDogdGhpcy5uZXh0anNTdGF0aWNBc3NldHMuYnVja2V0LFxuICAgICAgYmFzZVBhdGg6IHRoaXMucHJvcHMuYmFzZVBhdGgsXG4gICAgICBjZXJ0aWZpY2F0ZTogdGhpcy5uZXh0anNDb250YWluZXJzLmFsYkZhcmdhdGVTZXJ2aWNlLmNlcnRpZmljYXRlLFxuICAgICAgZGlzdHJpYnV0aW9uOiB0aGlzLnByb3BzLmRpc3RyaWJ1dGlvbixcbiAgICAgIGxvYWRCYWxhbmNlcjogdGhpcy5uZXh0anNDb250YWluZXJzLmFsYkZhcmdhdGVTZXJ2aWNlLmxvYWRCYWxhbmNlcixcbiAgICAgIG5leHRqc1R5cGU6IHRoaXMubmV4dGpzVHlwZSxcbiAgICAgIG92ZXJyaWRlczogdGhpcy5wcm9wcy5vdmVycmlkZXM/Lm5leHRqc0Rpc3RyaWJ1dGlvbixcbiAgICAgIHB1YmxpY0RpckVudHJpZXM6IHRoaXMubmV4dGpzQnVpbGQucHVibGljRGlyRW50cmllcyxcbiAgICAgIC4uLnRoaXMucHJvcHMub3ZlcnJpZGVzPy5uZXh0anNHbG9iYWxDb250YWluZXJzPy5uZXh0anNEaXN0cmlidXRpb25Qcm9wcyxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,39 +1,24 @@
1
1
  import { Distribution } from "aws-cdk-lib/aws-cloudfront";
2
2
  import { Construct } from "constructs";
3
- import { BaseNextjsConstructOverrides, BaseNextjsOverrides } from "./nextjs-base-overrides";
4
- import { NextjsBaseProps } from "./nextjs-base-props";
5
3
  import { OptionalNextjsDistributionProps } from "../generated-structs/OptionalNextjsDistributionProps";
6
- import { NextjsAssetsDeployment } from "../nextjs-assets-deployment";
7
- import { NextjsBuild } from "../nextjs-build/nextjs-build";
8
4
  import { NextjsFunctions, NextjsFunctionsOverrides, NextjsFunctionsProps } from "../nextjs-compute/nextjs-functions";
9
5
  import { NextjsDistribution, NextjsDistributionOverrides } from "../nextjs-distribution";
10
- import { NextjsFileSystem } from "../nextjs-file-system";
11
- import { NextjsPostDeploy } from "../nextjs-post-deploy";
12
- import { NextjsStaticAssets, NextjsStaticAssetsOverrides, NextjsStaticAssetsProps } from "../nextjs-static-assets";
13
- import { NextjsVpc } from "../nextjs-vpc";
14
- export interface NextjsGlobalFunctionsConstructOverrides extends BaseNextjsConstructOverrides {
6
+ import { NextjsBaseConstructOverrides, NextjsBaseOverrides, NextjsBaseConstruct, NextjsBaseProps } from "./nextjs-base-construct";
7
+ export interface NextjsGlobalFunctionsConstructOverrides extends NextjsBaseConstructOverrides {
15
8
  readonly nextjsFunctionsProps?: NextjsFunctionsProps;
16
9
  readonly nextjsDistributionProps?: OptionalNextjsDistributionProps;
17
- readonly nextjsStaticAssetsProps?: NextjsStaticAssetsProps;
18
10
  }
19
11
  /**
20
12
  * Overrides for `NextjsGlobalFunctions`. Overrides are lower level than
21
13
  * props and are passed directly to CDK Constructs giving you more control. It's
22
14
  * recommended to use caution and review source code so you know how they're used.
23
15
  */
24
- export interface NextjsGlobalFunctionsOverrides extends BaseNextjsOverrides {
16
+ export interface NextjsGlobalFunctionsOverrides extends NextjsBaseOverrides {
25
17
  readonly nextjsGlobalFunctions?: NextjsGlobalFunctionsConstructOverrides;
26
18
  readonly nextjsFunctions?: NextjsFunctionsOverrides;
27
19
  readonly nextjsDistribution?: NextjsDistributionOverrides;
28
- readonly nextjsStaticAssets?: NextjsStaticAssetsOverrides;
29
20
  }
30
21
  export interface NextjsGlobalFunctionsProps extends NextjsBaseProps {
31
- /**
32
- * Prefix to the URI path the app will be served at. Especially useful when
33
- * passing in your own `distribution`.
34
- * @example "/my-base-path"
35
- */
36
- readonly basePath?: string;
37
22
  /**
38
23
  * Bring your own distribution. Can be used with `basePath` to host multiple
39
24
  * apps on the same CloudFront distribution.
@@ -50,24 +35,12 @@ export interface NextjsGlobalFunctionsProps extends NextjsBaseProps {
50
35
  * as Content Delivery Network (CDN) for global distribution and [AWS Lambda Functions](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)
51
36
  * for functions.
52
37
  */
53
- export declare class NextjsGlobalFunctions extends Construct {
54
- nextjsBuild: NextjsBuild;
55
- nextjsStaticAssets: NextjsStaticAssets;
56
- nextjsVpc: NextjsVpc;
57
- nextjsFileSystem: NextjsFileSystem;
58
- nextjsAssetsDeployment: NextjsAssetsDeployment;
38
+ export declare class NextjsGlobalFunctions extends NextjsBaseConstruct {
59
39
  nextjsFunctions: NextjsFunctions;
60
40
  nextjsDistribution: NextjsDistribution;
61
- nextjsPostDeploy: NextjsPostDeploy;
62
- private nextjsType;
41
+ get url(): string;
63
42
  private props;
64
43
  constructor(scope: Construct, id: string, props: NextjsGlobalFunctionsProps);
65
- private createNextjsBuild;
66
- private createNextjsStaticAssets;
67
- private createVpc;
68
- private createNextjsFileSystem;
69
- private createNextjsAssetsDeployment;
70
44
  private createNextjsFunctions;
71
45
  private createNextjsDistribution;
72
- private createNextjsPostDeploy;
73
46
  }
@@ -3,86 +3,29 @@ var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.NextjsGlobalFunctions = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
- const constructs_1 = require("constructs");
7
6
  const constants_1 = require("../constants");
8
- const nextjs_assets_deployment_1 = require("../nextjs-assets-deployment");
9
- const nextjs_build_1 = require("../nextjs-build/nextjs-build");
10
7
  const nextjs_functions_1 = require("../nextjs-compute/nextjs-functions");
11
8
  const nextjs_distribution_1 = require("../nextjs-distribution");
12
- const nextjs_file_system_1 = require("../nextjs-file-system");
13
- const nextjs_post_deploy_1 = require("../nextjs-post-deploy");
14
- const nextjs_static_assets_1 = require("../nextjs-static-assets");
15
- const nextjs_vpc_1 = require("../nextjs-vpc");
16
- const handle_deprecated_properties_1 = require("../utils/handle-deprecated-properties");
9
+ const nextjs_base_construct_1 = require("./nextjs-base-construct");
17
10
  /**
18
11
  * Deploy Next.js globally distributed with functions. Uses [CloudFront
19
12
  * Distribution](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-working-with.html)
20
13
  * as Content Delivery Network (CDN) for global distribution and [AWS Lambda Functions](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)
21
14
  * for functions.
22
15
  */
23
- class NextjsGlobalFunctions extends constructs_1.Construct {
16
+ class NextjsGlobalFunctions extends nextjs_base_construct_1.NextjsBaseConstruct {
17
+ get url() {
18
+ return `https://${this.nextjsDistribution.distribution.domainName}`;
19
+ }
24
20
  constructor(scope, id, props) {
25
- super(scope, id);
26
- this.nextjsType = constants_1.NextjsType.GLOBAL_FUNCTIONS;
27
- this.props = (0, handle_deprecated_properties_1.handleDeprecatedProperties)(props);
28
- this.nextjsBuild = this.createNextjsBuild();
29
- this.nextjsStaticAssets = this.createNextjsStaticAssets();
30
- this.nextjsVpc = this.createVpc();
31
- this.nextjsFileSystem = this.createNextjsFileSystem();
32
- this.nextjsAssetsDeployment = this.createNextjsAssetsDeployment();
21
+ super(scope, id, props, constants_1.NextjsType.GLOBAL_FUNCTIONS);
22
+ this.props = props;
33
23
  this.nextjsFunctions = this.createNextjsFunctions();
34
24
  this.nextjsFileSystem.allowCompute({
35
25
  connections: this.nextjsFunctions.function.connections,
36
26
  role: this.nextjsFunctions.function.role,
37
27
  });
38
28
  this.nextjsDistribution = this.createNextjsDistribution();
39
- this.nextjsPostDeploy = this.createNextjsPostDeploy();
40
- }
41
- createNextjsBuild() {
42
- return new nextjs_build_1.NextjsBuild(this, "NextjsBuild", {
43
- buildCommand: this.props.buildCommand,
44
- buildContext: this.props.buildContext,
45
- nextjsType: this.nextjsType,
46
- relativePathToPackage: this.props.relativePathToPackage,
47
- overrides: this.props.overrides?.nextjsBuild,
48
- ...this.props.overrides?.nextjsGlobalFunctions?.nextjsBuildProps,
49
- });
50
- }
51
- createNextjsStaticAssets() {
52
- return new nextjs_static_assets_1.NextjsStaticAssets(this, "NextjsStaticAssets", {
53
- overrides: this.props.overrides?.nextjsStaticAssets,
54
- ...this.props.overrides?.nextjsGlobalFunctions?.nextjsStaticAssetsProps,
55
- });
56
- }
57
- createVpc() {
58
- return new nextjs_vpc_1.NextjsVpc(this, "NextjsVpc", {
59
- nextjsType: this.nextjsType,
60
- overrides: this.props.overrides?.nextjsVpc,
61
- ...this.props.overrides?.nextjsGlobalFunctions?.nextjsVpcProps,
62
- });
63
- }
64
- createNextjsFileSystem() {
65
- return new nextjs_file_system_1.NextjsFileSystem(this, "NextjsFileSystem", {
66
- vpc: this.nextjsVpc.vpc,
67
- overrides: this.props.overrides?.nextjsFileSystem,
68
- ...this.props.overrides?.nextjsGlobalFunctions?.nextjsFileSystemProps,
69
- });
70
- }
71
- createNextjsAssetsDeployment() {
72
- return new nextjs_assets_deployment_1.NextjsAssetsDeployment(this, "NextjsAssetsDeployment", {
73
- accessPoint: this.nextjsFileSystem.accessPoint,
74
- basePath: this.props.basePath,
75
- buildId: this.nextjsBuild.buildId,
76
- buildImageDigest: this.nextjsBuild.buildImageDigest,
77
- dockerImageCode: this.nextjsBuild.imageForNextjsAssetsDeployment,
78
- nextjsType: this.nextjsType,
79
- overrides: this.props.overrides?.nextjsAssetsDeployment,
80
- relativePathToPackage: this.props.relativePathToPackage,
81
- staticAssetsBucket: this.nextjsStaticAssets.bucket,
82
- vpc: this.nextjsVpc.vpc,
83
- ...this.props.overrides?.nextjsGlobalFunctions
84
- ?.nextjsAssetsDeploymentProps,
85
- });
86
29
  }
87
30
  createNextjsFunctions() {
88
31
  if (!this.nextjsBuild.imageForNextjsFunctions) {
@@ -92,7 +35,8 @@ class NextjsGlobalFunctions extends constructs_1.Construct {
92
35
  accessPoint: this.nextjsFileSystem.accessPoint,
93
36
  buildId: this.nextjsBuild.buildId,
94
37
  dockerImageCode: this.nextjsBuild.imageForNextjsFunctions,
95
- healthCheckPath: this.props.healthCheckPath,
38
+ healthCheckPath: this.baseProps.healthCheckPath,
39
+ nextjsType: this.nextjsType,
96
40
  vpc: this.nextjsVpc.vpc,
97
41
  overrides: this.props.overrides?.nextjsFunctions,
98
42
  ...this.props.overrides?.nextjsGlobalFunctions?.nextjsFunctionsProps,
@@ -101,7 +45,7 @@ class NextjsGlobalFunctions extends constructs_1.Construct {
101
45
  createNextjsDistribution() {
102
46
  return new nextjs_distribution_1.NextjsDistribution(this, "NextjsDistribution", {
103
47
  assetsBucket: this.nextjsStaticAssets.bucket,
104
- basePath: this.props.basePath,
48
+ basePath: this.baseProps.basePath,
105
49
  functionUrl: this.nextjsFunctions.functionUrl,
106
50
  nextjsType: this.nextjsType,
107
51
  overrides: this.props.overrides?.nextjsDistribution,
@@ -109,24 +53,8 @@ class NextjsGlobalFunctions extends constructs_1.Construct {
109
53
  ...this.props.overrides?.nextjsGlobalFunctions?.nextjsDistributionProps,
110
54
  });
111
55
  }
112
- createNextjsPostDeploy() {
113
- const nextjsPostDeploy = new nextjs_post_deploy_1.NextjsPostDeploy(this, "NextjsPostDeploy", {
114
- accessPoint: this.nextjsFileSystem.accessPoint,
115
- buildId: this.nextjsBuild.buildId,
116
- buildImageDigest: this.nextjsBuild.buildImageDigest,
117
- distribution: this.nextjsDistribution.distribution,
118
- overrides: this.props.overrides?.nextjsPostDeploy,
119
- relativePathToPackage: this.props.relativePathToPackage,
120
- staticAssetsBucket: this.nextjsStaticAssets.bucket,
121
- vpc: this.nextjsVpc.vpc,
122
- ...this.props.overrides?.nextjsGlobalFunctions?.nextjsPostDeployProps,
123
- });
124
- // ensure NextjsAssetsDeployment finishes before NextjsPostDeploy
125
- nextjsPostDeploy.node.addDependency(this.nextjsAssetsDeployment);
126
- return nextjsPostDeploy;
127
- }
128
56
  }
129
57
  exports.NextjsGlobalFunctions = NextjsGlobalFunctions;
130
58
  _a = JSII_RTTI_SYMBOL_1;
131
- NextjsGlobalFunctions[_a] = { fqn: "cdk-nextjs.NextjsGlobalFunctions", version: "0.4.2" };
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dGpzLWdsb2JhbC1mdW5jdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcm9vdC1jb25zdHJ1Y3RzL25leHRqcy1nbG9iYWwtZnVuY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsMkNBQXVDO0FBTXZDLDRDQUEwQztBQUUxQywwRUFBcUU7QUFDckUsK0RBQTJEO0FBQzNELHlFQUk0QztBQUM1QyxnRUFHZ0M7QUFDaEMsOERBQXlEO0FBQ3pELDhEQUF5RDtBQUN6RCxrRUFJaUM7QUFDakMsOENBQTBDO0FBQzFDLHdGQUFtRjtBQXVDbkY7Ozs7O0dBS0c7QUFDSCxNQUFhLHFCQUFzQixTQUFRLHNCQUFTO0lBYWxELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBaUM7UUFDekUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUpYLGVBQVUsR0FBRyxzQkFBVSxDQUFDLGdCQUFnQixDQUFDO1FBSy9DLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBQSx5REFBMEIsRUFBQyxLQUFLLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUMxRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDdEQsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO1FBQ2xFLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDcEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQztZQUNqQyxXQUFXLEVBQUUsSUFB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QUUsdUJBQXVCO1NBQ3hFLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDTyxzQkFBc0I7UUFDNUIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLHFDQUFnQixDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRTtZQUN0RSxXQUFXLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVc7WUFDOUMsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTztZQUNqQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQjtZQUNuRCxZQUFZLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVk7WUFDbEQsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLGdCQUFnQjtZQUNqRCxxQkFBcUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQjtZQUN2RCxrQkFBa0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTTtZQUNsRCxHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHO1lBQ3ZCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCO1NBQ3RFLENBQUMsQ0FBQztRQUNILGlFQUFpRTtRQUNqRSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ2pFLE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQzs7QUFwSEgsc0RBcUhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlzdHJpYnV0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250XCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtcbiAgQmFzZU5leHRqc0NvbnN0cnVjdE92ZXJyaWRlcyxcbiAgQmFzZU5leHRqc092ZXJyaWRlcyxcbn0gZnJvbSBcIi4vbmV4dGpzLWJhc2Utb3ZlcnJpZGVzXCI7XG5pbXBvcnQgeyBOZXh0anNCYXNlUHJvcHMgfSBmcm9tIFwiLi9uZXh0anMtYmFzZS1wcm9wc1wiO1xuaW1wb3J0IHsgTmV4dGpzVHlwZSB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IE9wdGlvbmFsTmV4dGpzRGlzdHJpYnV0aW9uUHJvcHMgfSBmcm9tIFwiLi4vZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxOZXh0anNEaXN0cmlidXRpb25Qcm9wc1wiO1xuaW1wb3J0IHsgTmV4dGpzQXNzZXRzRGVwbG95bWVudCB9IGZyb20gXCIuLi9uZXh0anMtYXNzZXRzLWRlcGxveW1lbnRcIjtcbmltcG9ydCB7IE5leHRqc0J1aWxkIH0gZnJvbSBcIi4uL25leHRqcy1idWlsZC9uZXh0anMtYnVpbGRcIjtcbmltcG9ydCB7XG4gIE5leHRqc0Z1bmN0aW9ucyxcbiAgTmV4dGpzRnVuY3Rpb25zT3ZlcnJpZGVzLFxuICBOZXh0anNGdW5jdGlvbnNQcm9wcyxcbn0gZnJvbSBcIi4uL25leHRqcy1jb21wdXRlL25leHRqcy1mdW5jdGlvbnNcIjtcbmltcG9ydCB7XG4gIE5leHRqc0Rpc3RyaWJ1dGlvbixcbiAgTmV4dGpzRGlzdHJpYnV0aW9uT3ZlcnJpZGVzLFxufSBmcm9tIFwiLi4vbmV4dGpzLWRpc3RyaWJ1dGlvblwiO1xuaW1wb3J0IHsgTmV4dGpzRmlsZVN5c3RlbSB9IGZyb20gXCIuLi9uZXh0anMtZmlsZS1zeXN0ZW1cIjtcbmltcG9ydCB7IE5leHRqc1Bvc3REZXBsb3kgfSBmcm9tIFwiLi4vbmV4dGpzLXBvc3QtZGVwbG95XCI7XG5pbXBvcnQge1xuICBOZXh0anNTdGF0aWNBc3NldHMsXG4gIE5leHRqc1N0YXRpY0Fzc2V0c092ZXJyaWRlcyxcbiAgTmV4dGpzU3RhdGljQXNzZXRzUHJvcHMsXG59IGZyb20gXCIuLi9uZXh0anMtc3RhdGljLWFzc2V0c1wiO1xuaW1wb3J0IHsgTmV4dGpzVnBjIH0gZnJvbSBcIi4uL25leHRqcy12cGNcIjtcbmltcG9ydCB7IGhhbmRsZURlcHJlY2F0ZWRQcm9wZXJ0aWVzIH0gZnJvbSBcIi4uL3V0aWxzL2hhbmRsZS1kZXByZWNhdGVkLXByb3BlcnRpZXNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBOZXh0anNHbG9iYWxGdW5jdGlvbnNDb25zdHJ1Y3RPdmVycmlkZXNcbiAgZXh0ZW5kcyBCYXNlTmV4dGpzQ29uc3RydWN0T3ZlcnJpZGVzIHtcbiAgcmVhZG9ubHkgbmV4dGpzRnVuY3Rpb25zUHJvcHM/OiBOZXh0anNGdW5jdGlvbnNQcm9wcztcbiAgcmVhZG9ubHkgbmV4dGpzRGlzdHJpYnV0aW9uUHJvcHM/OiBPcHRpb25hbE5leHRqc0Rpc3RyaWJ1dGlvblByb3BzO1xuICByZWFkb25seSBuZXh0anNTdGF0aWNBc3NldHNQcm9wcz86IE5leHRqc1N0YXRpY0Fzc2V0c1Byb3BzO1xufVxuXG4vKipcbiAqIE92ZXJyaWRlcyBmb3IgYE5leHRqc0dsb2JhbEZ1bmN0aW9uc2AuIE92ZXJyaWRlcyBhcmUgbG93ZXIgbGV2ZWwgdGhhblxuICogcHJvcHMgYW5kIGFyZSBwYXNzZWQgZGlyZWN0bHkgdG8gQ0RLIENvbnN0cnVjdHMgZ2l2aW5nIHlvdSBtb3JlIGNvbnRyb2wuIEl0J3NcbiAqIHJlY29tbWVuZGVkIHRvIHVzZSBjYXV0aW9uIGFuZCByZXZpZXcgc291cmNlIGNvZGUgc28geW91IGtub3cgaG93IHRoZXkncmUgdXNlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXh0anNHbG9iYWxGdW5jdGlvbnNPdmVycmlkZXMgZXh0ZW5kcyBCYXNlTmV4dGpzT3ZlcnJpZGVzIHtcbiAgcmVhZG9ubHkgbmV4dGpzR2xvYmFsRnVuY3Rpb25zPzogTmV4dGpzR2xvYmFsRnVuY3Rpb25zQ29uc3RydWN0T3ZlcnJpZGVzO1xuICByZWFkb25seSBuZXh0anNGdW5jdGlvbnM/OiBOZXh0anNGdW5jdGlvbnNPdmVycmlkZXM7XG4gIHJlYWRvbmx5IG5leHRqc0Rpc3RyaWJ1dGlvbj86IE5leHRqc0Rpc3RyaWJ1dGlvbk92ZXJyaWRlcztcbiAgcmVhZG9ubHkgbmV4dGpzU3RhdGljQXNzZXRzPzogTmV4dGpzU3RhdGljQXNzZXRzT3ZlcnJpZGVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5leHRqc0dsb2JhbEZ1bmN0aW9uc1Byb3BzIGV4dGVuZHMgTmV4dGpzQmFzZVByb3BzIHtcbiAgLyoqXG4gICAqIFByZWZpeCB0byB0aGUgVVJJIHBhdGggdGhlIGFwcCB3aWxsIGJlIHNlcnZlZCBhdC4gRXNwZWNpYWxseSB1c2VmdWwgd2hlblxuICAgKiBwYXNzaW5nIGluIHlvdXIgb3duIGBkaXN0cmlidXRpb25gLlxuICAgKiBAZXhhbXBsZSBcIi9teS1iYXNlLXBhdGhcIlxuICAgKi9cbiAgcmVhZG9ubHkgYmFzZVBhdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBCcmluZyB5b3VyIG93biBkaXN0cmlidXRpb24uIENhbiBiZSB1c2VkIHdpdGggYGJhc2VQYXRoYCB0byBob3N0IG11bHRpcGxlXG4gICAqIGFwcHMgb24gdGhlIHNhbWUgQ2xvdWRGcm9udCBkaXN0cmlidXRpb24uXG4gICAqL1xuICByZWFkb25seSBkaXN0cmlidXRpb24/OiBEaXN0cmlidXRpb247XG4gIC8qKlxuICAgKiBPdmVycmlkZSBwcm9wcyBvZiBhbnkgY29uc3RydWN0LlxuICAgKi9cbiAgcmVhZG9ubHkgb3ZlcnJpZGVzPzogTmV4dGpzR2xvYmFsRnVuY3Rpb25zT3ZlcnJpZGVzO1xufVxuXG4vKipcbiAqIERlcGxveSBOZXh0LmpzIGdsb2JhbGx5IGRpc3RyaWJ1dGVkIHdpdGggZnVuY3Rpb25zLiBVc2VzIFtDbG91ZEZyb250XG4gKiBEaXN0cmlidXRpb25dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZEZyb250L2xhdGVzdC9EZXZlbG9wZXJHdWlkZS9kaXN0cmlidXRpb24td29ya2luZy13aXRoLmh0bWwpXG4gKiBhcyBDb250ZW50IERlbGl2ZXJ5IE5ldHdvcmsgKENETikgZm9yIGdsb2JhbCBkaXN0cmlidXRpb24gYW5kIFtBV1MgTGFtYmRhIEZ1bmN0aW9uc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvd2VsY29tZS5odG1sKVxuICogZm9yIGZ1bmN0aW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIE5leHRqc0dsb2JhbEZ1bmN0aW9ucyBleHRlbmRzIENvbnN0cnVjdCB7XG4gIG5leHRqc0J1aWxkOiBOZXh0anNCdWlsZDtcbiAgbmV4dGpzU3RhdGljQXNzZXRzOiBOZXh0anNTdGF0aWNBc3NldHM7XG4gIG5leHRqc1ZwYzogTmV4dGpzVnBjO1xuICBuZXh0anNGaWxlU3lzdGVtOiBOZXh0anNGaWxlU3lzdGVtO1xuICBuZXh0anNBc3NldHNEZXBsb3ltZW50OiBOZXh0anNBc3NldHNEZXBsb3ltZW50O1xuICBuZXh0anNGdW5jdGlvbnM6IE5leHRqc0Z1bmN0aW9ucztcbiAgbmV4dGpzRGlzdHJpYnV0aW9uOiBOZXh0anNEaXN0cmlidXRpb247XG4gIG5leHRqc1Bvc3REZXBsb3k6IE5leHRqc1Bvc3REZXBsb3k7XG5cbiAgcHJpdmF0ZSBuZXh0anNUeXBlID0gTmV4dGpzVHlwZS5HTE9CQUxfRlVOQ1RJT05TO1xuICBwcml2YXRlIHByb3BzOiBOZXh0anNHbG9iYWxGdW5jdGlvbnNQcm9wcztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTmV4dGpzR2xvYmFsRnVuY3Rpb25zUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIHRoaXMucHJvcHMgPSBoYW5kbGVEZXByZWNhdGVkUHJvcGVydGllcyhwcm9wcyk7XG4gICAgdGhpcy5uZXh0anNCdWlsZCA9IHRoaXMuY3JlYXRlTmV4dGpzQnVpbGQoKTtcbiAgICB0aGlzLm5leHRqc1N0YXRpY0Fzc2V0cyA9IHRoaXMuY3JlYXRlTmV4dGpzU3RhdGljQXNzZXRzKCk7XG4gICAgdGhpcy5uZXh0anNWcGMgPSB0aGlzLmNyZWF0ZVZwYygpO1xuICAgIHRoaXMubmV4dGpzRmlsZVN5c3RlbSA9IHRoaXMuY3JlYXRlTmV4dGpzRmlsZVN5c3RlbSgpO1xuICAgIHRoaXMubmV4dGpzQXNzZXRzRGVwbG95bWVudCA9IHRoaXMuY3JlYXRlTmV4dGpzQXNzZXRzRGVwbG95bWVudCgpO1xuICAgIHRoaXMubmV4dGpzRnVuY3Rpb25zID0gdGhpcy5jcmVhdGVOZXh0anNGdW5jdGlvbnMoKTtcbiAgICB0aGlzLm5leHRqc0ZpbGVTeXN0ZW0uYWxsb3dDb21wdXRlKHtcbiAgICAgIGNvbm5lY3Rpb25zOiB0aGlzLm5leHRqc0Z1bmN0aW9ucy5mdW5jdGlvbi5jb25uZWN0aW9ucyxcbiAgICAgIHJvbGU6IHRoaXMubmV4dGpzRnVuY3Rpb25zLmZ1bmN0aW9uLnJvbGUhLFxuICAgIH0pO1xuICAgIHRoaXMubmV4dGpzRGlzdHJpYnV0aW9uID0gdGhpcy5jcmVhdGVOZXh0anNEaXN0cmlidXRpb24oKTtcbiAgICB0aGlzLm5leHRqc1Bvc3REZXBsb3kgPSB0aGlzLmNyZWF0ZU5leHRqc1Bvc3REZXBsb3koKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlTmV4dGpzQnVpbGQoKSB7XG4gICAgcmV0dXJuIG5ldyBOZXh0anNCdWlsZCh0aGlzLCBcIk5leHRqc0J1aWxkXCIsIHtcbiAgICAgIGJ1aWxkQ29tbWFuZDogdGhpcy5wcm9wcy5idWlsZENvbW1hbmQsXG4gICAgICBidWlsZENvbnRleHQ6IHRoaXMucHJvcHMuYnVpbGRDb250ZXh0LFxuICAgICAgbmV4dGpzVHlwZTogdGhpcy5uZXh0anNUeXBlLFxuICAgICAgcmVsYXRpdmVQYXRoVG9QYWNrYWdlOiB0aGlzLnByb3BzLnJlbGF0aXZlUGF0aFRvUGFja2FnZSxcbiAgICAgIG92ZXJyaWRlczogdGhpcy5wcm9wcy5vdmVycmlkZXM/Lm5leHRqc0J1aWxkLFxuICAgICAgLi4udGhpcy5wcm9wcy5vdmVycmlkZXM/Lm5leHRqc0dsb2JhbEZ1bmN0aW9ucz8ubmV4dGpzQnVpbGRQcm9wcyxcbiAgICB9KTtcbiAgfVxuICBwcml2YXRlIGNyZWF0ZU5leHRqc1N0YXRpY0Fzc2V0cygpIHtcbiAgICByZXR1cm4gbmV3IE5leHRqc1N0YXRpY0Fzc2V0cyh0aGlzLCBcIk5leHRqc1N0YXRpY0Fzc2V0c1wiLCB7XG4gICAgICBvdmVycmlkZXM6IHRoaXMucHJvcHMub3ZlcnJpZGVzPy5uZXh0anNTdGF0aWNBc3NldHMsXG4gICAgICAuLi50aGlzLnByb3BzLm92ZXJyaWRlcz8ubmV4dGpzR2xvYmFsRnVuY3Rpb25zPy5uZXh0anNTdGF0aWNBc3NldHNQcm9wcyxcbiAgICB9KTtcbiAgfVxuICBwcml2YXRlIGNyZWF0ZVZwYygpIHtcbiAgICByZXR1cm4gbmV3IE5leHRqc1ZwYyh0aGlzLCBcIk5leHRqc1ZwY1wiLCB7XG4gICAgICBuZXh0anNUeXBlOiB0aGlzLm5leHRqc1R5cGUsXG4gICAgICBvdmVycmlkZXM6IHRoaXMucHJvcHMub3ZlcnJpZGVzPy5uZXh0anNWcGMsXG4gICAgICAuLi50aGlzLnByb3BzLm92ZXJyaWRlcz8ubmV4dGpzR2xvYmFsRnVuY3Rpb25zPy5uZXh0anNWcGNQcm9wcyxcbiAgICB9KTtcbiAgfVxuICBwcml2YXRlIGNyZWF0ZU5leHRqc0ZpbGVTeXN0ZW0oKSB7XG4gICAgcmV0dXJuIG5ldyBOZXh0anNGaWxlU3lzdGVtKHRoaXMsIFwiTmV4dGpzRmlsZVN5c3RlbVwiLCB7XG4gICAgICB2cGM6IHRoaXMubmV4dGpzVnBjLnZwYyxcbiAgICAgIG92ZXJyaWRlczogdGhpcy5wcm9wcy5vdmVycmlkZXM/Lm5leHRqc0ZpbGVTeXN0ZW0sXG4gICAgICAuLi50aGlzLnByb3BzLm92ZXJyaWRlcz8ubmV4dGpzR2xvYmFsRnVuY3Rpb25zPy5uZXh0anNGaWxlU3lzdGVtUHJvcHMsXG4gICAgfSk7XG4gIH1cbiAgcHJpdmF0ZSBjcmVhdGVOZXh0anNBc3NldHNEZXBsb3ltZW50KCkge1xuICAgIHJldHVybiBuZXcgTmV4dGpzQXNzZXRzRGVwbG95bWVudCh0aGlzLCBcIk5leHRqc0Fzc2V0c0RlcGxveW1lbnRcIiwge1xuICAgICAgYWNjZXNzUG9pbnQ6IHRoaXMubmV4dGpzRmlsZVN5c3RlbS5hY2Nlc3NQb2ludCxcbiAgICAgIGJhc2VQYXRoOiB0aGlzLnByb3BzLmJhc2VQYXRoLFxuICAgICAgYnVpbGRJZDogdGhpcy5uZXh0anNCdWlsZC5idWlsZElkLFxuICAgICAgYnVpbGRJbWFnZURpZ2VzdDogdGhpcy5uZXh0anNCdWlsZC5idWlsZEltYWdlRGlnZXN0LFxuICAgICAgZG9ja2VySW1hZ2VDb2RlOiB0aGlzLm5leHRqc0J1aWxkLmltYWdlRm9yTmV4dGpzQXNzZXRzRGVwbG95bWVudCxcbiAgICAgIG5leHRqc1R5cGU6IHRoaXMubmV4dGpzVHlwZSxcbiAgICAgIG92ZXJyaWRlczogdGhpcy5wcm9wcy5vdmVycmlkZXM/Lm5leHRqc0Fzc2V0c0RlcGxveW1lbnQsXG4gICAgICByZWxhdGl2ZVBhdGhUb1BhY2thZ2U6IHRoaXMucHJvcHMucmVsYXRpdmVQYXRoVG9QYWNrYWdlLFxuICAgICAgc3RhdGljQXNzZXRzQnVja2V0OiB0aGlzLm5leHRqc1N0YXRpY0Fzc2V0cy5idWNrZXQsXG4gICAgICB2cGM6IHRoaXMubmV4dGpzVnBjLnZwYyxcbiAgICAgIC4uLnRoaXMucHJvcHMub3ZlcnJpZGVzPy5uZXh0anNHbG9iYWxGdW5jdGlvbnNcbiAgICAgICAgPy5uZXh0anNBc3NldHNEZXBsb3ltZW50UHJvcHMsXG4gICAgfSk7XG4gIH1cbiAgcHJpdmF0ZSBjcmVhdGVOZXh0anNGdW5jdGlvbnMoKSB7XG4gICAgaWYgKCF0aGlzLm5leHRqc0J1aWxkLmltYWdlRm9yTmV4dGpzRnVuY3Rpb25zKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJuZXh0anNCdWlsZC5kb2NrZXJJbWFnZUNvZGUgaXMgdW5kZWZpbmVkXCIpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IE5leHRqc0Z1bmN0aW9ucyh0aGlzLCBcIk5leHRqc0Z1bmN0aW9uc1wiLCB7XG4gICAgICBhY2Nlc3NQb2ludDogdGhpcy5uZXh0anNGaWxlU3lzdGVtLmFjY2Vzc1BvaW50LFxuICAgICAgYnVpbGRJZDogdGhpcy5uZXh0anNCdWlsZC5idWlsZElkLFxuICAgICAgZG9ja2VySW1hZ2VDb2RlOiB0aGlzLm5leHRqc0J1aWxkLmltYWdlRm9yTmV4dGpzRnVuY3Rpb25zLFxuICAgICAgaGVhbHRoQ2hlY2tQYXRoOiB0aGlzLnByb3BzLmhlYWx0aENoZWNrUGF0aCxcbiAgICAgIHZwYzogdGhpcy5uZXh0anNWcGMudnBjLFxuICAgICAgb3ZlcnJpZGVzOiB0aGlzLnByb3BzLm92ZXJyaWRlcz8ubmV4dGpzRnVuY3Rpb25zLFxuICAgICAgLi4udGhpcy5wcm9wcy5vdmVycmlkZXM/Lm5leHRqc0dsb2JhbEZ1bmN0aW9ucz8ubmV4dGpzRnVuY3Rpb25zUHJvcHMsXG4gICAgfSk7XG4gIH1cbiAgcHJpdmF0ZSBjcmVhdGVOZXh0anNEaXN0cmlidXRpb24oKSB7XG4gICAgcmV0dXJuIG5ldyBOZXh0anNEaXN0cmlidXRpb24odGhpcywgXCJOZXh0anNEaXN0cmlidXRpb25cIiwge1xuICAgICAgYXNzZXRzQnVja2V0OiB0aGlzLm5leHRqc1N0YXRpY0Fzc2V0cy5idWNrZXQsXG4gICAgICBiYXNlUGF0aDogdGhpcy5wcm9wcy5iYXNlUGF0aCxcbiAgICAgIGZ1bmN0aW9uVXJsOiB0aGlzLm5leHRqc0Z1bmN0aW9ucy5mdW5jdGlvblVybCxcbiAgICAgIG5leHRqc1R5cGU6IHRoaXMubmV4dGpzVHlwZSxcbiAgICAgIG92ZXJyaWRlczogdGhpcy5wcm9wcy5vdmVycmlkZXM/Lm5leHRqc0Rpc3RyaWJ1dGlvbixcbiAgICAgIHB1YmxpY0RpckVudHJpZXM6IHRoaXMubmV4dGpzQnVpbGQucHVibGljRGlyRW50cmllcyxcbiAgICAgIC4uLnRoaXMucHJvcHMub3ZlcnJpZGVzPy5uZXh0anNHbG9iYWxGdW5jdGlvbnM/Lm5leHRqc0Rpc3RyaWJ1dGlvblByb3BzLFxuICAgIH0pO1xuICB9XG4gIHByaXZhdGUgY3JlYXRlTmV4dGpzUG9zdERlcGxveSgpIHtcbiAgICBjb25zdCBuZXh0anNQb3N0RGVwbG95ID0gbmV3IE5leHRqc1Bvc3REZXBsb3kodGhpcywgXCJOZXh0anNQb3N0RGVwbG95XCIsIHtcbiAgICAgIGFjY2Vzc1BvaW50OiB0aGlzLm5leHRqc0ZpbGVTeXN0ZW0uYWNjZXNzUG9pbnQsXG4gICAgICBidWlsZElkOiB0aGlzLm5leHRqc0J1aWxkLmJ1aWxkSWQsXG4gICAgICBidWlsZEltYWdlRGlnZXN0OiB0aGlzLm5leHRqc0J1aWxkLmJ1aWxkSW1hZ2VEaWdlc3QsXG4gICAgICBkaXN0cmlidXRpb246IHRoaXMubmV4dGpzRGlzdHJpYnV0aW9uLmRpc3RyaWJ1dGlvbixcbiAgICAgIG92ZXJyaWRlczogdGhpcy5wcm9wcy5vdmVycmlkZXM/Lm5leHRqc1Bvc3REZXBsb3ksXG4gICAgICByZWxhdGl2ZVBhdGhUb1BhY2thZ2U6IHRoaXMucHJvcHMucmVsYXRpdmVQYXRoVG9QYWNrYWdlLFxuICAgICAgc3RhdGljQXNzZXRzQnVja2V0OiB0aGlzLm5leHRqc1N0YXRpY0Fzc2V0cy5idWNrZXQsXG4gICAgICB2cGM6IHRoaXMubmV4dGpzVnBjLnZwYyxcbiAgICAgIC4uLnRoaXMucHJvcHMub3ZlcnJpZGVzPy5uZXh0anNHbG9iYWxGdW5jdGlvbnM/Lm5leHRqc1Bvc3REZXBsb3lQcm9wcyxcbiAgICB9KTtcbiAgICAvLyBlbnN1cmUgTmV4dGpzQXNzZXRzRGVwbG95bWVudCBmaW5pc2hlcyBiZWZvcmUgTmV4dGpzUG9zdERlcGxveVxuICAgIG5leHRqc1Bvc3REZXBsb3kubm9kZS5hZGREZXBlbmRlbmN5KHRoaXMubmV4dGpzQXNzZXRzRGVwbG95bWVudCk7XG4gICAgcmV0dXJuIG5leHRqc1Bvc3REZXBsb3k7XG4gIH1cbn1cbiJdfQ==
59
+ NextjsGlobalFunctions[_a] = { fqn: "cdk-nextjs.NextjsGlobalFunctions", version: "0.4.4" };
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dGpzLWdsb2JhbC1mdW5jdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcm9vdC1jb25zdHJ1Y3RzL25leHRqcy1nbG9iYWwtZnVuY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsNENBQTBDO0FBRTFDLHlFQUk0QztBQUM1QyxnRUFHZ0M7QUFDaEMsbUVBS2lDO0FBK0JqQzs7Ozs7R0FLRztBQUNILE1BQWEscUJBQXNCLFNBQVEsMkNBQW1CO0lBRzVELElBQUksR0FBRztRQUNMLE9BQU8sV0FBVyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RFLENBQUM7SUFJRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWlDO1FBQ3pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxzQkFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUNwRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDO1lBQ2pDLFdBQVcsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxXQUFXO1lBQ3RELElBQUksRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxJQUFLO1NBQzFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUM1RCxDQUFDO0lBRU8scUJBQXFCO1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLHVCQUF1QixFQUFFLENBQUM7WUFDOUMsTUFBTSxJQUFJLEtBQUssQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFDRCxPQUFPLElBQUksa0NBQWUsQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUU7WUFDbEQsV0FBVyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXO1lBQzlDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU87WUFDakMsZUFBZSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsdUJBQXVCO1lBQ3pELGVBQWUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWU7WUFDL0MsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUc7WUFDdkIsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLGVBQWU7WUFDaEQsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSxvQkFBb0I7U0FDckUsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNPLHdCQUF3QjtRQUM5QixPQUFPLElBQUksd0NBQWtCLENBQUMsSUFBSSxFQUFFLG9CQUFvQixFQUFFO1lBQ3hELFlBQVksRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTTtZQUM1QyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRO1lBQ2pDLFdBQVcsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVc7WUFDN0MsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxrQkFBa0I7WUFDbkQsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0I7WUFDbkQsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUI7U0FDeEUsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUE3Q0gsc0RBOENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlzdHJpYnV0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250XCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgTmV4dGpzVHlwZSB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IE9wdGlvbmFsTmV4dGpzRGlzdHJpYnV0aW9uUHJvcHMgfSBmcm9tIFwiLi4vZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxOZXh0anNEaXN0cmlidXRpb25Qcm9wc1wiO1xuaW1wb3J0IHtcbiAgTmV4dGpzRnVuY3Rpb25zLFxuICBOZXh0anNGdW5jdGlvbnNPdmVycmlkZXMsXG4gIE5leHRqc0Z1bmN0aW9uc1Byb3BzLFxufSBmcm9tIFwiLi4vbmV4dGpzLWNvbXB1dGUvbmV4dGpzLWZ1bmN0aW9uc1wiO1xuaW1wb3J0IHtcbiAgTmV4dGpzRGlzdHJpYnV0aW9uLFxuICBOZXh0anNEaXN0cmlidXRpb25PdmVycmlkZXMsXG59IGZyb20gXCIuLi9uZXh0anMtZGlzdHJpYnV0aW9uXCI7XG5pbXBvcnQge1xuICBOZXh0anNCYXNlQ29uc3RydWN0T3ZlcnJpZGVzLFxuICBOZXh0anNCYXNlT3ZlcnJpZGVzLFxuICBOZXh0anNCYXNlQ29uc3RydWN0LFxuICBOZXh0anNCYXNlUHJvcHMsXG59IGZyb20gXCIuL25leHRqcy1iYXNlLWNvbnN0cnVjdFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5leHRqc0dsb2JhbEZ1bmN0aW9uc0NvbnN0cnVjdE92ZXJyaWRlc1xuICBleHRlbmRzIE5leHRqc0Jhc2VDb25zdHJ1Y3RPdmVycmlkZXMge1xuICByZWFkb25seSBuZXh0anNGdW5jdGlvbnNQcm9wcz86IE5leHRqc0Z1bmN0aW9uc1Byb3BzO1xuICByZWFkb25seSBuZXh0anNEaXN0cmlidXRpb25Qcm9wcz86IE9wdGlvbmFsTmV4dGpzRGlzdHJpYnV0aW9uUHJvcHM7XG59XG5cbi8qKlxuICogT3ZlcnJpZGVzIGZvciBgTmV4dGpzR2xvYmFsRnVuY3Rpb25zYC4gT3ZlcnJpZGVzIGFyZSBsb3dlciBsZXZlbCB0aGFuXG4gKiBwcm9wcyBhbmQgYXJlIHBhc3NlZCBkaXJlY3RseSB0byBDREsgQ29uc3RydWN0cyBnaXZpbmcgeW91IG1vcmUgY29udHJvbC4gSXQnc1xuICogcmVjb21tZW5kZWQgdG8gdXNlIGNhdXRpb24gYW5kIHJldmlldyBzb3VyY2UgY29kZSBzbyB5b3Uga25vdyBob3cgdGhleSdyZSB1c2VkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5leHRqc0dsb2JhbEZ1bmN0aW9uc092ZXJyaWRlcyBleHRlbmRzIE5leHRqc0Jhc2VPdmVycmlkZXMge1xuICByZWFkb25seSBuZXh0anNHbG9iYWxGdW5jdGlvbnM/OiBOZXh0anNHbG9iYWxGdW5jdGlvbnNDb25zdHJ1Y3RPdmVycmlkZXM7XG4gIHJlYWRvbmx5IG5leHRqc0Z1bmN0aW9ucz86IE5leHRqc0Z1bmN0aW9uc092ZXJyaWRlcztcbiAgcmVhZG9ubHkgbmV4dGpzRGlzdHJpYnV0aW9uPzogTmV4dGpzRGlzdHJpYnV0aW9uT3ZlcnJpZGVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5leHRqc0dsb2JhbEZ1bmN0aW9uc1Byb3BzIGV4dGVuZHMgTmV4dGpzQmFzZVByb3BzIHtcbiAgLyoqXG4gICAqIEJyaW5nIHlvdXIgb3duIGRpc3RyaWJ1dGlvbi4gQ2FuIGJlIHVzZWQgd2l0aCBgYmFzZVBhdGhgIHRvIGhvc3QgbXVsdGlwbGVcbiAgICogYXBwcyBvbiB0aGUgc2FtZSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGRpc3RyaWJ1dGlvbj86IERpc3RyaWJ1dGlvbjtcbiAgLyoqXG4gICAqIE92ZXJyaWRlIHByb3BzIG9mIGFueSBjb25zdHJ1Y3QuXG4gICAqL1xuICByZWFkb25seSBvdmVycmlkZXM/OiBOZXh0anNHbG9iYWxGdW5jdGlvbnNPdmVycmlkZXM7XG59XG5cbi8qKlxuICogRGVwbG95IE5leHQuanMgZ2xvYmFsbHkgZGlzdHJpYnV0ZWQgd2l0aCBmdW5jdGlvbnMuIFVzZXMgW0Nsb3VkRnJvbnRcbiAqIERpc3RyaWJ1dGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkRnJvbnQvbGF0ZXN0L0RldmVsb3Blckd1aWRlL2Rpc3RyaWJ1dGlvbi13b3JraW5nLXdpdGguaHRtbClcbiAqIGFzIENvbnRlbnQgRGVsaXZlcnkgTmV0d29yayAoQ0ROKSBmb3IgZ2xvYmFsIGRpc3RyaWJ1dGlvbiBhbmQgW0FXUyBMYW1iZGEgRnVuY3Rpb25zXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy93ZWxjb21lLmh0bWwpXG4gKiBmb3IgZnVuY3Rpb25zLlxuICovXG5leHBvcnQgY2xhc3MgTmV4dGpzR2xvYmFsRnVuY3Rpb25zIGV4dGVuZHMgTmV4dGpzQmFzZUNvbnN0cnVjdCB7XG4gIG5leHRqc0Z1bmN0aW9uczogTmV4dGpzRnVuY3Rpb25zO1xuICBuZXh0anNEaXN0cmlidXRpb246IE5leHRqc0Rpc3RyaWJ1dGlvbjtcbiAgZ2V0IHVybCgpIHtcbiAgICByZXR1cm4gYGh0dHBzOi8vJHt0aGlzLm5leHRqc0Rpc3RyaWJ1dGlvbi5kaXN0cmlidXRpb24uZG9tYWluTmFtZX1gO1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9wczogTmV4dGpzR2xvYmFsRnVuY3Rpb25zUHJvcHM7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IE5leHRqc0dsb2JhbEZ1bmN0aW9uc1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcywgTmV4dGpzVHlwZS5HTE9CQUxfRlVOQ1RJT05TKTtcbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG4gICAgdGhpcy5uZXh0anNGdW5jdGlvbnMgPSB0aGlzLmNyZWF0ZU5leHRqc0Z1bmN0aW9ucygpO1xuICAgIHRoaXMubmV4dGpzRmlsZVN5c3RlbS5hbGxvd0NvbXB1dGUoe1xuICAgICAgY29ubmVjdGlvbnM6IHRoaXMubmV4dGpzRnVuY3Rpb25zLmZ1bmN0aW9uLmNvbm5lY3Rpb25zLFxuICAgICAgcm9sZTogdGhpcy5uZXh0anNGdW5jdGlvbnMuZnVuY3Rpb24ucm9sZSEsXG4gICAgfSk7XG4gICAgdGhpcy5uZXh0anNEaXN0cmlidXRpb24gPSB0aGlzLmNyZWF0ZU5leHRqc0Rpc3RyaWJ1dGlvbigpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVOZXh0anNGdW5jdGlvbnMoKSB7XG4gICAgaWYgKCF0aGlzLm5leHRqc0J1aWxkLmltYWdlRm9yTmV4dGpzRnVuY3Rpb25zKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJuZXh0anNCdWlsZC5kb2NrZXJJbWFnZUNvZGUgaXMgdW5kZWZpbmVkXCIpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IE5leHRqc0Z1bmN0aW9ucyh0aGlzLCBcIk5leHRqc0Z1bmN0aW9uc1wiLCB7XG4gICAgICBhY2Nlc3NQb2ludDogdGhpcy5uZXh0anNGaWxlU3lzdGVtLmFjY2Vzc1BvaW50LFxuICAgICAgYnVpbGRJZDogdGhpcy5uZXh0anNCdWlsZC5idWlsZElkLFxuICAgICAgZG9ja2VySW1hZ2VDb2RlOiB0aGlzLm5leHRqc0J1aWxkLmltYWdlRm9yTmV4dGpzRnVuY3Rpb25zLFxuICAgICAgaGVhbHRoQ2hlY2tQYXRoOiB0aGlzLmJhc2VQcm9wcy5oZWFsdGhDaGVja1BhdGgsXG4gICAgICBuZXh0anNUeXBlOiB0aGlzLm5leHRqc1R5cGUsXG4gICAgICB2cGM6IHRoaXMubmV4dGpzVnBjLnZwYyxcbiAgICAgIG92ZXJyaWRlczogdGhpcy5wcm9wcy5vdmVycmlkZXM/Lm5leHRqc0Z1bmN0aW9ucyxcbiAgICAgIC4uLnRoaXMucHJvcHMub3ZlcnJpZGVzPy5uZXh0anNHbG9iYWxGdW5jdGlvbnM/Lm5leHRqc0Z1bmN0aW9uc1Byb3BzLFxuICAgIH0pO1xuICB9XG4gIHByaXZhdGUgY3JlYXRlTmV4dGpzRGlzdHJpYnV0aW9uKCkge1xuICAgIHJldHVybiBuZXcgTmV4dGpzRGlzdHJpYnV0aW9uKHRoaXMsIFwiTmV4dGpzRGlzdHJpYnV0aW9uXCIsIHtcbiAgICAgIGFzc2V0c0J1Y2tldDogdGhpcy5uZXh0anNTdGF0aWNBc3NldHMuYnVja2V0LFxuICAgICAgYmFzZVBhdGg6IHRoaXMuYmFzZVByb3BzLmJhc2VQYXRoLFxuICAgICAgZnVuY3Rpb25Vcmw6IHRoaXMubmV4dGpzRnVuY3Rpb25zLmZ1bmN0aW9uVXJsLFxuICAgICAgbmV4dGpzVHlwZTogdGhpcy5uZXh0anNUeXBlLFxuICAgICAgb3ZlcnJpZGVzOiB0aGlzLnByb3BzLm92ZXJyaWRlcz8ubmV4dGpzRGlzdHJpYnV0aW9uLFxuICAgICAgcHVibGljRGlyRW50cmllczogdGhpcy5uZXh0anNCdWlsZC5wdWJsaWNEaXJFbnRyaWVzLFxuICAgICAgLi4udGhpcy5wcm9wcy5vdmVycmlkZXM/Lm5leHRqc0dsb2JhbEZ1bmN0aW9ucz8ubmV4dGpzRGlzdHJpYnV0aW9uUHJvcHMsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,14 +1,8 @@
1
1
  import { Construct } from "constructs";
2
- import { BaseNextjsConstructOverrides, BaseNextjsOverrides } from "./nextjs-base-overrides";
3
- import { NextjsBaseProps } from "./nextjs-base-props";
2
+ import { NextjsBaseConstructOverrides, NextjsBaseOverrides, NextjsBaseConstruct, NextjsBaseProps } from "./nextjs-base-construct";
4
3
  import { OptionalNextjsContainersProps } from "../generated-structs/OptionalNextjsContainersProps";
5
- import { NextjsAssetsDeployment } from "../nextjs-assets-deployment";
6
- import { NextjsBuild } from "../nextjs-build/nextjs-build";
7
4
  import { NextjsContainers, NextjsContainersOverrides } from "../nextjs-compute/nextjs-containers";
8
- import { NextjsFileSystem } from "../nextjs-file-system";
9
- import { NextjsPostDeploy } from "../nextjs-post-deploy";
10
- import { NextjsVpc } from "../nextjs-vpc";
11
- export interface NextjsRegionalContainersConstructOverrides extends BaseNextjsConstructOverrides {
5
+ export interface NextjsRegionalContainersConstructOverrides extends NextjsBaseConstructOverrides {
12
6
  readonly nextjsContainerProps?: OptionalNextjsContainersProps;
13
7
  }
14
8
  /**
@@ -16,7 +10,7 @@ export interface NextjsRegionalContainersConstructOverrides extends BaseNextjsCo
16
10
  * props and are passed directly to CDK Constructs giving you more control. It's
17
11
  * recommended to use caution and review source code so you know how they're used.
18
12
  */
19
- export interface NextjsRegionalContainersOverrides extends BaseNextjsOverrides {
13
+ export interface NextjsRegionalContainersOverrides extends NextjsBaseOverrides {
20
14
  readonly nextjsRegionalContainers?: NextjsRegionalContainersConstructOverrides;
21
15
  readonly nextjsContainers?: NextjsContainersOverrides;
22
16
  }
@@ -32,20 +26,10 @@ export interface NextjsRegionalContainersProps extends NextjsBaseProps {
32
26
  * for load balancing and [AWS Fargate](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html)
33
27
  * for containers.
34
28
  */
35
- export declare class NextjsRegionalContainers extends Construct {
36
- nextjsBuild: NextjsBuild;
37
- nextjsVpc: NextjsVpc;
38
- nextjsFileSystem: NextjsFileSystem;
39
- nextjsAssetsDeployment: NextjsAssetsDeployment;
29
+ export declare class NextjsRegionalContainers extends NextjsBaseConstruct {
40
30
  nextjsContainers: NextjsContainers;
41
- nextjsPostDeploy: NextjsPostDeploy;
42
- private nextjsType;
31
+ get url(): string;
43
32
  private props;
44
33
  constructor(scope: Construct, id: string, props: NextjsRegionalContainersProps);
45
- private createNextjsBuild;
46
- private createVpc;
47
- private createNextjsFileSystem;
48
- private createNextjsAssetsDeployment;
49
34
  private createNextjsLoadBalancedContainers;
50
- private createNextjsPostDeploy;
51
35
  }