cdk-nextjs 0.1.0 → 0.1.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.
Files changed (132) hide show
  1. package/.jsii +13834 -0
  2. package/.prettierrc +0 -0
  3. package/API.md +9655 -0
  4. package/LICENSE +202 -0
  5. package/README.md +164 -2
  6. package/THIRD-PARTY-LICENSES.md +31 -0
  7. package/assets/lambdas/assets-deployment/assets-deployment.lambda/assets-deployment.Dockerfile +18 -0
  8. package/assets/lambdas/assets-deployment/assets-deployment.lambda/index.js +8833 -0
  9. package/assets/lambdas/revalidate/revalidate.lambda/index.js +67 -0
  10. package/assets/lambdas/sign-fn-url/sign-fn-url.edge-lambda/index.js +2024 -0
  11. package/docs/breaking-changes.md +8 -0
  12. package/docs/cdk-nextjs-NextjsGlobalContainers.png +0 -0
  13. package/docs/cdk-nextjs-NextjsGlobalFunctions.png +0 -0
  14. package/docs/cdk-nextjs-NextjsRegionalContainers.png +0 -0
  15. package/docs/cdk-nextjs.drawio +163 -0
  16. package/docs/notes.md +26 -0
  17. package/examples/README.md +15 -0
  18. package/lib/common.d.ts +23 -0
  19. package/lib/common.js +28 -0
  20. package/lib/generated-structs/OptionalApplicationLoadBalancedTaskImageOptions.d.ts +106 -0
  21. package/lib/generated-structs/OptionalApplicationLoadBalancedTaskImageOptions.js +3 -0
  22. package/lib/generated-structs/OptionalCloudFrontFunctionProps.d.ts +43 -0
  23. package/lib/generated-structs/OptionalCloudFrontFunctionProps.js +3 -0
  24. package/lib/generated-structs/OptionalClusterProps.d.ts +62 -0
  25. package/lib/generated-structs/OptionalClusterProps.js +3 -0
  26. package/lib/generated-structs/OptionalDistributionProps.d.ts +155 -0
  27. package/lib/generated-structs/OptionalDistributionProps.js +3 -0
  28. package/lib/generated-structs/OptionalDockerImageAssetProps.d.ts +124 -0
  29. package/lib/generated-structs/OptionalDockerImageAssetProps.js +3 -0
  30. package/lib/generated-structs/OptionalDockerImageFunctionProps.d.ts +399 -0
  31. package/lib/generated-structs/OptionalDockerImageFunctionProps.js +3 -0
  32. package/lib/generated-structs/OptionalEdgeFunctionProps.d.ts +428 -0
  33. package/lib/generated-structs/OptionalEdgeFunctionProps.js +3 -0
  34. package/lib/generated-structs/OptionalFunctionProps.d.ts +422 -0
  35. package/lib/generated-structs/OptionalFunctionProps.js +3 -0
  36. package/lib/generated-structs/OptionalFunctionUrlProps.d.ts +30 -0
  37. package/lib/generated-structs/OptionalFunctionUrlProps.js +3 -0
  38. package/lib/generated-structs/OptionalNextjsAssetsDeploymentProps.d.ts +40 -0
  39. package/lib/generated-structs/OptionalNextjsAssetsDeploymentProps.js +3 -0
  40. package/lib/generated-structs/OptionalNextjsBuildProps.d.ts +26 -0
  41. package/lib/generated-structs/OptionalNextjsBuildProps.js +3 -0
  42. package/lib/generated-structs/OptionalNextjsContainersProps.d.ts +39 -0
  43. package/lib/generated-structs/OptionalNextjsContainersProps.js +3 -0
  44. package/lib/generated-structs/OptionalNextjsDistributionProps.d.ts +45 -0
  45. package/lib/generated-structs/OptionalNextjsDistributionProps.js +3 -0
  46. package/lib/generated-structs/OptionalNextjsFileSystemProps.d.ts +10 -0
  47. package/lib/generated-structs/OptionalNextjsFileSystemProps.js +3 -0
  48. package/lib/generated-structs/OptionalNextjsInvalidationProps.d.ts +11 -0
  49. package/lib/generated-structs/OptionalNextjsInvalidationProps.js +3 -0
  50. package/lib/generated-structs/OptionalNextjsVpcProps.d.ts +16 -0
  51. package/lib/generated-structs/OptionalNextjsVpcProps.js +3 -0
  52. package/lib/generated-structs/OptionalS3OriginBucketWithOACProps.d.ts +70 -0
  53. package/lib/generated-structs/OptionalS3OriginBucketWithOACProps.js +3 -0
  54. package/lib/generated-structs/OptionalVpcProps.d.ts +224 -0
  55. package/lib/generated-structs/OptionalVpcProps.js +3 -0
  56. package/lib/index.d.ts +35 -0
  57. package/lib/index.js +32 -0
  58. package/lib/lambdas/assets-deployment/assets-deployment-function.d.ts +13 -0
  59. package/lib/lambdas/assets-deployment/assets-deployment-function.js +22 -0
  60. package/lib/lambdas/assets-deployment/assets-deployment.lambda.d.ts +2 -0
  61. package/lib/lambdas/assets-deployment/assets-deployment.lambda.js +63 -0
  62. package/lib/lambdas/assets-deployment/common.d.ts +8 -0
  63. package/lib/lambdas/assets-deployment/common.js +32 -0
  64. package/lib/lambdas/assets-deployment/fs-to-fs.d.ts +2 -0
  65. package/lib/lambdas/assets-deployment/fs-to-fs.js +9 -0
  66. package/lib/lambdas/assets-deployment/fs-to-s3.d.ts +2 -0
  67. package/lib/lambdas/assets-deployment/fs-to-s3.js +45 -0
  68. package/lib/lambdas/assets-deployment/prune-s3.d.ts +15 -0
  69. package/lib/lambdas/assets-deployment/prune-s3.js +42 -0
  70. package/lib/lambdas/assets-deployment/s3.d.ts +2 -0
  71. package/lib/lambdas/assets-deployment/s3.js +7 -0
  72. package/lib/lambdas/assets-deployment/utils.d.ts +18 -0
  73. package/lib/lambdas/assets-deployment/utils.js +35 -0
  74. package/lib/lambdas/revalidate/revalidate-function.d.ts +13 -0
  75. package/lib/lambdas/revalidate/revalidate-function.js +22 -0
  76. package/lib/lambdas/revalidate/revalidate.lambda.d.ts +2 -0
  77. package/lib/lambdas/revalidate/revalidate.lambda.js +53 -0
  78. package/lib/lambdas/sign-fn-url/sign-fn-url-function.d.ts +13 -0
  79. package/lib/lambdas/sign-fn-url/sign-fn-url-function.js +23 -0
  80. package/lib/lambdas/sign-fn-url/sign-fn-url.edge-lambda.d.ts +9 -0
  81. package/lib/lambdas/sign-fn-url/sign-fn-url.edge-lambda.js +35 -0
  82. package/lib/lambdas/sign-fn-url/sign-request.d.ts +28 -0
  83. package/lib/lambdas/sign-fn-url/sign-request.js +119 -0
  84. package/lib/lambdas/sign-fn-url/sign-request.test.d.ts +1 -0
  85. package/lib/lambdas/sign-fn-url/sign-request.test.js +129 -0
  86. package/lib/nextjs-assets-deployment.d.ts +116 -0
  87. package/lib/nextjs-assets-deployment.js +93 -0
  88. package/lib/nextjs-build/add-cache-handler.d.ts +1 -0
  89. package/lib/nextjs-build/add-cache-handler.js +23 -0
  90. package/lib/nextjs-build/add-cache-handler.mjs +18 -0
  91. package/lib/nextjs-build/builder.Dockerfile +25 -0
  92. package/lib/nextjs-build/cache-handler.cjs +21080 -0
  93. package/lib/nextjs-build/cache-handler.d.ts +6 -0
  94. package/lib/nextjs-build/cache-handler.js +22 -0
  95. package/lib/nextjs-build/global-containers.Dockerfile +45 -0
  96. package/lib/nextjs-build/global-functions.Dockerfile +46 -0
  97. package/lib/nextjs-build/nextjs-build.d.ts +150 -0
  98. package/lib/nextjs-build/nextjs-build.js +220 -0
  99. package/lib/nextjs-build/regional-containers.Dockerfile +45 -0
  100. package/lib/nextjs-build/symlink-full-route-cache.d.ts +1 -0
  101. package/lib/nextjs-build/symlink-full-route-cache.js +37 -0
  102. package/lib/nextjs-build/symlink-full-route-cache.mjs +23 -0
  103. package/lib/nextjs-compute/nextjs-compute-base-props.d.ts +8 -0
  104. package/lib/nextjs-compute/nextjs-compute-base-props.js +3 -0
  105. package/lib/nextjs-compute/nextjs-containers.d.ts +43 -0
  106. package/lib/nextjs-compute/nextjs-containers.js +149 -0
  107. package/lib/nextjs-compute/nextjs-functions.d.ts +23 -0
  108. package/lib/nextjs-compute/nextjs-functions.js +57 -0
  109. package/lib/nextjs-distribution.d.ts +107 -0
  110. package/lib/nextjs-distribution.js +331 -0
  111. package/lib/nextjs-file-system.d.ts +42 -0
  112. package/lib/nextjs-file-system.js +74 -0
  113. package/lib/nextjs-invalidation.d.ts +19 -0
  114. package/lib/nextjs-invalidation.js +52 -0
  115. package/lib/nextjs-revalidation.d.ts +30 -0
  116. package/lib/nextjs-revalidation.js +65 -0
  117. package/lib/nextjs-static-assets.d.ts +21 -0
  118. package/lib/nextjs-static-assets.js +33 -0
  119. package/lib/nextjs-vpc.d.ts +42 -0
  120. package/lib/nextjs-vpc.js +64 -0
  121. package/lib/root-constructs/nextjs-base-overrides.d.ts +26 -0
  122. package/lib/root-constructs/nextjs-base-overrides.js +3 -0
  123. package/lib/root-constructs/nextjs-base-props.d.ts +56 -0
  124. package/lib/root-constructs/nextjs-base-props.js +3 -0
  125. package/lib/root-constructs/nextjs-global-containers.d.ts +74 -0
  126. package/lib/root-constructs/nextjs-global-containers.js +125 -0
  127. package/lib/root-constructs/nextjs-global-functions.d.ts +76 -0
  128. package/lib/root-constructs/nextjs-global-functions.js +131 -0
  129. package/lib/root-constructs/nextjs-regional-containers.d.ts +43 -0
  130. package/lib/root-constructs/nextjs-regional-containers.js +92 -0
  131. package/package.json +163 -2
  132. package/dist/index.js +0 -1
