cdk-nextjs 0.1.3 → 0.2.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 +120 -88
- package/API.md +60 -38
- package/assets/lambdas/assets-deployment/assets-deployment.lambda/assets-deployment.Dockerfile +1 -1
- package/assets/lambdas/assets-deployment/assets-deployment.lambda/index.js +18 -8
- package/assets/lambdas/assets-deployment/assets-deployment.lambda/patch-fetch.js +1 -0
- package/docs/breaking-changes.md +12 -0
- package/lib/generated-structs/OptionalNextjsAssetsDeploymentProps.d.ts +5 -0
- package/lib/generated-structs/OptionalNextjsAssetsDeploymentProps.js +1 -1
- package/lib/generated-structs/OptionalNextjsDistributionProps.d.ts +7 -7
- package/lib/generated-structs/OptionalNextjsDistributionProps.js +1 -1
- package/lib/lambdas/assets-deployment/assets-deployment.lambda.js +16 -8
- package/lib/lambdas/assets-deployment/fs-to-s3.d.ts +12 -1
- package/lib/lambdas/assets-deployment/fs-to-s3.js +16 -3
- package/lib/nextjs-assets-deployment.d.ts +7 -4
- package/lib/nextjs-assets-deployment.js +3 -2
- package/lib/nextjs-build/nextjs-build.js +1 -1
- package/lib/nextjs-compute/nextjs-containers.js +1 -1
- package/lib/nextjs-compute/nextjs-functions.js +1 -1
- package/lib/nextjs-distribution.d.ts +9 -15
- package/lib/nextjs-distribution.js +15 -84
- package/lib/nextjs-file-system.js +1 -1
- package/lib/nextjs-invalidation.js +1 -1
- package/lib/nextjs-revalidation.js +1 -1
- package/lib/nextjs-static-assets.js +1 -1
- package/lib/nextjs-vpc.js +1 -1
- package/lib/root-constructs/nextjs-global-containers.js +5 -4
- package/lib/root-constructs/nextjs-global-functions.js +5 -5
- package/lib/root-constructs/nextjs-regional-containers.js +4 -3
- package/package.json +4 -7
- package/assets/lambdas/sign-fn-url/sign-fn-url.edge-lambda/index.js +0 -2024
- package/lib/lambdas/sign-fn-url/sign-fn-url-function.d.ts +0 -13
- package/lib/lambdas/sign-fn-url/sign-fn-url-function.js +0 -23
- package/lib/lambdas/sign-fn-url/sign-fn-url.edge-lambda.d.ts +0 -9
- package/lib/lambdas/sign-fn-url/sign-fn-url.edge-lambda.js +0 -35
- package/lib/lambdas/sign-fn-url/sign-request.d.ts +0 -28
- package/lib/lambdas/sign-fn-url/sign-request.js +0 -119
- package/lib/lambdas/sign-fn-url/sign-request.test.d.ts +0 -1
- package/lib/lambdas/sign-fn-url/sign-request.test.js +0 -129
package/API.md
CHANGED
|
@@ -2198,6 +2198,7 @@ const nextjsAssetsDeploymentProps: NextjsAssetsDeploymentProps = { ... }
|
|
|
2198
2198
|
| <code><a href="#cdk-nextjs.NextjsAssetsDeploymentProps.property.buildImageDigest">buildImageDigest</a></code> | <code>string</code> | *No description.* |
|
|
2199
2199
|
| <code><a href="#cdk-nextjs.NextjsAssetsDeploymentProps.property.containerMountPathForEfs">containerMountPathForEfs</a></code> | <code>string</code> | *No description.* |
|
|
2200
2200
|
| <code><a href="#cdk-nextjs.NextjsAssetsDeploymentProps.property.dockerImageCode">dockerImageCode</a></code> | <code>aws-cdk-lib.aws_lambda.DockerImageCode</code> | *No description.* |
|
|
2201
|
+
| <code><a href="#cdk-nextjs.NextjsAssetsDeploymentProps.property.nextjsType">nextjsType</a></code> | <code><a href="#cdk-nextjs.NextjsType">NextjsType</a></code> | *No description.* |
|
|
2201
2202
|
| <code><a href="#cdk-nextjs.NextjsAssetsDeploymentProps.property.vpc">vpc</a></code> | <code>aws-cdk-lib.aws_ec2.IVpc</code> | *No description.* |
|
|
2202
2203
|
| <code><a href="#cdk-nextjs.NextjsAssetsDeploymentProps.property.debug">debug</a></code> | <code>boolean</code> | *No description.* |
|
|
2203
2204
|
| <code><a href="#cdk-nextjs.NextjsAssetsDeploymentProps.property.overrides">overrides</a></code> | <code><a href="#cdk-nextjs.NextjsAssetDeploymentOverrides">NextjsAssetDeploymentOverrides</a></code> | *No description.* |
|
|
@@ -2250,6 +2251,16 @@ public readonly dockerImageCode: DockerImageCode;
|
|
|
2250
2251
|
|
|
2251
2252
|
---
|
|
2252
2253
|
|
|
2254
|
+
##### `nextjsType`<sup>Required</sup> <a name="nextjsType" id="cdk-nextjs.NextjsAssetsDeploymentProps.property.nextjsType"></a>
|
|
2255
|
+
|
|
2256
|
+
```typescript
|
|
2257
|
+
public readonly nextjsType: NextjsType;
|
|
2258
|
+
```
|
|
2259
|
+
|
|
2260
|
+
- *Type:* <a href="#cdk-nextjs.NextjsType">NextjsType</a>
|
|
2261
|
+
|
|
2262
|
+
---
|
|
2263
|
+
|
|
2253
2264
|
##### `vpc`<sup>Required</sup> <a name="vpc" id="cdk-nextjs.NextjsAssetsDeploymentProps.property.vpc"></a>
|
|
2254
2265
|
|
|
2255
2266
|
```typescript
|
|
@@ -2806,9 +2817,9 @@ const nextjsDistributionOverrides: NextjsDistributionOverrides = { ... }
|
|
|
2806
2817
|
| <code><a href="#cdk-nextjs.NextjsDistributionOverrides.property.distributionProps">distributionProps</a></code> | <code><a href="#cdk-nextjs.OptionalDistributionProps">OptionalDistributionProps</a></code> | *No description.* |
|
|
2807
2818
|
| <code><a href="#cdk-nextjs.NextjsDistributionOverrides.property.dynamicBehaviorOptions">dynamicBehaviorOptions</a></code> | <code>aws-cdk-lib.aws_cloudfront.AddBehaviorOptions</code> | *No description.* |
|
|
2808
2819
|
| <code><a href="#cdk-nextjs.NextjsDistributionOverrides.property.dynamicCachePolicyProps">dynamicCachePolicyProps</a></code> | <code>aws-cdk-lib.aws_cloudfront.CachePolicyProps</code> | *No description.* |
|
|
2809
|
-
| <code><a href="#cdk-nextjs.NextjsDistributionOverrides.property.
|
|
2820
|
+
| <code><a href="#cdk-nextjs.NextjsDistributionOverrides.property.dynamicFunctionUrlOriginWithOACProps">dynamicFunctionUrlOriginWithOACProps</a></code> | <code>aws-cdk-lib.aws_cloudfront_origins.FunctionUrlOriginWithOACProps</code> | *No description.* |
|
|
2821
|
+
| <code><a href="#cdk-nextjs.NextjsDistributionOverrides.property.dynamicLoadBalancerV2OriginProps">dynamicLoadBalancerV2OriginProps</a></code> | <code>aws-cdk-lib.aws_cloudfront_origins.LoadBalancerV2OriginProps</code> | *No description.* |
|
|
2810
2822
|
| <code><a href="#cdk-nextjs.NextjsDistributionOverrides.property.dynamicResponseHeadersPolicyProps">dynamicResponseHeadersPolicyProps</a></code> | <code>aws-cdk-lib.aws_cloudfront.ResponseHeadersPolicyProps</code> | *No description.* |
|
|
2811
|
-
| <code><a href="#cdk-nextjs.NextjsDistributionOverrides.property.edgeFunctionProps">edgeFunctionProps</a></code> | <code><a href="#cdk-nextjs.OptionalFunctionProps">OptionalFunctionProps</a></code> | *No description.* |
|
|
2812
2823
|
| <code><a href="#cdk-nextjs.NextjsDistributionOverrides.property.imageBehaviorOptions">imageBehaviorOptions</a></code> | <code>aws-cdk-lib.aws_cloudfront.AddBehaviorOptions</code> | *No description.* |
|
|
2813
2824
|
| <code><a href="#cdk-nextjs.NextjsDistributionOverrides.property.imageCachePolicyProps">imageCachePolicyProps</a></code> | <code>aws-cdk-lib.aws_cloudfront.CachePolicyProps</code> | *No description.* |
|
|
2814
2825
|
| <code><a href="#cdk-nextjs.NextjsDistributionOverrides.property.imageResponseHeadersPolicyProps">imageResponseHeadersPolicyProps</a></code> | <code>aws-cdk-lib.aws_cloudfront.ResponseHeadersPolicyProps</code> | *No description.* |
|
|
@@ -2848,33 +2859,33 @@ public readonly dynamicCachePolicyProps: CachePolicyProps;
|
|
|
2848
2859
|
|
|
2849
2860
|
---
|
|
2850
2861
|
|
|
2851
|
-
##### `
|
|
2862
|
+
##### `dynamicFunctionUrlOriginWithOACProps`<sup>Optional</sup> <a name="dynamicFunctionUrlOriginWithOACProps" id="cdk-nextjs.NextjsDistributionOverrides.property.dynamicFunctionUrlOriginWithOACProps"></a>
|
|
2852
2863
|
|
|
2853
2864
|
```typescript
|
|
2854
|
-
public readonly
|
|
2865
|
+
public readonly dynamicFunctionUrlOriginWithOACProps: FunctionUrlOriginWithOACProps;
|
|
2855
2866
|
```
|
|
2856
2867
|
|
|
2857
|
-
- *Type:* aws-cdk-lib.aws_cloudfront_origins.
|
|
2868
|
+
- *Type:* aws-cdk-lib.aws_cloudfront_origins.FunctionUrlOriginWithOACProps
|
|
2858
2869
|
|
|
2859
2870
|
---
|
|
2860
2871
|
|
|
2861
|
-
##### `
|
|
2872
|
+
##### `dynamicLoadBalancerV2OriginProps`<sup>Optional</sup> <a name="dynamicLoadBalancerV2OriginProps" id="cdk-nextjs.NextjsDistributionOverrides.property.dynamicLoadBalancerV2OriginProps"></a>
|
|
2862
2873
|
|
|
2863
2874
|
```typescript
|
|
2864
|
-
public readonly
|
|
2875
|
+
public readonly dynamicLoadBalancerV2OriginProps: LoadBalancerV2OriginProps;
|
|
2865
2876
|
```
|
|
2866
2877
|
|
|
2867
|
-
- *Type:* aws-cdk-lib.
|
|
2878
|
+
- *Type:* aws-cdk-lib.aws_cloudfront_origins.LoadBalancerV2OriginProps
|
|
2868
2879
|
|
|
2869
2880
|
---
|
|
2870
2881
|
|
|
2871
|
-
##### `
|
|
2882
|
+
##### `dynamicResponseHeadersPolicyProps`<sup>Optional</sup> <a name="dynamicResponseHeadersPolicyProps" id="cdk-nextjs.NextjsDistributionOverrides.property.dynamicResponseHeadersPolicyProps"></a>
|
|
2872
2883
|
|
|
2873
2884
|
```typescript
|
|
2874
|
-
public readonly
|
|
2885
|
+
public readonly dynamicResponseHeadersPolicyProps: ResponseHeadersPolicyProps;
|
|
2875
2886
|
```
|
|
2876
2887
|
|
|
2877
|
-
- *Type:*
|
|
2888
|
+
- *Type:* aws-cdk-lib.aws_cloudfront.ResponseHeadersPolicyProps
|
|
2878
2889
|
|
|
2879
2890
|
---
|
|
2880
2891
|
|
|
@@ -2953,13 +2964,13 @@ const nextjsDistributionProps: NextjsDistributionProps = { ... }
|
|
|
2953
2964
|
| **Name** | **Type** | **Description** |
|
|
2954
2965
|
| --- | --- | --- |
|
|
2955
2966
|
| <code><a href="#cdk-nextjs.NextjsDistributionProps.property.assetsBucket">assetsBucket</a></code> | <code>aws-cdk-lib.aws_s3.IBucket</code> | Bucket containing static assets. |
|
|
2956
|
-
| <code><a href="#cdk-nextjs.NextjsDistributionProps.property.dynamicUrl">dynamicUrl</a></code> | <code>string</code> | Dynamic (Next.js server) URL to add behavior to distribution. |
|
|
2957
2967
|
| <code><a href="#cdk-nextjs.NextjsDistributionProps.property.nextjsType">nextjsType</a></code> | <code><a href="#cdk-nextjs.NextjsType">NextjsType</a></code> | *No description.* |
|
|
2958
2968
|
| <code><a href="#cdk-nextjs.NextjsDistributionProps.property.publicDirEntries">publicDirEntries</a></code> | <code><a href="#cdk-nextjs.PublicDirEntry">PublicDirEntry</a>[]</code> | Path to directory of Next.js app's public directory. Used to add static behaviors to distribution. |
|
|
2959
2969
|
| <code><a href="#cdk-nextjs.NextjsDistributionProps.property.basePath">basePath</a></code> | <code>string</code> | *No description.* |
|
|
2960
2970
|
| <code><a href="#cdk-nextjs.NextjsDistributionProps.property.certificate">certificate</a></code> | <code>aws-cdk-lib.aws_certificatemanager.ICertificate</code> | Optional but only applicable for `NextjsType.GLOBAL_CONTAINERS`. |
|
|
2961
2971
|
| <code><a href="#cdk-nextjs.NextjsDistributionProps.property.distribution">distribution</a></code> | <code>aws-cdk-lib.aws_cloudfront.Distribution</code> | *No description.* |
|
|
2962
|
-
| <code><a href="#cdk-nextjs.NextjsDistributionProps.property.
|
|
2972
|
+
| <code><a href="#cdk-nextjs.NextjsDistributionProps.property.functionUrl">functionUrl</a></code> | <code>aws-cdk-lib.aws_lambda.IFunctionUrl</code> | Required if `NextjsType.GLOBAL_FUNCTIONS`. |
|
|
2973
|
+
| <code><a href="#cdk-nextjs.NextjsDistributionProps.property.loadBalancer">loadBalancer</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.ILoadBalancerV2</code> | Required if `NextjsType.GLOBAL_CONTAINERS` or `NextjsType.REGIONAL_CONTAINERS`. |
|
|
2963
2974
|
| <code><a href="#cdk-nextjs.NextjsDistributionProps.property.overrides">overrides</a></code> | <code><a href="#cdk-nextjs.NextjsDistributionOverrides">NextjsDistributionOverrides</a></code> | Override props for every construct. |
|
|
2964
2975
|
|
|
2965
2976
|
---
|
|
@@ -2978,18 +2989,6 @@ Must be provided if you want to serve static files.
|
|
|
2978
2989
|
|
|
2979
2990
|
---
|
|
2980
2991
|
|
|
2981
|
-
##### `dynamicUrl`<sup>Required</sup> <a name="dynamicUrl" id="cdk-nextjs.NextjsDistributionProps.property.dynamicUrl"></a>
|
|
2982
|
-
|
|
2983
|
-
```typescript
|
|
2984
|
-
public readonly dynamicUrl: string;
|
|
2985
|
-
```
|
|
2986
|
-
|
|
2987
|
-
- *Type:* string
|
|
2988
|
-
|
|
2989
|
-
Dynamic (Next.js server) URL to add behavior to distribution.
|
|
2990
|
-
|
|
2991
|
-
---
|
|
2992
|
-
|
|
2993
2992
|
##### `nextjsType`<sup>Required</sup> <a name="nextjsType" id="cdk-nextjs.NextjsDistributionProps.property.nextjsType"></a>
|
|
2994
2993
|
|
|
2995
2994
|
```typescript
|
|
@@ -3044,18 +3043,30 @@ public readonly distribution: Distribution;
|
|
|
3044
3043
|
|
|
3045
3044
|
---
|
|
3046
3045
|
|
|
3047
|
-
##### `
|
|
3046
|
+
##### `functionUrl`<sup>Optional</sup> <a name="functionUrl" id="cdk-nextjs.NextjsDistributionProps.property.functionUrl"></a>
|
|
3048
3047
|
|
|
3049
3048
|
```typescript
|
|
3050
|
-
public readonly
|
|
3049
|
+
public readonly functionUrl: IFunctionUrl;
|
|
3051
3050
|
```
|
|
3052
3051
|
|
|
3053
|
-
- *Type:*
|
|
3052
|
+
- *Type:* aws-cdk-lib.aws_lambda.IFunctionUrl
|
|
3054
3053
|
|
|
3055
3054
|
Required if `NextjsType.GLOBAL_FUNCTIONS`.
|
|
3056
3055
|
|
|
3057
3056
|
---
|
|
3058
3057
|
|
|
3058
|
+
##### `loadBalancer`<sup>Optional</sup> <a name="loadBalancer" id="cdk-nextjs.NextjsDistributionProps.property.loadBalancer"></a>
|
|
3059
|
+
|
|
3060
|
+
```typescript
|
|
3061
|
+
public readonly loadBalancer: ILoadBalancerV2;
|
|
3062
|
+
```
|
|
3063
|
+
|
|
3064
|
+
- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.ILoadBalancerV2
|
|
3065
|
+
|
|
3066
|
+
Required if `NextjsType.GLOBAL_CONTAINERS` or `NextjsType.REGIONAL_CONTAINERS`.
|
|
3067
|
+
|
|
3068
|
+
---
|
|
3069
|
+
|
|
3059
3070
|
##### `overrides`<sup>Optional</sup> <a name="overrides" id="cdk-nextjs.NextjsDistributionProps.property.overrides"></a>
|
|
3060
3071
|
|
|
3061
3072
|
```typescript
|
|
@@ -8501,6 +8512,7 @@ const optionalNextjsAssetsDeploymentProps: OptionalNextjsAssetsDeploymentProps =
|
|
|
8501
8512
|
| <code><a href="#cdk-nextjs.OptionalNextjsAssetsDeploymentProps.property.containerMountPathForEfs">containerMountPathForEfs</a></code> | <code>string</code> | *No description.* |
|
|
8502
8513
|
| <code><a href="#cdk-nextjs.OptionalNextjsAssetsDeploymentProps.property.debug">debug</a></code> | <code>boolean</code> | *No description.* |
|
|
8503
8514
|
| <code><a href="#cdk-nextjs.OptionalNextjsAssetsDeploymentProps.property.dockerImageCode">dockerImageCode</a></code> | <code>aws-cdk-lib.aws_lambda.DockerImageCode</code> | *No description.* |
|
|
8515
|
+
| <code><a href="#cdk-nextjs.OptionalNextjsAssetsDeploymentProps.property.nextjsType">nextjsType</a></code> | <code><a href="#cdk-nextjs.NextjsType">NextjsType</a></code> | *No description.* |
|
|
8504
8516
|
| <code><a href="#cdk-nextjs.OptionalNextjsAssetsDeploymentProps.property.relativePathToWorkspace">relativePathToWorkspace</a></code> | <code>string</code> | *No description.* |
|
|
8505
8517
|
| <code><a href="#cdk-nextjs.OptionalNextjsAssetsDeploymentProps.property.staticAssetsBucket">staticAssetsBucket</a></code> | <code>aws-cdk-lib.aws_s3.Bucket</code> | Required for `NextjsType.GlobalFunctions` and `NextjsType.GlobalContainers`. |
|
|
8506
8518
|
| <code><a href="#cdk-nextjs.OptionalNextjsAssetsDeploymentProps.property.vpc">vpc</a></code> | <code>aws-cdk-lib.aws_ec2.IVpc</code> | *No description.* |
|
|
@@ -8558,6 +8570,16 @@ public readonly dockerImageCode: DockerImageCode;
|
|
|
8558
8570
|
|
|
8559
8571
|
---
|
|
8560
8572
|
|
|
8573
|
+
##### `nextjsType`<sup>Optional</sup> <a name="nextjsType" id="cdk-nextjs.OptionalNextjsAssetsDeploymentProps.property.nextjsType"></a>
|
|
8574
|
+
|
|
8575
|
+
```typescript
|
|
8576
|
+
public readonly nextjsType: NextjsType;
|
|
8577
|
+
```
|
|
8578
|
+
|
|
8579
|
+
- *Type:* <a href="#cdk-nextjs.NextjsType">NextjsType</a>
|
|
8580
|
+
|
|
8581
|
+
---
|
|
8582
|
+
|
|
8561
8583
|
##### `relativePathToWorkspace`<sup>Optional</sup> <a name="relativePathToWorkspace" id="cdk-nextjs.OptionalNextjsAssetsDeploymentProps.property.relativePathToWorkspace"></a>
|
|
8562
8584
|
|
|
8563
8585
|
```typescript
|
|
@@ -8791,8 +8813,8 @@ const optionalNextjsDistributionProps: OptionalNextjsDistributionProps = { ... }
|
|
|
8791
8813
|
| <code><a href="#cdk-nextjs.OptionalNextjsDistributionProps.property.basePath">basePath</a></code> | <code>string</code> | *No description.* |
|
|
8792
8814
|
| <code><a href="#cdk-nextjs.OptionalNextjsDistributionProps.property.certificate">certificate</a></code> | <code>aws-cdk-lib.aws_certificatemanager.ICertificate</code> | Optional but only applicable for `NextjsType.GLOBAL_CONTAINERS`. |
|
|
8793
8815
|
| <code><a href="#cdk-nextjs.OptionalNextjsDistributionProps.property.distribution">distribution</a></code> | <code>aws-cdk-lib.aws_cloudfront.Distribution</code> | *No description.* |
|
|
8794
|
-
| <code><a href="#cdk-nextjs.OptionalNextjsDistributionProps.property.
|
|
8795
|
-
| <code><a href="#cdk-nextjs.OptionalNextjsDistributionProps.property.
|
|
8816
|
+
| <code><a href="#cdk-nextjs.OptionalNextjsDistributionProps.property.functionUrl">functionUrl</a></code> | <code>aws-cdk-lib.aws_lambda.IFunctionUrl</code> | Required if `NextjsType.GLOBAL_FUNCTIONS`. |
|
|
8817
|
+
| <code><a href="#cdk-nextjs.OptionalNextjsDistributionProps.property.loadBalancer">loadBalancer</a></code> | <code>aws-cdk-lib.aws_elasticloadbalancingv2.ILoadBalancerV2</code> | Required if `NextjsType.GLOBAL_CONTAINERS` or `NextjsType.REGIONAL_CONTAINERS`. |
|
|
8796
8818
|
| <code><a href="#cdk-nextjs.OptionalNextjsDistributionProps.property.nextjsType">nextjsType</a></code> | <code><a href="#cdk-nextjs.NextjsType">NextjsType</a></code> | *No description.* |
|
|
8797
8819
|
| <code><a href="#cdk-nextjs.OptionalNextjsDistributionProps.property.publicDirEntries">publicDirEntries</a></code> | <code><a href="#cdk-nextjs.PublicDirEntry">PublicDirEntry</a>[]</code> | Path to directory of Next.js app's public directory. Used to add static behaviors to distribution. |
|
|
8798
8820
|
|
|
@@ -8844,27 +8866,27 @@ public readonly distribution: Distribution;
|
|
|
8844
8866
|
|
|
8845
8867
|
---
|
|
8846
8868
|
|
|
8847
|
-
##### `
|
|
8869
|
+
##### `functionUrl`<sup>Optional</sup> <a name="functionUrl" id="cdk-nextjs.OptionalNextjsDistributionProps.property.functionUrl"></a>
|
|
8848
8870
|
|
|
8849
8871
|
```typescript
|
|
8850
|
-
public readonly
|
|
8872
|
+
public readonly functionUrl: IFunctionUrl;
|
|
8851
8873
|
```
|
|
8852
8874
|
|
|
8853
|
-
- *Type:*
|
|
8875
|
+
- *Type:* aws-cdk-lib.aws_lambda.IFunctionUrl
|
|
8854
8876
|
|
|
8855
|
-
|
|
8877
|
+
Required if `NextjsType.GLOBAL_FUNCTIONS`.
|
|
8856
8878
|
|
|
8857
8879
|
---
|
|
8858
8880
|
|
|
8859
|
-
##### `
|
|
8881
|
+
##### `loadBalancer`<sup>Optional</sup> <a name="loadBalancer" id="cdk-nextjs.OptionalNextjsDistributionProps.property.loadBalancer"></a>
|
|
8860
8882
|
|
|
8861
8883
|
```typescript
|
|
8862
|
-
public readonly
|
|
8884
|
+
public readonly loadBalancer: ILoadBalancerV2;
|
|
8863
8885
|
```
|
|
8864
8886
|
|
|
8865
|
-
- *Type:*
|
|
8887
|
+
- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.ILoadBalancerV2
|
|
8866
8888
|
|
|
8867
|
-
Required if `NextjsType.
|
|
8889
|
+
Required if `NextjsType.GLOBAL_CONTAINERS` or `NextjsType.REGIONAL_CONTAINERS`.
|
|
8868
8890
|
|
|
8869
8891
|
---
|
|
8870
8892
|
|
package/assets/lambdas/assets-deployment/assets-deployment.lambda/assets-deployment.Dockerfile
CHANGED
|
@@ -13,6 +13,6 @@ COPY --from=builder --chown=nextjs:nodejs /app/$RELATIVE_PATH_TO_WORKSPACE/.next
|
|
|
13
13
|
# create fetch-cache if not created by next build
|
|
14
14
|
RUN mkdir -p /app/.next/cache/fetch-cache
|
|
15
15
|
# copy bundled custom resource handler
|
|
16
|
-
COPY --chown=nextjs:nodejs ./index.js ./
|
|
16
|
+
COPY --chown=nextjs:nodejs ./index.js ./patch-fetch.js ./
|
|
17
17
|
|
|
18
18
|
CMD ["index.handler"]
|
|
@@ -8659,7 +8659,7 @@ __export(assets_deployment_lambda_exports, {
|
|
|
8659
8659
|
handler: () => handler
|
|
8660
8660
|
});
|
|
8661
8661
|
module.exports = __toCommonJS(assets_deployment_lambda_exports);
|
|
8662
|
-
var
|
|
8662
|
+
var import_node_fs4 = require("node:fs");
|
|
8663
8663
|
|
|
8664
8664
|
// src/lambdas/assets-deployment/fs-to-fs.ts
|
|
8665
8665
|
var import_node_fs = require("node:fs");
|
|
@@ -8722,7 +8722,7 @@ function debug(value) {
|
|
|
8722
8722
|
}
|
|
8723
8723
|
|
|
8724
8724
|
// src/lambdas/assets-deployment/fs-to-s3.ts
|
|
8725
|
-
async function fsToS3(props) {
|
|
8725
|
+
async function fsToS3(props, nextjsType) {
|
|
8726
8726
|
const { destinationBucketName, destinationKeyPrefix, sourcePath } = props;
|
|
8727
8727
|
const sourceFilePaths = listFilePaths(sourcePath);
|
|
8728
8728
|
for await (const filePathChunk of chunkArray(sourceFilePaths, 100)) {
|
|
@@ -8734,8 +8734,18 @@ async function fsToS3(props) {
|
|
|
8734
8734
|
path,
|
|
8735
8735
|
basePath: sourcePath
|
|
8736
8736
|
});
|
|
8737
|
+
let body;
|
|
8738
|
+
if (path.includes(".next/static/chunks/main-app-") && nextjsType === "GLOBAL_FUNCTIONS" /* GLOBAL_FUNCTIONS */) {
|
|
8739
|
+
const mainAppFileContent = (0, import_node_fs3.readFileSync)(path);
|
|
8740
|
+
const patchFetchContent = (0, import_node_fs3.readFileSync)(
|
|
8741
|
+
(0, import_node_path2.join)(__dirname, "patch-fetch.js")
|
|
8742
|
+
);
|
|
8743
|
+
body = patchFetchContent + "\n" + mainAppFileContent;
|
|
8744
|
+
} else {
|
|
8745
|
+
body = (0, import_node_fs3.createReadStream)(path);
|
|
8746
|
+
}
|
|
8737
8747
|
return {
|
|
8738
|
-
Body:
|
|
8748
|
+
Body: body,
|
|
8739
8749
|
Bucket: destinationBucketName,
|
|
8740
8750
|
ContentType: contentType,
|
|
8741
8751
|
Key: key
|
|
@@ -8771,12 +8781,12 @@ var handler = async (event, context) => {
|
|
|
8771
8781
|
try {
|
|
8772
8782
|
const props = event.ResourceProperties;
|
|
8773
8783
|
if (event.RequestType === "Create" || event.RequestType === "Update") {
|
|
8774
|
-
const { actions } = props;
|
|
8784
|
+
const { actions, nextjsType } = props;
|
|
8775
8785
|
for (const action of actions) {
|
|
8776
8786
|
if (action.type === "fs-to-fs") {
|
|
8777
8787
|
fsToFs(action);
|
|
8778
8788
|
} else if (action.type === "fs-to-s3") {
|
|
8779
|
-
await fsToS3(action);
|
|
8789
|
+
await fsToS3(action, nextjsType);
|
|
8780
8790
|
} else if (action.type === "prune-s3") {
|
|
8781
8791
|
await pruneS3(action);
|
|
8782
8792
|
}
|
|
@@ -8799,13 +8809,13 @@ var handler = async (event, context) => {
|
|
|
8799
8809
|
}
|
|
8800
8810
|
};
|
|
8801
8811
|
function initImageCache(imageCachePath) {
|
|
8802
|
-
if (imageCachePath && !(0,
|
|
8803
|
-
(0,
|
|
8812
|
+
if (imageCachePath && !(0, import_node_fs4.existsSync)(imageCachePath)) {
|
|
8813
|
+
(0, import_node_fs4.mkdirSync)(imageCachePath);
|
|
8804
8814
|
}
|
|
8805
8815
|
}
|
|
8806
8816
|
function getPreviewModeId(prerenderManifestPath) {
|
|
8807
8817
|
const prerenderManifest = JSON.parse(
|
|
8808
|
-
(0,
|
|
8818
|
+
(0, import_node_fs4.readFileSync)(prerenderManifestPath, { encoding: "utf-8" })
|
|
8809
8819
|
);
|
|
8810
8820
|
return prerenderManifest.preview.previewModeId;
|
|
8811
8821
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(()=>{var p=Object.defineProperty;var f=(n,e,t)=>e in n?p(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var c=(n,e,t)=>f(n,typeof e!="symbol"?e+"":e,t);async function d(n){let t=new TextEncoder().encode(n),s=await crypto.subtle.digest("SHA-256",t);return Array.from(new Uint8Array(s)).map(o=>o.toString(16).padStart(2,"0")).join("")}var a=window.fetch,u=window.XMLHttpRequest;window.fetch=async function(e,t){var h;if(!t)return a(e,t);let s=(h=t.method)==null?void 0:h.toUpperCase();if(s!=="PUT"&&s!=="POST"||(typeof e=="string"?new URL(e,window.location.href):new URL(e.url)).hostname!==window.location.hostname)return a(e,t);let r=t.body;if(r){let w=typeof r=="string"?r:JSON.stringify(r),l=await d(w),i=new Headers(t.headers);i.set("x-amz-content-sha256",l),t.headers=i}return a(e,t)};window.XMLHttpRequest=class extends u{constructor(){super();c(this,"method","");c(this,"url","");this.originalOpen=super.open,this.originalSend=super.send,super.open=(t,s,...o)=>{this.method=t.toUpperCase(),this.url=s,this.originalOpen.apply(this,[t,s,...o])},super.send=async t=>{if((this.method==="PUT"||this.method==="POST")&&new URL(this.url,window.location.href).hostname===window.location.hostname&&t){let s=typeof t=="string"?t:JSON.stringify(t),o=await d(s);this.setRequestHeader("x-amz-content-sha256",o)}this.originalSend.apply(this,[t])}}};})();
|
package/docs/breaking-changes.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Breaking Changes
|
|
2
2
|
|
|
3
|
+
## 0.2.0
|
|
4
|
+
|
|
5
|
+
- Removed Lambda@Edge Function from `NextjsGlobalFunctions`
|
|
6
|
+
- Updated `NextjsDistribution`'s dynamic origins to use `FunctionUrlOrigin.withOriginAccessControl` or `LoadBalancerV2Origin` removing generic `HttpOrigin`. This sets us up for `VpcOriginOAC` when released for `Nextjs...Containers` to improve security
|
|
7
|
+
- `NextjsDistributionOverrides.edgeFunctionProps` removed
|
|
8
|
+
- `NextjsDistributionOverrides.dynamicHttpOriginProps` removed
|
|
9
|
+
- `NextjsDistributionProps.dynamicUrl` removed
|
|
10
|
+
- `NextjsDistributionProps.functionArn` removed
|
|
11
|
+
- `NextjsDistributionProps.loadBalancer` required if containers
|
|
12
|
+
- `NextjsDistributionProps.functionUrl` required if functions
|
|
13
|
+
- `NextjsAssetsDeployment.nextjsType` required
|
|
14
|
+
|
|
3
15
|
## 0.1.0
|
|
4
16
|
|
|
5
17
|
- Use `cloudfront.experimental.EdgeFunction` for SignFnUrl within `NextjsDistribution` resulting in "Error: stacks which use EdgeFunctions must have an explicitly set region" if you haven't explicitly set region.
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { aws_ec2, aws_efs, aws_lambda, aws_s3 } from 'aws-cdk-lib';
|
|
2
|
+
import type { NextjsType } from '../';
|
|
2
3
|
/**
|
|
3
4
|
* OptionalNextjsAssetsDeploymentProps
|
|
4
5
|
*/
|
|
@@ -21,6 +22,10 @@ export interface OptionalNextjsAssetsDeploymentProps {
|
|
|
21
22
|
* @stability stable
|
|
22
23
|
*/
|
|
23
24
|
readonly vpc?: aws_ec2.IVpc;
|
|
25
|
+
/**
|
|
26
|
+
* @stability stable
|
|
27
|
+
*/
|
|
28
|
+
readonly nextjsType?: NextjsType;
|
|
24
29
|
/**
|
|
25
30
|
* @stability stable
|
|
26
31
|
*/
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3B0aW9uYWxOZXh0anNBc3NldHNEZXBsb3ltZW50UHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxOZXh0anNBc3NldHNEZXBsb3ltZW50UHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vIH5+
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3B0aW9uYWxOZXh0anNBc3NldHNEZXBsb3ltZW50UHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxOZXh0anNBc3NldHNEZXBsb3ltZW50UHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vIH5+IEdlbmVyYXRlZCBieSBwcm9qZW4uIFRvIG1vZGlmeSwgZWRpdCAucHJvamVucmMudHMgYW5kIHJ1biBcInBucG0gZGx4IHByb2plblwiLlxuaW1wb3J0IHR5cGUgeyBhd3NfZWMyLCBhd3NfZWZzLCBhd3NfbGFtYmRhLCBhd3NfczMgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgdHlwZSB7IE5leHRqc1R5cGUgfSBmcm9tICcuLi8nO1xuXG4vKipcbiAqIE9wdGlvbmFsTmV4dGpzQXNzZXRzRGVwbG95bWVudFByb3BzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3B0aW9uYWxOZXh0anNBc3NldHNEZXBsb3ltZW50UHJvcHMge1xuICAvKipcbiAgICogUmVxdWlyZWQgZm9yIGBOZXh0anNUeXBlLkdsb2JhbEZ1bmN0aW9uc2AgYW5kIGBOZXh0anNUeXBlLkdsb2JhbENvbnRhaW5lcnNgLlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdGljQXNzZXRzQnVja2V0PzogYXdzX3MzLkJ1Y2tldDtcbiAgLyoqXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSByZWxhdGl2ZVBhdGhUb1dvcmtzcGFjZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGRlYnVnPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSB2cGM/OiBhd3NfZWMyLklWcGM7XG4gIC8qKlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgbmV4dGpzVHlwZT86IE5leHRqc1R5cGU7XG4gIC8qKlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgZG9ja2VySW1hZ2VDb2RlPzogYXdzX2xhbWJkYS5Eb2NrZXJJbWFnZUNvZGU7XG4gIC8qKlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgY29udGFpbmVyTW91bnRQYXRoRm9yRWZzPzogc3RyaW5nO1xuICAvKipcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkSW1hZ2VEaWdlc3Q/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgYWNjZXNzUG9pbnQ/OiBhd3NfZWZzLkFjY2Vzc1BvaW50O1xufVxuIl19
|
|
@@ -1,14 +1,19 @@
|
|
|
1
|
-
import type { aws_certificatemanager, aws_cloudfront, aws_s3 } from 'aws-cdk-lib';
|
|
1
|
+
import type { aws_certificatemanager, aws_cloudfront, aws_elasticloadbalancingv2, aws_lambda, aws_s3 } from 'aws-cdk-lib';
|
|
2
2
|
import type { NextjsType, PublicDirEntry } from '../';
|
|
3
3
|
/**
|
|
4
4
|
* OptionalNextjsDistributionProps
|
|
5
5
|
*/
|
|
6
6
|
export interface OptionalNextjsDistributionProps {
|
|
7
|
+
/**
|
|
8
|
+
* Required if `NextjsType.GLOBAL_CONTAINERS` or `NextjsType.REGIONAL_CONTAINERS`.
|
|
9
|
+
* @stability stable
|
|
10
|
+
*/
|
|
11
|
+
readonly loadBalancer?: aws_elasticloadbalancingv2.ILoadBalancerV2;
|
|
7
12
|
/**
|
|
8
13
|
* Required if `NextjsType.GLOBAL_FUNCTIONS`.
|
|
9
14
|
* @stability stable
|
|
10
15
|
*/
|
|
11
|
-
readonly
|
|
16
|
+
readonly functionUrl?: aws_lambda.IFunctionUrl;
|
|
12
17
|
/**
|
|
13
18
|
* @stability stable
|
|
14
19
|
*/
|
|
@@ -31,11 +36,6 @@ export interface OptionalNextjsDistributionProps {
|
|
|
31
36
|
* @stability stable
|
|
32
37
|
*/
|
|
33
38
|
readonly nextjsType?: NextjsType;
|
|
34
|
-
/**
|
|
35
|
-
* Dynamic (Next.js server) URL to add behavior to distribution.
|
|
36
|
-
* @stability stable
|
|
37
|
-
*/
|
|
38
|
-
readonly dynamicUrl?: string;
|
|
39
39
|
/**
|
|
40
40
|
* Bucket containing static assets.
|
|
41
41
|
* Must be provided if you want to serve static files.
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3B0aW9uYWxOZXh0anNEaXN0cmlidXRpb25Qcm9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nZW5lcmF0ZWQtc3RydWN0cy9PcHRpb25hbE5leHRqc0Rpc3RyaWJ1dGlvblByb3BzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB+
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3B0aW9uYWxOZXh0anNEaXN0cmlidXRpb25Qcm9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nZW5lcmF0ZWQtc3RydWN0cy9PcHRpb25hbE5leHRqc0Rpc3RyaWJ1dGlvblByb3BzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB+fiBHZW5lcmF0ZWQgYnkgcHJvamVuLiBUbyBtb2RpZnksIGVkaXQgLnByb2plbnJjLnRzIGFuZCBydW4gXCJwbnBtIGRseCBwcm9qZW5cIi5cbmltcG9ydCB0eXBlIHsgYXdzX2NlcnRpZmljYXRlbWFuYWdlciwgYXdzX2Nsb3VkZnJvbnQsIGF3c19lbGFzdGljbG9hZGJhbGFuY2luZ3YyLCBhd3NfbGFtYmRhLCBhd3NfczMgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgdHlwZSB7IE5leHRqc1R5cGUsIFB1YmxpY0RpckVudHJ5IH0gZnJvbSAnLi4vJztcblxuLyoqXG4gKiBPcHRpb25hbE5leHRqc0Rpc3RyaWJ1dGlvblByb3BzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3B0aW9uYWxOZXh0anNEaXN0cmlidXRpb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBSZXF1aXJlZCBpZiBgTmV4dGpzVHlwZS5HTE9CQUxfQ09OVEFJTkVSU2Agb3IgYE5leHRqc1R5cGUuUkVHSU9OQUxfQ09OVEFJTkVSU2AuXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBsb2FkQmFsYW5jZXI/OiBhd3NfZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mi5JTG9hZEJhbGFuY2VyVjI7XG4gIC8qKlxuICAgKiBSZXF1aXJlZCBpZiBgTmV4dGpzVHlwZS5HTE9CQUxfRlVOQ1RJT05TYC5cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGZ1bmN0aW9uVXJsPzogYXdzX2xhbWJkYS5JRnVuY3Rpb25Vcmw7XG4gIC8qKlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgZGlzdHJpYnV0aW9uPzogYXdzX2Nsb3VkZnJvbnQuRGlzdHJpYnV0aW9uO1xuICAvKipcbiAgICogT3B0aW9uYWwgYnV0IG9ubHkgYXBwbGljYWJsZSBmb3IgYE5leHRqc1R5cGUuR0xPQkFMX0NPTlRBSU5FUlNgLlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgY2VydGlmaWNhdGU/OiBhd3NfY2VydGlmaWNhdGVtYW5hZ2VyLklDZXJ0aWZpY2F0ZTtcbiAgLyoqXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBiYXNlUGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIFBhdGggdG8gZGlyZWN0b3J5IG9mIE5leHQuanMgYXBwJ3MgcHVibGljIGRpcmVjdG9yeS4gVXNlZCB0byBhZGQgc3RhdGljIGJlaGF2aW9ycyB0byBkaXN0cmlidXRpb24uXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBwdWJsaWNEaXJFbnRyaWVzPzogQXJyYXk8UHVibGljRGlyRW50cnk+O1xuICAvKipcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IG5leHRqc1R5cGU/OiBOZXh0anNUeXBlO1xuICAvKipcbiAgICogQnVja2V0IGNvbnRhaW5pbmcgc3RhdGljIGFzc2V0cy5cbiAgICogTXVzdCBiZSBwcm92aWRlZCBpZiB5b3Ugd2FudCB0byBzZXJ2ZSBzdGF0aWMgZmlsZXMuXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBhc3NldHNCdWNrZXQ/OiBhd3NfczMuSUJ1Y2tldDtcbn1cbiJdfQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.handler = void 0;
|
|
4
|
-
const
|
|
4
|
+
const node_fs_1 = require("node:fs");
|
|
5
5
|
const fs_to_fs_1 = require("./fs-to-fs");
|
|
6
6
|
const fs_to_s3_1 = require("./fs-to-s3");
|
|
7
7
|
const prune_s3_1 = require("./prune-s3");
|
|
@@ -9,17 +9,21 @@ const utils_1 = require("./utils");
|
|
|
9
9
|
const handler = async (event, context) => {
|
|
10
10
|
(0, utils_1.debug)({ event });
|
|
11
11
|
let responseStatus = utils_1.CfnResponseStatus.Failed;
|
|
12
|
+
/**
|
|
13
|
+
* Related to [Draft Mode](https://nextjs.org/docs/app/building-your-application/configuring/draft-mode)
|
|
14
|
+
* and required for `NextjsRevalidation` to do [on-demand revalidation](https://nextjs.org/docs/app/building-your-application/data-fetching/incremental-static-regeneration#on-demand-revalidation-with-revalidatepath)
|
|
15
|
+
*/
|
|
12
16
|
let previewModeId = "";
|
|
13
17
|
try {
|
|
14
18
|
const props = event.ResourceProperties;
|
|
15
19
|
if (event.RequestType === "Create" || event.RequestType === "Update") {
|
|
16
|
-
const { actions } = props;
|
|
20
|
+
const { actions, nextjsType } = props;
|
|
17
21
|
for (const action of actions) {
|
|
18
22
|
if (action.type === "fs-to-fs") {
|
|
19
23
|
(0, fs_to_fs_1.fsToFs)(action);
|
|
20
24
|
}
|
|
21
25
|
else if (action.type === "fs-to-s3") {
|
|
22
|
-
await (0, fs_to_s3_1.fsToS3)(action);
|
|
26
|
+
await (0, fs_to_s3_1.fsToS3)(action, nextjsType);
|
|
23
27
|
}
|
|
24
28
|
else if (action.type === "prune-s3") {
|
|
25
29
|
await (0, prune_s3_1.pruneS3)(action);
|
|
@@ -46,10 +50,14 @@ const handler = async (event, context) => {
|
|
|
46
50
|
}
|
|
47
51
|
};
|
|
48
52
|
exports.handler = handler;
|
|
53
|
+
/**
|
|
54
|
+
* On first deployment there is no directory for images to be optimized into by
|
|
55
|
+
* Next.js so this creates directory for those images. Only runs once.
|
|
56
|
+
* This is unlike other cache directories which are created at build time.
|
|
57
|
+
*/
|
|
49
58
|
function initImageCache(imageCachePath) {
|
|
50
|
-
if (imageCachePath && !(0,
|
|
51
|
-
|
|
52
|
-
(0, fs_1.mkdirSync)(imageCachePath);
|
|
59
|
+
if (imageCachePath && !(0, node_fs_1.existsSync)(imageCachePath)) {
|
|
60
|
+
(0, node_fs_1.mkdirSync)(imageCachePath);
|
|
53
61
|
}
|
|
54
62
|
}
|
|
55
63
|
/**
|
|
@@ -57,7 +65,7 @@ function initImageCache(imageCachePath) {
|
|
|
57
65
|
* so we do it each time.
|
|
58
66
|
*/
|
|
59
67
|
function getPreviewModeId(prerenderManifestPath) {
|
|
60
|
-
const prerenderManifest = JSON.parse((0,
|
|
68
|
+
const prerenderManifest = JSON.parse((0, node_fs_1.readFileSync)(prerenderManifestPath, { encoding: "utf-8" }));
|
|
61
69
|
return prerenderManifest.preview.previewModeId;
|
|
62
70
|
}
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzLWRlcGxveW1lbnQubGFtYmRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xhbWJkYXMvYXNzZXRzLWRlcGxveW1lbnQvYXNzZXRzLWRlcGxveW1lbnQubGFtYmRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFDQUE4RDtBQUU5RCx5Q0FBb0M7QUFDcEMseUNBQW9DO0FBQ3BDLHlDQUFxQztBQUNyQyxtQ0FBZ0U7QUFPekQsTUFBTSxPQUFPLEdBQXdDLEtBQUssRUFDL0QsS0FBSyxFQUNMLE9BQU8sRUFDUCxFQUFFO0lBQ0YsSUFBQSxhQUFLLEVBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2pCLElBQUksY0FBYyxHQUFHLHlCQUFpQixDQUFDLE1BQU0sQ0FBQztJQUM5Qzs7O09BR0c7SUFDSCxJQUFJLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDdkIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLGtCQUFtQyxDQUFDO1FBQ3hELElBQUksS0FBSyxDQUFDLFdBQVcsS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLFdBQVcsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNyRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEtBQUssQ0FBQztZQUN0QyxLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUM3QixJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssVUFBVSxFQUFFLENBQUM7b0JBQy9CLElBQUEsaUJBQU0sRUFBQyxNQUFNLENBQUMsQ0FBQztnQkFDakIsQ0FBQztxQkFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssVUFBVSxFQUFFLENBQUM7b0JBQ3RDLE1BQU0sSUFBQSxpQkFBTSxFQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztnQkFDbkMsQ0FBQztxQkFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssVUFBVSxFQUFFLENBQUM7b0JBQ3RDLE1BQU0sSUFBQSxrQkFBTyxFQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN4QixDQUFDO1lBQ0gsQ0FBQztZQUNELGNBQWMsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDckMsYUFBYSxHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQzlELGNBQWMsR0FBRyx5QkFBaUIsQ0FBQyxPQUFPLENBQUM7UUFDN0MsQ0FBQzthQUFNLENBQUM7WUFDTixjQUFjLEdBQUcseUJBQWlCLENBQUMsT0FBTyxDQUFDO1FBQzdDLENBQUM7SUFDSCxDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckIsQ0FBQztZQUFTLENBQUM7UUFDVCxNQUFNLElBQUEsbUJBQVcsRUFBQztZQUNoQixLQUFLO1lBQ0wsT0FBTztZQUNQLGNBQWM7WUFDZCxZQUFZLEVBQUUsRUFBRSxhQUFhLEVBQUU7U0FDaEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztBQUNILENBQUMsQ0FBQztBQXhDVyxRQUFBLE9BQU8sV0F3Q2xCO0FBRUY7Ozs7R0FJRztBQUNILFNBQVMsY0FBYyxDQUFDLGNBQXNCO0lBQzVDLElBQUksY0FBYyxJQUFJLENBQUMsSUFBQSxvQkFBVSxFQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7UUFDbEQsSUFBQSxtQkFBUyxFQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzVCLENBQUM7QUFDSCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyxnQkFBZ0IsQ0FBQyxxQkFBNkI7SUFDckQsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUNsQyxJQUFBLHNCQUFZLEVBQUMscUJBQXFCLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FDM0QsQ0FBQztJQUNGLE9BQU8saUJBQWlCLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztBQUNqRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXhpc3RzU3luYywgbWtkaXJTeW5jLCByZWFkRmlsZVN5bmMgfSBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0IHR5cGUgeyBDbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlSGFuZGxlciB9IGZyb20gXCJhd3MtbGFtYmRhXCI7XG5pbXBvcnQgeyBmc1RvRnMgfSBmcm9tIFwiLi9mcy10by1mc1wiO1xuaW1wb3J0IHsgZnNUb1MzIH0gZnJvbSBcIi4vZnMtdG8tczNcIjtcbmltcG9ydCB7IHBydW5lUzMgfSBmcm9tIFwiLi9wcnVuZS1zM1wiO1xuaW1wb3J0IHsgY2ZuUmVzcG9uc2UsIENmblJlc3BvbnNlU3RhdHVzLCBkZWJ1ZyB9IGZyb20gXCIuL3V0aWxzXCI7XG5pbXBvcnQgdHlwZSB7IEN1c3RvbVJlc291cmNlUHJvcGVydGllcyB9IGZyb20gXCIuLi8uLi9uZXh0anMtYXNzZXRzLWRlcGxveW1lbnRcIjtcblxudHlwZSBSZXNvdXJjZVByb3BzID0gQ3VzdG9tUmVzb3VyY2VQcm9wZXJ0aWVzICYge1xuICBTZXJ2aWNlVG9rZW46IHN0cmluZztcbn07XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVyOiBDbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlSGFuZGxlciA9IGFzeW5jIChcbiAgZXZlbnQsXG4gIGNvbnRleHQsXG4pID0+IHtcbiAgZGVidWcoeyBldmVudCB9KTtcbiAgbGV0IHJlc3BvbnNlU3RhdHVzID0gQ2ZuUmVzcG9uc2VTdGF0dXMuRmFpbGVkO1xuICAvKipcbiAgICogUmVsYXRlZCB0byBbRHJhZnQgTW9kZV0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vY29uZmlndXJpbmcvZHJhZnQtbW9kZSlcbiAgICogYW5kIHJlcXVpcmVkIGZvciBgTmV4dGpzUmV2YWxpZGF0aW9uYCB0byBkbyBbb24tZGVtYW5kIHJldmFsaWRhdGlvbl0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vZGF0YS1mZXRjaGluZy9pbmNyZW1lbnRhbC1zdGF0aWMtcmVnZW5lcmF0aW9uI29uLWRlbWFuZC1yZXZhbGlkYXRpb24td2l0aC1yZXZhbGlkYXRlcGF0aClcbiAgICovXG4gIGxldCBwcmV2aWV3TW9kZUlkID0gXCJcIjtcbiAgdHJ5IHtcbiAgICBjb25zdCBwcm9wcyA9IGV2ZW50LlJlc291cmNlUHJvcGVydGllcyBhcyBSZXNvdXJjZVByb3BzO1xuICAgIGlmIChldmVudC5SZXF1ZXN0VHlwZSA9PT0gXCJDcmVhdGVcIiB8fCBldmVudC5SZXF1ZXN0VHlwZSA9PT0gXCJVcGRhdGVcIikge1xuICAgICAgY29uc3QgeyBhY3Rpb25zLCBuZXh0anNUeXBlIH0gPSBwcm9wcztcbiAgICAgIGZvciAoY29uc3QgYWN0aW9uIG9mIGFjdGlvbnMpIHtcbiAgICAgICAgaWYgKGFjdGlvbi50eXBlID09PSBcImZzLXRvLWZzXCIpIHtcbiAgICAgICAgICBmc1RvRnMoYWN0aW9uKTtcbiAgICAgICAgfSBlbHNlIGlmIChhY3Rpb24udHlwZSA9PT0gXCJmcy10by1zM1wiKSB7XG4gICAgICAgICAgYXdhaXQgZnNUb1MzKGFjdGlvbiwgbmV4dGpzVHlwZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoYWN0aW9uLnR5cGUgPT09IFwicHJ1bmUtczNcIikge1xuICAgICAgICAgIGF3YWl0IHBydW5lUzMoYWN0aW9uKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaW5pdEltYWdlQ2FjaGUocHJvcHMuaW1hZ2VDYWNoZVBhdGgpO1xuICAgICAgcHJldmlld01vZGVJZCA9IGdldFByZXZpZXdNb2RlSWQocHJvcHMucHJlcmVuZGVyTWFuaWZlc3RQYXRoKTtcbiAgICAgIHJlc3BvbnNlU3RhdHVzID0gQ2ZuUmVzcG9uc2VTdGF0dXMuU3VjY2VzcztcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzcG9uc2VTdGF0dXMgPSBDZm5SZXNwb25zZVN0YXR1cy5TdWNjZXNzO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY29uc29sZS5lcnJvcihlcnIpO1xuICB9IGZpbmFsbHkge1xuICAgIGF3YWl0IGNmblJlc3BvbnNlKHtcbiAgICAgIGV2ZW50LFxuICAgICAgY29udGV4dCxcbiAgICAgIHJlc3BvbnNlU3RhdHVzLFxuICAgICAgcmVzcG9uc2VEYXRhOiB7IHByZXZpZXdNb2RlSWQgfSxcbiAgICB9KTtcbiAgfVxufTtcblxuLyoqXG4gKiBPbiBmaXJzdCBkZXBsb3ltZW50IHRoZXJlIGlzIG5vIGRpcmVjdG9yeSBmb3IgaW1hZ2VzIHRvIGJlIG9wdGltaXplZCBpbnRvIGJ5XG4gKiBOZXh0LmpzIHNvIHRoaXMgY3JlYXRlcyBkaXJlY3RvcnkgZm9yIHRob3NlIGltYWdlcy4gT25seSBydW5zIG9uY2UuXG4gKiBUaGlzIGlzIHVubGlrZSBvdGhlciBjYWNoZSBkaXJlY3RvcmllcyB3aGljaCBhcmUgY3JlYXRlZCBhdCBidWlsZCB0aW1lLlxuICovXG5mdW5jdGlvbiBpbml0SW1hZ2VDYWNoZShpbWFnZUNhY2hlUGF0aDogc3RyaW5nKSB7XG4gIGlmIChpbWFnZUNhY2hlUGF0aCAmJiAhZXhpc3RzU3luYyhpbWFnZUNhY2hlUGF0aCkpIHtcbiAgICBta2RpclN5bmMoaW1hZ2VDYWNoZVBhdGgpO1xuICB9XG59XG5cbi8qKlxuICogT25seSBuZWVkIHByZXZpZXcgbW9kZSBpZCBmb3IgYE5leHRqc0dsb2JhbEZ1bmN0aW9uc2AsIGJ1dCBlYXN5IHRvIGdldFxuICogc28gd2UgZG8gaXQgZWFjaCB0aW1lLlxuICovXG5mdW5jdGlvbiBnZXRQcmV2aWV3TW9kZUlkKHByZXJlbmRlck1hbmlmZXN0UGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgcHJlcmVuZGVyTWFuaWZlc3QgPSBKU09OLnBhcnNlKFxuICAgIHJlYWRGaWxlU3luYyhwcmVyZW5kZXJNYW5pZmVzdFBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmLThcIiB9KSxcbiAgKTtcbiAgcmV0dXJuIHByZXJlbmRlck1hbmlmZXN0LnByZXZpZXcucHJldmlld01vZGVJZDtcbn1cbiJdfQ==
|
|
@@ -1,2 +1,13 @@
|
|
|
1
|
+
import { NextjsType } from "../../common";
|
|
1
2
|
import type { FsToS3Action } from "../../nextjs-assets-deployment";
|
|
2
|
-
export declare function fsToS3(props: FsToS3Action): Promise<void>;
|
|
3
|
+
export declare function fsToS3(props: FsToS3Action, nextjsType?: NextjsType): Promise<void>;
|
|
4
|
+
interface CreateS3KeyProps {
|
|
5
|
+
keyPrefix?: string;
|
|
6
|
+
path: string;
|
|
7
|
+
basePath: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Create S3 Key given local path
|
|
11
|
+
*/
|
|
12
|
+
export declare function createS3Key({ keyPrefix, path, basePath }: CreateS3KeyProps): string;
|
|
13
|
+
export {};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.fsToS3 = fsToS3;
|
|
4
|
+
exports.createS3Key = createS3Key;
|
|
4
5
|
const node_fs_1 = require("node:fs");
|
|
5
6
|
const node_path_1 = require("node:path");
|
|
6
7
|
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
@@ -10,7 +11,8 @@ const mime = require("mime-types");
|
|
|
10
11
|
const common_1 = require("./common");
|
|
11
12
|
const s3_1 = require("./s3");
|
|
12
13
|
const utils_1 = require("./utils");
|
|
13
|
-
|
|
14
|
+
const common_2 = require("../../common");
|
|
15
|
+
async function fsToS3(props, nextjsType) {
|
|
14
16
|
const { destinationBucketName, destinationKeyPrefix, sourcePath } = props;
|
|
15
17
|
const sourceFilePaths = (0, common_1.listFilePaths)(sourcePath);
|
|
16
18
|
for await (const filePathChunk of (0, common_1.chunkArray)(sourceFilePaths, 100)) {
|
|
@@ -21,8 +23,19 @@ async function fsToS3(props) {
|
|
|
21
23
|
path,
|
|
22
24
|
basePath: sourcePath,
|
|
23
25
|
});
|
|
26
|
+
let body;
|
|
27
|
+
if (path.includes(".next/static/chunks/main-app-") &&
|
|
28
|
+
nextjsType === common_2.NextjsType.GLOBAL_FUNCTIONS) {
|
|
29
|
+
// see src/lambdas/asset-deployment/patch-fetch.js for why this is needed
|
|
30
|
+
const mainAppFileContent = (0, node_fs_1.readFileSync)(path);
|
|
31
|
+
const patchFetchContent = (0, node_fs_1.readFileSync)((0, node_path_1.join)(__dirname, "patch-fetch.js"));
|
|
32
|
+
body = patchFetchContent + "\n" + mainAppFileContent;
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
body = (0, node_fs_1.createReadStream)(path);
|
|
36
|
+
}
|
|
24
37
|
return {
|
|
25
|
-
Body:
|
|
38
|
+
Body: body,
|
|
26
39
|
Bucket: destinationBucketName,
|
|
27
40
|
ContentType: contentType,
|
|
28
41
|
Key: key,
|
|
@@ -42,4 +55,4 @@ function createS3Key({ keyPrefix, path, basePath }) {
|
|
|
42
55
|
objectKeyParts.push((0, node_path_1.relative)(basePath, path));
|
|
43
56
|
return (0, node_path_1.join)(...objectKeyParts);
|
|
44
57
|
}
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtdG8tczMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGFtYmRhcy9hc3NldHMtZGVwbG95bWVudC9mcy10by1zMy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWNBLHdCQXlDQztBQVVELGtDQUtDO0FBdEVELHFDQUFxRTtBQUNyRSx5Q0FBMkM7QUFHM0MsNkRBQTZEO0FBQzdELHNEQUE4QztBQUM5Qyw2REFBNkQ7QUFDN0QsbUNBQW1DO0FBQ25DLHFDQUFxRDtBQUNyRCw2QkFBMEI7QUFDMUIsbUNBQWdDO0FBQ2hDLHlDQUEwQztBQUduQyxLQUFLLFVBQVUsTUFBTSxDQUFDLEtBQW1CLEVBQUUsVUFBdUI7SUFDdkUsTUFBTSxFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLFVBQVUsRUFBRSxHQUFHLEtBQUssQ0FBQztJQUMxRSxNQUFNLGVBQWUsR0FBRyxJQUFBLHNCQUFhLEVBQUMsVUFBVSxDQUFDLENBQUM7SUFDbEQsSUFBSSxLQUFLLEVBQUUsTUFBTSxhQUFhLElBQUksSUFBQSxtQkFBVSxFQUFDLGVBQWUsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ25FLE1BQU0sZUFBZSxHQUE0QixhQUFhLENBQUMsR0FBRyxDQUNoRSxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ1AsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxTQUFTLENBQUM7WUFDbkQsTUFBTSxHQUFHLEdBQUcsV0FBVyxDQUFDO2dCQUN0QixTQUFTLEVBQUUsb0JBQW9CO2dCQUMvQixJQUFJO2dCQUNKLFFBQVEsRUFBRSxVQUFVO2FBQ3JCLENBQUMsQ0FBQztZQUNILElBQUksSUFBeUIsQ0FBQztZQUM5QixJQUNFLElBQUksQ0FBQyxRQUFRLENBQUMsK0JBQStCLENBQUM7Z0JBQzlDLFVBQVUsS0FBSyxtQkFBVSxDQUFDLGdCQUFnQixFQUMxQyxDQUFDO2dCQUNELHlFQUF5RTtnQkFDekUsTUFBTSxrQkFBa0IsR0FBRyxJQUFBLHNCQUFZLEVBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzlDLE1BQU0saUJBQWlCLEdBQUcsSUFBQSxzQkFBWSxFQUNwQyxJQUFBLGdCQUFJLEVBQUMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLENBQ2xDLENBQUM7Z0JBQ0YsSUFBSSxHQUFHLGlCQUFpQixHQUFHLElBQUksR0FBRyxrQkFBa0IsQ0FBQztZQUN2RCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxHQUFHLElBQUEsMEJBQWdCLEVBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEMsQ0FBQztZQUNELE9BQU87Z0JBQ0wsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsTUFBTSxFQUFFLHFCQUFxQjtnQkFDN0IsV0FBVyxFQUFFLFdBQVc7Z0JBQ3hCLEdBQUcsRUFBRSxHQUFHO2FBQ1QsQ0FBQztRQUNKLENBQUMsQ0FDRixDQUFDO1FBQ0YsSUFBQSxhQUFLLEVBQUMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQzNCLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDZixlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDNUIsSUFBSSxvQkFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FDakQsQ0FDRixDQUFDO0lBQ0osQ0FBQztBQUNILENBQUM7QUFPRDs7R0FFRztBQUNILFNBQWdCLFdBQVcsQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFvQjtJQUN6RSxNQUFNLGNBQWMsR0FBYSxFQUFFLENBQUM7SUFDcEMsSUFBSSxTQUFTO1FBQUUsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUEsb0JBQVEsRUFBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM5QyxPQUFPLElBQUEsZ0JBQUksRUFBQyxHQUFHLGNBQWMsQ0FBQyxDQUFDO0FBQ2pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVSZWFkU3RyZWFtLCByZWFkRmlsZVN5bmMsIFJlYWRTdHJlYW0gfSBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0IHsgam9pbiwgcmVsYXRpdmUgfSBmcm9tIFwibm9kZTpwYXRoXCI7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXG5pbXBvcnQgeyBQdXRPYmplY3RDb21tYW5kSW5wdXQgfSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LXMzXCI7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXG5pbXBvcnQgeyBVcGxvYWQgfSBmcm9tIFwiQGF3cy1zZGsvbGliLXN0b3JhZ2VcIjtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXNcbmltcG9ydCAqIGFzIG1pbWUgZnJvbSBcIm1pbWUtdHlwZXNcIjtcbmltcG9ydCB7IGNodW5rQXJyYXksIGxpc3RGaWxlUGF0aHMgfSBmcm9tIFwiLi9jb21tb25cIjtcbmltcG9ydCB7IHMzIH0gZnJvbSBcIi4vczNcIjtcbmltcG9ydCB7IGRlYnVnIH0gZnJvbSBcIi4vdXRpbHNcIjtcbmltcG9ydCB7IE5leHRqc1R5cGUgfSBmcm9tIFwiLi4vLi4vY29tbW9uXCI7XG5pbXBvcnQgdHlwZSB7IEZzVG9TM0FjdGlvbiB9IGZyb20gXCIuLi8uLi9uZXh0anMtYXNzZXRzLWRlcGxveW1lbnRcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZzVG9TMyhwcm9wczogRnNUb1MzQWN0aW9uLCBuZXh0anNUeXBlPzogTmV4dGpzVHlwZSkge1xuICBjb25zdCB7IGRlc3RpbmF0aW9uQnVja2V0TmFtZSwgZGVzdGluYXRpb25LZXlQcmVmaXgsIHNvdXJjZVBhdGggfSA9IHByb3BzO1xuICBjb25zdCBzb3VyY2VGaWxlUGF0aHMgPSBsaXN0RmlsZVBhdGhzKHNvdXJjZVBhdGgpO1xuICBmb3IgYXdhaXQgKGNvbnN0IGZpbGVQYXRoQ2h1bmsgb2YgY2h1bmtBcnJheShzb3VyY2VGaWxlUGF0aHMsIDEwMCkpIHtcbiAgICBjb25zdCBwdXRPYmplY3RJbnB1dHM6IFB1dE9iamVjdENvbW1hbmRJbnB1dFtdID0gZmlsZVBhdGhDaHVuay5tYXAoXG4gICAgICAocGF0aCkgPT4ge1xuICAgICAgICBjb25zdCBjb250ZW50VHlwZSA9IG1pbWUubG9va3VwKHBhdGgpIHx8IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3Qga2V5ID0gY3JlYXRlUzNLZXkoe1xuICAgICAgICAgIGtleVByZWZpeDogZGVzdGluYXRpb25LZXlQcmVmaXgsXG4gICAgICAgICAgcGF0aCxcbiAgICAgICAgICBiYXNlUGF0aDogc291cmNlUGF0aCxcbiAgICAgICAgfSk7XG4gICAgICAgIGxldCBib2R5OiBzdHJpbmcgfCBSZWFkU3RyZWFtO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgcGF0aC5pbmNsdWRlcyhcIi5uZXh0L3N0YXRpYy9jaHVua3MvbWFpbi1hcHAtXCIpICYmXG4gICAgICAgICAgbmV4dGpzVHlwZSA9PT0gTmV4dGpzVHlwZS5HTE9CQUxfRlVOQ1RJT05TXG4gICAgICAgICkge1xuICAgICAgICAgIC8vIHNlZSBzcmMvbGFtYmRhcy9hc3NldC1kZXBsb3ltZW50L3BhdGNoLWZldGNoLmpzIGZvciB3aHkgdGhpcyBpcyBuZWVkZWRcbiAgICAgICAgICBjb25zdCBtYWluQXBwRmlsZUNvbnRlbnQgPSByZWFkRmlsZVN5bmMocGF0aCk7XG4gICAgICAgICAgY29uc3QgcGF0Y2hGZXRjaENvbnRlbnQgPSByZWFkRmlsZVN5bmMoXG4gICAgICAgICAgICBqb2luKF9fZGlybmFtZSwgXCJwYXRjaC1mZXRjaC5qc1wiKSxcbiAgICAgICAgICApO1xuICAgICAgICAgIGJvZHkgPSBwYXRjaEZldGNoQ29udGVudCArIFwiXFxuXCIgKyBtYWluQXBwRmlsZUNvbnRlbnQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYm9keSA9IGNyZWF0ZVJlYWRTdHJlYW0ocGF0aCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBCb2R5OiBib2R5LFxuICAgICAgICAgIEJ1Y2tldDogZGVzdGluYXRpb25CdWNrZXROYW1lLFxuICAgICAgICAgIENvbnRlbnRUeXBlOiBjb250ZW50VHlwZSxcbiAgICAgICAgICBLZXk6IGtleSxcbiAgICAgICAgfTtcbiAgICAgIH0sXG4gICAgKTtcbiAgICBkZWJ1Zyh7IHB1dE9iamVjdElucHV0cyB9KTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIHB1dE9iamVjdElucHV0cy5tYXAoKGlucHV0KSA9PlxuICAgICAgICBuZXcgVXBsb2FkKHsgY2xpZW50OiBzMywgcGFyYW1zOiBpbnB1dCB9KS5kb25lKCksXG4gICAgICApLFxuICAgICk7XG4gIH1cbn1cblxuaW50ZXJmYWNlIENyZWF0ZVMzS2V5UHJvcHMge1xuICBrZXlQcmVmaXg/OiBzdHJpbmc7XG4gIHBhdGg6IHN0cmluZztcbiAgYmFzZVBhdGg6IHN0cmluZztcbn1cbi8qKlxuICogQ3JlYXRlIFMzIEtleSBnaXZlbiBsb2NhbCBwYXRoXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTM0tleSh7IGtleVByZWZpeCwgcGF0aCwgYmFzZVBhdGggfTogQ3JlYXRlUzNLZXlQcm9wcykge1xuICBjb25zdCBvYmplY3RLZXlQYXJ0czogc3RyaW5nW10gPSBbXTtcbiAgaWYgKGtleVByZWZpeCkgb2JqZWN0S2V5UGFydHMucHVzaChrZXlQcmVmaXgpO1xuICBvYmplY3RLZXlQYXJ0cy5wdXNoKHJlbGF0aXZlKGJhc2VQYXRoLCBwYXRoKSk7XG4gIHJldHVybiBqb2luKC4uLm9iamVjdEtleVBhcnRzKTtcbn1cbiJdfQ==
|
|
@@ -4,6 +4,7 @@ import { AccessPoint } from "aws-cdk-lib/aws-efs";
|
|
|
4
4
|
import { DockerImageCode, DockerImageFunction } from "aws-cdk-lib/aws-lambda";
|
|
5
5
|
import { Bucket } from "aws-cdk-lib/aws-s3";
|
|
6
6
|
import { Construct } from "constructs";
|
|
7
|
+
import { NextjsType } from "./common";
|
|
7
8
|
import { OptionalDockerImageFunctionProps } from "./generated-structs/OptionalDockerImageFunctionProps";
|
|
8
9
|
import { NextjsBuild } from "./nextjs-build/nextjs-build";
|
|
9
10
|
export interface NextjsAssetDeploymentOverrides {
|
|
@@ -15,15 +16,16 @@ export interface NextjsAssetsDeploymentProps {
|
|
|
15
16
|
* @see {@link NextjsBuild.buildImageDigest}
|
|
16
17
|
*/
|
|
17
18
|
readonly buildImageDigest: string;
|
|
19
|
+
/**
|
|
20
|
+
* @see {@link NextjsBuild.containerMountPathForEfs}
|
|
21
|
+
*/
|
|
22
|
+
readonly containerMountPathForEfs: NextjsBuild["containerMountPathForEfs"];
|
|
18
23
|
/**
|
|
19
24
|
* @default true
|
|
20
25
|
*/
|
|
21
26
|
readonly debug?: boolean;
|
|
22
27
|
readonly dockerImageCode: DockerImageCode;
|
|
23
|
-
|
|
24
|
-
* @see {@link NextjsBuild.containerMountPathForEfs}
|
|
25
|
-
*/
|
|
26
|
-
readonly containerMountPathForEfs: NextjsBuild["containerMountPathForEfs"];
|
|
28
|
+
readonly nextjsType: NextjsType;
|
|
27
29
|
readonly overrides?: NextjsAssetDeploymentOverrides;
|
|
28
30
|
/**
|
|
29
31
|
* @see {@link NextjsBaseProps.relativePathToWorkspace}
|
|
@@ -98,6 +100,7 @@ export interface CustomResourceProperties {
|
|
|
98
100
|
buildImageDigest: string;
|
|
99
101
|
imageCachePath: string;
|
|
100
102
|
prerenderManifestPath: string;
|
|
103
|
+
nextjsType: NextjsType;
|
|
101
104
|
}
|
|
102
105
|
/**
|
|
103
106
|
* Deploys static assets to S3 and cache assets to EFS in Lambda Custom Resource.
|