cdk-nextjs 0.4.1 → 0.4.3

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 (47) hide show
  1. package/.jsii +1254 -733
  2. package/API.md +2458 -1108
  3. package/README.md +220 -7
  4. package/docs/1k-concurrent-users-executions.png +0 -0
  5. package/docs/cdk-nextjs-NextjsGlobalContainers.png +0 -0
  6. package/docs/cdk-nextjs-NextjsGlobalFunctions.png +0 -0
  7. package/docs/cdk-nextjs-NextjsRegionalContainers.png +0 -0
  8. package/docs/cdk-nextjs-NextjsRegionalFunctions.png +0 -0
  9. package/docs/cdk-nextjs-cfn-exec-policy.json +27 -0
  10. package/docs/cdk-nextjs.drawio +147 -76
  11. package/docs/usage.xlsx +0 -0
  12. package/lib/constants.d.ts +2 -1
  13. package/lib/constants.js +2 -1
  14. package/lib/generated-structs/OptionalNextjsDistributionProps.d.ts +1 -1
  15. package/lib/generated-structs/OptionalNextjsDistributionProps.js +1 -1
  16. package/lib/index.d.ts +3 -2
  17. package/lib/index.js +8 -2
  18. package/lib/nextjs-api.d.ts +71 -0
  19. package/lib/nextjs-api.js +173 -0
  20. package/lib/nextjs-assets-deployment.js +2 -2
  21. package/lib/nextjs-build/nextjs-build.d.ts +1 -1
  22. package/lib/nextjs-build/nextjs-build.js +2 -2
  23. package/lib/nextjs-compute/nextjs-containers.js +1 -1
  24. package/lib/nextjs-compute/nextjs-functions.d.ts +3 -1
  25. package/lib/nextjs-compute/nextjs-functions.js +11 -10
  26. package/lib/nextjs-distribution.d.ts +3 -3
  27. package/lib/nextjs-distribution.js +3 -3
  28. package/lib/nextjs-file-system.js +1 -1
  29. package/lib/nextjs-post-deploy.js +1 -1
  30. package/lib/nextjs-static-assets.d.ts +0 -4
  31. package/lib/nextjs-static-assets.js +2 -2
  32. package/lib/nextjs-vpc.js +1 -1
  33. package/lib/root-constructs/nextjs-base-construct.d.ts +137 -0
  34. package/lib/root-constructs/nextjs-base-construct.js +112 -0
  35. package/lib/root-constructs/nextjs-global-containers.d.ts +5 -32
  36. package/lib/root-constructs/nextjs-global-containers.js +10 -83
  37. package/lib/root-constructs/nextjs-global-functions.d.ts +5 -32
  38. package/lib/root-constructs/nextjs-global-functions.js +12 -84
  39. package/lib/root-constructs/nextjs-regional-containers.d.ts +5 -21
  40. package/lib/root-constructs/nextjs-regional-containers.js +10 -71
  41. package/lib/root-constructs/nextjs-regional-functions.d.ts +37 -0
  42. package/lib/root-constructs/nextjs-regional-functions.js +58 -0
  43. package/package.json +6 -6
  44. package/lib/root-constructs/nextjs-base-overrides.d.ts +0 -30
  45. package/lib/root-constructs/nextjs-base-overrides.js +0 -3
  46. package/lib/root-constructs/nextjs-base-props.d.ts +0 -64
  47. package/lib/root-constructs/nextjs-base-props.js +0 -3
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.NextjsBaseConstruct = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const constructs_1 = require("constructs");
7
+ 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
+ const nextjs_file_system_1 = require("../nextjs-file-system");
11
+ const nextjs_post_deploy_1 = require("../nextjs-post-deploy");
12
+ const nextjs_static_assets_1 = require("../nextjs-static-assets");
13
+ const nextjs_vpc_1 = require("../nextjs-vpc");
14
+ const handle_deprecated_properties_1 = require("../utils/handle-deprecated-properties");
15
+ /**
16
+ * Base class for all Next.js root constructs
17
+ */
18
+ class NextjsBaseConstruct extends constructs_1.Construct {
19
+ constructor(scope, id, props, nextjsType) {
20
+ super(scope, id);
21
+ this.baseProps = (0, handle_deprecated_properties_1.handleDeprecatedProperties)(props);
22
+ this.nextjsType = nextjsType;
23
+ this.constructOverrides = this.getConstructOverrides(nextjsType);
24
+ this.nextjsBuild = this.createNextjsBuild();
25
+ this.nextjsStaticAssets = this.createNextjsStaticAssets();
26
+ this.nextjsVpc = this.createVpc();
27
+ this.nextjsFileSystem = this.createNextjsFileSystem();
28
+ this.nextjsAssetsDeployment = this.createNextjsAssetsDeployment();
29
+ this.nextjsPostDeploy = this.createNextjsPostDeploy();
30
+ }
31
+ /**
32
+ * Finds construct overrides (if present) on props for any `NextjsType`
33
+ */
34
+ getConstructOverrides(nextjsType) {
35
+ const nextjsTypeToKey = {
36
+ [constants_1.NextjsType.GLOBAL_CONTAINERS]: "nextjsGlobalContainers",
37
+ [constants_1.NextjsType.GLOBAL_FUNCTIONS]: "nextjsGlobalFunctions",
38
+ [constants_1.NextjsType.REGIONAL_CONTAINERS]: "nextjsRegionalContainers",
39
+ [constants_1.NextjsType.REGIONAL_FUNCTIONS]: "nextjsRegionalFunctions",
40
+ };
41
+ const key = nextjsTypeToKey[nextjsType];
42
+ const overrides = this.baseProps.overrides;
43
+ if (overrides && key in overrides) {
44
+ return overrides[key];
45
+ }
46
+ return;
47
+ }
48
+ createNextjsBuild() {
49
+ return new nextjs_build_1.NextjsBuild(this, "NextjsBuild", {
50
+ buildCommand: this.baseProps.buildCommand,
51
+ buildContext: this.baseProps.buildContext,
52
+ nextjsType: this.nextjsType,
53
+ relativePathToPackage: this.baseProps.relativePathToPackage,
54
+ overrides: this.baseProps.overrides?.nextjsBuild,
55
+ ...this.constructOverrides?.nextjsBuildProps,
56
+ });
57
+ }
58
+ createNextjsStaticAssets() {
59
+ return new nextjs_static_assets_1.NextjsStaticAssets(this, "NextjsStaticAssets", {
60
+ overrides: this.baseProps.overrides?.nextjsStaticAssets,
61
+ ...this.constructOverrides?.nextjsStaticAssetsProps,
62
+ });
63
+ }
64
+ createVpc() {
65
+ return new nextjs_vpc_1.NextjsVpc(this, "NextjsVpc", {
66
+ nextjsType: this.nextjsType,
67
+ overrides: this.baseProps.overrides?.nextjsVpc,
68
+ ...this.constructOverrides?.nextjsVpcProps,
69
+ });
70
+ }
71
+ createNextjsFileSystem() {
72
+ return new nextjs_file_system_1.NextjsFileSystem(this, "NextjsFileSystem", {
73
+ vpc: this.nextjsVpc.vpc,
74
+ overrides: this.baseProps.overrides?.nextjsFileSystem,
75
+ ...this.constructOverrides?.nextjsFileSystemProps,
76
+ });
77
+ }
78
+ createNextjsAssetsDeployment() {
79
+ return new nextjs_assets_deployment_1.NextjsAssetsDeployment(this, "NextjsAssetsDeployment", {
80
+ accessPoint: this.nextjsFileSystem.accessPoint,
81
+ basePath: this.baseProps.basePath,
82
+ buildId: this.nextjsBuild.buildId,
83
+ buildImageDigest: this.nextjsBuild.buildImageDigest,
84
+ dockerImageCode: this.nextjsBuild.imageForNextjsAssetsDeployment,
85
+ nextjsType: this.nextjsType,
86
+ overrides: this.baseProps.overrides?.nextjsAssetsDeployment,
87
+ relativePathToPackage: this.baseProps.relativePathToPackage,
88
+ staticAssetsBucket: this.nextjsStaticAssets.bucket,
89
+ vpc: this.nextjsVpc.vpc,
90
+ ...this.constructOverrides?.nextjsAssetsDeploymentProps,
91
+ });
92
+ }
93
+ createNextjsPostDeploy() {
94
+ const nextjsPostDeploy = new nextjs_post_deploy_1.NextjsPostDeploy(this, "NextjsPostDeploy", {
95
+ accessPoint: this.nextjsFileSystem.accessPoint,
96
+ buildId: this.nextjsBuild.buildId,
97
+ buildImageDigest: this.nextjsBuild.buildImageDigest,
98
+ overrides: this.baseProps.overrides?.nextjsPostDeploy,
99
+ relativePathToPackage: this.baseProps.relativePathToPackage,
100
+ staticAssetsBucket: this.nextjsStaticAssets.bucket,
101
+ vpc: this.nextjsVpc.vpc,
102
+ ...this.constructOverrides?.nextjsPostDeployProps,
103
+ });
104
+ // ensure NextjsAssetsDeployment finishes before NextjsPostDeploy
105
+ nextjsPostDeploy.node.addDependency(this.nextjsAssetsDeployment);
106
+ return nextjsPostDeploy;
107
+ }
108
+ }
109
+ exports.NextjsBaseConstruct = NextjsBaseConstruct;
110
+ _a = JSII_RTTI_SYMBOL_1;
111
+ NextjsBaseConstruct[_a] = { fqn: "cdk-nextjs.NextjsBaseConstruct", version: "0.4.3" };
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dGpzLWJhc2UtY29uc3RydWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Jvb3QtY29uc3RydWN0cy9uZXh0anMtYmFzZS1jb25zdHJ1Y3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwyQ0FBdUM7QUFDdkMsNENBQTBDO0FBTTFDLDBFQUdxQztBQUNyQywrREFHc0M7QUFDdEMsOERBRytCO0FBQy9CLDhEQUcrQjtBQUMvQixrRUFJaUM7QUFDakMsOENBQThEO0FBQzlELHdGQUFtRjtBQXdHbkY7O0dBRUc7QUFDSCxNQUFzQixtQkFBb0IsU0FBUSxzQkFBUztJQWV6RCxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixLQUErQixFQUMvQixVQUFzQjtRQUV0QixLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBQSx5REFBMEIsRUFBQyxLQUFLLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWpFLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDNUMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQzFELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUN0RCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7UUFDbEUsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ3hELENBQUM7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QXFCO1lBQzNELGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNO1lBQ2xELEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUc7WUFDdkIsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsMkJBQTJCO1NBQ3hELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxzQkFBc0I7UUFDNUIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLHFDQUFnQixDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRTtZQUN0RSxXQUFXLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVc7WUFDOUMsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTztZQUNqQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQjtZQUNuRCxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCO1lBQ3JELHFCQUFxQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMscUJBQXFCO1lBQzNELGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNO1lBQ2xELEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUc7WUFDdkIsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUscUJBQXFCO1NBQ2xELENBQUMsQ0FBQztRQUNILGlFQUFpRTtRQUNqRSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ2pFLE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQzs7QUF0SEgsa0RBdUhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IE5leHRqc1R5cGUgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBPcHRpb25hbE5leHRqc0Fzc2V0c0RlcGxveW1lbnRQcm9wcyB9IGZyb20gXCIuLi9nZW5lcmF0ZWQtc3RydWN0cy9PcHRpb25hbE5leHRqc0Fzc2V0c0RlcGxveW1lbnRQcm9wc1wiO1xuaW1wb3J0IHsgT3B0aW9uYWxOZXh0anNCdWlsZFByb3BzIH0gZnJvbSBcIi4uL2dlbmVyYXRlZC1zdHJ1Y3RzL09wdGlvbmFsTmV4dGpzQnVpbGRQcm9wc1wiO1xuaW1wb3J0IHsgT3B0aW9uYWxOZXh0anNGaWxlU3lzdGVtUHJvcHMgfSBmcm9tIFwiLi4vZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxOZXh0anNGaWxlU3lzdGVtUHJvcHNcIjtcbmltcG9ydCB7IE9wdGlvbmFsTmV4dGpzUG9zdERlcGxveVByb3BzIH0gZnJvbSBcIi4uL2dlbmVyYXRlZC1zdHJ1Y3RzL09wdGlvbmFsTmV4dGpzUG9zdERlcGxveVByb3BzXCI7XG5pbXBvcnQgeyBPcHRpb25hbE5leHRqc1ZwY1Byb3BzIH0gZnJvbSBcIi4uL2dlbmVyYXRlZC1zdHJ1Y3RzL09wdGlvbmFsTmV4dGpzVnBjUHJvcHNcIjtcbmltcG9ydCB7XG4gIE5leHRqc0Fzc2V0c0RlcGxveW1lbnQsXG4gIE5leHRqc0Fzc2V0RGVwbG95bWVudE92ZXJyaWRlcyxcbn0gZnJvbSBcIi4uL25leHRqcy1hc3NldHMtZGVwbG95bWVudFwiO1xuaW1wb3J0IHtcbiAgTmV4dGpzQnVpbGQsXG4gIE5leHRqc0J1aWxkT3ZlcnJpZGVzLFxufSBmcm9tIFwiLi4vbmV4dGpzLWJ1aWxkL25leHRqcy1idWlsZFwiO1xuaW1wb3J0IHtcbiAgTmV4dGpzRmlsZVN5c3RlbSxcbiAgTmV4dGpzRmlsZVN5c3RlbU92ZXJyaWRlcyxcbn0gZnJvbSBcIi4uL25leHRqcy1maWxlLXN5c3RlbVwiO1xuaW1wb3J0IHtcbiAgTmV4dGpzUG9zdERlcGxveSxcbiAgTmV4dGpzUG9zdERlcGxveU92ZXJyaWRlcyxcbn0gZnJvbSBcIi4uL25leHRqcy1wb3N0LWRlcGxveVwiO1xuaW1wb3J0IHtcbiAgTmV4dGpzU3RhdGljQXNzZXRzLFxuICBOZXh0anNTdGF0aWNBc3NldHNPdmVycmlkZXMsXG4gIE5leHRqc1N0YXRpY0Fzc2V0c1Byb3BzLFxufSBmcm9tIFwiLi4vbmV4dGpzLXN0YXRpYy1hc3NldHNcIjtcbmltcG9ydCB7IE5leHRqc1ZwYywgTmV4dGpzVnBjT3ZlcnJpZGVzIH0gZnJvbSBcIi4uL25leHRqcy12cGNcIjtcbmltcG9ydCB7IGhhbmRsZURlcHJlY2F0ZWRQcm9wZXJ0aWVzIH0gZnJvbSBcIi4uL3V0aWxzL2hhbmRsZS1kZXByZWNhdGVkLXByb3BlcnRpZXNcIjtcblxuLyoqXG4gKiBCYXNlIG92ZXJyaWRlcyBmb3IgdGhlIHByb3BzIHBhc3NlZCB0byBjb25zdHJ1Y3RzIHdpdGhpbiByb290L3RvcC1sZXZlbCBOZXh0LmpzIGNvbnN0cnVjdHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXh0anNCYXNlQ29uc3RydWN0T3ZlcnJpZGVzIHtcbiAgcmVhZG9ubHkgbmV4dGpzQnVpbGRQcm9wcz86IE9wdGlvbmFsTmV4dGpzQnVpbGRQcm9wcztcbiAgcmVhZG9ubHkgbmV4dGpzVnBjUHJvcHM/OiBPcHRpb25hbE5leHRqc1ZwY1Byb3BzO1xuICByZWFkb25seSBuZXh0anNGaWxlU3lzdGVtUHJvcHM/OiBPcHRpb25hbE5leHRqc0ZpbGVTeXN0ZW1Qcm9wcztcbiAgcmVhZG9ubHkgbmV4dGpzQXNzZXRzRGVwbG95bWVudFByb3BzPzogT3B0aW9uYWxOZXh0anNBc3NldHNEZXBsb3ltZW50UHJvcHM7XG4gIHJlYWRvbmx5IG5leHRqc1Bvc3REZXBsb3lQcm9wcz86IE9wdGlvbmFsTmV4dGpzUG9zdERlcGxveVByb3BzO1xuICByZWFkb25seSBuZXh0anNTdGF0aWNBc3NldHNQcm9wcz86IE5leHRqc1N0YXRpY0Fzc2V0c1Byb3BzO1xufVxuXG4vKipcbiAqIEJhc2Ugb3ZlcnJpZGVzIGZvciBjb25zdHJ1Y3RzIHNoYXJlZCBiZXR3ZWVuIGFsbCByb290L3RvcC1sZXZlbCBOZXh0LmpzIGNvbnN0cnVjdHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmV4dGpzQmFzZU92ZXJyaWRlcyB7XG4gIHJlYWRvbmx5IG5leHRqc0J1aWxkPzogTmV4dGpzQnVpbGRPdmVycmlkZXM7XG4gIHJlYWRvbmx5IG5leHRqc0ZpbGVTeXN0ZW0/OiBOZXh0anNGaWxlU3lzdGVtT3ZlcnJpZGVzO1xuICByZWFkb25seSBuZXh0anNWcGM/OiBOZXh0anNWcGNPdmVycmlkZXM7XG4gIHJlYWRvbmx5IG5leHRqc0Fzc2V0c0RlcGxveW1lbnQ/OiBOZXh0anNBc3NldERlcGxveW1lbnRPdmVycmlkZXM7XG4gIHJlYWRvbmx5IG5leHRqc1Bvc3REZXBsb3k/OiBOZXh0anNQb3N0RGVwbG95T3ZlcnJpZGVzO1xuICByZWFkb25seSBuZXh0anNTdGF0aWNBc3NldHM/OiBOZXh0anNTdGF0aWNBc3NldHNPdmVycmlkZXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV4dGpzQmFzZVByb3BzIHtcbiAgLyoqXG4gICAqIFByZWZpeCB0byB0aGUgVVJJIHBhdGggdGhlIGFwcCB3aWxsIGJlIHNlcnZlZCBhdC5cbiAgICogQGV4YW1wbGUgXCIvbXktYmFzZS1wYXRoXCJcbiAgICovXG4gIHJlYWRvbmx5IGJhc2VQYXRoPzogc3RyaW5nO1xuICAvKipcbiAgICogQ29tbWFuZCB0byBnZW5lcmF0ZSBvcHRpbWl6ZWQgdmVyc2lvbiBvZiB5b3VyIE5leHQuanMgYXBwIGluIGNvbnRhaW5lcjtcbiAgICogQGRlZmF1bHQgXCJucG0gcnVuIGJ1aWxkXCJcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkQ29tbWFuZD86IHN0cmluZztcbiAgLyoqXG4gICAqIFtCdWlsZCBjb250ZXh0XShodHRwczovL2RvY3MuZG9ja2VyLmNvbS9idWlsZC9idWlsZGluZy9jb250ZXh0LykgZm9yXG4gICAqIGBkb2NrZXIgYnVpbGRgLiBUaGlzIGRpcmVjdG9yeSBzaG91bGQgY29udGFpbiB5b3VyIGxvY2tmaWxlIChpLmUuXG4gICAqIHBucG0tbG9jay55YW1sKSBmb3IgeW91ciBOZXh0LmpzIGFwcC4gSWYgeW91J3JlIG5vdCBpbiBhIG1vbm9yZXBvLCB0aGVuXG4gICAqIHRoaXMgd2lsbCBiZSB0aGUgc2FtZSBkaXJlY3RvcnkgYXMgeW91ciBOZXh0LmpzIGFwcC4gSWYgeW91IGFyZSBpbiBhXG4gICAqIG1vbm9yZXBvLCB0aGVuIHRoaXMgdmFsdWUgc2hvdWxkIGJlIHRoZSByb290IG9mIHlvdXIgbW9ub3JlcG8uIFlvdSB0aGVuXG4gICAqIG11c3QgcGFzcyB0aGUgcmVsYXRpdmUgcGF0aCB0byB5b3VyIE5leHQuanMgYXBwIHZpYSB7QGxpbmsgTmV4dGpzQmFzZVByb3BzLnJlbGF0aXZlUGF0aFRvUGFja2FnZX1cbiAgICpcbiAgICogTm90ZSwgYnkgZGVmYXVsdCBjZGstbmV4dGpzJyBgYnVpbGRlci5Eb2NrZXJmaWxlYCBpcyB1c2VkIHRvIGJ1aWxkIHlvdXJcbiAgICogTmV4dC5qcyBhcHAuIFlvdSBjYW4gY3VzdG9taXplIHRoaXMgYnkgc3BlY2lmeWluZyBgb3ZlcnJpZGVzLntuZXh0anMuLi59Lm5leHRqc0J1aWxkUHJvcHMuYnVpbGRlckltYWdlUHJvcHMuZmlsZWAuXG4gICAqIElmIHlvdSBvdmVycmlkZSB0aGUgZGVmYXVsdCwgdGhlbiB5b3UgYXJlIHJlc3BvbnNpYmxlIGZvciBlbnN1cmluZyB0aGVcbiAgICogRG9ja2VyZmlsZSBpcyBpbiB0aGUgYnVpbGQgY29udGV4dCBkaXJlY3RvcnkgYmVmb3JlIGNkay1uZXh0anMgY29uc3RydWN0XG4gICAqIGlzIGluc3RhbnRpYXRlZC5cbiAgICogQGV4YW1wbGUgam9pbihpbXBvcnQubWV0YS5kaXJuYW1lLCBcIi4uXCIpIChtb25vcmVwbylcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkQ29udGV4dDogc3RyaW5nO1xuICAvKipcbiAgICogUGF0aCB0byBBUEkgUm91dGUgSGFuZGxlciB0aGF0IHJldHVybnMgSFRUUCAyMDAgdG8gZW5zdXJlIGNvbXB1dGUgaGVhbHRoLlxuICAgKiBAZXhhbXBsZSBcIi9hcGkvaGVhbHRoXCJcbiAgICogQGV4YW1wbGVcbiAgICogLy8gYXBpL2hlYWx0aC9yb3V0ZS50c1xuICAgKiBpbXBvcnQgeyBOZXh0UmVzcG9uc2UgfSBmcm9tIFwibmV4dC9zZXJ2ZXJcIjtcbiAgICpcbiAgICogZXhwb3J0IGZ1bmN0aW9uIEdFVCgpIHtcbiAgICogICByZXR1cm4gTmV4dFJlc3BvbnNlLmpzb24oXCJcIik7XG4gICAqIH1cbiAgICovXG4gIHJlYWRvbmx5IGhlYWx0aENoZWNrUGF0aDogc3RyaW5nO1xuICAvKipcbiAgICogVXNlIHRoaXMgaWYgYnVpbGRpbmcgaW4gbW9ub3JlcG8uIFRoaXMgaXMgdGhlIHJlbGF0aXZlIHBhdGggZnJvbVxuICAgKiB7QGxpbmsgTmV4dGpzQmFzZVByb3BzLmJ1aWxkQ29udGV4dH0gb3Igcm9vdCB3b3Jrc3BhY2UgdG8gbmVzdGVkIHBhY2thZ2VcbiAgICogY29udGFpbmluZyBOZXh0LmpzIGFwcC4gU2VlIGV4YW1wbGUgYmVsb3c6XG4gICAqXG4gICAqIExldCdzIHNheSB5b3UgaGF2ZSBhIG1vbm9yZXBvIHdpdGggdGhlIGZvbGxvd2luZyBmb2xkZXIgc3RydWN0dXJlOlxuICAgKiAtIG15LW1vbm9yZXBvL1xuICAgKiAgIC0gcGFja2FnZXMvXG4gICAqICAgICAtIHVpL1xuICAgKiAgICAgICAtIHBhY2thZ2UuanNvbiAobmVzdGVkKVxuICAgKiAgIC0gcGFja2FnZS5qc29uIChyb290KVxuICAgKlxuICAgKiBBbmQgeW91ciBOZXh0LmpzIGFwcCBkaXJlY3RvcnkgaXMgdGhlIHVpIGZvbGRlci4gVGhlbiB5b3Ugd291bGQgc2V0IHtAbGluayBOZXh0anNCYXNlUHJvcHMuYnVpbGRDb250ZXh0fVxuICAgKiB0byBgXCIvYWJzb2x1dGUvcGF0aC90by9teS1tb25vcmVwb1wiYCBhbmQge0BsaW5rIE5leHRqc0Jhc2VQcm9wcy5yZWxhdGl2ZVBhdGhUb1BhY2thZ2V9XG4gICAqIHRvIGBcIi4vcGFja2FnZXMvdWlcImAuXG4gICAqXG4gICAqIE5vdGUsIHNldHRpbmcge0BsaW5rIE5leHRqc0Jhc2VQcm9wcy5idWlsZENvbnRleHR9IHRvIHRoZSByb290IG9mIHlvdXJcbiAgICogbW9ub3JlcG8gd2lsbCBpbnZhbGlkYXRlIGNvbnRhaW5lciBydW50aW1lIChpLmUuIGRvY2tlcikgYnVpbGQgY2FjaGUgd2hlbiBhbnkgZmlsZSBpc1xuICAgKiBjaGFuZ2VkIGluIHlvdXIgbW9ub3JlcG8uIFRoaXMgaXMgc2xvd3MgZG93biBkZXBsb3ltZW50cy4gQ2hlY2tvdXQgaG93IHlvdVxuICAgKiBjYW4gdXNlIFt0dXJib10oaHR0cHM6Ly90dXJiby5idWlsZC8pIGluIFtEZXBsb3lpbmcgd2l0aCBEb2NrZXIgR3VpZGVdKGh0dHBzOi8vdHVyYm8uYnVpbGQvcmVwby9kb2NzL2hhbmRib29rL2RlcGxveWluZy13aXRoLWRvY2tlcilcbiAgICogaW4gdGhlIGNkay1uZXh0anMvZXhhbXBsZXMvdHVyYm8uXG4gICAqXG4gICAqIEBleGFtcGxlIFwiLi9wYWNrYWdlcy91aVwiXG4gICAqL1xuICByZWFkb25seSByZWxhdGl2ZVBhdGhUb1BhY2thZ2U/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgcmVsYXRpdmVQYXRoVG9QYWNrYWdlXG4gICAqL1xuICByZWFkb25seSByZWxhdGl2ZVBhdGhUb1dvcmtzcGFjZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXF1aXJlZCBiZWNhdXNlIGlmIHdlIGFkZCBgb3ZlcnJpZGVzYCBvbnRvIGBOZXh0anNCYXNlUHJvcHNgIHdlIGdldCBqc2lpXG4gKiBlcnJvcjogYEludGVyZmFjZSAuLi4gcmUtZGVjbGFyZXMgbWVtYmVyIFwib3ZlcnJpZGVzXCJgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmV4dGpzQmFzZUNvbnN0cnVjdFByb3BzIGV4dGVuZHMgTmV4dGpzQmFzZVByb3BzIHtcbiAgcmVhZG9ubHkgb3ZlcnJpZGVzPzogTmV4dGpzQmFzZU92ZXJyaWRlcztcbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBhbGwgTmV4dC5qcyByb290IGNvbnN0cnVjdHNcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5leHRqc0Jhc2VDb25zdHJ1Y3QgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBuZXh0anNCdWlsZDogTmV4dGpzQnVpbGQ7XG4gIG5leHRqc1N0YXRpY0Fzc2V0czogTmV4dGpzU3RhdGljQXNzZXRzO1xuICBuZXh0anNWcGM6IE5leHRqc1ZwYztcbiAgbmV4dGpzRmlsZVN5c3RlbTogTmV4dGpzRmlsZVN5c3RlbTtcbiAgbmV4dGpzQXNzZXRzRGVwbG95bWVudDogTmV4dGpzQXNzZXRzRGVwbG95bWVudDtcbiAgbmV4dGpzUG9zdERlcGxveTogTmV4dGpzUG9zdERlcGxveTtcblxuICBhYnN0cmFjdCBnZXQgdXJsKCk6IHN0cmluZztcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbmV4dGpzVHlwZTogTmV4dGpzVHlwZTtcbiAgLy8gdXNlIGJhc2VQcm9wcyBpbnN0ZWFkIG9mIHByb3BzIHNvIHRoYXQgY2hpbGQgY2xhc3NlcyBjYW4gdXNlIHByb3BzXG4gIHByb3RlY3RlZCByZWFkb25seSBiYXNlUHJvcHM6IE5leHRqc0Jhc2VDb25zdHJ1Y3RQcm9wcztcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbnN0cnVjdE92ZXJyaWRlcz86IE5leHRqc0Jhc2VDb25zdHJ1Y3RPdmVycmlkZXM7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBOZXh0anNCYXNlQ29uc3RydWN0UHJvcHMsXG4gICAgbmV4dGpzVHlwZTogTmV4dGpzVHlwZSxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICB0aGlzLmJhc2VQcm9wcyA9IGhhbmRsZURlcHJlY2F0ZWRQcm9wZXJ0aWVzKHByb3BzKTtcbiAgICB0aGlzLm5leHRqc1R5cGUgPSBuZXh0anNUeXBlO1xuICAgIHRoaXMuY29uc3RydWN0T3ZlcnJpZGVzID0gdGhpcy5nZXRDb25zdHJ1Y3RPdmVycmlkZXMobmV4dGpzVHlwZSk7XG5cbiAgICB0aGlzLm5leHRqc0J1aWxkID0gdGhpcy5jcmVhdGVOZXh0anNCdWlsZCgpO1xuICAgIHRoaXMubmV4dGpzU3RhdGljQXNzZXRzID0gdGhpcy5jcmVhdGVOZXh0anNTdGF0aWNBc3NldHMoKTtcbiAgICB0aGlzLm5leHRqc1ZwYyA9IHRoaXMuY3JlYXRlVnBjKCk7XG4gICAgdGhpcy5uZXh0anNGaWxlU3lzdGVtID0gdGhpcy5jcmVhdGVOZXh0anNGaWxlU3lzdGVtKCk7XG4gICAgdGhpcy5uZXh0anNBc3NldHNEZXBsb3ltZW50ID0gdGhpcy5jcmVhdGVOZXh0anNBc3NldHNEZXBsb3ltZW50KCk7XG4gICAgdGhpcy5uZXh0anNQb3N0RGVwbG95ID0gdGhpcy5jcmVhdGVOZXh0anNQb3N0RGVwbG95KCk7XG4gIH1cblxuICAvKipcbiAgICogRmluZHMgY29uc3RydWN0IG92ZXJyaWRlcyAoaWYgcHJlc2VudCkgb24gcHJvcHMgZm9yIGFueSBgTmV4dGpzVHlwZWBcbiAgICovXG4gIHByaXZhdGUgZ2V0Q29uc3RydWN0T3ZlcnJpZGVzKG5leHRqc1R5cGU6IE5leHRqc1R5cGUpIHtcbiAgICBjb25zdCBuZXh0anNUeXBlVG9LZXk6IFJlY29yZDxOZXh0anNUeXBlLCBzdHJpbmc+ID0ge1xuICAgICAgW05leHRqc1R5cGUuR0xPQkFMX0NPTlRBSU5FUlNdOiBcIm5leHRqc0dsb2JhbENvbnRhaW5lcnNcIixcbiAgICAgIFtOZXh0anNUeXBlLkdMT0JBTF9GVU5DVElPTlNdOiBcIm5leHRqc0dsb2JhbEZ1bmN0aW9uc1wiLFxuICAgICAgW05leHRqc1R5cGUuUkVHSU9OQUxfQ09OVEFJTkVSU106IFwibmV4dGpzUmVnaW9uYWxDb250YWluZXJzXCIsXG4gICAgICBbTmV4dGpzVHlwZS5SRUdJT05BTF9GVU5DVElPTlNdOiBcIm5leHRqc1JlZ2lvbmFsRnVuY3Rpb25zXCIsXG4gICAgfTtcbiAgICBjb25zdCBrZXkgPSBuZXh0anNUeXBlVG9LZXlbbmV4dGpzVHlwZV07XG4gICAgY29uc3Qgb3ZlcnJpZGVzID0gdGhpcy5iYXNlUHJvcHMub3ZlcnJpZGVzIGFzXG4gICAgICB8IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICAgICB8IHVuZGVmaW5lZDtcbiAgICBpZiAob3ZlcnJpZGVzICYmIGtleSBpbiBvdmVycmlkZXMpIHtcbiAgICAgIHJldHVybiBvdmVycmlkZXNba2V5XSBhcyBOZXh0anNCYXNlQ29uc3RydWN0T3ZlcnJpZGVzO1xuICAgIH1cbiAgICByZXR1cm47XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU5leHRqc0J1aWxkKCk6IE5leHRqc0J1aWxkIHtcbiAgICByZXR1cm4gbmV3IE5leHRqc0J1aWxkKHRoaXMsIFwiTmV4dGpzQnVpbGRcIiwge1xuICAgICAgYnVpbGRDb21tYW5kOiB0aGlzLmJhc2VQcm9wcy5idWlsZENvbW1hbmQsXG4gICAgICBidWlsZENvbnRleHQ6IHRoaXMuYmFzZVByb3BzLmJ1aWxkQ29udGV4dCxcbiAgICAgIG5leHRqc1R5cGU6IHRoaXMubmV4dGpzVHlwZSxcbiAgICAgIHJlbGF0aXZlUGF0aFRvUGFja2FnZTogdGhpcy5iYXNlUHJvcHMucmVsYXRpdmVQYXRoVG9QYWNrYWdlLFxuICAgICAgb3ZlcnJpZGVzOiB0aGlzLmJhc2VQcm9wcy5vdmVycmlkZXM/Lm5leHRqc0J1aWxkLFxuICAgICAgLi4udGhpcy5jb25zdHJ1Y3RPdmVycmlkZXM/Lm5leHRqc0J1aWxkUHJvcHMsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU5leHRqc1N0YXRpY0Fzc2V0cygpOiBOZXh0anNTdGF0aWNBc3NldHMge1xuICAgIHJldHVybiBuZXcgTmV4dGpzU3RhdGljQXNzZXRzKHRoaXMsIFwiTmV4dGpzU3RhdGljQXNzZXRzXCIsIHtcbiAgICAgIG92ZXJyaWRlczogdGhpcy5iYXNlUHJvcHMub3ZlcnJpZGVzPy5uZXh0anNTdGF0aWNBc3NldHMsXG4gICAgICAuLi50aGlzLmNvbnN0cnVjdE92ZXJyaWRlcz8ubmV4dGpzU3RhdGljQXNzZXRzUHJvcHMsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVZwYygpOiBOZXh0anNWcGMge1xuICAgIHJldHVybiBuZXcgTmV4dGpzVnBjKHRoaXMsIFwiTmV4dGpzVnBjXCIsIHtcbiAgICAgIG5leHRqc1R5cGU6IHRoaXMubmV4dGpzVHlwZSxcbiAgICAgIG92ZXJyaWRlczogdGhpcy5iYXNlUHJvcHMub3ZlcnJpZGVzPy5uZXh0anNWcGMsXG4gICAgICAuLi50aGlzLmNvbnN0cnVjdE92ZXJyaWRlcz8ubmV4dGpzVnBjUHJvcHMsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU5leHRqc0ZpbGVTeXN0ZW0oKTogTmV4dGpzRmlsZVN5c3RlbSB7XG4gICAgcmV0dXJuIG5ldyBOZXh0anNGaWxlU3lzdGVtKHRoaXMsIFwiTmV4dGpzRmlsZVN5c3RlbVwiLCB7XG4gICAgICB2cGM6IHRoaXMubmV4dGpzVnBjLnZwYyxcbiAgICAgIG92ZXJyaWRlczogdGhpcy5iYXNlUHJvcHMub3ZlcnJpZGVzPy5uZXh0anNGaWxlU3lzdGVtLFxuICAgICAgLi4udGhpcy5jb25zdHJ1Y3RPdmVycmlkZXM/Lm5leHRqc0ZpbGVTeXN0ZW1Qcm9wcyxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlTmV4dGpzQXNzZXRzRGVwbG95bWVudCgpOiBOZXh0anNBc3NldHNEZXBsb3ltZW50IHtcbiAgICByZXR1cm4gbmV3IE5leHRqc0Fzc2V0c0RlcGxveW1lbnQodGhpcywgXCJOZXh0anNBc3NldHNEZXBsb3ltZW50XCIsIHtcbiAgICAgIGFjY2Vzc1BvaW50OiB0aGlzLm5leHRqc0ZpbGVTeXN0ZW0uYWNjZXNzUG9pbnQsXG4gICAgICBiYXNlUGF0aDogdGhpcy5iYXNlUHJvcHMuYmFzZVBhdGgsXG4gICAgICBidWlsZElkOiB0aGlzLm5leHRqc0J1aWxkLmJ1aWxkSWQsXG4gICAgICBidWlsZEltYWdlRGlnZXN0OiB0aGlzLm5leHRqc0J1aWxkLmJ1aWxkSW1hZ2VEaWdlc3QsXG4gICAgICBkb2NrZXJJbWFnZUNvZGU6IHRoaXMubmV4dGpzQnVpbGQuaW1hZ2VGb3JOZXh0anNBc3NldHNEZXBsb3ltZW50LFxuICAgICAgbmV4dGpzVHlwZTogdGhpcy5uZXh0anNUeXBlLFxuICAgICAgb3ZlcnJpZGVzOiB0aGlzLmJhc2VQcm9wcy5vdmVycmlkZXM/Lm5leHRqc0Fzc2V0c0RlcGxveW1lbnQsXG4gICAgICByZWxhdGl2ZVBhdGhUb1BhY2thZ2U6IHRoaXMuYmFzZVByb3BzLnJlbGF0aXZlUGF0aFRvUGFja2FnZSxcbiAgICAgIHN0YXRpY0Fzc2V0c0J1Y2tldDogdGhpcy5uZXh0anNTdGF0aWNBc3NldHMuYnVja2V0LFxuICAgICAgdnBjOiB0aGlzLm5leHRqc1ZwYy52cGMsXG4gICAgICAuLi50aGlzLmNvbnN0cnVjdE92ZXJyaWRlcz8ubmV4dGpzQXNzZXRzRGVwbG95bWVudFByb3BzLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVOZXh0anNQb3N0RGVwbG95KCk6IE5leHRqc1Bvc3REZXBsb3kge1xuICAgIGNvbnN0IG5leHRqc1Bvc3REZXBsb3kgPSBuZXcgTmV4dGpzUG9zdERlcGxveSh0aGlzLCBcIk5leHRqc1Bvc3REZXBsb3lcIiwge1xuICAgICAgYWNjZXNzUG9pbnQ6IHRoaXMubmV4dGpzRmlsZVN5c3RlbS5hY2Nlc3NQb2ludCxcbiAgICAgIGJ1aWxkSWQ6IHRoaXMubmV4dGpzQnVpbGQuYnVpbGRJZCxcbiAgICAgIGJ1aWxkSW1hZ2VEaWdlc3Q6IHRoaXMubmV4dGpzQnVpbGQuYnVpbGRJbWFnZURpZ2VzdCxcbiAgICAgIG92ZXJyaWRlczogdGhpcy5iYXNlUHJvcHMub3ZlcnJpZGVzPy5uZXh0anNQb3N0RGVwbG95LFxuICAgICAgcmVsYXRpdmVQYXRoVG9QYWNrYWdlOiB0aGlzLmJhc2VQcm9wcy5yZWxhdGl2ZVBhdGhUb1BhY2thZ2UsXG4gICAgICBzdGF0aWNBc3NldHNCdWNrZXQ6IHRoaXMubmV4dGpzU3RhdGljQXNzZXRzLmJ1Y2tldCxcbiAgICAgIHZwYzogdGhpcy5uZXh0anNWcGMudnBjLFxuICAgICAgLi4udGhpcy5jb25zdHJ1Y3RPdmVycmlkZXM/Lm5leHRqc1Bvc3REZXBsb3lQcm9wcyxcbiAgICB9KTtcbiAgICAvLyBlbnN1cmUgTmV4dGpzQXNzZXRzRGVwbG95bWVudCBmaW5pc2hlcyBiZWZvcmUgTmV4dGpzUG9zdERlcGxveVxuICAgIG5leHRqc1Bvc3REZXBsb3kubm9kZS5hZGREZXBlbmRlbmN5KHRoaXMubmV4dGpzQXNzZXRzRGVwbG95bWVudCk7XG4gICAgcmV0dXJuIG5leHRqc1Bvc3REZXBsb3k7XG4gIH1cbn1cbiJdfQ==
@@ -1,40 +1,25 @@
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 { OptionalNextjsContainersProps } from "../generated-structs/OptionalNextjsContainersProps";
6
4
  import { OptionalNextjsDistributionProps } from "../generated-structs/OptionalNextjsDistributionProps";