@@ -0,0 +1,76 @@
1
+ import { Distribution } from "aws-cdk-lib/aws-cloudfront";
2
+ import { Construct } from "constructs";
3
+ import { BaseNextjsConstructOverrides, BaseNextjsOverrides } from "./nextjs-base-overrides";
4
+ import { NextjsBaseProps } from "./nextjs-base-props";
5
+ import { OptionalNextjsDistributionProps } from "../generated-structs/OptionalNextjsDistributionProps";
6
+ import { OptionalNextjsInvalidationProps } from "../generated-structs/OptionalNextjsInvalidationProps";
7
+ import { NextjsAssetsDeployment } from "../nextjs-assets-deployment";
8
+ import { NextjsBuild } from "../nextjs-build/nextjs-build";
9
+ import { NextjsFunctions, NextjsFunctionsOverrides, NextjsFunctionsProps } from "../nextjs-compute/nextjs-functions";
10
+ import { NextjsDistribution, NextjsDistributionOverrides } from "../nextjs-distribution";
11
+ import { NextjsFileSystem } from "../nextjs-file-system";
12
+ import { NextjsInvalidation, NextjsInvalidationOverrides } from "../nextjs-invalidation";
13
+ import { NextjsRevalidation, NextjsRevalidationOverrides, NextjsRevalidationProps } from "../nextjs-revalidation";
14
+ import { NextjsStaticAssets, NextjsStaticAssetsOverrides, NextjsStaticAssetsProps } from "../nextjs-static-assets";
15
+ import { NextjsVpc } from "../nextjs-vpc";
16
+ export interface NextjsGlobalFunctionsConstructOverrides extends BaseNextjsConstructOverrides {
17
+ readonly nextjsFunctionsProps?: NextjsFunctionsProps;
18
+ readonly nextjsDistributionProps?: OptionalNextjsDistributionProps;
19
+ readonly nextjsInvalidationProps?: OptionalNextjsInvalidationProps;
20
+ readonly nextjsRevalidationProps?: NextjsRevalidationProps;
21
+ readonly nextjsStaticAssetsProps?: NextjsStaticAssetsProps;
22
+ }
23
+ export interface NextjsGlobalFunctionsOverrides extends BaseNextjsOverrides {
24
+ readonly nextjsGlobalFunctions?: NextjsGlobalFunctionsConstructOverrides;
25
+ readonly nextjsFunctions?: NextjsFunctionsOverrides;
26
+ readonly nextjsDistribution?: NextjsDistributionOverrides;
27
+ readonly nextjsRevalidation?: NextjsRevalidationOverrides;
28
+ readonly nextjsInvalidation?: NextjsInvalidationOverrides;
29
+ readonly nextjsStaticAssets?: NextjsStaticAssetsOverrides;
30
+ }
31
+ export interface NextjsGlobalFunctionsProps extends NextjsBaseProps {
32
+ /**
33
+ * Prefix to the URI path the app will be served at. Especially useful when
34
+ * passing in your own `distribution`.
35
+ * @example "/my-base-path"
36
+ */
37
+ readonly basePath?: string;
38
+ /**
39
+ * Bring your own distribution. Can be used with `basePath` to host multiple
40
+ * apps on the same CloudFront distribution.
41
+ */
42
+ readonly distribution?: Distribution;
43
+ /**
44
+ * Override props of any construct.
45
+ */
46
+ readonly overrides?: NextjsGlobalFunctionsOverrides;
47
+ }
48
+ /**
49
+ * Deploy Next.js globally distributed with functions. Uses [CloudFront
50
+ * Distribution](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-working-with.html)
51
+ * as Content Delivery Network (CDN) for global distribution and [AWS Lambda Functions](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)
52
+ * for functions.
53
+ */
54
+ export declare class NextjsGlobalFunctions extends Construct {
55
+ nextjsBuild: NextjsBuild;
56
+ nextjsStaticAssets: NextjsStaticAssets;
57
+ nextjsVpc: NextjsVpc;
58
+ nextjsFileSystem: NextjsFileSystem;
59
+ nextjsAssetsDeployment: NextjsAssetsDeployment;
60
+ nextjsFunctions: NextjsFunctions;
61
+ nextjsDistribution: NextjsDistribution;
62
+ nextjsRevalidation: NextjsRevalidation;
63
+ nextjsInvalidation: NextjsInvalidation;
64
+ private nextjsType;
65
+ private props;
66
+ constructor(scope: Construct, id: string, props: NextjsGlobalFunctionsProps);
67
+ private createNextjsBuild;
68
+ private createNextjsStaticAssets;
69
+ private createVpc;
70
+ private createNextjsFileSystem;
71
+ private createNextjsAssetsDeployment;
72
+ private createNextjsFunctions;
73
+ private createNextjsDistribution;
74
+ private createNextjsRevalidation;
75
+ private createNextjsInvalidation;
76
+ }
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.NextjsGlobalFunctions = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const constructs_1 = require("constructs");
7
+ const common_1 = require("../common");
8
+ const nextjs_assets_deployment_1 = require("../nextjs-assets-deployment");
9
+ const nextjs_build_1 = require("../nextjs-build/nextjs-build");
10
+ const nextjs_functions_1 = require("../nextjs-compute/nextjs-functions");
11
+ const nextjs_distribution_1 = require("../nextjs-distribution");
12
+ const nextjs_file_system_1 = require("../nextjs-file-system");
13
+ const nextjs_invalidation_1 = require("../nextjs-invalidation");
14
+ const nextjs_revalidation_1 = require("../nextjs-revalidation");
15
+ const nextjs_static_assets_1 = require("../nextjs-static-assets");
16
+ const nextjs_vpc_1 = require("../nextjs-vpc");
17
+ /**
18
+ * Deploy Next.js globally distributed with functions. Uses [CloudFront
19
+ * Distribution](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-working-with.html)
20
+ * as Content Delivery Network (CDN) for global distribution and [AWS Lambda Functions](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)
21
+ * for functions.
22
+ */
23
+ class NextjsGlobalFunctions extends constructs_1.Construct {
24
+ constructor(scope, id, props) {
25
+ super(scope, id);
26
+ this.nextjsType = common_1.NextjsType.GLOBAL_FUNCTIONS;
27
+ this.props = props;
28
+ this.nextjsBuild = this.createNextjsBuild();
29
+ this.nextjsStaticAssets = this.createNextjsStaticAssets();
30
+ this.nextjsVpc = this.createVpc();
31
+ this.nextjsFileSystem = this.createNextjsFileSystem();
32
+ this.nextjsAssetsDeployment = this.createNextjsAssetsDeployment();
33
+ this.nextjsFunctions = this.createNextjsFunctions();
34
+ this.nextjsFileSystem.allowCompute({
35
+ connections: this.nextjsFunctions.function.connections,
36
+ role: this.nextjsFunctions.function.role,
37
+ });
38
+ this.nextjsDistribution = this.createNextjsDistribution();
39
+ this.nextjsRevalidation = this.createNextjsRevalidation();
40
+ this.nextjsInvalidation = this.createNextjsInvalidation();
41
+ }
42
+ createNextjsBuild() {
43
+ return new nextjs_build_1.NextjsBuild(this, "NextjsBuild", {
44
+ buildCommand: this.props.buildCommand,
45
+ buildContext: this.props.buildContext,
46
+ nextjsType: this.nextjsType,
47
+ relativePathToWorkspace: this.props.relativePathToWorkspace,
48
+ overrides: this.props.overrides?.nextjsBuild,
49
+ ...this.props.overrides?.nextjsGlobalFunctions?.nextjsBuildProps,
50
+ });
51
+ }
52
+ createNextjsStaticAssets() {
53
+ return new nextjs_static_assets_1.NextjsStaticAssets(this, "NextjsStaticAssets", {
54
+ overrides: this.props.overrides?.nextjsStaticAssets,
55
+ ...this.props.overrides?.nextjsGlobalFunctions?.nextjsStaticAssetsProps,
56
+ });
57
+ }
58
+ createVpc() {
59
+ return new nextjs_vpc_1.NextjsVpc(this, "NextjsVpc", {
60
+ nextjsType: this.nextjsType,
61
+ overrides: this.props.overrides?.nextjsVpc,
62
+ ...this.props.overrides?.nextjsGlobalFunctions?.nextjsVpcProps,
63
+ });
64
+ }
65
+ createNextjsFileSystem() {
66
+ return new nextjs_file_system_1.NextjsFileSystem(this, "NextjsFileSystem", {
67
+ vpc: this.nextjsVpc.vpc,
68
+ overrides: this.props.overrides?.nextjsFileSystem,
69
+ ...this.props.overrides?.nextjsGlobalFunctions?.nextjsFileSystemProps,
70
+ });
71
+ }
72
+ createNextjsAssetsDeployment() {
73
+ return new nextjs_assets_deployment_1.NextjsAssetsDeployment(this, "NextjsAssetsDeployment", {
74
+ accessPoint: this.nextjsFileSystem.accessPoint,
75
+ buildImageDigest: this.nextjsBuild.buildImageDigest,
76
+ containerMountPathForEfs: this.nextjsBuild.containerMountPathForEfs,
77
+ dockerImageCode: this.nextjsBuild.imageForNextjsAssetsDeployment,
78
+ overrides: this.props.overrides?.nextjsAssetsDeployment,
79
+ relativePathToWorkspace: this.props.relativePathToWorkspace,
80
+ staticAssetsBucket: this.nextjsStaticAssets.bucket,
81
+ vpc: this.nextjsVpc.vpc,
82
+ ...this.props.overrides?.nextjsGlobalFunctions
83
+ ?.nextjsAssetsDeploymentProps,
84
+ });
85
+ }
86
+ createNextjsFunctions() {
87
+ if (!this.nextjsBuild.imageForNextjsFunctions) {
88
+ throw new Error("nextjsBuild.dockerImageCode is undefined");
89
+ }
90
+ return new nextjs_functions_1.NextjsFunctions(this, "NextjsFunctions", {
91
+ accessPoint: this.nextjsFileSystem.accessPoint,
92
+ containerMountPathForEfs: this.nextjsBuild.containerMountPathForEfs,
93
+ dockerImageCode: this.nextjsBuild.imageForNextjsFunctions,
94
+ healthCheckPath: this.props.healthCheckPath,
95
+ vpc: this.nextjsVpc.vpc,
96
+ overrides: this.props.overrides?.nextjsFunctions,
97
+ ...this.props.overrides?.nextjsGlobalFunctions?.nextjsFunctionsProps,
98
+ });
99
+ }
100
+ createNextjsDistribution() {
101
+ return new nextjs_distribution_1.NextjsDistribution(this, "NextjsDistribution", {
102
+ assetsBucket: this.nextjsStaticAssets.bucket,
103
+ basePath: this.props.basePath,
104
+ dynamicUrl: this.nextjsFunctions.functionUrl.url,
105
+ functionArn: this.nextjsFunctions.function.functionArn,
106
+ nextjsType: this.nextjsType,
107
+ overrides: this.props.overrides?.nextjsDistribution,
108
+ publicDirEntries: this.nextjsBuild.publicDirEntries,
109
+ ...this.props.overrides?.nextjsGlobalFunctions?.nextjsDistributionProps,
110
+ });
111
+ }
112
+ createNextjsRevalidation() {
113
+ return new nextjs_revalidation_1.NextjsRevalidation(this, "NextjsRevalidation", {
114
+ fn: this.nextjsFunctions.function,
115
+ overrides: this.props.overrides?.nextjsRevalidation,
116
+ previewModeId: this.nextjsAssetsDeployment.previewModeId,
117
+ ...this.props.overrides?.nextjsGlobalFunctions?.nextjsRevalidationProps,
118
+ });
119
+ }
120
+ createNextjsInvalidation() {
121
+ return new nextjs_invalidation_1.NextjsInvalidation(this, "NextjsInvalidation", {
122
+ distribution: this.nextjsDistribution.distribution,
123
+ overrides: this.props.overrides?.nextjsInvalidation,
124
+ ...this.props.overrides?.nextjsGlobalFunctions?.nextjsInvalidationProps,
125
+ });
126
+ }
127
+ }
128
+ exports.NextjsGlobalFunctions = NextjsGlobalFunctions;
129
+ _a = JSII_RTTI_SYMBOL_1;
130
+ NextjsGlobalFunctions[_a] = { fqn: "cdk-nextjs.NextjsGlobalFunctions", version: "0.1.1" };
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dGpzLWdsb2JhbC1mdW5jdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcm9vdC1jb25zdHJ1Y3RzL25leHRqcy1nbG9iYWwtZnVuY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsMkNBQXVDO0FBTXZDLHNDQUF1QztBQUd2QywwRUFBcUU7QUFDckUsK0RBQTJEO0FBQzNELHlFQUk0QztBQUM1QyxnRUFHZ0M7QUFDaEMsOERBQXlEO0FBQ3pELGdFQUdnQztBQUNoQyxnRUFJZ0M7QUFDaEMsa0VBSWlDO0FBQ2pDLDhDQUEwQztBQXNDMUM7Ozs7O0dBS0c7QUFDSCxNQUFhLHFCQUFzQixTQUFRLHNCQUFTO0lBY2xELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBaUM7UUFDekUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUpYLGVBQVUsR0FBRyxtQkFBVSxDQUFDLGdCQUFnQixDQUFDO1FBSy9DLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDNUMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQzFELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUN0RCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7UUFDbEUsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUNwRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDO1lBQ2pDLFdBQVcsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxXQUFXO1lBQ3RELElBQUksRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxJQUFLO1NBQzFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUMxRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFDMUQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQzVELENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsT0FBTyxJQUFJLDBCQUFXLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRTtZQUMxQyxZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZO1lBQ3JDLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVk7WUFDckMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLHVCQUF1QixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsdUJBQXVCO1lBQzNELFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxXQUFXO1lBQzVDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUscUJBQXFCLEVBQUUsZ0JBQWdCO1NBQ2pFLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDTyx3QkFBd0I7UUFDOUIsT0FBTyxJQUFJLHlDQUFrQixDQUFDLElBQUksRUFBRSxvQkFBb0IsRUFBRTtZQUN4RCxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsa0JBQWtCO1lBQ25ELEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUscUJBQXFCLEVBQUUsdUJBQXVCO1NBQ3hFLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDTyxTQUFTO1FBQ2YsT0FBTyxJQUFJLHNCQUFTLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUN0QyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLFNBQVM7WUFDMUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSxjQUFjO1NBQy9ELENBQUMsQ0FBQztJQUNMLENBQUM7SUFDTyxzQkFBc0I7UUFDNUIsT0FBTyxJQUFJLHFDQUFnQixDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRTtZQUNwRCxHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHO1lBQ3ZCLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxnQkFBZ0I7WUFDakQsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSxxQkFBcUI7U0FDdEUsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNPLDRCQUE0QjtRQUNsQyxPQUFPLElBQUksaURBQXNCLENBQUMsSUFBSSxFQUFFLHdCQUF3QixFQUFFO1lBQ2hFLFdBQVcsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVztZQUM5QyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQjtZQUNuRCx3QkFBd0IsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLHdCQUF3QjtZQUNuRSxlQUFlLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyw4QkFBOEI7WUFDaEUsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLHNCQUFzQjtZQUN2RCx1QkFBdUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLHVCQUF1QjtZQUMzRCxrQkFBa0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTTtZQUNsRCxHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHO1lBQ3ZCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUscUJBQXFCO2dCQUM1QyxFQUFFLDJCQUEyQjtTQUNoQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ08scUJBQXFCO1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLHVCQUF1QixFQUFFLENBQUM7WUFDOUMsTUFBTSxJQUFJLEtBQUssQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFDRCxPQUFPLElBQUksa0NBQWUsQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUU7WUFDbEQsV0FBVyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXO1lBQzlDLHdCQUF3QixFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsd0JBQXdCO1lBQ25FLGVBQWUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLHVCQUF1QjtZQUN6RCxlQUFlLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlO1lBQzNDLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUc7WUFDdkIsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLGVBQWU7WUFDaEQsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSxvQkFBb0I7U0FDckUsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNPLHdCQUF3QjtRQUM5QixPQUFPLElBQUksd0NBQWtCLENBQUMsSUFBSSxFQUFFLG9CQUFvQixFQUFFO1lBQ3hELFlBQVksRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTTtZQUM1QyxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRO1lBQzdCLFVBQVUsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxHQUFHO1lBQ2hELFdBQVcsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxXQUFXO1lBQ3RELFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsa0JBQWtCO1lBQ25ELGdCQUFnQixFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCO1lBQ25ELEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUscUJBQXFCLEVBQUUsdUJBQXVCO1NBQ3hFLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDTyx3QkFBd0I7UUFDOUIsT0FBTyxJQUFJLHdDQUFrQixDQUFDLElBQUksRUFBRSxvQkFBb0IsRUFBRTtZQUN4RCxFQUFFLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRO1lBQ2pDLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxrQkFBa0I7WUFDbkQsYUFBYSxFQUFFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhO1lBQ3hELEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUscUJBQXFCLEVBQUUsdUJBQXVCO1NBQ3hFLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDTyx3QkFBd0I7UUFDOUIsT0FBTyxJQUFJLHdDQUFrQixDQUFDLElBQUksRUFBRSxvQkFBb0IsRUFBRTtZQUN4RCxZQUFZLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVk7WUFDbEQsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLGtCQUFrQjtZQUNuRCxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLHFCQUFxQixFQUFFLHVCQUF1QjtTQUN4RSxDQUFDLENBQUM7SUFDTCxDQUFDOztBQXBISCxzREFxSEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXN0cmlidXRpb24gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnRcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1xuICBCYXNlTmV4dGpzQ29uc3RydWN0T3ZlcnJpZGVzLFxuICBCYXNlTmV4dGpzT3ZlcnJpZGVzLFxufSBmcm9tIFwiLi9uZXh0anMtYmFzZS1vdmVycmlkZXNcIjtcbmltcG9ydCB7IE5leHRqc0Jhc2VQcm9wcyB9IGZyb20gXCIuL25leHRqcy1iYXNlLXByb3BzXCI7XG5pbXBvcnQgeyBOZXh0anNUeXBlIH0gZnJvbSBcIi4uL2NvbW1vblwiO1xuaW1wb3J0IHsgT3B0aW9uYWxOZXh0anNEaXN0cmlidXRpb25Qcm9wcyB9IGZyb20gXCIuLi9nZW5lcmF0ZWQtc3RydWN0cy9PcHRpb25hbE5leHRqc0Rpc3RyaWJ1dGlvblByb3BzXCI7XG5pbXBvcnQgeyBPcHRpb25hbE5leHRqc0ludmFsaWRhdGlvblByb3BzIH0gZnJvbSBcIi4uL2dlbmVyYXRlZC1zdHJ1Y3RzL09wdGlvbmFsTmV4dGpzSW52YWxpZGF0aW9uUHJvcHNcIjtcbmltcG9ydCB7IE5leHRqc0Fzc2V0c0RlcGxveW1lbnQgfSBmcm9tIFwiLi4vbmV4dGpzLWFzc2V0cy1kZXBsb3ltZW50XCI7XG5pbXBvcnQgeyBOZXh0anNCdWlsZCB9IGZyb20gXCIuLi9uZXh0anMtYnVpbGQvbmV4dGpzLWJ1aWxkXCI7XG5pbXBvcnQge1xuICBOZXh0anNGdW5jdGlvbnMsXG4gIE5leHRqc0Z1bmN0aW9uc092ZXJyaWRlcyxcbiAgTmV4dGpzRnVuY3Rpb25zUHJvcHMsXG59IGZyb20gXCIuLi9uZXh0anMtY29tcHV0ZS9uZXh0anMtZnVuY3Rpb25zXCI7XG5pbXBvcnQge1xuICBOZXh0anNEaXN0cmlidXRpb24sXG4gIE5leHRqc0Rpc3RyaWJ1dGlvbk92ZXJyaWRlcyxcbn0gZnJvbSBcIi4uL25leHRqcy1kaXN0cmlidXRpb25cIjtcbmltcG9ydCB7IE5leHRqc0ZpbGVTeXN0ZW0gfSBmcm9tIFwiLi4vbmV4dGpzLWZpbGUtc3lzdGVtXCI7XG5pbXBvcnQge1xuICBOZXh0anNJbnZhbGlkYXRpb24sXG4gIE5leHRqc0ludmFsaWRhdGlvbk92ZXJyaWRlcyxcbn0gZnJvbSBcIi4uL25leHRqcy1pbnZhbGlkYXRpb25cIjtcbmltcG9ydCB7XG4gIE5leHRqc1JldmFsaWRhdGlvbixcbiAgTmV4dGpzUmV2YWxpZGF0aW9uT3ZlcnJpZGVzLFxuICBOZXh0anNSZXZhbGlkYXRpb25Qcm9wcyxcbn0gZnJvbSBcIi4uL25leHRqcy1yZXZhbGlkYXRpb25cIjtcbmltcG9ydCB7XG4gIE5leHRqc1N0YXRpY0Fzc2V0cyxcbiAgTmV4dGpzU3RhdGljQXNzZXRzT3ZlcnJpZGVzLFxuICBOZXh0anNTdGF0aWNBc3NldHNQcm9wcyxcbn0gZnJvbSBcIi4uL25leHRqcy1zdGF0aWMtYXNzZXRzXCI7XG5pbXBvcnQgeyBOZXh0anNWcGMgfSBmcm9tIFwiLi4vbmV4dGpzLXZwY1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5leHRqc0dsb2JhbEZ1bmN0aW9uc0NvbnN0cnVjdE92ZXJyaWRlc1xuICBleHRlbmRzIEJhc2VOZXh0anNDb25zdHJ1Y3RPdmVycmlkZXMge1xuICByZWFkb25seSBuZXh0anNGdW5jdGlvbnNQcm9wcz86IE5leHRqc0Z1bmN0aW9uc1Byb3BzO1xuICByZWFkb25seSBuZXh0anNEaXN0cmlidXRpb25Qcm9wcz86IE9wdGlvbmFsTmV4dGpzRGlzdHJpYnV0aW9uUHJvcHM7XG4gIHJlYWRvbmx5IG5leHRqc0ludmFsaWRhdGlvblByb3BzPzogT3B0aW9uYWxOZXh0anNJbnZhbGlkYXRpb25Qcm9wcztcbiAgcmVhZG9ubHkgbmV4dGpzUmV2YWxpZGF0aW9uUHJvcHM/OiBOZXh0anNSZXZhbGlkYXRpb25Qcm9wcztcbiAgcmVhZG9ubHkgbmV4dGpzU3RhdGljQXNzZXRzUHJvcHM/OiBOZXh0anNTdGF0aWNBc3NldHNQcm9wcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZXh0anNHbG9iYWxGdW5jdGlvbnNPdmVycmlkZXMgZXh0ZW5kcyBCYXNlTmV4dGpzT3ZlcnJpZGVzIHtcbiAgcmVhZG9ubHkgbmV4dGpzR2xvYmFsRnVuY3Rpb25zPzogTmV4dGpzR2xvYmFsRnVuY3Rpb25zQ29uc3RydWN0T3ZlcnJpZGVzO1xuICByZWFkb25seSBuZXh0anNGdW5jdGlvbnM/OiBOZXh0anNGdW5jdGlvbnNPdmVycmlkZXM7XG4gIHJlYWRvbmx5IG5leHRqc0Rpc3RyaWJ1dGlvbj86IE5leHRqc0Rpc3RyaWJ1dGlvbk92ZXJyaWRlcztcbiAgcmVhZG9ubHkgbmV4dGpzUmV2YWxpZGF0aW9uPzogTmV4dGpzUmV2YWxpZGF0aW9uT3ZlcnJpZGVzO1xuICByZWFkb25seSBuZXh0anNJbnZhbGlkYXRpb24/OiBOZXh0anNJbnZhbGlkYXRpb25PdmVycmlkZXM7XG4gIHJlYWRvbmx5IG5leHRqc1N0YXRpY0Fzc2V0cz86IE5leHRqc1N0YXRpY0Fzc2V0c092ZXJyaWRlcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZXh0anNHbG9iYWxGdW5jdGlvbnNQcm9wcyBleHRlbmRzIE5leHRqc0Jhc2VQcm9wcyB7XG4gIC8qKlxuICAgKiBQcmVmaXggdG8gdGhlIFVSSSBwYXRoIHRoZSBhcHAgd2lsbCBiZSBzZXJ2ZWQgYXQuIEVzcGVjaWFsbHkgdXNlZnVsIHdoZW5cbiAgICogcGFzc2luZyBpbiB5b3VyIG93biBgZGlzdHJpYnV0aW9uYC5cbiAgICogQGV4YW1wbGUgXCIvbXktYmFzZS1wYXRoXCJcbiAgICovXG4gIHJlYWRvbmx5IGJhc2VQYXRoPzogc3RyaW5nO1xuICAvKipcbiAgICogQnJpbmcgeW91ciBvd24gZGlzdHJpYnV0aW9uLiBDYW4gYmUgdXNlZCB3aXRoIGBiYXNlUGF0aGAgdG8gaG9zdCBtdWx0aXBsZVxuICAgKiBhcHBzIG9uIHRoZSBzYW1lIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgZGlzdHJpYnV0aW9uPzogRGlzdHJpYnV0aW9uO1xuICAvKipcbiAgICogT3ZlcnJpZGUgcHJvcHMgb2YgYW55IGNvbnN0cnVjdC5cbiAgICovXG4gIHJlYWRvbmx5IG92ZXJyaWRlcz86IE5leHRqc0dsb2JhbEZ1bmN0aW9uc092ZXJyaWRlcztcbn1cblxuLyoqXG4gKiBEZXBsb3kgTmV4dC5qcyBnbG9iYWxseSBkaXN0cmlidXRlZCB3aXRoIGZ1bmN0aW9ucy4gVXNlcyBbQ2xvdWRGcm9udFxuICogRGlzdHJpYnV0aW9uXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRGcm9udC9sYXRlc3QvRGV2ZWxvcGVyR3VpZGUvZGlzdHJpYnV0aW9uLXdvcmtpbmctd2l0aC5odG1sKVxuICogYXMgQ29udGVudCBEZWxpdmVyeSBOZXR3b3JrIChDRE4pIGZvciBnbG9iYWwgZGlzdHJpYnV0aW9uIGFuZCBbQVdTIExhbWJkYSBGdW5jdGlvbnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL3dlbGNvbWUuaHRtbClcbiAqIGZvciBmdW5jdGlvbnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBOZXh0anNHbG9iYWxGdW5jdGlvbnMgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBuZXh0anNCdWlsZDogTmV4dGpzQnVpbGQ7XG4gIG5leHRqc1N0YXRpY0Fzc2V0czogTmV4dGpzU3RhdGljQXNzZXRzO1xuICBuZXh0anNWcGM6IE5leHRqc1ZwYztcbiAgbmV4dGpzRmlsZVN5c3RlbTogTmV4dGpzRmlsZVN5c3RlbTtcbiAgbmV4dGpzQXNzZXRzRGVwbG95bWVudDogTmV4dGpzQXNzZXRzRGVwbG95bWVudDtcbiAgbmV4dGpzRnVuY3Rpb25zOiBOZXh0anNGdW5jdGlvbnM7XG4gIG5leHRqc0Rpc3RyaWJ1dGlvbjogTmV4dGpzRGlzdHJpYnV0aW9uO1xuICBuZXh0anNSZXZhbGlkYXRpb246IE5leHRqc1JldmFsaWRhdGlvbjtcbiAgbmV4dGpzSW52YWxpZGF0aW9uOiBOZXh0anNJbnZhbGlkYXRpb247XG5cbiAgcHJpdmF0ZSBuZXh0anNUeXBlID0gTmV4dGpzVHlwZS5HTE9CQUxfRlVOQ1RJT05TO1xuICBwcml2YXRlIHByb3BzOiBOZXh0anNHbG9iYWxGdW5jdGlvbnNQcm9wcztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTmV4dGpzR2xvYmFsRnVuY3Rpb25zUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgICB0aGlzLm5leHRqc0J1aWxkID0gdGhpcy5jcmVhdGVOZXh0anNCdWlsZCgpO1xuICAgIHRoaXMubmV4dGpzU3RhdGljQXNzZXRzID0gdGhpcy5jcmVhdGVOZXh0anNTdGF0aWNBc3NldHMoKTtcbiAgICB0aGlzLm5leHRqc1ZwYyA9IHRoaXMuY3JlYXRlVnBjKCk7XG4gICAgdGhpcy5uZXh0anNGaWxlU3lzdGVtID0gdGhpcy5jcmVhdGVOZXh0anNGaWxlU3lzdGVtKCk7XG4gICAgdGhpcy5uZXh0anNBc3NldHNEZXBsb3ltZW50ID0gdGhpcy5jcmVhdGVOZXh0anNBc3NldHNEZXBsb3ltZW50KCk7XG4gICAgdGhpcy5uZXh0anNGdW5jdGlvbnMgPSB0aGlzLmNyZWF0ZU5leHRqc0Z1bmN0aW9ucygpO1xuICAgIHRoaXMubmV4dGpzRmlsZVN5c3RlbS5hbGxvd0NvbXB1dGUoe1xuICAgICAgY29ubmVjdGlvbnM6IHRoaXMubmV4dGpzRnVuY3Rpb25zLmZ1bmN0aW9uLmNvbm5lY3Rpb25zLFxuICAgICAgcm9sZTogdGhpcy5uZXh0anNGdW5jdGlvbnMuZnVuY3Rpb24ucm9sZSEsXG4gICAgfSk7XG4gICAgdGhpcy5uZXh0anNEaXN0cmlidXRpb24gPSB0aGlzLmNyZWF0ZU5leHRqc0Rpc3RyaWJ1dGlvbigpO1xuICAgIHRoaXMubmV4dGpzUmV2YWxpZGF0aW9uID0gdGhpcy5jcmVhdGVOZXh0anNSZXZhbGlkYXRpb24oKTtcbiAgICB0aGlzLm5leHRqc0ludmFsaWRhdGlvbiA9IHRoaXMuY3JlYXRlTmV4dGpzSW52YWxpZGF0aW9uKCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU5leHRqc0J1aWxkKCkge1xuICAgIHJldHVybiBuZXcgTmV4dGpzQnVpbGQodGhpcywgXCJOZXh0anNCdWlsZFwiLCB7XG4gICAgICBidWlsZENvbW1hbmQ6IHRoaXMucHJvcHMuYnVpbGRDb21tYW5kLFxuICAgICAgYnVpbGRDb250ZXh0OiB0aGlzLnByb3BzLmJ1aWxkQ29udGV4dCxcbiAgICAgIG5leHRqc1R5cGU6IHRoaXMubmV4dGpzVHlwZSxcbiAgICAgIHJlbGF0aXZlUGF0aFRvV29ya3NwYWNlOiB0aGlzLnByb3BzLnJlbGF0aXZlUGF0aFRvV29ya3NwYWNlLFxuICAgICAgb3ZlcnJpZGVzOiB0aGlzLnByb3BzLm92ZXJyaWRlcz8ubmV4dGpzQnVpbGQsXG4gICAgICAuLi50aGlzLnByb3BzLm92ZXJyaWRlcz8ubmV4dGpzR2xvYmFsRnVuY3Rpb25zPy5uZXh0anNCdWlsZFByb3BzLFxuICAgIH0pO1xuICB9XG4gIHByaXZhdGUgY3JlYXRlTmV4dGpzU3RhdGljQXNzZXRzKCkge1xuICAgIHJldHVybiBuZXcgTmV4dGpzU3RhdGljQXNzZXRzKHRoaXMsIFwiTmV4dGpzU3RhdGljQXNzZXRzXCIsIHtcbiAgICAgIG92ZXJyaWRlczogdGhpcy5wcm9wcy5vdmVycmlkZXM/Lm5leHRqc1N0YXRpY0Fzc2V0cyxcbiAgICAgIC4uLnRoaXMucHJvcHMub3ZlcnJpZGVzPy5uZXh0anNHbG9iYWxGdW5jdGlvbnM/Lm5leHRqc1N0YXRpY0Fzc2V0c1Byb3BzLFxuICAgIH0pO1xuICB9XG4gIHByaXZhdGUgY3JlYXRlVnBjKCkge1xuICAgIHJldHVybiBuZXcgTmV4dGpzVnBjKHRoaXMsIFwiTmV4dGpzVnBjXCIsIHtcbiAgICAgIG5leHRqc1R5cGU6IHRoaXMubmV4dGpzVHlwZSxcbiAgICAgIG92ZXJyaWRlczogdGhpcy5wcm9wcy5vdmVycmlkZXM/Lm5leHRqc1ZwYyxcbiAgICAgIC4uLnRoaXMucHJvcHMub3ZlcnJpZGVzPy5uZXh0anNHbG9iYWxGdW5jdGlvbnM/Lm5leHRqc1ZwY1Byb3BzLFxuICAgIH0pO1xuICB9XG4gIHByaXZhdGUgY3JlYXRlTmV4dGpzRmlsZVN5c3RlbSgpIHtcbiAgICByZXR1cm4gbmV3IE5leHRqc0ZpbGVTeXN0ZW0odGhpcywgXCJOZXh0anNGaWxlU3lzdGVtXCIsIHtcbiAgICAgIHZwYzogdGhpcy5uZXh0anNWcGMudnBjLFxuICAgICAgb3ZlcnJpZGVzOiB0aGlzLnByb3BzLm92ZXJyaWRlcz8ubmV4dGpzRmlsZVN5c3RlbSxcbiAgICAgIC4uLnRoaXMucHJvcHMub3ZlcnJpZGVzPy5uZXh0anNHbG9iYWxGdW5jdGlvbnM/Lm5leHRqc0ZpbGVTeXN0ZW1Qcm9wcyxcbiAgICB9KTtcbiAgfVxuICBwcml2YXRlIGNyZWF0ZU5leHRqc0Fzc2V0c0RlcGxveW1lbnQoKSB7XG4gICAgcmV0dXJuIG5ldyBOZXh0anNBc3NldHNEZXBsb3ltZW50KHRoaXMsIFwiTmV4dGpzQXNzZXRzRGVwbG95bWVudFwiLCB7XG4gICAgICBhY2Nlc3NQb2ludDogdGhpcy5uZXh0anNGaWxlU3lzdGVtLmFjY2Vzc1BvaW50LFxuICAgICAgYnVpbGRJbWFnZURpZ2VzdDogdGhpcy5uZXh0anNCdWlsZC5idWlsZEltYWdlRGlnZXN0LFxuICAgICAgY29udGFpbmVyTW91bnRQYXRoRm9yRWZzOiB0aGlzLm5leHRqc0J1aWxkLmNvbnRhaW5lck1vdW50UGF0aEZvckVmcyxcbiAgICAgIGRvY2tlckltYWdlQ29kZTogdGhpcy5uZXh0anNCdWlsZC5pbWFnZUZvck5leHRqc0Fzc2V0c0RlcGxveW1lbnQsXG4gICAgICBvdmVycmlkZXM6IHRoaXMucHJvcHMub3ZlcnJpZGVzPy5uZXh0anNBc3NldHNEZXBsb3ltZW50LFxuICAgICAgcmVsYXRpdmVQYXRoVG9Xb3Jrc3BhY2U6IHRoaXMucHJvcHMucmVsYXRpdmVQYXRoVG9Xb3Jrc3BhY2UsXG4gICAgICBzdGF0aWNBc3NldHNCdWNrZXQ6IHRoaXMubmV4dGpzU3RhdGljQXNzZXRzLmJ1Y2tldCxcbiAgICAgIHZwYzogdGhpcy5uZXh0anNWcGMudnBjLFxuICAgICAgLi4udGhpcy5wcm9wcy5vdmVycmlkZXM/Lm5leHRqc0dsb2JhbEZ1bmN0aW9uc1xuICAgICAgICA/Lm5leHRqc0Fzc2V0c0RlcGxveW1lbnRQcm9wcyxcbiAgICB9KTtcbiAgfVxuICBwcml2YXRlIGNyZWF0ZU5leHRqc0Z1bmN0aW9ucygpIHtcbiAgICBpZiAoIXRoaXMubmV4dGpzQnVpbGQuaW1hZ2VGb3JOZXh0anNGdW5jdGlvbnMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIm5leHRqc0J1aWxkLmRvY2tlckltYWdlQ29kZSBpcyB1bmRlZmluZWRcIik7XG4gICAgfVxuICAgIHJldHVybiBuZXcgTmV4dGpzRnVuY3Rpb25zKHRoaXMsIFwiTmV4dGpzRnVuY3Rpb25zXCIsIHtcbiAgICAgIGFjY2Vzc1BvaW50OiB0aGlzLm5leHRqc0ZpbGVTeXN0ZW0uYWNjZXNzUG9pbnQsXG4gICAgICBjb250YWluZXJNb3VudFBhdGhGb3JFZnM6IHRoaXMubmV4dGpzQnVpbGQuY29udGFpbmVyTW91bnRQYXRoRm9yRWZzLFxuICAgICAgZG9ja2VySW1hZ2VDb2RlOiB0aGlzLm5leHRqc0J1aWxkLmltYWdlRm9yTmV4dGpzRnVuY3Rpb25zLFxuICAgICAgaGVhbHRoQ2hlY2tQYXRoOiB0aGlzLnByb3BzLmhlYWx0aENoZWNrUGF0aCxcbiAgICAgIHZwYzogdGhpcy5uZXh0anNWcGMudnBjLFxuICAgICAgb3ZlcnJpZGVzOiB0aGlzLnByb3BzLm92ZXJyaWRlcz8ubmV4dGpzRnVuY3Rpb25zLFxuICAgICAgLi4udGhpcy5wcm9wcy5vdmVycmlkZXM/Lm5leHRqc0dsb2JhbEZ1bmN0aW9ucz8ubmV4dGpzRnVuY3Rpb25zUHJvcHMsXG4gICAgfSk7XG4gIH1cbiAgcHJpdmF0ZSBjcmVhdGVOZXh0anNEaXN0cmlidXRpb24oKSB7XG4gICAgcmV0dXJuIG5ldyBOZXh0anNEaXN0cmlidXRpb24odGhpcywgXCJOZXh0anNEaXN0cmlidXRpb25cIiwge1xuICAgICAgYXNzZXRzQnVja2V0OiB0aGlzLm5leHRqc1N0YXRpY0Fzc2V0cy5idWNrZXQsXG4gICAgICBiYXNlUGF0aDogdGhpcy5wcm9wcy5iYXNlUGF0aCxcbiAgICAgIGR5bmFtaWNVcmw6IHRoaXMubmV4dGpzRnVuY3Rpb25zLmZ1bmN0aW9uVXJsLnVybCxcbiAgICAgIGZ1bmN0aW9uQXJuOiB0aGlzLm5leHRqc0Z1bmN0aW9ucy5mdW5jdGlvbi5mdW5jdGlvbkFybixcbiAgICAgIG5leHRqc1R5cGU6IHRoaXMubmV4dGpzVHlwZSxcbiAgICAgIG92ZXJyaWRlczogdGhpcy5wcm9wcy5vdmVycmlkZXM/Lm5leHRqc0Rpc3RyaWJ1dGlvbixcbiAgICAgIHB1YmxpY0RpckVudHJpZXM6IHRoaXMubmV4dGpzQnVpbGQucHVibGljRGlyRW50cmllcyxcbiAgICAgIC4uLnRoaXMucHJvcHMub3ZlcnJpZGVzPy5uZXh0anNHbG9iYWxGdW5jdGlvbnM/Lm5leHRqc0Rpc3RyaWJ1dGlvblByb3BzLFxuICAgIH0pO1xuICB9XG4gIHByaXZhdGUgY3JlYXRlTmV4dGpzUmV2YWxpZGF0aW9uKCkge1xuICAgIHJldHVybiBuZXcgTmV4dGpzUmV2YWxpZGF0aW9uKHRoaXMsIFwiTmV4dGpzUmV2YWxpZGF0aW9uXCIsIHtcbiAgICAgIGZuOiB0aGlzLm5leHRqc0Z1bmN0aW9ucy5mdW5jdGlvbixcbiAgICAgIG92ZXJyaWRlczogdGhpcy5wcm9wcy5vdmVycmlkZXM/Lm5leHRqc1JldmFsaWRhdGlvbixcbiAgICAgIHByZXZpZXdNb2RlSWQ6IHRoaXMubmV4dGpzQXNzZXRzRGVwbG95bWVudC5wcmV2aWV3TW9kZUlkLFxuICAgICAgLi4udGhpcy5wcm9wcy5vdmVycmlkZXM/Lm5leHRqc0dsb2JhbEZ1bmN0aW9ucz8ubmV4dGpzUmV2YWxpZGF0aW9uUHJvcHMsXG4gICAgfSk7XG4gIH1cbiAgcHJpdmF0ZSBjcmVhdGVOZXh0anNJbnZhbGlkYXRpb24oKSB7XG4gICAgcmV0dXJuIG5ldyBOZXh0anNJbnZhbGlkYXRpb24odGhpcywgXCJOZXh0anNJbnZhbGlkYXRpb25cIiwge1xuICAgICAgZGlzdHJpYnV0aW9uOiB0aGlzLm5leHRqc0Rpc3RyaWJ1dGlvbi5kaXN0cmlidXRpb24sXG4gICAgICBvdmVycmlkZXM6IHRoaXMucHJvcHMub3ZlcnJpZGVzPy5uZXh0anNJbnZhbGlkYXRpb24sXG4gICAgICAuLi50aGlzLnByb3BzLm92ZXJyaWRlcz8ubmV4dGpzR2xvYmFsRnVuY3Rpb25zPy5uZXh0anNJbnZhbGlkYXRpb25Qcm9wcyxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,43 @@
1
+ import { Construct } from "constructs";
2
+ import { BaseNextjsConstructOverrides, BaseNextjsOverrides } from "./nextjs-base-overrides";
3
+ import { NextjsBaseProps } from "./nextjs-base-props";
4
+ import { OptionalNextjsContainersProps } from "../generated-structs/OptionalNextjsContainersProps";
5
+ import { NextjsAssetsDeployment } from "../nextjs-assets-deployment";
6
+ import { NextjsBuild } from "../nextjs-build/nextjs-build";
7
+ import { NextjsContainers, NextjsContainersOverrides } from "../nextjs-compute/nextjs-containers";
8
+ import { NextjsFileSystem } from "../nextjs-file-system";
9
+ import { NextjsVpc } from "../nextjs-vpc";
10
+ export interface NextjsRegionalContainersConstructOverrides extends BaseNextjsConstructOverrides {
11
+ readonly nextjsContainerProps?: OptionalNextjsContainersProps;
12
+ }
13
+ export interface NextjsRegionalContainersOverrides extends BaseNextjsOverrides {
14
+ readonly nextjsRegionalContainers?: NextjsRegionalContainersConstructOverrides;
15
+ readonly nextjsContainers?: NextjsContainersOverrides;
16
+ }
17
+ export interface NextjsRegionalContainersProps extends NextjsBaseProps {
18
+ /**
19
+ * Override props of any construct.
20
+ */
21
+ readonly overrides?: NextjsRegionalContainersOverrides;
22
+ }
23
+ /**
24
+ * Deploy Next.js load balanced with containers. Uses [Application Load
25
+ * Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html)
26
+ * for load balancing and [AWS Fargate](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html)
27
+ * for containers.
28
+ */
29
+ export declare class NextjsRegionalContainers extends Construct {
30
+ nextjsBuild: NextjsBuild;
31
+ nextjsVpc: NextjsVpc;
32
+ nextjsFileSystem: NextjsFileSystem;
33
+ nextjsAssetsDeployment: NextjsAssetsDeployment;
34
+ nextjsContainers: NextjsContainers;
35
+ private nextjsType;
36
+ private props;
37
+ constructor(scope: Construct, id: string, props: NextjsRegionalContainersProps);
38
+ private createNextjsBuild;
39
+ private createVpc;
40
+ private createNextjsFileSystem;
41
+ private createNextjsAssetsDeployment;
42
+ private createNextjsLoadBalancedContainers;
43
+ }
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.NextjsRegionalContainers = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const constructs_1 = require("constructs");
7
+ const common_1 = require("../common");
8
+ const nextjs_assets_deployment_1 = require("../nextjs-assets-deployment");
9
+ const nextjs_build_1 = require("../nextjs-build/nextjs-build");
10
+ const nextjs_containers_1 = require("../nextjs-compute/nextjs-containers");
11
+ const nextjs_file_system_1 = require("../nextjs-file-system");
12
+ const nextjs_vpc_1 = require("../nextjs-vpc");
13
+ /**
14
+ * Deploy Next.js load balanced with containers. Uses [Application Load
15
+ * Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html)
16
+ * for load balancing and [AWS Fargate](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html)
17
+ * for containers.
18
+ */
19
+ class NextjsRegionalContainers extends constructs_1.Construct {
20
+ constructor(scope, id, props) {
21
+ super(scope, id);
22
+ this.nextjsType = common_1.NextjsType.REGIONAL_CONTAINERS;
23
+ this.props = props;
24
+ this.nextjsBuild = this.createNextjsBuild();
25
+ this.nextjsVpc = this.createVpc();
26
+ this.nextjsFileSystem = this.createNextjsFileSystem();
27
+ this.nextjsAssetsDeployment = this.createNextjsAssetsDeployment();
28
+ this.nextjsContainers = this.createNextjsLoadBalancedContainers();
29
+ this.nextjsFileSystem.allowCompute({
30
+ connections: this.nextjsContainers.albFargateService.service.connections,
31
+ role: this.nextjsContainers.albFargateService.taskDefinition.taskRole,
32
+ });
33
+ }
34
+ createNextjsBuild() {
35
+ return new nextjs_build_1.NextjsBuild(this, "NextjsBuild", {
36
+ buildCommand: this.props.buildCommand,
37
+ buildContext: this.props.buildContext,
38
+ nextjsType: this.nextjsType,
39
+ relativePathToWorkspace: this.props.relativePathToWorkspace,
40
+ overrides: this.props.overrides?.nextjsBuild,
41
+ ...this.props.overrides?.nextjsRegionalContainers?.nextjsBuildProps,
42
+ });
43
+ }
44
+ createVpc() {
45
+ return new nextjs_vpc_1.NextjsVpc(this, "NextjsVpc", {
46
+ nextjsType: this.nextjsType,
47
+ overrides: this.props.overrides?.nextjsVpc,
48
+ ...this.props.overrides?.nextjsRegionalContainers?.nextjsVpcProps,
49
+ });
50
+ }
51
+ createNextjsFileSystem() {
52
+ return new nextjs_file_system_1.NextjsFileSystem(this, "NextjsFileSystem", {
53
+ vpc: this.nextjsVpc.vpc,
54
+ overrides: this.props.overrides?.nextjsFileSystem,
55
+ ...this.props.overrides?.nextjsRegionalContainers?.nextjsFileSystemProps,
56
+ });
57
+ }
58
+ createNextjsAssetsDeployment() {
59
+ return new nextjs_assets_deployment_1.NextjsAssetsDeployment(this, "NextjsAssetsDeployment", {
60
+ accessPoint: this.nextjsFileSystem.accessPoint,
61
+ buildImageDigest: this.nextjsBuild.buildImageDigest,
62
+ dockerImageCode: this.nextjsBuild.imageForNextjsAssetsDeployment,
63
+ containerMountPathForEfs: this.nextjsBuild.containerMountPathForEfs,
64
+ overrides: this.props.overrides?.nextjsAssetsDeployment,
65
+ relativePathToWorkspace: this.props.relativePathToWorkspace,
66
+ vpc: this.nextjsVpc.vpc,
67
+ ...this.props.overrides?.nextjsRegionalContainers
68
+ ?.nextjsAssetsDeploymentProps,
69
+ });
70
+ }
71
+ createNextjsLoadBalancedContainers() {
72
+ if (!this.nextjsBuild.imageForNextjsContainers) {
73
+ throw new Error("nextjsBuild.imageForNextjsContainers is undefined");
74
+ }
75
+ return new nextjs_containers_1.NextjsContainers(this, "NextjsContainers", {
76
+ accessPoint: this.nextjsFileSystem.accessPoint,
77
+ containerMountPathForEfs: this.nextjsBuild.containerMountPathForEfs,
78
+ dockerImageAsset: this.nextjsBuild.imageForNextjsContainers,
79
+ fileSystem: this.nextjsFileSystem.fileSystem,
80
+ healthCheckPath: this.props.healthCheckPath,
81
+ nextjsType: this.nextjsType,
82
+ overrides: this.props.overrides?.nextjsContainers,
83
+ relativeEntrypointPath: this.nextjsBuild.relativePathToEntrypoint,
84
+ vpc: this.nextjsVpc.vpc,
85
+ ...this.props.overrides?.nextjsRegionalContainers?.nextjsContainerProps,
86
+ });
87
+ }
88
+ }
89
+ exports.NextjsRegionalContainers = NextjsRegionalContainers;
90
+ _a = JSII_RTTI_SYMBOL_1;
91
+ NextjsRegionalContainers[_a] = { fqn: "cdk-nextjs.NextjsRegionalContainers", version: "0.1.1" };
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dGpzLXJlZ2lvbmFsLWNvbnRhaW5lcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcm9vdC1jb25zdHJ1Y3RzL25leHRqcy1yZWdpb25hbC1jb250YWluZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMkNBQXVDO0FBTXZDLHNDQUF1QztBQUV2QywwRUFBcUU7QUFDckUsK0RBQTJEO0FBQzNELDJFQUc2QztBQUM3Qyw4REFBeUQ7QUFDekQsOENBQTBDO0FBbUIxQzs7Ozs7R0FLRztBQUNILE1BQWEsd0JBQXlCLFNBQVEsc0JBQVM7SUFVckQsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBb0M7UUFFcEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQVJYLGVBQVUsR0FBRyxtQkFBVSxDQUFDLG1CQUFtQixDQUFDO1FBU2xELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDNUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ3RELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztRQUNsRSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGtDQUFrQyxFQUFFLENBQUM7UUFDbEUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQztZQUNqQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxXQUFXO1lBQ3hFLElBQUksRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLFFBQVE7U0FDdEUsQ0FB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QyxXQUFXLENBQUMsd0JBQXdCO1lBQ2pFLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUc7WUFDdkIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSx3QkFBd0IsRUFBRSxvQkFBb0I7U0FDeEUsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUFqRkgsNERBa0ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7XG4gIEJhc2VOZXh0anNDb25zdHJ1Y3RPdmVycmlkZXMsXG4gIEJhc2VOZXh0anNPdmVycmlkZXMsXG59IGZyb20gXCIuL25leHRqcy1iYXNlLW92ZXJyaWRlc1wiO1xuaW1wb3J0IHsgTmV4dGpzQmFzZVByb3BzIH0gZnJvbSBcIi4vbmV4dGpzLWJhc2UtcHJvcHNcIjtcbmltcG9ydCB7IE5leHRqc1R5cGUgfSBmcm9tIFwiLi4vY29tbW9uXCI7XG5pbXBvcnQgeyBPcHRpb25hbE5leHRqc0NvbnRhaW5lcnNQcm9wcyB9IGZyb20gXCIuLi9nZW5lcmF0ZWQtc3RydWN0cy9PcHRpb25hbE5leHRqc0NvbnRhaW5lcnNQcm9wc1wiO1xuaW1wb3J0IHsgTmV4dGpzQXNzZXRzRGVwbG95bWVudCB9IGZyb20gXCIuLi9uZXh0anMtYXNzZXRzLWRlcGxveW1lbnRcIjtcbmltcG9ydCB7IE5leHRqc0J1aWxkIH0gZnJvbSBcIi4uL25leHRqcy1idWlsZC9uZXh0anMtYnVpbGRcIjtcbmltcG9ydCB7XG4gIE5leHRqc0NvbnRhaW5lcnMsXG4gIE5leHRqc0NvbnRhaW5lcnNPdmVycmlkZXMsXG59IGZyb20gXCIuLi9uZXh0anMtY29tcHV0ZS9uZXh0anMtY29udGFpbmVyc1wiO1xuaW1wb3J0IHsgTmV4dGpzRmlsZVN5c3RlbSB9IGZyb20gXCIuLi9uZXh0anMtZmlsZS1zeXN0ZW1cIjtcbmltcG9ydCB7IE5leHRqc1ZwYyB9IGZyb20gXCIuLi9uZXh0anMtdnBjXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV4dGpzUmVnaW9uYWxDb250YWluZXJzQ29uc3RydWN0T3ZlcnJpZGVzXG4gIGV4dGVuZHMgQmFzZU5leHRqc0NvbnN0cnVjdE92ZXJyaWRlcyB7XG4gIHJlYWRvbmx5IG5leHRqc0NvbnRhaW5lclByb3BzPzogT3B0aW9uYWxOZXh0anNDb250YWluZXJzUHJvcHM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV4dGpzUmVnaW9uYWxDb250YWluZXJzT3ZlcnJpZGVzIGV4dGVuZHMgQmFzZU5leHRqc092ZXJyaWRlcyB7XG4gIHJlYWRvbmx5IG5leHRqc1JlZ2lvbmFsQ29udGFpbmVycz86IE5leHRqc1JlZ2lvbmFsQ29udGFpbmVyc0NvbnN0cnVjdE92ZXJyaWRlcztcbiAgcmVhZG9ubHkgbmV4dGpzQ29udGFpbmVycz86IE5leHRqc0NvbnRhaW5lcnNPdmVycmlkZXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV4dGpzUmVnaW9uYWxDb250YWluZXJzUHJvcHMgZXh0ZW5kcyBOZXh0anNCYXNlUHJvcHMge1xuICAvKipcbiAgICogT3ZlcnJpZGUgcHJvcHMgb2YgYW55IGNvbnN0cnVjdC5cbiAgICovXG4gIHJlYWRvbmx5IG92ZXJyaWRlcz86IE5leHRqc1JlZ2lvbmFsQ29udGFpbmVyc092ZXJyaWRlcztcbn1cblxuLyoqXG4gKiBEZXBsb3kgTmV4dC5qcyBsb2FkIGJhbGFuY2VkIHdpdGggY29udGFpbmVycy4gVXNlcyBbQXBwbGljYXRpb24gTG9hZFxuICogQmFsYW5jZXJdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9lbGFzdGljbG9hZGJhbGFuY2luZy9sYXRlc3QvYXBwbGljYXRpb24vaW50cm9kdWN0aW9uLmh0bWwpXG4gKiBmb3IgbG9hZCBiYWxhbmNpbmcgYW5kIFtBV1MgRmFyZ2F0ZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkVDUy9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvQVdTX0ZhcmdhdGUuaHRtbClcbiAqIGZvciBjb250YWluZXJzLlxuICovXG5leHBvcnQgY2xhc3MgTmV4dGpzUmVnaW9uYWxDb250YWluZXJzIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgbmV4dGpzQnVpbGQ6IE5leHRqc0J1aWxkO1xuICBuZXh0anNWcGM6IE5leHRqc1ZwYztcbiAgbmV4dGpzRmlsZVN5c3RlbTogTmV4dGpzRmlsZVN5c3RlbTtcbiAgbmV4dGpzQXNzZXRzRGVwbG95bWVudDogTmV4dGpzQXNzZXRzRGVwbG95bWVudDtcbiAgbmV4dGpzQ29udGFpbmVyczogTmV4dGpzQ29udGFpbmVycztcblxuICBwcml2YXRlIG5leHRqc1R5cGUgPSBOZXh0anNUeXBlLlJFR0lPTkFMX0NPTlRBSU5FUlM7XG4gIHByaXZhdGUgcHJvcHM6IE5leHRqc1JlZ2lvbmFsQ29udGFpbmVyc1Byb3BzO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogTmV4dGpzUmVnaW9uYWxDb250YWluZXJzUHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICAgIHRoaXMubmV4dGpzQnVpbGQgPSB0aGlzLmNyZWF0ZU5leHRqc0J1aWxkKCk7XG4gICAgdGhpcy5uZXh0anNWcGMgPSB0aGlzLmNyZWF0ZVZwYygpO1xuICAgIHRoaXMubmV4dGpzRmlsZVN5c3RlbSA9IHRoaXMuY3JlYXRlTmV4dGpzRmlsZVN5c3RlbSgpO1xuICAgIHRoaXMubmV4dGpzQXNzZXRzRGVwbG95bWVudCA9IHRoaXMuY3JlYXRlTmV4dGpzQXNzZXRzRGVwbG95bWVudCgpO1xuICAgIHRoaXMubmV4dGpzQ29udGFpbmVycyA9IHRoaXMuY3JlYXRlTmV4dGpzTG9hZEJhbGFuY2VkQ29udGFpbmVycygpO1xuICAgIHRoaXMubmV4dGpzRmlsZVN5c3RlbS5hbGxvd0NvbXB1dGUoe1xuICAgICAgY29ubmVjdGlvbnM6IHRoaXMubmV4dGpzQ29udGFpbmVycy5hbGJGYXJnYXRlU2VydmljZS5zZXJ2aWNlLmNvbm5lY3Rpb25zLFxuICAgICAgcm9sZTogdGhpcy5uZXh0anNDb250YWluZXJzLmFsYkZhcmdhdGVTZXJ2aWNlLnRhc2tEZWZpbml0aW9uLnRhc2tSb2xlLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVOZXh0anNCdWlsZCgpIHtcbiAgICByZXR1cm4gbmV3IE5leHRqc0J1aWxkKHRoaXMsIFwiTmV4dGpzQnVpbGRcIiwge1xuICAgICAgYnVpbGRDb21tYW5kOiB0aGlzLnByb3BzLmJ1aWxkQ29tbWFuZCxcbiAgICAgIGJ1aWxkQ29udGV4dDogdGhpcy5wcm9wcy5idWlsZENvbnRleHQsXG4gICAgICBuZXh0anNUeXBlOiB0aGlzLm5leHRqc1R5cGUsXG4gICAgICByZWxhdGl2ZVBhdGhUb1dvcmtzcGFjZTogdGhpcy5wcm9wcy5yZWxhdGl2ZVBhdGhUb1dvcmtzcGFjZSxcbiAgICAgIG92ZXJyaWRlczogdGhpcy5wcm9wcy5vdmVycmlkZXM/Lm5leHRqc0J1aWxkLFxuICAgICAgLi4udGhpcy5wcm9wcy5vdmVycmlkZXM/Lm5leHRqc1JlZ2lvbmFsQ29udGFpbmVycz8ubmV4dGpzQnVpbGRQcm9wcyxcbiAgICB9KTtcbiAgfVxuICBwcml2YXRlIGNyZWF0ZVZwYygpIHtcbiAgICByZXR1cm4gbmV3IE5leHRqc1ZwYyh0aGlzLCBcIk5leHRqc1ZwY1wiLCB7XG4gICAgICBuZXh0anNUeXBlOiB0aGlzLm5leHRqc1R5cGUsXG4gICAgICBvdmVycmlkZXM6IHRoaXMucHJvcHMub3ZlcnJpZGVzPy5uZXh0anNWcGMsXG4gICAgICAuLi50aGlzLnByb3BzLm92ZXJyaWRlcz8ubmV4dGpzUmVnaW9uYWxDb250YWluZXJzPy5uZXh0anNWcGNQcm9wcyxcbiAgICB9KTtcbiAgfVxuICBwcml2YXRlIGNyZWF0ZU5leHRqc0ZpbGVTeXN0ZW0oKSB7XG4gICAgcmV0dXJuIG5ldyBOZXh0anNGaWxlU3lzdGVtKHRoaXMsIFwiTmV4dGpzRmlsZVN5c3RlbVwiLCB7XG4gICAgICB2cGM6IHRoaXMubmV4dGpzVnBjLnZwYyxcbiAgICAgIG92ZXJyaWRlczogdGhpcy5wcm9wcy5vdmVycmlkZXM/Lm5leHRqc0ZpbGVTeXN0ZW0sXG4gICAgICAuLi50aGlzLnByb3BzLm92ZXJyaWRlcz8ubmV4dGpzUmVnaW9uYWxDb250YWluZXJzPy5uZXh0anNGaWxlU3lzdGVtUHJvcHMsXG4gICAgfSk7XG4gIH1cbiAgcHJpdmF0ZSBjcmVhdGVOZXh0anNBc3NldHNEZXBsb3ltZW50KCkge1xuICAgIHJldHVybiBuZXcgTmV4dGpzQXNzZXRzRGVwbG95bWVudCh0aGlzLCBcIk5leHRqc0Fzc2V0c0RlcGxveW1lbnRcIiwge1xuICAgICAgYWNjZXNzUG9pbnQ6IHRoaXMubmV4dGpzRmlsZVN5c3RlbS5hY2Nlc3NQb2ludCxcbiAgICAgIGJ1aWxkSW1hZ2VEaWdlc3Q6IHRoaXMubmV4dGpzQnVpbGQuYnVpbGRJbWFnZURpZ2VzdCxcbiAgICAgIGRvY2tlckltYWdlQ29kZTogdGhpcy5uZXh0anNCdWlsZC5pbWFnZUZvck5leHRqc0Fzc2V0c0RlcGxveW1lbnQsXG4gICAgICBjb250YWluZXJNb3VudFBhdGhGb3JFZnM6IHRoaXMubmV4dGpzQnVpbGQuY29udGFpbmVyTW91bnRQYXRoRm9yRWZzLFxuICAgICAgb3ZlcnJpZGVzOiB0aGlzLnByb3BzLm92ZXJyaWRlcz8ubmV4dGpzQXNzZXRzRGVwbG95bWVudCxcbiAgICAgIHJlbGF0aXZlUGF0aFRvV29ya3NwYWNlOiB0aGlzLnByb3BzLnJlbGF0aXZlUGF0aFRvV29ya3NwYWNlLFxuICAgICAgdnBjOiB0aGlzLm5leHRqc1ZwYy52cGMsXG4gICAgICAuLi50aGlzLnByb3BzLm92ZXJyaWRlcz8ubmV4dGpzUmVnaW9uYWxDb250YWluZXJzXG4gICAgICAgID8ubmV4dGpzQXNzZXRzRGVwbG95bWVudFByb3BzLFxuICAgIH0pO1xuICB9XG4gIHByaXZhdGUgY3JlYXRlTmV4dGpzTG9hZEJhbGFuY2VkQ29udGFpbmVycygpIHtcbiAgICBpZiAoIXRoaXMubmV4dGpzQnVpbGQuaW1hZ2VGb3JOZXh0anNDb250YWluZXJzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJuZXh0anNCdWlsZC5pbWFnZUZvck5leHRqc0NvbnRhaW5lcnMgaXMgdW5kZWZpbmVkXCIpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IE5leHRqc0NvbnRhaW5lcnModGhpcywgXCJOZXh0anNDb250YWluZXJzXCIsIHtcbiAgICAgIGFjY2Vzc1BvaW50OiB0aGlzLm5leHRqc0ZpbGVTeXN0ZW0uYWNjZXNzUG9pbnQsXG4gICAgICBjb250YWluZXJNb3VudFBhdGhGb3JFZnM6IHRoaXMubmV4dGpzQnVpbGQuY29udGFpbmVyTW91bnRQYXRoRm9yRWZzLFxuICAgICAgZG9ja2VySW1hZ2VBc3NldDogdGhpcy5uZXh0anNCdWlsZC5pbWFnZUZvck5leHRqc0NvbnRhaW5lcnMsXG4gICAgICBmaWxlU3lzdGVtOiB0aGlzLm5leHRqc0ZpbGVTeXN0ZW0uZmlsZVN5c3RlbSxcbiAgICAgIGhlYWx0aENoZWNrUGF0aDogdGhpcy5wcm9wcy5oZWFsdGhDaGVja1BhdGgsXG4gICAgICBuZXh0anNUeXBlOiB0aGlzLm5leHRqc1R5cGUsXG4gICAgICBvdmVycmlkZXM6IHRoaXMucHJvcHMub3ZlcnJpZGVzPy5uZXh0anNDb250YWluZXJzLFxuICAgICAgcmVsYXRpdmVFbnRyeXBvaW50UGF0aDogdGhpcy5uZXh0anNCdWlsZC5yZWxhdGl2ZVBhdGhUb0VudHJ5cG9pbnQsXG4gICAgICB2cGM6IHRoaXMubmV4dGpzVnBjLnZwYyxcbiAgICAgIC4uLnRoaXMucHJvcHMub3ZlcnJpZGVzPy5uZXh0anNSZWdpb25hbENvbnRhaW5lcnM/Lm5leHRqc0NvbnRhaW5lclByb3BzLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
package/package.json CHANGED
@@ -1,5 +1,166 @@
1
1
  {
2
2
  "name": "cdk-nextjs",
3
- "version": "0.1.0",
4
- "exports": "./dist/index.js"
3
+ "description": "Deploy Next.js apps on AWS with CDK",
4
+ "repository": {
5
+ "type": "git",
6
+ "url": "https://github.com/cdklabs/cdk-nextjs.git"
7
+ },
8
+ "author": {
9
+ "name": "Ben Stickley",
10
+ "email": "bestickley@gmail.com",
11
+ "organization": false
12
+ },
13
+ "devDependencies": {
14
+ "@aws-crypto/sha256-js": "^5.2.0",
15
+ "@aws-sdk/client-s3": "^3.741.0",
16
+ "@aws-sdk/client-sqs": "^3.741.0",
17
+ "@aws-sdk/lib-storage": "^3.741.0",
18
+ "@mrgrain/jsii-struct-builder": "^0.7.43",
19
+ "@smithy/signature-v4": "^2.3.0",
20
+ "@types/aws-lambda": "^8.10.147",
21
+ "@types/jest": "^29.5.14",
22
+ "@types/mime-types": "^2.1.4",
23
+ "@types/node": "^20",
24
+ "@typescript-eslint/eslint-plugin": "^8",
25
+ "@typescript-eslint/parser": "^8",
26
+ "aws-cdk-lib": "2.177.0",
27
+ "cdk-nag": "^2.35.9",
28
+ "commit-and-tag-version": "^12",
29
+ "constructs": "10.0.5",
30
+ "esbuild": "^0.24.2",
31
+ "eslint": "^9",
32
+ "eslint-config-prettier": "^9.1.0",
33
+ "eslint-import-resolver-typescript": "^3.7.0",
34
+ "eslint-plugin-import": "^2.31.0",
35
+ "eslint-plugin-prettier": "^5.2.3",
36
+ "jest": "^29.7.0",
37
+ "jest-junit": "^15",
38
+ "jsii": "~5.5.0",
39
+ "jsii-diff": "^1.106.0",
40
+ "jsii-docgen": "^10.5.0",
41
+ "jsii-pacmak": "^1.106.0",
42
+ "jsii-rosetta": "~5.5.0",
43
+ "mime-types": "^2.1.35",
44
+ "next": "14.2.23",
45
+ "prettier": "^3.4.2",
46
+ "projen": "^0.90.6",
47
+ "ts-jest": "^29.2.5",
48
+ "ts-node": "^10.9.2",
49
+ "typescript": "^5.7.3",
50
+ "undici": "^6.21.1"
51
+ },
52
+ "peerDependencies": {
53
+ "aws-cdk-lib": "^2.177.0",
54
+ "constructs": "^10.0.5"
55
+ },
56
+ "keywords": [
57
+ "aws",
58
+ "aws-cdk",
59
+ "cdk",
60
+ "next",
61
+ "next.js",
62
+ "nextjs"
63
+ ],
64
+ "engines": {
65
+ "node": ">= 20.0.0"
66
+ },
67
+ "main": "lib/index.js",
68
+ "license": "Apache-2.0",
69
+ "publishConfig": {
70
+ "access": "public"
71
+ },
72
+ "version": "0.1.1",
73
+ "jest": {
74
+ "coverageProvider": "v8",
75
+ "testMatch": [
76
+ "<rootDir>/@(src|test)/**/*(*.)@(spec|test).ts?(x)",
77
+ "<rootDir>/@(src|test)/**/__tests__/**/*.ts?(x)",
78
+ "<rootDir>/@(projenrc)/**/*(*.)@(spec|test).ts?(x)",
79
+ "<rootDir>/@(projenrc)/**/__tests__/**/*.ts?(x)"
80
+ ],
81
+ "clearMocks": true,
82
+ "collectCoverage": true,
83
+ "coverageReporters": [
84
+ "json",
85
+ "lcov",
86
+ "clover",
87
+ "cobertura",
88
+ "text"
89
+ ],
90
+ "coverageDirectory": "coverage",
91
+ "coveragePathIgnorePatterns": [
92
+ "/node_modules/"
93
+ ],
94
+ "testPathIgnorePatterns": [
95
+ "/node_modules/"
96
+ ],
97
+ "watchPathIgnorePatterns": [
98
+ "/node_modules/"
99
+ ],
100
+ "reporters": [
101
+ "default",
102
+ [
103
+ "jest-junit",
104
+ {
105
+ "outputDirectory": "test-reports"
106
+ }
107
+ ]
108
+ ],
109
+ "transform": {
110
+ "^.+\\.[t]sx?$": [
111
+ "ts-jest",
112
+ {
113
+ "tsconfig": "tsconfig.dev.json"
114
+ }
115
+ ]
116
+ }
117
+ },
118
+ "types": "lib/index.d.ts",
119
+ "stability": "stable",
120
+ "jsii": {
121
+ "outdir": "dist",
122
+ "targets": {},
123
+ "tsc": {
124
+ "outDir": "lib",
125
+ "rootDir": "src"
126
+ }
127
+ },
128
+ "//": "~~ Generated by projen. To modify, edit .projenrc.ts and run \"pnpm dlx projen\".",
129
+ "scripts": {
130
+ "build": "pnpm dlx projen build",
131
+ "bump": "pnpm dlx projen bump",
132
+ "bundle": "pnpm dlx projen bundle",
133
+ "bundle:lambdas/assets-deployment/assets-deployment.lambda": "pnpm dlx projen bundle:lambdas/assets-deployment/assets-deployment.lambda",
134
+ "bundle:lambdas/assets-deployment/assets-deployment.lambda:watch": "pnpm dlx projen bundle:lambdas/assets-deployment/assets-deployment.lambda:watch",
135
+ "bundle:lambdas/revalidate/revalidate.lambda": "pnpm dlx projen bundle:lambdas/revalidate/revalidate.lambda",
136
+ "bundle:lambdas/revalidate/revalidate.lambda:watch": "pnpm dlx projen bundle:lambdas/revalidate/revalidate.lambda:watch",
137
+ "bundle:lambdas/sign-fn-url/sign-fn-url.edge-lambda": "pnpm dlx projen bundle:lambdas/sign-fn-url/sign-fn-url.edge-lambda",
138
+ "bundle:lambdas/sign-fn-url/sign-fn-url.edge-lambda:watch": "pnpm dlx projen bundle:lambdas/sign-fn-url/sign-fn-url.edge-lambda:watch",
139
+ "bundle:nextjs-build/add-cache-handler": "pnpm dlx projen bundle:nextjs-build/add-cache-handler",
140
+ "bundle:nextjs-build/add-cache-handler:watch": "pnpm dlx projen bundle:nextjs-build/add-cache-handler:watch",
141
+ "bundle:nextjs-build/cache-handler": "pnpm dlx projen bundle:nextjs-build/cache-handler",
142
+ "bundle:nextjs-build/cache-handler:watch": "pnpm dlx projen bundle:nextjs-build/cache-handler:watch",
143
+ "bundle:nextjs-build/symlink-full-route-cache": "pnpm dlx projen bundle:nextjs-build/symlink-full-route-cache",
144
+ "bundle:nextjs-build/symlink-full-route-cache:watch": "pnpm dlx projen bundle:nextjs-build/symlink-full-route-cache:watch",
145
+ "clobber": "pnpm dlx projen clobber",
146
+ "compat": "pnpm dlx projen compat",
147
+ "compile": "pnpm dlx projen compile",
148
+ "default": "pnpm dlx projen default",
149
+ "docgen": "pnpm dlx projen docgen",
150
+ "eject": "pnpm dlx projen eject",
151
+ "eslint": "pnpm dlx projen eslint",
152
+ "package": "pnpm dlx projen package",
153
+ "package-all": "pnpm dlx projen package-all",
154
+ "package:js": "pnpm dlx projen package:js",
155
+ "post-compile": "pnpm dlx projen post-compile",
156
+ "post-upgrade": "pnpm dlx projen post-upgrade",
157
+ "pre-compile": "pnpm dlx projen pre-compile",
158
+ "release": "pnpm dlx projen release",
159
+ "test": "pnpm dlx projen test",
160
+ "test:watch": "pnpm dlx projen test:watch",
161
+ "unbump": "pnpm dlx projen unbump",
162
+ "upgrade": "pnpm dlx projen upgrade",
163
+ "watch": "pnpm dlx projen watch",
164
+ "projen": "pnpm dlx projen"
165
+ }
5
166
  }
package/dist/index.js DELETED
@@ -1 +0,0 @@
1
- export const Nextjs = "TODO"