cdk-nextjs 0.3.11 → 0.4.1
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 +1248 -748
- package/API.md +1033 -531
- package/README.md +1 -2
- package/assets/lambdas/assets-deployment/assets-deployment.lambda/assets-deployment.Dockerfile +12 -8
- package/assets/lambdas/assets-deployment/assets-deployment.lambda/index.js +67 -56
- package/assets/lambdas/post-deploy/post-deploy.lambda/index.js +246 -0
- package/docs/breaking-changes.md +9 -0
- package/docs/notes.md +170 -20
- package/lib/constants.d.ts +32 -0
- package/lib/constants.js +38 -0
- package/lib/generated-structs/OptionalCustomResourceProps.d.ts +104 -0
- package/lib/generated-structs/OptionalCustomResourceProps.js +3 -0
- package/lib/generated-structs/OptionalDockerImageAssetProps.d.ts +21 -0
- package/lib/generated-structs/OptionalDockerImageAssetProps.js +1 -1
- package/lib/generated-structs/OptionalNextjsAssetsDeploymentProps.d.ts +4 -3
- package/lib/generated-structs/OptionalNextjsAssetsDeploymentProps.js +1 -1
- package/lib/generated-structs/OptionalNextjsBuildProps.d.ts +1 -1
- package/lib/generated-structs/OptionalNextjsBuildProps.js +1 -1
- package/lib/generated-structs/OptionalNextjsContainersProps.d.ts +3 -3
- package/lib/generated-structs/OptionalNextjsContainersProps.js +1 -1
- package/lib/generated-structs/OptionalNextjsPostDeployProps.d.ts +42 -0
- package/lib/generated-structs/OptionalNextjsPostDeployProps.js +3 -0
- package/lib/generated-structs/OptionalPostDeployCustomResourceProperties.d.ts +41 -0
- package/lib/generated-structs/OptionalPostDeployCustomResourceProperties.js +4 -0
- package/lib/index.d.ts +6 -5
- package/lib/index.js +6 -8
- package/lib/lambdas/assets-deployment/assets-deployment.lambda.js +5 -23
- package/lib/lambdas/assets-deployment/fs-to-fs.js +18 -3
- package/lib/lambdas/assets-deployment/fs-to-s3.d.ts +8 -2
- package/lib/lambdas/assets-deployment/fs-to-s3.js +14 -8
- package/lib/lambdas/post-deploy/create-invalidation.d.ts +2 -0
- package/lib/lambdas/post-deploy/create-invalidation.js +19 -0
- package/lib/lambdas/post-deploy/post-deploy-function.d.ts +13 -0
- package/lib/lambdas/post-deploy/post-deploy-function.js +22 -0
- package/lib/lambdas/post-deploy/post-deploy.lambda.d.ts +9 -0
- package/lib/lambdas/post-deploy/post-deploy.lambda.js +56 -0
- package/lib/lambdas/post-deploy/prune-fs.d.ts +10 -0
- package/lib/lambdas/post-deploy/prune-fs.js +33 -0
- package/lib/lambdas/post-deploy/prune-s3.d.ts +15 -0
- package/lib/lambdas/post-deploy/prune-s3.js +101 -0
- package/lib/lambdas/utils.js +35 -0
- package/lib/nextjs-assets-deployment.d.ts +15 -51
- package/lib/nextjs-assets-deployment.js +27 -25
- package/lib/nextjs-build/builder.Dockerfile +12 -8
- package/lib/nextjs-build/cdk-nextjs-cache-handler.cjs +63 -0
- package/lib/nextjs-build/cdk-nextjs-cache-handler.d.ts +21 -0
- package/lib/nextjs-build/cdk-nextjs-cache-handler.js +49 -0
- package/lib/nextjs-build/global-containers.Dockerfile +29 -19
- package/lib/nextjs-build/global-functions.Dockerfile +30 -24
- package/lib/nextjs-build/nextjs-build.d.ts +51 -26
- package/lib/nextjs-build/nextjs-build.js +108 -88
- package/lib/nextjs-build/regional-containers.Dockerfile +30 -20
- package/lib/nextjs-compute/nextjs-compute-base-props.d.ts +0 -1
- package/lib/nextjs-compute/nextjs-compute-base-props.js +1 -1
- package/lib/nextjs-compute/nextjs-containers.d.ts +2 -1
- package/lib/nextjs-compute/nextjs-containers.js +7 -5
- package/lib/nextjs-compute/nextjs-functions.d.ts +1 -0
- package/lib/nextjs-compute/nextjs-functions.js +8 -11
- package/lib/nextjs-distribution.d.ts +1 -1
- package/lib/nextjs-distribution.js +4 -4
- package/lib/nextjs-file-system.js +1 -1
- package/lib/nextjs-post-deploy.d.ts +101 -0
- package/lib/nextjs-post-deploy.js +78 -0
- package/lib/nextjs-static-assets.js +1 -1
- package/lib/nextjs-vpc.d.ts +1 -1
- package/lib/nextjs-vpc.js +4 -4
- package/lib/root-constructs/nextjs-base-overrides.d.ts +4 -0
- package/lib/root-constructs/nextjs-base-overrides.js +1 -1
- package/lib/root-constructs/nextjs-base-props.d.ts +15 -7
- package/lib/root-constructs/nextjs-base-props.js +1 -1
- package/lib/root-constructs/nextjs-global-containers.d.ts +8 -8
- package/lib/root-constructs/nextjs-global-containers.js +25 -15
- package/lib/root-constructs/nextjs-global-functions.d.ts +8 -11
- package/lib/root-constructs/nextjs-global-functions.js +25 -25
- package/lib/root-constructs/nextjs-regional-containers.d.ts +8 -0
- package/lib/root-constructs/nextjs-regional-containers.js +26 -9
- package/lib/utils/get-architecture.d.ts +2 -0
- package/lib/utils/get-architecture.js +8 -0
- package/lib/utils/handle-deprecated-properties.d.ts +7 -0
- package/lib/utils/handle-deprecated-properties.js +14 -0
- package/package.json +17 -19
- package/assets/lambdas/revalidate/revalidate.lambda/index.js +0 -67
- package/lib/common.d.ts +0 -25
- package/lib/common.js +0 -30
- package/lib/generated-structs/OptionalNextjsInvalidationProps.d.ts +0 -11
- package/lib/generated-structs/OptionalNextjsInvalidationProps.js +0 -3
- package/lib/lambdas/assets-deployment/prune-s3.d.ts +0 -15
- package/lib/lambdas/assets-deployment/prune-s3.js +0 -42
- package/lib/lambdas/assets-deployment/s3.d.ts +0 -2
- package/lib/lambdas/assets-deployment/s3.js +0 -7
- package/lib/lambdas/assets-deployment/utils.js +0 -35
- package/lib/lambdas/revalidate/revalidate-function.d.ts +0 -13
- package/lib/lambdas/revalidate/revalidate-function.js +0 -22
- package/lib/lambdas/revalidate/revalidate.lambda.d.ts +0 -2
- package/lib/lambdas/revalidate/revalidate.lambda.js +0 -53
- package/lib/nextjs-build/add-cache-handler.d.ts +0 -1
- package/lib/nextjs-build/add-cache-handler.js +0 -23
- package/lib/nextjs-build/add-cache-handler.mjs +0 -18
- package/lib/nextjs-build/cache-handler.cjs +0 -21878
- package/lib/nextjs-build/cache-handler.d.ts +0 -6
- package/lib/nextjs-build/cache-handler.js +0 -26
- package/lib/nextjs-invalidation.d.ts +0 -19
- package/lib/nextjs-invalidation.js +0 -52
- package/lib/nextjs-revalidation.d.ts +0 -30
- package/lib/nextjs-revalidation.js +0 -65
- /package/lib/lambdas/{assets-deployment/utils.d.ts → utils.d.ts} +0 -0
|
@@ -3,12 +3,13 @@ var _a;
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.NextjsContainers = void 0;
|
|
5
5
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const posix_1 = require("node:path/posix");
|
|
6
7
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
7
8
|
const aws_ecs_1 = require("aws-cdk-lib/aws-ecs");
|
|
8
9
|
const aws_ecs_patterns_1 = require("aws-cdk-lib/aws-ecs-patterns");
|
|
9
10
|
const aws_elasticloadbalancingv2_1 = require("aws-cdk-lib/aws-elasticloadbalancingv2");
|
|
10
11
|
const constructs_1 = require("constructs");
|
|
11
|
-
const
|
|
12
|
+
const constants_1 = require("../constants");
|
|
12
13
|
/**
|
|
13
14
|
* Next.js load balanced via Application Load Balancer with containers via AWS
|
|
14
15
|
* Fargate.
|
|
@@ -59,7 +60,7 @@ class NextjsContainers extends constructs_1.Construct {
|
|
|
59
60
|
*/
|
|
60
61
|
protocolVersion: aws_elasticloadbalancingv2_1.ApplicationProtocolVersion.HTTP1,
|
|
61
62
|
// if NextjsType.GLOBAL_CONTAINERS then we use VPC Origin Access which allows putting ALB in private subnet
|
|
62
|
-
publicLoadBalancer: this.props.nextjsType ===
|
|
63
|
+
publicLoadBalancer: this.props.nextjsType === constants_1.NextjsType.REGIONAL_CONTAINERS,
|
|
63
64
|
runtimePlatform: {
|
|
64
65
|
cpuArchitecture,
|
|
65
66
|
},
|
|
@@ -78,6 +79,7 @@ class NextjsContainers extends constructs_1.Construct {
|
|
|
78
79
|
});
|
|
79
80
|
// required or health checks fail
|
|
80
81
|
albFargateService.taskDefinition.defaultContainer?.addEnvironment("HOSTNAME", "0.0.0.0");
|
|
82
|
+
albFargateService.taskDefinition.defaultContainer?.addEnvironment(constants_1.CDK_NEXTJS_SERVER_DIST_DIR_ENV_VAR_NAME, (0, posix_1.join)(constants_1.MOUNT_PATH, this.props.buildId, constants_1.SERVER_DIST_PATH));
|
|
81
83
|
// speed up deployments by shortening deregistration delay
|
|
82
84
|
// https://docs.aws.amazon.com/AmazonECS/latest/bestpracticesguide/load-balancer-connection-draining.html
|
|
83
85
|
// TODO: document that this should be increased if long lived connections are expected
|
|
@@ -131,7 +133,7 @@ class NextjsContainers extends constructs_1.Construct {
|
|
|
131
133
|
});
|
|
132
134
|
container?.addMountPoints({
|
|
133
135
|
sourceVolume: volumeName,
|
|
134
|
-
containerPath:
|
|
136
|
+
containerPath: constants_1.MOUNT_PATH,
|
|
135
137
|
readOnly: false,
|
|
136
138
|
});
|
|
137
139
|
}
|
|
@@ -142,5 +144,5 @@ class NextjsContainers extends constructs_1.Construct {
|
|
|
142
144
|
}
|
|
143
145
|
exports.NextjsContainers = NextjsContainers;
|
|
144
146
|
_a = JSII_RTTI_SYMBOL_1;
|
|
145
|
-
NextjsContainers[_a] = { fqn: "cdk-nextjs.NextjsContainers", version: "0.
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dGpzLWNvbnRhaW5lcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmV4dGpzLWNvbXB1dGUvbmV4dGpzLWNvbnRhaW5lcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBdUM7QUFFdkMsaURBUTZCO0FBQzdCLG1FQUdzQztBQUV0Qyx1RkFBb0Y7QUFDcEYsMkNBQXVDO0FBRXZDLHNDQUF1QztBQWtCdkM7OztHQUdHO0FBQ0gsTUFBYSxnQkFBaUIsU0FBUSxzQkFBUztJQU83QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTRCO1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUMxQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDdkQsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixNQUFNLE9BQU8sR0FBRyxJQUFJLGlCQUFPLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRTtZQUM5Qyw4QkFBOEIsRUFBRSxJQUFJO1lBQ3BDLG1CQUFtQixFQUFFLDJCQUFpQixDQUFDLE9BQU87WUFDOUMsR0FBRyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRztZQUNuQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLGVBQWU7U0FDekMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUNPLHNCQUFzQjtRQUM1QixJQUFJ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QkFBbUIsRUFBRSxDQUFDO0lBQ3BGLENBQUM7O0FBcEpILDRDQXFKQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBEb2NrZXJJbWFnZUFzc2V0IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lY3ItYXNzZXRzXCI7XG5pbXBvcnQge1xuICBBd3NMb2dEcml2ZXJNb2RlLFxuICBDbHVzdGVyLFxuICBDb250YWluZXJJbWFnZSxcbiAgQ29udGFpbmVySW5zaWdodHMsXG4gIENwdUFyY2hpdGVjdHVyZSxcbiAgSGVhbHRoQ2hlY2ssXG4gIExvZ0RyaXZlcnMsXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWNzXCI7XG5pbXBvcnQge1xuICBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZEZhcmdhdGVTZXJ2aWNlLFxuICBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZEZhcmdhdGVTZXJ2aWNlUHJvcHMsXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWNzLXBhdHRlcm5zXCI7XG5pbXBvcnQgeyBGaWxlU3lzdGVtIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lZnNcIjtcbmltcG9ydCB7IEFwcGxpY2F0aW9uUHJvdG9jb2xWZXJzaW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lbGFzdGljbG9hZGJhbGFuY2luZ3YyXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgTmV4dGpzQ29tcHV0ZUJhc2VQcm9wcyB9IGZyb20gXCIuL25leHRqcy1jb21wdXRlLWJhc2UtcHJvcHNcIjtcbmltcG9ydCB7IE5leHRqc1R5cGUgfSBmcm9tIFwiLi4vY29tbW9uXCI7XG5pbXBvcnQgeyBPcHRpb25hbEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VkVGFza0ltYWdlT3B0aW9ucyB9IGZyb20gXCIuLi9nZW5lcmF0ZWQtc3RydWN0cy9PcHRpb25hbEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VkVGFza0ltYWdlT3B0aW9uc1wiO1xuaW1wb3J0IHsgT3B0aW9uYWxDbHVzdGVyUHJvcHMgfSBmcm9tIFwiLi4vZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxDbHVzdGVyUHJvcHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBOZXh0anNDb250YWluZXJzT3ZlcnJpZGVzIHtcbiAgcmVhZG9ubHkgZWNzQ2x1c3RlclByb3BzPzogT3B0aW9uYWxDbHVzdGVyUHJvcHM7XG4gIHJlYWRvbmx5IGFsYkZhcmdhdGVTZXJ2aWNlUHJvcHM/OiBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZEZhcmdhdGVTZXJ2aWNlUHJvcHM7XG4gIHJlYWRvbmx5IHRhc2tJbWFnZU9wdGlvbnM/OiBPcHRpb25hbEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VkVGFza0ltYWdlT3B0aW9ucztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZXh0anNDb250YWluZXJzUHJvcHMgZXh0ZW5kcyBOZXh0anNDb21wdXRlQmFzZVByb3BzIHtcbiAgcmVhZG9ubHkgZG9ja2VySW1hZ2VBc3NldDogRG9ja2VySW1hZ2VBc3NldDtcbiAgcmVhZG9ubHkgZmlsZVN5c3RlbTogRmlsZVN5c3RlbTtcbiAgcmVhZG9ubHkgbmV4dGpzVHlwZTogTmV4dGpzVHlwZTtcbiAgcmVhZG9ubHkgb3ZlcnJpZGVzPzogTmV4dGpzQ29udGFpbmVyc092ZXJyaWRlcztcbiAgcmVhZG9ubHkgcmVsYXRpdmVFbnRyeXBvaW50UGF0aDogc3RyaW5nO1xufVxuXG4vKipcbiAqIE5leHQuanMgbG9hZCBiYWxhbmNlZCB2aWEgQXBwbGljYXRpb24gTG9hZCBCYWxhbmNlciB3aXRoIGNvbnRhaW5lcnMgdmlhIEFXU1xuICogRmFyZ2F0ZS5cbiAqL1xuZXhwb3J0IGNsYXNzIE5leHRqc0NvbnRhaW5lcnMgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBhbGJGYXJnYXRlU2VydmljZTogQXBwbGljYXRpb25Mb2FkQmFsYW5jZWRGYXJnYXRlU2VydmljZTtcbiAgZWNzQ2x1c3RlcjogQ2x1c3RlcjtcbiAgdXJsOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBwcm9wczogTmV4dGpzQ29udGFpbmVyc1Byb3BzO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBOZXh0anNDb250YWluZXJzUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgICB0aGlzLmVjc0NsdXN0ZXIgPSB0aGlzLmNyZWF0ZUVjc0NsdXN0ZXIoKTtcbiAgICB0aGlzLmFsYkZhcmdhdGVTZXJ2aWNlID0gdGhpcy5jcmVhdGVBbGJGYXJnYXRlU2V2aWNlKCk7XG4gICAgdGhpcy5jb25maWd1cmVIZWFsdGhDaGVjaygpO1xuICAgIHRoaXMuYXR0YWNoRmlsZVN5c3RlbSgpO1xuICAgIHRoaXMudXJsID0gdGhpcy5nZXRVcmwoKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRWNzQ2x1c3RlcigpOiBDbHVzdGVyIHtcbiAgICBjb25zdCBjbHVzdGVyID0gbmV3IENsdXN0ZXIodGhpcywgXCJFY3NDbHVzdGVyXCIsIHtcbiAgICAgIGVuYWJsZUZhcmdhdGVDYXBhY2l0eVByb3ZpZGVyczogdHJ1ZSxcbiAgICAgIGNvbnRhaW5lckluc2lnaHRzVjI6IENvbnRhaW5lckluc2lnaHRzLkVOQUJMRUQsXG4gICAgICB2cGM6IHRoaXMucHJvcHMudnBjLFxuICAgICAgLi4udGhpcy5wcm9wcy5vdmVycmlkZXM/LmVjc0NsdXN0ZXJQcm9wcyxcbiAgICB9KTtcbiAgICByZXR1cm4gY2x1c3RlcjtcbiAgfVxuICBwcml2YXRlIGNyZWF0ZUFsYkZhcmdhdGVTZXZpY2UoKTogQXBwbGljYXRpb25Mb2FkQmFsYW5jZWRGYXJnYXRlU2VydmljZSB7XG4gICAgbGV0IGNwdUFyY2hpdGVjdHVyZTogQ3B1QXJjaGl0ZWN0dXJlIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIGlmIChwcm9jZXNzLmFyY2ggPT09IFwieDY0XCIpIHtcbiAgICAgIGNwdUFyY2hpdGVjdHVyZSA9IENwdUFyY2hpdGVjdHVyZS5YODZfNjQ7XG4gICAgfSBlbHNlIGlmIChwcm9jZXNzLmFyY2ggPT09IFwiYXJtNjRcIikge1xuICAgICAgY3B1QXJjaGl0ZWN0dXJlID0gQ3B1QXJjaGl0ZWN0dXJlLkFSTTY0O1xuICAgIH1cbiAgICBjb25zdCBhbGJGYXJnYXRlU2VydmljZSA9IG5ldyBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZEZhcmdhdGVTZXJ2aWNlKFxuICAgICAgdGhpcyxcbiAgICAgIFwiQWxiRmFyZ2F0ZVNlcnZpY2VcIixcbiAgICAgIHtcbiAgICAgICAgY2lyY3VpdEJyZWFrZXI6IHsgcm9sbGJhY2s6IHRydWUsIGVuYWJsZTogdHJ1ZSB9LFxuICAgICAgICBjbHVzdGVyOiB0aGlzLmVjc0NsdXN0ZXIsXG4gICAgICAgIGNwdTogMTAyNCxcbiAgICAgICAgaGVhbHRoQ2hlY2tHcmFjZVBlcmlvZDogRHVyYXRpb24uc2Vjb25kcygxMCksXG4gICAgICAgIG1heEhlYWx0aHlQZXJjZW50OiAyMDAsXG4gICAgICAgIG1lbW9yeUxpbWl0TWlCOiAyMDQ4LFxuICAgICAgICBtaW5IZWFsdGh5UGVyY2VudDogMTAwLCAvLyBtYWludGFpbiBzZXJ2aWNlIGF2YWlsYWJpbGl0eSBkdXJpbmcgZGVwbG95bWVudFxuICAgICAgICAvKlxuICAgICAgICAgIFRoaXMgcHJvdG9jb2wgdmVyc2lvbiBpcyBmb3IgdGhlIHRhcmdldCBncm91cCAoRmFyZ2F0ZSksIG5vdCB0aGUgQUxCXG4gICAgICAgICAgTGlzdGVuZXIuIEZyb20gZG9jcywgXCJBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VycyBwcm92aWRlIG5hdGl2ZSBzdXBwb3J0XG4gICAgICAgICAgZm9yIEhUVFAvMiB3aXRoIEhUVFBTIGxpc3RlbmVyc1wiLiBTZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2VsYXN0aWNsb2FkYmFsYW5jaW5nL2xhdGVzdC9hcHBsaWNhdGlvbi9sb2FkLWJhbGFuY2VyLWxpc3RlbmVycy5odG1sXG4gICAgICAgICAgTmV4dC5qcyBkZWZhdWx0IHNlcnZlciBkb2VzIG5vdCBzdXBwb3J0IEhUVFAvMiBhcyBpdCdzIHJlY29tbWVuZGVkXG4gICAgICAgICAgdG8gcHJveHkgeW91ciBOZXh0LmpzIHNlcnZlciB3aGljaCB3ZSdyZSBkb2luZyB3aXRoIEFMQi5cbiAgICAgICAgICBBbHNvIG5vdGUsIENsb3VkRnJvbnQgb25seSBzdXBwb3J0cyBIVFRQLzEuMSBvcmlnaW5zLlxuICAgICAgICAgIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZEZyb250L2xhdGVzdC9EZXZlbG9wZXJHdWlkZS9SZXF1ZXN0QW5kUmVzcG9uc2VCZWhhdmlvckN1c3RvbU9yaWdpbi5odG1sI1JlcXVlc3RDdXN0b21IVFRQVmVyc2lvblxuICAgICAgICAqL1xuICAgICAgICBwcm90b2NvbFZlcnNpb246IEFwcGxpY2F0aW9uUHJvdG9jb2xWZXJzaW9uLkhUVFAxLFxuICAgICAgICAvLyBpZiBOZXh0anNUeXBlLkdMT0JBTF9DT05UQUlORVJTIHRoZW4gd2UgdXNlIFZQQyBPcmlnaW4gQWNjZXNzIHdoaWNoIGFsbG93cyBwdXR0aW5nIEFMQiBpbiBwcml2YXRlIHN1Ym5ldFxuICAgICAgICBwdWJsaWNMb2FkQmFsYW5jZXI6XG4gICAgICAgICAgdGhpcy5wcm9wcy5uZXh0anNUeXBlID09PSBOZXh0anNUeXBlLlJFR0lPTkFMX0NPTlRBSU5FUlMsXG4gICAgICAgIHJ1bnRpbWVQbGF0Zm9ybToge1xuICAgICAgICAgIGNwdUFyY2hpdGVjdHVyZSxcbiAgICAgICAgfSxcbiAgICAgICAgdGFza0ltYWdlT3B0aW9uczoge1xuICAgICAgICAgIGNvbW1hbmQ6IFtcIm5vZGVcIiwgdGhpcy5wcm9wcy5yZWxhdGl2ZUVudHJ5cG9pbnRQYXRoXSxcbiAgICAgICAgICBjb250YWluZXJOYW1lOiBcIm5leHRqc1wiLFxuICAgICAgICAgIGNvbnRhaW5lclBvcnQ6IDMwMDAsXG4gICAgICAgICAgaW1hZ2U6IENvbnRhaW5lckltYWdlLmZyb21Eb2NrZXJJbWFnZUFzc2V0KFxuICAgICAgICAgICAgdGhpcy5wcm9wcy5kb2NrZXJJbWFnZUFzc2V0LFxuICAgICAgICAgICksXG4gICAgICAgICAgbG9nRHJpdmVyOiBMb2dEcml2ZXJzLmF3c0xvZ3Moe1xuICAgICAgICAgICAgc3RyZWFtUHJlZml4OiBcIm5leHRqc1wiLFxuICAgICAgICAgICAgbW9kZTogQXdzTG9nRHJpdmVyTW9kZS5OT05fQkxPQ0tJTkcsXG4gICAgICAgICAgfSksXG4gICAgICAgICAgLi4udGhpcy5wcm9wcy5vdmVycmlkZXM/LnRhc2tJbWFnZU9wdGlvbnMsXG4gICAgICAgIH0sXG4gICAgICAgIC4uLnRoaXMucHJvcHMub3ZlcnJpZGVzPy5hbGJGYXJnYXRlU2VydmljZVByb3BzLFxuICAgICAgfSxcbiAgICApO1xuICAgIC8vIHJlcXVpcmVkIG9yIGhlYWx0aCBjaGVja3MgZmFpbFxuICAgIGFsYkZhcmdhdGVTZXJ2aWNlLnRhc2tEZWZpbml0aW9uLmRlZmF1bHRDb250YWluZXI/LmFkZEVudmlyb25tZW50KFxuICAgICAgXCJIT1NUTkFNRVwiLFxuICAgICAgXCIwLjAuMC4wXCIsXG4gICAgKTtcbiAgICAvLyBzcGVlZCB1cCBkZXBsb3ltZW50cyBieSBzaG9ydGVuaW5nIGRlcmVnaXN0cmF0aW9uIGRlbGF5XG4gICAgLy8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkVDUy9sYXRlc3QvYmVzdHByYWN0aWNlc2d1aWRlL2xvYWQtYmFsYW5jZXItY29ubmVjdGlvbi1kcmFpbmluZy5odG1sXG4gICAgLy8gVE9ETzogZG9jdW1lbnQgdGhhdCB0aGlzIHNob3VsZCBiZSBpbmNyZWFzZWQgaWYgbG9uZyBsaXZlZCBjb25uZWN0aW9ucyBhcmUgZXhwZWN0ZWRcbiAgICBhbGJGYXJnYXRlU2VydmljZS50YXJnZXRHcm91cC5zZXRBdHRyaWJ1dGUoXG4gICAgICBcImRlcmVnaXN0cmF0aW9uX2RlbGF5LnRpbWVvdXRfc2Vjb25kc1wiLFxuICAgICAgXCIzMFwiLFxuICAgICk7XG4gICAgLy8gYmVzdCBwcmFjdGljZSB0byBlbmFibGUgY3Jvc3Mgem9uZSBsb2FkIGJhbGFuY2luZ1xuICAgIC8vIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2VsYXN0aWNsb2FkYmFsYW5jaW5nL2xhdGVzdC9hcHBsaWNhdGlvbi9kaXNhYmxlLWNyb3NzLXpvbmUuaHRtbFxuICAgIGFsYkZhcmdhdGVTZXJ2aWNlLmxvYWRCYWxhbmNlci5zZXRBdHRyaWJ1dGUoXG4gICAgICBcImxvYWRfYmFsYW5jaW5nLmNyb3NzX3pvbmUuZW5hYmxlZFwiLFxuICAgICAgXCJ0cnVlXCIsXG4gICAgKTtcbiAgICByZXR1cm4gYWxiRmFyZ2F0ZVNlcnZpY2U7XG4gIH1cbiAgLyoqXG4gICAqIENvbmZpZ3VyZSBoZWFsdGggY2hlY2tzIGZvciBjb250YWluZXJzIGF0IEFMQiBhbmQgRUNTIGxldmVsLiBUaGlzIGVuc3VyZXNcbiAgICogdW5oZWFsdGh5IGNvbnRhaW5lcnMgYXJlIHJlbW92ZWQuIEJvdGggb2YgdGhlc2UgaGVhbHRoIGNoZWNrcyBjYW4gYmVcbiAgICogb3ZlcndyaXR0ZW4gYnkgdXNlciBieSBhY2Nlc3NpbmcgYGFsYkZhcmdhdGVTZXJ2aWNlYCBwcm9wZXJ0eSwgc28gbm8gbmVlZFxuICAgKiBmb3IgYG92ZXJyaWRlc2AuXG4gICAqL1xuICBwcml2YXRlIGNvbmZpZ3VyZUhlYWx0aENoZWNrKCkge1xuICAgIC8vIHNwZWVkIHVwIGRlcGxveW1lbnRzIGJ5IHNob3J0ZW5pbmcgaGVhbHRoIGNoZWNrc1xuICAgIC8vIHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uRUNTL2xhdGVzdC9iZXN0cHJhY3RpY2VzZ3VpZGUvbG9hZC1iYWxhbmNlci1oZWFsdGhjaGVjay5odG1sXG4gICAgdGhpcy5hbGJGYXJnYXRlU2VydmljZS50YXJnZXRHcm91cC5jb25maWd1cmVIZWFsdGhDaGVjayh7XG4gICAgICBwYXRoOiB0aGlzLnByb3BzLmhlYWx0aENoZWNrUGF0aCxcbiAgICAgIGhlYWx0aHlUaHJlc2hvbGRDb3VudDogMixcbiAgICAgIGludGVydmFsOiBEdXJhdGlvbi5zZWNvbmRzKDEwKSwgLy8gdG9vIGZyZXF1ZW50PyBidXQgZW5hYmxlcyBmYXN0ZXIgcm9sbGJhY2suLi5cbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoNSksIC8vIG11c3QgYmUgbGVzcyB0aGFuIGludGVydmFsXG4gICAgfSk7XG4gICAgY29uc3QgaGVhbHRoQ2hlY2s6IEhlYWx0aENoZWNrID0ge1xuICAgICAgY29tbWFuZDogW1xuICAgICAgICBcIkNNRC1TSEVMTFwiLFxuICAgICAgICAvLyBjdXJsIGlzbid0IGF2YWlsYWJsZSBpbiBhbHBpbmUgbGludXhcbiAgICAgICAgYHdnZXQgLS1xdWlldCAtLXRyaWVzPTEgLS1zcGlkZXIgaHR0cDovL2xvY2FsaG9zdDozMDAwJHt0aGlzLnByb3BzLmhlYWx0aENoZWNrUGF0aH0gfHwgZXhpdCAxYCxcbiAgICAgIF0sXG4gICAgfTtcbiAgICBjb25zdCBkZWZhdWx0Q29udGFpbmVyID1cbiAgICAgIHRoaXMuYWxiRmFyZ2F0ZVNlcnZpY2UudGFza0RlZmluaXRpb24uZGVmYXVsdENvbnRhaW5lcjtcbiAgICBpZiAoZGVmYXVsdENvbnRhaW5lcikge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBtdXN0IHVzZSBpbnRlcm5hbCBcInByb3BzXCIgYXR0cmlidXRlIGIvYyBubyBvdGhlciB3YXkgdG8gYWRkIGhlYWx0aCBjaGVja1xuICAgICAgZGVmYXVsdENvbnRhaW5lci5wcm9wcy5oZWFsdGhDaGVjayA9IGhlYWx0aENoZWNrO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGF0dGFjaEZpbGVTeXN0ZW0oKSB7XG4gICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5hbGJGYXJnYXRlU2VydmljZS50YXNrRGVmaW5pdGlvbi5kZWZhdWx0Q29udGFpbmVyO1xuICAgIGNvbnN0IHZvbHVtZU5hbWUgPSBcImNkay1uZXh0anMtdm9sdW1lXCI7XG4gICAgdGhpcy5hbGJGYXJnYXRlU2VydmljZS50YXNrRGVmaW5pdGlvbi5hZGRWb2x1bWUoe1xuICAgICAgbmFtZTogdm9sdW1lTmFtZSxcbiAgICAgIGVmc1ZvbHVtZUNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgZmlsZVN5c3RlbUlkOiB0aGlzLnByb3BzLmZpbGVTeXN0ZW0uZmlsZVN5c3RlbUlkLFxuICAgICAgICB0cmFuc2l0RW5jcnlwdGlvbjogXCJFTkFCTEVEXCIsXG4gICAgICAgIGF1dGhvcml6YXRpb25Db25maWc6IHtcbiAgICAgICAgICBhY2Nlc3NQb2ludElkOiB0aGlzLnByb3BzLmFjY2Vzc1BvaW50LmFjY2Vzc1BvaW50SWQsXG4gICAgICAgICAgaWFtOiBcIkVOQUJMRURcIixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgY29udGFpbmVyPy5hZGRNb3VudFBvaW50cyh7XG4gICAgICBzb3VyY2VWb2x1bWU6IHZvbHVtZU5hbWUsXG4gICAgICBjb250YWluZXJQYXRoOiB0aGlzLnByb3BzLmNvbnRhaW5lck1vdW50UGF0aEZvckVmcyxcbiAgICAgIHJlYWRPbmx5OiBmYWxzZSxcbiAgICB9KTtcbiAgfVxuICBwcml2YXRlIGdldFVybCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHByb3RvY29sID0gdGhpcy5hbGJGYXJnYXRlU2VydmljZS5jZXJ0aWZpY2F0ZSA/IFwiaHR0cHNcIiA6IFwiaHR0cFwiO1xuICAgIHJldHVybiBgJHtwcm90b2NvbH06Ly8ke3RoaXMuYWxiRmFyZ2F0ZVNlcnZpY2UubG9hZEJhbGFuY2VyLmxvYWRCYWxhbmNlckRuc05hbWV9YDtcbiAgfVxufVxuIl19
|
|
147
|
+
NextjsContainers[_a] = { fqn: "cdk-nextjs.NextjsContainers", version: "0.4.1" };
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dGpzLWNvbnRhaW5lcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmV4dGpzLWNvbXB1dGUvbmV4dGpzLWNvbnRhaW5lcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwyQ0FBdUM7QUFDdkMsNkNBQXVDO0FBRXZDLGlEQVE2QjtBQUM3QixtRUFHc0M7QUFFdEMsdUZBQW9GO0FBQ3BGLDJDQUF1QztBQUV2Qyw0Q0FLc0I7QUFtQnRCOzs7R0FHRztBQUNILE1BQWEsZ0JBQWlCLFNBQVEsc0JBQVM7SUFPN0MsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE0QjtRQUNwRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDMUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxpQkFBTyxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUU7WUFDOUMsOEJBQThCLEVBQUUsSUFBSTtZQUNwQyxtQkFBbUIsRUFBRSwyQkFBaUIsQ0FBQyxPQUFPO1lBQzlDLEdBQUcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUc7WUFDbkIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxlQUFlO1NBQ3pDLENBQUMsQ0FBQztRQUNILE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFDTyxzQkFB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QUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDdkUsT0FBTyxHQUFHLFFBQVEsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDcEYsQ0FBQzs7QUF4SkgsNENBeUpDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgam9pbiB9IGZyb20gXCJub2RlOnBhdGgvcG9zaXhcIjtcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBEb2NrZXJJbWFnZUFzc2V0IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lY3ItYXNzZXRzXCI7XG5pbXBvcnQge1xuICBBd3NMb2dEcml2ZXJNb2RlLFxuICBDbHVzdGVyLFxuICBDb250YWluZXJJbWFnZSxcbiAgQ29udGFpbmVySW5zaWdodHMsXG4gIENwdUFyY2hpdGVjdHVyZSxcbiAgSGVhbHRoQ2hlY2ssXG4gIExvZ0RyaXZlcnMsXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWNzXCI7XG5pbXBvcnQge1xuICBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZEZhcmdhdGVTZXJ2aWNlLFxuICBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZEZhcmdhdGVTZXJ2aWNlUHJvcHMsXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWNzLXBhdHRlcm5zXCI7XG5pbXBvcnQgeyBGaWxlU3lzdGVtIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lZnNcIjtcbmltcG9ydCB7IEFwcGxpY2F0aW9uUHJvdG9jb2xWZXJzaW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lbGFzdGljbG9hZGJhbGFuY2luZ3YyXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgTmV4dGpzQ29tcHV0ZUJhc2VQcm9wcyB9IGZyb20gXCIuL25leHRqcy1jb21wdXRlLWJhc2UtcHJvcHNcIjtcbmltcG9ydCB7XG4gIENES19ORVhUSlNfU0VSVkVSX0RJU1RfRElSX0VOVl9WQVJfTkFNRSxcbiAgTU9VTlRfUEFUSCxcbiAgTmV4dGpzVHlwZSxcbiAgU0VSVkVSX0RJU1RfUEFUSCxcbn0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgT3B0aW9uYWxBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZFRhc2tJbWFnZU9wdGlvbnMgfSBmcm9tIFwiLi4vZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZFRhc2tJbWFnZU9wdGlvbnNcIjtcbmltcG9ydCB7IE9wdGlvbmFsQ2x1c3RlclByb3BzIH0gZnJvbSBcIi4uL2dlbmVyYXRlZC1zdHJ1Y3RzL09wdGlvbmFsQ2x1c3RlclByb3BzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV4dGpzQ29udGFpbmVyc092ZXJyaWRlcyB7XG4gIHJlYWRvbmx5IGVjc0NsdXN0ZXJQcm9wcz86IE9wdGlvbmFsQ2x1c3RlclByb3BzO1xuICByZWFkb25seSBhbGJGYXJnYXRlU2VydmljZVByb3BzPzogQXBwbGljYXRpb25Mb2FkQmFsYW5jZWRGYXJnYXRlU2VydmljZVByb3BzO1xuICByZWFkb25seSB0YXNrSW1hZ2VPcHRpb25zPzogT3B0aW9uYWxBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZFRhc2tJbWFnZU9wdGlvbnM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV4dGpzQ29udGFpbmVyc1Byb3BzIGV4dGVuZHMgTmV4dGpzQ29tcHV0ZUJhc2VQcm9wcyB7XG4gIHJlYWRvbmx5IGRvY2tlckltYWdlQXNzZXQ6IERvY2tlckltYWdlQXNzZXQ7XG4gIHJlYWRvbmx5IGZpbGVTeXN0ZW06IEZpbGVTeXN0ZW07XG4gIHJlYWRvbmx5IG5leHRqc1R5cGU6IE5leHRqc1R5cGU7XG4gIHJlYWRvbmx5IG92ZXJyaWRlcz86IE5leHRqc0NvbnRhaW5lcnNPdmVycmlkZXM7XG4gIHJlYWRvbmx5IHJlbGF0aXZlRW50cnlwb2ludFBhdGg6IHN0cmluZztcbiAgcmVhZG9ubHkgYnVpbGRJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIE5leHQuanMgbG9hZCBiYWxhbmNlZCB2aWEgQXBwbGljYXRpb24gTG9hZCBCYWxhbmNlciB3aXRoIGNvbnRhaW5lcnMgdmlhIEFXU1xuICogRmFyZ2F0ZS5cbiAqL1xuZXhwb3J0IGNsYXNzIE5leHRqc0NvbnRhaW5lcnMgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBhbGJGYXJnYXRlU2VydmljZTogQXBwbGljYXRpb25Mb2FkQmFsYW5jZWRGYXJnYXRlU2VydmljZTtcbiAgZWNzQ2x1c3RlcjogQ2x1c3RlcjtcbiAgdXJsOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBwcm9wczogTmV4dGpzQ29udGFpbmVyc1Byb3BzO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBOZXh0anNDb250YWluZXJzUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgICB0aGlzLmVjc0NsdXN0ZXIgPSB0aGlzLmNyZWF0ZUVjc0NsdXN0ZXIoKTtcbiAgICB0aGlzLmFsYkZhcmdhdGVTZXJ2aWNlID0gdGhpcy5jcmVhdGVBbGJGYXJnYXRlU2V2aWNlKCk7XG4gICAgdGhpcy5jb25maWd1cmVIZWFsdGhDaGVjaygpO1xuICAgIHRoaXMuYXR0YWNoRmlsZVN5c3RlbSgpO1xuICAgIHRoaXMudXJsID0gdGhpcy5nZXRVcmwoKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRWNzQ2x1c3RlcigpOiBDbHVzdGVyIHtcbiAgICBjb25zdCBjbHVzdGVyID0gbmV3IENsdXN0ZXIodGhpcywgXCJFY3NDbHVzdGVyXCIsIHtcbiAgICAgIGVuYWJsZUZhcmdhdGVDYXBhY2l0eVByb3ZpZGVyczogdHJ1ZSxcbiAgICAgIGNvbnRhaW5lckluc2lnaHRzVjI6IENvbnRhaW5lckluc2lnaHRzLkVOQUJMRUQsXG4gICAgICB2cGM6IHRoaXMucHJvcHMudnBjLFxuICAgICAgLi4udGhpcy5wcm9wcy5vdmVycmlkZXM/LmVjc0NsdXN0ZXJQcm9wcyxcbiAgICB9KTtcbiAgICByZXR1cm4gY2x1c3RlcjtcbiAgfVxuICBwcml2YXRlIGNyZWF0ZUFsYkZhcmdhdGVTZXZpY2UoKTogQXBwbGljYXRpb25Mb2FkQmFsYW5jZWRGYXJnYXRlU2VydmljZSB7XG4gICAgbGV0IGNwdUFyY2hpdGVjdHVyZTogQ3B1QXJjaGl0ZWN0dXJlIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIGlmIChwcm9jZXNzLmFyY2ggPT09IFwieDY0XCIpIHtcbiAgICAgIGNwdUFyY2hpdGVjdHVyZSA9IENwdUFyY2hpdGVjdHVyZS5YODZfNjQ7XG4gICAgfSBlbHNlIGlmIChwcm9jZXNzLmFyY2ggPT09IFwiYXJtNjRcIikge1xuICAgICAgY3B1QXJjaGl0ZWN0dXJlID0gQ3B1QXJjaGl0ZWN0dXJlLkFSTTY0O1xuICAgIH1cbiAgICBjb25zdCBhbGJGYXJnYXRlU2VydmljZSA9IG5ldyBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZEZhcmdhdGVTZXJ2aWNlKFxuICAgICAgdGhpcyxcbiAgICAgIFwiQWxiRmFyZ2F0ZVNlcnZpY2VcIixcbiAgICAgIHtcbiAgICAgICAgY2lyY3VpdEJyZWFrZXI6IHsgcm9sbGJhY2s6IHRydWUsIGVuYWJsZTogdHJ1ZSB9LFxuICAgICAgICBjbHVzdGVyOiB0aGlzLmVjc0NsdXN0ZXIsXG4gICAgICAgIGNwdTogMTAyNCxcbiAgICAgICAgaGVhbHRoQ2hlY2tHcmFjZVBlcmlvZDogRHVyYXRpb24uc2Vjb25kcygxMCksXG4gICAgICAgIG1heEhlYWx0aHlQZXJjZW50OiAyMDAsXG4gICAgICAgIG1lbW9yeUxpbWl0TWlCOiAyMDQ4LFxuICAgICAgICBtaW5IZWFsdGh5UGVyY2VudDogMTAwLCAvLyBtYWludGFpbiBzZXJ2aWNlIGF2YWlsYWJpbGl0eSBkdXJpbmcgZGVwbG95bWVudFxuICAgICAgICAvKlxuICAgICAgICAgIFRoaXMgcHJvdG9jb2wgdmVyc2lvbiBpcyBmb3IgdGhlIHRhcmdldCBncm91cCAoRmFyZ2F0ZSksIG5vdCB0aGUgQUxCXG4gICAgICAgICAgTGlzdGVuZXIuIEZyb20gZG9jcywgXCJBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VycyBwcm92aWRlIG5hdGl2ZSBzdXBwb3J0XG4gICAgICAgICAgZm9yIEhUVFAvMiB3aXRoIEhUVFBTIGxpc3RlbmVyc1wiLiBTZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2VsYXN0aWNsb2FkYmFsYW5jaW5nL2xhdGVzdC9hcHBsaWNhdGlvbi9sb2FkLWJhbGFuY2VyLWxpc3RlbmVycy5odG1sXG4gICAgICAgICAgTmV4dC5qcyBkZWZhdWx0IHNlcnZlciBkb2VzIG5vdCBzdXBwb3J0IEhUVFAvMiBhcyBpdCdzIHJlY29tbWVuZGVkXG4gICAgICAgICAgdG8gcHJveHkgeW91ciBOZXh0LmpzIHNlcnZlciB3aGljaCB3ZSdyZSBkb2luZyB3aXRoIEFMQi5cbiAgICAgICAgICBBbHNvIG5vdGUsIENsb3VkRnJvbnQgb25seSBzdXBwb3J0cyBIVFRQLzEuMSBvcmlnaW5zLlxuICAgICAgICAgIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZEZyb250L2xhdGVzdC9EZXZlbG9wZXJHdWlkZS9SZXF1ZXN0QW5kUmVzcG9uc2VCZWhhdmlvckN1c3RvbU9yaWdpbi5odG1sI1JlcXVlc3RDdXN0b21IVFRQVmVyc2lvblxuICAgICAgICAqL1xuICAgICAgICBwcm90b2NvbFZlcnNpb246IEFwcGxpY2F0aW9uUHJvdG9jb2xWZXJzaW9uLkhUVFAxLFxuICAgICAgICAvLyBpZiBOZXh0anNUeXBlLkdMT0JBTF9DT05UQUlORVJTIHRoZW4gd2UgdXNlIFZQQyBPcmlnaW4gQWNjZXNzIHdoaWNoIGFsbG93cyBwdXR0aW5nIEFMQiBpbiBwcml2YXRlIHN1Ym5ldFxuICAgICAgICBwdWJsaWNMb2FkQmFsYW5jZXI6XG4gICAgICAgICAgdGhpcy5wcm9wcy5uZXh0anNUeXBlID09PSBOZXh0anNUeXBlLlJFR0lPTkFMX0NPTlRBSU5FUlMsXG4gICAgICAgIHJ1bnRpbWVQbGF0Zm9ybToge1xuICAgICAgICAgIGNwdUFyY2hpdGVjdHVyZSxcbiAgICAgICAgfSxcbiAgICAgICAgdGFza0ltYWdlT3B0aW9uczoge1xuICAgICAgICAgIGNvbW1hbmQ6IFtcIm5vZGVcIiwgdGhpcy5wcm9wcy5yZWxhdGl2ZUVudHJ5cG9pbnRQYXRoXSxcbiAgICAgICAgICBjb250YWluZXJOYW1lOiBcIm5leHRqc1wiLFxuICAgICAgICAgIGNvbnRhaW5lclBvcnQ6IDMwMDAsXG4gICAgICAgICAgaW1hZ2U6IENvbnRhaW5lckltYWdlLmZyb21Eb2NrZXJJbWFnZUFzc2V0KFxuICAgICAgICAgICAgdGhpcy5wcm9wcy5kb2NrZXJJbWFnZUFzc2V0LFxuICAgICAgICAgICksXG4gICAgICAgICAgbG9nRHJpdmVyOiBMb2dEcml2ZXJzLmF3c0xvZ3Moe1xuICAgICAgICAgICAgc3RyZWFtUHJlZml4OiBcIm5leHRqc1wiLFxuICAgICAgICAgICAgbW9kZTogQXdzTG9nRHJpdmVyTW9kZS5OT05fQkxPQ0tJTkcsXG4gICAgICAgICAgfSksXG4gICAgICAgICAgLi4udGhpcy5wcm9wcy5vdmVycmlkZXM/LnRhc2tJbWFnZU9wdGlvbnMsXG4gICAgICAgIH0sXG4gICAgICAgIC4uLnRoaXMucHJvcHMub3ZlcnJpZGVzPy5hbGJGYXJnYXRlU2VydmljZVByb3BzLFxuICAgICAgfSxcbiAgICApO1xuICAgIC8vIHJlcXVpcmVkIG9yIGhlYWx0aCBjaGVja3MgZmFpbFxuICAgIGFsYkZhcmdhdGVTZXJ2aWNlLnRhc2tEZWZpbml0aW9uLmRlZmF1bHRDb250YWluZXI/LmFkZEVudmlyb25tZW50KFxuICAgICAgXCJIT1NUTkFNRVwiLFxuICAgICAgXCIwLjAuMC4wXCIsXG4gICAgKTtcbiAgICBhbGJGYXJnYXRlU2VydmljZS50YXNrRGVmaW5pdGlvbi5kZWZhdWx0Q29udGFpbmVyPy5hZGRFbnZpcm9ubWVudChcbiAgICAgIENES19ORVhUSlNfU0VSVkVSX0RJU1RfRElSX0VOVl9WQVJfTkFNRSxcbiAgICAgIGpvaW4oTU9VTlRfUEFUSCwgdGhpcy5wcm9wcy5idWlsZElkLCBTRVJWRVJfRElTVF9QQVRIKSxcbiAgICApO1xuICAgIC8vIHNwZWVkIHVwIGRlcGxveW1lbnRzIGJ5IHNob3J0ZW5pbmcgZGVyZWdpc3RyYXRpb24gZGVsYXlcbiAgICAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uRUNTL2xhdGVzdC9iZXN0cHJhY3RpY2VzZ3VpZGUvbG9hZC1iYWxhbmNlci1jb25uZWN0aW9uLWRyYWluaW5nLmh0bWxcbiAgICAvLyBUT0RPOiBkb2N1bWVudCB0aGF0IHRoaXMgc2hvdWxkIGJlIGluY3JlYXNlZCBpZiBsb25nIGxpdmVkIGNvbm5lY3Rpb25zIGFyZSBleHBlY3RlZFxuICAgIGFsYkZhcmdhdGVTZXJ2aWNlLnRhcmdldEdyb3VwLnNldEF0dHJpYnV0ZShcbiAgICAgIFwiZGVyZWdpc3RyYXRpb25fZGVsYXkudGltZW91dF9zZWNvbmRzXCIsXG4gICAgICBcIjMwXCIsXG4gICAgKTtcbiAgICAvLyBiZXN0IHByYWN0aWNlIHRvIGVuYWJsZSBjcm9zcyB6b25lIGxvYWQgYmFsYW5jaW5nXG4gICAgLy8gQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWxhc3RpY2xvYWRiYWxhbmNpbmcvbGF0ZXN0L2FwcGxpY2F0aW9uL2Rpc2FibGUtY3Jvc3Mtem9uZS5odG1sXG4gICAgYWxiRmFyZ2F0ZVNlcnZpY2UubG9hZEJhbGFuY2VyLnNldEF0dHJpYnV0ZShcbiAgICAgIFwibG9hZF9iYWxhbmNpbmcuY3Jvc3Nfem9uZS5lbmFibGVkXCIsXG4gICAgICBcInRydWVcIixcbiAgICApO1xuICAgIHJldHVybiBhbGJGYXJnYXRlU2VydmljZTtcbiAgfVxuICAvKipcbiAgICogQ29uZmlndXJlIGhlYWx0aCBjaGVja3MgZm9yIGNvbnRhaW5lcnMgYXQgQUxCIGFuZCBFQ1MgbGV2ZWwuIFRoaXMgZW5zdXJlc1xuICAgKiB1bmhlYWx0aHkgY29udGFpbmVycyBhcmUgcmVtb3ZlZC4gQm90aCBvZiB0aGVzZSBoZWFsdGggY2hlY2tzIGNhbiBiZVxuICAgKiBvdmVyd3JpdHRlbiBieSB1c2VyIGJ5IGFjY2Vzc2luZyBgYWxiRmFyZ2F0ZVNlcnZpY2VgIHByb3BlcnR5LCBzbyBubyBuZWVkXG4gICAqIGZvciBgb3ZlcnJpZGVzYC5cbiAgICovXG4gIHByaXZhdGUgY29uZmlndXJlSGVhbHRoQ2hlY2soKSB7XG4gICAgLy8gc3BlZWQgdXAgZGVwbG95bWVudHMgYnkgc2hvcnRlbmluZyBoZWFsdGggY2hlY2tzXG4gICAgLy8gc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25FQ1MvbGF0ZXN0L2Jlc3RwcmFjdGljZXNndWlkZS9sb2FkLWJhbGFuY2VyLWhlYWx0aGNoZWNrLmh0bWxcbiAgICB0aGlzLmFsYkZhcmdhdGVTZXJ2aWNlLnRhcmdldEdyb3VwLmNvbmZpZ3VyZUhlYWx0aENoZWNrKHtcbiAgICAgIHBhdGg6IHRoaXMucHJvcHMuaGVhbHRoQ2hlY2tQYXRoLFxuICAgICAgaGVhbHRoeVRocmVzaG9sZENvdW50OiAyLFxuICAgICAgaW50ZXJ2YWw6IER1cmF0aW9uLnNlY29uZHMoMTApLCAvLyB0b28gZnJlcXVlbnQ/IGJ1dCBlbmFibGVzIGZhc3RlciByb2xsYmFjay4uLlxuICAgICAgdGltZW91dDogRHVyYXRpb24uc2Vjb25kcyg1KSwgLy8gbXVzdCBiZSBsZXNzIHRoYW4gaW50ZXJ2YWxcbiAgICB9KTtcbiAgICBjb25zdCBoZWFsdGhDaGVjazogSGVhbHRoQ2hlY2sgPSB7XG4gICAgICBjb21tYW5kOiBbXG4gICAgICAgIFwiQ01ELVNIRUxMXCIsXG4gICAgICAgIC8vIGN1cmwgaXNuJ3QgYXZhaWxhYmxlIGluIGFscGluZSBsaW51eFxuICAgICAgICBgd2dldCAtLXF1aWV0IC0tdHJpZXM9MSAtLXNwaWRlciBodHRwOi8vbG9jYWxob3N0OjMwMDAke3RoaXMucHJvcHMuaGVhbHRoQ2hlY2tQYXRofSB8fCBleGl0IDFgLFxuICAgICAgXSxcbiAgICB9O1xuICAgIGNvbnN0IGRlZmF1bHRDb250YWluZXIgPVxuICAgICAgdGhpcy5hbGJGYXJnYXRlU2VydmljZS50YXNrRGVmaW5pdGlvbi5kZWZhdWx0Q29udGFpbmVyO1xuICAgIGlmIChkZWZhdWx0Q29udGFpbmVyKSB7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIG11c3QgdXNlIGludGVybmFsIFwicHJvcHNcIiBhdHRyaWJ1dGUgYi9jIG5vIG90aGVyIHdheSB0byBhZGQgaGVhbHRoIGNoZWNrXG4gICAgICBkZWZhdWx0Q29udGFpbmVyLnByb3BzLmhlYWx0aENoZWNrID0gaGVhbHRoQ2hlY2s7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgYXR0YWNoRmlsZVN5c3RlbSgpIHtcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmFsYkZhcmdhdGVTZXJ2aWNlLnRhc2tEZWZpbml0aW9uLmRlZmF1bHRDb250YWluZXI7XG4gICAgY29uc3Qgdm9sdW1lTmFtZSA9IFwiY2RrLW5leHRqcy12b2x1bWVcIjtcbiAgICB0aGlzLmFsYkZhcmdhdGVTZXJ2aWNlLnRhc2tEZWZpbml0aW9uLmFkZFZvbHVtZSh7XG4gICAgICBuYW1lOiB2b2x1bWVOYW1lLFxuICAgICAgZWZzVm9sdW1lQ29uZmlndXJhdGlvbjoge1xuICAgICAgICBmaWxlU3lzdGVtSWQ6IHRoaXMucHJvcHMuZmlsZVN5c3RlbS5maWxlU3lzdGVtSWQsXG4gICAgICAgIHRyYW5zaXRFbmNyeXB0aW9uOiBcIkVOQUJMRURcIixcbiAgICAgICAgYXV0aG9yaXphdGlvbkNvbmZpZzoge1xuICAgICAgICAgIGFjY2Vzc1BvaW50SWQ6IHRoaXMucHJvcHMuYWNjZXNzUG9pbnQuYWNjZXNzUG9pbnRJZCxcbiAgICAgICAgICBpYW06IFwiRU5BQkxFRFwiLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBjb250YWluZXI/LmFkZE1vdW50UG9pbnRzKHtcbiAgICAgIHNvdXJjZVZvbHVtZTogdm9sdW1lTmFtZSxcbiAgICAgIGNvbnRhaW5lclBhdGg6IE1PVU5UX1BBVEgsXG4gICAgICByZWFkT25seTogZmFsc2UsXG4gICAgfSk7XG4gIH1cbiAgcHJpdmF0ZSBnZXRVcmwoKTogc3RyaW5nIHtcbiAgICBjb25zdCBwcm90b2NvbCA9IHRoaXMuYWxiRmFyZ2F0ZVNlcnZpY2UuY2VydGlmaWNhdGUgPyBcImh0dHBzXCIgOiBcImh0dHBcIjtcbiAgICByZXR1cm4gYCR7cHJvdG9jb2x9Oi8vJHt0aGlzLmFsYkZhcmdhdGVTZXJ2aWNlLmxvYWRCYWxhbmNlci5sb2FkQmFsYW5jZXJEbnNOYW1lfWA7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -10,6 +10,7 @@ export interface NextjsFunctionsOverrides {
|
|
|
10
10
|
export interface NextjsFunctionsProps extends NextjsComputeBaseProps {
|
|
11
11
|
readonly dockerImageCode: DockerImageCode;
|
|
12
12
|
readonly overrides?: NextjsFunctionsOverrides;
|
|
13
|
+
readonly buildId: string;
|
|
13
14
|
}
|
|
14
15
|
/**
|
|
15
16
|
* Run Next.js in functions on AWS with AWS Lambda.
|
|
@@ -3,9 +3,12 @@ var _a;
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.NextjsFunctions = void 0;
|
|
5
5
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const posix_1 = require("path/posix");
|
|
6
7
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
7
8
|
const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
|
|
8
9
|
const constructs_1 = require("constructs");
|
|
10
|
+
const constants_1 = require("../constants");
|
|
11
|
+
const get_architecture_1 = require("../utils/get-architecture");
|
|
9
12
|
/**
|
|
10
13
|
* Run Next.js in functions on AWS with AWS Lambda.
|
|
11
14
|
*/
|
|
@@ -24,17 +27,10 @@ class NextjsFunctions extends constructs_1.Construct {
|
|
|
24
27
|
}
|
|
25
28
|
}
|
|
26
29
|
createFunction() {
|
|
27
|
-
let architecture = undefined;
|
|
28
|
-
if (process.arch === "x64") {
|
|
29
|
-
architecture = aws_lambda_1.Architecture.X86_64;
|
|
30
|
-
}
|
|
31
|
-
else if (process.arch === "arm64") {
|
|
32
|
-
architecture = aws_lambda_1.Architecture.ARM_64;
|
|
33
|
-
}
|
|
34
30
|
const fn = new aws_lambda_1.DockerImageFunction(this, "Functions", {
|
|
35
|
-
architecture,
|
|
31
|
+
architecture: (0, get_architecture_1.getLambdaArchitecture)(),
|
|
36
32
|
code: this.props.dockerImageCode,
|
|
37
|
-
filesystem: aws_lambda_1.FileSystem.fromEfsAccessPoint(this.props.accessPoint,
|
|
33
|
+
filesystem: aws_lambda_1.FileSystem.fromEfsAccessPoint(this.props.accessPoint, constants_1.MOUNT_PATH),
|
|
38
34
|
memorySize: 2048,
|
|
39
35
|
timeout: aws_cdk_lib_1.Duration.seconds(30),
|
|
40
36
|
vpc: this.props.vpc,
|
|
@@ -45,6 +41,7 @@ class NextjsFunctions extends constructs_1.Construct {
|
|
|
45
41
|
AWS_LWA_READINESS_CHECK_PATH: this.props.healthCheckPath,
|
|
46
42
|
AWS_LWA_READINESS_CHECK_PORT: "3000",
|
|
47
43
|
READINESS_CHECK_PATH: `http://127.0.0.1:3000${this.props.healthCheckPath}`,
|
|
44
|
+
[constants_1.CDK_NEXTJS_SERVER_DIST_DIR_ENV_VAR_NAME]: (0, posix_1.join)(constants_1.MOUNT_PATH, this.props.buildId, constants_1.SERVER_DIST_PATH),
|
|
48
45
|
...this.props.overrides?.dockerImageFunctionProps?.environment,
|
|
49
46
|
},
|
|
50
47
|
});
|
|
@@ -53,5 +50,5 @@ class NextjsFunctions extends constructs_1.Construct {
|
|
|
53
50
|
}
|
|
54
51
|
exports.NextjsFunctions = NextjsFunctions;
|
|
55
52
|
_a = JSII_RTTI_SYMBOL_1;
|
|
56
|
-
NextjsFunctions[_a] = { fqn: "cdk-nextjs.NextjsFunctions", version: "0.
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
NextjsFunctions[_a] = { fqn: "cdk-nextjs.NextjsFunctions", version: "0.4.1" };
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dGpzLWZ1bmN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9uZXh0anMtY29tcHV0ZS9uZXh0anMtZnVuY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsc0NBQWtDO0FBQ2xDLDZDQUF1QztBQUN2Qyx1REFPZ0M7QUFDaEMsMkNBQXVDO0FBRXZDLDRDQUlzQjtBQUd0QixnRUFBa0U7QUFhbEU7O0dBRUc7QUFDSCxNQUFhLGVBQWdCLFNBQVEsc0JBQVM7SUFNNUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEyQjtRQUNuRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUM7WUFDOUMsUUFBUSxFQUFFLGdDQUFtQixDQUFDLE9BQU87WUFDckMsVUFBVSxFQUFFLHVCQUFVLENBQUMsZUFBZTtZQUN0QyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLGdCQUFnQjtTQUMxQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDaEQsQ0FBQztJQUNILENBQUM7SUFFTyxjQUFjO1FBQ3BCLE1BQU0sRUFBRSxHQUFHLElBQUksZ0NBQW1CLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUNwRCxZQUFZLEVBQUUsSUFBQSx3Q0FBcUIsR0FBRTtZQUNyQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlO1lBQ2hDLFVBQVUsRUFBRSx1QkFBVSxDQUFDLGtCQUFrQixDQUN2QyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFDdEIsc0JBQVUsQ0FDWDtZQUNELFVBQVUsRUFBRSxJQUFJO1lBQ2hCLE9BQU8sRUFBRSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDN0IsR0FBRyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRztZQUNuQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLHdCQUF3QjtZQUNqRCxXQUFXLEVBQUU7Z0JBQ1gsMEJBQTBCLEVBQUUsTUFBTTtnQkFDbEMsbUJBQW1CLEVBQUUsaUJBQWlCO2dCQUN0Qyw0QkFBNEIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWU7Z0JBQ3hELDRCQUE0QixFQUFFLE1BQU07Z0JBQ3BDLG9CQUFvQixFQUFFLHdCQUF3QixJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRTtnQkFDMUUsQ0FBQyxtREFBdUMsQ0FBQyxFQUFFLElBQUEsWUFBSSxFQUM3QyxzQkFBVSxFQUNWLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUNsQiw0QkFBZ0IsQ0FDakI7Z0JBQ0QsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSx3QkFBd0IsRUFBRSxXQUFXO2FBQy9EO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDOztBQS9DSCwwQ0FnREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqb2luIH0gZnJvbSBcInBhdGgvcG9zaXhcIjtcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQge1xuICBEb2NrZXJJbWFnZUNvZGUsXG4gIERvY2tlckltYWdlRnVuY3Rpb24sXG4gIEZpbGVTeXN0ZW0sXG4gIEZ1bmN0aW9uVXJsLFxuICBGdW5jdGlvblVybEF1dGhUeXBlLFxuICBJbnZva2VNb2RlLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IE5leHRqc0NvbXB1dGVCYXNlUHJvcHMgfSBmcm9tIFwiLi9uZXh0anMtY29tcHV0ZS1iYXNlLXByb3BzXCI7XG5pbXBvcnQge1xuICBDREtfTkVYVEpTX1NFUlZFUl9ESVNUX0RJUl9FTlZfVkFSX05BTUUsXG4gIE1PVU5UX1BBVEgsXG4gIFNFUlZFUl9ESVNUX1BBVEgsXG59IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IE9wdGlvbmFsRG9ja2VySW1hZ2VGdW5jdGlvblByb3BzIH0gZnJvbSBcIi4uL2dlbmVyYXRlZC1zdHJ1Y3RzL09wdGlvbmFsRG9ja2VySW1hZ2VGdW5jdGlvblByb3BzXCI7XG5pbXBvcnQgeyBPcHRpb25hbEZ1bmN0aW9uVXJsUHJvcHMgfSBmcm9tIFwiLi4vZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxGdW5jdGlvblVybFByb3BzXCI7XG5pbXBvcnQgeyBnZXRMYW1iZGFBcmNoaXRlY3R1cmUgfSBmcm9tIFwiLi4vdXRpbHMvZ2V0LWFyY2hpdGVjdHVyZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5leHRqc0Z1bmN0aW9uc092ZXJyaWRlcyB7XG4gIHJlYWRvbmx5IGRvY2tlckltYWdlRnVuY3Rpb25Qcm9wcz86IE9wdGlvbmFsRG9ja2VySW1hZ2VGdW5jdGlvblByb3BzO1xuICByZWFkb25seSBmdW5jdGlvblVybFByb3BzPzogT3B0aW9uYWxGdW5jdGlvblVybFByb3BzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5leHRqc0Z1bmN0aW9uc1Byb3BzIGV4dGVuZHMgTmV4dGpzQ29tcHV0ZUJhc2VQcm9wcyB7XG4gIHJlYWRvbmx5IGRvY2tlckltYWdlQ29kZTogRG9ja2VySW1hZ2VDb2RlO1xuICByZWFkb25seSBvdmVycmlkZXM/OiBOZXh0anNGdW5jdGlvbnNPdmVycmlkZXM7XG4gIHJlYWRvbmx5IGJ1aWxkSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSdW4gTmV4dC5qcyBpbiBmdW5jdGlvbnMgb24gQVdTIHdpdGggQVdTIExhbWJkYS5cbiAqL1xuZXhwb3J0IGNsYXNzIE5leHRqc0Z1bmN0aW9ucyBleHRlbmRzIENvbnN0cnVjdCB7XG4gIGZ1bmN0aW9uOiBEb2NrZXJJbWFnZUZ1bmN0aW9uO1xuICBmdW5jdGlvblVybDogRnVuY3Rpb25Vcmw7XG5cbiAgcHJpdmF0ZSBwcm9wczogTmV4dGpzRnVuY3Rpb25zUHJvcHM7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IE5leHRqc0Z1bmN0aW9uc1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG4gICAgdGhpcy5mdW5jdGlvbiA9IHRoaXMuY3JlYXRlRnVuY3Rpb24oKTtcbiAgICB0aGlzLmZ1bmN0aW9uVXJsID0gdGhpcy5mdW5jdGlvbi5hZGRGdW5jdGlvblVybCh7XG4gICAgICBhdXRoVHlwZTogRnVuY3Rpb25VcmxBdXRoVHlwZS5BV1NfSUFNLFxuICAgICAgaW52b2tlTW9kZTogSW52b2tlTW9kZS5SRVNQT05TRV9TVFJFQU0sXG4gICAgICAuLi50aGlzLnByb3BzLm92ZXJyaWRlcz8uZnVuY3Rpb25VcmxQcm9wcyxcbiAgICB9KTtcbiAgICBpZiAoIXRoaXMuZnVuY3Rpb24ucm9sZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRnVuY3Rpb24gcm9sZSBpcyB1bmRlZmluZWRcIik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVGdW5jdGlvbigpIHtcbiAgICBjb25zdCBmbiA9IG5ldyBEb2NrZXJJbWFnZUZ1bmN0aW9uKHRoaXMsIFwiRnVuY3Rpb25zXCIsIHtcbiAgICAgIGFyY2hpdGVjdHVyZTogZ2V0TGFtYmRhQXJjaGl0ZWN0dXJlKCksXG4gICAgICBjb2RlOiB0aGlzLnByb3BzLmRvY2tlckltYWdlQ29kZSxcbiAgICAgIGZpbGVzeXN0ZW06IEZpbGVTeXN0ZW0uZnJvbUVmc0FjY2Vzc1BvaW50KFxuICAgICAgICB0aGlzLnByb3BzLmFjY2Vzc1BvaW50LFxuICAgICAgICBNT1VOVF9QQVRILFxuICAgICAgKSxcbiAgICAgIG1lbW9yeVNpemU6IDIwNDgsXG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDMwKSxcbiAgICAgIHZwYzogdGhpcy5wcm9wcy52cGMsXG4gICAgICAuLi50aGlzLnByb3BzLm92ZXJyaWRlcz8uZG9ja2VySW1hZ2VGdW5jdGlvblByb3BzLFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgQVdTX0xXQV9FTkFCTEVfQ09NUFJFU1NJT046IFwidHJ1ZVwiLFxuICAgICAgICBBV1NfTFdBX0lOVk9LRV9NT0RFOiBcInJlc3BvbnNlX3N0cmVhbVwiLFxuICAgICAgICBBV1NfTFdBX1JFQURJTkVTU19DSEVDS19QQVRIOiB0aGlzLnByb3BzLmhlYWx0aENoZWNrUGF0aCxcbiAgICAgICAgQVdTX0xXQV9SRUFESU5FU1NfQ0hFQ0tfUE9SVDogXCIzMDAwXCIsXG4gICAgICAgIFJFQURJTkVTU19DSEVDS19QQVRIOiBgaHR0cDovLzEyNy4wLjAuMTozMDAwJHt0aGlzLnByb3BzLmhlYWx0aENoZWNrUGF0aH1gLFxuICAgICAgICBbQ0RLX05FWFRKU19TRVJWRVJfRElTVF9ESVJfRU5WX1ZBUl9OQU1FXTogam9pbihcbiAgICAgICAgICBNT1VOVF9QQVRILFxuICAgICAgICAgIHRoaXMucHJvcHMuYnVpbGRJZCxcbiAgICAgICAgICBTRVJWRVJfRElTVF9QQVRILFxuICAgICAgICApLFxuICAgICAgICAuLi50aGlzLnByb3BzLm92ZXJyaWRlcz8uZG9ja2VySW1hZ2VGdW5jdGlvblByb3BzPy5lbnZpcm9ubWVudCxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgcmV0dXJuIGZuO1xuICB9XG59XG4iXX0=
|
|
@@ -5,7 +5,7 @@ import { ApplicationLoadBalancer } from "aws-cdk-lib/aws-elasticloadbalancingv2"
|
|
|
5
5
|
import { IFunctionUrl } from "aws-cdk-lib/aws-lambda";
|
|
6
6
|
import { IBucket } from "aws-cdk-lib/aws-s3";
|
|
7
7
|
import { Construct } from "constructs";
|
|
8
|
-
import { NextjsType } from "./
|
|
8
|
+
import { NextjsType } from "./constants";
|
|
9
9
|
import { OptionalDistributionProps } from "./generated-structs/OptionalDistributionProps";
|
|
10
10
|
import { OptionalS3OriginBucketWithOACProps } from "./generated-structs/OptionalS3OriginBucketWithOACProps";
|
|
11
11
|
import { PublicDirEntry } from "./nextjs-build/nextjs-build";
|
|
@@ -7,7 +7,7 @@ const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
|
7
7
|
const aws_cloudfront_1 = require("aws-cdk-lib/aws-cloudfront");
|
|
8
8
|
const aws_cloudfront_origins_1 = require("aws-cdk-lib/aws-cloudfront-origins");
|
|
9
9
|
const constructs_1 = require("constructs");
|
|
10
|
-
const
|
|
10
|
+
const constants_1 = require("./constants");
|
|
11
11
|
class NextjsDistribution extends constructs_1.Construct {
|
|
12
12
|
constructor(scope, id, props) {
|
|
13
13
|
super(scope, id);
|
|
@@ -35,7 +35,7 @@ class NextjsDistribution extends constructs_1.Construct {
|
|
|
35
35
|
};
|
|
36
36
|
this.props = props;
|
|
37
37
|
this.staticOrigin = this.createStaticOrigin();
|
|
38
|
-
this.isFunctionCompute = props.nextjsType ===
|
|
38
|
+
this.isFunctionCompute = props.nextjsType === constants_1.NextjsType.GLOBAL_FUNCTIONS;
|
|
39
39
|
this.dynamicOrigin = this.createDynamicOrigin();
|
|
40
40
|
this.dynamicOriginResponsePolicy = this.createDynamicOriginRequestPolicy();
|
|
41
41
|
this.dynamicCloudFrontFunctionAssociations =
|
|
@@ -254,5 +254,5 @@ class NextjsDistribution extends constructs_1.Construct {
|
|
|
254
254
|
}
|
|
255
255
|
exports.NextjsDistribution = NextjsDistribution;
|
|
256
256
|
_a = JSII_RTTI_SYMBOL_1;
|
|
257
|
-
NextjsDistribution[_a] = { fqn: "cdk-nextjs.NextjsDistribution", version: "0.
|
|
258
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dGpzLWRpc3RyaWJ1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9uZXh0anMtZGlzdHJpYnV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkNBQThDO0FBRTlDLCtEQTJCb0M7QUFDcEMsK0VBTTRDO0FBSTVDLDJDQUF1QztBQUN2QyxxQ0FBc0M7QUFvRHRDLE1BQWEsa0JBQW1CLFNBQVEsc0JBQVM7SUFvQy9DLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBOEI7UUFDdEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQWpDbkI7OztXQUdHO1FBQ0ssa0NBQTZCLEdBQW9DO1lBQ3ZFLGtCQUFrQixFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtZQUN2QyxZQUFZLEVBQUU7Z0JBQ1osV0FBVyxFQUFFLG1DQUFrQixDQUFDLFVBQVU7Z0JBQzFDLFFBQVEsRUFBRSxLQUFLO2FBQ2hCO1lBQ0QsY0FBYyxFQUFFO2dCQUNkLFFBQVEsRUFBRSxLQUFLO2dCQUNmLGNBQWMsRUFBRSxzQ0FBcUIsQ0FBQywrQkFBK0I7YUFDdEU7WUFFRCx1QkFBdUIsRUFBRTtnQkFDdkIsbUJBQW1CLEVBQUUsc0JBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO2dCQUN2QyxpQkFBaUIsRUFBRSxJQUFJO2dCQUN2QixRQUFRLEVBQUUsS0FBSztnQkFDZixPQUFPLEVBQUUsSUFBSTthQUNkO1lBQ0QsYUFBYSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUU7U0FDdEUsQ0FBQztRQVlBLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxVQUFVLEtB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QUMzQixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFDRDs7T0FFRztJQUNLLGNBQWMsQ0FBQyxXQUFtQjtRQUN4QyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEIsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2pELENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxXQUFXLENBQUM7UUFDckIsQ0FBQztJQUNILENBQUM7O0FBdFNILGdEQXVTQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER1cmF0aW9uLCBTdGFjayB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgSUNlcnRpZmljYXRlIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jZXJ0aWZpY2F0ZW1hbmFnZXJcIjtcbmltcG9ydCB7XG4gIEFkZEJlaGF2aW9yT3B0aW9ucyxcbiAgQWxsb3dlZE1ldGhvZHMsXG4gIEJlaGF2aW9yT3B0aW9ucyxcbiAgQ2FjaGVDb29raWVCZWhhdmlvcixcbiAgQ2FjaGVIZWFkZXJCZWhhdmlvcixcbiAgQ2FjaGVQb2xpY3ksXG4gIENhY2hlUG9saWN5UHJvcHMsXG4gIENhY2hlUXVlcnlTdHJpbmdCZWhhdmlvcixcbiAgQ2FjaGVkTWV0aG9kcyxcbiAgRnVuY3Rpb24gYXMgQ2xvdWRGcm9udEZ1bmN0aW9uLFxuICBEaXN0cmlidXRpb24sXG4gIEZ1bmN0aW9uQXNzb2NpYXRpb24sXG4gIEZ1bmN0aW9uQ29kZSxcbiAgRnVuY3Rpb25FdmVudFR5cGUsXG4gIEhlYWRlcnNGcmFtZU9wdGlvbixcbiAgSGVhZGVyc1JlZmVycmVyUG9saWN5LFxuICBIdHRwVmVyc2lvbixcbiAgSU9yaWdpbixcbiAgSU9yaWdpblJlcXVlc3RQb2xpY3ksXG4gIE9yaWdpblByb3RvY29sUG9saWN5LFxuICBPcmlnaW5SZXF1ZXN0UG9saWN5LFxuICBSZXNwb25zZUhlYWRlcnNQb2xpY3ksXG4gIFJlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzLFxuICBSZXNwb25zZVNlY3VyaXR5SGVhZGVyc0JlaGF2aW9yLFxuICBTZWN1cml0eVBvbGljeVByb3RvY29sLFxuICBWaWV3ZXJQcm90b2NvbFBvbGljeSxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250XCI7XG5pbXBvcnQge1xuICBGdW5jdGlvblVybE9yaWdpbixcbiAgRnVuY3Rpb25VcmxPcmlnaW5XaXRoT0FDUHJvcHMsXG4gIFMzQnVja2V0T3JpZ2luLFxuICBWcGNPcmlnaW4sXG4gIFZwY09yaWdpbldpdGhFbmRwb2ludFByb3BzLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnQtb3JpZ2luc1wiO1xuaW1wb3J0IHsgQXBwbGljYXRpb25Mb2FkQmFsYW5jZXIgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjJcIjtcbmltcG9ydCB7IElGdW5jdGlvblVybCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5pbXBvcnQgeyBJQnVja2V0IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IE5leHRqc1R5cGUgfSBmcm9tIFwiLi9jb21tb25cIjtcbmltcG9ydCB7IE9wdGlvbmFsRGlzdHJpYnV0aW9uUHJvcHMgfSBmcm9tIFwiLi9nZW5lcmF0ZWQtc3RydWN0cy9PcHRpb25hbERpc3RyaWJ1dGlvblByb3BzXCI7XG5pbXBvcnQgeyBPcHRpb25hbFMzT3JpZ2luQnVja2V0V2l0aE9BQ1Byb3BzIH0gZnJvbSBcIi4vZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxTM09yaWdpbkJ1Y2tldFdpdGhPQUNQcm9wc1wiO1xuaW1wb3J0IHsgUHVibGljRGlyRW50cnkgfSBmcm9tIFwiLi9uZXh0anMtYnVpbGQvbmV4dGpzLWJ1aWxkXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV4dGpzRGlzdHJpYnV0aW9uT3ZlcnJpZGVzIHtcbiAgcmVhZG9ubHkgZGlzdHJpYnV0aW9uUHJvcHM/OiBPcHRpb25hbERpc3RyaWJ1dGlvblByb3BzO1xuICByZWFkb25seSBpbWFnZUJlaGF2aW9yT3B0aW9ucz86IEFkZEJlaGF2aW9yT3B0aW9ucztcbiAgcmVhZG9ubHkgaW1hZ2VDYWNoZVBvbGljeVByb3BzPzogQ2FjaGVQb2xpY3lQcm9wcztcbiAgcmVhZG9ubHkgaW1hZ2VSZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wcz86IFJlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzO1xuICByZWFkb25seSBkeW5hbWljQmVoYXZpb3JPcHRpb25zPzogQWRkQmVoYXZpb3JPcHRpb25zO1xuICByZWFkb25seSBkeW5hbWljQ2FjaGVQb2xpY3lQcm9wcz86IENhY2hlUG9saWN5UHJvcHM7XG4gIHJlYWRvbmx5IGR5bmFtaWNSZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wcz86IFJlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzO1xuICByZWFkb25seSBkeW5hbWljRnVuY3Rpb25VcmxPcmlnaW5XaXRoT0FDUHJvcHM/OiBGdW5jdGlvblVybE9yaWdpbldpdGhPQUNQcm9wcztcbiAgcmVhZG9ubHkgZHluYW1pY1ZwY09yaWdpbldpdGhFbmRwb2ludFByb3BzPzogVnBjT3JpZ2luV2l0aEVuZHBvaW50UHJvcHM7XG4gIHJlYWRvbmx5IHN0YXRpY0JlaGF2aW9yT3B0aW9ucz86IEFkZEJlaGF2aW9yT3B0aW9ucztcbiAgcmVhZG9ubHkgc3RhdGljUmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHM/OiBSZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wcztcbiAgcmVhZG9ubHkgczNCdWNrZXRPcmlnaW5Qcm9wcz86IE9wdGlvbmFsUzNPcmlnaW5CdWNrZXRXaXRoT0FDUHJvcHM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV4dGpzRGlzdHJpYnV0aW9uUHJvcHMge1xuICAvKipcbiAgICogQnVja2V0IGNvbnRhaW5pbmcgc3RhdGljIGFzc2V0cy5cbiAgICogTXVzdCBiZSBwcm92aWRlZCBpZiB5b3Ugd2FudCB0byBzZXJ2ZSBzdGF0aWMgZmlsZXMuXG4gICAqL1xuICByZWFkb25seSBhc3NldHNCdWNrZXQ6IElCdWNrZXQ7XG4gIHJlYWRvbmx5IGJhc2VQYXRoPzogc3RyaW5nO1xuICAvKipcbiAgICogT3B0aW9uYWwgYnV0IG9ubHkgYXBwbGljYWJsZSBmb3IgYE5leHRqc1R5cGUuR0xPQkFMX0NPTlRBSU5FUlNgXG4gICAqL1xuICByZWFkb25seSBjZXJ0aWZpY2F0ZT86IElDZXJ0aWZpY2F0ZTtcbiAgcmVhZG9ubHkgZGlzdHJpYnV0aW9uPzogRGlzdHJpYnV0aW9uO1xuICAvKipcbiAgICogUmVxdWlyZWQgaWYgYE5leHRqc1R5cGUuR0xPQkFMX0ZVTkNUSU9OU2BcbiAgICovXG4gIHJlYWRvbmx5IGZ1bmN0aW9uVXJsPzogSUZ1bmN0aW9uVXJsO1xuICAvKipcbiAgICogUmVxdWlyZWQgaWYgYE5leHRqc1R5cGUuR0xPQkFMX0NPTlRBSU5FUlNgIG9yIGBOZXh0anNUeXBlLlJFR0lPTkFMX0NPTlRBSU5FUlNgXG4gICAqL1xuICByZWFkb25seSBsb2FkQmFsYW5jZXI/OiBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlcjtcbiAgcmVhZG9ubHkgbmV4dGpzVHlwZTogTmV4dGpzVHlwZTtcbiAgLyoqXG4gICAqIE92ZXJyaWRlIHByb3BzIGZvciBldmVyeSBjb25zdHJ1Y3QuXG4gICAqL1xuICByZWFkb25seSBvdmVycmlkZXM/OiBOZXh0anNEaXN0cmlidXRpb25PdmVycmlkZXM7XG4gIC8qKlxuICAgKiBQYXRoIHRvIGRpcmVjdG9yeSBvZiBOZXh0LmpzIGFwcCdzIHB1YmxpYyBkaXJlY3RvcnkuIFVzZWQgdG8gYWRkIHN0YXRpY1xuICAgKiBiZWhhdmlvcnMgdG8gZGlzdHJpYnV0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGljRGlyRW50cmllczogUHVibGljRGlyRW50cnlbXTtcbn1cblxuZXhwb3J0IGNsYXNzIE5leHRqc0Rpc3RyaWJ1dGlvbiBleHRlbmRzIENvbnN0cnVjdCB7XG4gIGRpc3RyaWJ1dGlvbjogRGlzdHJpYnV0aW9uO1xuXG4gIHByaXZhdGUgcHJvcHM6IE5leHRqc0Rpc3RyaWJ1dGlvblByb3BzO1xuICAvKipcbiAgICogQ29tbW9uIHNlY3VyaXR5IGhlYWRlcnMgYXBwbGllZCBieSBkZWZhdWx0IHRvIGFsbCBvcmlnaW5zXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkRnJvbnQvbGF0ZXN0L0RldmVsb3Blckd1aWRlL3VzaW5nLW1hbmFnZWQtcmVzcG9uc2UtaGVhZGVycy1wb2xpY2llcy5odG1sI21hbmFnZWQtcmVzcG9uc2UtaGVhZGVycy1wb2xpY2llcy1zZWN1cml0eVxuICAgKi9cbiAgcHJpdmF0ZSBjb21tb25TZWN1cml0eUhlYWRlcnNCZWhhdmlvcjogUmVzcG9uc2VTZWN1cml0eUhlYWRlcnNCZWhhdmlvciA9IHtcbiAgICBjb250ZW50VHlwZU9wdGlvbnM6IHsgb3ZlcnJpZGU6IGZhbHNlIH0sXG4gICAgZnJhbWVPcHRpb25zOiB7XG4gICAgICBmcmFtZU9wdGlvbjogSGVhZGVyc0ZyYW1lT3B0aW9uLlNBTUVPUklHSU4sXG4gICAgICBvdmVycmlkZTogZmFsc2UsXG4gICAgfSxcbiAgICByZWZlcnJlclBvbGljeToge1xuICAgICAgb3ZlcnJpZGU6IGZhbHNlLFxuICAgICAgcmVmZXJyZXJQb2xpY3k6IEhlYWRlcnNSZWZlcnJlclBvbGljeS5TVFJJQ1RfT1JJR0lOX1dIRU5fQ1JPU1NfT1JJR0lOLFxuICAgIH0sXG5cbiAgICBzdHJpY3RUcmFuc3BvcnRTZWN1cml0eToge1xuICAgICAgYWNjZXNzQ29udHJvbE1heEFnZTogRHVyYXRpb24uZGF5cygzNjUpLFxuICAgICAgaW5jbHVkZVN1YmRvbWFpbnM6IHRydWUsXG4gICAgICBvdmVycmlkZTogZmFsc2UsXG4gICAgICBwcmVsb2FkOiB0cnVlLFxuICAgIH0sXG4gICAgeHNzUHJvdGVjdGlvbjogeyBvdmVycmlkZTogZmFsc2UsIHByb3RlY3Rpb246IHRydWUsIG1vZGVCbG9jazogdHJ1ZSB9LFxuICB9O1xuICBwcml2YXRlIHN0YXRpY09yaWdpbjogSU9yaWdpbjtcbiAgcHJpdmF0ZSBkeW5hbWljT3JpZ2luOiBJT3JpZ2luO1xuICBwcml2YXRlIGR5bmFtaWNPcmlnaW5SZXNwb25zZVBvbGljeTogSU9yaWdpblJlcXVlc3RQb2xpY3k7XG4gIHByaXZhdGUgZHluYW1pY0Nsb3VkRnJvbnRGdW5jdGlvbkFzc29jaWF0aW9uczogRnVuY3Rpb25Bc3NvY2lhdGlvbltdO1xuICBwcml2YXRlIGlzRnVuY3Rpb25Db21wdXRlOiBib29sZWFuO1xuICBwcml2YXRlIHN0YXRpY0JlaGF2aW9yT3B0aW9uczogQmVoYXZpb3JPcHRpb25zO1xuICBwcml2YXRlIGR5bmFtaWNCZWhhdmlvck9wdGlvbnM6IEJlaGF2aW9yT3B0aW9ucztcbiAgcHJpdmF0ZSBpbWFnZUJlaGF2aW9yT3B0aW9uczogQmVoYXZpb3JPcHRpb25zO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBOZXh0anNEaXN0cmlidXRpb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICAgIHRoaXMuc3RhdGljT3JpZ2luID0gdGhpcy5jcmVhdGVTdGF0aWNPcmlnaW4oKTtcbiAgICB0aGlzLmlzRnVuY3Rpb25Db21wdXRlID0gcHJvcHMubmV4dGpzVHlwZSA9PT0gTmV4dGpzVHlwZS5HTE9CQUxfRlVOQ1RJT05TO1xuICAgIHRoaXMuZHluYW1pY09yaWdpbiA9IHRoaXMuY3JlYXRlRHluYW1pY09yaWdpbigpO1xuICAgIHRoaXMuZHluYW1pY09yaWdpblJlc3BvbnNlUG9saWN5ID0gdGhpcy5jcmVhdGVEeW5hbWljT3JpZ2luUmVxdWVzdFBvbGljeSgpO1xuICAgIHRoaXMuZHluYW1pY0Nsb3VkRnJvbnRGdW5jdGlvbkFzc29jaWF0aW9ucyA9XG4gICAgICB0aGlzLmNyZWF0ZUR5bmFtaWNDbG91ZEZyb250RnVuY3Rpb25Bc3NvY2lhdGlvbnMoKTtcbiAgICB0aGlzLnN0YXRpY0JlaGF2aW9yT3B0aW9ucyA9IHRoaXMuY3JlYXRlU3RhdGljQmVoYXZpb3JPcHRpb25zKCk7XG4gICAgdGhpcy5keW5hbWljQmVoYXZpb3JPcHRpb25zID0gdGhpcy5jcmVhdGVEeW5hbWljQmVoYXZpb3JPcHRpb25zKCk7XG4gICAgdGhpcy5pbWFnZUJlaGF2aW9yT3B0aW9ucyA9IHRoaXMuY3JlYXRlSW1hZ2VCZWhhdmlvck9wdGlvbnMoKTtcbiAgICB0aGlzLmRpc3RyaWJ1dGlvbiA9IHRoaXMuZ2V0RGlzdHJpYnV0aW9uKCk7XG4gICAgdGhpcy5hZGRTdGF0aWNCZWhhdmlvcnMoKTtcbiAgICB0aGlzLmFkZER5bmFtaWNCZWhhdmlvcnMoKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlU3RhdGljT3JpZ2luKCk6IElPcmlnaW4ge1xuICAgIGNvbnN0IHMzT3JpZ2luID0gUzNCdWNrZXRPcmlnaW4ud2l0aE9yaWdpbkFjY2Vzc0NvbnRyb2woXG4gICAgICB0aGlzLnByb3BzLmFzc2V0c0J1Y2tldCxcbiAgICAgIHRoaXMucHJvcHMub3ZlcnJpZGVzPy5zM0J1Y2tldE9yaWdpblByb3BzLFxuICAgICk7XG4gICAgcmV0dXJuIHMzT3JpZ2luO1xuICB9XG4gIHByaXZhdGUgY3JlYXRlRHluYW1pY09yaWdpbigpOiBJT3JpZ2luIHtcbiAgICBpZiAodGhpcy5pc0Z1bmN0aW9uQ29tcHV0ZSkge1xuICAgICAgaWYgKCF0aGlzLnByb3BzLmZ1bmN0aW9uVXJsKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIE5leHRqc0Rpc3RyaWJ1dGlvblByb3BzLmZ1bmN0aW9uVXJsXCIpO1xuICAgICAgcmV0dXJuIEZ1bmN0aW9uVXJsT3JpZ2luLndpdGhPcmlnaW5BY2Nlc3NDb250cm9sKFxuICAgICAgICB0aGlzLnByb3BzLmZ1bmN0aW9uVXJsLFxuICAgICAgICB0aGlzLnByb3BzLm92ZXJyaWRlcz8uZHluYW1pY0Z1bmN0aW9uVXJsT3JpZ2luV2l0aE9BQ1Byb3BzLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbG9hZEJhbGFuY2VyID0gdGhpcy5wcm9wcy5sb2FkQmFsYW5jZXI7XG4gICAgICBpZiAoIWxvYWRCYWxhbmNlcilcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyBOZXh0anNEaXN0cmlidXRpb25Qcm9wcy5sb2FkQmFsYW5jZXJcIik7XG4gICAgICByZXR1cm4gVnBjT3JpZ2luLndpdGhBcHBsaWNhdGlvbkxvYWRCYWxhbmNlcihsb2FkQmFsYW5jZXIsIHtcbiAgICAgICAgcHJvdG9jb2xQb2xpY3k6IHRoaXMucHJvcHMuY2VydGlmaWNhdGVcbiAgICAgICAgICA/IE9yaWdpblByb3RvY29sUG9saWN5LkhUVFBTX09OTFlcbiAgICAgICAgICA6IE9yaWdpblByb3RvY29sUG9saWN5LkhUVFBfT05MWSxcbiAgICAgICAgLi4udGhpcy5wcm9wcy5vdmVycmlkZXM/LmR5bmFtaWNWcGNPcmlnaW5XaXRoRW5kcG9pbnRQcm9wcyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogTGFtYmRhIEZ1bmN0aW9uIFVSTHMgXCJleHBlY3QgdGhlIGBIb3N0YCBoZWFkZXIgdG8gY29udGFpbiB0aGUgb3JpZ2luIGRvbWFpblxuICAgKiBuYW1lLCBub3QgdGhlIGRvbWFpbiBuYW1lIG9mIHRoZSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbi5cIlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZEZyb250L2xhdGVzdC9EZXZlbG9wZXJHdWlkZS91c2luZy1tYW5hZ2VkLW9yaWdpbi1yZXF1ZXN0LXBvbGljaWVzLmh0bWwjbWFuYWdlZC1vcmlnaW4tcmVxdWVzdC1wb2xpY3ktYWxsLXZpZXdlci1leGNlcHQtaG9zdC1oZWFkZXJcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlRHluYW1pY09yaWdpblJlcXVlc3RQb2xpY3koKTogSU9yaWdpblJlcXVlc3RQb2xpY3kge1xuICAgIHJldHVybiB0aGlzLmlzRnVuY3Rpb25Db21wdXRlXG4gICAgICA/IE9yaWdpblJlcXVlc3RQb2xpY3kuQUxMX1ZJRVdFUl9FWENFUFRfSE9TVF9IRUFERVJcbiAgICAgIDogT3JpZ2luUmVxdWVzdFBvbGljeS5BTExfVklFV0VSO1xuICB9XG4gIC8qKlxuICAgKiBFbnN1cmVzIE5leHQuanMgYHJlcXVlc3QudXJsYCB3aWxsIGJlIGNvcnJlY3QgZG9tYWluIGluc3RlYWQgb2YgVVJMIG9mXG4gICAqIGNvbXB1dGUgb3B0aW9uIChBcHAgUnVubmVyLCBGYXJnYXRlLCBvciBMYW1iZGEpXG4gICAqIEBzZWUgaHR0cHM6Ly9vcGVuLW5leHQuanMub3JnL2FkdmFuY2VkL3dvcmthcm91bmQjd29ya2Fyb3VuZC1zZXQteC1mb3J3YXJkZWQtaG9zdC1oZWFkZXItYXdzLXNwZWNpZmljXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZUR5bmFtaWNDbG91ZEZyb250RnVuY3Rpb25Bc3NvY2lhdGlvbnMoKTogRnVuY3Rpb25Bc3NvY2lhdGlvbltdIHtcbiAgICBjb25zdCBhc3NvY2lhdGlvbnM6IEZ1bmN0aW9uQXNzb2NpYXRpb25bXSA9IFtdO1xuICAgIGlmICh0aGlzLmlzRnVuY3Rpb25Db21wdXRlKSB7XG4gICAgICBjb25zdCBjbG91ZEZyb250Rm4gPSBuZXcgQ2xvdWRGcm9udEZ1bmN0aW9uKHRoaXMsIFwiQ2xvdWRGcm9udEZuXCIsIHtcbiAgICAgICAgY29kZTogRnVuY3Rpb25Db2RlLmZyb21JbmxpbmUoYFxuICAgICAgICAgIGZ1bmN0aW9uIGhhbmRsZXIoZXZlbnQpIHtcbiAgICAgICAgICAgIHZhciByZXF1ZXN0ID0gZXZlbnQucmVxdWVzdDtcbiAgICAgICAgICAgIHJlcXVlc3QuaGVhZGVyc1tcIngtZm9yd2FyZGVkLWhvc3RcIl0gPSByZXF1ZXN0LmhlYWRlcnMuaG9zdDtcbiAgICAgICAgICAgIHJldHVybiByZXF1ZXN0O1xuICAgICAgICAgIH1cbiAgICAgICAgICBgKSxcbiAgICAgIH0pO1xuICAgICAgYXNzb2NpYXRpb25zLnB1c2goe1xuICAgICAgICBldmVudFR5cGU6IEZ1bmN0aW9uRXZlbnRUeXBlLlZJRVdFUl9SRVFVRVNULFxuICAgICAgICBmdW5jdGlvbjogY2xvdWRGcm9udEZuLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBhc3NvY2lhdGlvbnM7XG4gIH1cbiAgcHJpdmF0ZSBjcmVhdGVTdGF0aWNCZWhhdmlvck9wdGlvbnMoKTogQmVoYXZpb3JPcHRpb25zIHtcbiAgICBjb25zdCBzdGF0aWNCZWhhdmlvck9wdGlvbnMgPSB0aGlzLnByb3BzLm92ZXJyaWRlcz8uc3RhdGljQmVoYXZpb3JPcHRpb25zO1xuICAgIGNvbnN0IHJlc3BvbnNlSGVhZGVyc1BvbGljeSA9XG4gICAgICBzdGF0aWNCZWhhdmlvck9wdGlvbnM/LnJlc3BvbnNlSGVhZGVyc1BvbGljeSA/P1xuICAgICAgbmV3IFJlc3BvbnNlSGVhZGVyc1BvbGljeSh0aGlzLCBcIlN0YXRpY1Jlc3BvbnNlSGVhZGVyc1BvbGljeVwiLCB7XG4gICAgICAgIHNlY3VyaXR5SGVhZGVyc0JlaGF2aW9yOiB0aGlzLmNvbW1vblNlY3VyaXR5SGVhZGVyc0JlaGF2aW9yLFxuICAgICAgICBjb21tZW50OiBgTmV4dGpzIFN0YXRpYyBSZXNwb25zZSBIZWFkZXJzIFBvbGljeSBmb3IgJHtTdGFjay5vZih0aGlzKS5zdGFja05hbWV9YCxcbiAgICAgICAgLi4udGhpcy5wcm9wcy5vdmVycmlkZXM/LnN0YXRpY1Jlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzLFxuICAgICAgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFsbG93ZWRNZXRob2RzOiBBbGxvd2VkTWV0aG9kcy5BTExPV19HRVRfSEVBRF9PUFRJT05TLFxuICAgICAgY2FjaGVkTWV0aG9kczogQ2FjaGVkTWV0aG9kcy5DQUNIRV9HRVRfSEVBRF9PUFRJT05TLFxuICAgICAgY2FjaGVQb2xpY3k6IENhY2hlUG9saWN5LkNBQ0hJTkdfT1BUSU1JWkVELFxuICAgICAgb3JpZ2luOiB0aGlzLnN0YXRpY09yaWdpbixcbiAgICAgIHJlc3BvbnNlSGVhZGVyc1BvbGljeSxcbiAgICAgIHZpZXdlclByb3RvY29sUG9saWN5OiBWaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQUyxcbiAgICAgIC4uLnN0YXRpY0JlaGF2aW9yT3B0aW9ucyxcbiAgICB9O1xuICB9XG4gIHByaXZhdGUgY3JlYXRlRHluYW1pY0JlaGF2aW9yT3B0aW9ucygpOiBCZWhhdmlvck9wdGlvbnMge1xuICAgIGNvbnN0IGR5bmFtaWNCZWhhdmlvck9wdGlvbnMgPSB0aGlzLnByb3BzLm92ZXJyaWRlcz8uZHluYW1pY0JlaGF2aW9yT3B0aW9ucztcbiAgICAvLyBjcmVhdGUgZGVmYXVsdCBjYWNoZSBwb2xpY3kgaWYgbm90IHByb3ZpZGVkXG4gICAgY29uc3QgY2FjaGVQb2xpY3kgPVxuICAgICAgZHluYW1pY0JlaGF2aW9yT3B0aW9ucz8uY2FjaGVQb2xpY3kgPz9cbiAgICAgIG5ldyBDYWNoZVBvbGljeSh0aGlzLCBcIkR5bmFtaWNDYWNoZVBvbGljeVwiLCB7XG4gICAgICAgIHF1ZXJ5U3RyaW5nQmVoYXZpb3I6IENhY2hlUXVlcnlTdHJpbmdCZWhhdmlvci5hbGwoKSxcbiAgICAgICAgaGVhZGVyQmVoYXZpb3I6IENhY2hlSGVhZGVyQmVoYXZpb3IuYWxsb3dMaXN0KFxuICAgICAgICAgIFwiYWNjZXB0XCIsXG4gICAgICAgICAgXCJyc2NcIixcbiAgICAgICAgICBcIm5leHQtcm91dGVyLXByZWZldGNoXCIsXG4gICAgICAgICAgXCJuZXh0LXJvdXRlci1zdGF0ZS10cmVlXCIsXG4gICAgICAgICAgXCJuZXh0LXVybFwiLFxuICAgICAgICAgIFwieC1wcmVyZW5kZXItcmV2YWxpZGF0ZVwiLFxuICAgICAgICApLFxuICAgICAgICBjb29raWVCZWhhdmlvcjogQ2FjaGVDb29raWVCZWhhdmlvci5hbGwoKSxcbiAgICAgICAgZW5hYmxlQWNjZXB0RW5jb2RpbmdCcm90bGk6IHRydWUsXG4gICAgICAgIGVuYWJsZUFjY2VwdEVuY29kaW5nR3ppcDogdHJ1ZSxcbiAgICAgICAgY29tbWVudDogYE5leHRqcyBEeW5hbWljIENhY2hlIFBvbGljeSBmb3IgJHtTdGFjay5vZih0aGlzKS5zdGFja05hbWV9YCxcbiAgICAgICAgLi4udGhpcy5wcm9wcy5vdmVycmlkZXM/LmR5bmFtaWNDYWNoZVBvbGljeVByb3BzLFxuICAgICAgfSk7XG4gICAgY29uc3QgcmVzcG9uc2VIZWFkZXJzUG9saWN5ID1cbiAgICAgIGR5bmFtaWNCZWhhdmlvck9wdGlvbnM/LnJlc3BvbnNlSGVhZGVyc1BvbGljeSA/P1xuICAgICAgbmV3IFJlc3BvbnNlSGVhZGVyc1BvbGljeSh0aGlzLCBcIkR5bmFtaWNSZXNwb25zZUhlYWRlcnNQb2xpY3lcIiwge1xuICAgICAgICBzZWN1cml0eUhlYWRlcnNCZWhhdmlvcjogdGhpcy5jb21tb25TZWN1cml0eUhlYWRlcnNCZWhhdmlvcixcbiAgICAgICAgY29tbWVudDogYE5leHRqcyBEeW5hbWljIFJlc3BvbnNlIEhlYWRlcnMgUG9saWN5IGZvciAke1N0YWNrLm9mKHRoaXMpLnN0YWNrTmFtZX1gLFxuICAgICAgICAuLi50aGlzLnByb3BzLm92ZXJyaWRlcz8uZHluYW1pY0JlaGF2aW9yT3B0aW9ucz8ucmVzcG9uc2VIZWFkZXJzUG9saWN5LFxuICAgICAgfSk7XG4gICAgY29uc3QgYmVoYXZpb3JPcHRpb25zOiBCZWhhdmlvck9wdGlvbnMgPSB7XG4gICAgICBhbGxvd2VkTWV0aG9kczogQWxsb3dlZE1ldGhvZHMuQUxMT1dfQUxMLFxuICAgICAgY2FjaGVQb2xpY3ksXG4gICAgICBmdW5jdGlvbkFzc29jaWF0aW9uczogdGhpcy5keW5hbWljQ2xvdWRGcm9udEZ1bmN0aW9uQXNzb2NpYXRpb25zLFxuICAgICAgb3JpZ2luOiB0aGlzLmR5bmFtaWNPcmlnaW4sXG4gICAgICBvcmlnaW5SZXF1ZXN0UG9saWN5OiB0aGlzLmR5bmFtaWNPcmlnaW5SZXNwb25zZVBvbGljeSxcbiAgICAgIHJlc3BvbnNlSGVhZGVyc1BvbGljeSxcbiAgICAgIHZpZXdlclByb3RvY29sUG9saWN5OiBWaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQUyxcbiAgICAgIC4uLmR5bmFtaWNCZWhhdmlvck9wdGlvbnMsXG4gICAgfTtcbiAgICByZXR1cm4gYmVoYXZpb3JPcHRpb25zO1xuICB9XG4gIHByaXZhdGUgY3JlYXRlSW1hZ2VCZWhhdmlvck9wdGlvbnMoKTogQmVoYXZpb3JPcHRpb25zIHtcbiAgICBjb25zdCBpbWFnZUJlaGF2aW9yT3B0aW9ucyA9IHRoaXMucHJvcHMub3ZlcnJpZGVzPy5pbWFnZUJlaGF2aW9yT3B0aW9ucztcbiAgICAvLyBhZGQgZGVmYXVsdCBjYWNoZSBwb2xpY3kgaWYgbm90IHByb3ZpZGVkXG4gICAgY29uc3QgY2FjaGVQb2xpY3kgPVxuICAgICAgaW1hZ2VCZWhhdmlvck9wdGlvbnM/LmNhY2hlUG9saWN5ID8/XG4gICAgICBuZXcgQ2FjaGVQb2xpY3kodGhpcywgXCJJbWFnZUNhY2hlUG9saWN5XCIsIHtcbiAgICAgICAgLy8gU0VDVVJJVFkgTk9URTogYnkgZGVmYXVsdCB3ZSBkb24ndCBpbmNsdWRlIGNvb2tpZXMgaW4gY2FjaGUgZm9yXG4gICAgICAgIC8vIGltYWdlcyBiL2MgaXQgc2lnbmlmaWNhbnRseSBpbXByb3ZlcyBpbWFnZSBwZXJmIGZvciBtb3N0IHNpdGVzIEJVVFxuICAgICAgICAvLyBpZiB5b3UgaGF2ZSBwcml2YXRlIGltYWdlcyBsb2NrZWQgYmVoaW5kIGF1dGggaW1wbGVtZW50ZWQgd2l0aCBjb29raWVzXG4gICAgICAgIC8vIHlvdSBuZWVkIHRvIG92ZXJyaWRlIHRoaXMuXG4gICAgICAgIHF1ZXJ5U3RyaW5nQmVoYXZpb3I6IENhY2hlUXVlcnlTdHJpbmdCZWhhdmlvci5hbGwoKSxcbiAgICAgICAgaGVhZGVyQmVoYXZpb3I6IENhY2hlSGVhZGVyQmVoYXZpb3IuYWxsb3dMaXN0KFwiYWNjZXB0XCIpLFxuICAgICAgICBjb29raWVCZWhhdmlvcjogQ2FjaGVDb29raWVCZWhhdmlvci5ub25lKCksXG4gICAgICAgIGVuYWJsZUFjY2VwdEVuY29kaW5nQnJvdGxpOiB0cnVlLFxuICAgICAgICBlbmFibGVBY2NlcHRFbmNvZGluZ0d6aXA6IHRydWUsXG4gICAgICAgIGNvbW1lbnQ6IGBOZXh0anMgSW1hZ2UgQ2FjaGUgUG9saWN5IGZvciAke1N0YWNrLm9mKHRoaXMpLnN0YWNrTmFtZX1gLFxuICAgICAgICAuLi50aGlzLnByb3BzLm92ZXJyaWRlcz8uaW1hZ2VDYWNoZVBvbGljeVByb3BzLFxuICAgICAgfSk7XG4gICAgLy8gYWRkIGRlZmF1bHQgcmVzcG9uc2UgaGVhZGVycyBwb2xpY3kgaWYgbm90IHByb3ZpZGVkXG4gICAgY29uc3QgcmVzcG9uc2VIZWFkZXJzUG9saWN5ID1cbiAgICAgIGltYWdlQmVoYXZpb3JPcHRpb25zPy5yZXNwb25zZUhlYWRlcnNQb2xpY3kgPz9cbiAgICAgIG5ldyBSZXNwb25zZUhlYWRlcnNQb2xpY3kodGhpcywgXCJJbWFnZVJlc3BvbnNlSGVhZGVyc1BvbGljeVwiLCB7XG4gICAgICAgIHNlY3VyaXR5SGVhZGVyc0JlaGF2aW9yOiB0aGlzLmNvbW1vblNlY3VyaXR5SGVhZGVyc0JlaGF2aW9yLFxuICAgICAgICBjb21tZW50OiBgTmV4dGpzIEltYWdlIFJlc3BvbnNlIEhlYWRlcnMgUG9saWN5IGZvciAke1N0YWNrLm9mKHRoaXMpLnN0YWNrTmFtZX1gLFxuICAgICAgICAuLi50aGlzLnByb3BzLm92ZXJyaWRlcz8uaW1hZ2VSZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wcyxcbiAgICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICBhbGxvd2VkTWV0aG9kczogQWxsb3dlZE1ldGhvZHMuQUxMT1dfR0VUX0hFQURfT1BUSU9OUyxcbiAgICAgIGNhY2hlZE1ldGhvZHM6IENhY2hlZE1ldGhvZHMuQ0FDSEVfR0VUX0hFQURfT1BUSU9OUyxcbiAgICAgIGZ1bmN0aW9uQXNzb2NpYXRpb25zOiB0aGlzLmR5bmFtaWNDbG91ZEZyb250RnVuY3Rpb25Bc3NvY2lhdGlvbnMsXG4gICAgICBvcmlnaW46IHRoaXMuZHluYW1pY09yaWdpbixcbiAgICAgIG9yaWdpblJlcXVlc3RQb2xpY3k6IHRoaXMuZHluYW1pY09yaWdpblJlc3BvbnNlUG9saWN5LFxuICAgICAgY2FjaGVQb2xpY3ksXG4gICAgICByZXNwb25zZUhlYWRlcnNQb2xpY3ksXG4gICAgICB2aWV3ZXJQcm90b2NvbFBvbGljeTogVmlld2VyUHJvdG9jb2xQb2xpY3kuUkVESVJFQ1RfVE9fSFRUUFMsXG4gICAgICAuLi5pbWFnZUJlaGF2aW9yT3B0aW9ucyxcbiAgICB9O1xuICB9XG4gIC8qKlxuICAgKiBDcmVhdGVzIG9yIHVzZXMgdXNlciBzcGVjaWZpZWQgQ2xvdWRGcm9udCBEaXN0cmlidXRpb25cbiAgICovXG4gIHByaXZhdGUgZ2V0RGlzdHJpYnV0aW9uKCk6IERpc3RyaWJ1dGlvbiB7XG4gICAgbGV0IGRpc3RyaWJ1dGlvbjogRGlzdHJpYnV0aW9uO1xuICAgIGlmICh0aGlzLnByb3BzLmRpc3RyaWJ1dGlvbikge1xuICAgICAgZGlzdHJpYnV0aW9uID0gdGhpcy5wcm9wcy5kaXN0cmlidXRpb247XG4gICAgfSBlbHNlIHtcbiAgICAgIGRpc3RyaWJ1dGlvbiA9IG5ldyBEaXN0cmlidXRpb24odGhpcywgXCJEaXN0cmlidXRpb25cIiwge1xuICAgICAgICBtaW5pbXVtUHJvdG9jb2xWZXJzaW9uOiBTZWN1cml0eVBvbGljeVByb3RvY29sLlRMU19WMV8yXzIwMjEsXG4gICAgICAgIGRlZmF1bHRCZWhhdmlvcjogdGhpcy5keW5hbWljQmVoYXZpb3JPcHRpb25zLFxuICAgICAgICAvLyBiZXN0IHRvIHVzZSBIVFRQIDIgYW5kIDMgZm9yIGNvbXBhdGFiaWxpdHkgKEhUVFAgMikgYW5kIHBlcmZvcm1hbmNlIChIVFRQMylcbiAgICAgICAgLy8gQ2xvdWRGcm9udCB3aWxsIGNob29zZSBiZXN0IG9wdGlvbiBmb3IgY2xpZW50XG4gICAgICAgIGh0dHBWZXJzaW9uOiBIdHRwVmVyc2lvbi5IVFRQMl9BTkRfMyxcbiAgICAgICAgY29tbWVudDogYGNkay1uZXh0anMgRGlzdHJpYnV0aW9uIGZvciAke1N0YWNrLm9mKHRoaXMpLnN0YWNrTmFtZX1gLFxuICAgICAgICAuLi50aGlzLnByb3BzLm92ZXJyaWRlcz8uZGlzdHJpYnV0aW9uUHJvcHMsXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGRpc3RyaWJ1dGlvbjtcbiAgfVxuICBwcml2YXRlIGFkZER5bmFtaWNCZWhhdmlvcnMoKSB7XG4gICAgLy8gSW1hZ2UgQmVoYXZpb3JcbiAgICB0aGlzLmRpc3RyaWJ1dGlvbi5hZGRCZWhhdmlvcihcbiAgICAgIHRoaXMuZ2V0UGF0aFBhdHRlcm4oXCJfbmV4dC9pbWFnZSpcIiksXG4gICAgICB0aGlzLmltYWdlQmVoYXZpb3JPcHRpb25zLm9yaWdpbixcbiAgICAgIHRoaXMuaW1hZ2VCZWhhdmlvck9wdGlvbnMsXG4gICAgKTtcbiAgICAvLyBSb290IFBhdGggQmVoYXZpb3JzXG4gICAgaWYgKHRoaXMucHJvcHMuYmFzZVBhdGgpIHtcbiAgICAgIC8vIGJlY2F1c2Ugd2UgYWxyZWFkeSBoYXZlIGEgYmFzZVBhdGggd2UgZG9uJ3QgdXNlIC8gaW5zdGVhZCB3ZSB1c2UgL2Jhc2UtcGF0aFxuICAgICAgdGhpcy5kaXN0cmlidXRpb24uYWRkQmVoYXZpb3IoXG4gICAgICAgIHRoaXMucHJvcHMuYmFzZVBhdGgsXG4gICAgICAgIHRoaXMuZHluYW1pY0JlaGF2aW9yT3B0aW9ucy5vcmlnaW4sXG4gICAgICAgIHRoaXMuZHluYW1pY0JlaGF2aW9yT3B0aW9ucyxcbiAgICAgICk7XG4gICAgICAvLyB3aGVuIGJhc2VQYXRoIGlzIHNldCwgd2UgZW11bGF0ZSB0aGUgXCJkZWZhdWx0IGJlaGF2aW9yXCIgKCopIGZvciB0aGUgc2l0ZSBhcyBgL2Jhc2UtcGF0aC8qYFxuICAgICAgdGhpcy5kaXN0cmlidXRpb24uYWRkQmVoYXZpb3IoXG4gICAgICAgIHRoaXMuZ2V0UGF0aFBhdHRlcm4oXCIqXCIpLFxuICAgICAgICB0aGlzLmR5bmFtaWNCZWhhdmlvck9wdGlvbnMub3JpZ2luLFxuICAgICAgICB0aGlzLmR5bmFtaWNCZWhhdmlvck9wdGlvbnMsXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBpZiBubyBiYXNlIHBhdGgsIHRoZW4gZGVmYXVsdCBiZWhhdmlvciB3aWxsIGhhbmRsZSBhbGwgb3RoZXIgcGF0aHNcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBhZGRTdGF0aWNCZWhhdmlvcnMoKSB7XG4gICAgdGhpcy5kaXN0cmlidXRpb24uYWRkQmVoYXZpb3IoXG4gICAgICB0aGlzLmdldFBhdGhQYXR0ZXJuKFwiX25leHQvc3RhdGljKlwiKSxcbiAgICAgIHRoaXMuc3RhdGljT3JpZ2luLFxuICAgICAgdGhpcy5zdGF0aWNCZWhhdmlvck9wdGlvbnMsXG4gICAgKTtcbiAgICAvLyAyMiA9IDI1IChtYXgpIC0gMSAoX25leHQvaW1hZ2UpIC0gMSAoX25leHQvc3RhdGljKSAtIDEgKCopXG4gICAgaWYgKHRoaXMucHJvcHMucHVibGljRGlyRW50cmllcy5sZW5ndGggPj0gMjIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFRvbyBtYW55IHB1YmxpYy8gZmlsZXMgaW4gTmV4dC5qcyBidWlsZC4gQ2xvdWRGcm9udCBsaW1pdHMgRGlzdHJpYnV0aW9ucyB0byAyNSBDYWNoZSBCZWhhdmlvcnMuIFNlZSBkb2N1bWVudGVkIGxpbWl0IGhlcmU6IGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZEZyb250L2xhdGVzdC9EZXZlbG9wZXJHdWlkZS9jbG91ZGZyb250LWxpbWl0cy5odG1sI2xpbWl0cy13ZWItZGlzdHJpYnV0aW9ucy4gVHJ5IGluY2x1ZGluZyBhbGwgcHVibGljIGZpbGVzIGludG8gMSB0b3AgbGV2ZWwgZGlyZWN0b3J5IChpLmUuIHN0YXRpYy8qKS5gLFxuICAgICAgKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBwdWJsaWNGaWxlIG9mIHRoaXMucHJvcHMucHVibGljRGlyRW50cmllcykge1xuICAgICAgY29uc3QgcGF0aFBhdHRlcm4gPSBwdWJsaWNGaWxlLmlzRGlyZWN0b3J5XG4gICAgICAgID8gYCR7cHVibGljRmlsZS5uYW1lfS8qYFxuICAgICAgICA6IHB1YmxpY0ZpbGUubmFtZTtcbiAgICAgIGlmICghL15bYS16QS1aMC05X1xcLS4qJC9+XCInQDorPyZdKyQvLnRlc3QocGF0aFBhdHRlcm4pKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgSW52YWxpZCBDbG91ZEZyb250IERpc3RyaWJ1dGlvbiBDYWNoZSBCZWhhdmlvciBQYXRoIFBhdHRlcm46ICR7cGF0aFBhdHRlcm59LiBQbGVhc2Ugc2VlIGRvY3VtZW50YXRpb24gaGVyZTogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkRnJvbnQvbGF0ZXN0L0RldmVsb3Blckd1aWRlL2Rpc3RyaWJ1dGlvbi13ZWItdmFsdWVzLXNwZWNpZnkuaHRtbCNEb3dubG9hZERpc3RWYWx1ZXNQYXRoUGF0dGVybmAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBjb25zdCBmaW5hbFBhdGhQYXR0ZXJuID0gdGhpcy5nZXRQYXRoUGF0dGVybihwYXRoUGF0dGVybik7XG4gICAgICB0aGlzLmRpc3RyaWJ1dGlvbi5hZGRCZWhhdmlvcihcbiAgICAgICAgZmluYWxQYXRoUGF0dGVybixcbiAgICAgICAgdGhpcy5zdGF0aWNPcmlnaW4sXG4gICAgICAgIHRoaXMuc3RhdGljQmVoYXZpb3JPcHRpb25zLFxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIE9wdGlvbmFsbHkgcHJlcGVuZHMgYmFzZSBwYXRoIHRvIGdpdmVuIHBhdGggcGF0dGVybi5cbiAgICovXG4gIHByaXZhdGUgZ2V0UGF0aFBhdHRlcm4ocGF0aFBhdHRlcm46IHN0cmluZykge1xuICAgIGlmICh0aGlzLnByb3BzLmJhc2VQYXRoKSB7XG4gICAgICByZXR1cm4gYCR7dGhpcy5wcm9wcy5iYXNlUGF0aH0vJHtwYXRoUGF0dGVybn1gO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcGF0aFBhdHRlcm47XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
257
|
+
NextjsDistribution[_a] = { fqn: "cdk-nextjs.NextjsDistribution", version: "0.4.1" };
|
|
258
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dGpzLWRpc3RyaWJ1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9uZXh0anMtZGlzdHJpYnV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkNBQThDO0FBRTlDLCtEQTJCb0M7QUFDcEMsK0VBTTRDO0FBSTVDLDJDQUF1QztBQUN2QywyQ0FBeUM7QUFvRHpDLE1BQWEsa0JBQW1CLFNBQVEsc0JBQVM7SUFvQy9DLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBOEI7UUFDdEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQWpDbkI7OztXQUdHO1FBQ0ssa0NBQTZCLEdBQW9DO1lBQ3ZFLGtCQUFrQixFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtZQUN2QyxZQUFZLEVBQUU7Z0JBQ1osV0FBVyxFQUFFLG1DQUFrQixDQUFDLFVBQVU7Z0JBQzFDLFFBQVEsRUFBRSxLQUFLO2FBQ2hCO1lBQ0QsY0FBYyxFQUFFO2dCQUNkLFFBQVEsRUFBRSxLQUFLO2dCQUNmLGNBQWMsRUFBRSxzQ0FBcUIsQ0FBQywrQkFBK0I7YUFDdEU7WUFFRCx1QkFBdUIsRUFBRTtnQkFDdkIsbUJBQW1CLEVBQUUsc0JBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO2dCQUN2QyxpQkFBaUIsRUFBRSxJQUFJO2dCQUN2QixRQUFRLEVBQUUsS0FBSztnQkFDZixPQUFPLEVBQUUsSUFBSTthQUNkO1lBQ0QsYUFBYSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUU7U0FDdEUsQ0FBQztRQVlBLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxVQUFVLEtB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QUMzQixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFDRDs7T0FFRztJQUNLLGNBQWMsQ0FBQyxXQUFtQjtRQUN4QyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEIsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2pELENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxXQUFXLENBQUM7UUFDckIsQ0FBQztJQUNILENBQUM7O0FBdFNILGdEQXVTQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER1cmF0aW9uLCBTdGFjayB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgSUNlcnRpZmljYXRlIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jZXJ0aWZpY2F0ZW1hbmFnZXJcIjtcbmltcG9ydCB7XG4gIEFkZEJlaGF2aW9yT3B0aW9ucyxcbiAgQWxsb3dlZE1ldGhvZHMsXG4gIEJlaGF2aW9yT3B0aW9ucyxcbiAgQ2FjaGVDb29raWVCZWhhdmlvcixcbiAgQ2FjaGVIZWFkZXJCZWhhdmlvcixcbiAgQ2FjaGVQb2xpY3ksXG4gIENhY2hlUG9saWN5UHJvcHMsXG4gIENhY2hlUXVlcnlTdHJpbmdCZWhhdmlvcixcbiAgQ2FjaGVkTWV0aG9kcyxcbiAgRnVuY3Rpb24gYXMgQ2xvdWRGcm9udEZ1bmN0aW9uLFxuICBEaXN0cmlidXRpb24sXG4gIEZ1bmN0aW9uQXNzb2NpYXRpb24sXG4gIEZ1bmN0aW9uQ29kZSxcbiAgRnVuY3Rpb25FdmVudFR5cGUsXG4gIEhlYWRlcnNGcmFtZU9wdGlvbixcbiAgSGVhZGVyc1JlZmVycmVyUG9saWN5LFxuICBIdHRwVmVyc2lvbixcbiAgSU9yaWdpbixcbiAgSU9yaWdpblJlcXVlc3RQb2xpY3ksXG4gIE9yaWdpblByb3RvY29sUG9saWN5LFxuICBPcmlnaW5SZXF1ZXN0UG9saWN5LFxuICBSZXNwb25zZUhlYWRlcnNQb2xpY3ksXG4gIFJlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzLFxuICBSZXNwb25zZVNlY3VyaXR5SGVhZGVyc0JlaGF2aW9yLFxuICBTZWN1cml0eVBvbGljeVByb3RvY29sLFxuICBWaWV3ZXJQcm90b2NvbFBvbGljeSxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250XCI7XG5pbXBvcnQge1xuICBGdW5jdGlvblVybE9yaWdpbixcbiAgRnVuY3Rpb25VcmxPcmlnaW5XaXRoT0FDUHJvcHMsXG4gIFMzQnVja2V0T3JpZ2luLFxuICBWcGNPcmlnaW4sXG4gIFZwY09yaWdpbldpdGhFbmRwb2ludFByb3BzLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnQtb3JpZ2luc1wiO1xuaW1wb3J0IHsgQXBwbGljYXRpb25Mb2FkQmFsYW5jZXIgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjJcIjtcbmltcG9ydCB7IElGdW5jdGlvblVybCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5pbXBvcnQgeyBJQnVja2V0IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IE5leHRqc1R5cGUgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IE9wdGlvbmFsRGlzdHJpYnV0aW9uUHJvcHMgfSBmcm9tIFwiLi9nZW5lcmF0ZWQtc3RydWN0cy9PcHRpb25hbERpc3RyaWJ1dGlvblByb3BzXCI7XG5pbXBvcnQgeyBPcHRpb25hbFMzT3JpZ2luQnVja2V0V2l0aE9BQ1Byb3BzIH0gZnJvbSBcIi4vZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxTM09yaWdpbkJ1Y2tldFdpdGhPQUNQcm9wc1wiO1xuaW1wb3J0IHsgUHVibGljRGlyRW50cnkgfSBmcm9tIFwiLi9uZXh0anMtYnVpbGQvbmV4dGpzLWJ1aWxkXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV4dGpzRGlzdHJpYnV0aW9uT3ZlcnJpZGVzIHtcbiAgcmVhZG9ubHkgZGlzdHJpYnV0aW9uUHJvcHM/OiBPcHRpb25hbERpc3RyaWJ1dGlvblByb3BzO1xuICByZWFkb25seSBpbWFnZUJlaGF2aW9yT3B0aW9ucz86IEFkZEJlaGF2aW9yT3B0aW9ucztcbiAgcmVhZG9ubHkgaW1hZ2VDYWNoZVBvbGljeVByb3BzPzogQ2FjaGVQb2xpY3lQcm9wcztcbiAgcmVhZG9ubHkgaW1hZ2VSZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wcz86IFJlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzO1xuICByZWFkb25seSBkeW5hbWljQmVoYXZpb3JPcHRpb25zPzogQWRkQmVoYXZpb3JPcHRpb25zO1xuICByZWFkb25seSBkeW5hbWljQ2FjaGVQb2xpY3lQcm9wcz86IENhY2hlUG9saWN5UHJvcHM7XG4gIHJlYWRvbmx5IGR5bmFtaWNSZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wcz86IFJlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzO1xuICByZWFkb25seSBkeW5hbWljRnVuY3Rpb25VcmxPcmlnaW5XaXRoT0FDUHJvcHM/OiBGdW5jdGlvblVybE9yaWdpbldpdGhPQUNQcm9wcztcbiAgcmVhZG9ubHkgZHluYW1pY1ZwY09yaWdpbldpdGhFbmRwb2ludFByb3BzPzogVnBjT3JpZ2luV2l0aEVuZHBvaW50UHJvcHM7XG4gIHJlYWRvbmx5IHN0YXRpY0JlaGF2aW9yT3B0aW9ucz86IEFkZEJlaGF2aW9yT3B0aW9ucztcbiAgcmVhZG9ubHkgc3RhdGljUmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHM/OiBSZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wcztcbiAgcmVhZG9ubHkgczNCdWNrZXRPcmlnaW5Qcm9wcz86IE9wdGlvbmFsUzNPcmlnaW5CdWNrZXRXaXRoT0FDUHJvcHM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV4dGpzRGlzdHJpYnV0aW9uUHJvcHMge1xuICAvKipcbiAgICogQnVja2V0IGNvbnRhaW5pbmcgc3RhdGljIGFzc2V0cy5cbiAgICogTXVzdCBiZSBwcm92aWRlZCBpZiB5b3Ugd2FudCB0byBzZXJ2ZSBzdGF0aWMgZmlsZXMuXG4gICAqL1xuICByZWFkb25seSBhc3NldHNCdWNrZXQ6IElCdWNrZXQ7XG4gIHJlYWRvbmx5IGJhc2VQYXRoPzogc3RyaW5nO1xuICAvKipcbiAgICogT3B0aW9uYWwgYnV0IG9ubHkgYXBwbGljYWJsZSBmb3IgYE5leHRqc1R5cGUuR0xPQkFMX0NPTlRBSU5FUlNgXG4gICAqL1xuICByZWFkb25seSBjZXJ0aWZpY2F0ZT86IElDZXJ0aWZpY2F0ZTtcbiAgcmVhZG9ubHkgZGlzdHJpYnV0aW9uPzogRGlzdHJpYnV0aW9uO1xuICAvKipcbiAgICogUmVxdWlyZWQgaWYgYE5leHRqc1R5cGUuR0xPQkFMX0ZVTkNUSU9OU2BcbiAgICovXG4gIHJlYWRvbmx5IGZ1bmN0aW9uVXJsPzogSUZ1bmN0aW9uVXJsO1xuICAvKipcbiAgICogUmVxdWlyZWQgaWYgYE5leHRqc1R5cGUuR0xPQkFMX0NPTlRBSU5FUlNgIG9yIGBOZXh0anNUeXBlLlJFR0lPTkFMX0NPTlRBSU5FUlNgXG4gICAqL1xuICByZWFkb25seSBsb2FkQmFsYW5jZXI/OiBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlcjtcbiAgcmVhZG9ubHkgbmV4dGpzVHlwZTogTmV4dGpzVHlwZTtcbiAgLyoqXG4gICAqIE92ZXJyaWRlIHByb3BzIGZvciBldmVyeSBjb25zdHJ1Y3QuXG4gICAqL1xuICByZWFkb25seSBvdmVycmlkZXM/OiBOZXh0anNEaXN0cmlidXRpb25PdmVycmlkZXM7XG4gIC8qKlxuICAgKiBQYXRoIHRvIGRpcmVjdG9yeSBvZiBOZXh0LmpzIGFwcCdzIHB1YmxpYyBkaXJlY3RvcnkuIFVzZWQgdG8gYWRkIHN0YXRpY1xuICAgKiBiZWhhdmlvcnMgdG8gZGlzdHJpYnV0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGljRGlyRW50cmllczogUHVibGljRGlyRW50cnlbXTtcbn1cblxuZXhwb3J0IGNsYXNzIE5leHRqc0Rpc3RyaWJ1dGlvbiBleHRlbmRzIENvbnN0cnVjdCB7XG4gIGRpc3RyaWJ1dGlvbjogRGlzdHJpYnV0aW9uO1xuXG4gIHByaXZhdGUgcHJvcHM6IE5leHRqc0Rpc3RyaWJ1dGlvblByb3BzO1xuICAvKipcbiAgICogQ29tbW9uIHNlY3VyaXR5IGhlYWRlcnMgYXBwbGllZCBieSBkZWZhdWx0IHRvIGFsbCBvcmlnaW5zXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkRnJvbnQvbGF0ZXN0L0RldmVsb3Blckd1aWRlL3VzaW5nLW1hbmFnZWQtcmVzcG9uc2UtaGVhZGVycy1wb2xpY2llcy5odG1sI21hbmFnZWQtcmVzcG9uc2UtaGVhZGVycy1wb2xpY2llcy1zZWN1cml0eVxuICAgKi9cbiAgcHJpdmF0ZSBjb21tb25TZWN1cml0eUhlYWRlcnNCZWhhdmlvcjogUmVzcG9uc2VTZWN1cml0eUhlYWRlcnNCZWhhdmlvciA9IHtcbiAgICBjb250ZW50VHlwZU9wdGlvbnM6IHsgb3ZlcnJpZGU6IGZhbHNlIH0sXG4gICAgZnJhbWVPcHRpb25zOiB7XG4gICAgICBmcmFtZU9wdGlvbjogSGVhZGVyc0ZyYW1lT3B0aW9uLlNBTUVPUklHSU4sXG4gICAgICBvdmVycmlkZTogZmFsc2UsXG4gICAgfSxcbiAgICByZWZlcnJlclBvbGljeToge1xuICAgICAgb3ZlcnJpZGU6IGZhbHNlLFxuICAgICAgcmVmZXJyZXJQb2xpY3k6IEhlYWRlcnNSZWZlcnJlclBvbGljeS5TVFJJQ1RfT1JJR0lOX1dIRU5fQ1JPU1NfT1JJR0lOLFxuICAgIH0sXG5cbiAgICBzdHJpY3RUcmFuc3BvcnRTZWN1cml0eToge1xuICAgICAgYWNjZXNzQ29udHJvbE1heEFnZTogRHVyYXRpb24uZGF5cygzNjUpLFxuICAgICAgaW5jbHVkZVN1YmRvbWFpbnM6IHRydWUsXG4gICAgICBvdmVycmlkZTogZmFsc2UsXG4gICAgICBwcmVsb2FkOiB0cnVlLFxuICAgIH0sXG4gICAgeHNzUHJvdGVjdGlvbjogeyBvdmVycmlkZTogZmFsc2UsIHByb3RlY3Rpb246IHRydWUsIG1vZGVCbG9jazogdHJ1ZSB9LFxuICB9O1xuICBwcml2YXRlIHN0YXRpY09yaWdpbjogSU9yaWdpbjtcbiAgcHJpdmF0ZSBkeW5hbWljT3JpZ2luOiBJT3JpZ2luO1xuICBwcml2YXRlIGR5bmFtaWNPcmlnaW5SZXNwb25zZVBvbGljeTogSU9yaWdpblJlcXVlc3RQb2xpY3k7XG4gIHByaXZhdGUgZHluYW1pY0Nsb3VkRnJvbnRGdW5jdGlvbkFzc29jaWF0aW9uczogRnVuY3Rpb25Bc3NvY2lhdGlvbltdO1xuICBwcml2YXRlIGlzRnVuY3Rpb25Db21wdXRlOiBib29sZWFuO1xuICBwcml2YXRlIHN0YXRpY0JlaGF2aW9yT3B0aW9uczogQmVoYXZpb3JPcHRpb25zO1xuICBwcml2YXRlIGR5bmFtaWNCZWhhdmlvck9wdGlvbnM6IEJlaGF2aW9yT3B0aW9ucztcbiAgcHJpdmF0ZSBpbWFnZUJlaGF2aW9yT3B0aW9uczogQmVoYXZpb3JPcHRpb25zO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBOZXh0anNEaXN0cmlidXRpb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICAgIHRoaXMuc3RhdGljT3JpZ2luID0gdGhpcy5jcmVhdGVTdGF0aWNPcmlnaW4oKTtcbiAgICB0aGlzLmlzRnVuY3Rpb25Db21wdXRlID0gcHJvcHMubmV4dGpzVHlwZSA9PT0gTmV4dGpzVHlwZS5HTE9CQUxfRlVOQ1RJT05TO1xuICAgIHRoaXMuZHluYW1pY09yaWdpbiA9IHRoaXMuY3JlYXRlRHluYW1pY09yaWdpbigpO1xuICAgIHRoaXMuZHluYW1pY09yaWdpblJlc3BvbnNlUG9saWN5ID0gdGhpcy5jcmVhdGVEeW5hbWljT3JpZ2luUmVxdWVzdFBvbGljeSgpO1xuICAgIHRoaXMuZHluYW1pY0Nsb3VkRnJvbnRGdW5jdGlvbkFzc29jaWF0aW9ucyA9XG4gICAgICB0aGlzLmNyZWF0ZUR5bmFtaWNDbG91ZEZyb250RnVuY3Rpb25Bc3NvY2lhdGlvbnMoKTtcbiAgICB0aGlzLnN0YXRpY0JlaGF2aW9yT3B0aW9ucyA9IHRoaXMuY3JlYXRlU3RhdGljQmVoYXZpb3JPcHRpb25zKCk7XG4gICAgdGhpcy5keW5hbWljQmVoYXZpb3JPcHRpb25zID0gdGhpcy5jcmVhdGVEeW5hbWljQmVoYXZpb3JPcHRpb25zKCk7XG4gICAgdGhpcy5pbWFnZUJlaGF2aW9yT3B0aW9ucyA9IHRoaXMuY3JlYXRlSW1hZ2VCZWhhdmlvck9wdGlvbnMoKTtcbiAgICB0aGlzLmRpc3RyaWJ1dGlvbiA9IHRoaXMuZ2V0RGlzdHJpYnV0aW9uKCk7XG4gICAgdGhpcy5hZGRTdGF0aWNCZWhhdmlvcnMoKTtcbiAgICB0aGlzLmFkZER5bmFtaWNCZWhhdmlvcnMoKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlU3RhdGljT3JpZ2luKCk6IElPcmlnaW4ge1xuICAgIGNvbnN0IHMzT3JpZ2luID0gUzNCdWNrZXRPcmlnaW4ud2l0aE9yaWdpbkFjY2Vzc0NvbnRyb2woXG4gICAgICB0aGlzLnByb3BzLmFzc2V0c0J1Y2tldCxcbiAgICAgIHRoaXMucHJvcHMub3ZlcnJpZGVzPy5zM0J1Y2tldE9yaWdpblByb3BzLFxuICAgICk7XG4gICAgcmV0dXJuIHMzT3JpZ2luO1xuICB9XG4gIHByaXZhdGUgY3JlYXRlRHluYW1pY09yaWdpbigpOiBJT3JpZ2luIHtcbiAgICBpZiAodGhpcy5pc0Z1bmN0aW9uQ29tcHV0ZSkge1xuICAgICAgaWYgKCF0aGlzLnByb3BzLmZ1bmN0aW9uVXJsKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIE5leHRqc0Rpc3RyaWJ1dGlvblByb3BzLmZ1bmN0aW9uVXJsXCIpO1xuICAgICAgcmV0dXJuIEZ1bmN0aW9uVXJsT3JpZ2luLndpdGhPcmlnaW5BY2Nlc3NDb250cm9sKFxuICAgICAgICB0aGlzLnByb3BzLmZ1bmN0aW9uVXJsLFxuICAgICAgICB0aGlzLnByb3BzLm92ZXJyaWRlcz8uZHluYW1pY0Z1bmN0aW9uVXJsT3JpZ2luV2l0aE9BQ1Byb3BzLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbG9hZEJhbGFuY2VyID0gdGhpcy5wcm9wcy5sb2FkQmFsYW5jZXI7XG4gICAgICBpZiAoIWxvYWRCYWxhbmNlcilcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyBOZXh0anNEaXN0cmlidXRpb25Qcm9wcy5sb2FkQmFsYW5jZXJcIik7XG4gICAgICByZXR1cm4gVnBjT3JpZ2luLndpdGhBcHBsaWNhdGlvbkxvYWRCYWxhbmNlcihsb2FkQmFsYW5jZXIsIHtcbiAgICAgICAgcHJvdG9jb2xQb2xpY3k6IHRoaXMucHJvcHMuY2VydGlmaWNhdGVcbiAgICAgICAgICA/IE9yaWdpblByb3RvY29sUG9saWN5LkhUVFBTX09OTFlcbiAgICAgICAgICA6IE9yaWdpblByb3RvY29sUG9saWN5LkhUVFBfT05MWSxcbiAgICAgICAgLi4udGhpcy5wcm9wcy5vdmVycmlkZXM/LmR5bmFtaWNWcGNPcmlnaW5XaXRoRW5kcG9pbnRQcm9wcyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogTGFtYmRhIEZ1bmN0aW9uIFVSTHMgXCJleHBlY3QgdGhlIGBIb3N0YCBoZWFkZXIgdG8gY29udGFpbiB0aGUgb3JpZ2luIGRvbWFpblxuICAgKiBuYW1lLCBub3QgdGhlIGRvbWFpbiBuYW1lIG9mIHRoZSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbi5cIlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZEZyb250L2xhdGVzdC9EZXZlbG9wZXJHdWlkZS91c2luZy1tYW5hZ2VkLW9yaWdpbi1yZXF1ZXN0LXBvbGljaWVzLmh0bWwjbWFuYWdlZC1vcmlnaW4tcmVxdWVzdC1wb2xpY3ktYWxsLXZpZXdlci1leGNlcHQtaG9zdC1oZWFkZXJcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlRHluYW1pY09yaWdpblJlcXVlc3RQb2xpY3koKTogSU9yaWdpblJlcXVlc3RQb2xpY3kge1xuICAgIHJldHVybiB0aGlzLmlzRnVuY3Rpb25Db21wdXRlXG4gICAgICA/IE9yaWdpblJlcXVlc3RQb2xpY3kuQUxMX1ZJRVdFUl9FWENFUFRfSE9TVF9IRUFERVJcbiAgICAgIDogT3JpZ2luUmVxdWVzdFBvbGljeS5BTExfVklFV0VSO1xuICB9XG4gIC8qKlxuICAgKiBFbnN1cmVzIE5leHQuanMgYHJlcXVlc3QudXJsYCB3aWxsIGJlIGNvcnJlY3QgZG9tYWluIGluc3RlYWQgb2YgVVJMIG9mXG4gICAqIGNvbXB1dGUgb3B0aW9uIChBcHAgUnVubmVyLCBGYXJnYXRlLCBvciBMYW1iZGEpXG4gICAqIEBzZWUgaHR0cHM6Ly9vcGVuLW5leHQuanMub3JnL2FkdmFuY2VkL3dvcmthcm91bmQjd29ya2Fyb3VuZC1zZXQteC1mb3J3YXJkZWQtaG9zdC1oZWFkZXItYXdzLXNwZWNpZmljXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZUR5bmFtaWNDbG91ZEZyb250RnVuY3Rpb25Bc3NvY2lhdGlvbnMoKTogRnVuY3Rpb25Bc3NvY2lhdGlvbltdIHtcbiAgICBjb25zdCBhc3NvY2lhdGlvbnM6IEZ1bmN0aW9uQXNzb2NpYXRpb25bXSA9IFtdO1xuICAgIGlmICh0aGlzLmlzRnVuY3Rpb25Db21wdXRlKSB7XG4gICAgICBjb25zdCBjbG91ZEZyb250Rm4gPSBuZXcgQ2xvdWRGcm9udEZ1bmN0aW9uKHRoaXMsIFwiQ2xvdWRGcm9udEZuXCIsIHtcbiAgICAgICAgY29kZTogRnVuY3Rpb25Db2RlLmZyb21JbmxpbmUoYFxuICAgICAgICAgIGZ1bmN0aW9uIGhhbmRsZXIoZXZlbnQpIHtcbiAgICAgICAgICAgIHZhciByZXF1ZXN0ID0gZXZlbnQucmVxdWVzdDtcbiAgICAgICAgICAgIHJlcXVlc3QuaGVhZGVyc1tcIngtZm9yd2FyZGVkLWhvc3RcIl0gPSByZXF1ZXN0LmhlYWRlcnMuaG9zdDtcbiAgICAgICAgICAgIHJldHVybiByZXF1ZXN0O1xuICAgICAgICAgIH1cbiAgICAgICAgICBgKSxcbiAgICAgIH0pO1xuICAgICAgYXNzb2NpYXRpb25zLnB1c2goe1xuICAgICAgICBldmVudFR5cGU6IEZ1bmN0aW9uRXZlbnRUeXBlLlZJRVdFUl9SRVFVRVNULFxuICAgICAgICBmdW5jdGlvbjogY2xvdWRGcm9udEZuLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBhc3NvY2lhdGlvbnM7XG4gIH1cbiAgcHJpdmF0ZSBjcmVhdGVTdGF0aWNCZWhhdmlvck9wdGlvbnMoKTogQmVoYXZpb3JPcHRpb25zIHtcbiAgICBjb25zdCBzdGF0aWNCZWhhdmlvck9wdGlvbnMgPSB0aGlzLnByb3BzLm92ZXJyaWRlcz8uc3RhdGljQmVoYXZpb3JPcHRpb25zO1xuICAgIGNvbnN0IHJlc3BvbnNlSGVhZGVyc1BvbGljeSA9XG4gICAgICBzdGF0aWNCZWhhdmlvck9wdGlvbnM/LnJlc3BvbnNlSGVhZGVyc1BvbGljeSA/P1xuICAgICAgbmV3IFJlc3BvbnNlSGVhZGVyc1BvbGljeSh0aGlzLCBcIlN0YXRpY1Jlc3BvbnNlSGVhZGVyc1BvbGljeVwiLCB7XG4gICAgICAgIHNlY3VyaXR5SGVhZGVyc0JlaGF2aW9yOiB0aGlzLmNvbW1vblNlY3VyaXR5SGVhZGVyc0JlaGF2aW9yLFxuICAgICAgICBjb21tZW50OiBgTmV4dGpzIFN0YXRpYyBSZXNwb25zZSBIZWFkZXJzIFBvbGljeSBmb3IgJHtTdGFjay5vZih0aGlzKS5zdGFja05hbWV9YCxcbiAgICAgICAgLi4udGhpcy5wcm9wcy5vdmVycmlkZXM/LnN0YXRpY1Jlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzLFxuICAgICAgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFsbG93ZWRNZXRob2RzOiBBbGxvd2VkTWV0aG9kcy5BTExPV19HRVRfSEVBRF9PUFRJT05TLFxuICAgICAgY2FjaGVkTWV0aG9kczogQ2FjaGVkTWV0aG9kcy5DQUNIRV9HRVRfSEVBRF9PUFRJT05TLFxuICAgICAgY2FjaGVQb2xpY3k6IENhY2hlUG9saWN5LkNBQ0hJTkdfT1BUSU1JWkVELFxuICAgICAgb3JpZ2luOiB0aGlzLnN0YXRpY09yaWdpbixcbiAgICAgIHJlc3BvbnNlSGVhZGVyc1BvbGljeSxcbiAgICAgIHZpZXdlclByb3RvY29sUG9saWN5OiBWaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQUyxcbiAgICAgIC4uLnN0YXRpY0JlaGF2aW9yT3B0aW9ucyxcbiAgICB9O1xuICB9XG4gIHByaXZhdGUgY3JlYXRlRHluYW1pY0JlaGF2aW9yT3B0aW9ucygpOiBCZWhhdmlvck9wdGlvbnMge1xuICAgIGNvbnN0IGR5bmFtaWNCZWhhdmlvck9wdGlvbnMgPSB0aGlzLnByb3BzLm92ZXJyaWRlcz8uZHluYW1pY0JlaGF2aW9yT3B0aW9ucztcbiAgICAvLyBjcmVhdGUgZGVmYXVsdCBjYWNoZSBwb2xpY3kgaWYgbm90IHByb3ZpZGVkXG4gICAgY29uc3QgY2FjaGVQb2xpY3kgPVxuICAgICAgZHluYW1pY0JlaGF2aW9yT3B0aW9ucz8uY2FjaGVQb2xpY3kgPz9cbiAgICAgIG5ldyBDYWNoZVBvbGljeSh0aGlzLCBcIkR5bmFtaWNDYWNoZVBvbGljeVwiLCB7XG4gICAgICAgIHF1ZXJ5U3RyaW5nQmVoYXZpb3I6IENhY2hlUXVlcnlTdHJpbmdCZWhhdmlvci5hbGwoKSxcbiAgICAgICAgaGVhZGVyQmVoYXZpb3I6IENhY2hlSGVhZGVyQmVoYXZpb3IuYWxsb3dMaXN0KFxuICAgICAgICAgIFwiYWNjZXB0XCIsXG4gICAgICAgICAgXCJyc2NcIixcbiAgICAgICAgICBcIm5leHQtcm91dGVyLXByZWZldGNoXCIsXG4gICAgICAgICAgXCJuZXh0LXJvdXRlci1zdGF0ZS10cmVlXCIsXG4gICAgICAgICAgXCJuZXh0LXVybFwiLFxuICAgICAgICAgIFwieC1wcmVyZW5kZXItcmV2YWxpZGF0ZVwiLFxuICAgICAgICApLFxuICAgICAgICBjb29raWVCZWhhdmlvcjogQ2FjaGVDb29raWVCZWhhdmlvci5hbGwoKSxcbiAgICAgICAgZW5hYmxlQWNjZXB0RW5jb2RpbmdCcm90bGk6IHRydWUsXG4gICAgICAgIGVuYWJsZUFjY2VwdEVuY29kaW5nR3ppcDogdHJ1ZSxcbiAgICAgICAgY29tbWVudDogYE5leHRqcyBEeW5hbWljIENhY2hlIFBvbGljeSBmb3IgJHtTdGFjay5vZih0aGlzKS5zdGFja05hbWV9YCxcbiAgICAgICAgLi4udGhpcy5wcm9wcy5vdmVycmlkZXM/LmR5bmFtaWNDYWNoZVBvbGljeVByb3BzLFxuICAgICAgfSk7XG4gICAgY29uc3QgcmVzcG9uc2VIZWFkZXJzUG9saWN5ID1cbiAgICAgIGR5bmFtaWNCZWhhdmlvck9wdGlvbnM/LnJlc3BvbnNlSGVhZGVyc1BvbGljeSA/P1xuICAgICAgbmV3IFJlc3BvbnNlSGVhZGVyc1BvbGljeSh0aGlzLCBcIkR5bmFtaWNSZXNwb25zZUhlYWRlcnNQb2xpY3lcIiwge1xuICAgICAgICBzZWN1cml0eUhlYWRlcnNCZWhhdmlvcjogdGhpcy5jb21tb25TZWN1cml0eUhlYWRlcnNCZWhhdmlvcixcbiAgICAgICAgY29tbWVudDogYE5leHRqcyBEeW5hbWljIFJlc3BvbnNlIEhlYWRlcnMgUG9saWN5IGZvciAke1N0YWNrLm9mKHRoaXMpLnN0YWNrTmFtZX1gLFxuICAgICAgICAuLi50aGlzLnByb3BzLm92ZXJyaWRlcz8uZHluYW1pY0JlaGF2aW9yT3B0aW9ucz8ucmVzcG9uc2VIZWFkZXJzUG9saWN5LFxuICAgICAgfSk7XG4gICAgY29uc3QgYmVoYXZpb3JPcHRpb25zOiBCZWhhdmlvck9wdGlvbnMgPSB7XG4gICAgICBhbGxvd2VkTWV0aG9kczogQWxsb3dlZE1ldGhvZHMuQUxMT1dfQUxMLFxuICAgICAgY2FjaGVQb2xpY3ksXG4gICAgICBmdW5jdGlvbkFzc29jaWF0aW9uczogdGhpcy5keW5hbWljQ2xvdWRGcm9udEZ1bmN0aW9uQXNzb2NpYXRpb25zLFxuICAgICAgb3JpZ2luOiB0aGlzLmR5bmFtaWNPcmlnaW4sXG4gICAgICBvcmlnaW5SZXF1ZXN0UG9saWN5OiB0aGlzLmR5bmFtaWNPcmlnaW5SZXNwb25zZVBvbGljeSxcbiAgICAgIHJlc3BvbnNlSGVhZGVyc1BvbGljeSxcbiAgICAgIHZpZXdlclByb3RvY29sUG9saWN5OiBWaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQUyxcbiAgICAgIC4uLmR5bmFtaWNCZWhhdmlvck9wdGlvbnMsXG4gICAgfTtcbiAgICByZXR1cm4gYmVoYXZpb3JPcHRpb25zO1xuICB9XG4gIHByaXZhdGUgY3JlYXRlSW1hZ2VCZWhhdmlvck9wdGlvbnMoKTogQmVoYXZpb3JPcHRpb25zIHtcbiAgICBjb25zdCBpbWFnZUJlaGF2aW9yT3B0aW9ucyA9IHRoaXMucHJvcHMub3ZlcnJpZGVzPy5pbWFnZUJlaGF2aW9yT3B0aW9ucztcbiAgICAvLyBhZGQgZGVmYXVsdCBjYWNoZSBwb2xpY3kgaWYgbm90IHByb3ZpZGVkXG4gICAgY29uc3QgY2FjaGVQb2xpY3kgPVxuICAgICAgaW1hZ2VCZWhhdmlvck9wdGlvbnM/LmNhY2hlUG9saWN5ID8/XG4gICAgICBuZXcgQ2FjaGVQb2xpY3kodGhpcywgXCJJbWFnZUNhY2hlUG9saWN5XCIsIHtcbiAgICAgICAgLy8gU0VDVVJJVFkgTk9URTogYnkgZGVmYXVsdCB3ZSBkb24ndCBpbmNsdWRlIGNvb2tpZXMgaW4gY2FjaGUgZm9yXG4gICAgICAgIC8vIGltYWdlcyBiL2MgaXQgc2lnbmlmaWNhbnRseSBpbXByb3ZlcyBpbWFnZSBwZXJmIGZvciBtb3N0IHNpdGVzIEJVVFxuICAgICAgICAvLyBpZiB5b3UgaGF2ZSBwcml2YXRlIGltYWdlcyBsb2NrZWQgYmVoaW5kIGF1dGggaW1wbGVtZW50ZWQgd2l0aCBjb29raWVzXG4gICAgICAgIC8vIHlvdSBuZWVkIHRvIG92ZXJyaWRlIHRoaXMuXG4gICAgICAgIHF1ZXJ5U3RyaW5nQmVoYXZpb3I6IENhY2hlUXVlcnlTdHJpbmdCZWhhdmlvci5hbGwoKSxcbiAgICAgICAgaGVhZGVyQmVoYXZpb3I6IENhY2hlSGVhZGVyQmVoYXZpb3IuYWxsb3dMaXN0KFwiYWNjZXB0XCIpLFxuICAgICAgICBjb29raWVCZWhhdmlvcjogQ2FjaGVDb29raWVCZWhhdmlvci5ub25lKCksXG4gICAgICAgIGVuYWJsZUFjY2VwdEVuY29kaW5nQnJvdGxpOiB0cnVlLFxuICAgICAgICBlbmFibGVBY2NlcHRFbmNvZGluZ0d6aXA6IHRydWUsXG4gICAgICAgIGNvbW1lbnQ6IGBOZXh0anMgSW1hZ2UgQ2FjaGUgUG9saWN5IGZvciAke1N0YWNrLm9mKHRoaXMpLnN0YWNrTmFtZX1gLFxuICAgICAgICAuLi50aGlzLnByb3BzLm92ZXJyaWRlcz8uaW1hZ2VDYWNoZVBvbGljeVByb3BzLFxuICAgICAgfSk7XG4gICAgLy8gYWRkIGRlZmF1bHQgcmVzcG9uc2UgaGVhZGVycyBwb2xpY3kgaWYgbm90IHByb3ZpZGVkXG4gICAgY29uc3QgcmVzcG9uc2VIZWFkZXJzUG9saWN5ID1cbiAgICAgIGltYWdlQmVoYXZpb3JPcHRpb25zPy5yZXNwb25zZUhlYWRlcnNQb2xpY3kgPz9cbiAgICAgIG5ldyBSZXNwb25zZUhlYWRlcnNQb2xpY3kodGhpcywgXCJJbWFnZVJlc3BvbnNlSGVhZGVyc1BvbGljeVwiLCB7XG4gICAgICAgIHNlY3VyaXR5SGVhZGVyc0JlaGF2aW9yOiB0aGlzLmNvbW1vblNlY3VyaXR5SGVhZGVyc0JlaGF2aW9yLFxuICAgICAgICBjb21tZW50OiBgTmV4dGpzIEltYWdlIFJlc3BvbnNlIEhlYWRlcnMgUG9saWN5IGZvciAke1N0YWNrLm9mKHRoaXMpLnN0YWNrTmFtZX1gLFxuICAgICAgICAuLi50aGlzLnByb3BzLm92ZXJyaWRlcz8uaW1hZ2VSZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wcyxcbiAgICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICBhbGxvd2VkTWV0aG9kczogQWxsb3dlZE1ldGhvZHMuQUxMT1dfR0VUX0hFQURfT1BUSU9OUyxcbiAgICAgIGNhY2hlZE1ldGhvZHM6IENhY2hlZE1ldGhvZHMuQ0FDSEVfR0VUX0hFQURfT1BUSU9OUyxcbiAgICAgIGZ1bmN0aW9uQXNzb2NpYXRpb25zOiB0aGlzLmR5bmFtaWNDbG91ZEZyb250RnVuY3Rpb25Bc3NvY2lhdGlvbnMsXG4gICAgICBvcmlnaW46IHRoaXMuZHluYW1pY09yaWdpbixcbiAgICAgIG9yaWdpblJlcXVlc3RQb2xpY3k6IHRoaXMuZHluYW1pY09yaWdpblJlc3BvbnNlUG9saWN5LFxuICAgICAgY2FjaGVQb2xpY3ksXG4gICAgICByZXNwb25zZUhlYWRlcnNQb2xpY3ksXG4gICAgICB2aWV3ZXJQcm90b2NvbFBvbGljeTogVmlld2VyUHJvdG9jb2xQb2xpY3kuUkVESVJFQ1RfVE9fSFRUUFMsXG4gICAgICAuLi5pbWFnZUJlaGF2aW9yT3B0aW9ucyxcbiAgICB9O1xuICB9XG4gIC8qKlxuICAgKiBDcmVhdGVzIG9yIHVzZXMgdXNlciBzcGVjaWZpZWQgQ2xvdWRGcm9udCBEaXN0cmlidXRpb25cbiAgICovXG4gIHByaXZhdGUgZ2V0RGlzdHJpYnV0aW9uKCk6IERpc3RyaWJ1dGlvbiB7XG4gICAgbGV0IGRpc3RyaWJ1dGlvbjogRGlzdHJpYnV0aW9uO1xuICAgIGlmICh0aGlzLnByb3BzLmRpc3RyaWJ1dGlvbikge1xuICAgICAgZGlzdHJpYnV0aW9uID0gdGhpcy5wcm9wcy5kaXN0cmlidXRpb247XG4gICAgfSBlbHNlIHtcbiAgICAgIGRpc3RyaWJ1dGlvbiA9IG5ldyBEaXN0cmlidXRpb24odGhpcywgXCJEaXN0cmlidXRpb25cIiwge1xuICAgICAgICBtaW5pbXVtUHJvdG9jb2xWZXJzaW9uOiBTZWN1cml0eVBvbGljeVByb3RvY29sLlRMU19WMV8yXzIwMjEsXG4gICAgICAgIGRlZmF1bHRCZWhhdmlvcjogdGhpcy5keW5hbWljQmVoYXZpb3JPcHRpb25zLFxuICAgICAgICAvLyBiZXN0IHRvIHVzZSBIVFRQIDIgYW5kIDMgZm9yIGNvbXBhdGFiaWxpdHkgKEhUVFAgMikgYW5kIHBlcmZvcm1hbmNlIChIVFRQMylcbiAgICAgICAgLy8gQ2xvdWRGcm9udCB3aWxsIGNob29zZSBiZXN0IG9wdGlvbiBmb3IgY2xpZW50XG4gICAgICAgIGh0dHBWZXJzaW9uOiBIdHRwVmVyc2lvbi5IVFRQMl9BTkRfMyxcbiAgICAgICAgY29tbWVudDogYGNkay1uZXh0anMgRGlzdHJpYnV0aW9uIGZvciAke1N0YWNrLm9mKHRoaXMpLnN0YWNrTmFtZX1gLFxuICAgICAgICAuLi50aGlzLnByb3BzLm92ZXJyaWRlcz8uZGlzdHJpYnV0aW9uUHJvcHMsXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGRpc3RyaWJ1dGlvbjtcbiAgfVxuICBwcml2YXRlIGFkZER5bmFtaWNCZWhhdmlvcnMoKSB7XG4gICAgLy8gSW1hZ2UgQmVoYXZpb3JcbiAgICB0aGlzLmRpc3RyaWJ1dGlvbi5hZGRCZWhhdmlvcihcbiAgICAgIHRoaXMuZ2V0UGF0aFBhdHRlcm4oXCJfbmV4dC9pbWFnZSpcIiksXG4gICAgICB0aGlzLmltYWdlQmVoYXZpb3JPcHRpb25zLm9yaWdpbixcbiAgICAgIHRoaXMuaW1hZ2VCZWhhdmlvck9wdGlvbnMsXG4gICAgKTtcbiAgICAvLyBSb290IFBhdGggQmVoYXZpb3JzXG4gICAgaWYgKHRoaXMucHJvcHMuYmFzZVBhdGgpIHtcbiAgICAgIC8vIGJlY2F1c2Ugd2UgYWxyZWFkeSBoYXZlIGEgYmFzZVBhdGggd2UgZG9uJ3QgdXNlIC8gaW5zdGVhZCB3ZSB1c2UgL2Jhc2UtcGF0aFxuICAgICAgdGhpcy5kaXN0cmlidXRpb24uYWRkQmVoYXZpb3IoXG4gICAgICAgIHRoaXMucHJvcHMuYmFzZVBhdGgsXG4gICAgICAgIHRoaXMuZHluYW1pY0JlaGF2aW9yT3B0aW9ucy5vcmlnaW4sXG4gICAgICAgIHRoaXMuZHluYW1pY0JlaGF2aW9yT3B0aW9ucyxcbiAgICAgICk7XG4gICAgICAvLyB3aGVuIGJhc2VQYXRoIGlzIHNldCwgd2UgZW11bGF0ZSB0aGUgXCJkZWZhdWx0IGJlaGF2aW9yXCIgKCopIGZvciB0aGUgc2l0ZSBhcyBgL2Jhc2UtcGF0aC8qYFxuICAgICAgdGhpcy5kaXN0cmlidXRpb24uYWRkQmVoYXZpb3IoXG4gICAgICAgIHRoaXMuZ2V0UGF0aFBhdHRlcm4oXCIqXCIpLFxuICAgICAgICB0aGlzLmR5bmFtaWNCZWhhdmlvck9wdGlvbnMub3JpZ2luLFxuICAgICAgICB0aGlzLmR5bmFtaWNCZWhhdmlvck9wdGlvbnMsXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBpZiBubyBiYXNlIHBhdGgsIHRoZW4gZGVmYXVsdCBiZWhhdmlvciB3aWxsIGhhbmRsZSBhbGwgb3RoZXIgcGF0aHNcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBhZGRTdGF0aWNCZWhhdmlvcnMoKSB7XG4gICAgdGhpcy5kaXN0cmlidXRpb24uYWRkQmVoYXZpb3IoXG4gICAgICB0aGlzLmdldFBhdGhQYXR0ZXJuKFwiX25leHQvc3RhdGljKlwiKSxcbiAgICAgIHRoaXMuc3RhdGljT3JpZ2luLFxuICAgICAgdGhpcy5zdGF0aWNCZWhhdmlvck9wdGlvbnMsXG4gICAgKTtcbiAgICAvLyAyMiA9IDI1IChtYXgpIC0gMSAoX25leHQvaW1hZ2UpIC0gMSAoX25leHQvc3RhdGljKSAtIDEgKCopXG4gICAgaWYgKHRoaXMucHJvcHMucHVibGljRGlyRW50cmllcy5sZW5ndGggPj0gMjIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFRvbyBtYW55IHB1YmxpYy8gZmlsZXMgaW4gTmV4dC5qcyBidWlsZC4gQ2xvdWRGcm9udCBsaW1pdHMgRGlzdHJpYnV0aW9ucyB0byAyNSBDYWNoZSBCZWhhdmlvcnMuIFNlZSBkb2N1bWVudGVkIGxpbWl0IGhlcmU6IGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZEZyb250L2xhdGVzdC9EZXZlbG9wZXJHdWlkZS9jbG91ZGZyb250LWxpbWl0cy5odG1sI2xpbWl0cy13ZWItZGlzdHJpYnV0aW9ucy4gVHJ5IGluY2x1ZGluZyBhbGwgcHVibGljIGZpbGVzIGludG8gMSB0b3AgbGV2ZWwgZGlyZWN0b3J5IChpLmUuIHN0YXRpYy8qKS5gLFxuICAgICAgKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBwdWJsaWNGaWxlIG9mIHRoaXMucHJvcHMucHVibGljRGlyRW50cmllcykge1xuICAgICAgY29uc3QgcGF0aFBhdHRlcm4gPSBwdWJsaWNGaWxlLmlzRGlyZWN0b3J5XG4gICAgICAgID8gYCR7cHVibGljRmlsZS5uYW1lfS8qYFxuICAgICAgICA6IHB1YmxpY0ZpbGUubmFtZTtcbiAgICAgIGlmICghL15bYS16QS1aMC05X1xcLS4qJC9+XCInQDorPyZdKyQvLnRlc3QocGF0aFBhdHRlcm4pKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgSW52YWxpZCBDbG91ZEZyb250IERpc3RyaWJ1dGlvbiBDYWNoZSBCZWhhdmlvciBQYXRoIFBhdHRlcm46ICR7cGF0aFBhdHRlcm59LiBQbGVhc2Ugc2VlIGRvY3VtZW50YXRpb24gaGVyZTogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkRnJvbnQvbGF0ZXN0L0RldmVsb3Blckd1aWRlL2Rpc3RyaWJ1dGlvbi13ZWItdmFsdWVzLXNwZWNpZnkuaHRtbCNEb3dubG9hZERpc3RWYWx1ZXNQYXRoUGF0dGVybmAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBjb25zdCBmaW5hbFBhdGhQYXR0ZXJuID0gdGhpcy5nZXRQYXRoUGF0dGVybihwYXRoUGF0dGVybik7XG4gICAgICB0aGlzLmRpc3RyaWJ1dGlvbi5hZGRCZWhhdmlvcihcbiAgICAgICAgZmluYWxQYXRoUGF0dGVybixcbiAgICAgICAgdGhpcy5zdGF0aWNPcmlnaW4sXG4gICAgICAgIHRoaXMuc3RhdGljQmVoYXZpb3JPcHRpb25zLFxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIE9wdGlvbmFsbHkgcHJlcGVuZHMgYmFzZSBwYXRoIHRvIGdpdmVuIHBhdGggcGF0dGVybi5cbiAgICovXG4gIHByaXZhdGUgZ2V0UGF0aFBhdHRlcm4ocGF0aFBhdHRlcm46IHN0cmluZykge1xuICAgIGlmICh0aGlzLnByb3BzLmJhc2VQYXRoKSB7XG4gICAgICByZXR1cm4gYCR7dGhpcy5wcm9wcy5iYXNlUGF0aH0vJHtwYXRoUGF0dGVybn1gO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcGF0aFBhdHRlcm47XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -71,5 +71,5 @@ class NextjsFileSystem extends constructs_1.Construct {
|
|
|
71
71
|
}
|
|
72
72
|
exports.NextjsFileSystem = NextjsFileSystem;
|
|
73
73
|
_a = JSII_RTTI_SYMBOL_1;
|
|
74
|
-
NextjsFileSystem[_a] = { fqn: "cdk-nextjs.NextjsFileSystem", version: "0.
|
|
74
|
+
NextjsFileSystem[_a] = { fqn: "cdk-nextjs.NextjsFileSystem", version: "0.4.1" };
|
|
75
75
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dGpzLWZpbGUtc3lzdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL25leHRqcy1maWxlLXN5c3RlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUE0QztBQUU1QyxpREFNNkI7QUFFN0IsMkNBQXVDO0FBaUJ2Qzs7O0dBR0c7QUFDSCxNQUFhLGdCQUFpQixTQUFRLHNCQUFTO0lBSzdDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBNEI7UUFDcEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUNEOzs7Ozs7Ozs7Ozs7T0FZRztJQUNLLGdCQUFnQjtRQUN0QixNQUFNLFVBQVUsR0FBRyxJQUFJLG9CQUFVLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRTtZQUNwRCxTQUFTLEVBQUUsSUFBSTtZQUNmLGVBQWUsRUFBRSx5QkFBZSxDQUFDLGFBQWE7WUFDOUMsYUFBYSxFQUFFLDJCQUFhLENBQUMsT0FBTztZQUNwQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHO1lBQ25CLG9CQUFvQixFQUFFLEtBQUs7WUFDM0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxlQUFlO1NBQ3pDLENBQUMsQ0FBQztRQUNILE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFDTyxpQkFBaUI7UUFDdkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ25CLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNuQixNQUFNLFdBQVcsR0FBRyxJQUFJLHFCQUFXLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRTtZQUN2RCxxRUFBcUU7WUFDckUsa0RBQWtEO1lBQ2xELFNBQVMsRUFBRTtnQkFDVCxRQUFRLEVBQUUsR0FBRztnQkFDYixRQUFRLEVBQUUsR0FBRztnQkFDYixXQUFXLEVBQUUsS0FBSzthQUNuQjtZQUNELFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQiw0RUFBNEU7WUFDNUUsSUFBSSxFQUFFLGFBQWE7WUFDbkIsZ0ZBQWdGO1lBQ2hGLFNBQVMsRUFBRTtnQkFDVCxHQUFHO2dCQUNILEdBQUc7YUFDSjtZQUNELEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCO1NBQzFDLENBQUMsQ0FBQztRQUNILE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFDRCxZQUFZLENBQUMsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFxQjtRQUNuRCxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDOztBQTdESCw0Q0E4REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZW1vdmFsUG9saWN5IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBDb25uZWN0aW9ucywgSVZwYyB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCI7XG5pbXBvcnQge1xuICBBY2Nlc3NQb2ludCxcbiAgQWNjZXNzUG9pbnRQcm9wcyxcbiAgRmlsZVN5c3RlbSxcbiAgRmlsZVN5c3RlbVByb3BzLFxuICBMaWZlY3ljbGVQb2xpY3ksXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWZzXCI7XG5pbXBvcnQgeyBJUm9sZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5leHRqc0ZpbGVTeXN0ZW1PdmVycmlkZXMge1xuICByZWFkb25seSBmaWxlU3lzdGVtUHJvcHM/OiBGaWxlU3lzdGVtUHJvcHM7XG4gIHJlYWRvbmx5IGFjY2Vzc1BvaW50UHJvcHM/OiBBY2Nlc3NQb2ludFByb3BzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5leHRqc0ZpbGVTeXN0ZW1Qcm9wcyB7XG4gIHJlYWRvbmx5IG92ZXJyaWRlcz86IE5leHRqc0ZpbGVTeXN0ZW1PdmVycmlkZXM7XG4gIHJlYWRvbmx5IHZwYzogSVZwYztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBbGxvd0NvbXB1dGVQcm9wcyB7XG4gIHJlYWRvbmx5IGNvbm5lY3Rpb25zOiBDb25uZWN0aW9ucztcbiAgcmVhZG9ubHkgcm9sZTogSVJvbGU7XG59XG5cbi8qKlxuICogTmV4dC5qcyBOZXR3b3JrIEZpbGUgU3lzdGVtIGVuYWJsaW5nIHNoYXJpbmcgb2YgaW1hZ2Ugb3B0aW1pemF0aW9uIGNhY2hlLFxuICogZGF0YSBjYWNoLCBhbmQgcGFnZXMgY2FjaGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBOZXh0anNGaWxlU3lzdGVtIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgZmlsZVN5c3RlbTogRmlsZVN5c3RlbTtcbiAgYWNjZXNzUG9pbnQ6IEFjY2Vzc1BvaW50O1xuICBwcml2YXRlIHByb3BzOiBOZXh0anNGaWxlU3lzdGVtUHJvcHM7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IE5leHRqc0ZpbGVTeXN0ZW1Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICAgIHRoaXMuZmlsZVN5c3RlbSA9IHRoaXMuY3JlYXRlRmlsZVN5c3RlbSgpO1xuICAgIHRoaXMuYWNjZXNzUG9pbnQgPSB0aGlzLmNyZWF0ZUFjY2Vzc1BvaW50KCk7XG4gIH1cbiAgLyoqXG4gICAqIENyZWF0ZXMgRUZTIEZpbGUgU3lzdGVtXG4gICAqXG4gICAqIE5vdGUsIHRoZSByZXNvdXJjZSBwb2xpY3kgZm9yIHRoZSBGaWxlIFN5c3RlbSB3aWxsIGluY2x1ZGUgdGhlIGJvb2xlYW5cbiAgICogY29uZGl0aW9uLCBgXCJlbGFzdGljZmlsZXN5c3RlbTpBY2Nlc3NlZFZpYU1vdW50VGFyZ2V0XCI6IFwidHJ1ZVwiYCB3aGljaCBmcm9tXG4gICAqIENESyBbZG9jc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Nkay9hcGkvdjIvZG9jcy9hd3MtY2RrLWxpYi5hd3NfZWZzLXJlYWRtZS5odG1sI3Blcm1pc3Npb25zKVxuICAgKiBzYXlzLCBcIm9ubHkgYWxsb3cgYWNjZXNzIHRvIGNsaWVudHMgdXNpbmcgSUFNIGF1dGhlbnRpY2F0aW9uIGFuZCBkZW55IGFjY2Vzc1xuICAgKiB0byBhbm9ueW1vdXMgY2xpZW50c1wiLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9lZnMvbGF0ZXN0L3VnL2FjY2Vzcy1jb250cm9sLWJsb2NrLXB1YmxpYy1hY2Nlc3MuaHRtbFxuICAgKlxuICAgKiBJZGVhbGx5IHdlIGNvdWxkIGFkZCBJQU0gc3RyaW5nIGNvbmRpdGlvbiBgZWxhc3RpY2ZpbGVzeXN0ZW06QWNjZXNzUG9pbnRBcm5gXG4gICAqIHRvIHRoZSByZXNvdXJjZSBwb2xpY3kgYnV0IHRoaXMgY2F1c2VzIGNpcmN1bGFyIGRlcGVuZGVuY3kuXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZUZpbGVTeXN0ZW0oKSB7XG4gICAgY29uc3QgZmlsZVN5c3RlbSA9IG5ldyBGaWxlU3lzdGVtKHRoaXMsIFwiRmlsZVN5c3RlbVwiLCB7XG4gICAgICBlbmNyeXB0ZWQ6IHRydWUsXG4gICAgICBsaWZlY3ljbGVQb2xpY3k6IExpZmVjeWNsZVBvbGljeS5BRlRFUl8zMF9EQVlTLFxuICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgdnBjOiB0aGlzLnByb3BzLnZwYyxcbiAgICAgIGFsbG93QW5vbnltb3VzQWNjZXNzOiBmYWxzZSxcbiAgICAgIC4uLnRoaXMucHJvcHMub3ZlcnJpZGVzPy5maWxlU3lzdGVtUHJvcHMsXG4gICAgfSk7XG4gICAgcmV0dXJuIGZpbGVTeXN0ZW07XG4gIH1cbiAgcHJpdmF0ZSBjcmVhdGVBY2Nlc3NQb2ludCgpIHtcbiAgICBjb25zdCB1aWQgPSBcIjEwMDFcIjtcbiAgICBjb25zdCBnaWQgPSBcIjEwMDFcIjtcbiAgICBjb25zdCBhY2Nlc3NQb2ludCA9IG5ldyBBY2Nlc3NQb2ludCh0aGlzLCBcIkFjY2Vzc1BvaW50XCIsIHtcbiAgICAgIC8vIGFzIC9jZGstbmV4dGpzIGRvZXNuJ3QgZXhpc3QgaW4gYSBuZXcgZWZzIGZpbGVzeXN0ZW0sIHRoZSBlZnMgd2lsbFxuICAgICAgLy8gY3JlYXRlIHRoZSBkaXJlY3Rvcnkgd2l0aCB0aGUgZm9sbG93aW5nIG9wdGlvbnNcbiAgICAgIGNyZWF0ZUFjbDoge1xuICAgICAgICBvd25lckdpZDogZ2lkLFxuICAgICAgICBvd25lclVpZDogdWlkLFxuICAgICAgICBwZXJtaXNzaW9uczogXCI3NTVcIixcbiAgICAgIH0sXG4gICAgICBmaWxlU3lzdGVtOiB0aGlzLmZpbGVTeXN0ZW0sXG4gICAgICAvLyBhcmJpdHJhcmlseSBuYW1lZCBwYXRoIHdoaWNoIGlzIGV4cG9zZWQgdG8gTkZTIGNsaWVudHM6IGxhbWJkYSBvciBmYXJnYXRlXG4gICAgICBwYXRoOiBcIi9jZGstbmV4dGpzXCIsXG4gICAgICAvLyBlbmZvcmNlIFBPU0lYIGlkZW50aXR5IHNvIGNvbnRhaW5lciB3aWwgYWNjZXNzIGZpbGUgc3lzdGVtIHdpdGggdGhpcyBpZGVudGl0eVxuICAgICAgcG9zaXhVc2VyOiB7XG4gICAgICAgIGdpZCxcbiAgICAgICAgdWlkLFxuICAgICAgfSxcbiAgICAgIC4uLnRoaXMucHJvcHMub3ZlcnJpZGVzPy5hY2Nlc3NQb2ludFByb3BzLFxuICAgIH0pO1xuICAgIHJldHVybiBhY2Nlc3NQb2ludDtcbiAgfVxuICBhbGxvd0NvbXB1dGUoeyBjb25uZWN0aW9ucywgcm9sZSB9OiBBbGxvd0NvbXB1dGVQcm9wcykge1xuICAgIHRoaXMuZmlsZVN5c3RlbS5jb25uZWN0aW9ucy5hbGxvd0RlZmF1bHRQb3J0RnJvbShjb25uZWN0aW9ucyk7XG4gICAgdGhpcy5maWxlU3lzdGVtLmdyYW50UmVhZFdyaXRlKHJvbGUpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { CustomResource } from "aws-cdk-lib";
|
|
2
|
+
import { IDistribution } from "aws-cdk-lib/aws-cloudfront";
|
|
3
|
+
import { IVpc } from "aws-cdk-lib/aws-ec2";
|
|
4
|
+
import { AccessPoint } from "aws-cdk-lib/aws-efs";
|
|
5
|
+
import { Function as LambdaFunction } from "aws-cdk-lib/aws-lambda";
|
|
6
|
+
import { Bucket } from "aws-cdk-lib/aws-s3";
|
|
7
|
+
import { Construct } from "constructs";
|
|
8
|
+
import { OptionalCustomResourceProps } from "./generated-structs/OptionalCustomResourceProps";
|
|
9
|
+
import { OptionalFunctionProps } from "./generated-structs/OptionalFunctionProps";
|
|
10
|
+
import { OptionalPostDeployCustomResourceProperties } from "./generated-structs/OptionalPostDeployCustomResourceProperties";
|
|
11
|
+
export interface NextjsPostDeployOverrides {
|
|
12
|
+
readonly functionProps?: OptionalFunctionProps;
|
|
13
|
+
/**
|
|
14
|
+
* Props that define the custom resource
|
|
15
|
+
*/
|
|
16
|
+
readonly customResourceProps?: OptionalCustomResourceProps;
|
|
17
|
+
/**
|
|
18
|
+
* Properties passed into custom resource that are passed to Lambda event handler.
|
|
19
|
+
*/
|
|
20
|
+
readonly customResourceProperties?: OptionalPostDeployCustomResourceProperties;
|
|
21
|
+
}
|
|
22
|
+
export interface NextjsPostDeployProps {
|
|
23
|
+
readonly accessPoint: AccessPoint;
|
|
24
|
+
readonly buildId: string;
|
|
25
|
+
/**
|
|
26
|
+
* @see {@link NextjsBuild.buildImageDigest}
|
|
27
|
+
*/
|
|
28
|
+
readonly buildImageDigest: string;
|
|
29
|
+
/**
|
|
30
|
+
* If true, logs details in custom resource lambda
|
|
31
|
+
* @default true
|
|
32
|
+
*/
|
|
33
|
+
readonly debug?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* CloudFront Distribution to invalidate
|
|
36
|
+
*/
|
|
37
|
+
readonly distribution?: IDistribution;
|
|
38
|
+
/**
|
|
39
|
+
* Override props for every construct.
|
|
40
|
+
*/
|
|
41
|
+
readonly overrides?: NextjsPostDeployOverrides;
|
|
42
|
+
/**
|
|
43
|
+
* @see {@link NextjsBaseProps.relativePathToPackage}
|
|
44
|
+
*/
|
|
45
|
+
readonly relativePathToPackage?: string;
|
|
46
|
+
/**
|
|
47
|
+
* Required for `NextjsType.GlobalFunctions` and `NextjsType.GlobalContainers`
|
|
48
|
+
*/
|
|
49
|
+
readonly staticAssetsBucket?: Bucket;
|
|
50
|
+
readonly vpc: IVpc;
|
|
51
|
+
}
|
|
52
|
+
export interface PostDeployCustomResourceProperties {
|
|
53
|
+
/**
|
|
54
|
+
* Build ID of current deployment. Used to prune FileSystem of directories
|
|
55
|
+
* with old build ids and prune S3 based on metadat and `msTtl`
|
|
56
|
+
*/
|
|
57
|
+
readonly buildId: string;
|
|
58
|
+
/**
|
|
59
|
+
* @see {@link NextjsBuild.buildImageDigest}
|
|
60
|
+
*/
|
|
61
|
+
readonly buildImageDigest: string;
|
|
62
|
+
/**
|
|
63
|
+
* @see https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudfront/command/CreateInvalidationCommand/
|
|
64
|
+
* @default
|
|
65
|
+
* {
|
|
66
|
+
distributionId: this.props.distribution?.distributionId,
|
|
67
|
+
invalidationBatch: {
|
|
68
|
+
callerReference: new Date().toISOString(),
|
|
69
|
+
paths: {
|
|
70
|
+
quantity: 1,
|
|
71
|
+
items: ["/*"], // invalidate all paths
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
}
|
|
75
|
+
*/
|
|
76
|
+
readonly createInvalidationCommandInput?: Record<string, any>;
|
|
77
|
+
/**
|
|
78
|
+
* Time to live in milliseconds
|
|
79
|
+
*
|
|
80
|
+
* Must be string because of CloudFormation Custom Resource limitation
|
|
81
|
+
* @default (1000 * 60 * 60 * 24 * 30).toString()
|
|
82
|
+
*/
|
|
83
|
+
readonly msTtl: string;
|
|
84
|
+
readonly staticAssetsBucketName?: string;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Performs post deployment tasks in custom resource.
|
|
88
|
+
*
|
|
89
|
+
* 1. CloudFront Invalidation (defaults to /*)
|
|
90
|
+
* 2. Prunes FileSystem by removing directories that don't match this deployments BUILD_ID
|
|
91
|
+
* 3. Prune S3 by removing objects that don't have next-build-id metadata of
|
|
92
|
+
* current build id AND are older than `msTtl`
|
|
93
|
+
*/
|
|
94
|
+
export declare class NextjsPostDeploy extends Construct {
|
|
95
|
+
customResource: CustomResource;
|
|
96
|
+
lambdaFunction: LambdaFunction;
|
|
97
|
+
private props;
|
|
98
|
+
constructor(scope: Construct, id: string, props: NextjsPostDeployProps);
|
|
99
|
+
private createFunction;
|
|
100
|
+
private createCustomResource;
|
|
101
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.NextjsPostDeploy = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const node_path_1 = require("node:path");
|
|
7
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
8
|
+
const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
|
|
9
|
+
const constructs_1 = require("constructs");
|
|
10
|
+
const constants_1 = require("./constants");
|
|
11
|
+
const get_architecture_1 = require("./utils/get-architecture");
|
|
12
|
+
/**
|
|
13
|
+
* Performs post deployment tasks in custom resource.
|
|
14
|
+
*
|
|
15
|
+
* 1. CloudFront Invalidation (defaults to /*)
|
|
16
|
+
* 2. Prunes FileSystem by removing directories that don't match this deployments BUILD_ID
|
|
17
|
+
* 3. Prune S3 by removing objects that don't have next-build-id metadata of
|
|
18
|
+
* current build id AND are older than `msTtl`
|
|
19
|
+
*/
|
|
20
|
+
class NextjsPostDeploy extends constructs_1.Construct {
|
|
21
|
+
constructor(scope, id, props) {
|
|
22
|
+
super(scope, id);
|
|
23
|
+
this.props = props;
|
|
24
|
+
this.lambdaFunction = this.createFunction();
|
|
25
|
+
this.customResource = this.createCustomResource();
|
|
26
|
+
}
|
|
27
|
+
createFunction() {
|
|
28
|
+
const fn = new aws_lambda_1.Function(this, "Fn", {
|
|
29
|
+
architecture: (0, get_architecture_1.getLambdaArchitecture)(),
|
|
30
|
+
code: aws_lambda_1.Code.fromAsset((0, node_path_1.join)(__dirname, "../assets/lambdas/post-deploy/post-deploy.lambda")),
|
|
31
|
+
filesystem: aws_lambda_1.FileSystem.fromEfsAccessPoint(this.props.accessPoint, constants_1.MOUNT_PATH),
|
|
32
|
+
handler: "index.handler",
|
|
33
|
+
memorySize: 2048,
|
|
34
|
+
runtime: new aws_lambda_1.Runtime("nodejs22.x", aws_lambda_1.RuntimeFamily.NODEJS),
|
|
35
|
+
timeout: aws_cdk_lib_1.Duration.minutes(5),
|
|
36
|
+
vpc: this.props.vpc,
|
|
37
|
+
...this.props.overrides?.functionProps,
|
|
38
|
+
});
|
|
39
|
+
this.props.distribution?.grantCreateInvalidation(fn);
|
|
40
|
+
if (this.props.debug !== false) {
|
|
41
|
+
fn.addEnvironment("DEBUG", "1");
|
|
42
|
+
}
|
|
43
|
+
this.props.staticAssetsBucket?.grantReadWrite(fn);
|
|
44
|
+
return fn;
|
|
45
|
+
}
|
|
46
|
+
createCustomResource() {
|
|
47
|
+
const properties = {
|
|
48
|
+
// ensures this CR runs each time new builder image
|
|
49
|
+
buildId: this.props.buildId,
|
|
50
|
+
buildImageDigest: this.props.buildImageDigest,
|
|
51
|
+
msTtl: (1000 * 60 * 60 * 24 * 30).toString(), // 1 month
|
|
52
|
+
staticAssetsBucketName: this.props.staticAssetsBucket?.bucketName,
|
|
53
|
+
createInvalidationCommandInput: this.props.distribution
|
|
54
|
+
? {
|
|
55
|
+
distributionId: this.props.distribution.distributionId,
|
|
56
|
+
invalidationBatch: {
|
|
57
|
+
callerReference: new Date().toISOString(),
|
|
58
|
+
paths: {
|
|
59
|
+
quantity: 1,
|
|
60
|
+
items: ["/*"],
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
}
|
|
64
|
+
: undefined,
|
|
65
|
+
...this.props.overrides?.customResourceProperties,
|
|
66
|
+
};
|
|
67
|
+
return new aws_cdk_lib_1.CustomResource(this, "CustomResource", {
|
|
68
|
+
properties,
|
|
69
|
+
resourceType: "Custom::NextjsPostDeploy",
|
|
70
|
+
serviceToken: this.lambdaFunction.functionArn,
|
|
71
|
+
...this.props.overrides?.customResourceProps,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
exports.NextjsPostDeploy = NextjsPostDeploy;
|
|
76
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
77
|
+
NextjsPostDeploy[_a] = { fqn: "cdk-nextjs.NextjsPostDeploy", version: "0.4.1" };
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dGpzLXBvc3QtZGVwbG95LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL25leHRqcy1wb3N0LWRlcGxveS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHlDQUFpQztBQUNqQyw2Q0FBdUQ7QUFJdkQsdURBTWdDO0FBRWhDLDJDQUF1QztBQUN2QywyQ0FBeUM7QUFJekMsK0RBQWlFO0FBZ0ZqRTs7Ozs7OztHQU9HO0FBQ0gsTUFBYSxnQkFBaUIsU0FBUSxzQkFBUztJQU03QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTRCO1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDNUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0lBRU8sY0FBYztRQUNwQixNQUFNLEVBQUUsR0FBRyxJQUFJLHFCQUFjLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRTtZQUN4QyxZQUFZLEVBQUUsSUFBQSx3Q0FBcUIsR0FBRTtZQUNyQyxJQUFJLEVBQUUsaUJBQUksQ0FBQyxTQUFTLENBQ2xCLElBQUEsZ0JBQUksRUFBQyxTQUFTLEVBQUUsa0RBQWtELENBQUMsQ0FDcEU7WUFDRCxVQUFVLEVBQUUsdUJBQVUsQ0FBQyxrQkFBa0IsQ0FDdkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQ3RCLHNCQUFVLENBQ1g7WUFDRCxPQUFPLEVBQUUsZUFBZTtZQUN4QixVQUFVLEVBQUUsSUFBSTtZQUNoQixPQUFPLEVBQUUsSUFBSSxvQkFBTyxDQUFDLFlBQVksRUFBRSwwQkFBYSxDQUFDLE1BQU0sQ0FBQztZQUN4RCxPQUFPLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQzVCLEdBQUcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUc7WUFDbkIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxhQUFhO1NBQ3ZDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLHVCQUF1QixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDL0IsRUFBRSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbEMsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUUsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixNQUFNLFVBQVUsR0FBdUM7WUFDckQsbURBQW1EO1lBQ25ELE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU87WUFDM0IsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0I7WUFDN0MsS0FBSyxFQUFFLENBQUMsSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLFVBQVU7WUFDeEQsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxVQUFVO1lBQ2pFLDhCQUE4QixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWTtnQkFDckQsQ0FBQyxDQUFDO29CQUNFLGNBQWMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxjQUFjO29CQUN0RCxpQkFBaUIsRUFBRTt3QkFDakIsZUFBZSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO3dCQUN6QyxLQUFLLEVBQUU7NEJBQ0wsUUFBUSxFQUFFLENBQUM7NEJBQ1gsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDO3lCQUNkO3FCQUNGO2lCQUNGO2dCQUNILENBQUMsQ0FBQyxTQUFTO1lBQ2IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSx3QkFBd0I7U0FDbEQsQ0FBQztRQUNGLE9BQU8sSUFBSSw0QkFBYyxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtZQUNoRCxVQUFVO1lBQ1YsWUFBWSxFQUFFLDBCQUEwQjtZQUN4QyxZQUFZLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXO1lBQzdDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsbUJBQW1CO1NBQzdDLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBakVILDRDQWtFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpvaW4gfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBDdXN0b21SZXNvdXJjZSwgRHVyYXRpb24gfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IElEaXN0cmlidXRpb24gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnRcIjtcbmltcG9ydCB7IElWcGMgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuaW1wb3J0IHsgQWNjZXNzUG9pbnQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVmc1wiO1xuaW1wb3J0IHtcbiAgQ29kZSxcbiAgRmlsZVN5c3RlbSxcbiAgRnVuY3Rpb24gYXMgTGFtYmRhRnVuY3Rpb24sXG4gIFJ1bnRpbWUsXG4gIFJ1bnRpbWVGYW1pbHksXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5pbXBvcnQgeyBCdWNrZXQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgTU9VTlRfUEFUSCB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgT3B0aW9uYWxDdXN0b21SZXNvdXJjZVByb3BzIH0gZnJvbSBcIi4vZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxDdXN0b21SZXNvdXJjZVByb3BzXCI7XG5pbXBvcnQgeyBPcHRpb25hbEZ1bmN0aW9uUHJvcHMgfSBmcm9tIFwiLi9nZW5lcmF0ZWQtc3RydWN0cy9PcHRpb25hbEZ1bmN0aW9uUHJvcHNcIjtcbmltcG9ydCB7IE9wdGlvbmFsUG9zdERlcGxveUN1c3RvbVJlc291cmNlUHJvcGVydGllcyB9IGZyb20gXCIuL2dlbmVyYXRlZC1zdHJ1Y3RzL09wdGlvbmFsUG9zdERlcGxveUN1c3RvbVJlc291cmNlUHJvcGVydGllc1wiO1xuaW1wb3J0IHsgZ2V0TGFtYmRhQXJjaGl0ZWN0dXJlIH0gZnJvbSBcIi4vdXRpbHMvZ2V0LWFyY2hpdGVjdHVyZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5leHRqc1Bvc3REZXBsb3lPdmVycmlkZXMge1xuICByZWFkb25seSBmdW5jdGlvblByb3BzPzogT3B0aW9uYWxGdW5jdGlvblByb3BzO1xuICAvKipcbiAgICogUHJvcHMgdGhhdCBkZWZpbmUgdGhlIGN1c3RvbSByZXNvdXJjZVxuICAgKi9cbiAgcmVhZG9ubHkgY3VzdG9tUmVzb3VyY2VQcm9wcz86IE9wdGlvbmFsQ3VzdG9tUmVzb3VyY2VQcm9wcztcbiAgLyoqXG4gICAqIFByb3BlcnRpZXMgcGFzc2VkIGludG8gY3VzdG9tIHJlc291cmNlIHRoYXQgYXJlIHBhc3NlZCB0byBMYW1iZGEgZXZlbnQgaGFuZGxlci5cbiAgICovXG4gIHJlYWRvbmx5IGN1c3RvbVJlc291cmNlUHJvcGVydGllcz86IE9wdGlvbmFsUG9zdERlcGxveUN1c3RvbVJlc291cmNlUHJvcGVydGllcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZXh0anNQb3N0RGVwbG95UHJvcHMge1xuICByZWFkb25seSBhY2Nlc3NQb2ludDogQWNjZXNzUG9pbnQ7XG4gIHJlYWRvbmx5IGJ1aWxkSWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE5leHRqc0J1aWxkLmJ1aWxkSW1hZ2VEaWdlc3R9XG4gICAqL1xuICByZWFkb25seSBidWlsZEltYWdlRGlnZXN0OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJZiB0cnVlLCBsb2dzIGRldGFpbHMgaW4gY3VzdG9tIHJlc291cmNlIGxhbWJkYVxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBkZWJ1Zz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBDbG91ZEZyb250IERpc3RyaWJ1dGlvbiB0byBpbnZhbGlkYXRlXG4gICAqL1xuICByZWFkb25seSBkaXN0cmlidXRpb24/OiBJRGlzdHJpYnV0aW9uO1xuICAvKipcbiAgICogT3ZlcnJpZGUgcHJvcHMgZm9yIGV2ZXJ5IGNvbnN0cnVjdC5cbiAgICovXG4gIHJlYWRvbmx5IG92ZXJyaWRlcz86IE5leHRqc1Bvc3REZXBsb3lPdmVycmlkZXM7XG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBOZXh0anNCYXNlUHJvcHMucmVsYXRpdmVQYXRoVG9QYWNrYWdlfVxuICAgKi9cbiAgcmVhZG9ubHkgcmVsYXRpdmVQYXRoVG9QYWNrYWdlPzogc3RyaW5nO1xuICAvKipcbiAgICogUmVxdWlyZWQgZm9yIGBOZXh0anNUeXBlLkdsb2JhbEZ1bmN0aW9uc2AgYW5kIGBOZXh0anNUeXBlLkdsb2JhbENvbnRhaW5lcnNgXG4gICAqL1xuICByZWFkb25seSBzdGF0aWNBc3NldHNCdWNrZXQ/OiBCdWNrZXQ7XG4gIHJlYWRvbmx5IHZwYzogSVZwYztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQb3N0RGVwbG95Q3VzdG9tUmVzb3VyY2VQcm9wZXJ0aWVzIHtcbiAgLyoqXG4gICAqIEJ1aWxkIElEIG9mIGN1cnJlbnQgZGVwbG95bWVudC4gVXNlZCB0byBwcnVuZSBGaWxlU3lzdGVtIG9mIGRpcmVjdG9yaWVzXG4gICAqIHdpdGggb2xkIGJ1aWxkIGlkcyBhbmQgcHJ1bmUgUzMgYmFzZWQgb24gbWV0YWRhdCBhbmQgYG1zVHRsYFxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRJZDogc3RyaW5nO1xuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTmV4dGpzQnVpbGQuYnVpbGRJbWFnZURpZ2VzdH1cbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkSW1hZ2VEaWdlc3Q6IHN0cmluZztcbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0phdmFTY3JpcHRTREsvdjMvbGF0ZXN0L2NsaWVudC9jbG91ZGZyb250L2NvbW1hbmQvQ3JlYXRlSW52YWxpZGF0aW9uQ29tbWFuZC9cbiAgICogQGRlZmF1bHRcbiAgICoge1xuICAgICAgICBkaXN0cmlidXRpb25JZDogdGhpcy5wcm9wcy5kaXN0cmlidXRpb24/LmRpc3RyaWJ1dGlvbklkLFxuICAgICAgICBpbnZhbGlkYXRpb25CYXRjaDoge1xuICAgICAgICAgIGNhbGxlclJlZmVyZW5jZTogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICAgIHBhdGhzOiB7XG4gICAgICAgICAgICBxdWFudGl0eTogMSxcbiAgICAgICAgICAgIGl0ZW1zOiBbXCIvKlwiXSwgLy8gaW52YWxpZGF0ZSBhbGwgcGF0aHNcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlSW52YWxpZGF0aW9uQ29tbWFuZElucHV0PzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgLyoqXG4gICAqIFRpbWUgdG8gbGl2ZSBpbiBtaWxsaXNlY29uZHNcbiAgICpcbiAgICogTXVzdCBiZSBzdHJpbmcgYmVjYXVzZSBvZiBDbG91ZEZvcm1hdGlvbiBDdXN0b20gUmVzb3VyY2UgbGltaXRhdGlvblxuICAgKiBAZGVmYXVsdCAoMTAwMCAqIDYwICogNjAgKiAyNCAqIDMwKS50b1N0cmluZygpXG4gICAqL1xuICByZWFkb25seSBtc1R0bDogc3RyaW5nO1xuICByZWFkb25seSBzdGF0aWNBc3NldHNCdWNrZXROYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBlcmZvcm1zIHBvc3QgZGVwbG95bWVudCB0YXNrcyBpbiBjdXN0b20gcmVzb3VyY2UuXG4gKlxuICogMS4gQ2xvdWRGcm9udCBJbnZhbGlkYXRpb24gKGRlZmF1bHRzIHRvIC8qKVxuICogMi4gUHJ1bmVzIEZpbGVTeXN0ZW0gYnkgcmVtb3ZpbmcgZGlyZWN0b3JpZXMgdGhhdCBkb24ndCBtYXRjaCB0aGlzIGRlcGxveW1lbnRzIEJVSUxEX0lEXG4gKiAzLiBQcnVuZSBTMyBieSByZW1vdmluZyBvYmplY3RzIHRoYXQgZG9uJ3QgaGF2ZSBuZXh0LWJ1aWxkLWlkIG1ldGFkYXRhIG9mXG4gKiBjdXJyZW50IGJ1aWxkIGlkIEFORCBhcmUgb2xkZXIgdGhhbiBgbXNUdGxgXG4gKi9cbmV4cG9ydCBjbGFzcyBOZXh0anNQb3N0RGVwbG95IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgY3VzdG9tUmVzb3VyY2U6IEN1c3RvbVJlc291cmNlO1xuICBsYW1iZGFGdW5jdGlvbjogTGFtYmRhRnVuY3Rpb247XG5cbiAgcHJpdmF0ZSBwcm9wczogTmV4dGpzUG9zdERlcGxveVByb3BzO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBOZXh0anNQb3N0RGVwbG95UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgICB0aGlzLmxhbWJkYUZ1bmN0aW9uID0gdGhpcy5jcmVhdGVGdW5jdGlvbigpO1xuICAgIHRoaXMuY3VzdG9tUmVzb3VyY2UgPSB0aGlzLmNyZWF0ZUN1c3RvbVJlc291cmNlKCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUZ1bmN0aW9uKCkge1xuICAgIGNvbnN0IGZuID0gbmV3IExhbWJkYUZ1bmN0aW9uKHRoaXMsIFwiRm5cIiwge1xuICAgICAgYXJjaGl0ZWN0dXJlOiBnZXRMYW1iZGFBcmNoaXRlY3R1cmUoKSxcbiAgICAgIGNvZGU6IENvZGUuZnJvbUFzc2V0KFxuICAgICAgICBqb2luKF9fZGlybmFtZSwgXCIuLi9hc3NldHMvbGFtYmRhcy9wb3N0LWRlcGxveS9wb3N0LWRlcGxveS5sYW1iZGFcIiksXG4gICAgICApLFxuICAgICAgZmlsZXN5c3RlbTogRmlsZVN5c3RlbS5mcm9tRWZzQWNjZXNzUG9pbnQoXG4gICAgICAgIHRoaXMucHJvcHMuYWNjZXNzUG9pbnQsXG4gICAgICAgIE1PVU5UX1BBVEgsXG4gICAgICApLFxuICAgICAgaGFuZGxlcjogXCJpbmRleC5oYW5kbGVyXCIsXG4gICAgICBtZW1vcnlTaXplOiAyMDQ4LFxuICAgICAgcnVudGltZTogbmV3IFJ1bnRpbWUoXCJub2RlanMyMi54XCIsIFJ1bnRpbWVGYW1pbHkuTk9ERUpTKSxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLm1pbnV0ZXMoNSksXG4gICAgICB2cGM6IHRoaXMucHJvcHMudnBjLFxuICAgICAgLi4udGhpcy5wcm9wcy5vdmVycmlkZXM/LmZ1bmN0aW9uUHJvcHMsXG4gICAgfSk7XG4gICAgdGhpcy5wcm9wcy5kaXN0cmlidXRpb24/LmdyYW50Q3JlYXRlSW52YWxpZGF0aW9uKGZuKTtcbiAgICBpZiAodGhpcy5wcm9wcy5kZWJ1ZyAhPT0gZmFsc2UpIHtcbiAgICAgIGZuLmFkZEVudmlyb25tZW50KFwiREVCVUdcIiwgXCIxXCIpO1xuICAgIH1cbiAgICB0aGlzLnByb3BzLnN0YXRpY0Fzc2V0c0J1Y2tldD8uZ3JhbnRSZWFkV3JpdGUoZm4pO1xuICAgIHJldHVybiBmbjtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ3VzdG9tUmVzb3VyY2UoKSB7XG4gICAgY29uc3QgcHJvcGVydGllczogUG9zdERlcGxveUN1c3RvbVJlc291cmNlUHJvcGVydGllcyA9IHtcbiAgICAgIC8vIGVuc3VyZXMgdGhpcyBDUiBydW5zIGVhY2ggdGltZSBuZXcgYnVpbGRlciBpbWFnZVxuICAgICAgYnVpbGRJZDogdGhpcy5wcm9wcy5idWlsZElkLFxuICAgICAgYnVpbGRJbWFnZURpZ2VzdDogdGhpcy5wcm9wcy5idWlsZEltYWdlRGlnZXN0LFxuICAgICAgbXNUdGw6ICgxMDAwICogNjAgKiA2MCAqIDI0ICogMzApLnRvU3RyaW5nKCksIC8vIDEgbW9udGhcbiAgICAgIHN0YXRpY0Fzc2V0c0J1Y2tldE5hbWU6IHRoaXMucHJvcHMuc3RhdGljQXNzZXRzQnVja2V0Py5idWNrZXROYW1lLFxuICAgICAgY3JlYXRlSW52YWxpZGF0aW9uQ29tbWFuZElucHV0OiB0aGlzLnByb3BzLmRpc3RyaWJ1dGlvblxuICAgICAgICA/IHtcbiAgICAgICAgICAgIGRpc3RyaWJ1dGlvbklkOiB0aGlzLnByb3BzLmRpc3RyaWJ1dGlvbi5kaXN0cmlidXRpb25JZCxcbiAgICAgICAgICAgIGludmFsaWRhdGlvbkJhdGNoOiB7XG4gICAgICAgICAgICAgIGNhbGxlclJlZmVyZW5jZTogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICAgICAgICBwYXRoczoge1xuICAgICAgICAgICAgICAgIHF1YW50aXR5OiAxLFxuICAgICAgICAgICAgICAgIGl0ZW1zOiBbXCIvKlwiXSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIC4uLnRoaXMucHJvcHMub3ZlcnJpZGVzPy5jdXN0b21SZXNvdXJjZVByb3BlcnRpZXMsXG4gICAgfTtcbiAgICByZXR1cm4gbmV3IEN1c3RvbVJlc291cmNlKHRoaXMsIFwiQ3VzdG9tUmVzb3VyY2VcIiwge1xuICAgICAgcHJvcGVydGllcyxcbiAgICAgIHJlc291cmNlVHlwZTogXCJDdXN0b206Ok5leHRqc1Bvc3REZXBsb3lcIixcbiAgICAgIHNlcnZpY2VUb2tlbjogdGhpcy5sYW1iZGFGdW5jdGlvbi5mdW5jdGlvbkFybixcbiAgICAgIC4uLnRoaXMucHJvcHMub3ZlcnJpZGVzPy5jdXN0b21SZXNvdXJjZVByb3BzLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -29,5 +29,5 @@ class NextjsStaticAssets extends constructs_1.Construct {
|
|
|
29
29
|
}
|
|
30
30
|
exports.NextjsStaticAssets = NextjsStaticAssets;
|
|
31
31
|
_a = JSII_RTTI_SYMBOL_1;
|
|
32
|
-
NextjsStaticAssets[_a] = { fqn: "cdk-nextjs.NextjsStaticAssets", version: "0.
|
|
32
|
+
NextjsStaticAssets[_a] = { fqn: "cdk-nextjs.NextjsStaticAssets", version: "0.4.1" };
|
|
33
33
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dGpzLXN0YXRpYy1hc3NldHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbmV4dGpzLXN0YXRpYy1hc3NldHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBNEM7QUFDNUMsK0NBSzRCO0FBQzVCLDJDQUF1QztBQWN2Qzs7R0FFRztBQUNILE1BQWEsa0JBQW1CLFNBQVEsc0JBQVM7SUFLL0MsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE4QjtRQUN0RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFTyxZQUFZO1FBQ2xCLE9BQU8sSUFBSSxlQUFNLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRTtZQUNoQyxhQUFhLEVBQUUsMkJBQWEsQ0FBQyxPQUFPO1lBQ3BDLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsVUFBVSxFQUFFLElBQUk7WUFDaEIsaUJBQWlCLEVBQUUsMEJBQWlCLENBQUMsU0FBUztZQUM5QyxVQUFVLEVBQUUseUJBQWdCLENBQUMsVUFBVTtZQUN2QyxpQkFBaUIsRUFBRSxHQUFHO1lBQ3RCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsV0FBVztTQUNyQyxDQUFDLENBQUM7SUFDTCxDQUFDOztBQXJCSCxnREFzQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZW1vdmFsUG9saWN5IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQge1xuICBCbG9ja1B1YmxpY0FjY2VzcyxcbiAgQnVja2V0LFxuICBCdWNrZXRFbmNyeXB0aW9uLFxuICBCdWNrZXRQcm9wcyxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBOZXh0anNTdGF0aWNBc3NldHNPdmVycmlkZXMge1xuICByZWFkb25seSBidWNrZXRQcm9wcz86IEJ1Y2tldFByb3BzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5leHRqc1N0YXRpY0Fzc2V0c1Byb3BzIHtcbiAgcmVhZG9ubHkgb3ZlcnJpZGVzPzogTmV4dGpzU3RhdGljQXNzZXRzT3ZlcnJpZGVzO1xuICAvKipcbiAgICogUmVxdWlyZWQgaWYgYE5leHRqc1R5cGUuUkVHSU9OQUxfQ09OVEFJTkVSU2BcbiAgICovXG4gIHJlYWRvbmx5IHZwY0lkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgUzMgQnVja2V0IGZvciBwdWJsaWMgYW5kIF9uZXh0L3N0YXRpYyBhc3NldHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBOZXh0anNTdGF0aWNBc3NldHMgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBidWNrZXQ6IEJ1Y2tldDtcblxuICBwcml2YXRlIHByb3BzOiBOZXh0anNTdGF0aWNBc3NldHNQcm9wcztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTmV4dGpzU3RhdGljQXNzZXRzUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgICB0aGlzLmJ1Y2tldCA9IHRoaXMuY3JlYXRlQnVja2V0KCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUJ1Y2tldCgpIHtcbiAgICByZXR1cm4gbmV3IEJ1Y2tldCh0aGlzLCBcIkJ1Y2tldFwiLCB7XG4gICAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgICBhdXRvRGVsZXRlT2JqZWN0czogdHJ1ZSxcbiAgICAgIGVuZm9yY2VTU0w6IHRydWUsXG4gICAgICBibG9ja1B1YmxpY0FjY2VzczogQmxvY2tQdWJsaWNBY2Nlc3MuQkxPQ0tfQUxMLFxuICAgICAgZW5jcnlwdGlvbjogQnVja2V0RW5jcnlwdGlvbi5TM19NQU5BR0VELFxuICAgICAgbWluaW11bVRMU1ZlcnNpb246IDEuMixcbiAgICAgIC4uLnRoaXMucHJvcHMub3ZlcnJpZGVzPy5idWNrZXRQcm9wcyxcbiAgICB9KTtcbiAgfVxufVxuIl19
|