7
- import { NextjsAssetsDeployment } from "../nextjs-assets-deployment";
8
- import { NextjsBuild } from "../nextjs-build/nextjs-build";
9
5
  import { NextjsContainers, NextjsContainersOverrides } from "../nextjs-compute/nextjs-containers";
10
6
  import { NextjsDistribution, NextjsDistributionOverrides } from "../nextjs-distribution";
11
- import { NextjsFileSystem } from "../nextjs-file-system";
12
- import { NextjsPostDeploy } from "../nextjs-post-deploy";
13
- import { NextjsStaticAssets, NextjsStaticAssetsOverrides, NextjsStaticAssetsProps } from "../nextjs-static-assets";
14
- import { NextjsVpc } from "../nextjs-vpc";
15
- export interface NextjsGlobalContainersConstructOverrides extends BaseNextjsConstructOverrides {
7
+ import { NextjsBaseConstructOverrides, NextjsBaseOverrides, NextjsBaseConstruct, NextjsBaseProps } from "./nextjs-base-construct";
8
+ export interface NextjsGlobalContainersConstructOverrides extends NextjsBaseConstructOverrides {
16
9
  readonly nextjsContainersProps?: OptionalNextjsContainersProps;
17
10
  readonly nextjsDistributionProps?: OptionalNextjsDistributionProps;
18
- readonly nextjsStaticAssetsProps?: NextjsStaticAssetsProps;
19
11
  }
20
12
  /**
21
13
  * Overrides for `NextjsGlobalContainers`. Overrides are lower level than
22
14
  * props and are passed directly to CDK Constructs giving you more control. It's
23
15
  * recommended to use caution and review source code so you know how they're used.
24
16
  */
25
- export interface NextjsGlobalContainersOverrides extends BaseNextjsOverrides {
17
+ export interface NextjsGlobalContainersOverrides extends NextjsBaseOverrides {
26
18
  readonly nextjsGlobalContainers?: NextjsGlobalContainersConstructOverrides;
27
19
  readonly nextjsContainers?: NextjsContainersOverrides;
28
20
  readonly nextjsDistribution?: NextjsDistributionOverrides;
29
- readonly nextjsStaticAssets?: NextjsStaticAssetsOverrides;
30
21
  }
31
22
  export interface NextjsGlobalContainersProps extends NextjsBaseProps {
32
- /**
33
- * Prefix to the URI path the app will be served at. Especially useful when
34
- * passing in your own `distribution`.
35
- * @example "/my-base-path"
36
- */
37
- readonly basePath?: string;
38
23
  /**
39
24
  * Bring your own distribution. Can be used with `basePath` to host multiple
40
25
  * apps on the same CloudFront distribution.
@@ -51,24 +36,12 @@ export interface NextjsGlobalContainersProps extends NextjsBaseProps {
51
36
  * as Content Delivery Network (CDN) for global distribution and [AWS Fargate](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html)
52
37
  * for containers.
53
38
  */
54
- export declare class NextjsGlobalContainers extends Construct {
55
- nextjsBuild: NextjsBuild;
56
- nextjsStaticAssets: NextjsStaticAssets;
57
- nextjsVpc: NextjsVpc;
58
- nextjsFileSystem: NextjsFileSystem;
59
- nextjsAssetsDeployment: NextjsAssetsDeployment;
39
+ export declare class NextjsGlobalContainers extends NextjsBaseConstruct {
60
40
  nextjsContainers: NextjsContainers;
61
41
  nextjsDistribution: NextjsDistribution;
62
- nextjsPostDeploy: NextjsPostDeploy;
63
- private nextjsType;
42
+ get url(): string;
64
43
  private props;
65
44
  constructor(scope: Construct, id: string, props: NextjsGlobalContainersProps);
66
- private createNextjsBuild;
67
- private createNextjsStaticAssets;
68
- private createVpc;
69
- private createNextjsFileSystem;
70
- private createNextjsAssetsDeployment;
71
45
  private createNextjsContainers;
72
46
  private createNextjsDistribution;
73
- private createNextjsPostDeploy;
74
47
  }
@@ -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.1" };
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.3" };
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
  }