cdk-nextjs 0.3.11 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +1248 -748
- package/API.md +1033 -531
- package/README.md +1 -2
- package/assets/lambdas/assets-deployment/assets-deployment.lambda/assets-deployment.Dockerfile +12 -8
- package/assets/lambdas/assets-deployment/assets-deployment.lambda/index.js +67 -56
- package/assets/lambdas/post-deploy/post-deploy.lambda/index.js +246 -0
- package/docs/breaking-changes.md +9 -0
- package/docs/notes.md +170 -20
- package/lib/constants.d.ts +32 -0
- package/lib/constants.js +38 -0
- package/lib/generated-structs/OptionalCustomResourceProps.d.ts +104 -0
- package/lib/generated-structs/OptionalCustomResourceProps.js +3 -0
- package/lib/generated-structs/OptionalDockerImageAssetProps.d.ts +21 -0
- package/lib/generated-structs/OptionalDockerImageAssetProps.js +1 -1
- package/lib/generated-structs/OptionalNextjsAssetsDeploymentProps.d.ts +4 -3
- package/lib/generated-structs/OptionalNextjsAssetsDeploymentProps.js +1 -1
- package/lib/generated-structs/OptionalNextjsBuildProps.d.ts +1 -1
- package/lib/generated-structs/OptionalNextjsBuildProps.js +1 -1
- package/lib/generated-structs/OptionalNextjsContainersProps.d.ts +3 -3
- package/lib/generated-structs/OptionalNextjsContainersProps.js +1 -1
- package/lib/generated-structs/OptionalNextjsPostDeployProps.d.ts +42 -0
- package/lib/generated-structs/OptionalNextjsPostDeployProps.js +3 -0
- package/lib/generated-structs/OptionalPostDeployCustomResourceProperties.d.ts +41 -0
- package/lib/generated-structs/OptionalPostDeployCustomResourceProperties.js +4 -0
- package/lib/index.d.ts +6 -5
- package/lib/index.js +6 -8
- package/lib/lambdas/assets-deployment/assets-deployment.lambda.js +5 -23
- package/lib/lambdas/assets-deployment/fs-to-fs.js +18 -3
- package/lib/lambdas/assets-deployment/fs-to-s3.d.ts +8 -2
- package/lib/lambdas/assets-deployment/fs-to-s3.js +14 -8
- package/lib/lambdas/post-deploy/create-invalidation.d.ts +2 -0
- package/lib/lambdas/post-deploy/create-invalidation.js +19 -0
- package/lib/lambdas/post-deploy/post-deploy-function.d.ts +13 -0
- package/lib/lambdas/post-deploy/post-deploy-function.js +22 -0
- package/lib/lambdas/post-deploy/post-deploy.lambda.d.ts +9 -0
- package/lib/lambdas/post-deploy/post-deploy.lambda.js +56 -0
- package/lib/lambdas/post-deploy/prune-fs.d.ts +10 -0
- package/lib/lambdas/post-deploy/prune-fs.js +33 -0
- package/lib/lambdas/post-deploy/prune-s3.d.ts +15 -0
- package/lib/lambdas/post-deploy/prune-s3.js +101 -0
- package/lib/lambdas/utils.js +35 -0
- package/lib/nextjs-assets-deployment.d.ts +15 -51
- package/lib/nextjs-assets-deployment.js +27 -25
- package/lib/nextjs-build/builder.Dockerfile +12 -8
- package/lib/nextjs-build/cdk-nextjs-cache-handler.cjs +63 -0
- package/lib/nextjs-build/cdk-nextjs-cache-handler.d.ts +21 -0
- package/lib/nextjs-build/cdk-nextjs-cache-handler.js +49 -0
- package/lib/nextjs-build/global-containers.Dockerfile +29 -19
- package/lib/nextjs-build/global-functions.Dockerfile +30 -24
- package/lib/nextjs-build/nextjs-build.d.ts +51 -26
- package/lib/nextjs-build/nextjs-build.js +108 -88
- package/lib/nextjs-build/regional-containers.Dockerfile +30 -20
- package/lib/nextjs-compute/nextjs-compute-base-props.d.ts +0 -1
- package/lib/nextjs-compute/nextjs-compute-base-props.js +1 -1
- package/lib/nextjs-compute/nextjs-containers.d.ts +2 -1
- package/lib/nextjs-compute/nextjs-containers.js +7 -5
- package/lib/nextjs-compute/nextjs-functions.d.ts +1 -0
- package/lib/nextjs-compute/nextjs-functions.js +8 -11
- package/lib/nextjs-distribution.d.ts +1 -1
- package/lib/nextjs-distribution.js +4 -4
- package/lib/nextjs-file-system.js +1 -1
- package/lib/nextjs-post-deploy.d.ts +101 -0
- package/lib/nextjs-post-deploy.js +78 -0
- package/lib/nextjs-static-assets.js +1 -1
- package/lib/nextjs-vpc.d.ts +1 -1
- package/lib/nextjs-vpc.js +4 -4
- package/lib/root-constructs/nextjs-base-overrides.d.ts +4 -0
- package/lib/root-constructs/nextjs-base-overrides.js +1 -1
- package/lib/root-constructs/nextjs-base-props.d.ts +15 -7
- package/lib/root-constructs/nextjs-base-props.js +1 -1
- package/lib/root-constructs/nextjs-global-containers.d.ts +8 -8
- package/lib/root-constructs/nextjs-global-containers.js +25 -15
- package/lib/root-constructs/nextjs-global-functions.d.ts +8 -11
- package/lib/root-constructs/nextjs-global-functions.js +25 -25
- package/lib/root-constructs/nextjs-regional-containers.d.ts +8 -0
- package/lib/root-constructs/nextjs-regional-containers.js +26 -9
- package/lib/utils/get-architecture.d.ts +2 -0
- package/lib/utils/get-architecture.js +8 -0
- package/lib/utils/handle-deprecated-properties.d.ts +7 -0
- package/lib/utils/handle-deprecated-properties.js +14 -0
- package/package.json +17 -19
- package/assets/lambdas/revalidate/revalidate.lambda/index.js +0 -67
- package/lib/common.d.ts +0 -25
- package/lib/common.js +0 -30
- package/lib/generated-structs/OptionalNextjsInvalidationProps.d.ts +0 -11
- package/lib/generated-structs/OptionalNextjsInvalidationProps.js +0 -3
- package/lib/lambdas/assets-deployment/prune-s3.d.ts +0 -15
- package/lib/lambdas/assets-deployment/prune-s3.js +0 -42
- package/lib/lambdas/assets-deployment/s3.d.ts +0 -2
- package/lib/lambdas/assets-deployment/s3.js +0 -7
- package/lib/lambdas/assets-deployment/utils.js +0 -35
- package/lib/lambdas/revalidate/revalidate-function.d.ts +0 -13
- package/lib/lambdas/revalidate/revalidate-function.js +0 -22
- package/lib/lambdas/revalidate/revalidate.lambda.d.ts +0 -2
- package/lib/lambdas/revalidate/revalidate.lambda.js +0 -53
- package/lib/nextjs-build/add-cache-handler.d.ts +0 -1
- package/lib/nextjs-build/add-cache-handler.js +0 -23
- package/lib/nextjs-build/add-cache-handler.mjs +0 -18
- package/lib/nextjs-build/cache-handler.cjs +0 -21878
- package/lib/nextjs-build/cache-handler.d.ts +0 -6
- package/lib/nextjs-build/cache-handler.js +0 -26
- package/lib/nextjs-invalidation.d.ts +0 -19
- package/lib/nextjs-invalidation.js +0 -52
- package/lib/nextjs-revalidation.d.ts +0 -30
- package/lib/nextjs-revalidation.js +0 -65
- /package/lib/lambdas/{assets-deployment/utils.d.ts → utils.d.ts} +0 -0
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3B0aW9uYWxOZXh0anNJbnZhbGlkYXRpb25Qcm9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nZW5lcmF0ZWQtc3RydWN0cy9PcHRpb25hbE5leHRqc0ludmFsaWRhdGlvblByb3BzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB+fiBHZW5lcmF0ZWQgYnkgcHJvamVuLiBUbyBtb2RpZnksIGVkaXQgLnByb2plbnJjLnRzIGFuZCBydW4gXCJwbnBtIGRseCBwcm9qZW5cIi5cbmltcG9ydCB0eXBlIHsgYXdzX2Nsb3VkZnJvbnQgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5cbi8qKlxuICogT3B0aW9uYWxOZXh0anNJbnZhbGlkYXRpb25Qcm9wc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIE9wdGlvbmFsTmV4dGpzSW52YWxpZGF0aW9uUHJvcHMge1xuICAvKipcbiAgICogQ2xvdWRGcm9udCBEaXN0cmlidXRpb24gdG8gaW52YWxpZGF0ZS5cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGRpc3RyaWJ1dGlvbj86IGF3c19jbG91ZGZyb250LklEaXN0cmlidXRpb247XG59XG4iXX0=
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { PruneS3Action } from "../../nextjs-assets-deployment";
|
|
2
|
-
/**
|
|
3
|
-
* Safely removes assets that were deployed > 1 deployment ago AND were deployed
|
|
4
|
-
* greater than a month ago. Those values should be configurable.
|
|
5
|
-
*/
|
|
6
|
-
export declare function pruneS3(props: PruneS3Action): Promise<void>;
|
|
7
|
-
interface ListObjectKeysProps {
|
|
8
|
-
bucketName: string;
|
|
9
|
-
keyPrefix?: string;
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* List all object keys in bucket
|
|
13
|
-
*/
|
|
14
|
-
export declare function listObjectKeys({ bucketName, keyPrefix, }: ListObjectKeysProps): Promise<string[]>;
|
|
15
|
-
export {};
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.pruneS3 = pruneS3;
|
|
4
|
-
exports.listObjectKeys = listObjectKeys;
|
|
5
|
-
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
6
|
-
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
7
|
-
const s3_1 = require("./s3");
|
|
8
|
-
/**
|
|
9
|
-
* Safely removes assets that were deployed > 1 deployment ago AND were deployed
|
|
10
|
-
* greater than a month ago. Those values should be configurable.
|
|
11
|
-
*/
|
|
12
|
-
async function pruneS3(props) {
|
|
13
|
-
props;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* List all object keys in bucket
|
|
17
|
-
*/
|
|
18
|
-
async function listObjectKeys({ bucketName, keyPrefix, }) {
|
|
19
|
-
const oldObjectKeys = [];
|
|
20
|
-
let nextToken = undefined;
|
|
21
|
-
do {
|
|
22
|
-
const cmd = {
|
|
23
|
-
Bucket: bucketName,
|
|
24
|
-
Prefix: keyPrefix,
|
|
25
|
-
};
|
|
26
|
-
if (nextToken) {
|
|
27
|
-
cmd.ContinuationToken = nextToken;
|
|
28
|
-
}
|
|
29
|
-
const res = await s3_1.s3.send(new client_s3_1.ListObjectsV2Command(cmd));
|
|
30
|
-
const contents = res.Contents;
|
|
31
|
-
nextToken = res.NextContinuationToken;
|
|
32
|
-
if (contents?.length) {
|
|
33
|
-
for (const { Key: key } of contents) {
|
|
34
|
-
if (key) {
|
|
35
|
-
oldObjectKeys.push(key);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
} while (nextToken);
|
|
40
|
-
return oldObjectKeys;
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJ1bmUtczMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGFtYmRhcy9hc3NldHMtZGVwbG95bWVudC9wcnVuZS1zMy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVlBLDBCQUVDO0FBVUQsd0NBMEJDO0FBbERELDZEQUE2RDtBQUM3RCxrREFHNEI7QUFDNUIsNkJBQTBCO0FBRzFCOzs7R0FHRztBQUNJLEtBQUssVUFBVSxPQUFPLENBQUMsS0FBb0I7SUFDaEQsS0FBSyxDQUFDO0FBQ1IsQ0FBQztBQU9EOztHQUVHO0FBQ0ksS0FBSyxVQUFVLGNBQWMsQ0FBQyxFQUNuQyxVQUFVLEVBQ1YsU0FBUyxHQUNXO0lBQ3BCLE1BQU0sYUFBYSxHQUFhLEVBQUUsQ0FBQztJQUNuQyxJQUFJLFNBQVMsR0FBdUIsU0FBUyxDQUFDO0lBQzlDLEdBQUcsQ0FBQztRQUNGLE1BQU0sR0FBRyxHQUE4QjtZQUNyQyxNQUFNLEVBQUUsVUFBVTtZQUNsQixNQUFNLEVBQUUsU0FBUztTQUNsQixDQUFDO1FBQ0YsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLEdBQUcsQ0FBQyxpQkFBaUIsR0FBRyxTQUFTLENBQUM7UUFDcEMsQ0FBQztRQUNELE1BQU0sR0FBRyxHQUFHLE1BQU0sT0FBRSxDQUFDLElBQUksQ0FBQyxJQUFJLGdDQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDekQsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUM5QixTQUFTLEdBQUcsR0FBRyxDQUFDLHFCQUFxQixDQUFDO1FBQ3RDLElBQUksUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3JCLEtBQUssTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDcEMsSUFBSSxHQUFHLEVBQUUsQ0FBQztvQkFDUixhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMxQixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDLFFBQVEsU0FBUyxFQUFFO0lBQ3BCLE9BQU8sYUFBYSxDQUFDO0FBQ3ZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXG5pbXBvcnQge1xuICBMaXN0T2JqZWN0c1YyQ29tbWFuZCxcbiAgTGlzdE9iamVjdHNWMkNvbW1hbmRJbnB1dCxcbn0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1zM1wiO1xuaW1wb3J0IHsgczMgfSBmcm9tIFwiLi9zM1wiO1xuaW1wb3J0IHR5cGUgeyBQcnVuZVMzQWN0aW9uIH0gZnJvbSBcIi4uLy4uL25leHRqcy1hc3NldHMtZGVwbG95bWVudFwiO1xuXG4vKipcbiAqIFNhZmVseSByZW1vdmVzIGFzc2V0cyB0aGF0IHdlcmUgZGVwbG95ZWQgPiAxIGRlcGxveW1lbnQgYWdvIEFORCB3ZXJlIGRlcGxveWVkXG4gKiBncmVhdGVyIHRoYW4gYSBtb250aCBhZ28uIFRob3NlIHZhbHVlcyBzaG91bGQgYmUgY29uZmlndXJhYmxlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJ1bmVTMyhwcm9wczogUHJ1bmVTM0FjdGlvbikge1xuICBwcm9wcztcbn1cblxuaW50ZXJmYWNlIExpc3RPYmplY3RLZXlzUHJvcHMge1xuICBidWNrZXROYW1lOiBzdHJpbmc7XG4gIGtleVByZWZpeD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBMaXN0IGFsbCBvYmplY3Qga2V5cyBpbiBidWNrZXRcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxpc3RPYmplY3RLZXlzKHtcbiAgYnVja2V0TmFtZSxcbiAga2V5UHJlZml4LFxufTogTGlzdE9iamVjdEtleXNQcm9wcyk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgY29uc3Qgb2xkT2JqZWN0S2V5czogc3RyaW5nW10gPSBbXTtcbiAgbGV0IG5leHRUb2tlbjogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBkbyB7XG4gICAgY29uc3QgY21kOiBMaXN0T2JqZWN0c1YyQ29tbWFuZElucHV0ID0ge1xuICAgICAgQnVja2V0OiBidWNrZXROYW1lLFxuICAgICAgUHJlZml4OiBrZXlQcmVmaXgsXG4gICAgfTtcbiAgICBpZiAobmV4dFRva2VuKSB7XG4gICAgICBjbWQuQ29udGludWF0aW9uVG9rZW4gPSBuZXh0VG9rZW47XG4gICAgfVxuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHMzLnNlbmQobmV3IExpc3RPYmplY3RzVjJDb21tYW5kKGNtZCkpO1xuICAgIGNvbnN0IGNvbnRlbnRzID0gcmVzLkNvbnRlbnRzO1xuICAgIG5leHRUb2tlbiA9IHJlcy5OZXh0Q29udGludWF0aW9uVG9rZW47XG4gICAgaWYgKGNvbnRlbnRzPy5sZW5ndGgpIHtcbiAgICAgIGZvciAoY29uc3QgeyBLZXk6IGtleSB9IG9mIGNvbnRlbnRzKSB7XG4gICAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgICBvbGRPYmplY3RLZXlzLnB1c2goa2V5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSB3aGlsZSAobmV4dFRva2VuKTtcbiAgcmV0dXJuIG9sZE9iamVjdEtleXM7XG59XG4iXX0=
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.s3 = void 0;
|
|
4
|
-
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
5
|
-
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
6
|
-
exports.s3 = new client_s3_1.S3Client({});
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGFtYmRhcy9hc3NldHMtZGVwbG95bWVudC9zMy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2REFBNkQ7QUFDN0Qsa0RBQThDO0FBRWpDLFFBQUEsRUFBRSxHQUFHLElBQUksb0JBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXNcbmltcG9ydCB7IFMzQ2xpZW50IH0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1zM1wiO1xuXG5leHBvcnQgY29uc3QgczMgPSBuZXcgUzNDbGllbnQoe30pO1xuIl19
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CfnResponseStatus = void 0;
|
|
4
|
-
exports.cfnResponse = cfnResponse;
|
|
5
|
-
exports.debug = debug;
|
|
6
|
-
var CfnResponseStatus;
|
|
7
|
-
(function (CfnResponseStatus) {
|
|
8
|
-
CfnResponseStatus["Success"] = "SUCCESS";
|
|
9
|
-
CfnResponseStatus["Failed"] = "FAILED";
|
|
10
|
-
})(CfnResponseStatus || (exports.CfnResponseStatus = CfnResponseStatus = {}));
|
|
11
|
-
/**
|
|
12
|
-
* Inspired by: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-lambda-function-code-cfnresponsemodule.html
|
|
13
|
-
*/
|
|
14
|
-
function cfnResponse(props) {
|
|
15
|
-
const body = JSON.stringify({
|
|
16
|
-
Status: props.responseStatus,
|
|
17
|
-
Reason: "See the details in CloudWatch Log Stream: " +
|
|
18
|
-
props.context.logStreamName,
|
|
19
|
-
PhysicalResourceId: props.physicalResourceId || props.context.logStreamName,
|
|
20
|
-
StackId: props.event.StackId,
|
|
21
|
-
RequestId: props.event.RequestId,
|
|
22
|
-
LogicalResourceId: props.event.LogicalResourceId,
|
|
23
|
-
Data: props.responseData,
|
|
24
|
-
});
|
|
25
|
-
return fetch(props.event.ResponseURL, {
|
|
26
|
-
method: "PUT",
|
|
27
|
-
body,
|
|
28
|
-
headers: { "content-type": "", "content-length": body.length.toString() },
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
function debug(value) {
|
|
32
|
-
if (process.env.DEBUG)
|
|
33
|
-
console.log(JSON.stringify(value, null, 2));
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGFtYmRhcy9hc3NldHMtZGVwbG95bWVudC91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFrQkEsa0NBaUJDO0FBRUQsc0JBRUM7QUFyQ0QsSUFBWSxpQkFHWDtBQUhELFdBQVksaUJBQWlCO0lBQzNCLHdDQUFtQixDQUFBO0lBQ25CLHNDQUFpQixDQUFBO0FBQ25CLENBQUMsRUFIVyxpQkFBaUIsaUNBQWpCLGlCQUFpQixRQUc1QjtBQVVEOztHQUVHO0FBQ0gsU0FBZ0IsV0FBVyxDQUFDLEtBQXVCO0lBQ2pELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDMUIsTUFBTSxFQUFFLEtBQUssQ0FBQyxjQUFjO1FBQzVCLE1BQU0sRUFDSiw0Q0FBNEM7WUFDNUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhO1FBQzdCLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxrQkFBa0IsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWE7UUFDM0UsT0FBTyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTztRQUM1QixTQUFTLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTO1FBQ2hDLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsaUJBQWlCO1FBQ2hELElBQUksRUFBRSxLQUFLLENBQUMsWUFBWTtLQUN6QixDQUFDLENBQUM7SUFDSCxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRTtRQUNwQyxNQUFNLEVBQUUsS0FBSztRQUNiLElBQUk7UUFDSixPQUFPLEVBQUUsRUFBRSxjQUFjLEVBQUUsRUFBRSxFQUFFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUU7S0FDMUUsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELFNBQWdCLEtBQUssQ0FBQyxLQUFjO0lBQ2xDLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLO1FBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlSGFuZGxlciB9IGZyb20gXCJhd3MtbGFtYmRhXCI7XG5cbmV4cG9ydCBlbnVtIENmblJlc3BvbnNlU3RhdHVzIHtcbiAgU3VjY2VzcyA9IFwiU1VDQ0VTU1wiLFxuICBGYWlsZWQgPSBcIkZBSUxFRFwiLFxufVxuXG5pbnRlcmZhY2UgQ2ZuUmVzcG9uc2VQcm9wcyB7XG4gIGV2ZW50OiBQYXJhbWV0ZXJzPENsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VIYW5kbGVyPlswXTtcbiAgY29udGV4dDogUGFyYW1ldGVyczxDbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlSGFuZGxlcj5bMV07XG4gIHJlc3BvbnNlU3RhdHVzOiBDZm5SZXNwb25zZVN0YXR1cztcbiAgcmVzcG9uc2VEYXRhPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgcGh5c2ljYWxSZXNvdXJjZUlkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEluc3BpcmVkIGJ5OiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9jZm4tbGFtYmRhLWZ1bmN0aW9uLWNvZGUtY2ZucmVzcG9uc2Vtb2R1bGUuaHRtbFxuICovXG5leHBvcnQgZnVuY3Rpb24gY2ZuUmVzcG9uc2UocHJvcHM6IENmblJlc3BvbnNlUHJvcHMpIHtcbiAgY29uc3QgYm9keSA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICBTdGF0dXM6IHByb3BzLnJlc3BvbnNlU3RhdHVzLFxuICAgIFJlYXNvbjpcbiAgICAgIFwiU2VlIHRoZSBkZXRhaWxzIGluIENsb3VkV2F0Y2ggTG9nIFN0cmVhbTogXCIgK1xuICAgICAgcHJvcHMuY29udGV4dC5sb2dTdHJlYW1OYW1lLFxuICAgIFBoeXNpY2FsUmVzb3VyY2VJZDogcHJvcHMucGh5c2ljYWxSZXNvdXJjZUlkIHx8IHByb3BzLmNvbnRleHQubG9nU3RyZWFtTmFtZSxcbiAgICBTdGFja0lkOiBwcm9wcy5ldmVudC5TdGFja0lkLFxuICAgIFJlcXVlc3RJZDogcHJvcHMuZXZlbnQuUmVxdWVzdElkLFxuICAgIExvZ2ljYWxSZXNvdXJjZUlkOiBwcm9wcy5ldmVudC5Mb2dpY2FsUmVzb3VyY2VJZCxcbiAgICBEYXRhOiBwcm9wcy5yZXNwb25zZURhdGEsXG4gIH0pO1xuICByZXR1cm4gZmV0Y2gocHJvcHMuZXZlbnQuUmVzcG9uc2VVUkwsIHtcbiAgICBtZXRob2Q6IFwiUFVUXCIsXG4gICAgYm9keSxcbiAgICBoZWFkZXJzOiB7IFwiY29udGVudC10eXBlXCI6IFwiXCIsIFwiY29udGVudC1sZW5ndGhcIjogYm9keS5sZW5ndGgudG9TdHJpbmcoKSB9LFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlYnVnKHZhbHVlOiB1bmtub3duKSB7XG4gIGlmIChwcm9jZXNzLmVudi5ERUJVRykgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkodmFsdWUsIG51bGwsIDIpKTtcbn1cbiJdfQ==
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import * as lambda from 'aws-cdk-lib/aws-lambda';
|
|
2
|
-
import { Construct } from 'constructs';
|
|
3
|
-
/**
|
|
4
|
-
* Props for RevalidateFunction
|
|
5
|
-
*/
|
|
6
|
-
export interface RevalidateFunctionProps extends lambda.FunctionOptions {
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* An AWS Lambda function which executes src/lambdas/revalidate/revalidate.
|
|
10
|
-
*/
|
|
11
|
-
export declare class RevalidateFunction extends lambda.Function {
|
|
12
|
-
constructor(scope: Construct, id: string, props?: RevalidateFunctionProps);
|
|
13
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RevalidateFunction = void 0;
|
|
4
|
-
// ~~ Generated by projen. To modify, edit .projenrc.ts and run "pnpm dlx projen".
|
|
5
|
-
const path = require("path");
|
|
6
|
-
const lambda = require("aws-cdk-lib/aws-lambda");
|
|
7
|
-
/**
|
|
8
|
-
* An AWS Lambda function which executes src/lambdas/revalidate/revalidate.
|
|
9
|
-
*/
|
|
10
|
-
class RevalidateFunction extends lambda.Function {
|
|
11
|
-
constructor(scope, id, props) {
|
|
12
|
-
super(scope, id, {
|
|
13
|
-
description: 'src/lambdas/revalidate/revalidate.lambda.ts',
|
|
14
|
-
...props,
|
|
15
|
-
runtime: new lambda.Runtime('nodejs22.x', lambda.RuntimeFamily.NODEJS),
|
|
16
|
-
handler: 'index.handler',
|
|
17
|
-
code: lambda.Code.fromAsset(path.join(__dirname, '../../../assets/lambdas/revalidate/revalidate.lambda')),
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
exports.RevalidateFunction = RevalidateFunction;
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2YWxpZGF0ZS1mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYW1iZGFzL3JldmFsaWRhdGUvcmV2YWxpZGF0ZS1mdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrRkFBa0Y7QUFDbEYsNkJBQTZCO0FBQzdCLGlEQUFpRDtBQVNqRDs7R0FFRztBQUNILE1BQWEsa0JBQW1CLFNBQVEsTUFBTSxDQUFDLFFBQVE7SUFDckQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUErQjtRQUN2RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLFdBQVcsRUFBRSw2Q0FBNkM7WUFDMUQsR0FBRyxLQUFLO1lBQ1IsT0FBTyxFQUFFLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7WUFDdEUsT0FBTyxFQUFFLGVBQWU7WUFDeEIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLHNEQUFzRCxDQUFDLENBQUM7U0FDMUcsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBVkQsZ0RBVUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB+fiBHZW5lcmF0ZWQgYnkgcHJvamVuLiBUbyBtb2RpZnksIGVkaXQgLnByb2plbnJjLnRzIGFuZCBydW4gXCJwbnBtIGRseCBwcm9qZW5cIi5cbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuLyoqXG4gKiBQcm9wcyBmb3IgUmV2YWxpZGF0ZUZ1bmN0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmV2YWxpZGF0ZUZ1bmN0aW9uUHJvcHMgZXh0ZW5kcyBsYW1iZGEuRnVuY3Rpb25PcHRpb25zIHtcbn1cblxuLyoqXG4gKiBBbiBBV1MgTGFtYmRhIGZ1bmN0aW9uIHdoaWNoIGV4ZWN1dGVzIHNyYy9sYW1iZGFzL3JldmFsaWRhdGUvcmV2YWxpZGF0ZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFJldmFsaWRhdGVGdW5jdGlvbiBleHRlbmRzIGxhbWJkYS5GdW5jdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogUmV2YWxpZGF0ZUZ1bmN0aW9uUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnc3JjL2xhbWJkYXMvcmV2YWxpZGF0ZS9yZXZhbGlkYXRlLmxhbWJkYS50cycsXG4gICAgICAuLi5wcm9wcyxcbiAgICAgIHJ1bnRpbWU6IG5ldyBsYW1iZGEuUnVudGltZSgnbm9kZWpzMjIueCcsIGxhbWJkYS5SdW50aW1lRmFtaWx5Lk5PREVKUyksXG4gICAgICBoYW5kbGVyOiAnaW5kZXguaGFuZGxlcicsXG4gICAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQocGF0aC5qb2luKF9fZGlybmFtZSwgJy4uLy4uLy4uL2Fzc2V0cy9sYW1iZGFzL3JldmFsaWRhdGUvcmV2YWxpZGF0ZS5sYW1iZGEnKSksXG4gICAgfSk7XG4gIH1cbn0iXX0=
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.handler = void 0;
|
|
4
|
-
const handler = async (event, context) => {
|
|
5
|
-
console.log({ event });
|
|
6
|
-
context;
|
|
7
|
-
const batchItemFailures = [];
|
|
8
|
-
try {
|
|
9
|
-
for (const record of event.Records) {
|
|
10
|
-
const url = record.body;
|
|
11
|
-
const previewModeId = process.env.PREVIEW_MODE_ID;
|
|
12
|
-
if (!url)
|
|
13
|
-
throw new Error("Missing url");
|
|
14
|
-
if (!previewModeId)
|
|
15
|
-
throw new Error("Missing previewModeId");
|
|
16
|
-
// see: https://github.com/sst/open-next/blob/ab844db7a21a056155992ccf0bdf9b835362cd19/packages/open-next/src/adapters/revalidate.ts#L43
|
|
17
|
-
// Make a HEAD request to the page to revalidate it.
|
|
18
|
-
// - HEAD request is used b/c it's not necessary to make a GET request
|
|
19
|
-
// and have CloudFront cache the request. This is because the request
|
|
20
|
-
// does not have real life headers and the cache won't be used anyway.
|
|
21
|
-
// - "previewModeId" is used to ensure the page is revalidated in a
|
|
22
|
-
// blocking way in lambda
|
|
23
|
-
// https://github.com/vercel/next.js/blob/1088b3f682cbe411be2d1edc502f8a090e36dee4/packages/next/src/server/api-utils/node.ts#L353
|
|
24
|
-
try {
|
|
25
|
-
const res = await fetch(url, {
|
|
26
|
-
method: "HEAD",
|
|
27
|
-
headers: {
|
|
28
|
-
"x-prerender-revalidate": previewModeId,
|
|
29
|
-
"x-isr": "1",
|
|
30
|
-
},
|
|
31
|
-
});
|
|
32
|
-
const xNextjsCacheHeader = res.headers.get("x-nextjs-cache");
|
|
33
|
-
if (!res.ok || xNextjsCacheHeader !== "REVALIDATED") {
|
|
34
|
-
throw new Error(`Response code: ${res.status}, x-nextjs-cache: ${xNextjsCacheHeader}`);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
catch (err) {
|
|
38
|
-
batchItemFailures.push({
|
|
39
|
-
itemIdentifier: record.messageId,
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
catch (err) {
|
|
45
|
-
console.error(err);
|
|
46
|
-
throw err;
|
|
47
|
-
}
|
|
48
|
-
return {
|
|
49
|
-
batchItemFailures,
|
|
50
|
-
};
|
|
51
|
-
};
|
|
52
|
-
exports.handler = handler;
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2YWxpZGF0ZS5sYW1iZGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGFtYmRhcy9yZXZhbGlkYXRlL3JldmFsaWRhdGUubGFtYmRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdPLE1BQU0sT0FBTyxHQUFlLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDMUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDdkIsT0FBTyxDQUFDO0lBQ1IsTUFBTSxpQkFBaUIsR0FBMEIsRUFBRSxDQUFDO0lBQ3BELElBQUksQ0FBQztRQUNILEtBQUssTUFBTSxNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25DLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDeEIsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUM7WUFDbEQsSUFBSSxDQUFDLEdBQUc7Z0JBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN6QyxJQUFJLENBQUMsYUFBYTtnQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7WUFDN0Qsd0lBQXdJO1lBQ3hJLG9EQUFvRDtZQUNwRCxzRUFBc0U7WUFDdEUsdUVBQXVFO1lBQ3ZFLHdFQUF3RTtZQUN4RSxtRUFBbUU7WUFDbkUsMkJBQTJCO1lBQzNCLG9JQUFvSTtZQUNwSSxJQUFJLENBQUM7Z0JBQ0gsTUFBTSxHQUFHLEdBQUcsTUFBTSxLQUFLLENBQUMsR0FBRyxFQUFFO29CQUMzQixNQUFNLEVBQUUsTUFBTTtvQkFDZCxPQUFPLEVBQUU7d0JBQ1Asd0JBQXdCLEVBQUUsYUFBYTt3QkFDdkMsT0FBTyxFQUFFLEdBQUc7cUJBQ2I7aUJBQ0YsQ0FBQyxDQUFDO2dCQUNILE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztnQkFDN0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksa0JBQWtCLEtBQUssYUFBYSxFQUFFLENBQUM7b0JBQ3BELE1BQU0sSUFBSSxLQUFLLENBQ2Isa0JBQWtCLEdBQUcsQ0FBQyxNQUFNLHFCQUFxQixrQkFBa0IsRUFBRSxDQUN0RSxDQUFDO2dCQUNKLENBQUM7WUFDSCxDQUFDO1lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztnQkFDYixpQkFBaUIsQ0FBQyxJQUFJLENBQUM7b0JBQ3JCLGNBQWMsRUFBRSxNQUFNLENBQUMsU0FBUztpQkFDakMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkIsTUFBTSxHQUFHLENBQUM7SUFDWixDQUFDO0lBQ0QsT0FBTztRQUNMLGlCQUFpQjtLQUNsQixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBN0NXLFFBQUEsT0FBTyxXQTZDbEIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXG5pbXBvcnQgeyBTUVNCYXRjaEl0ZW1GYWlsdXJlLCBTUVNIYW5kbGVyIH0gZnJvbSBcImF3cy1sYW1iZGFcIjtcblxuZXhwb3J0IGNvbnN0IGhhbmRsZXI6IFNRU0hhbmRsZXIgPSBhc3luYyAoZXZlbnQsIGNvbnRleHQpID0+IHtcbiAgY29uc29sZS5sb2coeyBldmVudCB9KTtcbiAgY29udGV4dDtcbiAgY29uc3QgYmF0Y2hJdGVtRmFpbHVyZXM6IFNRU0JhdGNoSXRlbUZhaWx1cmVbXSA9IFtdO1xuICB0cnkge1xuICAgIGZvciAoY29uc3QgcmVjb3JkIG9mIGV2ZW50LlJlY29yZHMpIHtcbiAgICAgIGNvbnN0IHVybCA9IHJlY29yZC5ib2R5O1xuICAgICAgY29uc3QgcHJldmlld01vZGVJZCA9IHByb2Nlc3MuZW52LlBSRVZJRVdfTU9ERV9JRDtcbiAgICAgIGlmICghdXJsKSB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHVybFwiKTtcbiAgICAgIGlmICghcHJldmlld01vZGVJZCkgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyBwcmV2aWV3TW9kZUlkXCIpO1xuICAgICAgLy8gc2VlOiBodHRwczovL2dpdGh1Yi5jb20vc3N0L29wZW4tbmV4dC9ibG9iL2FiODQ0ZGI3YTIxYTA1NjE1NTk5MmNjZjBiZGY5YjgzNTM2MmNkMTkvcGFja2FnZXMvb3Blbi1uZXh0L3NyYy9hZGFwdGVycy9yZXZhbGlkYXRlLnRzI0w0M1xuICAgICAgLy8gTWFrZSBhIEhFQUQgcmVxdWVzdCB0byB0aGUgcGFnZSB0byByZXZhbGlkYXRlIGl0LlxuICAgICAgLy8gLSBIRUFEIHJlcXVlc3QgaXMgdXNlZCBiL2MgaXQncyBub3QgbmVjZXNzYXJ5IHRvIG1ha2UgYSBHRVQgcmVxdWVzdFxuICAgICAgLy8gICBhbmQgaGF2ZSBDbG91ZEZyb250IGNhY2hlIHRoZSByZXF1ZXN0LiBUaGlzIGlzIGJlY2F1c2UgdGhlIHJlcXVlc3RcbiAgICAgIC8vICAgZG9lcyBub3QgaGF2ZSByZWFsIGxpZmUgaGVhZGVycyBhbmQgdGhlIGNhY2hlIHdvbid0IGJlIHVzZWQgYW55d2F5LlxuICAgICAgLy8gLSBcInByZXZpZXdNb2RlSWRcIiBpcyB1c2VkIHRvIGVuc3VyZSB0aGUgcGFnZSBpcyByZXZhbGlkYXRlZCBpbiBhXG4gICAgICAvLyAgIGJsb2NraW5nIHdheSBpbiBsYW1iZGFcbiAgICAgIC8vICAgaHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC9uZXh0LmpzL2Jsb2IvMTA4OGIzZjY4MmNiZTQxMWJlMmQxZWRjNTAyZjhhMDkwZTM2ZGVlNC9wYWNrYWdlcy9uZXh0L3NyYy9zZXJ2ZXIvYXBpLXV0aWxzL25vZGUudHMjTDM1M1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgbWV0aG9kOiBcIkhFQURcIixcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICBcIngtcHJlcmVuZGVyLXJldmFsaWRhdGVcIjogcHJldmlld01vZGVJZCxcbiAgICAgICAgICAgIFwieC1pc3JcIjogXCIxXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHhOZXh0anNDYWNoZUhlYWRlciA9IHJlcy5oZWFkZXJzLmdldChcIngtbmV4dGpzLWNhY2hlXCIpO1xuICAgICAgICBpZiAoIXJlcy5vayB8fCB4TmV4dGpzQ2FjaGVIZWFkZXIgIT09IFwiUkVWQUxJREFURURcIikge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBSZXNwb25zZSBjb2RlOiAke3Jlcy5zdGF0dXN9LCB4LW5leHRqcy1jYWNoZTogJHt4TmV4dGpzQ2FjaGVIZWFkZXJ9YCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgYmF0Y2hJdGVtRmFpbHVyZXMucHVzaCh7XG4gICAgICAgICAgaXRlbUlkZW50aWZpZXI6IHJlY29yZC5tZXNzYWdlSWQsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgIHRocm93IGVycjtcbiAgfVxuICByZXR1cm4ge1xuICAgIGJhdGNoSXRlbUZhaWx1cmVzLFxuICB9O1xufTtcbiJdfQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const fs_1 = require("fs");
|
|
4
|
-
/**
|
|
5
|
-
* For `NextjsGlobalFunctions`, adds custom [Cache Handler](https://nextjs.org/docs/app/api-reference/next-config-js/incrementalCacheHandlerPath)
|
|
6
|
-
* so that time-based revalidation works. In serverless environment, functions
|
|
7
|
-
* spin down after request is complete but Next.js depends upon compute to still
|
|
8
|
-
* be running for time-based revalidation to work properly so we need to perform
|
|
9
|
-
* work async and use SQS Queue to do so.
|
|
10
|
-
*/
|
|
11
|
-
function addCacheHandler(requiredServerFilesPath) {
|
|
12
|
-
if (!(0, fs_1.existsSync)(requiredServerFilesPath)) {
|
|
13
|
-
throw new Error(`Could not find required server files path: ${requiredServerFilesPath}`);
|
|
14
|
-
}
|
|
15
|
-
const requiredServerFiles = JSON.parse((0, fs_1.readFileSync)(requiredServerFilesPath, {
|
|
16
|
-
encoding: "utf-8",
|
|
17
|
-
}));
|
|
18
|
-
requiredServerFiles.config.cacheHandler = "../cache-handler.cjs";
|
|
19
|
-
(0, fs_1.writeFileSync)(requiredServerFilesPath, JSON.stringify(requiredServerFiles));
|
|
20
|
-
}
|
|
21
|
-
const [requiredServerFilesPath] = process.argv.slice(2);
|
|
22
|
-
addCacheHandler(requiredServerFilesPath);
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWNhY2hlLWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmV4dGpzLWJ1aWxkL2FkZC1jYWNoZS1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMkJBQTZEO0FBRTdEOzs7Ozs7R0FNRztBQUNILFNBQVMsZUFBZSxDQUFDLHVCQUErQjtJQUN0RCxJQUFJLENBQUMsSUFBQSxlQUFVLEVBQUMsdUJBQXVCLENBQUMsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sSUFBSSxLQUFLLENBQ2IsOENBQThDLHVCQUF1QixFQUFFLENBQ3hFLENBQUM7SUFDSixDQUFDO0lBQ0QsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUNwQyxJQUFBLGlCQUFZLEVBQUMsdUJBQXVCLEVBQUU7UUFDcEMsUUFBUSxFQUFFLE9BQU87S0FDbEIsQ0FBQyxDQUNILENBQUM7SUFDRixtQkFBbUIsQ0FBQyxNQUFNLENBQUMsWUFBWSxHQUFHLHNCQUFzQixDQUFDO0lBQ2pFLElBQUEsa0JBQWEsRUFBQyx1QkFBdUIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztBQUM5RSxDQUFDO0FBRUQsTUFBTSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDeEQsZUFBZSxDQUFDLHVCQUF1QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGlzdHNTeW5jLCByZWFkRmlsZVN5bmMsIHdyaXRlRmlsZVN5bmMgfSBmcm9tIFwiZnNcIjtcblxuLyoqXG4gKiBGb3IgYE5leHRqc0dsb2JhbEZ1bmN0aW9uc2AsIGFkZHMgY3VzdG9tIFtDYWNoZSBIYW5kbGVyXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9uZXh0LWNvbmZpZy1qcy9pbmNyZW1lbnRhbENhY2hlSGFuZGxlclBhdGgpXG4gKiBzbyB0aGF0IHRpbWUtYmFzZWQgcmV2YWxpZGF0aW9uIHdvcmtzLiBJbiBzZXJ2ZXJsZXNzIGVudmlyb25tZW50LCBmdW5jdGlvbnNcbiAqIHNwaW4gZG93biBhZnRlciByZXF1ZXN0IGlzIGNvbXBsZXRlIGJ1dCBOZXh0LmpzIGRlcGVuZHMgdXBvbiBjb21wdXRlIHRvIHN0aWxsXG4gKiBiZSBydW5uaW5nIGZvciB0aW1lLWJhc2VkIHJldmFsaWRhdGlvbiB0byB3b3JrIHByb3Blcmx5IHNvIHdlIG5lZWQgdG8gcGVyZm9ybVxuICogd29yayBhc3luYyBhbmQgdXNlIFNRUyBRdWV1ZSB0byBkbyBzby5cbiAqL1xuZnVuY3Rpb24gYWRkQ2FjaGVIYW5kbGVyKHJlcXVpcmVkU2VydmVyRmlsZXNQYXRoOiBzdHJpbmcpIHtcbiAgaWYgKCFleGlzdHNTeW5jKHJlcXVpcmVkU2VydmVyRmlsZXNQYXRoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBDb3VsZCBub3QgZmluZCByZXF1aXJlZCBzZXJ2ZXIgZmlsZXMgcGF0aDogJHtyZXF1aXJlZFNlcnZlckZpbGVzUGF0aH1gLFxuICAgICk7XG4gIH1cbiAgY29uc3QgcmVxdWlyZWRTZXJ2ZXJGaWxlcyA9IEpTT04ucGFyc2UoXG4gICAgcmVhZEZpbGVTeW5jKHJlcXVpcmVkU2VydmVyRmlsZXNQYXRoLCB7XG4gICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgIH0pLFxuICApO1xuICByZXF1aXJlZFNlcnZlckZpbGVzLmNvbmZpZy5jYWNoZUhhbmRsZXIgPSBcIi4uL2NhY2hlLWhhbmRsZXIuY2pzXCI7XG4gIHdyaXRlRmlsZVN5bmMocmVxdWlyZWRTZXJ2ZXJGaWxlc1BhdGgsIEpTT04uc3RyaW5naWZ5KHJlcXVpcmVkU2VydmVyRmlsZXMpKTtcbn1cblxuY29uc3QgW3JlcXVpcmVkU2VydmVyRmlsZXNQYXRoXSA9IHByb2Nlc3MuYXJndi5zbGljZSgyKTtcbmFkZENhY2hlSGFuZGxlcihyZXF1aXJlZFNlcnZlckZpbGVzUGF0aCk7XG4iXX0=
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
// src/nextjs-build/add-cache-handler.ts
|
|
2
|
-
import { existsSync, readFileSync, writeFileSync } from "fs";
|
|
3
|
-
function addCacheHandler(requiredServerFilesPath2) {
|
|
4
|
-
if (!existsSync(requiredServerFilesPath2)) {
|
|
5
|
-
throw new Error(
|
|
6
|
-
`Could not find required server files path: ${requiredServerFilesPath2}`
|
|
7
|
-
);
|
|
8
|
-
}
|
|
9
|
-
const requiredServerFiles = JSON.parse(
|
|
10
|
-
readFileSync(requiredServerFilesPath2, {
|
|
11
|
-
encoding: "utf-8"
|
|
12
|
-
})
|
|
13
|
-
);
|
|
14
|
-
requiredServerFiles.config.cacheHandler = "../cache-handler.cjs";
|
|
15
|
-
writeFileSync(requiredServerFilesPath2, JSON.stringify(requiredServerFiles));
|
|
16
|
-
}
|
|
17
|
-
var [requiredServerFilesPath] = process.argv.slice(2);
|
|
18
|
-
addCacheHandler(requiredServerFilesPath);
|