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.
- package/.jsii +1254 -733
- package/API.md +2458 -1108
- package/README.md +220 -7
- package/docs/1k-concurrent-users-executions.png +0 -0
- package/docs/cdk-nextjs-NextjsGlobalContainers.png +0 -0
- package/docs/cdk-nextjs-NextjsGlobalFunctions.png +0 -0
- package/docs/cdk-nextjs-NextjsRegionalContainers.png +0 -0
- package/docs/cdk-nextjs-NextjsRegionalFunctions.png +0 -0
- package/docs/cdk-nextjs-cfn-exec-policy.json +27 -0
- package/docs/cdk-nextjs.drawio +147 -76
- package/docs/usage.xlsx +0 -0
- package/lib/constants.d.ts +2 -1
- package/lib/constants.js +2 -1
- package/lib/generated-structs/OptionalNextjsDistributionProps.d.ts +1 -1
- package/lib/generated-structs/OptionalNextjsDistributionProps.js +1 -1
- package/lib/index.d.ts +3 -2
- package/lib/index.js +8 -2
- package/lib/nextjs-api.d.ts +71 -0
- package/lib/nextjs-api.js +173 -0
- package/lib/nextjs-assets-deployment.js +2 -2
- package/lib/nextjs-build/nextjs-build.d.ts +1 -1
- package/lib/nextjs-build/nextjs-build.js +2 -2
- package/lib/nextjs-compute/nextjs-containers.js +1 -1
- package/lib/nextjs-compute/nextjs-functions.d.ts +3 -1
- package/lib/nextjs-compute/nextjs-functions.js +11 -10
- package/lib/nextjs-distribution.d.ts +3 -3
- package/lib/nextjs-distribution.js +3 -3
- package/lib/nextjs-file-system.js +1 -1
- package/lib/nextjs-post-deploy.js +1 -1
- package/lib/nextjs-static-assets.d.ts +0 -4
- package/lib/nextjs-static-assets.js +2 -2
- package/lib/nextjs-vpc.js +1 -1
- package/lib/root-constructs/nextjs-base-construct.d.ts +137 -0
- package/lib/root-constructs/nextjs-base-construct.js +112 -0
- package/lib/root-constructs/nextjs-global-containers.d.ts +5 -32
- package/lib/root-constructs/nextjs-global-containers.js +10 -83
- package/lib/root-constructs/nextjs-global-functions.d.ts +5 -32
- package/lib/root-constructs/nextjs-global-functions.js +12 -84
- package/lib/root-constructs/nextjs-regional-containers.d.ts +5 -21
- package/lib/root-constructs/nextjs-regional-containers.js +10 -71
- package/lib/root-constructs/nextjs-regional-functions.d.ts +37 -0
- package/lib/root-constructs/nextjs-regional-functions.js +58 -0
- package/package.json +6 -6
- package/lib/root-constructs/nextjs-base-overrides.d.ts +0 -30
- package/lib/root-constructs/nextjs-base-overrides.js +0 -3
- package/lib/root-constructs/nextjs-base-props.d.ts +0 -64
- 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 {
|
|
12
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
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 {
|
|
11
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
}
|