cdk-nextjs 0.5.14 → 0.5.16
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 +719 -258
- package/.jsii.tabl.json +1 -1
- package/API.md +543 -14
- package/README.md +1 -1
- package/docs/breaking-changes.md +33 -0
- package/docs/caching-guide.md +9 -0
- package/docs/plans/adapter-runtime-release.md +362 -0
- package/docs/plans/phase-0-image-function-opt-in.md +295 -0
- package/lib/adapter/cache-handler.mjs +50916 -13061
- package/lib/adapter/memory-cache-handler.d.ts +1 -1
- package/lib/adapter/memory-cache-handler.js +17 -11
- package/lib/adapter/memory-cache-handler.test.js +57 -1
- package/lib/adapter/s3-cache-handler.d.ts +33 -0
- package/lib/adapter/s3-cache-handler.js +96 -1
- package/lib/adapter/s3-cache-handler.test.js +66 -1
- package/lib/generated-structs/OptionalNextjsDistributionProps.d.ts +10 -0
- package/lib/generated-structs/OptionalNextjsDistributionProps.js +1 -1
- package/lib/image-optimization/handler-utils.d.ts +32 -0
- package/lib/image-optimization/handler-utils.js +77 -0
- package/lib/image-optimization/handler-utils.test.d.ts +1 -0
- package/lib/image-optimization/handler-utils.test.js +142 -0
- package/lib/image-optimization/handler.mjs +56112 -0
- package/lib/index.d.ts +2 -1
- package/lib/index.js +4 -2
- package/lib/nextjs-api.d.ts +18 -0
- package/lib/nextjs-api.js +25 -9
- package/lib/nextjs-build/nextjs-build.d.ts +52 -0
- package/lib/nextjs-build/nextjs-build.js +174 -27
- package/lib/nextjs-cache.js +1 -1
- package/lib/nextjs-compute/nextjs-containers.js +1 -1
- package/lib/nextjs-compute/nextjs-functions.js +1 -1
- package/lib/nextjs-compute/nextjs-image-function.d.ts +43 -0
- package/lib/nextjs-compute/nextjs-image-function.js +58 -0
- package/lib/nextjs-distribution.d.ts +22 -0
- package/lib/nextjs-distribution.js +25 -3
- package/lib/nextjs-post-deploy.js +1 -1
- package/lib/nextjs-static-assets.js +1 -1
- package/lib/root-constructs/nextjs-base-construct.d.ts +24 -1
- package/lib/root-constructs/nextjs-base-construct.js +42 -2
- package/lib/root-constructs/nextjs-global-containers.d.ts +15 -0
- package/lib/root-constructs/nextjs-global-containers.js +57 -2
- package/lib/root-constructs/nextjs-global-functions.d.ts +27 -5
- package/lib/root-constructs/nextjs-global-functions.js +67 -17
- package/lib/root-constructs/nextjs-regional-containers.js +1 -1
- package/lib/root-constructs/nextjs-regional-functions.d.ts +11 -5
- package/lib/root-constructs/nextjs-regional-functions.js +14 -18
- package/lib/utils/experimental-flags.d.ts +24 -0
- package/lib/utils/experimental-flags.js +30 -0
- package/lib/utils/get-architecture.d.ts +10 -0
- package/lib/utils/get-architecture.js +17 -2
- package/package.json +4 -1
package/.jsii
CHANGED
|
@@ -9032,7 +9032,7 @@
|
|
|
9032
9032
|
},
|
|
9033
9033
|
"name": "cdk-nextjs",
|
|
9034
9034
|
"readme": {
|
|
9035
|
-
"markdown": "\n[](https://www.npmjs.org/package/cdk-nextjs)\n\n\n# CDK Next.js Construct Library\n\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\nDeploy [Next.js](https://nextjs.org/) apps on [AWS](https://aws.amazon.com/) with the [AWS CDK](https://aws.amazon.com/cdk/).\n\n## Features\n\n- Supports all features of Next.js App and Pages Router for [Node.js Runtime](https://nextjs.org/docs/app/building-your-application/rendering/edge-and-nodejs-runtimes#nodejs-runtime).\n- Choose your AWS architecture for Next.js with the supported constructs: `NextjsGlobalFunctions`, `NextjsGlobalContainers`, `NextjsRegionalContainers`, `NextjsRegionalFunctions`.\n- Global Content Delivery Network (CDN) built with [Amazon CloudFront](https://aws.amazon.com/cloudfront/) to deliver content with low latency and high transfer speeds.\n- Serverless functions powered by [AWS Lambda](https://aws.amazon.com/lambda/) or serverless containers powered by [AWS Fargate](https://aws.amazon.com/fargate/).\n- Static assets (JS, CSS, public folder) are stored and served from [Amazon Simple Storage Service (S3)](https://aws.amazon.com/s3/) for all constructs (except `NextjsRegionalContainers`) to decrease latency and reduce compute costs by serving directly from S3.\n- [Optimized images](https://nextjs.org/docs/pages/building-your-application/optimizing/images), [data cache](https://nextjs.org/docs/app/building-your-application/caching#data-cache), and [full route cache](https://nextjs.org/docs/app/building-your-application/caching#full-route-cache) are shared across compute with [Amazon Simple Storage Service (S3)](https://aws.amazon.com/s3/) with supporting metadata in [Amazon DynamoDB](https://aws.amazon.com/dynamodb).\n- Customize every construct via `overrides`.\n- AWS security and operational best practices are utilized, guided by [cdk-nag](https://github.com/cdklabs/cdk-nag).\n- First class support for [monorepos](https://monorepo.tools/).\n- [Bring Your Own Resources](#bring-your-own-resources) — import existing AWS resources (CloudFront distributions, ECS clusters, ALBs, S3 buckets, DynamoDB tables).\n- [AWS GovCloud (US)](https://aws.amazon.com/govcloud-us) compatible with `NextjsRegionalFunctions` and `NextjsRegionalContainers`.\n\n## Prerequisites\n\n- Next.js app running v16.2 or higher. If you don't have one yet - follow [these steps](https://nextjs.org/docs/getting-started) to create one.\n- [AWS Cloud Development Kit](https://docs.aws.amazon.com/cdk/v2/guide/home.html) app either in the same package or separate package. cdk-nextjs supports monorepos.\n- Docker compatible container engine - we recommend [Rancher Desktop](https://rancherdesktop.io/) with dockerd (moby).\n- [Node.js](https://nodejs.org/en) v24 (or LTS)\n\n## Getting Started\n\n1. Install `cdk-nextjs` in the package(s) containing your CDK and Next.js app with `npm i cdk-nextjs`\n2. Update next.config.ts to include `adapterPath`:\n\n```ts\nimport { NextConfig } from \"next\";\n\nconst nextConfig: NextConfig = {\n // ...\n adapterPath: import.meta.resolve(\"cdk-nextjs/adapter\"), // for ESM\n // adapterPath: require.resolve(\"cdk-nextjs/adapter\"), // for CJS\n};\n\nexport default nextConfig;\n```\n\n3. Deploy your Next.js app to AWS: `cdk deploy`. Make sure you have [AWS credentials](https://docs.aws.amazon.com/cli/v1/userguide/cli-chap-configure.html) configured.\n4. Visit URL printed in terminal (CloudFormation Output) to view your Next.js app!\n\n### cdk-nextjs Created Dockerfile\n\ncdk-nextjs will generate a Dockerfile in your Next.js app's directory. cdk-nextjs does not have the ability to clean up the Dockerfile after the container is built so you can either add it to source control or gitignore it. When detectd, cdk-nextjs will not overwrite this Dockerfile so you're free to customize it.\n\n## Basic Example CDK App\n\n```ts\nimport { App, Stack, StackProps } from \"aws-cdk-lib\";\nimport { Construct } from \"constructs\";\nimport { NextjsGlobalFunctions } from \"cdk-nextjs\";\nimport { join } from \"node:path\";\n\nclass WebStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n new NextjsGlobalFunctions(this, \"Nextjs\", {\n buildDirectory: join(import.meta.dirname),\n healthCheckPath: \"/api/health\",\n });\n }\n}\n\nconst app = new App();\n\nnew WebStack(app, \"web-stack\");\n```\n\nSee [examples/](./examples/) for more usage examples.\n\n## Configuration\n\ncdk-nextjs supports configuration via environment variables. These are automatically set by the construct during deployment, but you can override them for custom behavior.\n\n### Cache Configuration\n\n#### `CDK_NEXTJS_MEMORY_CACHE_TTL_MS`\n\nTime to live in milliseconds for in-memory cache entries. After this duration, entries expire and are removed from the cache.\n\n**Important**: Due to the distributed nature of compute instances (Lambda functions, ECS Fargate containers, etc.), the memory cache by default provides eventual consistency across instances. Tag revalidations will clear the cache on the instance that processes the revalidation, but other instances may serve stale data until their cache entries expire. If you require strong consistency, set this to `0` to disable the memory cache (all requests will fall through to S3 + DynamoDB).\n\n**Default**: `3600000` (1 hour)\n\n**Examples**:\n\n- Short TTL (5 minutes): `300000` - for frequently changing data\n- Medium TTL (1 hour): `3600000` - balanced between freshness and performance\n- Long TTL (24 hours): `86400000` - for mostly static content\n\n**Trade-offs**:\n\n- Lower values: More cache misses, fresher data, higher S3/DynamoDB costs\n- Higher values: Fewer cache misses, better performance, but longer stale data windows\n\n#### `CDK_NEXTJS_MEMORY_CACHE_MAX_ENTRIES`\n\nMaximum number of cache entries to store in memory. When this limit is reached, the least recently used (LRU) entry is evicted.\n\n**Default**: `1000`\n\n**Examples**:\n\n- Small cache: `100` - minimal memory footprint for simple apps\n- Medium cache: `1000` - good balance for typical applications\n- Large cache: `10000` - for high-traffic apps with many unique pages\n\n**Trade-offs**:\n\n- Lower values: Less memory usage, more cache evictions\n- Higher values: More memory usage, fewer cache evictions, better hit rates\n\n**Memory considerations**: Each entry stores the full cache value (HTML, JSON, etc.). A typical page cache might be 10-100KB, so 1000 entries ≈ 10-100MB of memory. Consider your compute environment's memory limits (Lambda: 128MB-10GB, Fargate: 512MB-30GB) and size accordingly.\n\n### Infrastructure Configuration\n\nThe following environment variables are automatically set by the construct and typically don't need to be modified:\n\n#### `CDK_NEXTJS_BUILD_ID`\n\nUnique identifier for the Next.js build. Used for cache isolation between deployments.\n\n#### `CDK_NEXTJS_CACHE_BUCKET_NAME`\n\nS3 bucket name for storing cached data (optimized images, data cache, full route cache).\n\n#### `CDK_NEXTJS_REVALIDATION_TABLE_NAME`\n\nDynamoDB table name for tracking cache revalidations and tag-to-cache-key mappings.\n\n#### `DEBUG`\n\nSet to `cdk-nextjs:*` to set debug logs. This is especially useful to see cache handler activity.\n\n## Architecture\n\n### `NextjsGlobalFunctions`\n\nArchitecture includes [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) Functions to respond to dynamic requests and [CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Introduction.html) Distribution to globally serve requests and distribute static assets. Use this construct when you have unpredictable traffic, can afford occasional latency (i.e. cold starts - [typically 1% of production traffic](https://aws.amazon.com/blogs/compute/operating-lambda-performance-optimization-part-1/)), and/or want the most granular pricing model. ([code](./src/root-constructs/nextjs-global-functions.ts))\n\n```mermaid\narchitecture-beta\n group aws(cloud)[AWS Cloud]\n group cache[Cache Layer] in aws\n\n service user(internet)[User]\n service cloudfront(server)[CloudFront Distribution] in aws\n service s3static(disk)[S3 Static Assets] in aws\n service lambda(server)[Lambda Function] in aws\n service dynamodb(database)[DynamoDB Table] in cache\n service s3cache(disk)[S3 Cache Bucket] in cache\n\n user:R --> L:cloudfront\n cloudfront:R --> L:s3static\n cloudfront:R --> L:lambda\n lambda:R --> L:dynamodb\n lambda:R --> L:s3cache\n```\n\n### `NextjsGlobalContainers`\n\nArchitecture includes [ECS Fargate](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html) containers to respond to dynamic requests and [CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Introduction.html) Distribution to globally serve requests and distribute static assets. Use this option when you have predictable traffic, need the lowest latency, and/or can afford a less granular pricing model. ([code](./src/root-constructs/nextjs-global-containers.ts))\n\n```mermaid\narchitecture-beta\n group aws(cloud)[AWS Cloud]\n group vpc[VPC] in aws\n group cache[Cache Layer] in aws\n\n service user(internet)[User]\n service cloudfront(server)[CloudFront Distribution] in aws\n service s3static(disk)[S3 Static Assets] in aws\n service alb(server)[Application Load Balancer] in vpc\n service fargate(server)[ECS Fargate Containers] in vpc\n service dynamodb(database)[DynamoDB Table] in cache\n service s3cache(disk)[S3 Cache Bucket] in cache\n\n user:R --> L:cloudfront\n cloudfront:R --> L:s3static\n cloudfront:R --> L:alb\n alb:R --> L:fargate\n fargate:R --> L:dynamodb\n fargate:R --> L:s3cache\n```\n\n### `NextjsRegionalContainers`\n\nArchitecture includes [ECS Fargate](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html) containers to respond to dynamic requests and [Application Load Balancer](https://aws.amazon.com/elasticloadbalancing/application-load-balancer/) to regionally serve requests. Use this options when you cannot use Amazon CloudFront (i.e. [AWS GovCloud](https://aws.amazon.com/govcloud-us/?whats-new.sort-by=item.additionalFields.postDateTime&whats-new.sort-order=desc)). ([code](./src/root-constructs/nextjs-regional-containers.ts#L41))\n\n```mermaid\narchitecture-beta\n group aws(cloud)[AWS Cloud]\n group vpc[VPC] in aws\n group cache[Cache Layer] in aws\n\n service user(internet)[User]\n service alb(server)[Application Load Balancer] in vpc\n service fargate(server)[ECS Fargate Containers] in vpc\n service dynamodb(database)[DynamoDB Table] in cache\n service s3cache(disk)[S3 Cache Bucket] in cache\n\n user:R --> L:alb\n alb:R --> L:fargate\n fargate:R --> L:dynamodb\n fargate:R --> L:s3cache\n```\n\n### `NextjsRegionalFunctions`\n\nArchitecture includes [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) Functions to respond to dynamic requests and [API Gateway REST API](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-rest-api.html) to regionally serve requests and distribute static assets. Use this options when you cannot use Amazon CloudFront (i.e. [AWS GovCloud](https://aws.amazon.com/govcloud-us/?whats-new.sort-by=item.additionalFields.postDateTime&whats-new.sort-order=desc)). ([code](./src/root-constructs/nextjs-regional-functions.ts))\n\n```mermaid\narchitecture-beta\n group aws(cloud)[AWS Cloud]\n group cache[Cache Layer] in aws\n\n service user(internet)[User]\n service apigateway(server)[API Gateway REST API] in aws\n service s3static(disk)[S3 Static Assets] in aws\n service lambda(server)[Lambda Function] in aws\n service dynamodb(database)[DynamoDB Table] in cache\n service s3cache(disk)[S3 Cache Bucket] in cache\n\n user:R --> L:apigateway\n apigateway:R --> L:s3static\n apigateway:R --> L:lambda\n lambda:R --> L:dynamodb\n lambda:R --> L:s3cache\n```\n\n## Why\n\nThe simplest path to deploy Next.js is on [Vercel](https://vercel.com/) - the Platform-as-a-Service company behind Next.js. However, deploying to Vercel can be expensive and some developers want all of their workloads running _directly_ on AWS. Developers can deploy Next.js on AWS through [AWS Amplify Hosting](https://docs.aws.amazon.com/amplify/latest/userguide/ssr-Amplifysupport.html), but Amplify does not support all Next.js features and manages AWS resources for you so they cannot be customized. If Amplify meets your requirements we recommend you use it, but if you want to use all Next.js features or want more visibility into the AWS resources then this construct is for you.\n\n## Design Principles\n\n- Treat Next.js as black box. Minimize reliance on Next.js internal APIs to reduce chance of incompatibility between this construct and future versions of Next.js.\n- Security first.\n- One architecture does not fit all.\n- Enable customization everywhere.\n\n## Bring Your Own Resources\n\ncdk-nextjs supports importing existing AWS resources instead of creating new ones. This is especially useful for per-branch (MR/PR) environments where you deploy shared infrastructure once and spin up lightweight branch stacks that reuse it.\n\n### Supported Resources\n\n| Resource | Prop | Available On |\n| --------------------------- | -------------------- | ---------------------------------------------------- |\n| S3 Cache Bucket | `cacheBucket` | All constructs |\n| DynamoDB Revalidation Table | `revalidationTable` | All constructs |\n| S3 Static Assets Bucket | `staticAssetsBucket` | All constructs |\n| CloudFront Distribution | `distribution` | `NextjsGlobalFunctions`, `NextjsGlobalContainers` |\n| ECS Cluster | `ecsCluster` | `NextjsGlobalContainers`, `NextjsRegionalContainers` |\n| ALB | `alb` | `NextjsGlobalContainers`, `NextjsRegionalContainers` |\n\n### Resource Isolation\n\n- **Cache bucket and DynamoDB table** are isolated by `buildId` prefix. Multiple branches safely share one bucket/table with no conflicts.\n- **Static assets bucket** — Next.js includes content hashes in static asset filenames, so different branches deploying the same file will produce identical content. It's safe for branches to overwrite each other. If you're already using `basePath` for routing, assets will naturally be prefixed by it.\n\n### Shared ALB and `removeAutoCreatedListener()`\n\n`ApplicationLoadBalancedFargateService` always creates a listener on port 80 — there is no opt-out. When you import an ALB that already has a listener on that port, the duplicate causes a deployment failure. Since CDK doesn't expose a way to prevent this, `removeAutoCreatedListener()` surgically removes the generated CloudFormation resources: the `CfnListener`, its security group ingress rule, rebuilds the ECS service `DependsOn` without the deleted listener, and removes auto-created `CfnOutput` resources:\n\n```ts\nconst nextjs = new NextjsRegionalContainers(this, \"Nextjs\", {\n // ...\n alb: sharedAlb,\n ecsCluster: sharedCluster,\n});\nnextjs.nextjsContainers.removeAutoCreatedListener();\n```\n\n### Examples\n\nSee [examples/bring-your-own/](./examples/bring-your-own/) for a complete deployable example with shared infrastructure and per-branch host-header routing.\n\n## Preview Environments (Per-Branch Deployments)\n\ncdk-nextjs can deploy ephemeral preview environments per merge request (MR) or pull request (PR). The recommended approach uses subdomain-based routing (`pr-123.app.example.com`) so each preview environment runs the same Next.js build as production — no `basePath` configuration or separate builds required.\n\nSee [examples/bring-your-own/](./examples/bring-your-own/) for a fully deployable example using `NextjsRegionalContainers` with a shared ALB, ECS Cluster, S3 buckets, and DynamoDB table — connected via SSM Parameter Store.\n\n### Prerequisites\n\n- Wildcard DNS record: `*.app.example.com` → your routing layer (ALB, CloudFront, API Gateway)\n- Wildcard ACM certificate: `*.app.example.com`\n\n### Per-Architecture Recommendations\n\n#### `NextjsGlobalContainers` and `NextjsRegionalContainers` (ALB-based)\n\nSubdomain routing via ALB host-based listener rules. This is the fastest and simplest approach. For `NextjsGlobalContainers`, CloudFront forwards the `Host` header to the ALB origin, so the ALB handles all branch routing — no CloudFront changes needed per branch.\n\nSee [examples/bring-your-own/](./examples/bring-your-own/) for the full implementation.\n\n#### `NextjsRegionalFunctions` (API Gateway)\n\nSubdomain routing via API Gateway custom domain mappings.\n\n1. Deploy shared infrastructure once: S3 buckets, DynamoDB table\n2. Per branch, deploy a cdk-nextjs stack that imports shared resources and creates its own API Gateway\n3. Create an API Gateway custom domain (`pr-123.app.example.com`) mapped to the branch's API stage\n4. Tear down the branch stack on MR close\n\n#### `NextjsGlobalFunctions` (Lambda + CloudFront)\n\nRequires a separate cdk-nextjs stack per branch, each with its own CloudFront distribution. CloudFront cannot route to different Lambda Function URL origins based on the `Host` header — origin selection is determined by cache behavior path patterns, not request headers.\n\n1. Deploy shared infrastructure once: S3 buckets, DynamoDB table\n2. Per branch, deploy a full cdk-nextjs stack that imports shared resources (`cacheBucket`, `revalidationTable`, `staticAssetsBucket`) but creates its own CloudFront distribution and Lambda function\n3. Point `pr-123.app.example.com` DNS to the branch's CloudFront distribution\n4. Tear down the branch stack on MR close\n\nNote: CloudFront distributions take several minutes to create/update, so this architecture has the slowest preview environment spin-up time.\n\n## Limitations\n\n- If using `NextjsGlobalFunctions` or `NextjsGlobalContainers` (which use CloudFront), the number of top level files/directories cannot exceed 25, the max number of behaviors a CloudFront Distribution supports. We recommend you put all of your public assets into one top level directory (i.e. public/static) so you don't reach this limit. See [CloudFront Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) for more information.\n- If using `NextjsGlobalFunctions`, when [revalidating data in Next.js](https://nextjs.org/docs/app/building-your-application/data-fetching/fetching-caching-and-revalidating#on-demand-revalidation) (i.e. [revalidatePath](https://nextjs.org/docs/app/api-reference/functions/revalidatePath)), the CloudFront Cache will still hold stale data. You'll need to use AWS SDK JS V3 [CreateInvalidationCommand](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-cloudfront/Class/CreateInvalidationCommand/) to manually invalidate the path in CloudFront. See more [here](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html).\n- If using `NextjsGlobalFunctions`, setting an Authorization header won't work by default because of Lambda Function URL with IAM Auth is already using the Authorization header. You can use the `AWS_LWA_AUTHORIZATION_SOURCE` environment variable of [AWS Lambda Web Adapter](https://github.com/awslabs/aws-lambda-web-adapter) to set an alternative Authorization header in the client which will then be set to the Authorization header when it reaches your app.\n- `NextjsRegionalFunctions` doesn't support streaming because API Gateway doesn't support streaming yet.\n- If using `NextjsRegionalFunctions` without a custom domain, API Gateway REST APIs require a [stage name](https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-stages.html) (default: `/prod`) to be specified. This causes links to pages and static assets to break because they're not prefixed with the stage name. You can work around this issue by specifying [basePath](https://nextjs.org/docs/app/api-reference/config/next-config-js/basePath) in next.config.js as your stage name. Additionally, you'll need to add middleware logic to rewrite requests to include the stage name because API Gateway does not include the stage name in the path passed to Lambda. See [examples/app-playground/middleware.ts](./examples/app-playground/middleware.ts).\n\n## Additional Security Recommendations\n\nThis construct by default implements all AWS security best practices that a CDK construct library reasonably can considering cost and complexity. Below are additional security practices we recommend you implement within your CDK app. Please see them below:\n\n- [VPC Flow Logs](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html). See [examples/](./examples) for sample implementation.\n- [Scan ECR Images For Vulnerabilities](https://docs.aws.amazon.com/AmazonECR/latest/userguide/image-scanning.html).\n- For `NextjsGlobalFunctions` and `NextjsGlobalContainers`, [CloudFront Access Logs](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html). See [examples/](./examples) for sample implementation.\n- For `NextjsGlobalContainers` and `NextjsRegionalContainers`, use [ALB HTTPS Listener](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html)\n- If using `NextjsGlobalContainers` and `NextjsRegionalContainers`, enable `ReadonlyRootFilesystem`. This will remove ability to use Static On-Demand feature of Next.js so it's not enabled by default, but is recommended for security.\n\n## Estimated Costs\n\n### Assumptions\n\nThe following basic assumptions were used for a typical medium Next.js app. See [docs/usage.xlsx](./docs/usage.xlsx) for detailed assumptions and usage per construct type that you can plug into AWS Pricing Calculator.\n\n| Metric | Value |\n| ------------------------------------------------------------ | ----- |\n| Monthly Active Users | 1K |\n| Pages Visited Per Month Per User | 100 |\n| Avg Request Size | 50KB |\n| Static Requests Per Page (js, css, etc) | 15 |\n| Static Requests Cache Hit % | 50% |\n| Static Assets Size | 10GB |\n| Dynamic Requests Per Page (document, optimized images, etc.) | 5 |\n| Dynamic Cache Read % | 50% |\n| Dynamic Cache Write % | 5% |\n| Dynamic Cache Data Size | 10GB |\n| Average Dynamic Cache Request Size | 100KB |\n| Dynamic Revalidate Tag % | 1% |\n\nMore Details:\n\n- Assume ARM architecture for compute\n- AWS Region: us-east-1\n- Excludes charges related to: CloudWatch Logs, NAT Gateway data processing\n\n### NextjsGlobalFunctions\n\n[AWS Pricing Calculator](https://calculator.aws/#/estimate?id=23611f6fea87ef05d5fe87c33135ddde43b17a98)\n\n| Service | Monthly Usage | Estimated Monthly Cost (USD) |\n| ---------- | ---------------------------------------------- | ---------------------------- |\n| Lambda | 500K requests, 2 GB memory, 150ms avg duration | $0.00 (Always Free Tier) |\n| CloudFront | 2M requests, 100 GB transfer to internet | $0.00 (Always Free Tier) |\n| S3 | 20 GB storage, 1M GET, 250K PUT requests | $2.11 |\n| DynamoDB | 10 GB storage, 5K Reads, 5K Writes | $2.50 |\n| Total | | $8.09 |\n\n### NextjsGlobalContainers\n\n[AWS Pricing Calculator](https://calculator.aws/#/estimate?id=02f0073e612d1eee2a7ccace2c636adc5f0acab7)\n\n| Service | Monthly Usage | Estimated Monthly Cost (USD) |\n| ----------- | ---------------------------------------- | ---------------------------- |\n| ECS Fargate | 1 task (1 vCPU, 2 GB) | $28.44 |\n| ALB | 1 LB, 1.04GB/hr, 5.79 conn/sec | $22.50 |\n| CloudFront | 2M requests, 100 GB transfer to internet | $0.00 (Always Free Tier) |\n| S3 | 20 GB storage, 1M GET, 250K PUT requests | $2.11 |\n| DynamoDB | 10 GB storage, 5K Reads, 5K Writes | $2.50 |\n| VPC | NAT Gateway, 2 AZs | $65.70 |\n| Total | | $121.25 |\n\n### NextjsRegionalContainers\n\n[AWS Pricing Calculator](https://calculator.aws/#/estimate?id=e214abe60eb4e24fc5866d07ef4355393261af3c)\n\n| Service | Monthly Usage | Estimated Monthly Cost (USD) |\n| ----------- | ------------------------------------------ | ---------------------------- |\n| ECS Fargate | 1 task (2 vCPU, 4 GB), always on | $28.44 |\n| ALB | 1 LB, 4.17 GB/hr, 23.15 conn/sec | $40.78 |\n| S3 | 10 GB storage, 250K GET, 250K PUT requests | $1.58 |\n| DynamoDB | 10 GB storage, 5K Reads, 5K Writes | $2.50 |\n| VPC | NAT Gateway, 2 AZs | $65.70 |\n| Total | | $139.00 |\n\n### NextjsRegionalFunctions\n\n[AWS Pricing Calculator](https://calculator.aws/#/estimate?id=60da38c7993c1baeee2fee4bd19ba6441608bb15)\n\n| Service | Monthly Usage | Estimated Monthly Cost (USD) |\n| ----------- | ---------------------------------------------- | ---------------------------- |\n| Lambda | 500K requests, 2 GB memory, 150ms avg duration | $0.00 (Always Free Tier) |\n| API Gateway | 2M requests | $7.00 |\n| S3 | 10 GB storage, 250K GET, 250K PUT requests | $1.58 |\n| DynamoDB | 10 GB storage, 5K Reads, 5K Writes | $2.50 |\n| Total | | $11.08 |\n\n## Performance\n\n[Artillery Playwright](https://www.artillery.io/docs/reference/engines/playwright#overview) app playground example load tests results with 1K concurrent users. Reproduce with `pnpm test-fargate:lg` within `examples/load-tests`.\n\n### NextjsGlobalFunctions\n\n<details>\n<summary>`NextjsGlobalFunctions` Performance Details</summary>\n\n```bash\nbrowser.page.TTFB.https://abc123.cloudfront.net/isr:\n min: ......................................................................... 6.3\n max: ......................................................................... 5017.4\n mean: ........................................................................ 11.5\n median: ...................................................................... 10.3\n p95: ......................................................................... 15.6\n p99: ......................................................................... 22.9\nbrowser.page.TTFB.https://abc123.cloudfront.net/isr/1:\n min: ......................................................................... 3.2\n max: ......................................................................... 560.6\n mean: ........................................................................ 9.4\n median: ...................................................................... 5.4\n p95: ......................................................................... 11.1\n p99: ......................................................................... 162.4\nbrowser.page.TTFB.https://abc123.cloudfront.net/isr/2:\n min: ......................................................................... 3.1\n max: ......................................................................... 1511.9\n mean: ........................................................................ 9.2\n median: ...................................................................... 5.2\n p95: ......................................................................... 10.7\n p99: ......................................................................... 149.9\nbrowser.page.TTFB.https://abc123.cloudfront.net/isr/3:\n min: ......................................................................... 3.4\n max: ......................................................................... 131.1\n mean: ........................................................................ 7.1\n median: ...................................................................... 5.3\n p95: ......................................................................... 10.1\n p99: ......................................................................... 64.7\nbrowser.page.TTFB.https://abc123.cloudfront.net/ssg:\n min: ......................................................................... 6.4\n max: ......................................................................... 5015.1\n mean: ........................................................................ 11.5\n median: ...................................................................... 10.3\n p95: ......................................................................... 15.6\n p99: ......................................................................... 23.3\nbrowser.page.TTFB.https://abc123.cloudfront.net/ssg/3:\n min: ......................................................................... 2.9\n max: ......................................................................... 98\n mean: ........................................................................ 5.1\n median: ...................................................................... 4.6\n p95: ......................................................................... 8.2\n p99: ......................................................................... 12.8\nbrowser.page.TTFB.https://abc123.cloudfront.net/ssr:\n min: ......................................................................... 6.4\n max: ......................................................................... 5018.6\n mean: ........................................................................ 11.3\n median: ...................................................................... 10.3\n p95: ......................................................................... 15.6\n p99: ......................................................................... 23.3\nbrowser.page.TTFB.https://abc123.cloudfront.net/ssr/2:\n min: ......................................................................... 83.4\n max: ......................................................................... 150.7\n mean: ........................................................................ 119\n median: ...................................................................... 111.1\n p95: ......................................................................... 147\n p99: ......................................................................... 147\nbrowser.page.TTFB.https://abc123.cloudfront.net/streaming:\n min: ......................................................................... 6.4\n max: ......................................................................... 5015.2\n mean: ........................................................................ 11.8\n median: ...................................................................... 10.3\n p95: ......................................................................... 15.6\n p99: ......................................................................... 23.3\n```\n\n</details>\n\n\n\n### NextjsGlobalContainers\n\n<details>\n<summary>`NextjsGlobalContainers` Performance Details</summary>\n\n```bash\nTODO\n```\n\n</details>\n\n### NextjsRegionalContainers\n\n<details>\n<summary>`NextjsRegionalContainers` Performance Details</summary>\n\n```bash\nTODO\n```\n\n### NextjsRegionalFunctions\n\n<details>\n<summary>`NextjsRegionalFunctions` Performance Details</summary>\n\n```bash\nTODO\n```\n\n</details>\n\n## Guides\n\n- [Caching Guide](./docs/caching-guide.md)\n- [Pruning Guide](./docs/pruning-guide.md)\n- [Next Build Output Guide](./docs/next-build-output-guide.ts)\n- [Development Guide](./docs/development-guide.ts)\n\n## Contributing\n\nSteps to build locally:\n\n1. `git clone https://github.com/cdklabs/cdk-nextjs.git`\n2. `cd cdk-nextjs`\n3. `pnpm i && pnpm compile && pnpm build`\n\nThis project uses Projen, so make sure to not edit [Projen](https://projen.io/) created files and only edit .projenrc.ts.\n\n## FAQ\n\nQ: How does this compare to [cdk-nextjs-standalone](https://github.com/jetbridge/cdk-nextjs)?<br/>\nA: cdk-nextjs-standalone relies on [OpenNext](https://github.com/sst/open-next). OpenNext injects custom code to interact with private Next.js APIs. While OpenNext is able to make some optimizations that are great for serverless environments, this comes at an increase maintenance cost and increased chances for breaking changes. A goal of cdk-nextjs is to customize Next.js as little as possible to reduce the maintenance burden and decrease chances of breaking changes.\n\nQ: Why does cdk-nextjs depend upon Next.js v16.2 or higher?\nA: This version is required for [Image Optimization Caching](https://nextjs.org/docs/app/api-reference/config/next-config-js/incrementalCacheHandlerPath#image-optimization-caching) so that cdk-nextjs can depend upon public Next.js API.\n\nQ: How does cdk-nextjs support caching in Next.js?<br/>\nA: See [Caching Guide](./docs/caching-guide.md)\n\nQ: How customizable is the `cdk-nextjs` package for different use cases?<br/>\nA: The `cdk-nextjs` package offers deep customization through _prop-based_ overrides. These can be accessed in the construct props, allowing you to override settings like VPC configurations, CloudFront distribution, and ECS/Fargate setup. For example, you can modify `nextjsBuildProps` to customize the build process or use `nextjsDistributionProps` to adjust how CloudFront handles caching and routing. This level of control makes it easy to adapt the infrastructure to your application’s specific performance, networking, or deployment needs.\n\nQ: How can I use a custom domain with `cdk-nextjs`?<br/>\nA: See [low-cost example](./examples/low-cost/app.ts).\n\nQ: What is difference between `NextjsGlobalFunctionsProps.overrides.nextjsDistribution` and `NextjsGlobalFunctionsProps.overrides.nextjsGlobalFunctions.nextjsDistributionProps`<br/>\nA: `NextjsGlobalFunctionsProps.overrides.nextjsDistribution` allows you to customize any construct's props _within_ `NextjsDistribution` and is likely what you want whereas `NextjsGlobalFunctionsProps.overrides.nextjsGlobalFunctions.nextjsDistributionProps` allows you to customize the props passed into the construct: `NextjsDistribution`. This principle also applies to other similarly named overrides.\n\nQ: Why use container image for `NextjsGlobalFunctions`?<br />\nA: Read [The case for containers on Lambda (with benchmarks)](https://aaronstuyvenberg.com/posts/containers-on-lambda). Also, we depend upon [AWS Lambda Web Adapter](https://github.com/awslabs/aws-lambda-web-adapter) to transform lambda event payloads into HTTP requests that Next.js expects.\n\nQ: How can I `cdk bootstrap --cloudformation-execution-policies ...` my AWS Account with limited permissions for cdk-nextjs to deploy?<br />\nA: See [docs/cdk-nextjs-cfn-exec-policy.json](./docs/cdk-nextjs-cfn-exec-policy.json). Note, this IAM Policy is scoped to all cdk-nextjs constructs so you can remove services if you know the construct you're using doesn't use that service.\n\n## Acknowledgements\n\nThis construct was built on the shoulders of giants. Thank you to the contributors of [cdk-nextjs-standalone](https://github.com/jetbridge/cdk-nextjs) and [open-next](https://github.com/sst/open-next).\n\n## 🥂 Thanks Contributors\n\nThank you for helping other developers deploy Next.js apps on AWS\n\n<a href=\"https://github.com/cdklabs/cdk-nextjs/graphs/contributors\">\n <img src=\"https://contrib.rocks/image?repo=cdklabs/cdk-nextjs\" />\n</a>\n"
|
|
9035
|
+
"markdown": "\n[](https://www.npmjs.org/package/cdk-nextjs)\n\n\n# CDK Next.js Construct Library\n\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\nDeploy [Next.js](https://nextjs.org/) apps on [AWS](https://aws.amazon.com/) with the [AWS CDK](https://aws.amazon.com/cdk/).\n\n## Features\n\n- Supports all features of Next.js App and Pages Router for [Node.js Runtime](https://nextjs.org/docs/app/building-your-application/rendering/edge-and-nodejs-runtimes#nodejs-runtime).\n- Choose your AWS architecture for Next.js with the supported constructs: `NextjsGlobalFunctions`, `NextjsGlobalContainers`, `NextjsRegionalContainers`, `NextjsRegionalFunctions`.\n- Global Content Delivery Network (CDN) built with [Amazon CloudFront](https://aws.amazon.com/cloudfront/) to deliver content with low latency and high transfer speeds.\n- Serverless functions powered by [AWS Lambda](https://aws.amazon.com/lambda/) or serverless containers powered by [AWS Fargate](https://aws.amazon.com/fargate/).\n- Static assets (JS, CSS, public folder) are stored and served from [Amazon Simple Storage Service (S3)](https://aws.amazon.com/s3/) for all constructs (except `NextjsRegionalContainers`) to decrease latency and reduce compute costs by serving directly from S3.\n- [Optimized images](https://nextjs.org/docs/pages/building-your-application/optimizing/images), [data cache](https://nextjs.org/docs/app/building-your-application/caching#data-cache), and [full route cache](https://nextjs.org/docs/app/building-your-application/caching#full-route-cache) are shared across compute with [Amazon Simple Storage Service (S3)](https://aws.amazon.com/s3/) with supporting metadata in [Amazon DynamoDB](https://aws.amazon.com/dynamodb).\n- Customize every construct via `overrides`.\n- AWS security and operational best practices are utilized, guided by [cdk-nag](https://github.com/cdklabs/cdk-nag).\n- First class support for [monorepos](https://monorepo.tools/).\n- [Bring Your Own Resources](#bring-your-own-resources) — import existing AWS resources (CloudFront distributions, ECS clusters, ALBs, S3 buckets, DynamoDB tables).\n- [AWS GovCloud (US)](https://aws.amazon.com/govcloud-us) compatible with `NextjsRegionalFunctions` and `NextjsRegionalContainers`.\n\n## Prerequisites\n\n- Next.js app running v16.2 or higher. If you don't have one yet - follow [these steps](https://nextjs.org/docs/getting-started) to create one.\n- [AWS Cloud Development Kit](https://docs.aws.amazon.com/cdk/v2/guide/home.html) app either in the same package or separate package. cdk-nextjs supports monorepos.\n- Docker compatible container engine - we recommend [Rancher Desktop](https://rancherdesktop.io/) with dockerd (moby).\n- [Node.js](https://nodejs.org/en) v24 (or LTS)\n\n## Getting Started\n\n1. Install `cdk-nextjs` in the package(s) containing your CDK and Next.js app with `npm i cdk-nextjs`\n2. Update next.config.ts to include `adapterPath`:\n\n```ts\nimport { NextConfig } from \"next\";\n\nconst nextConfig: NextConfig = {\n // ...\n adapterPath: import.meta.resolve(\"cdk-nextjs/adapter\"), // for ESM\n // adapterPath: require.resolve(\"cdk-nextjs/adapter\"), // for CJS\n};\n\nexport default nextConfig;\n```\n\n3. Deploy your Next.js app to AWS: `cdk deploy`. Make sure you have [AWS credentials](https://docs.aws.amazon.com/cli/v1/userguide/cli-chap-configure.html) configured.\n4. Visit URL printed in terminal (CloudFormation Output) to view your Next.js app!\n\n### cdk-nextjs Created Dockerfile\n\ncdk-nextjs will generate a Dockerfile in your Next.js app's directory. cdk-nextjs does not have the ability to clean up the Dockerfile after the container is built so you can either add it to source control or gitignore it. When detectd, cdk-nextjs will not overwrite this Dockerfile so you're free to customize it.\n\n## Basic Example CDK App\n\n```ts\nimport { App, Stack, StackProps } from \"aws-cdk-lib\";\nimport { Construct } from \"constructs\";\nimport { NextjsGlobalFunctions } from \"cdk-nextjs\";\nimport { join } from \"node:path\";\n\nclass WebStack extends Stack {\n constructor(scope: Construct, id: string, props?: StackProps) {\n super(scope, id, props);\n new NextjsGlobalFunctions(this, \"Nextjs\", {\n buildDirectory: join(import.meta.dirname),\n healthCheckPath: \"/api/health\",\n });\n }\n}\n\nconst app = new App();\n\nnew WebStack(app, \"web-stack\");\n```\n\nSee [examples/](./examples/) for more usage examples.\n\n## Configuration\n\ncdk-nextjs supports configuration via environment variables. These are automatically set by the construct during deployment, but you can override them for custom behavior.\n\n### Cache Configuration\n\n#### `CDK_NEXTJS_MEMORY_CACHE_TTL_MS`\n\nTime to live in milliseconds for in-memory cache entries. After this duration, entries expire and are removed from the cache.\n\n**Important**: Due to the distributed nature of compute instances (Lambda functions, ECS Fargate containers, etc.), the memory cache by default provides eventual consistency across instances. Tag revalidations will clear the cache on the instance that processes the revalidation, but other instances may serve stale data until their cache entries expire. If you require strong consistency, set this to `0` to disable the memory cache (all requests will fall through to S3 + DynamoDB).\n\n**Default**: `3600000` (1 hour)\n\n**Examples**:\n\n- Short TTL (5 minutes): `300000` - for frequently changing data\n- Medium TTL (1 hour): `3600000` - balanced between freshness and performance\n- Long TTL (24 hours): `86400000` - for mostly static content\n\n**Trade-offs**:\n\n- Lower values: More cache misses, fresher data, higher S3/DynamoDB costs\n- Higher values: Fewer cache misses, better performance, but longer stale data windows\n\n#### `CDK_NEXTJS_MEMORY_CACHE_MAX_ENTRIES`\n\nMaximum number of cache entries to store in memory. When this limit is reached, the least recently used (LRU) entry is evicted.\n\n**Default**: `1000`\n\n**Examples**:\n\n- Small cache: `100` - minimal memory footprint for simple apps\n- Medium cache: `1000` - good balance for typical applications\n- Large cache: `10000` - for high-traffic apps with many unique pages\n\n**Trade-offs**:\n\n- Lower values: Less memory usage, more cache evictions\n- Higher values: More memory usage, fewer cache evictions, better hit rates\n\n**Memory considerations**: Each entry stores the full cache value (HTML, JSON, etc.). A typical page cache might be 10-100KB, so 1000 entries ≈ 10-100MB of memory. Consider your compute environment's memory limits (Lambda: 128MB-10GB, Fargate: 512MB-30GB) and size accordingly.\n\n### Infrastructure Configuration\n\nThe following environment variables are automatically set by the construct and typically don't need to be modified:\n\n#### `CDK_NEXTJS_BUILD_ID`\n\nUnique identifier for the Next.js build. Used for cache isolation between deployments.\n\n#### `CDK_NEXTJS_CACHE_BUCKET_NAME`\n\nS3 bucket name for storing cached data (optimized images, data cache, full route cache).\n\n#### `CDK_NEXTJS_REVALIDATION_TABLE_NAME`\n\nDynamoDB table name for tracking cache revalidations and tag-to-cache-key mappings.\n\n#### `DEBUG`\n\nSet to `cdk-nextjs:*` to set debug logs. This is especially useful to see cache handler activity.\n\n## Architecture\n\n### `NextjsGlobalFunctions`\n\nArchitecture includes [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) Functions to respond to dynamic requests and [CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Introduction.html) Distribution to globally serve requests and distribute static assets. Use this construct when you have unpredictable traffic, can afford occasional latency (i.e. cold starts - [typically 1% of production traffic](https://aws.amazon.com/blogs/compute/operating-lambda-performance-optimization-part-1/)), and/or want the most granular pricing model. ([code](./src/root-constructs/nextjs-global-functions.ts))\n\n```mermaid\narchitecture-beta\n group aws(cloud)[AWS Cloud]\n group cache[Cache Layer] in aws\n\n service user(internet)[User]\n service cloudfront(server)[CloudFront Distribution] in aws\n service s3static(disk)[S3 Static Assets] in aws\n service lambda(server)[Lambda Function] in aws\n service dynamodb(database)[DynamoDB Table] in cache\n service s3cache(disk)[S3 Cache Bucket] in cache\n\n user:R --> L:cloudfront\n cloudfront:R --> L:s3static\n cloudfront:R --> L:lambda\n lambda:R --> L:dynamodb\n lambda:R --> L:s3cache\n```\n\n### `NextjsGlobalContainers`\n\nArchitecture includes [ECS Fargate](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html) containers to respond to dynamic requests and [CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Introduction.html) Distribution to globally serve requests and distribute static assets. Use this option when you have predictable traffic, need the lowest latency, and/or can afford a less granular pricing model. ([code](./src/root-constructs/nextjs-global-containers.ts))\n\n```mermaid\narchitecture-beta\n group aws(cloud)[AWS Cloud]\n group vpc[VPC] in aws\n group cache[Cache Layer] in aws\n\n service user(internet)[User]\n service cloudfront(server)[CloudFront Distribution] in aws\n service s3static(disk)[S3 Static Assets] in aws\n service alb(server)[Application Load Balancer] in vpc\n service fargate(server)[ECS Fargate Containers] in vpc\n service dynamodb(database)[DynamoDB Table] in cache\n service s3cache(disk)[S3 Cache Bucket] in cache\n\n user:R --> L:cloudfront\n cloudfront:R --> L:s3static\n cloudfront:R --> L:alb\n alb:R --> L:fargate\n fargate:R --> L:dynamodb\n fargate:R --> L:s3cache\n```\n\n### `NextjsRegionalContainers`\n\nArchitecture includes [ECS Fargate](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html) containers to respond to dynamic requests and [Application Load Balancer](https://aws.amazon.com/elasticloadbalancing/application-load-balancer/) to regionally serve requests. Use this options when you cannot use Amazon CloudFront (i.e. [AWS GovCloud](https://aws.amazon.com/govcloud-us/?whats-new.sort-by=item.additionalFields.postDateTime&whats-new.sort-order=desc)). ([code](./src/root-constructs/nextjs-regional-containers.ts#L41))\n\n```mermaid\narchitecture-beta\n group aws(cloud)[AWS Cloud]\n group vpc[VPC] in aws\n group cache[Cache Layer] in aws\n\n service user(internet)[User]\n service alb(server)[Application Load Balancer] in vpc\n service fargate(server)[ECS Fargate Containers] in vpc\n service dynamodb(database)[DynamoDB Table] in cache\n service s3cache(disk)[S3 Cache Bucket] in cache\n\n user:R --> L:alb\n alb:R --> L:fargate\n fargate:R --> L:dynamodb\n fargate:R --> L:s3cache\n```\n\n### `NextjsRegionalFunctions`\n\nArchitecture includes [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) Functions to respond to dynamic requests and [API Gateway REST API](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-rest-api.html) to regionally serve requests and distribute static assets. Use this options when you cannot use Amazon CloudFront (i.e. [AWS GovCloud](https://aws.amazon.com/govcloud-us/?whats-new.sort-by=item.additionalFields.postDateTime&whats-new.sort-order=desc)). ([code](./src/root-constructs/nextjs-regional-functions.ts))\n\n```mermaid\narchitecture-beta\n group aws(cloud)[AWS Cloud]\n group cache[Cache Layer] in aws\n\n service user(internet)[User]\n service apigateway(server)[API Gateway REST API] in aws\n service s3static(disk)[S3 Static Assets] in aws\n service lambda(server)[Lambda Function] in aws\n service dynamodb(database)[DynamoDB Table] in cache\n service s3cache(disk)[S3 Cache Bucket] in cache\n\n user:R --> L:apigateway\n apigateway:R --> L:s3static\n apigateway:R --> L:lambda\n lambda:R --> L:dynamodb\n lambda:R --> L:s3cache\n```\n\n## Why\n\nThe simplest path to deploy Next.js is on [Vercel](https://vercel.com/) - the Platform-as-a-Service company behind Next.js. However, deploying to Vercel can be expensive and some developers want all of their workloads running _directly_ on AWS. Developers can deploy Next.js on AWS through [AWS Amplify Hosting](https://docs.aws.amazon.com/amplify/latest/userguide/ssr-Amplifysupport.html), but Amplify does not support all Next.js features and manages AWS resources for you so they cannot be customized. If Amplify meets your requirements we recommend you use it, but if you want to use all Next.js features or want more visibility into the AWS resources then this construct is for you.\n\n## Design Principles\n\n- Treat Next.js as black box. Minimize reliance on Next.js internal APIs to reduce chance of incompatibility between this construct and future versions of Next.js.\n- Security first.\n- One architecture does not fit all.\n- Enable customization everywhere.\n\n## Bring Your Own Resources\n\ncdk-nextjs supports importing existing AWS resources instead of creating new ones. This is especially useful for per-branch (MR/PR) environments where you deploy shared infrastructure once and spin up lightweight branch stacks that reuse it.\n\n### Supported Resources\n\n| Resource | Prop | Available On |\n| --------------------------- | -------------------- | ---------------------------------------------------- |\n| S3 Cache Bucket | `cacheBucket` | All constructs |\n| DynamoDB Revalidation Table | `revalidationTable` | All constructs |\n| S3 Static Assets Bucket | `staticAssetsBucket` | All constructs |\n| CloudFront Distribution | `distribution` | `NextjsGlobalFunctions`, `NextjsGlobalContainers` |\n| ECS Cluster | `ecsCluster` | `NextjsGlobalContainers`, `NextjsRegionalContainers` |\n| ALB | `alb` | `NextjsGlobalContainers`, `NextjsRegionalContainers` |\n\n### Resource Isolation\n\n- **Cache bucket and DynamoDB table** are isolated by `buildId` prefix. Multiple branches safely share one bucket/table with no conflicts.\n- **Static assets bucket** — Next.js includes content hashes in static asset filenames, so different branches deploying the same file will produce identical content. It's safe for branches to overwrite each other. If you're already using `basePath` for routing, assets will naturally be prefixed by it.\n\n### Shared ALB and `removeAutoCreatedListener()`\n\n`ApplicationLoadBalancedFargateService` always creates a listener on port 80 — there is no opt-out. When you import an ALB that already has a listener on that port, the duplicate causes a deployment failure. Since CDK doesn't expose a way to prevent this, `removeAutoCreatedListener()` surgically removes the generated CloudFormation resources: the `CfnListener`, its security group ingress rule, rebuilds the ECS service `DependsOn` without the deleted listener, and removes auto-created `CfnOutput` resources:\n\n```ts\nconst nextjs = new NextjsRegionalContainers(this, \"Nextjs\", {\n // ...\n alb: sharedAlb,\n ecsCluster: sharedCluster,\n});\nnextjs.nextjsContainers.removeAutoCreatedListener();\n```\n\n### Examples\n\nSee [examples/bring-your-own/](./examples/bring-your-own/) for a complete deployable example with shared infrastructure and per-branch host-header routing.\n\n## Preview Environments (Per-Branch Deployments)\n\ncdk-nextjs can deploy ephemeral preview environments per merge request (MR) or pull request (PR). The recommended approach uses subdomain-based routing (`pr-123.app.example.com`) so each preview environment runs the same Next.js build as production — no `basePath` configuration or separate builds required.\n\nSee [examples/bring-your-own/](./examples/bring-your-own/) for a fully deployable example using `NextjsRegionalContainers` with a shared ALB, ECS Cluster, S3 buckets, and DynamoDB table — connected via SSM Parameter Store.\n\n### Prerequisites\n\n- Wildcard DNS record: `*.app.example.com` → your routing layer (ALB, CloudFront, API Gateway)\n- Wildcard ACM certificate: `*.app.example.com`\n\n### Per-Architecture Recommendations\n\n#### `NextjsGlobalContainers` and `NextjsRegionalContainers` (ALB-based)\n\nSubdomain routing via ALB host-based listener rules. This is the fastest and simplest approach. For `NextjsGlobalContainers`, CloudFront forwards the `Host` header to the ALB origin, so the ALB handles all branch routing — no CloudFront changes needed per branch.\n\nSee [examples/bring-your-own/](./examples/bring-your-own/) for the full implementation.\n\n#### `NextjsRegionalFunctions` (API Gateway)\n\nSubdomain routing via API Gateway custom domain mappings.\n\n1. Deploy shared infrastructure once: S3 buckets, DynamoDB table\n2. Per branch, deploy a cdk-nextjs stack that imports shared resources and creates its own API Gateway\n3. Create an API Gateway custom domain (`pr-123.app.example.com`) mapped to the branch's API stage\n4. Tear down the branch stack on MR close\n\n#### `NextjsGlobalFunctions` (Lambda + CloudFront)\n\nRequires a separate cdk-nextjs stack per branch, each with its own CloudFront distribution. CloudFront cannot route to different Lambda Function URL origins based on the `Host` header — origin selection is determined by cache behavior path patterns, not request headers.\n\n1. Deploy shared infrastructure once: S3 buckets, DynamoDB table\n2. Per branch, deploy a full cdk-nextjs stack that imports shared resources (`cacheBucket`, `revalidationTable`, `staticAssetsBucket`) but creates its own CloudFront distribution and Lambda function\n3. Point `pr-123.app.example.com` DNS to the branch's CloudFront distribution\n4. Tear down the branch stack on MR close\n\nNote: CloudFront distributions take several minutes to create/update, so this architecture has the slowest preview environment spin-up time.\n\n## Limitations\n\n- If using `NextjsGlobalFunctions` or `NextjsGlobalContainers` (which use CloudFront), the number of top level files/directories cannot exceed 25, the max number of behaviors a CloudFront Distribution supports. We recommend you put all of your public assets into one top level directory (i.e. public/static) so you don't reach this limit. See [CloudFront Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) for more information.\n- If using `NextjsGlobalFunctions`, when [revalidating data in Next.js](https://nextjs.org/docs/app/building-your-application/data-fetching/fetching-caching-and-revalidating#on-demand-revalidation) (i.e. [revalidatePath](https://nextjs.org/docs/app/api-reference/functions/revalidatePath)), the CloudFront Cache will still hold stale data. You'll need to use AWS SDK JS V3 [CreateInvalidationCommand](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-cloudfront/Class/CreateInvalidationCommand/) to manually invalidate the path in CloudFront. See more [here](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html).\n- If using `NextjsGlobalFunctions`, setting an Authorization header won't work by default because of Lambda Function URL with IAM Auth is already using the Authorization header. You can use the `AWS_LWA_AUTHORIZATION_SOURCE` environment variable of [AWS Lambda Web Adapter](https://github.com/awslabs/aws-lambda-web-adapter) to set an alternative Authorization header in the client which will then be set to the Authorization header when it reaches your app.\n- `NextjsRegionalFunctions` streaming depends on whether your server Lambda supports response streaming (e.g. [AWS Lambda Web Adapter](https://github.com/awslabs/aws-lambda-web-adapter)'s `AWS_LWA_INVOKE_MODE`) — override `overrides.nextjsApi.dynamicIntegrationProps.responseTransferMode` to `BUFFERED` if it doesn't, otherwise API Gateway returns a 500 for every request.\n- If using `NextjsRegionalFunctions` without a custom domain, API Gateway REST APIs require a [stage name](https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-stages.html) (default: `/prod`) to be specified. This causes links to pages and static assets to break because they're not prefixed with the stage name. You can work around this issue by specifying [basePath](https://nextjs.org/docs/app/api-reference/config/next-config-js/basePath) in next.config.js as your stage name. Additionally, you'll need to add middleware logic to rewrite requests to include the stage name because API Gateway does not include the stage name in the path passed to Lambda. See [examples/app-playground/middleware.ts](./examples/app-playground/middleware.ts).\n\n## Additional Security Recommendations\n\nThis construct by default implements all AWS security best practices that a CDK construct library reasonably can considering cost and complexity. Below are additional security practices we recommend you implement within your CDK app. Please see them below:\n\n- [VPC Flow Logs](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html). See [examples/](./examples) for sample implementation.\n- [Scan ECR Images For Vulnerabilities](https://docs.aws.amazon.com/AmazonECR/latest/userguide/image-scanning.html).\n- For `NextjsGlobalFunctions` and `NextjsGlobalContainers`, [CloudFront Access Logs](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html). See [examples/](./examples) for sample implementation.\n- For `NextjsGlobalContainers` and `NextjsRegionalContainers`, use [ALB HTTPS Listener](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html)\n- If using `NextjsGlobalContainers` and `NextjsRegionalContainers`, enable `ReadonlyRootFilesystem`. This will remove ability to use Static On-Demand feature of Next.js so it's not enabled by default, but is recommended for security.\n\n## Estimated Costs\n\n### Assumptions\n\nThe following basic assumptions were used for a typical medium Next.js app. See [docs/usage.xlsx](./docs/usage.xlsx) for detailed assumptions and usage per construct type that you can plug into AWS Pricing Calculator.\n\n| Metric | Value |\n| ------------------------------------------------------------ | ----- |\n| Monthly Active Users | 1K |\n| Pages Visited Per Month Per User | 100 |\n| Avg Request Size | 50KB |\n| Static Requests Per Page (js, css, etc) | 15 |\n| Static Requests Cache Hit % | 50% |\n| Static Assets Size | 10GB |\n| Dynamic Requests Per Page (document, optimized images, etc.) | 5 |\n| Dynamic Cache Read % | 50% |\n| Dynamic Cache Write % | 5% |\n| Dynamic Cache Data Size | 10GB |\n| Average Dynamic Cache Request Size | 100KB |\n| Dynamic Revalidate Tag % | 1% |\n\nMore Details:\n\n- Assume ARM architecture for compute\n- AWS Region: us-east-1\n- Excludes charges related to: CloudWatch Logs, NAT Gateway data processing\n\n### NextjsGlobalFunctions\n\n[AWS Pricing Calculator](https://calculator.aws/#/estimate?id=23611f6fea87ef05d5fe87c33135ddde43b17a98)\n\n| Service | Monthly Usage | Estimated Monthly Cost (USD) |\n| ---------- | ---------------------------------------------- | ---------------------------- |\n| Lambda | 500K requests, 2 GB memory, 150ms avg duration | $0.00 (Always Free Tier) |\n| CloudFront | 2M requests, 100 GB transfer to internet | $0.00 (Always Free Tier) |\n| S3 | 20 GB storage, 1M GET, 250K PUT requests | $2.11 |\n| DynamoDB | 10 GB storage, 5K Reads, 5K Writes | $2.50 |\n| Total | | $8.09 |\n\n### NextjsGlobalContainers\n\n[AWS Pricing Calculator](https://calculator.aws/#/estimate?id=02f0073e612d1eee2a7ccace2c636adc5f0acab7)\n\n| Service | Monthly Usage | Estimated Monthly Cost (USD) |\n| ----------- | ---------------------------------------- | ---------------------------- |\n| ECS Fargate | 1 task (1 vCPU, 2 GB) | $28.44 |\n| ALB | 1 LB, 1.04GB/hr, 5.79 conn/sec | $22.50 |\n| CloudFront | 2M requests, 100 GB transfer to internet | $0.00 (Always Free Tier) |\n| S3 | 20 GB storage, 1M GET, 250K PUT requests | $2.11 |\n| DynamoDB | 10 GB storage, 5K Reads, 5K Writes | $2.50 |\n| VPC | NAT Gateway, 2 AZs | $65.70 |\n| Total | | $121.25 |\n\n### NextjsRegionalContainers\n\n[AWS Pricing Calculator](https://calculator.aws/#/estimate?id=e214abe60eb4e24fc5866d07ef4355393261af3c)\n\n| Service | Monthly Usage | Estimated Monthly Cost (USD) |\n| ----------- | ------------------------------------------ | ---------------------------- |\n| ECS Fargate | 1 task (2 vCPU, 4 GB), always on | $28.44 |\n| ALB | 1 LB, 4.17 GB/hr, 23.15 conn/sec | $40.78 |\n| S3 | 10 GB storage, 250K GET, 250K PUT requests | $1.58 |\n| DynamoDB | 10 GB storage, 5K Reads, 5K Writes | $2.50 |\n| VPC | NAT Gateway, 2 AZs | $65.70 |\n| Total | | $139.00 |\n\n### NextjsRegionalFunctions\n\n[AWS Pricing Calculator](https://calculator.aws/#/estimate?id=60da38c7993c1baeee2fee4bd19ba6441608bb15)\n\n| Service | Monthly Usage | Estimated Monthly Cost (USD) |\n| ----------- | ---------------------------------------------- | ---------------------------- |\n| Lambda | 500K requests, 2 GB memory, 150ms avg duration | $0.00 (Always Free Tier) |\n| API Gateway | 2M requests | $7.00 |\n| S3 | 10 GB storage, 250K GET, 250K PUT requests | $1.58 |\n| DynamoDB | 10 GB storage, 5K Reads, 5K Writes | $2.50 |\n| Total | | $11.08 |\n\n## Performance\n\n[Artillery Playwright](https://www.artillery.io/docs/reference/engines/playwright#overview) app playground example load tests results with 1K concurrent users. Reproduce with `pnpm test-fargate:lg` within `examples/load-tests`.\n\n### NextjsGlobalFunctions\n\n<details>\n<summary>`NextjsGlobalFunctions` Performance Details</summary>\n\n```bash\nbrowser.page.TTFB.https://abc123.cloudfront.net/isr:\n min: ......................................................................... 6.3\n max: ......................................................................... 5017.4\n mean: ........................................................................ 11.5\n median: ...................................................................... 10.3\n p95: ......................................................................... 15.6\n p99: ......................................................................... 22.9\nbrowser.page.TTFB.https://abc123.cloudfront.net/isr/1:\n min: ......................................................................... 3.2\n max: ......................................................................... 560.6\n mean: ........................................................................ 9.4\n median: ...................................................................... 5.4\n p95: ......................................................................... 11.1\n p99: ......................................................................... 162.4\nbrowser.page.TTFB.https://abc123.cloudfront.net/isr/2:\n min: ......................................................................... 3.1\n max: ......................................................................... 1511.9\n mean: ........................................................................ 9.2\n median: ...................................................................... 5.2\n p95: ......................................................................... 10.7\n p99: ......................................................................... 149.9\nbrowser.page.TTFB.https://abc123.cloudfront.net/isr/3:\n min: ......................................................................... 3.4\n max: ......................................................................... 131.1\n mean: ........................................................................ 7.1\n median: ...................................................................... 5.3\n p95: ......................................................................... 10.1\n p99: ......................................................................... 64.7\nbrowser.page.TTFB.https://abc123.cloudfront.net/ssg:\n min: ......................................................................... 6.4\n max: ......................................................................... 5015.1\n mean: ........................................................................ 11.5\n median: ...................................................................... 10.3\n p95: ......................................................................... 15.6\n p99: ......................................................................... 23.3\nbrowser.page.TTFB.https://abc123.cloudfront.net/ssg/3:\n min: ......................................................................... 2.9\n max: ......................................................................... 98\n mean: ........................................................................ 5.1\n median: ...................................................................... 4.6\n p95: ......................................................................... 8.2\n p99: ......................................................................... 12.8\nbrowser.page.TTFB.https://abc123.cloudfront.net/ssr:\n min: ......................................................................... 6.4\n max: ......................................................................... 5018.6\n mean: ........................................................................ 11.3\n median: ...................................................................... 10.3\n p95: ......................................................................... 15.6\n p99: ......................................................................... 23.3\nbrowser.page.TTFB.https://abc123.cloudfront.net/ssr/2:\n min: ......................................................................... 83.4\n max: ......................................................................... 150.7\n mean: ........................................................................ 119\n median: ...................................................................... 111.1\n p95: ......................................................................... 147\n p99: ......................................................................... 147\nbrowser.page.TTFB.https://abc123.cloudfront.net/streaming:\n min: ......................................................................... 6.4\n max: ......................................................................... 5015.2\n mean: ........................................................................ 11.8\n median: ...................................................................... 10.3\n p95: ......................................................................... 15.6\n p99: ......................................................................... 23.3\n```\n\n</details>\n\n\n\n### NextjsGlobalContainers\n\n<details>\n<summary>`NextjsGlobalContainers` Performance Details</summary>\n\n```bash\nTODO\n```\n\n</details>\n\n### NextjsRegionalContainers\n\n<details>\n<summary>`NextjsRegionalContainers` Performance Details</summary>\n\n```bash\nTODO\n```\n\n### NextjsRegionalFunctions\n\n<details>\n<summary>`NextjsRegionalFunctions` Performance Details</summary>\n\n```bash\nTODO\n```\n\n</details>\n\n## Guides\n\n- [Caching Guide](./docs/caching-guide.md)\n- [Pruning Guide](./docs/pruning-guide.md)\n- [Next Build Output Guide](./docs/next-build-output-guide.ts)\n- [Development Guide](./docs/development-guide.ts)\n\n## Contributing\n\nSteps to build locally:\n\n1. `git clone https://github.com/cdklabs/cdk-nextjs.git`\n2. `cd cdk-nextjs`\n3. `pnpm i && pnpm compile && pnpm build`\n\nThis project uses Projen, so make sure to not edit [Projen](https://projen.io/) created files and only edit .projenrc.ts.\n\n## FAQ\n\nQ: How does this compare to [cdk-nextjs-standalone](https://github.com/jetbridge/cdk-nextjs)?<br/>\nA: cdk-nextjs-standalone relies on [OpenNext](https://github.com/sst/open-next). OpenNext injects custom code to interact with private Next.js APIs. While OpenNext is able to make some optimizations that are great for serverless environments, this comes at an increase maintenance cost and increased chances for breaking changes. A goal of cdk-nextjs is to customize Next.js as little as possible to reduce the maintenance burden and decrease chances of breaking changes.\n\nQ: Why does cdk-nextjs depend upon Next.js v16.2 or higher?\nA: This version is required for [Image Optimization Caching](https://nextjs.org/docs/app/api-reference/config/next-config-js/incrementalCacheHandlerPath#image-optimization-caching) so that cdk-nextjs can depend upon public Next.js API.\n\nQ: How does cdk-nextjs support caching in Next.js?<br/>\nA: See [Caching Guide](./docs/caching-guide.md)\n\nQ: How customizable is the `cdk-nextjs` package for different use cases?<br/>\nA: The `cdk-nextjs` package offers deep customization through _prop-based_ overrides. These can be accessed in the construct props, allowing you to override settings like VPC configurations, CloudFront distribution, and ECS/Fargate setup. For example, you can modify `nextjsBuildProps` to customize the build process or use `nextjsDistributionProps` to adjust how CloudFront handles caching and routing. This level of control makes it easy to adapt the infrastructure to your application’s specific performance, networking, or deployment needs.\n\nQ: How can I use a custom domain with `cdk-nextjs`?<br/>\nA: See [low-cost example](./examples/low-cost/app.ts).\n\nQ: What is difference between `NextjsGlobalFunctionsProps.overrides.nextjsDistribution` and `NextjsGlobalFunctionsProps.overrides.nextjsGlobalFunctions.nextjsDistributionProps`<br/>\nA: `NextjsGlobalFunctionsProps.overrides.nextjsDistribution` allows you to customize any construct's props _within_ `NextjsDistribution` and is likely what you want whereas `NextjsGlobalFunctionsProps.overrides.nextjsGlobalFunctions.nextjsDistributionProps` allows you to customize the props passed into the construct: `NextjsDistribution`. This principle also applies to other similarly named overrides.\n\nQ: Why use container image for `NextjsGlobalFunctions`?<br />\nA: Read [The case for containers on Lambda (with benchmarks)](https://aaronstuyvenberg.com/posts/containers-on-lambda). Also, we depend upon [AWS Lambda Web Adapter](https://github.com/awslabs/aws-lambda-web-adapter) to transform lambda event payloads into HTTP requests that Next.js expects.\n\nQ: How can I `cdk bootstrap --cloudformation-execution-policies ...` my AWS Account with limited permissions for cdk-nextjs to deploy?<br />\nA: See [docs/cdk-nextjs-cfn-exec-policy.json](./docs/cdk-nextjs-cfn-exec-policy.json). Note, this IAM Policy is scoped to all cdk-nextjs constructs so you can remove services if you know the construct you're using doesn't use that service.\n\n## Acknowledgements\n\nThis construct was built on the shoulders of giants. Thank you to the contributors of [cdk-nextjs-standalone](https://github.com/jetbridge/cdk-nextjs) and [open-next](https://github.com/sst/open-next).\n\n## 🥂 Thanks Contributors\n\nThank you for helping other developers deploy Next.js apps on AWS\n\n<a href=\"https://github.com/cdklabs/cdk-nextjs/graphs/contributors\">\n <img src=\"https://contrib.rocks/image?repo=cdklabs/cdk-nextjs\" />\n</a>\n"
|
|
9036
9036
|
},
|
|
9037
9037
|
"repository": {
|
|
9038
9038
|
"type": "git",
|
|
@@ -9059,7 +9059,7 @@
|
|
|
9059
9059
|
},
|
|
9060
9060
|
"locationInModule": {
|
|
9061
9061
|
"filename": "src/nextjs-api.ts",
|
|
9062
|
-
"line":
|
|
9062
|
+
"line": 90
|
|
9063
9063
|
},
|
|
9064
9064
|
"parameters": [
|
|
9065
9065
|
{
|
|
@@ -9085,7 +9085,7 @@
|
|
|
9085
9085
|
"kind": "class",
|
|
9086
9086
|
"locationInModule": {
|
|
9087
9087
|
"filename": "src/nextjs-api.ts",
|
|
9088
|
-
"line":
|
|
9088
|
+
"line": 79
|
|
9089
9089
|
},
|
|
9090
9090
|
"name": "NextjsApi",
|
|
9091
9091
|
"properties": [
|
|
@@ -9097,7 +9097,7 @@
|
|
|
9097
9097
|
"immutable": true,
|
|
9098
9098
|
"locationInModule": {
|
|
9099
9099
|
"filename": "src/nextjs-api.ts",
|
|
9100
|
-
"line":
|
|
9100
|
+
"line": 83
|
|
9101
9101
|
},
|
|
9102
9102
|
"name": "api",
|
|
9103
9103
|
"type": {
|
|
@@ -9137,6 +9137,22 @@
|
|
|
9137
9137
|
"fqn": "aws-cdk-lib.aws_apigateway.LambdaIntegrationOptions"
|
|
9138
9138
|
}
|
|
9139
9139
|
},
|
|
9140
|
+
{
|
|
9141
|
+
"abstract": true,
|
|
9142
|
+
"docs": {
|
|
9143
|
+
"stability": "stable"
|
|
9144
|
+
},
|
|
9145
|
+
"immutable": true,
|
|
9146
|
+
"locationInModule": {
|
|
9147
|
+
"filename": "src/nextjs-api.ts",
|
|
9148
|
+
"line": 32
|
|
9149
|
+
},
|
|
9150
|
+
"name": "imageIntegrationProps",
|
|
9151
|
+
"optional": true,
|
|
9152
|
+
"type": {
|
|
9153
|
+
"fqn": "aws-cdk-lib.aws_apigateway.LambdaIntegrationOptions"
|
|
9154
|
+
}
|
|
9155
|
+
},
|
|
9140
9156
|
{
|
|
9141
9157
|
"abstract": true,
|
|
9142
9158
|
"docs": {
|
|
@@ -9198,7 +9214,7 @@
|
|
|
9198
9214
|
"kind": "interface",
|
|
9199
9215
|
"locationInModule": {
|
|
9200
9216
|
"filename": "src/nextjs-api.ts",
|
|
9201
|
-
"line":
|
|
9217
|
+
"line": 35
|
|
9202
9218
|
},
|
|
9203
9219
|
"name": "NextjsApiProps",
|
|
9204
9220
|
"properties": [
|
|
@@ -9211,7 +9227,7 @@
|
|
|
9211
9227
|
"immutable": true,
|
|
9212
9228
|
"locationInModule": {
|
|
9213
9229
|
"filename": "src/nextjs-api.ts",
|
|
9214
|
-
"line":
|
|
9230
|
+
"line": 48
|
|
9215
9231
|
},
|
|
9216
9232
|
"name": "publicDirEntries",
|
|
9217
9233
|
"type": {
|
|
@@ -9232,7 +9248,7 @@
|
|
|
9232
9248
|
"immutable": true,
|
|
9233
9249
|
"locationInModule": {
|
|
9234
9250
|
"filename": "src/nextjs-api.ts",
|
|
9235
|
-
"line":
|
|
9251
|
+
"line": 69
|
|
9236
9252
|
},
|
|
9237
9253
|
"name": "staticAssetsBucket",
|
|
9238
9254
|
"type": {
|
|
@@ -9248,7 +9264,7 @@
|
|
|
9248
9264
|
"immutable": true,
|
|
9249
9265
|
"locationInModule": {
|
|
9250
9266
|
"filename": "src/nextjs-api.ts",
|
|
9251
|
-
"line":
|
|
9267
|
+
"line": 39
|
|
9252
9268
|
},
|
|
9253
9269
|
"name": "basePath",
|
|
9254
9270
|
"optional": true,
|
|
@@ -9256,6 +9272,24 @@
|
|
|
9256
9272
|
"primitive": "string"
|
|
9257
9273
|
}
|
|
9258
9274
|
},
|
|
9275
|
+
{
|
|
9276
|
+
"abstract": true,
|
|
9277
|
+
"docs": {
|
|
9278
|
+
"remarks": "When\nomitted, no `_next/image` resource is created and those requests fall\nthrough to `serverFunction` via the `{proxy+}` catch-all.\n\nWhen provided, it is assumed to support Lambda response streaming (as the\ndedicated image Lambda this package builds does) and is invoked with\n`ResponseTransferMode.STREAM` accordingly. If you supply a custom\n`imageFunction` that doesn't support streaming, override\n`responseTransferMode` to `BUFFERED` via `overrides.imageIntegrationProps`,\notherwise API Gateway returns a 502.",
|
|
9279
|
+
"stability": "stable",
|
|
9280
|
+
"summary": "Dedicated image optimization Lambda for the `_next/image` route."
|
|
9281
|
+
},
|
|
9282
|
+
"immutable": true,
|
|
9283
|
+
"locationInModule": {
|
|
9284
|
+
"filename": "src/nextjs-api.ts",
|
|
9285
|
+
"line": 65
|
|
9286
|
+
},
|
|
9287
|
+
"name": "imageFunction",
|
|
9288
|
+
"optional": true,
|
|
9289
|
+
"type": {
|
|
9290
|
+
"fqn": "aws-cdk-lib.aws_lambda.IFunction"
|
|
9291
|
+
}
|
|
9292
|
+
},
|
|
9259
9293
|
{
|
|
9260
9294
|
"abstract": true,
|
|
9261
9295
|
"docs": {
|
|
@@ -9265,7 +9299,7 @@
|
|
|
9265
9299
|
"immutable": true,
|
|
9266
9300
|
"locationInModule": {
|
|
9267
9301
|
"filename": "src/nextjs-api.ts",
|
|
9268
|
-
"line":
|
|
9302
|
+
"line": 43
|
|
9269
9303
|
},
|
|
9270
9304
|
"name": "overrides",
|
|
9271
9305
|
"optional": true,
|
|
@@ -9283,7 +9317,7 @@
|
|
|
9283
9317
|
"immutable": true,
|
|
9284
9318
|
"locationInModule": {
|
|
9285
9319
|
"filename": "src/nextjs-api.ts",
|
|
9286
|
-
"line":
|
|
9320
|
+
"line": 52
|
|
9287
9321
|
},
|
|
9288
9322
|
"name": "serverFunction",
|
|
9289
9323
|
"optional": true,
|
|
@@ -9301,7 +9335,7 @@
|
|
|
9301
9335
|
"immutable": true,
|
|
9302
9336
|
"locationInModule": {
|
|
9303
9337
|
"filename": "src/nextjs-api.ts",
|
|
9304
|
-
"line":
|
|
9338
|
+
"line": 73
|
|
9305
9339
|
},
|
|
9306
9340
|
"name": "vpc",
|
|
9307
9341
|
"optional": true,
|
|
@@ -9327,7 +9361,7 @@
|
|
|
9327
9361
|
},
|
|
9328
9362
|
"locationInModule": {
|
|
9329
9363
|
"filename": "src/root-constructs/nextjs-base-construct.ts",
|
|
9330
|
-
"line":
|
|
9364
|
+
"line": 145
|
|
9331
9365
|
},
|
|
9332
9366
|
"parameters": [
|
|
9333
9367
|
{
|
|
@@ -9359,7 +9393,7 @@
|
|
|
9359
9393
|
"kind": "class",
|
|
9360
9394
|
"locationInModule": {
|
|
9361
9395
|
"filename": "src/root-constructs/nextjs-base-construct.ts",
|
|
9362
|
-
"line":
|
|
9396
|
+
"line": 131
|
|
9363
9397
|
},
|
|
9364
9398
|
"methods": [
|
|
9365
9399
|
{
|
|
@@ -9369,7 +9403,7 @@
|
|
|
9369
9403
|
},
|
|
9370
9404
|
"locationInModule": {
|
|
9371
9405
|
"filename": "src/root-constructs/nextjs-base-construct.ts",
|
|
9372
|
-
"line":
|
|
9406
|
+
"line": 183
|
|
9373
9407
|
},
|
|
9374
9408
|
"name": "computeBaseProps",
|
|
9375
9409
|
"protected": true,
|
|
@@ -9378,6 +9412,59 @@
|
|
|
9378
9412
|
"fqn": "cdk-nextjs.NextjsComputeBaseProps"
|
|
9379
9413
|
}
|
|
9380
9414
|
}
|
|
9415
|
+
},
|
|
9416
|
+
{
|
|
9417
|
+
"docs": {
|
|
9418
|
+
"stability": "stable",
|
|
9419
|
+
"summary": "Shared by `NextjsGlobalFunctions` and `NextjsRegionalFunctions`."
|
|
9420
|
+
},
|
|
9421
|
+
"locationInModule": {
|
|
9422
|
+
"filename": "src/root-constructs/nextjs-base-construct.ts",
|
|
9423
|
+
"line": 230
|
|
9424
|
+
},
|
|
9425
|
+
"name": "createNextjsFunctions",
|
|
9426
|
+
"parameters": [
|
|
9427
|
+
{
|
|
9428
|
+
"name": "overrides",
|
|
9429
|
+
"optional": true,
|
|
9430
|
+
"type": {
|
|
9431
|
+
"fqn": "cdk-nextjs.NextjsFunctionsOverrides"
|
|
9432
|
+
}
|
|
9433
|
+
}
|
|
9434
|
+
],
|
|
9435
|
+
"protected": true,
|
|
9436
|
+
"returns": {
|
|
9437
|
+
"type": {
|
|
9438
|
+
"fqn": "cdk-nextjs.NextjsFunctions"
|
|
9439
|
+
}
|
|
9440
|
+
}
|
|
9441
|
+
},
|
|
9442
|
+
{
|
|
9443
|
+
"docs": {
|
|
9444
|
+
"remarks": "Only called when the dedicated image optimization Lambda is\nenabled, which is what makes the missing-asset check below an invariant\nviolation rather than a supported configuration.",
|
|
9445
|
+
"stability": "stable",
|
|
9446
|
+
"summary": "Shared by `NextjsGlobalFunctions` and `NextjsRegionalFunctions`, the only two `NextjsType`s for which `NextjsBuild` produces an image optimization asset."
|
|
9447
|
+
},
|
|
9448
|
+
"locationInModule": {
|
|
9449
|
+
"filename": "src/root-constructs/nextjs-base-construct.ts",
|
|
9450
|
+
"line": 253
|
|
9451
|
+
},
|
|
9452
|
+
"name": "createNextjsImageFunction",
|
|
9453
|
+
"parameters": [
|
|
9454
|
+
{
|
|
9455
|
+
"name": "overrides",
|
|
9456
|
+
"optional": true,
|
|
9457
|
+
"type": {
|
|
9458
|
+
"fqn": "cdk-nextjs.NextjsImageFunctionOverrides"
|
|
9459
|
+
}
|
|
9460
|
+
}
|
|
9461
|
+
],
|
|
9462
|
+
"protected": true,
|
|
9463
|
+
"returns": {
|
|
9464
|
+
"type": {
|
|
9465
|
+
"fqn": "cdk-nextjs.NextjsImageFunction"
|
|
9466
|
+
}
|
|
9467
|
+
}
|
|
9381
9468
|
}
|
|
9382
9469
|
],
|
|
9383
9470
|
"name": "NextjsBaseConstruct",
|
|
@@ -9389,7 +9476,7 @@
|
|
|
9389
9476
|
"immutable": true,
|
|
9390
9477
|
"locationInModule": {
|
|
9391
9478
|
"filename": "src/root-constructs/nextjs-base-construct.ts",
|
|
9392
|
-
"line":
|
|
9479
|
+
"line": 140
|
|
9393
9480
|
},
|
|
9394
9481
|
"name": "baseProps",
|
|
9395
9482
|
"protected": true,
|
|
@@ -9404,7 +9491,7 @@
|
|
|
9404
9491
|
"immutable": true,
|
|
9405
9492
|
"locationInModule": {
|
|
9406
9493
|
"filename": "src/root-constructs/nextjs-base-construct.ts",
|
|
9407
|
-
"line":
|
|
9494
|
+
"line": 138
|
|
9408
9495
|
},
|
|
9409
9496
|
"name": "nextjsType",
|
|
9410
9497
|
"protected": true,
|
|
@@ -9420,7 +9507,7 @@
|
|
|
9420
9507
|
"immutable": true,
|
|
9421
9508
|
"locationInModule": {
|
|
9422
9509
|
"filename": "src/root-constructs/nextjs-base-construct.ts",
|
|
9423
|
-
"line":
|
|
9510
|
+
"line": 136
|
|
9424
9511
|
},
|
|
9425
9512
|
"name": "url",
|
|
9426
9513
|
"type": {
|
|
@@ -9434,13 +9521,13 @@
|
|
|
9434
9521
|
"immutable": true,
|
|
9435
9522
|
"locationInModule": {
|
|
9436
9523
|
"filename": "src/root-constructs/nextjs-base-construct.ts",
|
|
9437
|
-
"line":
|
|
9524
|
+
"line": 143
|
|
9438
9525
|
},
|
|
9439
9526
|
"name": "constructOverrides",
|
|
9440
9527
|
"optional": true,
|
|
9441
9528
|
"protected": true,
|
|
9442
9529
|
"type": {
|
|
9443
|
-
"fqn": "cdk-nextjs.
|
|
9530
|
+
"fqn": "cdk-nextjs.NextjsFunctionsConstructOverrides"
|
|
9444
9531
|
}
|
|
9445
9532
|
},
|
|
9446
9533
|
{
|
|
@@ -9449,7 +9536,7 @@
|
|
|
9449
9536
|
},
|
|
9450
9537
|
"locationInModule": {
|
|
9451
9538
|
"filename": "src/root-constructs/nextjs-base-construct.ts",
|
|
9452
|
-
"line":
|
|
9539
|
+
"line": 132
|
|
9453
9540
|
},
|
|
9454
9541
|
"name": "nextjsBuild",
|
|
9455
9542
|
"type": {
|
|
@@ -9462,7 +9549,7 @@
|
|
|
9462
9549
|
},
|
|
9463
9550
|
"locationInModule": {
|
|
9464
9551
|
"filename": "src/root-constructs/nextjs-base-construct.ts",
|
|
9465
|
-
"line":
|
|
9552
|
+
"line": 134
|
|
9466
9553
|
},
|
|
9467
9554
|
"name": "nextjsCache",
|
|
9468
9555
|
"type": {
|
|
@@ -9475,7 +9562,7 @@
|
|
|
9475
9562
|
},
|
|
9476
9563
|
"locationInModule": {
|
|
9477
9564
|
"filename": "src/root-constructs/nextjs-base-construct.ts",
|
|
9478
|
-
"line":
|
|
9565
|
+
"line": 133
|
|
9479
9566
|
},
|
|
9480
9567
|
"name": "nextjsStaticAssets",
|
|
9481
9568
|
"type": {
|
|
@@ -9496,7 +9583,7 @@
|
|
|
9496
9583
|
"kind": "interface",
|
|
9497
9584
|
"locationInModule": {
|
|
9498
9585
|
"filename": "src/root-constructs/nextjs-base-construct.ts",
|
|
9499
|
-
"line":
|
|
9586
|
+
"line": 30
|
|
9500
9587
|
},
|
|
9501
9588
|
"name": "NextjsBaseConstructOverrides",
|
|
9502
9589
|
"properties": [
|
|
@@ -9508,7 +9595,7 @@
|
|
|
9508
9595
|
"immutable": true,
|
|
9509
9596
|
"locationInModule": {
|
|
9510
9597
|
"filename": "src/root-constructs/nextjs-base-construct.ts",
|
|
9511
|
-
"line":
|
|
9598
|
+
"line": 31
|
|
9512
9599
|
},
|
|
9513
9600
|
"name": "nextjsBuildProps",
|
|
9514
9601
|
"optional": true,
|
|
@@ -9524,7 +9611,7 @@
|
|
|
9524
9611
|
"immutable": true,
|
|
9525
9612
|
"locationInModule": {
|
|
9526
9613
|
"filename": "src/root-constructs/nextjs-base-construct.ts",
|
|
9527
|
-
"line":
|
|
9614
|
+
"line": 32
|
|
9528
9615
|
},
|
|
9529
9616
|
"name": "nextjsCacheProps",
|
|
9530
9617
|
"optional": true,
|
|
@@ -9540,7 +9627,7 @@
|
|
|
9540
9627
|
"immutable": true,
|
|
9541
9628
|
"locationInModule": {
|
|
9542
9629
|
"filename": "src/root-constructs/nextjs-base-construct.ts",
|
|
9543
|
-
"line":
|
|
9630
|
+
"line": 33
|
|
9544
9631
|
},
|
|
9545
9632
|
"name": "nextjsStaticAssetsProps",
|
|
9546
9633
|
"optional": true,
|
|
@@ -9565,7 +9652,7 @@
|
|
|
9565
9652
|
"kind": "interface",
|
|
9566
9653
|
"locationInModule": {
|
|
9567
9654
|
"filename": "src/root-constructs/nextjs-base-construct.ts",
|
|
9568
|
-
"line":
|
|
9655
|
+
"line": 124
|
|
9569
9656
|
},
|
|
9570
9657
|
"name": "NextjsBaseConstructProps",
|
|
9571
9658
|
"properties": [
|
|
@@ -9577,7 +9664,7 @@
|
|
|
9577
9664
|
"immutable": true,
|
|
9578
9665
|
"locationInModule": {
|
|
9579
9666
|
"filename": "src/root-constructs/nextjs-base-construct.ts",
|
|
9580
|
-
"line":
|
|
9667
|
+
"line": 125
|
|
9581
9668
|
},
|
|
9582
9669
|
"name": "overrides",
|
|
9583
9670
|
"optional": true,
|
|
@@ -9599,7 +9686,7 @@
|
|
|
9599
9686
|
"kind": "interface",
|
|
9600
9687
|
"locationInModule": {
|
|
9601
9688
|
"filename": "src/root-constructs/nextjs-base-construct.ts",
|
|
9602
|
-
"line":
|
|
9689
|
+
"line": 49
|
|
9603
9690
|
},
|
|
9604
9691
|
"name": "NextjsBaseOverrides",
|
|
9605
9692
|
"properties": [
|
|
@@ -9611,7 +9698,7 @@
|
|
|
9611
9698
|
"immutable": true,
|
|
9612
9699
|
"locationInModule": {
|
|
9613
9700
|
"filename": "src/root-constructs/nextjs-base-construct.ts",
|
|
9614
|
-
"line":
|
|
9701
|
+
"line": 50
|
|
9615
9702
|
},
|
|
9616
9703
|
"name": "nextjsCache",
|
|
9617
9704
|
"optional": true,
|
|
@@ -9627,7 +9714,7 @@
|
|
|
9627
9714
|
"immutable": true,
|
|
9628
9715
|
"locationInModule": {
|
|
9629
9716
|
"filename": "src/root-constructs/nextjs-base-construct.ts",
|
|
9630
|
-
"line":
|
|
9717
|
+
"line": 51
|
|
9631
9718
|
},
|
|
9632
9719
|
"name": "nextjsStaticAssets",
|
|
9633
9720
|
"optional": true,
|
|
@@ -9648,7 +9735,7 @@
|
|
|
9648
9735
|
"kind": "interface",
|
|
9649
9736
|
"locationInModule": {
|
|
9650
9737
|
"filename": "src/root-constructs/nextjs-base-construct.ts",
|
|
9651
|
-
"line":
|
|
9738
|
+
"line": 54
|
|
9652
9739
|
},
|
|
9653
9740
|
"name": "NextjsBaseProps",
|
|
9654
9741
|
"properties": [
|
|
@@ -9662,7 +9749,7 @@
|
|
|
9662
9749
|
"immutable": true,
|
|
9663
9750
|
"locationInModule": {
|
|
9664
9751
|
"filename": "src/root-constructs/nextjs-base-construct.ts",
|
|
9665
|
-
"line":
|
|
9752
|
+
"line": 71
|
|
9666
9753
|
},
|
|
9667
9754
|
"name": "buildDirectory",
|
|
9668
9755
|
"type": {
|
|
@@ -9679,7 +9766,7 @@
|
|
|
9679
9766
|
"immutable": true,
|
|
9680
9767
|
"locationInModule": {
|
|
9681
9768
|
"filename": "src/root-constructs/nextjs-base-construct.ts",
|
|
9682
|
-
"line":
|
|
9769
|
+
"line": 89
|
|
9683
9770
|
},
|
|
9684
9771
|
"name": "healthCheckPath",
|
|
9685
9772
|
"type": {
|
|
@@ -9696,7 +9783,7 @@
|
|
|
9696
9783
|
"immutable": true,
|
|
9697
9784
|
"locationInModule": {
|
|
9698
9785
|
"filename": "src/root-constructs/nextjs-base-construct.ts",
|
|
9699
|
-
"line":
|
|
9786
|
+
"line": 59
|
|
9700
9787
|
},
|
|
9701
9788
|
"name": "basePath",
|
|
9702
9789
|
"optional": true,
|
|
@@ -9714,7 +9801,7 @@
|
|
|
9714
9801
|
"immutable": true,
|
|
9715
9802
|
"locationInModule": {
|
|
9716
9803
|
"filename": "src/root-constructs/nextjs-base-construct.ts",
|
|
9717
|
-
"line":
|
|
9804
|
+
"line": 64
|
|
9718
9805
|
},
|
|
9719
9806
|
"name": "buildCommand",
|
|
9720
9807
|
"optional": true,
|
|
@@ -9732,7 +9819,7 @@
|
|
|
9732
9819
|
"immutable": true,
|
|
9733
9820
|
"locationInModule": {
|
|
9734
9821
|
"filename": "src/root-constructs/nextjs-base-construct.ts",
|
|
9735
|
-
"line":
|
|
9822
|
+
"line": 77
|
|
9736
9823
|
},
|
|
9737
9824
|
"name": "cacheBucket",
|
|
9738
9825
|
"optional": true,
|
|
@@ -9750,7 +9837,7 @@
|
|
|
9750
9837
|
"immutable": true,
|
|
9751
9838
|
"locationInModule": {
|
|
9752
9839
|
"filename": "src/root-constructs/nextjs-base-construct.ts",
|
|
9753
|
-
"line":
|
|
9840
|
+
"line": 97
|
|
9754
9841
|
},
|
|
9755
9842
|
"name": "revalidationTable",
|
|
9756
9843
|
"optional": true,
|
|
@@ -9769,7 +9856,7 @@
|
|
|
9769
9856
|
"immutable": true,
|
|
9770
9857
|
"locationInModule": {
|
|
9771
9858
|
"filename": "src/root-constructs/nextjs-base-construct.ts",
|
|
9772
|
-
"line":
|
|
9859
|
+
"line": 103
|
|
9773
9860
|
},
|
|
9774
9861
|
"name": "skipBuild",
|
|
9775
9862
|
"optional": true,
|
|
@@ -9787,7 +9874,7 @@
|
|
|
9787
9874
|
"immutable": true,
|
|
9788
9875
|
"locationInModule": {
|
|
9789
9876
|
"filename": "src/root-constructs/nextjs-base-construct.ts",
|
|
9790
|
-
"line":
|
|
9877
|
+
"line": 109
|
|
9791
9878
|
},
|
|
9792
9879
|
"name": "staticAssetsBucket",
|
|
9793
9880
|
"optional": true,
|
|
@@ -9805,7 +9892,7 @@
|
|
|
9805
9892
|
"immutable": true,
|
|
9806
9893
|
"locationInModule": {
|
|
9807
9894
|
"filename": "src/root-constructs/nextjs-base-construct.ts",
|
|
9808
|
-
"line":
|
|
9895
|
+
"line": 117
|
|
9809
9896
|
},
|
|
9810
9897
|
"name": "vpc",
|
|
9811
9898
|
"optional": true,
|
|
@@ -9833,7 +9920,7 @@
|
|
|
9833
9920
|
},
|
|
9834
9921
|
"locationInModule": {
|
|
9835
9922
|
"filename": "src/nextjs-build/nextjs-build.ts",
|
|
9836
|
-
"line":
|
|
9923
|
+
"line": 99
|
|
9837
9924
|
},
|
|
9838
9925
|
"parameters": [
|
|
9839
9926
|
{
|
|
@@ -9859,7 +9946,7 @@
|
|
|
9859
9946
|
"kind": "class",
|
|
9860
9947
|
"locationInModule": {
|
|
9861
9948
|
"filename": "src/nextjs-build/nextjs-build.ts",
|
|
9862
|
-
"line":
|
|
9949
|
+
"line": 53
|
|
9863
9950
|
},
|
|
9864
9951
|
"name": "NextjsBuild",
|
|
9865
9952
|
"properties": [
|
|
@@ -9870,7 +9957,7 @@
|
|
|
9870
9957
|
},
|
|
9871
9958
|
"locationInModule": {
|
|
9872
9959
|
"filename": "src/nextjs-build/nextjs-build.ts",
|
|
9873
|
-
"line":
|
|
9960
|
+
"line": 58
|
|
9874
9961
|
},
|
|
9875
9962
|
"name": "buildId",
|
|
9876
9963
|
"type": {
|
|
@@ -9884,7 +9971,7 @@
|
|
|
9884
9971
|
},
|
|
9885
9972
|
"locationInModule": {
|
|
9886
9973
|
"filename": "src/nextjs-build/nextjs-build.ts",
|
|
9887
|
-
"line":
|
|
9974
|
+
"line": 86
|
|
9888
9975
|
},
|
|
9889
9976
|
"name": "dotNextPath",
|
|
9890
9977
|
"type": {
|
|
@@ -9899,7 +9986,7 @@
|
|
|
9899
9986
|
},
|
|
9900
9987
|
"locationInModule": {
|
|
9901
9988
|
"filename": "src/nextjs-build/nextjs-build.ts",
|
|
9902
|
-
"line":
|
|
9989
|
+
"line": 63
|
|
9903
9990
|
},
|
|
9904
9991
|
"name": "initCacheDir",
|
|
9905
9992
|
"type": {
|
|
@@ -9915,7 +10002,7 @@
|
|
|
9915
10002
|
},
|
|
9916
10003
|
"locationInModule": {
|
|
9917
10004
|
"filename": "src/nextjs-build/nextjs-build.ts",
|
|
9918
|
-
"line":
|
|
10005
|
+
"line": 68
|
|
9919
10006
|
},
|
|
9920
10007
|
"name": "publicDirEntries",
|
|
9921
10008
|
"type": {
|
|
@@ -9935,7 +10022,7 @@
|
|
|
9935
10022
|
},
|
|
9936
10023
|
"locationInModule": {
|
|
9937
10024
|
"filename": "src/nextjs-build/nextjs-build.ts",
|
|
9938
|
-
"line":
|
|
10025
|
+
"line": 75
|
|
9939
10026
|
},
|
|
9940
10027
|
"name": "relativePathToEntrypoint",
|
|
9941
10028
|
"type": {
|
|
@@ -9950,12 +10037,27 @@
|
|
|
9950
10037
|
},
|
|
9951
10038
|
"locationInModule": {
|
|
9952
10039
|
"filename": "src/nextjs-build/nextjs-build.ts",
|
|
9953
|
-
"line":
|
|
10040
|
+
"line": 82
|
|
9954
10041
|
},
|
|
9955
10042
|
"name": "relativePathToPackage",
|
|
9956
10043
|
"type": {
|
|
9957
10044
|
"primitive": "string"
|
|
9958
10045
|
}
|
|
10046
|
+
},
|
|
10047
|
+
{
|
|
10048
|
+
"docs": {
|
|
10049
|
+
"stability": "stable",
|
|
10050
|
+
"summary": "Absolute path to the directory prepared for the image optimization Lambda asset: bundled handler, glibc `sharp` binaries, and `required-server-files.json`. Only set for {@link NextjsType.GLOBAL_FUNCTIONS} and {@link NextjsType.REGIONAL_FUNCTIONS}, and only when the dedicated image optimization Lambda is enabled."
|
|
10051
|
+
},
|
|
10052
|
+
"locationInModule": {
|
|
10053
|
+
"filename": "src/nextjs-build/nextjs-build.ts",
|
|
10054
|
+
"line": 94
|
|
10055
|
+
},
|
|
10056
|
+
"name": "imageOptimizationAssetPath",
|
|
10057
|
+
"optional": true,
|
|
10058
|
+
"type": {
|
|
10059
|
+
"primitive": "string"
|
|
10060
|
+
}
|
|
9959
10061
|
}
|
|
9960
10062
|
],
|
|
9961
10063
|
"symbolId": "src/nextjs-build/nextjs-build:NextjsBuild"
|
|
@@ -9970,7 +10072,7 @@
|
|
|
9970
10072
|
"kind": "interface",
|
|
9971
10073
|
"locationInModule": {
|
|
9972
10074
|
"filename": "src/nextjs-build/nextjs-build.ts",
|
|
9973
|
-
"line":
|
|
10075
|
+
"line": 27
|
|
9974
10076
|
},
|
|
9975
10077
|
"name": "NextjsBuildProps",
|
|
9976
10078
|
"properties": [
|
|
@@ -9983,7 +10085,7 @@
|
|
|
9983
10085
|
"immutable": true,
|
|
9984
10086
|
"locationInModule": {
|
|
9985
10087
|
"filename": "src/nextjs-build/nextjs-build.ts",
|
|
9986
|
-
"line":
|
|
10088
|
+
"line": 36
|
|
9987
10089
|
},
|
|
9988
10090
|
"name": "buildDirectory",
|
|
9989
10091
|
"type": {
|
|
@@ -9998,7 +10100,7 @@
|
|
|
9998
10100
|
"immutable": true,
|
|
9999
10101
|
"locationInModule": {
|
|
10000
10102
|
"filename": "src/nextjs-build/nextjs-build.ts",
|
|
10001
|
-
"line":
|
|
10103
|
+
"line": 37
|
|
10002
10104
|
},
|
|
10003
10105
|
"name": "nextjsType",
|
|
10004
10106
|
"type": {
|
|
@@ -10014,7 +10116,7 @@
|
|
|
10014
10116
|
"immutable": true,
|
|
10015
10117
|
"locationInModule": {
|
|
10016
10118
|
"filename": "src/nextjs-build/nextjs-build.ts",
|
|
10017
|
-
"line":
|
|
10119
|
+
"line": 31
|
|
10018
10120
|
},
|
|
10019
10121
|
"name": "buildCommand",
|
|
10020
10122
|
"optional": true,
|
|
@@ -10031,7 +10133,7 @@
|
|
|
10031
10133
|
"immutable": true,
|
|
10032
10134
|
"locationInModule": {
|
|
10033
10135
|
"filename": "src/nextjs-build/nextjs-build.ts",
|
|
10034
|
-
"line":
|
|
10136
|
+
"line": 41
|
|
10035
10137
|
},
|
|
10036
10138
|
"name": "skipBuild",
|
|
10037
10139
|
"optional": true,
|
|
@@ -10734,7 +10836,7 @@
|
|
|
10734
10836
|
},
|
|
10735
10837
|
"locationInModule": {
|
|
10736
10838
|
"filename": "src/nextjs-distribution.ts",
|
|
10737
|
-
"line":
|
|
10839
|
+
"line": 140
|
|
10738
10840
|
},
|
|
10739
10841
|
"parameters": [
|
|
10740
10842
|
{
|
|
@@ -10760,7 +10862,7 @@
|
|
|
10760
10862
|
"kind": "class",
|
|
10761
10863
|
"locationInModule": {
|
|
10762
10864
|
"filename": "src/nextjs-distribution.ts",
|
|
10763
|
-
"line":
|
|
10865
|
+
"line": 103
|
|
10764
10866
|
},
|
|
10765
10867
|
"name": "NextjsDistribution",
|
|
10766
10868
|
"properties": [
|
|
@@ -10770,7 +10872,7 @@
|
|
|
10770
10872
|
},
|
|
10771
10873
|
"locationInModule": {
|
|
10772
10874
|
"filename": "src/nextjs-distribution.ts",
|
|
10773
|
-
"line":
|
|
10875
|
+
"line": 104
|
|
10774
10876
|
},
|
|
10775
10877
|
"name": "distribution",
|
|
10776
10878
|
"type": {
|
|
@@ -10922,6 +11024,22 @@
|
|
|
10922
11024
|
"fqn": "aws-cdk-lib.aws_cloudfront.CachePolicyProps"
|
|
10923
11025
|
}
|
|
10924
11026
|
},
|
|
11027
|
+
{
|
|
11028
|
+
"abstract": true,
|
|
11029
|
+
"docs": {
|
|
11030
|
+
"stability": "stable"
|
|
11031
|
+
},
|
|
11032
|
+
"immutable": true,
|
|
11033
|
+
"locationInModule": {
|
|
11034
|
+
"filename": "src/nextjs-distribution.ts",
|
|
11035
|
+
"line": 57
|
|
11036
|
+
},
|
|
11037
|
+
"name": "imageFunctionUrlOriginWithOACProps",
|
|
11038
|
+
"optional": true,
|
|
11039
|
+
"type": {
|
|
11040
|
+
"fqn": "aws-cdk-lib.aws_cloudfront_origins.FunctionUrlOriginWithOACProps"
|
|
11041
|
+
}
|
|
11042
|
+
},
|
|
10925
11043
|
{
|
|
10926
11044
|
"abstract": true,
|
|
10927
11045
|
"docs": {
|
|
@@ -10946,7 +11064,7 @@
|
|
|
10946
11064
|
"immutable": true,
|
|
10947
11065
|
"locationInModule": {
|
|
10948
11066
|
"filename": "src/nextjs-distribution.ts",
|
|
10949
|
-
"line":
|
|
11067
|
+
"line": 60
|
|
10950
11068
|
},
|
|
10951
11069
|
"name": "s3BucketOriginProps",
|
|
10952
11070
|
"optional": true,
|
|
@@ -10962,7 +11080,7 @@
|
|
|
10962
11080
|
"immutable": true,
|
|
10963
11081
|
"locationInModule": {
|
|
10964
11082
|
"filename": "src/nextjs-distribution.ts",
|
|
10965
|
-
"line":
|
|
11083
|
+
"line": 58
|
|
10966
11084
|
},
|
|
10967
11085
|
"name": "staticBehaviorOptions",
|
|
10968
11086
|
"optional": true,
|
|
@@ -10978,7 +11096,7 @@
|
|
|
10978
11096
|
"immutable": true,
|
|
10979
11097
|
"locationInModule": {
|
|
10980
11098
|
"filename": "src/nextjs-distribution.ts",
|
|
10981
|
-
"line":
|
|
11099
|
+
"line": 59
|
|
10982
11100
|
},
|
|
10983
11101
|
"name": "staticResponseHeadersPolicyProps",
|
|
10984
11102
|
"optional": true,
|
|
@@ -10999,7 +11117,7 @@
|
|
|
10999
11117
|
"kind": "interface",
|
|
11000
11118
|
"locationInModule": {
|
|
11001
11119
|
"filename": "src/nextjs-distribution.ts",
|
|
11002
|
-
"line":
|
|
11120
|
+
"line": 63
|
|
11003
11121
|
},
|
|
11004
11122
|
"name": "NextjsDistributionProps",
|
|
11005
11123
|
"properties": [
|
|
@@ -11013,7 +11131,7 @@
|
|
|
11013
11131
|
"immutable": true,
|
|
11014
11132
|
"locationInModule": {
|
|
11015
11133
|
"filename": "src/nextjs-distribution.ts",
|
|
11016
|
-
"line":
|
|
11134
|
+
"line": 68
|
|
11017
11135
|
},
|
|
11018
11136
|
"name": "assetsBucket",
|
|
11019
11137
|
"type": {
|
|
@@ -11028,7 +11146,7 @@
|
|
|
11028
11146
|
"immutable": true,
|
|
11029
11147
|
"locationInModule": {
|
|
11030
11148
|
"filename": "src/nextjs-distribution.ts",
|
|
11031
|
-
"line":
|
|
11149
|
+
"line": 91
|
|
11032
11150
|
},
|
|
11033
11151
|
"name": "nextjsType",
|
|
11034
11152
|
"type": {
|
|
@@ -11044,7 +11162,7 @@
|
|
|
11044
11162
|
"immutable": true,
|
|
11045
11163
|
"locationInModule": {
|
|
11046
11164
|
"filename": "src/nextjs-distribution.ts",
|
|
11047
|
-
"line":
|
|
11165
|
+
"line": 100
|
|
11048
11166
|
},
|
|
11049
11167
|
"name": "publicDirEntries",
|
|
11050
11168
|
"type": {
|
|
@@ -11064,7 +11182,7 @@
|
|
|
11064
11182
|
"immutable": true,
|
|
11065
11183
|
"locationInModule": {
|
|
11066
11184
|
"filename": "src/nextjs-distribution.ts",
|
|
11067
|
-
"line":
|
|
11185
|
+
"line": 69
|
|
11068
11186
|
},
|
|
11069
11187
|
"name": "basePath",
|
|
11070
11188
|
"optional": true,
|
|
@@ -11081,7 +11199,7 @@
|
|
|
11081
11199
|
"immutable": true,
|
|
11082
11200
|
"locationInModule": {
|
|
11083
11201
|
"filename": "src/nextjs-distribution.ts",
|
|
11084
|
-
"line":
|
|
11202
|
+
"line": 73
|
|
11085
11203
|
},
|
|
11086
11204
|
"name": "certificate",
|
|
11087
11205
|
"optional": true,
|
|
@@ -11097,7 +11215,7 @@
|
|
|
11097
11215
|
"immutable": true,
|
|
11098
11216
|
"locationInModule": {
|
|
11099
11217
|
"filename": "src/nextjs-distribution.ts",
|
|
11100
|
-
"line":
|
|
11218
|
+
"line": 74
|
|
11101
11219
|
},
|
|
11102
11220
|
"name": "distribution",
|
|
11103
11221
|
"optional": true,
|
|
@@ -11114,7 +11232,7 @@
|
|
|
11114
11232
|
"immutable": true,
|
|
11115
11233
|
"locationInModule": {
|
|
11116
11234
|
"filename": "src/nextjs-distribution.ts",
|
|
11117
|
-
"line":
|
|
11235
|
+
"line": 78
|
|
11118
11236
|
},
|
|
11119
11237
|
"name": "functionUrl",
|
|
11120
11238
|
"optional": true,
|
|
@@ -11122,6 +11240,24 @@
|
|
|
11122
11240
|
"fqn": "aws-cdk-lib.aws_lambda.IFunctionUrl"
|
|
11123
11241
|
}
|
|
11124
11242
|
},
|
|
11243
|
+
{
|
|
11244
|
+
"abstract": true,
|
|
11245
|
+
"docs": {
|
|
11246
|
+
"remarks": "Only applicable\nto `NextjsType.GLOBAL_FUNCTIONS`, and only when the dedicated image\nfunction is enabled. When omitted, the `_next/image*` behavior points at\nthe dynamic origin, which serves image optimization from the Next.js\nserver itself.",
|
|
11247
|
+
"stability": "stable",
|
|
11248
|
+
"summary": "Function URL of the dedicated image optimization Lambda."
|
|
11249
|
+
},
|
|
11250
|
+
"immutable": true,
|
|
11251
|
+
"locationInModule": {
|
|
11252
|
+
"filename": "src/nextjs-distribution.ts",
|
|
11253
|
+
"line": 86
|
|
11254
|
+
},
|
|
11255
|
+
"name": "imageFunctionUrl",
|
|
11256
|
+
"optional": true,
|
|
11257
|
+
"type": {
|
|
11258
|
+
"fqn": "aws-cdk-lib.aws_lambda.IFunctionUrl"
|
|
11259
|
+
}
|
|
11260
|
+
},
|
|
11125
11261
|
{
|
|
11126
11262
|
"abstract": true,
|
|
11127
11263
|
"docs": {
|
|
@@ -11131,7 +11267,7 @@
|
|
|
11131
11267
|
"immutable": true,
|
|
11132
11268
|
"locationInModule": {
|
|
11133
11269
|
"filename": "src/nextjs-distribution.ts",
|
|
11134
|
-
"line":
|
|
11270
|
+
"line": 90
|
|
11135
11271
|
},
|
|
11136
11272
|
"name": "loadBalancer",
|
|
11137
11273
|
"optional": true,
|
|
@@ -11148,7 +11284,7 @@
|
|
|
11148
11284
|
"immutable": true,
|
|
11149
11285
|
"locationInModule": {
|
|
11150
11286
|
"filename": "src/nextjs-distribution.ts",
|
|
11151
|
-
"line":
|
|
11287
|
+
"line": 95
|
|
11152
11288
|
},
|
|
11153
11289
|
"name": "overrides",
|
|
11154
11290
|
"optional": true,
|
|
@@ -11233,6 +11369,60 @@
|
|
|
11233
11369
|
],
|
|
11234
11370
|
"symbolId": "src/nextjs-compute/nextjs-functions:NextjsFunctions"
|
|
11235
11371
|
},
|
|
11372
|
+
"cdk-nextjs.NextjsFunctionsConstructOverrides": {
|
|
11373
|
+
"assembly": "cdk-nextjs",
|
|
11374
|
+
"datatype": true,
|
|
11375
|
+
"docs": {
|
|
11376
|
+
"remarks": "The\nContainers types serve `_next/image` from the standalone server itself and\nhave no Lambda functions to configure, so they would silently ignore these.",
|
|
11377
|
+
"stability": "stable",
|
|
11378
|
+
"summary": "Adds the overrides that only apply to the two Functions `NextjsType`s."
|
|
11379
|
+
},
|
|
11380
|
+
"fqn": "cdk-nextjs.NextjsFunctionsConstructOverrides",
|
|
11381
|
+
"interfaces": [
|
|
11382
|
+
"cdk-nextjs.NextjsBaseConstructOverrides"
|
|
11383
|
+
],
|
|
11384
|
+
"kind": "interface",
|
|
11385
|
+
"locationInModule": {
|
|
11386
|
+
"filename": "src/root-constructs/nextjs-base-construct.ts",
|
|
11387
|
+
"line": 41
|
|
11388
|
+
},
|
|
11389
|
+
"name": "NextjsFunctionsConstructOverrides",
|
|
11390
|
+
"properties": [
|
|
11391
|
+
{
|
|
11392
|
+
"abstract": true,
|
|
11393
|
+
"docs": {
|
|
11394
|
+
"stability": "stable"
|
|
11395
|
+
},
|
|
11396
|
+
"immutable": true,
|
|
11397
|
+
"locationInModule": {
|
|
11398
|
+
"filename": "src/root-constructs/nextjs-base-construct.ts",
|
|
11399
|
+
"line": 42
|
|
11400
|
+
},
|
|
11401
|
+
"name": "nextjsFunctionsProps",
|
|
11402
|
+
"optional": true,
|
|
11403
|
+
"type": {
|
|
11404
|
+
"fqn": "cdk-nextjs.NextjsFunctionsProps"
|
|
11405
|
+
}
|
|
11406
|
+
},
|
|
11407
|
+
{
|
|
11408
|
+
"abstract": true,
|
|
11409
|
+
"docs": {
|
|
11410
|
+
"stability": "stable"
|
|
11411
|
+
},
|
|
11412
|
+
"immutable": true,
|
|
11413
|
+
"locationInModule": {
|
|
11414
|
+
"filename": "src/root-constructs/nextjs-base-construct.ts",
|
|
11415
|
+
"line": 43
|
|
11416
|
+
},
|
|
11417
|
+
"name": "nextjsImageFunctionProps",
|
|
11418
|
+
"optional": true,
|
|
11419
|
+
"type": {
|
|
11420
|
+
"fqn": "cdk-nextjs.NextjsImageFunctionProps"
|
|
11421
|
+
}
|
|
11422
|
+
}
|
|
11423
|
+
],
|
|
11424
|
+
"symbolId": "src/root-constructs/nextjs-base-construct:NextjsFunctionsConstructOverrides"
|
|
11425
|
+
},
|
|
11236
11426
|
"cdk-nextjs.NextjsFunctionsOverrides": {
|
|
11237
11427
|
"assembly": "cdk-nextjs",
|
|
11238
11428
|
"datatype": true,
|
|
@@ -11348,7 +11538,7 @@
|
|
|
11348
11538
|
},
|
|
11349
11539
|
"locationInModule": {
|
|
11350
11540
|
"filename": "src/root-constructs/nextjs-global-containers.ts",
|
|
11351
|
-
"line":
|
|
11541
|
+
"line": 89
|
|
11352
11542
|
},
|
|
11353
11543
|
"parameters": [
|
|
11354
11544
|
{
|
|
@@ -11374,7 +11564,7 @@
|
|
|
11374
11564
|
"kind": "class",
|
|
11375
11565
|
"locationInModule": {
|
|
11376
11566
|
"filename": "src/root-constructs/nextjs-global-containers.ts",
|
|
11377
|
-
"line":
|
|
11567
|
+
"line": 79
|
|
11378
11568
|
},
|
|
11379
11569
|
"name": "NextjsGlobalContainers",
|
|
11380
11570
|
"properties": [
|
|
@@ -11385,7 +11575,7 @@
|
|
|
11385
11575
|
"immutable": true,
|
|
11386
11576
|
"locationInModule": {
|
|
11387
11577
|
"filename": "src/root-constructs/nextjs-global-containers.ts",
|
|
11388
|
-
"line":
|
|
11578
|
+
"line": 83
|
|
11389
11579
|
},
|
|
11390
11580
|
"name": "url",
|
|
11391
11581
|
"overrides": "cdk-nextjs.NextjsBaseConstruct",
|
|
@@ -11399,7 +11589,7 @@
|
|
|
11399
11589
|
},
|
|
11400
11590
|
"locationInModule": {
|
|
11401
11591
|
"filename": "src/root-constructs/nextjs-global-containers.ts",
|
|
11402
|
-
"line":
|
|
11592
|
+
"line": 80
|
|
11403
11593
|
},
|
|
11404
11594
|
"name": "nextjsContainers",
|
|
11405
11595
|
"type": {
|
|
@@ -11412,7 +11602,7 @@
|
|
|
11412
11602
|
},
|
|
11413
11603
|
"locationInModule": {
|
|
11414
11604
|
"filename": "src/root-constructs/nextjs-global-containers.ts",
|
|
11415
|
-
"line":
|
|
11605
|
+
"line": 81
|
|
11416
11606
|
},
|
|
11417
11607
|
"name": "nextjsDistribution",
|
|
11418
11608
|
"type": {
|
|
@@ -11425,7 +11615,7 @@
|
|
|
11425
11615
|
},
|
|
11426
11616
|
"locationInModule": {
|
|
11427
11617
|
"filename": "src/root-constructs/nextjs-global-containers.ts",
|
|
11428
|
-
"line":
|
|
11618
|
+
"line": 82
|
|
11429
11619
|
},
|
|
11430
11620
|
"name": "nextjsPostDeploy",
|
|
11431
11621
|
"type": {
|
|
@@ -11448,7 +11638,7 @@
|
|
|
11448
11638
|
"kind": "interface",
|
|
11449
11639
|
"locationInModule": {
|
|
11450
11640
|
"filename": "src/root-constructs/nextjs-global-containers.ts",
|
|
11451
|
-
"line":
|
|
11641
|
+
"line": 31
|
|
11452
11642
|
},
|
|
11453
11643
|
"name": "NextjsGlobalContainersConstructOverrides",
|
|
11454
11644
|
"properties": [
|
|
@@ -11460,7 +11650,7 @@
|
|
|
11460
11650
|
"immutable": true,
|
|
11461
11651
|
"locationInModule": {
|
|
11462
11652
|
"filename": "src/root-constructs/nextjs-global-containers.ts",
|
|
11463
|
-
"line":
|
|
11653
|
+
"line": 32
|
|
11464
11654
|
},
|
|
11465
11655
|
"name": "nextjsContainersProps",
|
|
11466
11656
|
"optional": true,
|
|
@@ -11476,7 +11666,7 @@
|
|
|
11476
11666
|
"immutable": true,
|
|
11477
11667
|
"locationInModule": {
|
|
11478
11668
|
"filename": "src/root-constructs/nextjs-global-containers.ts",
|
|
11479
|
-
"line":
|
|
11669
|
+
"line": 33
|
|
11480
11670
|
},
|
|
11481
11671
|
"name": "nextjsDistributionProps",
|
|
11482
11672
|
"optional": true,
|
|
@@ -11492,7 +11682,7 @@
|
|
|
11492
11682
|
"immutable": true,
|
|
11493
11683
|
"locationInModule": {
|
|
11494
11684
|
"filename": "src/root-constructs/nextjs-global-containers.ts",
|
|
11495
|
-
"line":
|
|
11685
|
+
"line": 34
|
|
11496
11686
|
},
|
|
11497
11687
|
"name": "nextjsPostDeployProps",
|
|
11498
11688
|
"optional": true,
|
|
@@ -11518,7 +11708,7 @@
|
|
|
11518
11708
|
"kind": "interface",
|
|
11519
11709
|
"locationInModule": {
|
|
11520
11710
|
"filename": "src/root-constructs/nextjs-global-containers.ts",
|
|
11521
|
-
"line":
|
|
11711
|
+
"line": 42
|
|
11522
11712
|
},
|
|
11523
11713
|
"name": "NextjsGlobalContainersOverrides",
|
|
11524
11714
|
"properties": [
|
|
@@ -11530,7 +11720,7 @@
|
|
|
11530
11720
|
"immutable": true,
|
|
11531
11721
|
"locationInModule": {
|
|
11532
11722
|
"filename": "src/root-constructs/nextjs-global-containers.ts",
|
|
11533
|
-
"line":
|
|
11723
|
+
"line": 44
|
|
11534
11724
|
},
|
|
11535
11725
|
"name": "nextjsContainers",
|
|
11536
11726
|
"optional": true,
|
|
@@ -11546,7 +11736,7 @@
|
|
|
11546
11736
|
"immutable": true,
|
|
11547
11737
|
"locationInModule": {
|
|
11548
11738
|
"filename": "src/root-constructs/nextjs-global-containers.ts",
|
|
11549
|
-
"line":
|
|
11739
|
+
"line": 45
|
|
11550
11740
|
},
|
|
11551
11741
|
"name": "nextjsDistribution",
|
|
11552
11742
|
"optional": true,
|
|
@@ -11562,7 +11752,7 @@
|
|
|
11562
11752
|
"immutable": true,
|
|
11563
11753
|
"locationInModule": {
|
|
11564
11754
|
"filename": "src/root-constructs/nextjs-global-containers.ts",
|
|
11565
|
-
"line":
|
|
11755
|
+
"line": 43
|
|
11566
11756
|
},
|
|
11567
11757
|
"name": "nextjsGlobalContainers",
|
|
11568
11758
|
"optional": true,
|
|
@@ -11578,7 +11768,7 @@
|
|
|
11578
11768
|
"immutable": true,
|
|
11579
11769
|
"locationInModule": {
|
|
11580
11770
|
"filename": "src/root-constructs/nextjs-global-containers.ts",
|
|
11581
|
-
"line":
|
|
11771
|
+
"line": 46
|
|
11582
11772
|
},
|
|
11583
11773
|
"name": "nextjsPostDeploy",
|
|
11584
11774
|
"optional": true,
|
|
@@ -11602,7 +11792,7 @@
|
|
|
11602
11792
|
"kind": "interface",
|
|
11603
11793
|
"locationInModule": {
|
|
11604
11794
|
"filename": "src/root-constructs/nextjs-global-containers.ts",
|
|
11605
|
-
"line":
|
|
11795
|
+
"line": 49
|
|
11606
11796
|
},
|
|
11607
11797
|
"name": "NextjsGlobalContainersProps",
|
|
11608
11798
|
"properties": [
|
|
@@ -11616,7 +11806,7 @@
|
|
|
11616
11806
|
"immutable": true,
|
|
11617
11807
|
"locationInModule": {
|
|
11618
11808
|
"filename": "src/root-constructs/nextjs-global-containers.ts",
|
|
11619
|
-
"line":
|
|
11809
|
+
"line": 56
|
|
11620
11810
|
},
|
|
11621
11811
|
"name": "alb",
|
|
11622
11812
|
"optional": true,
|
|
@@ -11634,7 +11824,7 @@
|
|
|
11634
11824
|
"immutable": true,
|
|
11635
11825
|
"locationInModule": {
|
|
11636
11826
|
"filename": "src/root-constructs/nextjs-global-containers.ts",
|
|
11637
|
-
"line":
|
|
11827
|
+
"line": 61
|
|
11638
11828
|
},
|
|
11639
11829
|
"name": "distribution",
|
|
11640
11830
|
"optional": true,
|
|
@@ -11652,7 +11842,7 @@
|
|
|
11652
11842
|
"immutable": true,
|
|
11653
11843
|
"locationInModule": {
|
|
11654
11844
|
"filename": "src/root-constructs/nextjs-global-containers.ts",
|
|
11655
|
-
"line":
|
|
11845
|
+
"line": 66
|
|
11656
11846
|
},
|
|
11657
11847
|
"name": "ecsCluster",
|
|
11658
11848
|
"optional": true,
|
|
@@ -11669,7 +11859,7 @@
|
|
|
11669
11859
|
"immutable": true,
|
|
11670
11860
|
"locationInModule": {
|
|
11671
11861
|
"filename": "src/root-constructs/nextjs-global-containers.ts",
|
|
11672
|
-
"line":
|
|
11862
|
+
"line": 70
|
|
11673
11863
|
},
|
|
11674
11864
|
"name": "overrides",
|
|
11675
11865
|
"optional": true,
|
|
@@ -11694,7 +11884,7 @@
|
|
|
11694
11884
|
},
|
|
11695
11885
|
"locationInModule": {
|
|
11696
11886
|
"filename": "src/root-constructs/nextjs-global-functions.ts",
|
|
11697
|
-
"line":
|
|
11887
|
+
"line": 85
|
|
11698
11888
|
},
|
|
11699
11889
|
"parameters": [
|
|
11700
11890
|
{
|
|
@@ -11720,7 +11910,7 @@
|
|
|
11720
11910
|
"kind": "class",
|
|
11721
11911
|
"locationInModule": {
|
|
11722
11912
|
"filename": "src/root-constructs/nextjs-global-functions.ts",
|
|
11723
|
-
"line":
|
|
11913
|
+
"line": 69
|
|
11724
11914
|
},
|
|
11725
11915
|
"name": "NextjsGlobalFunctions",
|
|
11726
11916
|
"properties": [
|
|
@@ -11731,7 +11921,7 @@
|
|
|
11731
11921
|
"immutable": true,
|
|
11732
11922
|
"locationInModule": {
|
|
11733
11923
|
"filename": "src/root-constructs/nextjs-global-functions.ts",
|
|
11734
|
-
"line":
|
|
11924
|
+
"line": 79
|
|
11735
11925
|
},
|
|
11736
11926
|
"name": "url",
|
|
11737
11927
|
"overrides": "cdk-nextjs.NextjsBaseConstruct",
|
|
@@ -11745,7 +11935,7 @@
|
|
|
11745
11935
|
},
|
|
11746
11936
|
"locationInModule": {
|
|
11747
11937
|
"filename": "src/root-constructs/nextjs-global-functions.ts",
|
|
11748
|
-
"line":
|
|
11938
|
+
"line": 77
|
|
11749
11939
|
},
|
|
11750
11940
|
"name": "nextjsDistribution",
|
|
11751
11941
|
"type": {
|
|
@@ -11757,12 +11947,310 @@
|
|
|
11757
11947
|
"stability": "stable"
|
|
11758
11948
|
},
|
|
11759
11949
|
"locationInModule": {
|
|
11760
|
-
"filename": "src/root-constructs/nextjs-global-functions.ts",
|
|
11761
|
-
"line":
|
|
11950
|
+
"filename": "src/root-constructs/nextjs-global-functions.ts",
|
|
11951
|
+
"line": 70
|
|
11952
|
+
},
|
|
11953
|
+
"name": "nextjsFunctions",
|
|
11954
|
+
"type": {
|
|
11955
|
+
"fqn": "cdk-nextjs.NextjsFunctions"
|
|
11956
|
+
}
|
|
11957
|
+
},
|
|
11958
|
+
{
|
|
11959
|
+
"docs": {
|
|
11960
|
+
"stability": "stable"
|
|
11961
|
+
},
|
|
11962
|
+
"locationInModule": {
|
|
11963
|
+
"filename": "src/root-constructs/nextjs-global-functions.ts",
|
|
11964
|
+
"line": 78
|
|
11965
|
+
},
|
|
11966
|
+
"name": "nextjsPostDeploy",
|
|
11967
|
+
"type": {
|
|
11968
|
+
"fqn": "cdk-nextjs.NextjsPostDeploy"
|
|
11969
|
+
}
|
|
11970
|
+
},
|
|
11971
|
+
{
|
|
11972
|
+
"docs": {
|
|
11973
|
+
"remarks": "`_next/image` is otherwise served by\n{@link nextjsFunctions}.",
|
|
11974
|
+
"stability": "stable",
|
|
11975
|
+
"summary": "Only created when the (experimental, unsupported) dedicated image optimization Lambda is enabled."
|
|
11976
|
+
},
|
|
11977
|
+
"locationInModule": {
|
|
11978
|
+
"filename": "src/root-constructs/nextjs-global-functions.ts",
|
|
11979
|
+
"line": 76
|
|
11980
|
+
},
|
|
11981
|
+
"name": "nextjsImageFunction",
|
|
11982
|
+
"optional": true,
|
|
11983
|
+
"type": {
|
|
11984
|
+
"fqn": "cdk-nextjs.NextjsImageFunction"
|
|
11985
|
+
}
|
|
11986
|
+
}
|
|
11987
|
+
],
|
|
11988
|
+
"symbolId": "src/root-constructs/nextjs-global-functions:NextjsGlobalFunctions"
|
|
11989
|
+
},
|
|
11990
|
+
"cdk-nextjs.NextjsGlobalFunctionsConstructOverrides": {
|
|
11991
|
+
"assembly": "cdk-nextjs",
|
|
11992
|
+
"datatype": true,
|
|
11993
|
+
"docs": {
|
|
11994
|
+
"stability": "stable"
|
|
11995
|
+
},
|
|
11996
|
+
"fqn": "cdk-nextjs.NextjsGlobalFunctionsConstructOverrides",
|
|
11997
|
+
"interfaces": [
|
|
11998
|
+
"cdk-nextjs.NextjsFunctionsConstructOverrides"
|
|
11999
|
+
],
|
|
12000
|
+
"kind": "interface",
|
|
12001
|
+
"locationInModule": {
|
|
12002
|
+
"filename": "src/root-constructs/nextjs-global-functions.ts",
|
|
12003
|
+
"line": 33
|
|
12004
|
+
},
|
|
12005
|
+
"name": "NextjsGlobalFunctionsConstructOverrides",
|
|
12006
|
+
"properties": [
|
|
12007
|
+
{
|
|
12008
|
+
"abstract": true,
|
|
12009
|
+
"docs": {
|
|
12010
|
+
"stability": "stable"
|
|
12011
|
+
},
|
|
12012
|
+
"immutable": true,
|
|
12013
|
+
"locationInModule": {
|
|
12014
|
+
"filename": "src/root-constructs/nextjs-global-functions.ts",
|
|
12015
|
+
"line": 34
|
|
12016
|
+
},
|
|
12017
|
+
"name": "nextjsDistributionProps",
|
|
12018
|
+
"optional": true,
|
|
12019
|
+
"type": {
|
|
12020
|
+
"fqn": "cdk-nextjs.OptionalNextjsDistributionProps"
|
|
12021
|
+
}
|
|
12022
|
+
},
|
|
12023
|
+
{
|
|
12024
|
+
"abstract": true,
|
|
12025
|
+
"docs": {
|
|
12026
|
+
"stability": "stable"
|
|
12027
|
+
},
|
|
12028
|
+
"immutable": true,
|
|
12029
|
+
"locationInModule": {
|
|
12030
|
+
"filename": "src/root-constructs/nextjs-global-functions.ts",
|
|
12031
|
+
"line": 35
|
|
12032
|
+
},
|
|
12033
|
+
"name": "nextjsPostDeployProps",
|
|
12034
|
+
"optional": true,
|
|
12035
|
+
"type": {
|
|
12036
|
+
"fqn": "cdk-nextjs.OptionalNextjsPostDeployProps"
|
|
12037
|
+
}
|
|
12038
|
+
}
|
|
12039
|
+
],
|
|
12040
|
+
"symbolId": "src/root-constructs/nextjs-global-functions:NextjsGlobalFunctionsConstructOverrides"
|
|
12041
|
+
},
|
|
12042
|
+
"cdk-nextjs.NextjsGlobalFunctionsOverrides": {
|
|
12043
|
+
"assembly": "cdk-nextjs",
|
|
12044
|
+
"datatype": true,
|
|
12045
|
+
"docs": {
|
|
12046
|
+
"remarks": "Overrides are lower level than\nprops and are passed directly to CDK Constructs giving you more control. It's\nrecommended to use caution and review source code so you know how they're used.",
|
|
12047
|
+
"stability": "stable",
|
|
12048
|
+
"summary": "Overrides for `NextjsGlobalFunctions`."
|
|
12049
|
+
},
|
|
12050
|
+
"fqn": "cdk-nextjs.NextjsGlobalFunctionsOverrides",
|
|
12051
|
+
"interfaces": [
|
|
12052
|
+
"cdk-nextjs.NextjsBaseOverrides"
|
|
12053
|
+
],
|
|
12054
|
+
"kind": "interface",
|
|
12055
|
+
"locationInModule": {
|
|
12056
|
+
"filename": "src/root-constructs/nextjs-global-functions.ts",
|
|
12057
|
+
"line": 43
|
|
12058
|
+
},
|
|
12059
|
+
"name": "NextjsGlobalFunctionsOverrides",
|
|
12060
|
+
"properties": [
|
|
12061
|
+
{
|
|
12062
|
+
"abstract": true,
|
|
12063
|
+
"docs": {
|
|
12064
|
+
"stability": "stable"
|
|
12065
|
+
},
|
|
12066
|
+
"immutable": true,
|
|
12067
|
+
"locationInModule": {
|
|
12068
|
+
"filename": "src/root-constructs/nextjs-global-functions.ts",
|
|
12069
|
+
"line": 47
|
|
12070
|
+
},
|
|
12071
|
+
"name": "nextjsDistribution",
|
|
12072
|
+
"optional": true,
|
|
12073
|
+
"type": {
|
|
12074
|
+
"fqn": "cdk-nextjs.NextjsDistributionOverrides"
|
|
12075
|
+
}
|
|
12076
|
+
},
|
|
12077
|
+
{
|
|
12078
|
+
"abstract": true,
|
|
12079
|
+
"docs": {
|
|
12080
|
+
"stability": "stable"
|
|
12081
|
+
},
|
|
12082
|
+
"immutable": true,
|
|
12083
|
+
"locationInModule": {
|
|
12084
|
+
"filename": "src/root-constructs/nextjs-global-functions.ts",
|
|
12085
|
+
"line": 45
|
|
12086
|
+
},
|
|
12087
|
+
"name": "nextjsFunctions",
|
|
12088
|
+
"optional": true,
|
|
12089
|
+
"type": {
|
|
12090
|
+
"fqn": "cdk-nextjs.NextjsFunctionsOverrides"
|
|
12091
|
+
}
|
|
12092
|
+
},
|
|
12093
|
+
{
|
|
12094
|
+
"abstract": true,
|
|
12095
|
+
"docs": {
|
|
12096
|
+
"stability": "stable"
|
|
12097
|
+
},
|
|
12098
|
+
"immutable": true,
|
|
12099
|
+
"locationInModule": {
|
|
12100
|
+
"filename": "src/root-constructs/nextjs-global-functions.ts",
|
|
12101
|
+
"line": 44
|
|
12102
|
+
},
|
|
12103
|
+
"name": "nextjsGlobalFunctions",
|
|
12104
|
+
"optional": true,
|
|
12105
|
+
"type": {
|
|
12106
|
+
"fqn": "cdk-nextjs.NextjsGlobalFunctionsConstructOverrides"
|
|
12107
|
+
}
|
|
12108
|
+
},
|
|
12109
|
+
{
|
|
12110
|
+
"abstract": true,
|
|
12111
|
+
"docs": {
|
|
12112
|
+
"stability": "stable"
|
|
12113
|
+
},
|
|
12114
|
+
"immutable": true,
|
|
12115
|
+
"locationInModule": {
|
|
12116
|
+
"filename": "src/root-constructs/nextjs-global-functions.ts",
|
|
12117
|
+
"line": 46
|
|
12118
|
+
},
|
|
12119
|
+
"name": "nextjsImageFunction",
|
|
12120
|
+
"optional": true,
|
|
12121
|
+
"type": {
|
|
12122
|
+
"fqn": "cdk-nextjs.NextjsImageFunctionOverrides"
|
|
12123
|
+
}
|
|
12124
|
+
},
|
|
12125
|
+
{
|
|
12126
|
+
"abstract": true,
|
|
12127
|
+
"docs": {
|
|
12128
|
+
"stability": "stable"
|
|
12129
|
+
},
|
|
12130
|
+
"immutable": true,
|
|
12131
|
+
"locationInModule": {
|
|
12132
|
+
"filename": "src/root-constructs/nextjs-global-functions.ts",
|
|
12133
|
+
"line": 48
|
|
12134
|
+
},
|
|
12135
|
+
"name": "nextjsPostDeploy",
|
|
12136
|
+
"optional": true,
|
|
12137
|
+
"type": {
|
|
12138
|
+
"fqn": "cdk-nextjs.NextjsPostDeployOverrides"
|
|
12139
|
+
}
|
|
12140
|
+
}
|
|
12141
|
+
],
|
|
12142
|
+
"symbolId": "src/root-constructs/nextjs-global-functions:NextjsGlobalFunctionsOverrides"
|
|
12143
|
+
},
|
|
12144
|
+
"cdk-nextjs.NextjsGlobalFunctionsProps": {
|
|
12145
|
+
"assembly": "cdk-nextjs",
|
|
12146
|
+
"datatype": true,
|
|
12147
|
+
"docs": {
|
|
12148
|
+
"stability": "stable"
|
|
12149
|
+
},
|
|
12150
|
+
"fqn": "cdk-nextjs.NextjsGlobalFunctionsProps",
|
|
12151
|
+
"interfaces": [
|
|
12152
|
+
"cdk-nextjs.NextjsBaseProps"
|
|
12153
|
+
],
|
|
12154
|
+
"kind": "interface",
|
|
12155
|
+
"locationInModule": {
|
|
12156
|
+
"filename": "src/root-constructs/nextjs-global-functions.ts",
|
|
12157
|
+
"line": 51
|
|
12158
|
+
},
|
|
12159
|
+
"name": "NextjsGlobalFunctionsProps",
|
|
12160
|
+
"properties": [
|
|
12161
|
+
{
|
|
12162
|
+
"abstract": true,
|
|
12163
|
+
"docs": {
|
|
12164
|
+
"remarks": "Can be used with `basePath` to host multiple\napps on the same CloudFront distribution.",
|
|
12165
|
+
"stability": "stable",
|
|
12166
|
+
"summary": "Bring your own distribution."
|
|
12167
|
+
},
|
|
12168
|
+
"immutable": true,
|
|
12169
|
+
"locationInModule": {
|
|
12170
|
+
"filename": "src/root-constructs/nextjs-global-functions.ts",
|
|
12171
|
+
"line": 56
|
|
12172
|
+
},
|
|
12173
|
+
"name": "distribution",
|
|
12174
|
+
"optional": true,
|
|
12175
|
+
"type": {
|
|
12176
|
+
"fqn": "aws-cdk-lib.aws_cloudfront.Distribution"
|
|
12177
|
+
}
|
|
12178
|
+
},
|
|
12179
|
+
{
|
|
12180
|
+
"abstract": true,
|
|
12181
|
+
"docs": {
|
|
12182
|
+
"stability": "stable",
|
|
12183
|
+
"summary": "Override props of any construct."
|
|
12184
|
+
},
|
|
12185
|
+
"immutable": true,
|
|
12186
|
+
"locationInModule": {
|
|
12187
|
+
"filename": "src/root-constructs/nextjs-global-functions.ts",
|
|
12188
|
+
"line": 60
|
|
12189
|
+
},
|
|
12190
|
+
"name": "overrides",
|
|
12191
|
+
"optional": true,
|
|
12192
|
+
"type": {
|
|
12193
|
+
"fqn": "cdk-nextjs.NextjsGlobalFunctionsOverrides"
|
|
12194
|
+
}
|
|
12195
|
+
}
|
|
12196
|
+
],
|
|
12197
|
+
"symbolId": "src/root-constructs/nextjs-global-functions:NextjsGlobalFunctionsProps"
|
|
12198
|
+
},
|
|
12199
|
+
"cdk-nextjs.NextjsImageFunction": {
|
|
12200
|
+
"assembly": "cdk-nextjs",
|
|
12201
|
+
"base": "constructs.Construct",
|
|
12202
|
+
"docs": {
|
|
12203
|
+
"stability": "stable",
|
|
12204
|
+
"summary": "Dedicated Lambda function for Next.js image optimization (`src/image-optimization/handler.mts`). Kept separate from the server function so image requests get a lightweight, natively-streaming zip Lambda instead of paying the Docker/Lambda Web Adapter cold-start cost."
|
|
12205
|
+
},
|
|
12206
|
+
"fqn": "cdk-nextjs.NextjsImageFunction",
|
|
12207
|
+
"initializer": {
|
|
12208
|
+
"docs": {
|
|
12209
|
+
"stability": "stable"
|
|
12210
|
+
},
|
|
12211
|
+
"locationInModule": {
|
|
12212
|
+
"filename": "src/nextjs-compute/nextjs-image-function.ts",
|
|
12213
|
+
"line": 57
|
|
12214
|
+
},
|
|
12215
|
+
"parameters": [
|
|
12216
|
+
{
|
|
12217
|
+
"name": "scope",
|
|
12218
|
+
"type": {
|
|
12219
|
+
"fqn": "constructs.Construct"
|
|
12220
|
+
}
|
|
12221
|
+
},
|
|
12222
|
+
{
|
|
12223
|
+
"name": "id",
|
|
12224
|
+
"type": {
|
|
12225
|
+
"primitive": "string"
|
|
12226
|
+
}
|
|
12227
|
+
},
|
|
12228
|
+
{
|
|
12229
|
+
"name": "props",
|
|
12230
|
+
"type": {
|
|
12231
|
+
"fqn": "cdk-nextjs.NextjsImageFunctionProps"
|
|
12232
|
+
}
|
|
12233
|
+
}
|
|
12234
|
+
]
|
|
12235
|
+
},
|
|
12236
|
+
"kind": "class",
|
|
12237
|
+
"locationInModule": {
|
|
12238
|
+
"filename": "src/nextjs-compute/nextjs-image-function.ts",
|
|
12239
|
+
"line": 51
|
|
12240
|
+
},
|
|
12241
|
+
"name": "NextjsImageFunction",
|
|
12242
|
+
"properties": [
|
|
12243
|
+
{
|
|
12244
|
+
"docs": {
|
|
12245
|
+
"stability": "stable"
|
|
12246
|
+
},
|
|
12247
|
+
"locationInModule": {
|
|
12248
|
+
"filename": "src/nextjs-compute/nextjs-image-function.ts",
|
|
12249
|
+
"line": 52
|
|
11762
12250
|
},
|
|
11763
|
-
"name": "
|
|
12251
|
+
"name": "function",
|
|
11764
12252
|
"type": {
|
|
11765
|
-
"fqn": "cdk-
|
|
12253
|
+
"fqn": "aws-cdk-lib.aws_lambda.Function"
|
|
11766
12254
|
}
|
|
11767
12255
|
},
|
|
11768
12256
|
{
|
|
@@ -11770,33 +12258,31 @@
|
|
|
11770
12258
|
"stability": "stable"
|
|
11771
12259
|
},
|
|
11772
12260
|
"locationInModule": {
|
|
11773
|
-
"filename": "src/
|
|
11774
|
-
"line":
|
|
12261
|
+
"filename": "src/nextjs-compute/nextjs-image-function.ts",
|
|
12262
|
+
"line": 53
|
|
11775
12263
|
},
|
|
11776
|
-
"name": "
|
|
12264
|
+
"name": "functionUrl",
|
|
12265
|
+
"optional": true,
|
|
11777
12266
|
"type": {
|
|
11778
|
-
"fqn": "cdk-
|
|
12267
|
+
"fqn": "aws-cdk-lib.aws_lambda.FunctionUrl"
|
|
11779
12268
|
}
|
|
11780
12269
|
}
|
|
11781
12270
|
],
|
|
11782
|
-
"symbolId": "src/
|
|
12271
|
+
"symbolId": "src/nextjs-compute/nextjs-image-function:NextjsImageFunction"
|
|
11783
12272
|
},
|
|
11784
|
-
"cdk-nextjs.
|
|
12273
|
+
"cdk-nextjs.NextjsImageFunctionOverrides": {
|
|
11785
12274
|
"assembly": "cdk-nextjs",
|
|
11786
12275
|
"datatype": true,
|
|
11787
12276
|
"docs": {
|
|
11788
12277
|
"stability": "stable"
|
|
11789
12278
|
},
|
|
11790
|
-
"fqn": "cdk-nextjs.
|
|
11791
|
-
"interfaces": [
|
|
11792
|
-
"cdk-nextjs.NextjsBaseConstructOverrides"
|
|
11793
|
-
],
|
|
12279
|
+
"fqn": "cdk-nextjs.NextjsImageFunctionOverrides",
|
|
11794
12280
|
"kind": "interface",
|
|
11795
12281
|
"locationInModule": {
|
|
11796
|
-
"filename": "src/
|
|
11797
|
-
"line":
|
|
12282
|
+
"filename": "src/nextjs-compute/nextjs-image-function.ts",
|
|
12283
|
+
"line": 20
|
|
11798
12284
|
},
|
|
11799
|
-
"name": "
|
|
12285
|
+
"name": "NextjsImageFunctionOverrides",
|
|
11800
12286
|
"properties": [
|
|
11801
12287
|
{
|
|
11802
12288
|
"abstract": true,
|
|
@@ -11805,29 +12291,13 @@
|
|
|
11805
12291
|
},
|
|
11806
12292
|
"immutable": true,
|
|
11807
12293
|
"locationInModule": {
|
|
11808
|
-
"filename": "src/
|
|
11809
|
-
"line":
|
|
11810
|
-
},
|
|
11811
|
-
"name": "nextjsDistributionProps",
|
|
11812
|
-
"optional": true,
|
|
11813
|
-
"type": {
|
|
11814
|
-
"fqn": "cdk-nextjs.OptionalNextjsDistributionProps"
|
|
11815
|
-
}
|
|
11816
|
-
},
|
|
11817
|
-
{
|
|
11818
|
-
"abstract": true,
|
|
11819
|
-
"docs": {
|
|
11820
|
-
"stability": "stable"
|
|
11821
|
-
},
|
|
11822
|
-
"immutable": true,
|
|
11823
|
-
"locationInModule": {
|
|
11824
|
-
"filename": "src/root-constructs/nextjs-global-functions.ts",
|
|
11825
|
-
"line": 27
|
|
12294
|
+
"filename": "src/nextjs-compute/nextjs-image-function.ts",
|
|
12295
|
+
"line": 21
|
|
11826
12296
|
},
|
|
11827
|
-
"name": "
|
|
12297
|
+
"name": "functionProps",
|
|
11828
12298
|
"optional": true,
|
|
11829
12299
|
"type": {
|
|
11830
|
-
"fqn": "cdk-nextjs.
|
|
12300
|
+
"fqn": "cdk-nextjs.OptionalFunctionProps"
|
|
11831
12301
|
}
|
|
11832
12302
|
},
|
|
11833
12303
|
{
|
|
@@ -11837,51 +12307,47 @@
|
|
|
11837
12307
|
},
|
|
11838
12308
|
"immutable": true,
|
|
11839
12309
|
"locationInModule": {
|
|
11840
|
-
"filename": "src/
|
|
11841
|
-
"line":
|
|
12310
|
+
"filename": "src/nextjs-compute/nextjs-image-function.ts",
|
|
12311
|
+
"line": 22
|
|
11842
12312
|
},
|
|
11843
|
-
"name": "
|
|
12313
|
+
"name": "functionUrlProps",
|
|
11844
12314
|
"optional": true,
|
|
11845
12315
|
"type": {
|
|
11846
|
-
"fqn": "cdk-nextjs.
|
|
12316
|
+
"fqn": "cdk-nextjs.OptionalFunctionUrlProps"
|
|
11847
12317
|
}
|
|
11848
12318
|
}
|
|
11849
12319
|
],
|
|
11850
|
-
"symbolId": "src/
|
|
12320
|
+
"symbolId": "src/nextjs-compute/nextjs-image-function:NextjsImageFunctionOverrides"
|
|
11851
12321
|
},
|
|
11852
|
-
"cdk-nextjs.
|
|
12322
|
+
"cdk-nextjs.NextjsImageFunctionProps": {
|
|
11853
12323
|
"assembly": "cdk-nextjs",
|
|
11854
12324
|
"datatype": true,
|
|
11855
12325
|
"docs": {
|
|
11856
|
-
"
|
|
11857
|
-
"stability": "stable",
|
|
11858
|
-
"summary": "Overrides for `NextjsGlobalFunctions`."
|
|
12326
|
+
"stability": "stable"
|
|
11859
12327
|
},
|
|
11860
|
-
"fqn": "cdk-nextjs.
|
|
11861
|
-
"interfaces": [
|
|
11862
|
-
"cdk-nextjs.NextjsBaseOverrides"
|
|
11863
|
-
],
|
|
12328
|
+
"fqn": "cdk-nextjs.NextjsImageFunctionProps",
|
|
11864
12329
|
"kind": "interface",
|
|
11865
12330
|
"locationInModule": {
|
|
11866
|
-
"filename": "src/
|
|
11867
|
-
"line":
|
|
12331
|
+
"filename": "src/nextjs-compute/nextjs-image-function.ts",
|
|
12332
|
+
"line": 25
|
|
11868
12333
|
},
|
|
11869
|
-
"name": "
|
|
12334
|
+
"name": "NextjsImageFunctionProps",
|
|
11870
12335
|
"properties": [
|
|
11871
12336
|
{
|
|
11872
12337
|
"abstract": true,
|
|
11873
12338
|
"docs": {
|
|
11874
|
-
"
|
|
12339
|
+
"see": "{@link NextjsBuild.imageOptimizationAssetPath }",
|
|
12340
|
+
"stability": "stable",
|
|
12341
|
+
"summary": "Absolute path to the asset prepared by `NextjsBuild`: bundled handler, glibc `sharp` binaries, and `required-server-files.json`."
|
|
11875
12342
|
},
|
|
11876
12343
|
"immutable": true,
|
|
11877
12344
|
"locationInModule": {
|
|
11878
|
-
"filename": "src/
|
|
11879
|
-
"line":
|
|
12345
|
+
"filename": "src/nextjs-compute/nextjs-image-function.ts",
|
|
12346
|
+
"line": 32
|
|
11880
12347
|
},
|
|
11881
|
-
"name": "
|
|
11882
|
-
"optional": true,
|
|
12348
|
+
"name": "imageOptimizationAssetPath",
|
|
11883
12349
|
"type": {
|
|
11884
|
-
"
|
|
12350
|
+
"primitive": "string"
|
|
11885
12351
|
}
|
|
11886
12352
|
},
|
|
11887
12353
|
{
|
|
@@ -11891,104 +12357,65 @@
|
|
|
11891
12357
|
},
|
|
11892
12358
|
"immutable": true,
|
|
11893
12359
|
"locationInModule": {
|
|
11894
|
-
"filename": "src/
|
|
11895
|
-
"line":
|
|
12360
|
+
"filename": "src/nextjs-compute/nextjs-image-function.ts",
|
|
12361
|
+
"line": 26
|
|
11896
12362
|
},
|
|
11897
|
-
"name": "
|
|
11898
|
-
"optional": true,
|
|
12363
|
+
"name": "nextjsType",
|
|
11899
12364
|
"type": {
|
|
11900
|
-
"fqn": "cdk-nextjs.
|
|
12365
|
+
"fqn": "cdk-nextjs.NextjsType"
|
|
11901
12366
|
}
|
|
11902
12367
|
},
|
|
11903
12368
|
{
|
|
11904
12369
|
"abstract": true,
|
|
11905
12370
|
"docs": {
|
|
11906
|
-
"stability": "stable"
|
|
12371
|
+
"stability": "stable",
|
|
12372
|
+
"summary": "S3 bucket containing static assets, read by the handler to serve non-absolute image URLs."
|
|
11907
12373
|
},
|
|
11908
12374
|
"immutable": true,
|
|
11909
12375
|
"locationInModule": {
|
|
11910
|
-
"filename": "src/
|
|
11911
|
-
"line":
|
|
12376
|
+
"filename": "src/nextjs-compute/nextjs-image-function.ts",
|
|
12377
|
+
"line": 37
|
|
11912
12378
|
},
|
|
11913
|
-
"name": "
|
|
11914
|
-
"optional": true,
|
|
12379
|
+
"name": "staticAssetsBucket",
|
|
11915
12380
|
"type": {
|
|
11916
|
-
"fqn": "cdk-
|
|
12381
|
+
"fqn": "aws-cdk-lib.aws_s3.IBucket"
|
|
11917
12382
|
}
|
|
11918
12383
|
},
|
|
11919
12384
|
{
|
|
11920
12385
|
"abstract": true,
|
|
11921
12386
|
"docs": {
|
|
11922
|
-
"stability": "stable"
|
|
11923
|
-
},
|
|
11924
|
-
"immutable": true,
|
|
11925
|
-
"locationInModule": {
|
|
11926
|
-
"filename": "src/root-constructs/nextjs-global-functions.ts",
|
|
11927
|
-
"line": 41
|
|
11928
|
-
},
|
|
11929
|
-
"name": "nextjsPostDeploy",
|
|
11930
|
-
"optional": true,
|
|
11931
|
-
"type": {
|
|
11932
|
-
"fqn": "cdk-nextjs.NextjsPostDeployOverrides"
|
|
11933
|
-
}
|
|
11934
|
-
}
|
|
11935
|
-
],
|
|
11936
|
-
"symbolId": "src/root-constructs/nextjs-global-functions:NextjsGlobalFunctionsOverrides"
|
|
11937
|
-
},
|
|
11938
|
-
"cdk-nextjs.NextjsGlobalFunctionsProps": {
|
|
11939
|
-
"assembly": "cdk-nextjs",
|
|
11940
|
-
"datatype": true,
|
|
11941
|
-
"docs": {
|
|
11942
|
-
"stability": "stable"
|
|
11943
|
-
},
|
|
11944
|
-
"fqn": "cdk-nextjs.NextjsGlobalFunctionsProps",
|
|
11945
|
-
"interfaces": [
|
|
11946
|
-
"cdk-nextjs.NextjsBaseProps"
|
|
11947
|
-
],
|
|
11948
|
-
"kind": "interface",
|
|
11949
|
-
"locationInModule": {
|
|
11950
|
-
"filename": "src/root-constructs/nextjs-global-functions.ts",
|
|
11951
|
-
"line": 44
|
|
11952
|
-
},
|
|
11953
|
-
"name": "NextjsGlobalFunctionsProps",
|
|
11954
|
-
"properties": [
|
|
11955
|
-
{
|
|
11956
|
-
"abstract": true,
|
|
11957
|
-
"docs": {
|
|
11958
|
-
"remarks": "Can be used with `basePath` to host multiple\napps on the same CloudFront distribution.",
|
|
11959
12387
|
"stability": "stable",
|
|
11960
|
-
"summary": "
|
|
12388
|
+
"summary": "Override props of any construct."
|
|
11961
12389
|
},
|
|
11962
12390
|
"immutable": true,
|
|
11963
12391
|
"locationInModule": {
|
|
11964
|
-
"filename": "src/
|
|
11965
|
-
"line":
|
|
12392
|
+
"filename": "src/nextjs-compute/nextjs-image-function.ts",
|
|
12393
|
+
"line": 42
|
|
11966
12394
|
},
|
|
11967
|
-
"name": "
|
|
12395
|
+
"name": "overrides",
|
|
11968
12396
|
"optional": true,
|
|
11969
12397
|
"type": {
|
|
11970
|
-
"fqn": "
|
|
12398
|
+
"fqn": "cdk-nextjs.NextjsImageFunctionOverrides"
|
|
11971
12399
|
}
|
|
11972
12400
|
},
|
|
11973
12401
|
{
|
|
11974
12402
|
"abstract": true,
|
|
11975
12403
|
"docs": {
|
|
11976
|
-
"stability": "stable"
|
|
11977
|
-
"summary": "Override props of any construct."
|
|
12404
|
+
"stability": "stable"
|
|
11978
12405
|
},
|
|
11979
12406
|
"immutable": true,
|
|
11980
12407
|
"locationInModule": {
|
|
11981
|
-
"filename": "src/
|
|
11982
|
-
"line":
|
|
12408
|
+
"filename": "src/nextjs-compute/nextjs-image-function.ts",
|
|
12409
|
+
"line": 38
|
|
11983
12410
|
},
|
|
11984
|
-
"name": "
|
|
12411
|
+
"name": "vpc",
|
|
11985
12412
|
"optional": true,
|
|
11986
12413
|
"type": {
|
|
11987
|
-
"fqn": "cdk-
|
|
12414
|
+
"fqn": "aws-cdk-lib.aws_ec2.IVpc"
|
|
11988
12415
|
}
|
|
11989
12416
|
}
|
|
11990
12417
|
],
|
|
11991
|
-
"symbolId": "src/
|
|
12418
|
+
"symbolId": "src/nextjs-compute/nextjs-image-function:NextjsImageFunctionProps"
|
|
11992
12419
|
},
|
|
11993
12420
|
"cdk-nextjs.NextjsPostDeploy": {
|
|
11994
12421
|
"assembly": "cdk-nextjs",
|
|
@@ -12563,7 +12990,7 @@
|
|
|
12563
12990
|
},
|
|
12564
12991
|
"locationInModule": {
|
|
12565
12992
|
"filename": "src/root-constructs/nextjs-regional-functions.ts",
|
|
12566
|
-
"line":
|
|
12993
|
+
"line": 71
|
|
12567
12994
|
},
|
|
12568
12995
|
"parameters": [
|
|
12569
12996
|
{
|
|
@@ -12589,7 +13016,7 @@
|
|
|
12589
13016
|
"kind": "class",
|
|
12590
13017
|
"locationInModule": {
|
|
12591
13018
|
"filename": "src/root-constructs/nextjs-regional-functions.ts",
|
|
12592
|
-
"line":
|
|
13019
|
+
"line": 55
|
|
12593
13020
|
},
|
|
12594
13021
|
"name": "NextjsRegionalFunctions",
|
|
12595
13022
|
"properties": [
|
|
@@ -12600,7 +13027,7 @@
|
|
|
12600
13027
|
"immutable": true,
|
|
12601
13028
|
"locationInModule": {
|
|
12602
13029
|
"filename": "src/root-constructs/nextjs-regional-functions.ts",
|
|
12603
|
-
"line":
|
|
13030
|
+
"line": 65
|
|
12604
13031
|
},
|
|
12605
13032
|
"name": "url",
|
|
12606
13033
|
"overrides": "cdk-nextjs.NextjsBaseConstruct",
|
|
@@ -12614,7 +13041,7 @@
|
|
|
12614
13041
|
},
|
|
12615
13042
|
"locationInModule": {
|
|
12616
13043
|
"filename": "src/root-constructs/nextjs-regional-functions.ts",
|
|
12617
|
-
"line":
|
|
13044
|
+
"line": 63
|
|
12618
13045
|
},
|
|
12619
13046
|
"name": "nextjsApi",
|
|
12620
13047
|
"type": {
|
|
@@ -12627,7 +13054,7 @@
|
|
|
12627
13054
|
},
|
|
12628
13055
|
"locationInModule": {
|
|
12629
13056
|
"filename": "src/root-constructs/nextjs-regional-functions.ts",
|
|
12630
|
-
"line":
|
|
13057
|
+
"line": 56
|
|
12631
13058
|
},
|
|
12632
13059
|
"name": "nextjsFunctions",
|
|
12633
13060
|
"type": {
|
|
@@ -12640,12 +13067,28 @@
|
|
|
12640
13067
|
},
|
|
12641
13068
|
"locationInModule": {
|
|
12642
13069
|
"filename": "src/root-constructs/nextjs-regional-functions.ts",
|
|
12643
|
-
"line":
|
|
13070
|
+
"line": 64
|
|
12644
13071
|
},
|
|
12645
13072
|
"name": "nextjsPostDeploy",
|
|
12646
13073
|
"type": {
|
|
12647
13074
|
"fqn": "cdk-nextjs.NextjsPostDeploy"
|
|
12648
13075
|
}
|
|
13076
|
+
},
|
|
13077
|
+
{
|
|
13078
|
+
"docs": {
|
|
13079
|
+
"remarks": "`_next/image` is otherwise served by\n{@link nextjsFunctions}.",
|
|
13080
|
+
"stability": "stable",
|
|
13081
|
+
"summary": "Only created when the (experimental, unsupported) dedicated image optimization Lambda is enabled."
|
|
13082
|
+
},
|
|
13083
|
+
"locationInModule": {
|
|
13084
|
+
"filename": "src/root-constructs/nextjs-regional-functions.ts",
|
|
13085
|
+
"line": 62
|
|
13086
|
+
},
|
|
13087
|
+
"name": "nextjsImageFunction",
|
|
13088
|
+
"optional": true,
|
|
13089
|
+
"type": {
|
|
13090
|
+
"fqn": "cdk-nextjs.NextjsImageFunction"
|
|
13091
|
+
}
|
|
12649
13092
|
}
|
|
12650
13093
|
],
|
|
12651
13094
|
"symbolId": "src/root-constructs/nextjs-regional-functions:NextjsRegionalFunctions"
|
|
@@ -12658,12 +13101,12 @@
|
|
|
12658
13101
|
},
|
|
12659
13102
|
"fqn": "cdk-nextjs.NextjsRegionalFunctionsConstructOverrides",
|
|
12660
13103
|
"interfaces": [
|
|
12661
|
-
"cdk-nextjs.
|
|
13104
|
+
"cdk-nextjs.NextjsFunctionsConstructOverrides"
|
|
12662
13105
|
],
|
|
12663
13106
|
"kind": "interface",
|
|
12664
13107
|
"locationInModule": {
|
|
12665
13108
|
"filename": "src/root-constructs/nextjs-regional-functions.ts",
|
|
12666
|
-
"line":
|
|
13109
|
+
"line": 26
|
|
12667
13110
|
},
|
|
12668
13111
|
"name": "NextjsRegionalFunctionsConstructOverrides",
|
|
12669
13112
|
"properties": [
|
|
@@ -12675,7 +13118,7 @@
|
|
|
12675
13118
|
"immutable": true,
|
|
12676
13119
|
"locationInModule": {
|
|
12677
13120
|
"filename": "src/root-constructs/nextjs-regional-functions.ts",
|
|
12678
|
-
"line":
|
|
13121
|
+
"line": 27
|
|
12679
13122
|
},
|
|
12680
13123
|
"name": "nextjsApiProps",
|
|
12681
13124
|
"optional": true,
|
|
@@ -12691,23 +13134,7 @@
|
|
|
12691
13134
|
"immutable": true,
|
|
12692
13135
|
"locationInModule": {
|
|
12693
13136
|
"filename": "src/root-constructs/nextjs-regional-functions.ts",
|
|
12694
|
-
"line":
|
|
12695
|
-
},
|
|
12696
|
-
"name": "nextjsFunctionsProps",
|
|
12697
|
-
"optional": true,
|
|
12698
|
-
"type": {
|
|
12699
|
-
"fqn": "cdk-nextjs.NextjsFunctionsProps"
|
|
12700
|
-
}
|
|
12701
|
-
},
|
|
12702
|
-
{
|
|
12703
|
-
"abstract": true,
|
|
12704
|
-
"docs": {
|
|
12705
|
-
"stability": "stable"
|
|
12706
|
-
},
|
|
12707
|
-
"immutable": true,
|
|
12708
|
-
"locationInModule": {
|
|
12709
|
-
"filename": "src/root-constructs/nextjs-regional-functions.ts",
|
|
12710
|
-
"line": 25
|
|
13137
|
+
"line": 28
|
|
12711
13138
|
},
|
|
12712
13139
|
"name": "nextjsPostDeployProps",
|
|
12713
13140
|
"optional": true,
|
|
@@ -12733,7 +13160,7 @@
|
|
|
12733
13160
|
"kind": "interface",
|
|
12734
13161
|
"locationInModule": {
|
|
12735
13162
|
"filename": "src/root-constructs/nextjs-regional-functions.ts",
|
|
12736
|
-
"line":
|
|
13163
|
+
"line": 36
|
|
12737
13164
|
},
|
|
12738
13165
|
"name": "NextjsRegionalFunctionsOverrides",
|
|
12739
13166
|
"properties": [
|
|
@@ -12745,7 +13172,7 @@
|
|
|
12745
13172
|
"immutable": true,
|
|
12746
13173
|
"locationInModule": {
|
|
12747
13174
|
"filename": "src/root-constructs/nextjs-regional-functions.ts",
|
|
12748
|
-
"line":
|
|
13175
|
+
"line": 40
|
|
12749
13176
|
},
|
|
12750
13177
|
"name": "nextjsApi",
|
|
12751
13178
|
"optional": true,
|
|
@@ -12761,7 +13188,7 @@
|
|
|
12761
13188
|
"immutable": true,
|
|
12762
13189
|
"locationInModule": {
|
|
12763
13190
|
"filename": "src/root-constructs/nextjs-regional-functions.ts",
|
|
12764
|
-
"line":
|
|
13191
|
+
"line": 38
|
|
12765
13192
|
},
|
|
12766
13193
|
"name": "nextjsFunctions",
|
|
12767
13194
|
"optional": true,
|
|
@@ -12777,7 +13204,23 @@
|
|
|
12777
13204
|
"immutable": true,
|
|
12778
13205
|
"locationInModule": {
|
|
12779
13206
|
"filename": "src/root-constructs/nextjs-regional-functions.ts",
|
|
12780
|
-
"line":
|
|
13207
|
+
"line": 39
|
|
13208
|
+
},
|
|
13209
|
+
"name": "nextjsImageFunction",
|
|
13210
|
+
"optional": true,
|
|
13211
|
+
"type": {
|
|
13212
|
+
"fqn": "cdk-nextjs.NextjsImageFunctionOverrides"
|
|
13213
|
+
}
|
|
13214
|
+
},
|
|
13215
|
+
{
|
|
13216
|
+
"abstract": true,
|
|
13217
|
+
"docs": {
|
|
13218
|
+
"stability": "stable"
|
|
13219
|
+
},
|
|
13220
|
+
"immutable": true,
|
|
13221
|
+
"locationInModule": {
|
|
13222
|
+
"filename": "src/root-constructs/nextjs-regional-functions.ts",
|
|
13223
|
+
"line": 41
|
|
12781
13224
|
},
|
|
12782
13225
|
"name": "nextjsPostDeploy",
|
|
12783
13226
|
"optional": true,
|
|
@@ -12793,7 +13236,7 @@
|
|
|
12793
13236
|
"immutable": true,
|
|
12794
13237
|
"locationInModule": {
|
|
12795
13238
|
"filename": "src/root-constructs/nextjs-regional-functions.ts",
|
|
12796
|
-
"line":
|
|
13239
|
+
"line": 37
|
|
12797
13240
|
},
|
|
12798
13241
|
"name": "nextjsRegionalFunctions",
|
|
12799
13242
|
"optional": true,
|
|
@@ -12817,7 +13260,7 @@
|
|
|
12817
13260
|
"kind": "interface",
|
|
12818
13261
|
"locationInModule": {
|
|
12819
13262
|
"filename": "src/root-constructs/nextjs-regional-functions.ts",
|
|
12820
|
-
"line":
|
|
13263
|
+
"line": 44
|
|
12821
13264
|
},
|
|
12822
13265
|
"name": "NextjsRegionalFunctionsProps",
|
|
12823
13266
|
"properties": [
|
|
@@ -12830,7 +13273,7 @@
|
|
|
12830
13273
|
"immutable": true,
|
|
12831
13274
|
"locationInModule": {
|
|
12832
13275
|
"filename": "src/root-constructs/nextjs-regional-functions.ts",
|
|
12833
|
-
"line":
|
|
13276
|
+
"line": 48
|
|
12834
13277
|
},
|
|
12835
13278
|
"name": "overrides",
|
|
12836
13279
|
"optional": true,
|
|
@@ -18294,7 +18737,7 @@
|
|
|
18294
18737
|
"immutable": true,
|
|
18295
18738
|
"locationInModule": {
|
|
18296
18739
|
"filename": "src/generated-structs/OptionalNextjsDistributionProps.ts",
|
|
18297
|
-
"line":
|
|
18740
|
+
"line": 56
|
|
18298
18741
|
},
|
|
18299
18742
|
"name": "assetsBucket",
|
|
18300
18743
|
"optional": true,
|
|
@@ -18310,7 +18753,7 @@
|
|
|
18310
18753
|
"immutable": true,
|
|
18311
18754
|
"locationInModule": {
|
|
18312
18755
|
"filename": "src/generated-structs/OptionalNextjsDistributionProps.ts",
|
|
18313
|
-
"line":
|
|
18756
|
+
"line": 41
|
|
18314
18757
|
},
|
|
18315
18758
|
"name": "basePath",
|
|
18316
18759
|
"optional": true,
|
|
@@ -18327,7 +18770,7 @@
|
|
|
18327
18770
|
"immutable": true,
|
|
18328
18771
|
"locationInModule": {
|
|
18329
18772
|
"filename": "src/generated-structs/OptionalNextjsDistributionProps.ts",
|
|
18330
|
-
"line":
|
|
18773
|
+
"line": 37
|
|
18331
18774
|
},
|
|
18332
18775
|
"name": "certificate",
|
|
18333
18776
|
"optional": true,
|
|
@@ -18343,7 +18786,7 @@
|
|
|
18343
18786
|
"immutable": true,
|
|
18344
18787
|
"locationInModule": {
|
|
18345
18788
|
"filename": "src/generated-structs/OptionalNextjsDistributionProps.ts",
|
|
18346
|
-
"line":
|
|
18789
|
+
"line": 32
|
|
18347
18790
|
},
|
|
18348
18791
|
"name": "distribution",
|
|
18349
18792
|
"optional": true,
|
|
@@ -18360,7 +18803,7 @@
|
|
|
18360
18803
|
"immutable": true,
|
|
18361
18804
|
"locationInModule": {
|
|
18362
18805
|
"filename": "src/generated-structs/OptionalNextjsDistributionProps.ts",
|
|
18363
|
-
"line":
|
|
18806
|
+
"line": 28
|
|
18364
18807
|
},
|
|
18365
18808
|
"name": "functionUrl",
|
|
18366
18809
|
"optional": true,
|
|
@@ -18368,6 +18811,24 @@
|
|
|
18368
18811
|
"fqn": "aws-cdk-lib.aws_lambda.IFunctionUrl"
|
|
18369
18812
|
}
|
|
18370
18813
|
},
|
|
18814
|
+
{
|
|
18815
|
+
"abstract": true,
|
|
18816
|
+
"docs": {
|
|
18817
|
+
"remarks": "Only applicable\nto `NextjsType.GLOBAL_FUNCTIONS`, and only when the dedicated image\nfunction is enabled. When omitted, the `_next/image*` behavior points at\nthe dynamic origin, which serves image optimization from the Next.js\nserver itself.",
|
|
18818
|
+
"stability": "stable",
|
|
18819
|
+
"summary": "Function URL of the dedicated image optimization Lambda."
|
|
18820
|
+
},
|
|
18821
|
+
"immutable": true,
|
|
18822
|
+
"locationInModule": {
|
|
18823
|
+
"filename": "src/generated-structs/OptionalNextjsDistributionProps.ts",
|
|
18824
|
+
"line": 23
|
|
18825
|
+
},
|
|
18826
|
+
"name": "imageFunctionUrl",
|
|
18827
|
+
"optional": true,
|
|
18828
|
+
"type": {
|
|
18829
|
+
"fqn": "aws-cdk-lib.aws_lambda.IFunctionUrl"
|
|
18830
|
+
}
|
|
18831
|
+
},
|
|
18371
18832
|
{
|
|
18372
18833
|
"abstract": true,
|
|
18373
18834
|
"docs": {
|
|
@@ -18393,7 +18854,7 @@
|
|
|
18393
18854
|
"immutable": true,
|
|
18394
18855
|
"locationInModule": {
|
|
18395
18856
|
"filename": "src/generated-structs/OptionalNextjsDistributionProps.ts",
|
|
18396
|
-
"line":
|
|
18857
|
+
"line": 50
|
|
18397
18858
|
},
|
|
18398
18859
|
"name": "nextjsType",
|
|
18399
18860
|
"optional": true,
|
|
@@ -18410,7 +18871,7 @@
|
|
|
18410
18871
|
"immutable": true,
|
|
18411
18872
|
"locationInModule": {
|
|
18412
18873
|
"filename": "src/generated-structs/OptionalNextjsDistributionProps.ts",
|
|
18413
|
-
"line":
|
|
18874
|
+
"line": 46
|
|
18414
18875
|
},
|
|
18415
18876
|
"name": "publicDirEntries",
|
|
18416
18877
|
"optional": true,
|
|
@@ -19516,7 +19977,7 @@
|
|
|
19516
19977
|
"kind": "interface",
|
|
19517
19978
|
"locationInModule": {
|
|
19518
19979
|
"filename": "src/nextjs-build/nextjs-build.ts",
|
|
19519
|
-
"line":
|
|
19980
|
+
"line": 44
|
|
19520
19981
|
},
|
|
19521
19982
|
"name": "PublicDirEntry",
|
|
19522
19983
|
"properties": [
|
|
@@ -19528,7 +19989,7 @@
|
|
|
19528
19989
|
"immutable": true,
|
|
19529
19990
|
"locationInModule": {
|
|
19530
19991
|
"filename": "src/nextjs-build/nextjs-build.ts",
|
|
19531
|
-
"line":
|
|
19992
|
+
"line": 46
|
|
19532
19993
|
},
|
|
19533
19994
|
"name": "isDirectory",
|
|
19534
19995
|
"type": {
|
|
@@ -19543,7 +20004,7 @@
|
|
|
19543
20004
|
"immutable": true,
|
|
19544
20005
|
"locationInModule": {
|
|
19545
20006
|
"filename": "src/nextjs-build/nextjs-build.ts",
|
|
19546
|
-
"line":
|
|
20007
|
+
"line": 45
|
|
19547
20008
|
},
|
|
19548
20009
|
"name": "name",
|
|
19549
20010
|
"type": {
|
|
@@ -19554,6 +20015,6 @@
|
|
|
19554
20015
|
"symbolId": "src/nextjs-build/nextjs-build:PublicDirEntry"
|
|
19555
20016
|
}
|
|
19556
20017
|
},
|
|
19557
|
-
"version": "0.5.
|
|
19558
|
-
"fingerprint": "
|
|
20018
|
+
"version": "0.5.16",
|
|
20019
|
+
"fingerprint": "WkgTC64yZ4w+0WifXv7ga3U52o4WHYNoJEoUiFlMj+E="
|
|
19559
20020
|
}
|