cdk-nextjs 0.3.11 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/.jsii +1248 -748
  2. package/API.md +1033 -531
  3. package/README.md +1 -2
  4. package/assets/lambdas/assets-deployment/assets-deployment.lambda/assets-deployment.Dockerfile +12 -8
  5. package/assets/lambdas/assets-deployment/assets-deployment.lambda/index.js +67 -56
  6. package/assets/lambdas/post-deploy/post-deploy.lambda/index.js +246 -0
  7. package/docs/breaking-changes.md +9 -0
  8. package/docs/notes.md +170 -20
  9. package/lib/constants.d.ts +32 -0
  10. package/lib/constants.js +38 -0
  11. package/lib/generated-structs/OptionalCustomResourceProps.d.ts +104 -0
  12. package/lib/generated-structs/OptionalCustomResourceProps.js +3 -0
  13. package/lib/generated-structs/OptionalDockerImageAssetProps.d.ts +21 -0
  14. package/lib/generated-structs/OptionalDockerImageAssetProps.js +1 -1
  15. package/lib/generated-structs/OptionalNextjsAssetsDeploymentProps.d.ts +4 -3
  16. package/lib/generated-structs/OptionalNextjsAssetsDeploymentProps.js +1 -1
  17. package/lib/generated-structs/OptionalNextjsBuildProps.d.ts +1 -1
  18. package/lib/generated-structs/OptionalNextjsBuildProps.js +1 -1
  19. package/lib/generated-structs/OptionalNextjsContainersProps.d.ts +3 -3
  20. package/lib/generated-structs/OptionalNextjsContainersProps.js +1 -1
  21. package/lib/generated-structs/OptionalNextjsPostDeployProps.d.ts +42 -0
  22. package/lib/generated-structs/OptionalNextjsPostDeployProps.js +3 -0
  23. package/lib/generated-structs/OptionalPostDeployCustomResourceProperties.d.ts +41 -0
  24. package/lib/generated-structs/OptionalPostDeployCustomResourceProperties.js +4 -0
  25. package/lib/index.d.ts +6 -5
  26. package/lib/index.js +6 -8
  27. package/lib/lambdas/assets-deployment/assets-deployment.lambda.js +5 -23
  28. package/lib/lambdas/assets-deployment/fs-to-fs.js +18 -3
  29. package/lib/lambdas/assets-deployment/fs-to-s3.d.ts +8 -2
  30. package/lib/lambdas/assets-deployment/fs-to-s3.js +14 -8
  31. package/lib/lambdas/post-deploy/create-invalidation.d.ts +2 -0
  32. package/lib/lambdas/post-deploy/create-invalidation.js +19 -0
  33. package/lib/lambdas/post-deploy/post-deploy-function.d.ts +13 -0
  34. package/lib/lambdas/post-deploy/post-deploy-function.js +22 -0
  35. package/lib/lambdas/post-deploy/post-deploy.lambda.d.ts +9 -0
  36. package/lib/lambdas/post-deploy/post-deploy.lambda.js +56 -0
  37. package/lib/lambdas/post-deploy/prune-fs.d.ts +10 -0
  38. package/lib/lambdas/post-deploy/prune-fs.js +33 -0
  39. package/lib/lambdas/post-deploy/prune-s3.d.ts +15 -0
  40. package/lib/lambdas/post-deploy/prune-s3.js +101 -0
  41. package/lib/lambdas/utils.js +35 -0
  42. package/lib/nextjs-assets-deployment.d.ts +15 -51
  43. package/lib/nextjs-assets-deployment.js +27 -25
  44. package/lib/nextjs-build/builder.Dockerfile +12 -8
  45. package/lib/nextjs-build/cdk-nextjs-cache-handler.cjs +63 -0
  46. package/lib/nextjs-build/cdk-nextjs-cache-handler.d.ts +21 -0
  47. package/lib/nextjs-build/cdk-nextjs-cache-handler.js +49 -0
  48. package/lib/nextjs-build/global-containers.Dockerfile +29 -19
  49. package/lib/nextjs-build/global-functions.Dockerfile +30 -24
  50. package/lib/nextjs-build/nextjs-build.d.ts +51 -26
  51. package/lib/nextjs-build/nextjs-build.js +108 -88
  52. package/lib/nextjs-build/regional-containers.Dockerfile +30 -20
  53. package/lib/nextjs-compute/nextjs-compute-base-props.d.ts +0 -1
  54. package/lib/nextjs-compute/nextjs-compute-base-props.js +1 -1
  55. package/lib/nextjs-compute/nextjs-containers.d.ts +2 -1
  56. package/lib/nextjs-compute/nextjs-containers.js +7 -5
  57. package/lib/nextjs-compute/nextjs-functions.d.ts +1 -0
  58. package/lib/nextjs-compute/nextjs-functions.js +8 -11
  59. package/lib/nextjs-distribution.d.ts +1 -1
  60. package/lib/nextjs-distribution.js +4 -4
  61. package/lib/nextjs-file-system.js +1 -1
  62. package/lib/nextjs-post-deploy.d.ts +101 -0
  63. package/lib/nextjs-post-deploy.js +78 -0
  64. package/lib/nextjs-static-assets.js +1 -1
  65. package/lib/nextjs-vpc.d.ts +1 -1
  66. package/lib/nextjs-vpc.js +4 -4
  67. package/lib/root-constructs/nextjs-base-overrides.d.ts +4 -0
  68. package/lib/root-constructs/nextjs-base-overrides.js +1 -1
  69. package/lib/root-constructs/nextjs-base-props.d.ts +15 -7
  70. package/lib/root-constructs/nextjs-base-props.js +1 -1
  71. package/lib/root-constructs/nextjs-global-containers.d.ts +8 -8
  72. package/lib/root-constructs/nextjs-global-containers.js +25 -15
  73. package/lib/root-constructs/nextjs-global-functions.d.ts +8 -11
  74. package/lib/root-constructs/nextjs-global-functions.js +25 -25
  75. package/lib/root-constructs/nextjs-regional-containers.d.ts +8 -0
  76. package/lib/root-constructs/nextjs-regional-containers.js +26 -9
  77. package/lib/utils/get-architecture.d.ts +2 -0
  78. package/lib/utils/get-architecture.js +8 -0
  79. package/lib/utils/handle-deprecated-properties.d.ts +7 -0
  80. package/lib/utils/handle-deprecated-properties.js +14 -0
  81. package/package.json +17 -19
  82. package/assets/lambdas/revalidate/revalidate.lambda/index.js +0 -67
  83. package/lib/common.d.ts +0 -25
  84. package/lib/common.js +0 -30
  85. package/lib/generated-structs/OptionalNextjsInvalidationProps.d.ts +0 -11
  86. package/lib/generated-structs/OptionalNextjsInvalidationProps.js +0 -3
  87. package/lib/lambdas/assets-deployment/prune-s3.d.ts +0 -15
  88. package/lib/lambdas/assets-deployment/prune-s3.js +0 -42
  89. package/lib/lambdas/assets-deployment/s3.d.ts +0 -2
  90. package/lib/lambdas/assets-deployment/s3.js +0 -7
  91. package/lib/lambdas/assets-deployment/utils.js +0 -35
  92. package/lib/lambdas/revalidate/revalidate-function.d.ts +0 -13
  93. package/lib/lambdas/revalidate/revalidate-function.js +0 -22
  94. package/lib/lambdas/revalidate/revalidate.lambda.d.ts +0 -2
  95. package/lib/lambdas/revalidate/revalidate.lambda.js +0 -53
  96. package/lib/nextjs-build/add-cache-handler.d.ts +0 -1
  97. package/lib/nextjs-build/add-cache-handler.js +0 -23
  98. package/lib/nextjs-build/add-cache-handler.mjs +0 -18
  99. package/lib/nextjs-build/cache-handler.cjs +0 -21878
  100. package/lib/nextjs-build/cache-handler.d.ts +0 -6
  101. package/lib/nextjs-build/cache-handler.js +0 -26
  102. package/lib/nextjs-invalidation.d.ts +0 -19
  103. package/lib/nextjs-invalidation.js +0 -52
  104. package/lib/nextjs-revalidation.d.ts +0 -30
  105. package/lib/nextjs-revalidation.js +0 -65
  106. /package/lib/lambdas/{assets-deployment/utils.d.ts → utils.d.ts} +0 -0
package/docs/notes.md CHANGED
@@ -1,28 +1,178 @@
1
1
  # Development Notes
2
2
 
3
- ## Verify EFS FileSystem Cache
3
+ ## Mapping Next.js output to EFS and S3
4
4
 
5
- EFS FileSystem acts as a shared cache between all containers/functions for the data, image, and full route cache and shared storage to reduce container (lambda and fargate) size for the public folder and sharp image optimization binaries (@img/sharp-libvips-linux\*) (~30MB). The folder structure should looks like:
5
+ When a Next.js app is built with `next build` with standalone mode, here is a simplified version of it's output:
6
6
 
7
- - /mnt/cdk-nextjs/data-cache
8
- - /mnt/cdk-nextjs/full-route-cache
9
- - /mnt/cdk-nextjs/image-cache
10
- - /mnt/cdk-nextjs/public
11
- - /mnt/cdk-nextjs/sharp
7
+ - public ([Public Folder](https://nextjs.org/docs/app/api-reference/file-conventions/public-folder))
8
+ - .next
9
+ - cache
10
+ - fetch-cache ([Data Cache](https://nextjs.org/docs/app/deep-dive/caching#data-cache))
11
+ - 123abc
12
+ - standalone
13
+ - relative/path/to/package
14
+ - .next
15
+ - server
16
+ - app ([Full Route Cache](https://nextjs.org/docs/app/deep-dive/caching#full-route-cache))
17
+ - api
18
+ - health
19
+ - route.js
20
+ - health.body
21
+ - health.meta
22
+ - my-dynamic-page
23
+ - page.js
24
+ - my-static-page
25
+ - page.js
26
+ - my-static-page.html
27
+ - my-static-page.meta
28
+ - my-static-page.rsc
29
+ - static ([Static Assets](https://nextjs.org/docs/app/guides/self-hosting#static-assets))
12
30
 
13
- Directory names are defined in src/common.ts.
31
+ Notes:
14
32
 
15
- To verify cache is working, deploy one of the example apps and visit the /run-command page. Then enter the following commands and ensure they create a similar output.
33
+ - .next/cache/images ([Optimized Image Cache](https://nextjs.org/docs/app/api-reference/components/image)) won't show up at first, it's generated as images are optimized during use of app
34
+ - .next/cache/fetch-cache will only show up if you have `fetch` data to cache
35
+ - [Standalone Output](https://nextjs.org/docs/pages/api-reference/config/next-config-js/output#automatically-copying-traced-files) copies only the necessary files for a production deployment including select files in node_modules which is ideal for keeping compute container image small. However, `next build` does not automatically copy the public and static folders into the standalone directory so that needs to be done.
36
+ - .body, .meta, .html, and .rsc files are updated by Next.js as a part of [ISR](https://nextjs.org/docs/app/guides/incremental-static-regeneration)
16
37
 
38
+ We could ship this off to Lambda/Fargate and call it a day, but then we wouldn't have a content delivery network serving our static assets nor a shared cache between compute containers. We use S3/CloudFront for serving static assets and EFS for shared cache between compute containers.
39
+
40
+ ### S3
41
+
42
+ .next/static is simply copied to S3 and then CloudFront is configured to forward requests with paths match `\_next/static` or any paths in `public` folder to S3. `NextjsAssetsDeployment` is responsible for this. We also add S3 User Metadata with `BUILD_ID` to track which static files are apart of which deployment so we can prune later - see [Pruning](#pruning).
43
+
44
+ Note, with `NextjsRegionalContainers`, we unfortunately cannot configure ALB to forward static requests directly to S3 because the host header dictates which bucket you can route requests to and it's not reliable to manually name buckets based on your domain. Therefore, static assets are copied into the container image to be served in ECS Fargate.
45
+
46
+ ### EFS
47
+
48
+ EFS is used to share cached data between compute containers (ECS or Lambda). In order to not modify internals of Next.js or write a [custom server](https://nextjs.org/docs/pages/guides/custom-server) for Next.js, cdk-nextjs uses symlinks to make it so that when Next.js writes cache data to it's regular location, it's actually writing data to EFS.
49
+
50
+ EFS is mounted to either Lambda or Fargate at `/mnt/cdk-nextjs/BUILD_ID`. `BUILD_ID` is important because it lets us have deployment 123 serving users while we run deployment 456 in background and the new cache files uploaded into EFS don't affect deployment 123. Next.js has several cache types:
51
+
52
+ - Data Cache (.next/cache/fetch-cache)
53
+ - Image Optimization Cache (.next/cache/images)
54
+ - Full Route Cache (.next/standalone/relative/path/to/package/.next/server/app)
55
+
56
+ Next.js' `public` folder is symlinked to EFS too so that large image assets (often in public folder) don't weigh down compute container startup. `public` folder needs to be accessible in compute container for image optimization.
57
+
58
+ The way we initialize the EFS Mount on deployment is via `NextjsAssetDeployment` custom resource. We copy files from the custom resource lambda functions image to EFS which is mounted so that the runtime compute conatiners can access the pre-initialized caches.
59
+
60
+ Here is structure of EFS File System which maps similarly to Next.js build output:
61
+
62
+ - root
63
+ - {BUILD_ID}
64
+ - public
65
+ - .next
66
+ - cache
67
+ - fetch-cache
68
+ - images
69
+ - server
70
+ - app
71
+
72
+ If not pruned, then {BUILD_ID} folders could add up. See [Pruning](#pruning).
73
+
74
+ You can interact with the EFS FileSystem by deploying one of the cdk-nextjs/examples apps (like global-functions) and visiting the /run-command path. See [Verifying EFS](#verifying-efs) for more details. and entering in a command like `ls -a /mnt/cdk-nextjs/{BUILD_ID}`. Note `-a` is important otherwise dot folders don't show.
75
+
76
+ ## Verifying EFS and Symlinks
77
+
78
+ Deploy one of the example apps in cdk-nextjs/examples and visit the /run-command path. You can run commands on your compute (Lambda or Fargate) to verify EFS.
79
+
80
+ 1. Command: `ls /mnt/cdk-nextjs`. Expected Output: single directory with cryptic
81
+ build id name like `fl3ApPOXn9eqhtodvoB98` unless during deployment you'll see 2.
82
+ 2. Command: `ls -a /mnt/cdk-nextjs/{BUILD_ID}`. Expect to see .next and public directories
83
+ 3. Command: `ls -a /mnt/cdk-nextjs/{BUILD_ID}/public`. Expect to see your public directory contents.
84
+ 4. Command: `ls -a /mnt/cdk-nextjs/{BUILD_ID}/.next`. Expect to see cache and server directories.
85
+ 5. Command: `ls -a /mnt/cdk-nextjs/{BUILD_ID}/.next/cache`. Expect to see fetch-cache and images folder
86
+ 6. Command: `readlink public`. Expect: `/mnt/cdk-nextjs/{BUILD_ID}/public`.
87
+ 7. Command: `readlink .next/cache/fetch-cache`. Expect: `/mnt/cdk-nextjs/{BUILD_ID}/.next/cache/fetch-cache`.
88
+ 8. Command: `readlink .next/cache/images`. Expect: `/mnt/cdk-nextjs/{BUILD_ID}/.next/cache/images`.
89
+
90
+ Note, for `.next/cache/fetch-cache` and `.next/cache/images` you may expect to be able to do `readlink` on nested files but it will fail. You can verify they're symlinked by using `state` and ensuring same inode number (although verifying the symlinked parent directory is sufficient).
91
+
92
+ Note, in the past cdk-nextjs tried to only symlink html,rsc,meta,body files from compute container to EFS but this will not work because it doesn't allow for Next.js to generate static html,rsc,meta,body files at runtime which happens with on-demand SSG. See ssg/[id]/page.tsx in examples/app-playground. This was resolved by providing custom `cacheHandler` to read/write to EFS. This is done programatically (unknown by consumer) by editing standalone/relative/path/to/package/server.js.
93
+
94
+ ## Blue Green Deployments
95
+
96
+ In a blue green deployment, you have blue already running and then you deploy a green set of resources that can handle traffic separately from blue and then you instantly or gradually switch from blue to green. Finally you decommission blue and green now becomes blue.
97
+
98
+ I'd like to bake this into cdk-nextjs if it was easy, but it's not. AWS has CodeDeploy to help with this but it's focused on compute. CloudFront has Continuous Deployments feature where you create a staging distribution on each deployment that traffic can slowly be switched to. I'd imagine this would be slow and maybe not practical for most use cases of cdk-nextjs I'm sure we could come up with a solution for this in cdk-nextjs and maybe one day we will, but for now (5/21/25) there are more important features to work on.
99
+
100
+ However, the principle of B/G deployments in which you setup separate resources for each deployment and then switch over is still used in cdk-nextjs within EFS and S3. See [Pruning](#pruning)
101
+
102
+ ## Pruning
103
+
104
+ Pruning removes old files from EFS and S3 so old deployment files aren't used. Pruning is done in `NextjsPostDeploy`. EFS is simple because we partition directories by BUILD_ID so we just delete the non-current build id. S3 is more complicated. First you need to understand the issue of [version skew](https://vercel.com/docs/skew-protection) where users that have Next.js apps open in tabs without refreshing for long time hold stale references to static files that don't exist anymore in current deployment.
105
+
106
+ To solve this, we could write static files to S3 and just keep overwriting files and never delete them, but this is not ideal because your bucket will keep accumulating static files that you don't need and are paying for.
107
+
108
+ The compromise cdk-nextjs takes is that `NextjsPostDeploy` looks at all objects in the bucket each time and reads the object's metadata to see what the "next-build-id" is. "next-build-id" is set in `NextjsStaticAssetsDeployment`. If it's not the current deployment's build id AND last modified < `new Date() - msTtl` then it is deleted. `msTtl` is configurable and by default is 1 month.
109
+
110
+ ## Next.js Full Route Cache Files (.next/server/app folder) [From Amazon Q]
111
+
112
+ The files in the .next/server/app folder are part of Next.js's build output and caching system. Each file type serves a specific purpose:
113
+
114
+ - .js files:
115
+ - These are the compiled JavaScript files that contain the server components and logic for your routes.
116
+ - They include the actual code that runs on the server to generate your pages.
117
+ - .nft.json files:
118
+ - NFT stands for "Node File Trace".
119
+ - These files contain metadata about dependencies needed for a particular route.
120
+ - They help Next.js optimize the deployment by tracking which files are needed for each route.
121
+ - .rsc files:
122
+ - RSC stands for "React Server Component".
123
+ - These files contain the serialized React Server Components payload.
124
+ - They store the pre-rendered output of your server components in a format that can be efficiently transmitted to the client.
125
+ - .html files:
126
+ - These are the static HTML files generated during the build process.
127
+ - They represent the initial HTML that will be sent to the client for static pages.
128
+ - .body files:
129
+ - These contain the HTML body content of your pages.
130
+ - They're used for streaming and partial rendering optimizations.
131
+ - .meta files:
132
+ - Cache Control Information
133
+ - Route Configuration
134
+ - Revalidation Timing
135
+ - Tags for On-demand Revalidation
136
+
137
+ Files Updated During ISR (Incremental Static Regeneration)
138
+ During ISR revalidation, Next.js updates:
139
+
140
+ - .rsc files: The React Server Component payloads are regenerated with fresh data.
141
+ - .html files: The static HTML is regenerated with the updated content.
142
+ - .body files: The body content is updated to reflect the new data.
143
+ - .meta files: Updated to reflect new cache timing information and potentially updated tags.
144
+
145
+ The .js files typically remain unchanged during ISR since they contain the code logic which doesn't change. The .nft.json files also remain unchanged as the dependency structure doesn't change during revalidation.
146
+
147
+ ### Impact on cdk-nextjs
148
+
149
+ We omit storing .js and .nft.json files in EFS because they're static and don't change. The .js and .nft.json files live in the compute image and are run when `node index.js` runs. They'd be duplicative in EFS. Similarly the .rsc, .html .body, and .meta files are duplicative in the compute image.
150
+
151
+ ## Debugging Containers
152
+
153
+ If you want to debug the cdk-nextjs builder image and you've run `cdk deploy` locally, then you can run `docker run -it cdk-nextjs/builder:<HASH> /bin/sh` replacing `<HASH>`. You can find out what this is by looking at the logs after you run `cdk deploy`. Note, the builder image is not uploaded to ECR. The built Next.js app inside this container is copied from by the runtime image and assets deployment image.
154
+
155
+ If you want to debug the assets deployment image you need to run something like: `docker run -it --entrypoint /bin/bash <AWS_ACCOUNT>.dkr.ecr.<AWS_REGION>.amazonaws.com/cdk-hnb659fds-container-assets-<AWS_ACCOUNT>-<AWS_REGION>:<HASH>`. `--entrypoint` is required because the base image is `public.ecr.aws/lambda/nodejs:22`.
156
+
157
+ ### Authenticating to ECR For Non-Local Built Containers
158
+
159
+ Sometimes you'll want to run the containers built by cdk-nextjs that were not built locally. You'll run command like: `docker run -it <AWS_ACCOUNT>.dkr.ecr.<AWS_REGION>.amazonaws.com/cdk-hnb659fds-container-assets-<AWS_ACCOUNT>-<AWS_REGION>:<HASH> /bin/sh`. In order to authenticate, you'll need to update your `~/.docker/config.json`. Assuming you're using macOS and [Rancher Desktop](https://rancherdesktop.io/) which by default includes the [amazon-ecr-credential-helper](https://github.com/awslabs/amazon-ecr-credential-helper). Here is example below:
160
+
161
+ ```json
162
+ {
163
+ "auths": {
164
+ "<AWS_ACCOUNT>.dkr.ecr.<AWS_REGION>.amazonaws.com": {}
165
+ },
166
+ "credsStore": "osxkeychain",
167
+ "credHelpers": {
168
+ "<AWS_ACCOUNT>.dkr.ecr.<AWS_REGION>.amazonaws.com": "ecr-login"
169
+ },
170
+ "currentContext": "rancher-desktop"
171
+ }
17
172
  ```
18
- Command: readlink .next/cache/images
19
- Output: /mnt/cdk-nextjs/image-cache
20
- Command: readlink .next/cache/fetch-cache
21
- Output: /mnt/cdk-nextjs/data-cache
22
- Command: ls /mnt/cdk-nextjs/data-cache
23
- Output: 1c5e7e075ef14fa7ed6ffe8ddc77bb5ba682a0d32e11acbe88fe0e997141343e 7219caec2df443d9c8453d2d63f9893f701fcc35e6a25a9d227652a1860296a1 7d6a754bbf6a88893a7123d28dc4d99c0813c646abbb712ad85d949bbd528618 8fd064b67046e3d373dd7c2bc22e20d58fd95ef2491850ab77e9799d8b6d7735 de9b0bb0b5134c02dc2ff1dc9b2188f6216d4e811186fd985cd1cbaa6e9d0a1f
24
- Command: ls /mnt/cdk-nextjs/image-cache
25
- Output: JYUtmef0DjkFQBxgsZ4K51CyobxYqyXBOvpSFb3ef7A= W6NDSUrhApOUZ4FyFWfd9v9X2cg7z8q0yMXrZJXKukg= cDAs51Uqt+J3vNO04jH5dabjvVQCZTnpDXhoTP33MZ0= e+zuNPfk4gSKu7yTQM9sQdYvumEtD2PdVMrTiufiMZQ= l5tUrCT-iGRZlDIrNy1hz8efSOKpZwGyWBNiRrXaWVk= ylPcKFlKY2WHZ2w4sxKad3Lz8XcBPm2WyaOReb9Nkts= zH4wuKm9DtE-hgBK4G06DUDXNgdbaYeoGwidFJUkYUI=
26
- Command: ls -l .next/server/app
27
- Output: total 112 drwxr-xr-x 2 nextjs nodejs 4096 Jun 7 10:37 _not-found lrwxrwxrwx 1 root root 54 Jun 7 12:37 _not-found.html -> /mnt/cdk-nextjs/full-route-cache/_not-found.html lrwxrwxrwx 1 root root 54 Jun 7 12:37 _not-found.meta -> /mnt/cdk-nextjs/full-route-cache/_not-found.meta lrwxrwxrwx 1 root root 53 Jun 7 12:37 _not-found.rsc -> /mnt/cdk-nextjs/full-route-cache/_not-found.rsc drwxr-xr-x 1 nextjs nodejs 4096 Jun 7 12:37 api drwxr-xr-x 3 nextjs nodejs 4096 Jun 7 10:37 context lrwxrwxrwx 1 root root 51 Jun 7 12:37 context.html -> /mnt/cdk-nextjs/full-route-cache/context.html lrwxrwxrwx 1 root root 51 Jun 7 12:37 context.meta -> /mnt/cdk-nextjs/full-route-cache/context.meta lrwxrwxrwx 1 root root 50 Jun 7 12:37 context.rsc -> /mnt/cdk-nextjs/full-route-cache/context.rsc drwxr-xr-x 3 nextjs nodejs 4096 Jun 7 10:37 error-handling lrwxrwxrwx 1 root root 58 Jun 7 12:37 error-handling.html -> /mnt/cdk-nextjs/full-route-cache/error-handling.html lrwxrwxrwx 1 root root 58 Jun 7 12:37 error-handling.meta -> /mnt/cdk-nextjs/full-route-cache/error-handling.meta lrwxrwxrwx 1 root root 57 Jun 7 12:37 error-handling.rsc -> /mnt/cdk-nextjs/full-route-cache/error-handling.rsc drwxr-xr-x 2 nextjs nodejs 4096 Jun 7 10:37 favicon.ico -rw-r--r-- 1 nextjs nodejs 15086 Jun 7 10:37 favicon.ico.body lrwxrwxrwx 1 root root 55 Jun 7 12:37 favicon.ico.meta -> /mnt/cdk-nextjs/full-route-cache/favicon.ico.meta drwxr-xr-x 3 nextjs nodejs 4096 Jun 7 10:37 hooks lrwxrwxrwx 1 root root 49 Jun 7 12:37 hooks.html -> /mnt/cdk-nextjs/full-route-cache/hooks.html lrwxrwxrwx 1 root root 49 Jun 7 12:37 hooks.meta -> /mnt/cdk-nextjs/full-route-cache/hooks.meta lrwxrwxrwx 1 root root 48 Jun 7 12:37 hooks.rsc -> /mnt/cdk-nextjs/full-route-cache/hooks.rsc lrwxrwxrwx 1 root root 49 Jun 7 12:37 index.html -> /mnt/cdk-nextjs/full-route-cache/index.html lrwxrwxrwx 1 root root 49 Jun 7 12:37 index.meta -> /mnt/cdk-nextjs/full-route-cache/index.meta lrwxrwxrwx 1 root root 48 Jun 7 12:37 index.rsc -> /mnt/cdk-nextjs/full-route-cache/index.rsc drwxr-xr-x 1 nextjs nodejs 4096 Jun 7 12:37 isr lrwxrwxrwx 1 root root 47 Jun 7 12:37 isr.html -> /mnt/cdk-nextjs/full-route-cache/isr.html lrwxrwxrwx 1 root root 47 Jun 7 12:37 isr.meta -> /mnt/cdk-nextjs/full-route-cache/isr.meta lrwxrwxrwx 1 root root 46 Jun 7 12:37 isr.rsc -> /mnt/cdk-nextjs/full-route-cache/isr.rsc drwxr-xr-x 3 nextjs nodejs 4096 Jun 7 10:37 layouts lrwxrwxrwx 1 root root 51 Jun 7 12:37 layouts.html -> /mnt/cdk-nextjs/full-route-cache/layouts.html lrwxrwxrwx 1 root root 51 Jun 7 12:37 layouts.meta -> /mnt/cdk-nextjs/full-route-cache/layouts.meta lrwxrwxrwx 1 root root 50 Jun 7 12:37 layouts.rsc -> /mnt/cdk-nextjs/full-route-cache/layouts.rsc drwxr-xr-x 3 nextjs nodejs 4096 Jun 7 10:37 loading lrwxrwxrwx 1 root root 51 Jun 7 12:37 loading.html -> /mnt/cdk-nextjs/full-route-cache/loading.html lrwxrwxrwx 1 root root 51 Jun 7 12:37 loading.meta -> /mnt/cdk-nextjs/full-route-cache/loading.meta lrwxrwxrwx 1 root root 50 Jun 7 12:37 loading.rsc -> /mnt/cdk-nextjs/full-route-cache/loading.rsc drwxr-xr-x 3 nextjs nodejs 4096 Jun 7 10:37 not-found lrwxrwxrwx 1 root root 53 Jun 7 12:37 not-found.html -> /mnt/cdk-nextjs/full-route-cache/not-found.html lrwxrwxrwx 1 root root 53 Jun 7 12:37 not-found.meta -> /mnt/cdk-nextjs/full-route-cache/not-found.meta lrwxrwxrwx 1 root root 52 Jun 7 12:37 not-found.rsc -> /mnt/cdk-nextjs/full-route-cache/not-found.rsc -rw-r--r-- 1 nextjs nodejs 5076 Jun 7 10:37 page.js -rw-r--r-- 1 nextjs nodejs 2390 Jun 7 10:37 page.js.nft.json -rw-r--r-- 1 nextjs nodejs 12281 Jun 7 10:37 page_client-reference-manifest.js drwxr-xr-x 1 nextjs nodejs 4096 Jun 7 12:37 parallel-routes lrwxrwxrwx 1 root root 59 Jun 7 12:37 parallel-routes.html -> /mnt/cdk-nextjs/full-route-cache/parallel-routes.html lrwxrwxrwx 1 root root 59 Jun 7 12:37 parallel-routes.meta -> /mnt/cdk-nextjs/full-route-cache/parallel-routes.meta lrwxrwxrwx 1 root root 58 Jun 7 12:37 parallel-routes.rsc -> /mnt/cdk-nextjs/full-route-cache/parallel-routes.rsc drwxr-xr-x 1 nextjs nodejs 4096 Jun 7 12:37 patterns lrwxrwxrwx 1 root root 52 Jun 7 12:37 patterns.html -> /mnt/cdk-nextjs/full-route-cache/patterns.html lrwxrwxrwx 1 root root 52 Jun 7 12:37 patterns.meta -> /mnt/cdk-nextjs/full-route-cache/patterns.meta lrwxrwxrwx 1 root root 51 Jun 7 12:37 patterns.rsc -> /mnt/cdk-nextjs/full-route-cache/patterns.rsc drwxr-xr-x 1 nextjs nodejs 4096 Jun 7 12:37 route-groups lrwxrwxrwx 1 root root 56 Jun 7 12:37 route-groups.html -> /mnt/cdk-nextjs/full-route-cache/route-groups.html lrwxrwxrwx 1 root root 56 Jun 7 12:37 route-groups.meta -> /mnt/cdk-nextjs/full-route-cache/route-groups.meta lrwxrwxrwx 1 root root 55 Jun 7 12:37 route-groups.rsc -> /mnt/cdk-nextjs/full-route-cache/route-groups.rsc drwxr-xr-x 2 nextjs nodejs 4096 Jun 7 10:37 run-command lrwxrwxrwx 1 root root 55 Jun 7 12:37 run-command.html -> /mnt/cdk-nextjs/full-route-cache/run-command.html lrwxrwxrwx 1 root root 55 Jun 7 12:37 run-command.meta -> /mnt/cdk-nextjs/full-route-cache/run-command.meta lrwxrwxrwx 1 root root 54 Jun 7 12:37 run-command.rsc -> /mnt/cdk-nextjs/full-route-cache/run-command.rsc drwxr-xr-x 1 nextjs nodejs 4096 Jun 7 12:37 ssg lrwxrwxrwx 1 root root 47 Jun 7 12:37 ssg.html -> /mnt/cdk-nextjs/full-route-cache/ssg.html lrwxrwxrwx 1 root root 47 Jun 7 12:37 ssg.meta -> /mnt/cdk-nextjs/full-route-cache/ssg.meta lrwxrwxrwx 1 root root 46 Jun 7 12:37 ssg.rsc -> /mnt/cdk-nextjs/full-route-cache/ssg.rsc drwxr-xr-x 3 nextjs nodejs 4096 Jun 7 10:37 ssr lrwxrwxrwx 1 root root 47 Jun 7 12:37 ssr.html -> /mnt/cdk-nextjs/full-route-cache/ssr.html lrwxrwxrwx 1 root root 47 Jun 7 12:37 ssr.meta -> /mnt/cdk-nextjs/full-route-cache/ssr.meta lrwxrwxrwx 1 root root 46 Jun 7 12:37 ssr.rsc -> /mnt/cdk-nextjs/full-route-cache/ssr.rsc drwxr-xr-x 4 nextjs nodejs 4096 Jun 7 10:37 streaming lrwxrwxrwx 1 root root 53 Jun 7 12:37 streaming.html -> /mnt/cdk-nextjs/full-route-cache/streaming.html lrwxrwxrwx 1 root root 53 Jun 7 12:37 streaming.meta -> /mnt/cdk-nextjs/full-route-cache/streaming.meta lrwxrwxrwx 1 root root 52 Jun 7 12:37 streaming.rsc -> /mnt/cdk-nextjs/full-route-cache/streaming.rsc drwxr-xr-x 1 nextjs nodejs 4096 Jun 7 12:37 styling lrwxrwxrwx 1 root root 51 Jun 7 12:37 styling.html -> /mnt/cdk-nextjs/full-route-cache/styling.html lrwxrwxrwx 1 root root 51 Jun 7 12:37 styling.meta -> /mnt/cdk-nextjs/full-route-cache/styling.meta lrwxrwxrwx 1 root root 50 Jun 7 12:37 styling.rsc -> /mnt/cdk-nextjs/full-route-cache/styling.rsc
28
- ```
173
+
174
+ NOTE, you'll need to remove `credsHelpers` when you want to use `cdk deploy` again because CDK is not compatible with `amazon-ecr-credential-helper`. I recommend just renaming to `_credsHelpers` so you can quickly use it again if needed.
175
+
176
+ ## builder.Dockerfile
177
+
178
+ It's recommended by Docker [here](https://docs.docker.com/reference/dockerfile/#env) to limit scope of env vars. So for builder.Dockerfile injection, we don't do `ENV {{INJECT_CDK_NEXTJS_BUILD_ENV_VARS}}`, rather we do `RUN {{INJECT_CDK_NEXTJS_BUILD_ENV_VARS}} next build`.
@@ -0,0 +1,32 @@
1
+ export declare enum NextjsType {
2
+ GLOBAL_CONTAINERS = "GLOBAL_CONTAINERS",
3
+ GLOBAL_FUNCTIONS = "GLOBAL_FUNCTIONS",
4
+ REGIONAL_CONTAINERS = "REGIONAL_CONTAINERS"
5
+ }
6
+ /**
7
+ * Mount path in container for EFS. Next.js image optimization, data, and full
8
+ * route cache will be symlinked to this location.
9
+ *
10
+ * Must comply with pattern: ^/mnt/[a-zA-Z0-9-_.]+$ due to lambda requirement.
11
+ * Fargate doesn't have this same requirement but we share code for lambda and
12
+ * fargate.
13
+ * @see https://docs.aws.amazon.com/lambda/latest/api/API_FileSystemConfig.html
14
+ */
15
+ export declare const MOUNT_PATH = "/mnt/cdk-nextjs";
16
+ export declare const BUILD_ID_ARG_NAME = "BUILD_ID";
17
+ export declare const BUILDER_IMAGE_ALIAS_ARG_NAME = "BUILDER_IMAGE_ALIAS";
18
+ export declare const CACHE_PATH_ARG_NAME = "CACHE_PATH";
19
+ export declare const DATA_CACHE_PATH_ARG_NAME = "DATA_CACHE_PATH";
20
+ export declare const IMAGE_CACHE_PATH_ARG_NAME = "IMAGE_CACHE_PATH";
21
+ export declare const MOUNT_PATH_ARG_NAME = "MOUNT_PATH";
22
+ export declare const PUBLIC_PATH_ARG_NAME = "PUBLIC_PATH";
23
+ export declare const RELATIVE_PATH_TO_PACKAGE_ARG_NAME = "RELATIVE_PATH_TO_PACKAGE";
24
+ export declare const CACHE_PATH = ".next/cache";
25
+ export declare const DATA_CACHE_PATH = ".next/cache/fetch-cache";
26
+ export declare const IMAGE_CACHE_PATH = ".next/cache/images";
27
+ export declare const PUBLIC_PATH = "public";
28
+ export declare const SERVER_DIST_PATH = ".next/server";
29
+ export declare const FULL_ROUTE_CACHE_PATH = ".next/server/app";
30
+ export declare const STATIC_PATH = ".next/static";
31
+ export declare const CDK_NEXTJS_SERVER_DIST_DIR_ENV_VAR_NAME = "CDK_NEXTJS_SERVER_DIST_DIR";
32
+ export declare const INJECT_CDK_NEXTJS_BUILD_ENV_VARS = "{{INJECT_CDK_NEXTJS_BUILD_ENV_VARS}}";
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.INJECT_CDK_NEXTJS_BUILD_ENV_VARS = exports.CDK_NEXTJS_SERVER_DIST_DIR_ENV_VAR_NAME = exports.STATIC_PATH = exports.FULL_ROUTE_CACHE_PATH = exports.SERVER_DIST_PATH = exports.PUBLIC_PATH = exports.IMAGE_CACHE_PATH = exports.DATA_CACHE_PATH = exports.CACHE_PATH = exports.RELATIVE_PATH_TO_PACKAGE_ARG_NAME = exports.PUBLIC_PATH_ARG_NAME = exports.MOUNT_PATH_ARG_NAME = exports.IMAGE_CACHE_PATH_ARG_NAME = exports.DATA_CACHE_PATH_ARG_NAME = exports.CACHE_PATH_ARG_NAME = exports.BUILDER_IMAGE_ALIAS_ARG_NAME = exports.BUILD_ID_ARG_NAME = exports.MOUNT_PATH = exports.NextjsType = void 0;
4
+ var NextjsType;
5
+ (function (NextjsType) {
6
+ NextjsType["GLOBAL_CONTAINERS"] = "GLOBAL_CONTAINERS";
7
+ NextjsType["GLOBAL_FUNCTIONS"] = "GLOBAL_FUNCTIONS";
8
+ NextjsType["REGIONAL_CONTAINERS"] = "REGIONAL_CONTAINERS";
9
+ })(NextjsType || (exports.NextjsType = NextjsType = {}));
10
+ /**
11
+ * Mount path in container for EFS. Next.js image optimization, data, and full
12
+ * route cache will be symlinked to this location.
13
+ *
14
+ * Must comply with pattern: ^/mnt/[a-zA-Z0-9-_.]+$ due to lambda requirement.
15
+ * Fargate doesn't have this same requirement but we share code for lambda and
16
+ * fargate.
17
+ * @see https://docs.aws.amazon.com/lambda/latest/api/API_FileSystemConfig.html
18
+ */
19
+ exports.MOUNT_PATH = "/mnt/cdk-nextjs";
20
+ // NOTE: *_ARG_NAME constants are referenced in Dockerfiles so they can be reused
21
+ exports.BUILD_ID_ARG_NAME = "BUILD_ID";
22
+ exports.BUILDER_IMAGE_ALIAS_ARG_NAME = "BUILDER_IMAGE_ALIAS";
23
+ exports.CACHE_PATH_ARG_NAME = "CACHE_PATH";
24
+ exports.DATA_CACHE_PATH_ARG_NAME = "DATA_CACHE_PATH";
25
+ exports.IMAGE_CACHE_PATH_ARG_NAME = "IMAGE_CACHE_PATH";
26
+ exports.MOUNT_PATH_ARG_NAME = "MOUNT_PATH";
27
+ exports.PUBLIC_PATH_ARG_NAME = "PUBLIC_PATH";
28
+ exports.RELATIVE_PATH_TO_PACKAGE_ARG_NAME = "RELATIVE_PATH_TO_PACKAGE";
29
+ exports.CACHE_PATH = ".next/cache";
30
+ exports.DATA_CACHE_PATH = `${exports.CACHE_PATH}/fetch-cache`;
31
+ exports.IMAGE_CACHE_PATH = `${exports.CACHE_PATH}/images`;
32
+ exports.PUBLIC_PATH = "public";
33
+ exports.SERVER_DIST_PATH = ".next/server";
34
+ exports.FULL_ROUTE_CACHE_PATH = `${exports.SERVER_DIST_PATH}/app`;
35
+ exports.STATIC_PATH = ".next/static";
36
+ exports.CDK_NEXTJS_SERVER_DIST_DIR_ENV_VAR_NAME = "CDK_NEXTJS_SERVER_DIST_DIR";
37
+ exports.INJECT_CDK_NEXTJS_BUILD_ENV_VARS = "{{INJECT_CDK_NEXTJS_BUILD_ENV_VARS}}";
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFZLFVBSVg7QUFKRCxXQUFZLFVBQVU7SUFDcEIscURBQXVDLENBQUE7SUFDdkMsbURBQXFDLENBQUE7SUFDckMseURBQTJDLENBQUE7QUFDN0MsQ0FBQyxFQUpXLFVBQVUsMEJBQVYsVUFBVSxRQUlyQjtBQUVEOzs7Ozs7OztHQVFHO0FBQ1UsUUFBQSxVQUFVLEdBQUcsaUJBQWlCLENBQUM7QUFFNUMsaUZBQWlGO0FBQ3BFLFFBQUEsaUJBQWlCLEdBQUcsVUFBVSxDQUFDO0FBQy9CLFFBQUEsNEJBQTRCLEdBQUcscUJBQXFCLENBQUM7QUFDckQsUUFBQSxtQkFBbUIsR0FBRyxZQUFZLENBQUM7QUFDbkMsUUFBQSx3QkFBd0IsR0FBRyxpQkFBaUIsQ0FBQztBQUM3QyxRQUFBLHlCQUF5QixHQUFHLGtCQUFrQixDQUFDO0FBQy9DLFFBQUEsbUJBQW1CLEdBQUcsWUFBWSxDQUFDO0FBQ25DLFFBQUEsb0JBQW9CLEdBQUcsYUFBYSxDQUFDO0FBQ3JDLFFBQUEsaUNBQWlDLEdBQUcsMEJBQTBCLENBQUM7QUFFL0QsUUFBQSxVQUFVLEdBQUcsYUFBYSxDQUFDO0FBQzNCLFFBQUEsZUFBZSxHQUFHLEdBQUcsa0JBQVUsY0FBYyxDQUFDO0FBQzlDLFFBQUEsZ0JBQWdCLEdBQUcsR0FBRyxrQkFBVSxTQUFTLENBQUM7QUFDMUMsUUFBQSxXQUFXLEdBQUcsUUFBUSxDQUFDO0FBQ3ZCLFFBQUEsZ0JBQWdCLEdBQUcsY0FBYyxDQUFDO0FBQ2xDLFFBQUEscUJBQXFCLEdBQUcsR0FBRyx3QkFBZ0IsTUFBTSxDQUFDO0FBQ2xELFFBQUEsV0FBVyxHQUFHLGNBQWMsQ0FBQztBQUU3QixRQUFBLHVDQUF1QyxHQUNsRCw0QkFBNEIsQ0FBQztBQUVsQixRQUFBLGdDQUFnQyxHQUMzQyxzQ0FBc0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIE5leHRqc1R5cGUge1xuICBHTE9CQUxfQ09OVEFJTkVSUyA9IFwiR0xPQkFMX0NPTlRBSU5FUlNcIixcbiAgR0xPQkFMX0ZVTkNUSU9OUyA9IFwiR0xPQkFMX0ZVTkNUSU9OU1wiLFxuICBSRUdJT05BTF9DT05UQUlORVJTID0gXCJSRUdJT05BTF9DT05UQUlORVJTXCIsXG59XG5cbi8qKlxuICogTW91bnQgcGF0aCBpbiBjb250YWluZXIgZm9yIEVGUy4gTmV4dC5qcyBpbWFnZSBvcHRpbWl6YXRpb24sIGRhdGEsIGFuZCBmdWxsXG4gKiByb3V0ZSBjYWNoZSB3aWxsIGJlIHN5bWxpbmtlZCB0byB0aGlzIGxvY2F0aW9uLlxuICpcbiAqIE11c3QgY29tcGx5IHdpdGggcGF0dGVybjogXi9tbnQvW2EtekEtWjAtOS1fLl0rJCBkdWUgdG8gbGFtYmRhIHJlcXVpcmVtZW50LlxuICogRmFyZ2F0ZSBkb2Vzbid0IGhhdmUgdGhpcyBzYW1lIHJlcXVpcmVtZW50IGJ1dCB3ZSBzaGFyZSBjb2RlIGZvciBsYW1iZGEgYW5kXG4gKiBmYXJnYXRlLlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9hcGkvQVBJX0ZpbGVTeXN0ZW1Db25maWcuaHRtbFxuICovXG5leHBvcnQgY29uc3QgTU9VTlRfUEFUSCA9IFwiL21udC9jZGstbmV4dGpzXCI7XG5cbi8vIE5PVEU6ICpfQVJHX05BTUUgY29uc3RhbnRzIGFyZSByZWZlcmVuY2VkIGluIERvY2tlcmZpbGVzIHNvIHRoZXkgY2FuIGJlIHJldXNlZFxuZXhwb3J0IGNvbnN0IEJVSUxEX0lEX0FSR19OQU1FID0gXCJCVUlMRF9JRFwiO1xuZXhwb3J0IGNvbnN0IEJVSUxERVJfSU1BR0VfQUxJQVNfQVJHX05BTUUgPSBcIkJVSUxERVJfSU1BR0VfQUxJQVNcIjtcbmV4cG9ydCBjb25zdCBDQUNIRV9QQVRIX0FSR19OQU1FID0gXCJDQUNIRV9QQVRIXCI7XG5leHBvcnQgY29uc3QgREFUQV9DQUNIRV9QQVRIX0FSR19OQU1FID0gXCJEQVRBX0NBQ0hFX1BBVEhcIjtcbmV4cG9ydCBjb25zdCBJTUFHRV9DQUNIRV9QQVRIX0FSR19OQU1FID0gXCJJTUFHRV9DQUNIRV9QQVRIXCI7XG5leHBvcnQgY29uc3QgTU9VTlRfUEFUSF9BUkdfTkFNRSA9IFwiTU9VTlRfUEFUSFwiO1xuZXhwb3J0IGNvbnN0IFBVQkxJQ19QQVRIX0FSR19OQU1FID0gXCJQVUJMSUNfUEFUSFwiO1xuZXhwb3J0IGNvbnN0IFJFTEFUSVZFX1BBVEhfVE9fUEFDS0FHRV9BUkdfTkFNRSA9IFwiUkVMQVRJVkVfUEFUSF9UT19QQUNLQUdFXCI7XG5cbmV4cG9ydCBjb25zdCBDQUNIRV9QQVRIID0gXCIubmV4dC9jYWNoZVwiO1xuZXhwb3J0IGNvbnN0IERBVEFfQ0FDSEVfUEFUSCA9IGAke0NBQ0hFX1BBVEh9L2ZldGNoLWNhY2hlYDtcbmV4cG9ydCBjb25zdCBJTUFHRV9DQUNIRV9QQVRIID0gYCR7Q0FDSEVfUEFUSH0vaW1hZ2VzYDtcbmV4cG9ydCBjb25zdCBQVUJMSUNfUEFUSCA9IFwicHVibGljXCI7XG5leHBvcnQgY29uc3QgU0VSVkVSX0RJU1RfUEFUSCA9IFwiLm5leHQvc2VydmVyXCI7XG5leHBvcnQgY29uc3QgRlVMTF9ST1VURV9DQUNIRV9QQVRIID0gYCR7U0VSVkVSX0RJU1RfUEFUSH0vYXBwYDtcbmV4cG9ydCBjb25zdCBTVEFUSUNfUEFUSCA9IFwiLm5leHQvc3RhdGljXCI7XG5cbmV4cG9ydCBjb25zdCBDREtfTkVYVEpTX1NFUlZFUl9ESVNUX0RJUl9FTlZfVkFSX05BTUUgPVxuICBcIkNES19ORVhUSlNfU0VSVkVSX0RJU1RfRElSXCI7XG5cbmV4cG9ydCBjb25zdCBJTkpFQ1RfQ0RLX05FWFRKU19CVUlMRF9FTlZfVkFSUyA9XG4gIFwie3tJTkpFQ1RfQ0RLX05FWFRKU19CVUlMRF9FTlZfVkFSU319XCI7XG4iXX0=
@@ -0,0 +1,104 @@
1
+ import type { Duration, RemovalPolicy } from 'aws-cdk-lib';
2
+ /**
3
+ * OptionalCustomResourceProps
4
+ */
5
+ export interface OptionalCustomResourceProps {
6
+ /**
7
+ * The maximum time that can elapse before a custom resource operation times out.
8
+ * The value must be between 1 second and 3600 seconds.
9
+ *
10
+ * Maps to [ServiceTimeout](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-customresource.html#cfn-cloudformation-customresource-servicetimeout) property for the `AWS::CloudFormation::CustomResource` resource
11
+ *
12
+ * A token can be specified for this property, but it must be specified with `Duration.seconds()`.
13
+ * @default Duration.seconds(3600)
14
+ * @stability stable
15
+ */
16
+ readonly serviceTimeout?: Duration;
17
+ /**
18
+ * For custom resources, you can specify AWS::CloudFormation::CustomResource (the default) as the resource type, or you can specify your own resource type name.
19
+ * For example, you can use "Custom::MyCustomResourceTypeName".
20
+ *
21
+ * Custom resource type names must begin with "Custom::" and can include
22
+ * alphanumeric characters and the following characters: _@-. You can specify
23
+ * a custom resource type name up to a maximum length of 60 characters. You
24
+ * cannot change the type during an update.
25
+ *
26
+ * Using your own resource type names helps you quickly differentiate the
27
+ * types of custom resources in your stack. For example, if you had two custom
28
+ * resources that conduct two different ping tests, you could name their type
29
+ * as Custom::PingTester to make them easily identifiable as ping testers
30
+ * (instead of using AWS::CloudFormation::CustomResource).
31
+ * @default - AWS::CloudFormation::CustomResource
32
+ * @stability stable
33
+ */
34
+ readonly resourceType?: string;
35
+ /**
36
+ * The policy to apply when this resource is removed from the application.
37
+ * @default cdk.RemovalPolicy.Destroy
38
+ * @stability stable
39
+ */
40
+ readonly removalPolicy?: RemovalPolicy;
41
+ /**
42
+ * Properties to pass to the Lambda.
43
+ * Values in this `properties` dictionary can possibly overwrite other values in `CustomResourceProps`
44
+ * E.g. `ServiceToken` and `ServiceTimeout`
45
+ * It is recommended to avoid using same keys that exist in `CustomResourceProps`
46
+ * @default - No properties.
47
+ * @stability stable
48
+ */
49
+ readonly properties?: Record<string, any>;
50
+ /**
51
+ * Convert all property keys to pascal case.
52
+ * @default false
53
+ * @stability stable
54
+ */
55
+ readonly pascalCaseProperties?: boolean;
56
+ /**
57
+ * The ARN of the provider which implements this custom resource type.
58
+ * You can implement a provider by listening to raw AWS CloudFormation events
59
+ * and specify the ARN of an SNS topic (`topic.topicArn`) or the ARN of an AWS
60
+ * Lambda function (`lambda.functionArn`) or use the CDK's custom [resource
61
+ * provider framework] which makes it easier to implement robust providers.
62
+ *
63
+ * [resource provider framework]:
64
+ * https://docs.aws.amazon.com/cdk/api/latest/docs/custom-resources-readme.html
65
+ *
66
+ * Provider framework:
67
+ *
68
+ * ```ts
69
+ * // use the provider framework from aws-cdk/custom-resources:
70
+ * const provider = new customresources.Provider(this, 'ResourceProvider', {
71
+ * onEventHandler,
72
+ * isCompleteHandler, // optional
73
+ * });
74
+ *
75
+ * new CustomResource(this, 'MyResource', {
76
+ * serviceToken: provider.serviceToken,
77
+ * });
78
+ * ```
79
+ *
80
+ * AWS Lambda function (not recommended to use AWS Lambda Functions directly,
81
+ * see the module README):
82
+ *
83
+ * ```ts
84
+ * // invoke an AWS Lambda function when a lifecycle event occurs:
85
+ * new CustomResource(this, 'MyResource', {
86
+ * serviceToken: myFunction.functionArn,
87
+ * });
88
+ * ```
89
+ *
90
+ * SNS topic (not recommended to use AWS Lambda Functions directly, see the
91
+ * module README):
92
+ *
93
+ * ```ts
94
+ * // publish lifecycle events to an SNS topic:
95
+ * new CustomResource(this, 'MyResource', {
96
+ * serviceToken: myTopic.topicArn,
97
+ * });
98
+ * ```
99
+ *
100
+ * Maps to [ServiceToken](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-customresource.html#cfn-cloudformation-customresource-servicetoken) property for the `AWS::CloudFormation::CustomResource` resource
101
+ * @stability stable
102
+ */
103
+ readonly serviceToken?: string;
104
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3B0aW9uYWxDdXN0b21SZXNvdXJjZVByb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dlbmVyYXRlZC1zdHJ1Y3RzL09wdGlvbmFsQ3VzdG9tUmVzb3VyY2VQcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gfn4gR2VuZXJhdGVkIGJ5IHByb2plbi4gVG8gbW9kaWZ5LCBlZGl0IC5wcm9qZW5yYy50cyBhbmQgcnVuIFwicG5wbSBkbHggcHJvamVuXCIuXG5pbXBvcnQgdHlwZSB7IER1cmF0aW9uLCBSZW1vdmFsUG9saWN5IH0gZnJvbSAnYXdzLWNkay1saWInO1xuXG4vKipcbiAqIE9wdGlvbmFsQ3VzdG9tUmVzb3VyY2VQcm9wc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIE9wdGlvbmFsQ3VzdG9tUmVzb3VyY2VQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSB0aW1lIHRoYXQgY2FuIGVsYXBzZSBiZWZvcmUgYSBjdXN0b20gcmVzb3VyY2Ugb3BlcmF0aW9uIHRpbWVzIG91dC5cbiAgICogVGhlIHZhbHVlIG11c3QgYmUgYmV0d2VlbiAxIHNlY29uZCBhbmQgMzYwMCBzZWNvbmRzLlxuICAgKlxuICAgKiBNYXBzIHRvIFtTZXJ2aWNlVGltZW91dF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWNsb3VkZm9ybWF0aW9uLWN1c3RvbXJlc291cmNlLmh0bWwjY2ZuLWNsb3VkZm9ybWF0aW9uLWN1c3RvbXJlc291cmNlLXNlcnZpY2V0aW1lb3V0KSBwcm9wZXJ0eSBmb3IgdGhlIGBBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZWAgcmVzb3VyY2VcbiAgICpcbiAgICogQSB0b2tlbiBjYW4gYmUgc3BlY2lmaWVkIGZvciB0aGlzIHByb3BlcnR5LCBidXQgaXQgbXVzdCBiZSBzcGVjaWZpZWQgd2l0aCBgRHVyYXRpb24uc2Vjb25kcygpYC5cbiAgICogQGRlZmF1bHQgRHVyYXRpb24uc2Vjb25kcygzNjAwKVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZVRpbWVvdXQ/OiBEdXJhdGlvbjtcbiAgLyoqXG4gICAqIEZvciBjdXN0b20gcmVzb3VyY2VzLCB5b3UgY2FuIHNwZWNpZnkgQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UgKHRoZSBkZWZhdWx0KSBhcyB0aGUgcmVzb3VyY2UgdHlwZSwgb3IgeW91IGNhbiBzcGVjaWZ5IHlvdXIgb3duIHJlc291cmNlIHR5cGUgbmFtZS5cbiAgICogRm9yIGV4YW1wbGUsIHlvdSBjYW4gdXNlIFwiQ3VzdG9tOjpNeUN1c3RvbVJlc291cmNlVHlwZU5hbWVcIi5cbiAgICpcbiAgICogQ3VzdG9tIHJlc291cmNlIHR5cGUgbmFtZXMgbXVzdCBiZWdpbiB3aXRoIFwiQ3VzdG9tOjpcIiBhbmQgY2FuIGluY2x1ZGVcbiAgICogYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgYW5kIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyczogX0AtLiBZb3UgY2FuIHNwZWNpZnlcbiAgICogYSBjdXN0b20gcmVzb3VyY2UgdHlwZSBuYW1lIHVwIHRvIGEgbWF4aW11bSBsZW5ndGggb2YgNjAgY2hhcmFjdGVycy4gWW91XG4gICAqIGNhbm5vdCBjaGFuZ2UgdGhlIHR5cGUgZHVyaW5nIGFuIHVwZGF0ZS5cbiAgICpcbiAgICogVXNpbmcgeW91ciBvd24gcmVzb3VyY2UgdHlwZSBuYW1lcyBoZWxwcyB5b3UgcXVpY2tseSBkaWZmZXJlbnRpYXRlIHRoZVxuICAgKiB0eXBlcyBvZiBjdXN0b20gcmVzb3VyY2VzIGluIHlvdXIgc3RhY2suIEZvciBleGFtcGxlLCBpZiB5b3UgaGFkIHR3byBjdXN0b21cbiAgICogcmVzb3VyY2VzIHRoYXQgY29uZHVjdCB0d28gZGlmZmVyZW50IHBpbmcgdGVzdHMsIHlvdSBjb3VsZCBuYW1lIHRoZWlyIHR5cGVcbiAgICogYXMgQ3VzdG9tOjpQaW5nVGVzdGVyIHRvIG1ha2UgdGhlbSBlYXNpbHkgaWRlbnRpZmlhYmxlIGFzIHBpbmcgdGVzdGVyc1xuICAgKiAoaW5zdGVhZCBvZiB1c2luZyBBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZSkuXG4gICAqIEBkZWZhdWx0IC0gQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2VcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlVHlwZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBwb2xpY3kgdG8gYXBwbHkgd2hlbiB0aGlzIHJlc291cmNlIGlzIHJlbW92ZWQgZnJvbSB0aGUgYXBwbGljYXRpb24uXG4gICAqIEBkZWZhdWx0IGNkay5SZW1vdmFsUG9saWN5LkRlc3Ryb3lcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHJlbW92YWxQb2xpY3k/OiBSZW1vdmFsUG9saWN5O1xuICAvKipcbiAgICogUHJvcGVydGllcyB0byBwYXNzIHRvIHRoZSBMYW1iZGEuXG4gICAqIFZhbHVlcyBpbiB0aGlzIGBwcm9wZXJ0aWVzYCBkaWN0aW9uYXJ5IGNhbiBwb3NzaWJseSBvdmVyd3JpdGUgb3RoZXIgdmFsdWVzIGluIGBDdXN0b21SZXNvdXJjZVByb3BzYFxuICAgKiBFLmcuIGBTZXJ2aWNlVG9rZW5gIGFuZCBgU2VydmljZVRpbWVvdXRgXG4gICAqIEl0IGlzIHJlY29tbWVuZGVkIHRvIGF2b2lkIHVzaW5nIHNhbWUga2V5cyB0aGF0IGV4aXN0IGluIGBDdXN0b21SZXNvdXJjZVByb3BzYFxuICAgKiBAZGVmYXVsdCAtIE5vIHByb3BlcnRpZXMuXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBwcm9wZXJ0aWVzPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgLyoqXG4gICAqIENvbnZlcnQgYWxsIHByb3BlcnR5IGtleXMgdG8gcGFzY2FsIGNhc2UuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBwYXNjYWxDYXNlUHJvcGVydGllcz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBwcm92aWRlciB3aGljaCBpbXBsZW1lbnRzIHRoaXMgY3VzdG9tIHJlc291cmNlIHR5cGUuXG4gICAqIFlvdSBjYW4gaW1wbGVtZW50IGEgcHJvdmlkZXIgYnkgbGlzdGVuaW5nIHRvIHJhdyBBV1MgQ2xvdWRGb3JtYXRpb24gZXZlbnRzXG4gICAqIGFuZCBzcGVjaWZ5IHRoZSBBUk4gb2YgYW4gU05TIHRvcGljIChgdG9waWMudG9waWNBcm5gKSBvciB0aGUgQVJOIG9mIGFuIEFXU1xuICAgKiBMYW1iZGEgZnVuY3Rpb24gKGBsYW1iZGEuZnVuY3Rpb25Bcm5gKSBvciB1c2UgdGhlIENESydzIGN1c3RvbSBbcmVzb3VyY2VcbiAgICogcHJvdmlkZXIgZnJhbWV3b3JrXSB3aGljaCBtYWtlcyBpdCBlYXNpZXIgdG8gaW1wbGVtZW50IHJvYnVzdCBwcm92aWRlcnMuXG4gICAqXG4gICAqIFtyZXNvdXJjZSBwcm92aWRlciBmcmFtZXdvcmtdOlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2RrL2FwaS9sYXRlc3QvZG9jcy9jdXN0b20tcmVzb3VyY2VzLXJlYWRtZS5odG1sXG4gICAqXG4gICAqIFByb3ZpZGVyIGZyYW1ld29yazpcbiAgICpcbiAgICogYGBgdHNcbiAgICogLy8gdXNlIHRoZSBwcm92aWRlciBmcmFtZXdvcmsgZnJvbSBhd3MtY2RrL2N1c3RvbS1yZXNvdXJjZXM6XG4gICAqIGNvbnN0IHByb3ZpZGVyID0gbmV3IGN1c3RvbXJlc291cmNlcy5Qcm92aWRlcih0aGlzLCAnUmVzb3VyY2VQcm92aWRlcicsIHtcbiAgICogICBvbkV2ZW50SGFuZGxlcixcbiAgICogICBpc0NvbXBsZXRlSGFuZGxlciwgLy8gb3B0aW9uYWxcbiAgICogfSk7XG4gICAqXG4gICAqIG5ldyBDdXN0b21SZXNvdXJjZSh0aGlzLCAnTXlSZXNvdXJjZScsIHtcbiAgICogICBzZXJ2aWNlVG9rZW46IHByb3ZpZGVyLnNlcnZpY2VUb2tlbixcbiAgICogfSk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBBV1MgTGFtYmRhIGZ1bmN0aW9uIChub3QgcmVjb21tZW5kZWQgdG8gdXNlIEFXUyBMYW1iZGEgRnVuY3Rpb25zIGRpcmVjdGx5LFxuICAgKiBzZWUgdGhlIG1vZHVsZSBSRUFETUUpOlxuICAgKlxuICAgKiBgYGB0c1xuICAgKiAvLyBpbnZva2UgYW4gQVdTIExhbWJkYSBmdW5jdGlvbiB3aGVuIGEgbGlmZWN5Y2xlIGV2ZW50IG9jY3VyczpcbiAgICogbmV3IEN1c3RvbVJlc291cmNlKHRoaXMsICdNeVJlc291cmNlJywge1xuICAgKiAgIHNlcnZpY2VUb2tlbjogbXlGdW5jdGlvbi5mdW5jdGlvbkFybixcbiAgICogfSk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBTTlMgdG9waWMgKG5vdCByZWNvbW1lbmRlZCB0byB1c2UgQVdTIExhbWJkYSBGdW5jdGlvbnMgZGlyZWN0bHksIHNlZSB0aGVcbiAgICogbW9kdWxlIFJFQURNRSk6XG4gICAqXG4gICAqIGBgYHRzXG4gICAqIC8vIHB1Ymxpc2ggbGlmZWN5Y2xlIGV2ZW50cyB0byBhbiBTTlMgdG9waWM6XG4gICAqIG5ldyBDdXN0b21SZXNvdXJjZSh0aGlzLCAnTXlSZXNvdXJjZScsIHtcbiAgICogICBzZXJ2aWNlVG9rZW46IG15VG9waWMudG9waWNBcm4sXG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICpcbiAgICogTWFwcyB0byBbU2VydmljZVRva2VuXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtY2xvdWRmb3JtYXRpb24tY3VzdG9tcmVzb3VyY2UuaHRtbCNjZm4tY2xvdWRmb3JtYXRpb24tY3VzdG9tcmVzb3VyY2Utc2VydmljZXRva2VuKSBwcm9wZXJ0eSBmb3IgdGhlIGBBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZWAgcmVzb3VyY2VcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VUb2tlbj86IHN0cmluZztcbn1cbiJdfQ==
@@ -47,6 +47,27 @@ export interface OptionalDockerImageAssetProps {
47
47
  * @stability stable
48
48
  */
49
49
  readonly file?: string;
50
+ /**
51
+ * A display name for this asset.
52
+ * If supplied, the display name will be used in locations where the asset
53
+ * identifier is printed, like in the CLI progress information. If the same
54
+ * asset is added multiple times, the display name of the first occurrence is
55
+ * used.
56
+ *
57
+ * If `assetName` is given, it will also be used as the default `displayName`.
58
+ * Otherwise, the default is the construct path of the ImageAsset construct,
59
+ * with respect to the enclosing stack. If the asset is produced by a
60
+ * construct helper function (such as `lambda.Code.fromAssetImage()`), this
61
+ * will look like `MyFunction/AssetImage`.
62
+ *
63
+ * We use the stack-relative construct path so that in the common case where
64
+ * you have multiple stacks with the same asset, we won't show something like
65
+ * `/MyBetaStack/MyFunction/Code` when you are actually deploying to
66
+ * production.
67
+ * @default - Stack-relative construct path
68
+ * @stability stable
69
+ */
70
+ readonly displayName?: string;
50
71
  /**
51
72
  * Cache to options to pass to the `docker build` command.
52
73
  * @default - no cache to options are passed to the build command
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3B0aW9uYWxEb2NrZXJJbWFnZUFzc2V0UHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxEb2NrZXJJbWFnZUFzc2V0UHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vIH5+IEdlbmVyYXRlZCBieSBwcm9qZW4uIFRvIG1vZGlmeSwgZWRpdCAucHJvamVucmMudHMgYW5kIHJ1biBcInBucG0gZGx4IHByb2plblwiLlxuaW1wb3J0IHR5cGUgeyBhd3NfZWNyX2Fzc2V0cywgSWdub3JlTW9kZSwgU3ltbGlua0ZvbGxvd01vZGUgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5cbi8qKlxuICogT3B0aW9uYWxEb2NrZXJJbWFnZUFzc2V0UHJvcHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcHRpb25hbERvY2tlckltYWdlQXNzZXRQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgZGlyZWN0b3J5IHdoZXJlIHRoZSBEb2NrZXJmaWxlIGlzIHN0b3JlZC5cbiAgICogQW55IGRpcmVjdG9yeSBpbnNpZGUgd2l0aCBhIG5hbWUgdGhhdCBtYXRjaGVzIHRoZSBDREsgb3V0cHV0IGZvbGRlciAoY2RrLm91dCBieSBkZWZhdWx0KSB3aWxsIGJlIGV4Y2x1ZGVkIGZyb20gdGhlIGFzc2V0XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBkaXJlY3Rvcnk/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEb2NrZXIgdGFyZ2V0IHRvIGJ1aWxkIHRvLlxuICAgKiBAZGVmYXVsdCAtIG5vIHRhcmdldFxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0Pzogc3RyaW5nO1xuICAvKipcbiAgICogUGxhdGZvcm0gdG8gYnVpbGQgZm9yLlxuICAgKiBfUmVxdWlyZXMgRG9ja2VyIEJ1aWxkeF8uXG4gICAqIEBkZWZhdWx0IC0gbm8gcGxhdGZvcm0gc3BlY2lmaWVkICh0aGUgY3VycmVudCBtYWNoaW5lIGFyY2hpdGVjdHVyZSB3aWxsIGJlIHVzZWQpXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBwbGF0Zm9ybT86IGF3c19lY3JfYXNzZXRzLlBsYXRmb3JtO1xuICAvKipcbiAgICogT3V0cHV0cyB0byBwYXNzIHRvIHRoZSBgZG9ja2VyIGJ1aWxkYCBjb21tYW5kLlxuICAgKiBAZGVmYXVsdCAtIG5vIG91dHB1dHMgYXJlIHBhc3NlZCB0byB0aGUgYnVpbGQgY29tbWFuZCAoZGVmYXVsdCBvdXRwdXRzIGFyZSB1c2VkKVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0cz86IEFycmF5PHN0cmluZz47XG4gIC8qKlxuICAgKiBOZXR3b3JraW5nIG1vZGUgZm9yIHRoZSBSVU4gY29tbWFuZHMgZHVyaW5nIGJ1aWxkLlxuICAgKiBTdXBwb3J0IGRvY2tlciBBUEkgMS4yNSsuXG4gICAqIEBkZWZhdWx0IC0gbm8gbmV0d29ya2luZyBtb2RlIHNwZWNpZmllZCAodGhlIGRlZmF1bHQgbmV0d29ya2luZyBtb2RlIGBOZXR3b3JrTW9kZS5ERUZBVUxUYCB3aWxsIGJlIHVzZWQpXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBuZXR3b3JrTW9kZT86IGF3c19lY3JfYXNzZXRzLk5ldHdvcmtNb2RlO1xuICAvKipcbiAgICogT3B0aW9ucyB0byBjb250cm9sIHdoaWNoIHBhcmFtZXRlcnMgYXJlIHVzZWQgdG8gaW52YWxpZGF0ZSB0aGUgYXNzZXQgaGFzaC5cbiAgICogQGRlZmF1bHQgLSBoYXNoIGFsbCBwYXJhbWV0ZXJzXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBpbnZhbGlkYXRpb24/OiBhd3NfZWNyX2Fzc2V0cy5Eb2NrZXJJbWFnZUFzc2V0SW52YWxpZGF0aW9uT3B0aW9ucztcbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIERvY2tlcmZpbGUgKHJlbGF0aXZlIHRvIHRoZSBkaXJlY3RvcnkpLlxuICAgKiBAZGVmYXVsdCAnRG9ja2VyZmlsZSdcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGZpbGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDYWNoZSB0byBvcHRpb25zIHRvIHBhc3MgdG8gdGhlIGBkb2NrZXIgYnVpbGRgIGNvbW1hbmQuXG4gICAqIEBkZWZhdWx0IC0gbm8gY2FjaGUgdG8gb3B0aW9ucyBhcmUgcGFzc2VkIHRvIHRoZSBidWlsZCBjb21tYW5kXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBjYWNoZVRvPzogYXdzX2Vjcl9hc3NldHMuRG9ja2VyQ2FjaGVPcHRpb247XG4gIC8qKlxuICAgKiBDYWNoZSBmcm9tIG9wdGlvbnMgdG8gcGFzcyB0byB0aGUgYGRvY2tlciBidWlsZGAgY29tbWFuZC5cbiAgICogQGRlZmF1bHQgLSBubyBjYWNoZSBmcm9tIG9wdGlvbnMgYXJlIHBhc3NlZCB0byB0aGUgYnVpbGQgY29tbWFuZFxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgY2FjaGVGcm9tPzogQXJyYXk8YXdzX2Vjcl9hc3NldHMuRG9ja2VyQ2FjaGVPcHRpb24+O1xuICAvKipcbiAgICogRGlzYWJsZSB0aGUgY2FjaGUgYW5kIHBhc3MgYC0tbm8tY2FjaGVgIHRvIHRoZSBgZG9ja2VyIGJ1aWxkYCBjb21tYW5kLlxuICAgKiBAZGVmYXVsdCAtIGNhY2hlIGlzIHVzZWRcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGNhY2hlRGlzYWJsZWQ/OiBib29sZWFuO1xuICAvKipcbiAgICogU1NIIGFnZW50IHNvY2tldCBvciBrZXlzIHRvIHBhc3MgdG8gdGhlIGBkb2NrZXIgYnVpbGRgIGNvbW1hbmQuXG4gICAqIERvY2tlciBCdWlsZEtpdCBtdXN0IGJlIGVuYWJsZWQgdG8gdXNlIHRoZSBzc2ggZmxhZ1xuICAgKiBAZGVmYXVsdCAtIG5vIC0tc3NoIGZsYWdcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkU3NoPzogc3RyaW5nO1xuICAvKipcbiAgICogQnVpbGQgc2VjcmV0cy5cbiAgICogRG9ja2VyIEJ1aWxkS2l0IG11c3QgYmUgZW5hYmxlZCB0byB1c2UgYnVpbGQgc2VjcmV0cy5cbiAgICogQGRlZmF1bHQgLSBubyBidWlsZCBzZWNyZXRzXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBidWlsZFNlY3JldHM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAvKipcbiAgICogQnVpbGQgYXJncyB0byBwYXNzIHRvIHRoZSBgZG9ja2VyIGJ1aWxkYCBjb21tYW5kLlxuICAgKiBTaW5jZSBEb2NrZXIgYnVpbGQgYXJndW1lbnRzIGFyZSByZXNvbHZlZCBiZWZvcmUgZGVwbG95bWVudCwga2V5cyBhbmRcbiAgICogdmFsdWVzIGNhbm5vdCByZWZlciB0byB1bnJlc29sdmVkIHRva2VucyAoc3VjaCBhcyBgbGFtYmRhLmZ1bmN0aW9uQXJuYCBvclxuICAgKiBgcXVldWUucXVldWVVcmxgKS5cbiAgICogQGRlZmF1bHQgLSBubyBidWlsZCBhcmdzIGFyZSBwYXNzZWRcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkQXJncz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIC8qKlxuICAgKiBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgZG9ja2VyIGltYWdlIGFzc2V0IGFuZCBpdHMgcG90ZW50aWFsIHJldmlzaW9ucy5cbiAgICogUmVxdWlyZWQgaWYgdXNpbmcgQXBwU2NvcGVkU3RhZ2luZ1N5bnRoZXNpemVyLlxuICAgKiBAZGVmYXVsdCAtIG5vIGFzc2V0IG5hbWVcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0TmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEV4dHJhIGluZm9ybWF0aW9uIHRvIGVuY29kZSBpbnRvIHRoZSBmaW5nZXJwcmludCAoZS5nLiBidWlsZCBpbnN0cnVjdGlvbnMgYW5kIG90aGVyIGlucHV0cykuXG4gICAqIEBkZWZhdWx0IC0gaGFzaCBpcyBvbmx5IGJhc2VkIG9uIHNvdXJjZSBjb250ZW50XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBleHRyYUhhc2g/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgaWdub3JlIGJlaGF2aW9yIHRvIHVzZSBmb3IgYGV4Y2x1ZGVgIHBhdHRlcm5zLlxuICAgKiBAZGVmYXVsdCBJZ25vcmVNb2RlLkdMT0JcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGlnbm9yZU1vZGU/OiBJZ25vcmVNb2RlO1xuICAvKipcbiAgICogQSBzdHJhdGVneSBmb3IgaG93IHRvIGhhbmRsZSBzeW1saW5rcy5cbiAgICogQGRlZmF1bHQgU3ltbGlua0ZvbGxvd01vZGUuTkVWRVJcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGZvbGxvd1N5bWxpbmtzPzogU3ltbGlua0ZvbGxvd01vZGU7XG4gIC8qKlxuICAgKiBGaWxlIHBhdGhzIG1hdGNoaW5nIHRoZSBwYXR0ZXJucyB3aWxsIGJlIGV4Y2x1ZGVkLlxuICAgKiBTZWUgYGlnbm9yZU1vZGVgIHRvIHNldCB0aGUgbWF0Y2hpbmcgYmVoYXZpb3IuXG4gICAqIEhhcyBubyBlZmZlY3Qgb24gQXNzZXRzIGJ1bmRsZWQgdXNpbmcgdGhlIGBidW5kbGluZ2AgcHJvcGVydHkuXG4gICAqIEBkZWZhdWx0IC0gbm90aGluZyBpcyBleGNsdWRlZFxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhjbHVkZT86IEFycmF5PHN0cmluZz47XG59XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3B0aW9uYWxEb2NrZXJJbWFnZUFzc2V0UHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxEb2NrZXJJbWFnZUFzc2V0UHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vIH5+IEdlbmVyYXRlZCBieSBwcm9qZW4uIFRvIG1vZGlmeSwgZWRpdCAucHJvamVucmMudHMgYW5kIHJ1biBcInBucG0gZGx4IHByb2plblwiLlxuaW1wb3J0IHR5cGUgeyBhd3NfZWNyX2Fzc2V0cywgSWdub3JlTW9kZSwgU3ltbGlua0ZvbGxvd01vZGUgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5cbi8qKlxuICogT3B0aW9uYWxEb2NrZXJJbWFnZUFzc2V0UHJvcHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcHRpb25hbERvY2tlckltYWdlQXNzZXRQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgZGlyZWN0b3J5IHdoZXJlIHRoZSBEb2NrZXJmaWxlIGlzIHN0b3JlZC5cbiAgICogQW55IGRpcmVjdG9yeSBpbnNpZGUgd2l0aCBhIG5hbWUgdGhhdCBtYXRjaGVzIHRoZSBDREsgb3V0cHV0IGZvbGRlciAoY2RrLm91dCBieSBkZWZhdWx0KSB3aWxsIGJlIGV4Y2x1ZGVkIGZyb20gdGhlIGFzc2V0XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBkaXJlY3Rvcnk/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEb2NrZXIgdGFyZ2V0IHRvIGJ1aWxkIHRvLlxuICAgKiBAZGVmYXVsdCAtIG5vIHRhcmdldFxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0Pzogc3RyaW5nO1xuICAvKipcbiAgICogUGxhdGZvcm0gdG8gYnVpbGQgZm9yLlxuICAgKiBfUmVxdWlyZXMgRG9ja2VyIEJ1aWxkeF8uXG4gICAqIEBkZWZhdWx0IC0gbm8gcGxhdGZvcm0gc3BlY2lmaWVkICh0aGUgY3VycmVudCBtYWNoaW5lIGFyY2hpdGVjdHVyZSB3aWxsIGJlIHVzZWQpXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBwbGF0Zm9ybT86IGF3c19lY3JfYXNzZXRzLlBsYXRmb3JtO1xuICAvKipcbiAgICogT3V0cHV0cyB0byBwYXNzIHRvIHRoZSBgZG9ja2VyIGJ1aWxkYCBjb21tYW5kLlxuICAgKiBAZGVmYXVsdCAtIG5vIG91dHB1dHMgYXJlIHBhc3NlZCB0byB0aGUgYnVpbGQgY29tbWFuZCAoZGVmYXVsdCBvdXRwdXRzIGFyZSB1c2VkKVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0cz86IEFycmF5PHN0cmluZz47XG4gIC8qKlxuICAgKiBOZXR3b3JraW5nIG1vZGUgZm9yIHRoZSBSVU4gY29tbWFuZHMgZHVyaW5nIGJ1aWxkLlxuICAgKiBTdXBwb3J0IGRvY2tlciBBUEkgMS4yNSsuXG4gICAqIEBkZWZhdWx0IC0gbm8gbmV0d29ya2luZyBtb2RlIHNwZWNpZmllZCAodGhlIGRlZmF1bHQgbmV0d29ya2luZyBtb2RlIGBOZXR3b3JrTW9kZS5ERUZBVUxUYCB3aWxsIGJlIHVzZWQpXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBuZXR3b3JrTW9kZT86IGF3c19lY3JfYXNzZXRzLk5ldHdvcmtNb2RlO1xuICAvKipcbiAgICogT3B0aW9ucyB0byBjb250cm9sIHdoaWNoIHBhcmFtZXRlcnMgYXJlIHVzZWQgdG8gaW52YWxpZGF0ZSB0aGUgYXNzZXQgaGFzaC5cbiAgICogQGRlZmF1bHQgLSBoYXNoIGFsbCBwYXJhbWV0ZXJzXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBpbnZhbGlkYXRpb24/OiBhd3NfZWNyX2Fzc2V0cy5Eb2NrZXJJbWFnZUFzc2V0SW52YWxpZGF0aW9uT3B0aW9ucztcbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIERvY2tlcmZpbGUgKHJlbGF0aXZlIHRvIHRoZSBkaXJlY3RvcnkpLlxuICAgKiBAZGVmYXVsdCAnRG9ja2VyZmlsZSdcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGZpbGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBIGRpc3BsYXkgbmFtZSBmb3IgdGhpcyBhc3NldC5cbiAgICogSWYgc3VwcGxpZWQsIHRoZSBkaXNwbGF5IG5hbWUgd2lsbCBiZSB1c2VkIGluIGxvY2F0aW9ucyB3aGVyZSB0aGUgYXNzZXRcbiAgICogaWRlbnRpZmllciBpcyBwcmludGVkLCBsaWtlIGluIHRoZSBDTEkgcHJvZ3Jlc3MgaW5mb3JtYXRpb24uIElmIHRoZSBzYW1lXG4gICAqIGFzc2V0IGlzIGFkZGVkIG11bHRpcGxlIHRpbWVzLCB0aGUgZGlzcGxheSBuYW1lIG9mIHRoZSBmaXJzdCBvY2N1cnJlbmNlIGlzXG4gICAqIHVzZWQuXG4gICAqXG4gICAqIElmIGBhc3NldE5hbWVgIGlzIGdpdmVuLCBpdCB3aWxsIGFsc28gYmUgdXNlZCBhcyB0aGUgZGVmYXVsdCBgZGlzcGxheU5hbWVgLlxuICAgKiBPdGhlcndpc2UsIHRoZSBkZWZhdWx0IGlzIHRoZSBjb25zdHJ1Y3QgcGF0aCBvZiB0aGUgSW1hZ2VBc3NldCBjb25zdHJ1Y3QsXG4gICAqIHdpdGggcmVzcGVjdCB0byB0aGUgZW5jbG9zaW5nIHN0YWNrLiBJZiB0aGUgYXNzZXQgaXMgcHJvZHVjZWQgYnkgYVxuICAgKiBjb25zdHJ1Y3QgaGVscGVyIGZ1bmN0aW9uIChzdWNoIGFzIGBsYW1iZGEuQ29kZS5mcm9tQXNzZXRJbWFnZSgpYCksIHRoaXNcbiAgICogd2lsbCBsb29rIGxpa2UgYE15RnVuY3Rpb24vQXNzZXRJbWFnZWAuXG4gICAqXG4gICAqIFdlIHVzZSB0aGUgc3RhY2stcmVsYXRpdmUgY29uc3RydWN0IHBhdGggc28gdGhhdCBpbiB0aGUgY29tbW9uIGNhc2Ugd2hlcmVcbiAgICogeW91IGhhdmUgbXVsdGlwbGUgc3RhY2tzIHdpdGggdGhlIHNhbWUgYXNzZXQsIHdlIHdvbid0IHNob3cgc29tZXRoaW5nIGxpa2VcbiAgICogYC9NeUJldGFTdGFjay9NeUZ1bmN0aW9uL0NvZGVgIHdoZW4geW91IGFyZSBhY3R1YWxseSBkZXBsb3lpbmcgdG9cbiAgICogcHJvZHVjdGlvbi5cbiAgICogQGRlZmF1bHQgLSBTdGFjay1yZWxhdGl2ZSBjb25zdHJ1Y3QgcGF0aFxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgZGlzcGxheU5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDYWNoZSB0byBvcHRpb25zIHRvIHBhc3MgdG8gdGhlIGBkb2NrZXIgYnVpbGRgIGNvbW1hbmQuXG4gICAqIEBkZWZhdWx0IC0gbm8gY2FjaGUgdG8gb3B0aW9ucyBhcmUgcGFzc2VkIHRvIHRoZSBidWlsZCBjb21tYW5kXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBjYWNoZVRvPzogYXdzX2Vjcl9hc3NldHMuRG9ja2VyQ2FjaGVPcHRpb247XG4gIC8qKlxuICAgKiBDYWNoZSBmcm9tIG9wdGlvbnMgdG8gcGFzcyB0byB0aGUgYGRvY2tlciBidWlsZGAgY29tbWFuZC5cbiAgICogQGRlZmF1bHQgLSBubyBjYWNoZSBmcm9tIG9wdGlvbnMgYXJlIHBhc3NlZCB0byB0aGUgYnVpbGQgY29tbWFuZFxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgY2FjaGVGcm9tPzogQXJyYXk8YXdzX2Vjcl9hc3NldHMuRG9ja2VyQ2FjaGVPcHRpb24+O1xuICAvKipcbiAgICogRGlzYWJsZSB0aGUgY2FjaGUgYW5kIHBhc3MgYC0tbm8tY2FjaGVgIHRvIHRoZSBgZG9ja2VyIGJ1aWxkYCBjb21tYW5kLlxuICAgKiBAZGVmYXVsdCAtIGNhY2hlIGlzIHVzZWRcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGNhY2hlRGlzYWJsZWQ/OiBib29sZWFuO1xuICAvKipcbiAgICogU1NIIGFnZW50IHNvY2tldCBvciBrZXlzIHRvIHBhc3MgdG8gdGhlIGBkb2NrZXIgYnVpbGRgIGNvbW1hbmQuXG4gICAqIERvY2tlciBCdWlsZEtpdCBtdXN0IGJlIGVuYWJsZWQgdG8gdXNlIHRoZSBzc2ggZmxhZ1xuICAgKiBAZGVmYXVsdCAtIG5vIC0tc3NoIGZsYWdcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkU3NoPzogc3RyaW5nO1xuICAvKipcbiAgICogQnVpbGQgc2VjcmV0cy5cbiAgICogRG9ja2VyIEJ1aWxkS2l0IG11c3QgYmUgZW5hYmxlZCB0byB1c2UgYnVpbGQgc2VjcmV0cy5cbiAgICogQGRlZmF1bHQgLSBubyBidWlsZCBzZWNyZXRzXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBidWlsZFNlY3JldHM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAvKipcbiAgICogQnVpbGQgYXJncyB0byBwYXNzIHRvIHRoZSBgZG9ja2VyIGJ1aWxkYCBjb21tYW5kLlxuICAgKiBTaW5jZSBEb2NrZXIgYnVpbGQgYXJndW1lbnRzIGFyZSByZXNvbHZlZCBiZWZvcmUgZGVwbG95bWVudCwga2V5cyBhbmRcbiAgICogdmFsdWVzIGNhbm5vdCByZWZlciB0byB1bnJlc29sdmVkIHRva2VucyAoc3VjaCBhcyBgbGFtYmRhLmZ1bmN0aW9uQXJuYCBvclxuICAgKiBgcXVldWUucXVldWVVcmxgKS5cbiAgICogQGRlZmF1bHQgLSBubyBidWlsZCBhcmdzIGFyZSBwYXNzZWRcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkQXJncz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIC8qKlxuICAgKiBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgZG9ja2VyIGltYWdlIGFzc2V0IGFuZCBpdHMgcG90ZW50aWFsIHJldmlzaW9ucy5cbiAgICogUmVxdWlyZWQgaWYgdXNpbmcgQXBwU2NvcGVkU3RhZ2luZ1N5bnRoZXNpemVyLlxuICAgKiBAZGVmYXVsdCAtIG5vIGFzc2V0IG5hbWVcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0TmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEV4dHJhIGluZm9ybWF0aW9uIHRvIGVuY29kZSBpbnRvIHRoZSBmaW5nZXJwcmludCAoZS5nLiBidWlsZCBpbnN0cnVjdGlvbnMgYW5kIG90aGVyIGlucHV0cykuXG4gICAqIEBkZWZhdWx0IC0gaGFzaCBpcyBvbmx5IGJhc2VkIG9uIHNvdXJjZSBjb250ZW50XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBleHRyYUhhc2g/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgaWdub3JlIGJlaGF2aW9yIHRvIHVzZSBmb3IgYGV4Y2x1ZGVgIHBhdHRlcm5zLlxuICAgKiBAZGVmYXVsdCBJZ25vcmVNb2RlLkdMT0JcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGlnbm9yZU1vZGU/OiBJZ25vcmVNb2RlO1xuICAvKipcbiAgICogQSBzdHJhdGVneSBmb3IgaG93IHRvIGhhbmRsZSBzeW1saW5rcy5cbiAgICogQGRlZmF1bHQgU3ltbGlua0ZvbGxvd01vZGUuTkVWRVJcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGZvbGxvd1N5bWxpbmtzPzogU3ltbGlua0ZvbGxvd01vZGU7XG4gIC8qKlxuICAgKiBGaWxlIHBhdGhzIG1hdGNoaW5nIHRoZSBwYXR0ZXJucyB3aWxsIGJlIGV4Y2x1ZGVkLlxuICAgKiBTZWUgYGlnbm9yZU1vZGVgIHRvIHNldCB0aGUgbWF0Y2hpbmcgYmVoYXZpb3IuXG4gICAqIEhhcyBubyBlZmZlY3Qgb24gQXNzZXRzIGJ1bmRsZWQgdXNpbmcgdGhlIGBidW5kbGluZ2AgcHJvcGVydHkuXG4gICAqIEBkZWZhdWx0IC0gbm90aGluZyBpcyBleGNsdWRlZFxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhjbHVkZT86IEFycmF5PHN0cmluZz47XG59XG4iXX0=
@@ -12,8 +12,9 @@ export interface OptionalNextjsAssetsDeploymentProps {
12
12
  /**
13
13
  * @stability stable
14
14
  */
15
- readonly relativePathToWorkspace?: string;
15
+ readonly relativePathToPackage?: string;
16
16
  /**
17
+ * If true, logs details in custom resource lambda.
17
18
  * @default true
18
19
  * @stability stable
19
20
  */
@@ -38,11 +39,11 @@ export interface OptionalNextjsAssetsDeploymentProps {
38
39
  /**
39
40
  * @stability stable
40
41
  */
41
- readonly containerMountPathForEfs?: string;
42
+ readonly buildImageDigest?: string;
42
43
  /**
43
44
  * @stability stable
44
45
  */
45
- readonly buildImageDigest?: string;
46
+ readonly buildId?: string;
46
47
  /**
47
48
  * @stability stable
48
49
  */
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3B0aW9uYWxOZXh0anNBc3NldHNEZXBsb3ltZW50UHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxOZXh0anNBc3NldHNEZXBsb3ltZW50UHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vIH5+IEdlbmVyYXRlZCBieSBwcm9qZW4uIFRvIG1vZGlmeSwgZWRpdCAucHJvamVucmMudHMgYW5kIHJ1biBcInBucG0gZGx4IHByb2plblwiLlxuaW1wb3J0IHR5cGUgeyBhd3NfZWMyLCBhd3NfZWZzLCBhd3NfbGFtYmRhLCBhd3NfczMgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgdHlwZSB7IE5leHRqc1R5cGUgfSBmcm9tICcuLi8nO1xuXG4vKipcbiAqIE9wdGlvbmFsTmV4dGpzQXNzZXRzRGVwbG95bWVudFByb3BzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3B0aW9uYWxOZXh0anNBc3NldHNEZXBsb3ltZW50UHJvcHMge1xuICAvKipcbiAgICogUmVxdWlyZWQgZm9yIGBOZXh0anNUeXBlLkdsb2JhbEZ1bmN0aW9uc2AgYW5kIGBOZXh0anNUeXBlLkdsb2JhbENvbnRhaW5lcnNgLlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdGljQXNzZXRzQnVja2V0PzogYXdzX3MzLkJ1Y2tldDtcbiAgLyoqXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSByZWxhdGl2ZVBhdGhUb1dvcmtzcGFjZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGRlYnVnPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFByZWZpeCB0byB0aGUgVVJJIHBhdGggdGhlIGFwcCB3aWxsIGJlIHNlcnZlZCBhdC5cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGJhc2VQYXRoPzogc3RyaW5nO1xuICAvKipcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHZwYz86IGF3c19lYzIuSVZwYztcbiAgLyoqXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBuZXh0anNUeXBlPzogTmV4dGpzVHlwZTtcbiAgLyoqXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBkb2NrZXJJbWFnZUNvZGU/OiBhd3NfbGFtYmRhLkRvY2tlckltYWdlQ29kZTtcbiAgLyoqXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBjb250YWluZXJNb3VudFBhdGhGb3JFZnM/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRJbWFnZURpZ2VzdD86IHN0cmluZztcbiAgLyoqXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBhY2Nlc3NQb2ludD86IGF3c19lZnMuQWNjZXNzUG9pbnQ7XG59XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3B0aW9uYWxOZXh0anNBc3NldHNEZXBsb3ltZW50UHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxOZXh0anNBc3NldHNEZXBsb3ltZW50UHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vIH5+IEdlbmVyYXRlZCBieSBwcm9qZW4uIFRvIG1vZGlmeSwgZWRpdCAucHJvamVucmMudHMgYW5kIHJ1biBcInBucG0gZGx4IHByb2plblwiLlxuaW1wb3J0IHR5cGUgeyBhd3NfZWMyLCBhd3NfZWZzLCBhd3NfbGFtYmRhLCBhd3NfczMgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgdHlwZSB7IE5leHRqc1R5cGUgfSBmcm9tICcuLi8nO1xuXG4vKipcbiAqIE9wdGlvbmFsTmV4dGpzQXNzZXRzRGVwbG95bWVudFByb3BzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3B0aW9uYWxOZXh0anNBc3NldHNEZXBsb3ltZW50UHJvcHMge1xuICAvKipcbiAgICogUmVxdWlyZWQgZm9yIGBOZXh0anNUeXBlLkdsb2JhbEZ1bmN0aW9uc2AgYW5kIGBOZXh0anNUeXBlLkdsb2JhbENvbnRhaW5lcnNgLlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdGljQXNzZXRzQnVja2V0PzogYXdzX3MzLkJ1Y2tldDtcbiAgLyoqXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSByZWxhdGl2ZVBhdGhUb1BhY2thZ2U/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJZiB0cnVlLCBsb2dzIGRldGFpbHMgaW4gY3VzdG9tIHJlc291cmNlIGxhbWJkYS5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVidWc/OiBib29sZWFuO1xuICAvKipcbiAgICogUHJlZml4IHRvIHRoZSBVUkkgcGF0aCB0aGUgYXBwIHdpbGwgYmUgc2VydmVkIGF0LlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgYmFzZVBhdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgdnBjPzogYXdzX2VjMi5JVnBjO1xuICAvKipcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IG5leHRqc1R5cGU/OiBOZXh0anNUeXBlO1xuICAvKipcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGRvY2tlckltYWdlQ29kZT86IGF3c19sYW1iZGEuRG9ja2VySW1hZ2VDb2RlO1xuICAvKipcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkSW1hZ2VEaWdlc3Q/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRJZD86IHN0cmluZztcbiAgLyoqXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBhY2Nlc3NQb2ludD86IGF3c19lZnMuQWNjZXNzUG9pbnQ7XG59XG4iXX0=
@@ -6,7 +6,7 @@ export interface OptionalNextjsBuildProps {
6
6
  /**
7
7
  * @stability stable
8
8
  */
9
- readonly relativePathToWorkspace?: string;
9
+ readonly relativePathToPackage?: string;
10
10
  /**
11
11
  * @stability stable
12
12
  */
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3B0aW9uYWxOZXh0anNCdWlsZFByb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dlbmVyYXRlZC1zdHJ1Y3RzL09wdGlvbmFsTmV4dGpzQnVpbGRQcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gfn4gR2VuZXJhdGVkIGJ5IHByb2plbi4gVG8gbW9kaWZ5LCBlZGl0IC5wcm9qZW5yYy50cyBhbmQgcnVuIFwicG5wbSBkbHggcHJvamVuXCIuXG5pbXBvcnQgdHlwZSB7IEJ1aWxkZXJJbWFnZVByb3BzLCBOZXh0anNUeXBlIH0gZnJvbSAnLi4vJztcblxuLyoqXG4gKiBPcHRpb25hbE5leHRqc0J1aWxkUHJvcHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcHRpb25hbE5leHRqc0J1aWxkUHJvcHMge1xuICAvKipcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHJlbGF0aXZlUGF0aFRvV29ya3NwYWNlPzogc3RyaW5nO1xuICAvKipcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkZXJJbWFnZVByb3BzPzogQnVpbGRlckltYWdlUHJvcHM7XG4gIC8qKlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRDb21tYW5kPzogc3RyaW5nO1xuICAvKipcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IG5leHRqc1R5cGU/OiBOZXh0anNUeXBlO1xuICAvKipcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkQ29udGV4dD86IHN0cmluZztcbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3B0aW9uYWxOZXh0anNCdWlsZFByb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dlbmVyYXRlZC1zdHJ1Y3RzL09wdGlvbmFsTmV4dGpzQnVpbGRQcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gfn4gR2VuZXJhdGVkIGJ5IHByb2plbi4gVG8gbW9kaWZ5LCBlZGl0IC5wcm9qZW5yYy50cyBhbmQgcnVuIFwicG5wbSBkbHggcHJvamVuXCIuXG5pbXBvcnQgdHlwZSB7IEJ1aWxkZXJJbWFnZVByb3BzLCBOZXh0anNUeXBlIH0gZnJvbSAnLi4vJztcblxuLyoqXG4gKiBPcHRpb25hbE5leHRqc0J1aWxkUHJvcHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcHRpb25hbE5leHRqc0J1aWxkUHJvcHMge1xuICAvKipcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHJlbGF0aXZlUGF0aFRvUGFja2FnZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBidWlsZGVySW1hZ2VQcm9wcz86IEJ1aWxkZXJJbWFnZVByb3BzO1xuICAvKipcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkQ29tbWFuZD86IHN0cmluZztcbiAgLyoqXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBuZXh0anNUeXBlPzogTmV4dGpzVHlwZTtcbiAgLyoqXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBidWlsZENvbnRleHQ/OiBzdHJpbmc7XG59XG4iXX0=
@@ -23,15 +23,15 @@ export interface OptionalNextjsContainersProps {
23
23
  /**
24
24
  * @stability stable
25
25
  */
26
- readonly vpc?: aws_ec2.IVpc;
26
+ readonly buildId?: string;
27
27
  /**
28
28
  * @stability stable
29
29
  */
30
- readonly healthCheckPath?: string;
30
+ readonly vpc?: aws_ec2.IVpc;
31
31
  /**
32
32
  * @stability stable
33
33
  */
34
- readonly containerMountPathForEfs?: string;
34
+ readonly healthCheckPath?: string;
35
35
  /**
36
36
  * @stability stable
37
37
  */
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3B0aW9uYWxOZXh0anNDb250YWluZXJzUHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxOZXh0anNDb250YWluZXJzUHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vIH5+IEdlbmVyYXRlZCBieSBwcm9qZW4uIFRvIG1vZGlmeSwgZWRpdCAucHJvamVucmMudHMgYW5kIHJ1biBcInBucG0gZGx4IHByb2plblwiLlxuaW1wb3J0IHR5cGUgeyBOZXh0anNUeXBlIH0gZnJvbSAnLi4vJztcbmltcG9ydCB0eXBlIHsgYXdzX2VjMiwgYXdzX2Vjcl9hc3NldHMsIGF3c19lZnMgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5cbi8qKlxuICogT3B0aW9uYWxOZXh0anNDb250YWluZXJzUHJvcHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcHRpb25hbE5leHRqc0NvbnRhaW5lcnNQcm9wcyB7XG4gIC8qKlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVsYXRpdmVFbnRyeXBvaW50UGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBuZXh0anNUeXBlPzogTmV4dGpzVHlwZTtcbiAgLyoqXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBmaWxlU3lzdGVtPzogYXdzX2Vmcy5GaWxlU3lzdGVtO1xuICAvKipcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGRvY2tlckltYWdlQXNzZXQ/OiBhd3NfZWNyX2Fzc2V0cy5Eb2NrZXJJbWFnZUFzc2V0O1xuICAvKipcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHZwYz86IGF3c19lYzIuSVZwYztcbiAgLyoqXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBoZWFsdGhDaGVja1BhdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgY29udGFpbmVyTW91bnRQYXRoRm9yRWZzPzogc3RyaW5nO1xuICAvKipcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGFjY2Vzc1BvaW50PzogYXdzX2Vmcy5BY2Nlc3NQb2ludDtcbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3B0aW9uYWxOZXh0anNDb250YWluZXJzUHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxOZXh0anNDb250YWluZXJzUHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vIH5+IEdlbmVyYXRlZCBieSBwcm9qZW4uIFRvIG1vZGlmeSwgZWRpdCAucHJvamVucmMudHMgYW5kIHJ1biBcInBucG0gZGx4IHByb2plblwiLlxuaW1wb3J0IHR5cGUgeyBOZXh0anNUeXBlIH0gZnJvbSAnLi4vJztcbmltcG9ydCB0eXBlIHsgYXdzX2VjMiwgYXdzX2Vjcl9hc3NldHMsIGF3c19lZnMgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5cbi8qKlxuICogT3B0aW9uYWxOZXh0anNDb250YWluZXJzUHJvcHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcHRpb25hbE5leHRqc0NvbnRhaW5lcnNQcm9wcyB7XG4gIC8qKlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVsYXRpdmVFbnRyeXBvaW50UGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBuZXh0anNUeXBlPzogTmV4dGpzVHlwZTtcbiAgLyoqXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBmaWxlU3lzdGVtPzogYXdzX2Vmcy5GaWxlU3lzdGVtO1xuICAvKipcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGRvY2tlckltYWdlQXNzZXQ/OiBhd3NfZWNyX2Fzc2V0cy5Eb2NrZXJJbWFnZUFzc2V0O1xuICAvKipcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkSWQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgdnBjPzogYXdzX2VjMi5JVnBjO1xuICAvKipcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGhlYWx0aENoZWNrUGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBhY2Nlc3NQb2ludD86IGF3c19lZnMuQWNjZXNzUG9pbnQ7XG59XG4iXX0=
@@ -0,0 +1,42 @@
1
+ import type { aws_cloudfront, aws_ec2, aws_efs, aws_s3 } from 'aws-cdk-lib';
2
+ /**
3
+ * OptionalNextjsPostDeployProps
4
+ */
5
+ export interface OptionalNextjsPostDeployProps {
6
+ /**
7
+ * Required for `NextjsType.GlobalFunctions` and `NextjsType.GlobalContainers`.
8
+ * @stability stable
9
+ */
10
+ readonly staticAssetsBucket?: aws_s3.Bucket;
11
+ /**
12
+ * @stability stable
13
+ */
14
+ readonly relativePathToPackage?: string;
15
+ /**
16
+ * CloudFront Distribution to invalidate.
17
+ * @stability stable
18
+ */
19
+ readonly distribution?: aws_cloudfront.IDistribution;
20
+ /**
21
+ * If true, logs details in custom resource lambda.
22
+ * @default true
23
+ * @stability stable
24
+ */
25
+ readonly debug?: boolean;
26
+ /**
27
+ * @stability stable
28
+ */
29
+ readonly vpc?: aws_ec2.IVpc;
30
+ /**
31
+ * @stability stable
32
+ */
33
+ readonly buildImageDigest?: string;
34
+ /**
35
+ * @stability stable
36
+ */
37
+ readonly buildId?: string;
38
+ /**
39
+ * @stability stable
40
+ */
41
+ readonly accessPoint?: aws_efs.AccessPoint;
42
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3B0aW9uYWxOZXh0anNQb3N0RGVwbG95UHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxOZXh0anNQb3N0RGVwbG95UHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vIH5+IEdlbmVyYXRlZCBieSBwcm9qZW4uIFRvIG1vZGlmeSwgZWRpdCAucHJvamVucmMudHMgYW5kIHJ1biBcInBucG0gZGx4IHByb2plblwiLlxuaW1wb3J0IHR5cGUgeyBhd3NfY2xvdWRmcm9udCwgYXdzX2VjMiwgYXdzX2VmcywgYXdzX3MzIH0gZnJvbSAnYXdzLWNkay1saWInO1xuXG4vKipcbiAqIE9wdGlvbmFsTmV4dGpzUG9zdERlcGxveVByb3BzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3B0aW9uYWxOZXh0anNQb3N0RGVwbG95UHJvcHMge1xuICAvKipcbiAgICogUmVxdWlyZWQgZm9yIGBOZXh0anNUeXBlLkdsb2JhbEZ1bmN0aW9uc2AgYW5kIGBOZXh0anNUeXBlLkdsb2JhbENvbnRhaW5lcnNgLlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdGljQXNzZXRzQnVja2V0PzogYXdzX3MzLkJ1Y2tldDtcbiAgLyoqXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSByZWxhdGl2ZVBhdGhUb1BhY2thZ2U/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDbG91ZEZyb250IERpc3RyaWJ1dGlvbiB0byBpbnZhbGlkYXRlLlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgZGlzdHJpYnV0aW9uPzogYXdzX2Nsb3VkZnJvbnQuSURpc3RyaWJ1dGlvbjtcbiAgLyoqXG4gICAqIElmIHRydWUsIGxvZ3MgZGV0YWlscyBpbiBjdXN0b20gcmVzb3VyY2UgbGFtYmRhLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBkZWJ1Zz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgdnBjPzogYXdzX2VjMi5JVnBjO1xuICAvKipcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkSW1hZ2VEaWdlc3Q/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRJZD86IHN0cmluZztcbiAgLyoqXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBhY2Nlc3NQb2ludD86IGF3c19lZnMuQWNjZXNzUG9pbnQ7XG59XG4iXX0=