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
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OptionalPostDeployCustomResourceProperties
|
|
3
|
+
*/
|
|
4
|
+
export interface OptionalPostDeployCustomResourceProperties {
|
|
5
|
+
/**
|
|
6
|
+
* @stability stable
|
|
7
|
+
*/
|
|
8
|
+
readonly staticAssetsBucketName?: string;
|
|
9
|
+
/**
|
|
10
|
+
* @default {
|
|
11
|
+
distributionId: this.props.distribution?.distributionId,
|
|
12
|
+
invalidationBatch: {
|
|
13
|
+
callerReference: new Date().toISOString(),
|
|
14
|
+
paths: {
|
|
15
|
+
quantity: 1,
|
|
16
|
+
items: ["/*"], // invalidate all paths
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
}
|
|
20
|
+
* @stability stable
|
|
21
|
+
*/
|
|
22
|
+
readonly createInvalidationCommandInput?: Record<string, any>;
|
|
23
|
+
/**
|
|
24
|
+
* Time to live in milliseconds.
|
|
25
|
+
* Must be string because of CloudFormation Custom Resource limitation
|
|
26
|
+
* @default (1000 * 60 * 60 * 24 * 30).toString()
|
|
27
|
+
* @stability stable
|
|
28
|
+
*/
|
|
29
|
+
readonly msTtl?: string;
|
|
30
|
+
/**
|
|
31
|
+
* @stability stable
|
|
32
|
+
*/
|
|
33
|
+
readonly buildImageDigest?: string;
|
|
34
|
+
/**
|
|
35
|
+
* Build ID of current deployment.
|
|
36
|
+
* Used to prune FileSystem of directories
|
|
37
|
+
* with old build ids and prune S3 based on metadat and `msTtl`
|
|
38
|
+
* @stability stable
|
|
39
|
+
*/
|
|
40
|
+
readonly buildId?: string;
|
|
41
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ~~ Generated by projen. To modify, edit .projenrc.ts and run "pnpm dlx projen".
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3B0aW9uYWxQb3N0RGVwbG95Q3VzdG9tUmVzb3VyY2VQcm9wZXJ0aWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dlbmVyYXRlZC1zdHJ1Y3RzL09wdGlvbmFsUG9zdERlcGxveUN1c3RvbVJlc291cmNlUHJvcGVydGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsa0ZBQWtGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gfn4gR2VuZXJhdGVkIGJ5IHByb2plbi4gVG8gbW9kaWZ5LCBlZGl0IC5wcm9qZW5yYy50cyBhbmQgcnVuIFwicG5wbSBkbHggcHJvamVuXCIuXG5cbi8qKlxuICogT3B0aW9uYWxQb3N0RGVwbG95Q3VzdG9tUmVzb3VyY2VQcm9wZXJ0aWVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3B0aW9uYWxQb3N0RGVwbG95Q3VzdG9tUmVzb3VyY2VQcm9wZXJ0aWVzIHtcbiAgLyoqXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBzdGF0aWNBc3NldHNCdWNrZXROYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogQGRlZmF1bHQge1xuICAgZGlzdHJpYnV0aW9uSWQ6IHRoaXMucHJvcHMuZGlzdHJpYnV0aW9uPy5kaXN0cmlidXRpb25JZCxcbiAgIGludmFsaWRhdGlvbkJhdGNoOiB7XG4gICAgIGNhbGxlclJlZmVyZW5jZTogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICBwYXRoczoge1xuICAgICAgIHF1YW50aXR5OiAxLFxuICAgICAgIGl0ZW1zOiBbXCIvKlwiXSwgLy8gaW52YWxpZGF0ZSBhbGwgcGF0aHNcbiAgICAgfSxcbiAgIH0sXG4gfVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlSW52YWxpZGF0aW9uQ29tbWFuZElucHV0PzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgLyoqXG4gICAqIFRpbWUgdG8gbGl2ZSBpbiBtaWxsaXNlY29uZHMuXG4gICAqIE11c3QgYmUgc3RyaW5nIGJlY2F1c2Ugb2YgQ2xvdWRGb3JtYXRpb24gQ3VzdG9tIFJlc291cmNlIGxpbWl0YXRpb25cbiAgICogQGRlZmF1bHQgKDEwMDAgKiA2MCAqIDYwICogMjQgKiAzMCkudG9TdHJpbmcoKVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgbXNUdGw/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRJbWFnZURpZ2VzdD86IHN0cmluZztcbiAgLyoqXG4gICAqIEJ1aWxkIElEIG9mIGN1cnJlbnQgZGVwbG95bWVudC5cbiAgICogVXNlZCB0byBwcnVuZSBGaWxlU3lzdGVtIG9mIGRpcmVjdG9yaWVzXG4gICAqIHdpdGggb2xkIGJ1aWxkIGlkcyBhbmQgcHJ1bmUgUzMgYmFzZWQgb24gbWV0YWRhdCBhbmQgYG1zVHRsYFxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRJZD86IHN0cmluZztcbn1cbiJdfQ==
|
package/lib/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { NextjsType } from "./
|
|
2
|
-
export {
|
|
1
|
+
export { NextjsType } from "./constants";
|
|
2
|
+
export { StaticAssetsCustomResourceProperties, NextjsAssetsDeployment, NextjsAssetDeploymentOverrides, NextjsAssetsDeploymentProps, } from "./nextjs-assets-deployment";
|
|
3
3
|
export { NextjsBuild, NextjsBuildProps, NextjsBuildOverrides, BuilderImageProps, PublicDirEntry, } from "./nextjs-build/nextjs-build";
|
|
4
4
|
export { NextjsComputeBaseProps } from "./nextjs-compute/nextjs-compute-base-props";
|
|
5
5
|
export { NextjsContainers, NextjsContainersOverrides, NextjsContainersProps, } from "./nextjs-compute/nextjs-containers";
|
|
@@ -11,8 +11,7 @@ export { NextjsBaseProps } from "./root-constructs/nextjs-base-props";
|
|
|
11
11
|
export { NextjsGlobalContainers, NextjsGlobalContainersConstructOverrides, NextjsGlobalContainersOverrides, NextjsGlobalContainersProps, } from "./root-constructs/nextjs-global-containers";
|
|
12
12
|
export { NextjsGlobalFunctions, NextjsGlobalFunctionsConstructOverrides, NextjsGlobalFunctionsOverrides, NextjsGlobalFunctionsProps, } from "./root-constructs/nextjs-global-functions";
|
|
13
13
|
export { NextjsRegionalContainers, NextjsRegionalContainersConstructOverrides, NextjsRegionalContainersOverrides, NextjsRegionalContainersProps, } from "./root-constructs/nextjs-regional-containers";
|
|
14
|
-
export {
|
|
15
|
-
export { NextjsRevalidation, NextjsRevalidationProps, NextjsRevalidationOverrides, } from "./nextjs-revalidation";
|
|
14
|
+
export { NextjsPostDeploy, NextjsPostDeployOverrides, NextjsPostDeployProps, PostDeployCustomResourceProperties, } from "./nextjs-post-deploy";
|
|
16
15
|
export { NextjsStaticAssets, NextjsStaticAssetsOverrides, NextjsStaticAssetsProps, } from "./nextjs-static-assets";
|
|
17
16
|
export { NextjsVpc, NextjsVpcOverrides, NextjsVpcProps } from "./nextjs-vpc";
|
|
18
17
|
export { OptionalNextjsAssetsDeploymentProps } from "./generated-structs/OptionalNextjsAssetsDeploymentProps";
|
|
@@ -20,7 +19,6 @@ export { OptionalNextjsBuildProps } from "./generated-structs/OptionalNextjsBuil
|
|
|
20
19
|
export { OptionalNextjsContainersProps } from "./generated-structs/OptionalNextjsContainersProps";
|
|
21
20
|
export { OptionalNextjsDistributionProps } from "./generated-structs/OptionalNextjsDistributionProps";
|
|
22
21
|
export { OptionalNextjsFileSystemProps } from "./generated-structs/OptionalNextjsFileSystemProps";
|
|
23
|
-
export { OptionalNextjsInvalidationProps } from "./generated-structs/OptionalNextjsInvalidationProps";
|
|
24
22
|
export { OptionalNextjsVpcProps } from "./generated-structs/OptionalNextjsVpcProps";
|
|
25
23
|
export { OptionalApplicationLoadBalancedTaskImageOptions } from "./generated-structs/OptionalApplicationLoadBalancedTaskImageOptions";
|
|
26
24
|
export { OptionalCloudFrontFunctionProps } from "./generated-structs/OptionalCloudFrontFunctionProps";
|
|
@@ -33,3 +31,6 @@ export { OptionalFunctionProps } from "./generated-structs/OptionalFunctionProps
|
|
|
33
31
|
export { OptionalFunctionUrlProps } from "./generated-structs/OptionalFunctionUrlProps";
|
|
34
32
|
export { OptionalS3OriginBucketWithOACProps } from "./generated-structs/OptionalS3OriginBucketWithOACProps";
|
|
35
33
|
export { OptionalVpcProps } from "./generated-structs/OptionalVpcProps";
|
|
34
|
+
export { OptionalCustomResourceProps } from "./generated-structs/OptionalCustomResourceProps";
|
|
35
|
+
export { OptionalPostDeployCustomResourceProperties } from "./generated-structs/OptionalPostDeployCustomResourceProperties";
|
|
36
|
+
export { OptionalNextjsPostDeployProps } from "./generated-structs/OptionalNextjsPostDeployProps";
|
package/lib/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.NextjsVpc = exports.NextjsStaticAssets = exports.
|
|
4
|
-
var
|
|
5
|
-
Object.defineProperty(exports, "NextjsType", { enumerable: true, get: function () { return
|
|
3
|
+
exports.NextjsVpc = exports.NextjsStaticAssets = exports.NextjsPostDeploy = exports.NextjsRegionalContainers = exports.NextjsGlobalFunctions = exports.NextjsGlobalContainers = exports.NextjsFileSystem = exports.NextjsFunctions = exports.NextjsDistribution = exports.NextjsContainers = exports.NextjsBuild = exports.NextjsAssetsDeployment = exports.NextjsType = void 0;
|
|
4
|
+
var constants_1 = require("./constants");
|
|
5
|
+
Object.defineProperty(exports, "NextjsType", { enumerable: true, get: function () { return constants_1.NextjsType; } });
|
|
6
6
|
var nextjs_assets_deployment_1 = require("./nextjs-assets-deployment");
|
|
7
7
|
Object.defineProperty(exports, "NextjsAssetsDeployment", { enumerable: true, get: function () { return nextjs_assets_deployment_1.NextjsAssetsDeployment; } });
|
|
8
8
|
var nextjs_build_1 = require("./nextjs-build/nextjs-build");
|
|
@@ -21,12 +21,10 @@ var nextjs_global_functions_1 = require("./root-constructs/nextjs-global-functio
|
|
|
21
21
|
Object.defineProperty(exports, "NextjsGlobalFunctions", { enumerable: true, get: function () { return nextjs_global_functions_1.NextjsGlobalFunctions; } });
|
|
22
22
|
var nextjs_regional_containers_1 = require("./root-constructs/nextjs-regional-containers");
|
|
23
23
|
Object.defineProperty(exports, "NextjsRegionalContainers", { enumerable: true, get: function () { return nextjs_regional_containers_1.NextjsRegionalContainers; } });
|
|
24
|
-
var
|
|
25
|
-
Object.defineProperty(exports, "
|
|
26
|
-
var nextjs_revalidation_1 = require("./nextjs-revalidation");
|
|
27
|
-
Object.defineProperty(exports, "NextjsRevalidation", { enumerable: true, get: function () { return nextjs_revalidation_1.NextjsRevalidation; } });
|
|
24
|
+
var nextjs_post_deploy_1 = require("./nextjs-post-deploy");
|
|
25
|
+
Object.defineProperty(exports, "NextjsPostDeploy", { enumerable: true, get: function () { return nextjs_post_deploy_1.NextjsPostDeploy; } });
|
|
28
26
|
var nextjs_static_assets_1 = require("./nextjs-static-assets");
|
|
29
27
|
Object.defineProperty(exports, "NextjsStaticAssets", { enumerable: true, get: function () { return nextjs_static_assets_1.NextjsStaticAssets; } });
|
|
30
28
|
var nextjs_vpc_1 = require("./nextjs-vpc");
|
|
31
29
|
Object.defineProperty(exports, "NextjsVpc", { enumerable: true, get: function () { return nextjs_vpc_1.NextjsVpc; } });
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQXlDO0FBQWhDLHVHQUFBLFVBQVUsT0FBQTtBQUNuQix1RUFLb0M7QUFIbEMsa0lBQUEsc0JBQXNCLE9BQUE7QUFJeEIsNERBTXFDO0FBTG5DLDJHQUFBLFdBQVcsT0FBQTtBQU9iLHdFQUk0QztBQUgxQyxxSEFBQSxnQkFBZ0IsT0FBQTtBQUlsQiw2REFJK0I7QUFIN0IseUhBQUEsa0JBQWtCLE9BQUE7QUFJcEIsc0VBSTJDO0FBSHpDLG1IQUFBLGVBQWUsT0FBQTtBQUlqQiwyREFLOEI7QUFKNUIsc0hBQUEsZ0JBQWdCLE9BQUE7QUFVbEIsdUZBS29EO0FBSmxELGtJQUFBLHNCQUFzQixPQUFBO0FBS3hCLHFGQUttRDtBQUpqRCxnSUFBQSxxQkFBcUIsT0FBQTtBQUt2QiwyRkFLc0Q7QUFKcEQsc0lBQUEsd0JBQXdCLE9BQUE7QUFLMUIsMkRBSzhCO0FBSjVCLHNIQUFBLGdCQUFnQixPQUFBO0FBS2xCLCtEQUlnQztBQUg5QiwwSEFBQSxrQkFBa0IsT0FBQTtBQUlwQiwyQ0FBNkU7QUFBcEUsdUdBQUEsU0FBUyxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgTmV4dGpzVHlwZSB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuZXhwb3J0IHtcbiAgU3RhdGljQXNzZXRzQ3VzdG9tUmVzb3VyY2VQcm9wZXJ0aWVzLFxuICBOZXh0anNBc3NldHNEZXBsb3ltZW50LFxuICBOZXh0anNBc3NldERlcGxveW1lbnRPdmVycmlkZXMsXG4gIE5leHRqc0Fzc2V0c0RlcGxveW1lbnRQcm9wcyxcbn0gZnJvbSBcIi4vbmV4dGpzLWFzc2V0cy1kZXBsb3ltZW50XCI7XG5leHBvcnQge1xuICBOZXh0anNCdWlsZCxcbiAgTmV4dGpzQnVpbGRQcm9wcyxcbiAgTmV4dGpzQnVpbGRPdmVycmlkZXMsXG4gIEJ1aWxkZXJJbWFnZVByb3BzLFxuICBQdWJsaWNEaXJFbnRyeSxcbn0gZnJvbSBcIi4vbmV4dGpzLWJ1aWxkL25leHRqcy1idWlsZFwiO1xuZXhwb3J0IHsgTmV4dGpzQ29tcHV0ZUJhc2VQcm9wcyB9IGZyb20gXCIuL25leHRqcy1jb21wdXRlL25leHRqcy1jb21wdXRlLWJhc2UtcHJvcHNcIjtcbmV4cG9ydCB7XG4gIE5leHRqc0NvbnRhaW5lcnMsXG4gIE5leHRqc0NvbnRhaW5lcnNPdmVycmlkZXMsXG4gIE5leHRqc0NvbnRhaW5lcnNQcm9wcyxcbn0gZnJvbSBcIi4vbmV4dGpzLWNvbXB1dGUvbmV4dGpzLWNvbnRhaW5lcnNcIjtcbmV4cG9ydCB7XG4gIE5leHRqc0Rpc3RyaWJ1dGlvbixcbiAgTmV4dGpzRGlzdHJpYnV0aW9uT3ZlcnJpZGVzLFxuICBOZXh0anNEaXN0cmlidXRpb25Qcm9wcyxcbn0gZnJvbSBcIi4vbmV4dGpzLWRpc3RyaWJ1dGlvblwiO1xuZXhwb3J0IHtcbiAgTmV4dGpzRnVuY3Rpb25zLFxuICBOZXh0anNGdW5jdGlvbnNPdmVycmlkZXMsXG4gIE5leHRqc0Z1bmN0aW9uc1Byb3BzLFxufSBmcm9tIFwiLi9uZXh0anMtY29tcHV0ZS9uZXh0anMtZnVuY3Rpb25zXCI7XG5leHBvcnQge1xuICBOZXh0anNGaWxlU3lzdGVtLFxuICBOZXh0anNGaWxlU3lzdGVtT3ZlcnJpZGVzLFxuICBOZXh0anNGaWxlU3lzdGVtUHJvcHMsXG4gIEFsbG93Q29tcHV0ZVByb3BzLFxufSBmcm9tIFwiLi9uZXh0anMtZmlsZS1zeXN0ZW1cIjtcbmV4cG9ydCB7XG4gIEJhc2VOZXh0anNDb25zdHJ1Y3RPdmVycmlkZXMsXG4gIEJhc2VOZXh0anNPdmVycmlkZXMsXG59IGZyb20gXCIuL3Jvb3QtY29uc3RydWN0cy9uZXh0anMtYmFzZS1vdmVycmlkZXNcIjtcbmV4cG9ydCB7IE5leHRqc0Jhc2VQcm9wcyB9IGZyb20gXCIuL3Jvb3QtY29uc3RydWN0cy9uZXh0anMtYmFzZS1wcm9wc1wiO1xuZXhwb3J0IHtcbiAgTmV4dGpzR2xvYmFsQ29udGFpbmVycyxcbiAgTmV4dGpzR2xvYmFsQ29udGFpbmVyc0NvbnN0cnVjdE92ZXJyaWRlcyxcbiAgTmV4dGpzR2xvYmFsQ29udGFpbmVyc092ZXJyaWRlcyxcbiAgTmV4dGpzR2xvYmFsQ29udGFpbmVyc1Byb3BzLFxufSBmcm9tIFwiLi9yb290LWNvbnN0cnVjdHMvbmV4dGpzLWdsb2JhbC1jb250YWluZXJzXCI7XG5leHBvcnQge1xuICBOZXh0anNHbG9iYWxGdW5jdGlvbnMsXG4gIE5leHRqc0dsb2JhbEZ1bmN0aW9uc0NvbnN0cnVjdE92ZXJyaWRlcyxcbiAgTmV4dGpzR2xvYmFsRnVuY3Rpb25zT3ZlcnJpZGVzLFxuICBOZXh0anNHbG9iYWxGdW5jdGlvbnNQcm9wcyxcbn0gZnJvbSBcIi4vcm9vdC1jb25zdHJ1Y3RzL25leHRqcy1nbG9iYWwtZnVuY3Rpb25zXCI7XG5leHBvcnQge1xuICBOZXh0anNSZWdpb25hbENvbnRhaW5lcnMsXG4gIE5leHRqc1JlZ2lvbmFsQ29udGFpbmVyc0NvbnN0cnVjdE92ZXJyaWRlcyxcbiAgTmV4dGpzUmVnaW9uYWxDb250YWluZXJzT3ZlcnJpZGVzLFxuICBOZXh0anNSZWdpb25hbENvbnRhaW5lcnNQcm9wcyxcbn0gZnJvbSBcIi4vcm9vdC1jb25zdHJ1Y3RzL25leHRqcy1yZWdpb25hbC1jb250YWluZXJzXCI7XG5leHBvcnQge1xuICBOZXh0anNQb3N0RGVwbG95LFxuICBOZXh0anNQb3N0RGVwbG95T3ZlcnJpZGVzLFxuICBOZXh0anNQb3N0RGVwbG95UHJvcHMsXG4gIFBvc3REZXBsb3lDdXN0b21SZXNvdXJjZVByb3BlcnRpZXMsXG59IGZyb20gXCIuL25leHRqcy1wb3N0LWRlcGxveVwiO1xuZXhwb3J0IHtcbiAgTmV4dGpzU3RhdGljQXNzZXRzLFxuICBOZXh0anNTdGF0aWNBc3NldHNPdmVycmlkZXMsXG4gIE5leHRqc1N0YXRpY0Fzc2V0c1Byb3BzLFxufSBmcm9tIFwiLi9uZXh0anMtc3RhdGljLWFzc2V0c1wiO1xuZXhwb3J0IHsgTmV4dGpzVnBjLCBOZXh0anNWcGNPdmVycmlkZXMsIE5leHRqc1ZwY1Byb3BzIH0gZnJvbSBcIi4vbmV4dGpzLXZwY1wiO1xuZXhwb3J0IHsgT3B0aW9uYWxOZXh0anNBc3NldHNEZXBsb3ltZW50UHJvcHMgfSBmcm9tIFwiLi9nZW5lcmF0ZWQtc3RydWN0cy9PcHRpb25hbE5leHRqc0Fzc2V0c0RlcGxveW1lbnRQcm9wc1wiO1xuZXhwb3J0IHsgT3B0aW9uYWxOZXh0anNCdWlsZFByb3BzIH0gZnJvbSBcIi4vZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxOZXh0anNCdWlsZFByb3BzXCI7XG5leHBvcnQgeyBPcHRpb25hbE5leHRqc0NvbnRhaW5lcnNQcm9wcyB9IGZyb20gXCIuL2dlbmVyYXRlZC1zdHJ1Y3RzL09wdGlvbmFsTmV4dGpzQ29udGFpbmVyc1Byb3BzXCI7XG5leHBvcnQgeyBPcHRpb25hbE5leHRqc0Rpc3RyaWJ1dGlvblByb3BzIH0gZnJvbSBcIi4vZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxOZXh0anNEaXN0cmlidXRpb25Qcm9wc1wiO1xuZXhwb3J0IHsgT3B0aW9uYWxOZXh0anNGaWxlU3lzdGVtUHJvcHMgfSBmcm9tIFwiLi9nZW5lcmF0ZWQtc3RydWN0cy9PcHRpb25hbE5leHRqc0ZpbGVTeXN0ZW1Qcm9wc1wiO1xuZXhwb3J0IHsgT3B0aW9uYWxOZXh0anNWcGNQcm9wcyB9IGZyb20gXCIuL2dlbmVyYXRlZC1zdHJ1Y3RzL09wdGlvbmFsTmV4dGpzVnBjUHJvcHNcIjtcbmV4cG9ydCB7IE9wdGlvbmFsQXBwbGljYXRpb25Mb2FkQmFsYW5jZWRUYXNrSW1hZ2VPcHRpb25zIH0gZnJvbSBcIi4vZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZFRhc2tJbWFnZU9wdGlvbnNcIjtcbmV4cG9ydCB7IE9wdGlvbmFsQ2xvdWRGcm9udEZ1bmN0aW9uUHJvcHMgfSBmcm9tIFwiLi9nZW5lcmF0ZWQtc3RydWN0cy9PcHRpb25hbENsb3VkRnJvbnRGdW5jdGlvblByb3BzXCI7XG5leHBvcnQgeyBPcHRpb25hbENsdXN0ZXJQcm9wcyB9IGZyb20gXCIuL2dlbmVyYXRlZC1zdHJ1Y3RzL09wdGlvbmFsQ2x1c3RlclByb3BzXCI7XG5leHBvcnQgeyBPcHRpb25hbERpc3RyaWJ1dGlvblByb3BzIH0gZnJvbSBcIi4vZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxEaXN0cmlidXRpb25Qcm9wc1wiO1xuZXhwb3J0IHsgT3B0aW9uYWxEb2NrZXJJbWFnZUFzc2V0UHJvcHMgfSBmcm9tIFwiLi9nZW5lcmF0ZWQtc3RydWN0cy9PcHRpb25hbERvY2tlckltYWdlQXNzZXRQcm9wc1wiO1xuZXhwb3J0IHsgT3B0aW9uYWxEb2NrZXJJbWFnZUZ1bmN0aW9uUHJvcHMgfSBmcm9tIFwiLi9nZW5lcmF0ZWQtc3RydWN0cy9PcHRpb25hbERvY2tlckltYWdlRnVuY3Rpb25Qcm9wc1wiO1xuZXhwb3J0IHsgT3B0aW9uYWxFZGdlRnVuY3Rpb25Qcm9wcyB9IGZyb20gXCIuL2dlbmVyYXRlZC1zdHJ1Y3RzL09wdGlvbmFsRWRnZUZ1bmN0aW9uUHJvcHNcIjtcbmV4cG9ydCB7IE9wdGlvbmFsRnVuY3Rpb25Qcm9wcyB9IGZyb20gXCIuL2dlbmVyYXRlZC1zdHJ1Y3RzL09wdGlvbmFsRnVuY3Rpb25Qcm9wc1wiO1xuZXhwb3J0IHsgT3B0aW9uYWxGdW5jdGlvblVybFByb3BzIH0gZnJvbSBcIi4vZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxGdW5jdGlvblVybFByb3BzXCI7XG5leHBvcnQgeyBPcHRpb25hbFMzT3JpZ2luQnVja2V0V2l0aE9BQ1Byb3BzIH0gZnJvbSBcIi4vZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxTM09yaWdpbkJ1Y2tldFdpdGhPQUNQcm9wc1wiO1xuZXhwb3J0IHsgT3B0aW9uYWxWcGNQcm9wcyB9IGZyb20gXCIuL2dlbmVyYXRlZC1zdHJ1Y3RzL09wdGlvbmFsVnBjUHJvcHNcIjtcbmV4cG9ydCB7IE9wdGlvbmFsQ3VzdG9tUmVzb3VyY2VQcm9wcyB9IGZyb20gXCIuL2dlbmVyYXRlZC1zdHJ1Y3RzL09wdGlvbmFsQ3VzdG9tUmVzb3VyY2VQcm9wc1wiO1xuZXhwb3J0IHsgT3B0aW9uYWxQb3N0RGVwbG95Q3VzdG9tUmVzb3VyY2VQcm9wZXJ0aWVzIH0gZnJvbSBcIi4vZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxQb3N0RGVwbG95Q3VzdG9tUmVzb3VyY2VQcm9wZXJ0aWVzXCI7XG5leHBvcnQgeyBPcHRpb25hbE5leHRqc1Bvc3REZXBsb3lQcm9wcyB9IGZyb20gXCIuL2dlbmVyYXRlZC1zdHJ1Y3RzL09wdGlvbmFsTmV4dGpzUG9zdERlcGxveVByb3BzXCI7XG4iXX0=
|
|
@@ -4,33 +4,23 @@ exports.handler = void 0;
|
|
|
4
4
|
const node_fs_1 = require("node:fs");
|
|
5
5
|
const fs_to_fs_1 = require("./fs-to-fs");
|
|
6
6
|
const fs_to_s3_1 = require("./fs-to-s3");
|
|
7
|
-
const
|
|
8
|
-
const utils_1 = require("./utils");
|
|
7
|
+
const utils_1 = require("../utils");
|
|
9
8
|
const handler = async (event, context) => {
|
|
10
9
|
(0, utils_1.debug)({ event });
|
|
11
10
|
let responseStatus = utils_1.CfnResponseStatus.Failed;
|
|
12
|
-
/**
|
|
13
|
-
* Related to [Draft Mode](https://nextjs.org/docs/app/building-your-application/configuring/draft-mode)
|
|
14
|
-
* and required for `NextjsRevalidation` to do [on-demand revalidation](https://nextjs.org/docs/app/building-your-application/data-fetching/incremental-static-regeneration#on-demand-revalidation-with-revalidatepath)
|
|
15
|
-
*/
|
|
16
|
-
let previewModeId = "";
|
|
17
11
|
try {
|
|
18
12
|
const props = event.ResourceProperties;
|
|
19
13
|
if (event.RequestType === "Create" || event.RequestType === "Update") {
|
|
20
|
-
const { actions, nextjsType } = props;
|
|
14
|
+
const { actions, buildId, nextjsType } = props;
|
|
21
15
|
for (const action of actions) {
|
|
22
16
|
if (action.type === "fs-to-fs") {
|
|
23
17
|
(0, fs_to_fs_1.fsToFs)(action);
|
|
24
18
|
}
|
|
25
19
|
else if (action.type === "fs-to-s3") {
|
|
26
|
-
await (0, fs_to_s3_1.fsToS3)(action, nextjsType);
|
|
27
|
-
}
|
|
28
|
-
else if (action.type === "prune-s3") {
|
|
29
|
-
await (0, prune_s3_1.pruneS3)(action);
|
|
20
|
+
await (0, fs_to_s3_1.fsToS3)({ ...action, nextjsType, buildId });
|
|
30
21
|
}
|
|
31
22
|
}
|
|
32
23
|
initImageCache(props.imageCachePath);
|
|
33
|
-
previewModeId = getPreviewModeId(props.prerenderManifestPath);
|
|
34
24
|
responseStatus = utils_1.CfnResponseStatus.Success;
|
|
35
25
|
}
|
|
36
26
|
else {
|
|
@@ -45,7 +35,7 @@ const handler = async (event, context) => {
|
|
|
45
35
|
event,
|
|
46
36
|
context,
|
|
47
37
|
responseStatus,
|
|
48
|
-
responseData: {
|
|
38
|
+
responseData: {},
|
|
49
39
|
});
|
|
50
40
|
}
|
|
51
41
|
};
|
|
@@ -60,12 +50,4 @@ function initImageCache(imageCachePath) {
|
|
|
60
50
|
(0, node_fs_1.mkdirSync)(imageCachePath);
|
|
61
51
|
}
|
|
62
52
|
}
|
|
63
|
-
|
|
64
|
-
* Only need preview mode id for `NextjsGlobalFunctions`, but easy to get
|
|
65
|
-
* so we do it each time.
|
|
66
|
-
*/
|
|
67
|
-
function getPreviewModeId(prerenderManifestPath) {
|
|
68
|
-
const prerenderManifest = JSON.parse((0, node_fs_1.readFileSync)(prerenderManifestPath, { encoding: "utf-8" }));
|
|
69
|
-
return prerenderManifest.preview.previewModeId;
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzLWRlcGxveW1lbnQubGFtYmRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xhbWJkYXMvYXNzZXRzLWRlcGxveW1lbnQvYXNzZXRzLWRlcGxveW1lbnQubGFtYmRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFDQUE4RDtBQUU5RCx5Q0FBb0M7QUFDcEMseUNBQW9DO0FBQ3BDLHlDQUFxQztBQUNyQyxtQ0FBZ0U7QUFPekQsTUFBTSxPQUFPLEdBQXdDLEtBQUssRUFDL0QsS0FBSyxFQUNMLE9BQU8sRUFDUCxFQUFFO0lBQ0YsSUFBQSxhQUFLLEVBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2pCLElBQUksY0FBYyxHQUFHLHlCQUFpQixDQUFDLE1BQU0sQ0FBQztJQUM5Qzs7O09BR0c7SUFDSCxJQUFJLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDdkIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLGtCQUFtQyxDQUFDO1FBQ3hELElBQUksS0FBSyxDQUFDLFdBQVcsS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLFdBQVcsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNyRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEtBQUssQ0FBQztZQUN0QyxLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUM3QixJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssVUFBVSxFQUFFLENBQUM7b0JBQy9CLElBQUEsaUJBQU0sRUFBQyxNQUFNLENBQUMsQ0FBQztnQkFDakIsQ0FBQztxQkFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssVUFBVSxFQUFFLENBQUM7b0JBQ3RDLE1BQU0sSUFBQSxpQkFBTSxFQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztnQkFDbkMsQ0FBQztxQkFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssVUFBVSxFQUFFLENBQUM7b0JBQ3RDLE1BQU0sSUFBQSxrQkFBTyxFQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN4QixDQUFDO1lBQ0gsQ0FBQztZQUNELGNBQWMsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDckMsYUFBYSxHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQzlELGNBQWMsR0FBRyx5QkFBaUIsQ0FBQyxPQUFPLENBQUM7UUFDN0MsQ0FBQzthQUFNLENBQUM7WUFDTixjQUFjLEdBQUcseUJBQWlCLENBQUMsT0FBTyxDQUFDO1FBQzdDLENBQUM7SUFDSCxDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckIsQ0FBQztZQUFTLENBQUM7UUFDVCxNQUFNLElBQUEsbUJBQVcsRUFBQztZQUNoQixLQUFLO1lBQ0wsT0FBTztZQUNQLGNBQWM7WUFDZCxZQUFZLEVBQUUsRUFBRSxhQUFhLEVBQUU7U0FDaEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztBQUNILENBQUMsQ0FBQztBQXhDVyxRQUFBLE9BQU8sV0F3Q2xCO0FBRUY7Ozs7R0FJRztBQUNILFNBQVMsY0FBYyxDQUFDLGNBQXNCO0lBQzVDLElBQUksY0FBYyxJQUFJLENBQUMsSUFBQSxvQkFBVSxFQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7UUFDbEQsSUFBQSxtQkFBUyxFQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzVCLENBQUM7QUFDSCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyxnQkFBZ0IsQ0FBQyxxQkFBNkI7SUFDckQsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUNsQyxJQUFBLHNCQUFZLEVBQUMscUJBQXFCLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FDM0QsQ0FBQztJQUNGLE9BQU8saUJBQWlCLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztBQUNqRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXhpc3RzU3luYywgbWtkaXJTeW5jLCByZWFkRmlsZVN5bmMgfSBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0IHR5cGUgeyBDbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlSGFuZGxlciB9IGZyb20gXCJhd3MtbGFtYmRhXCI7XG5pbXBvcnQgeyBmc1RvRnMgfSBmcm9tIFwiLi9mcy10by1mc1wiO1xuaW1wb3J0IHsgZnNUb1MzIH0gZnJvbSBcIi4vZnMtdG8tczNcIjtcbmltcG9ydCB7IHBydW5lUzMgfSBmcm9tIFwiLi9wcnVuZS1zM1wiO1xuaW1wb3J0IHsgY2ZuUmVzcG9uc2UsIENmblJlc3BvbnNlU3RhdHVzLCBkZWJ1ZyB9IGZyb20gXCIuL3V0aWxzXCI7XG5pbXBvcnQgdHlwZSB7IEN1c3RvbVJlc291cmNlUHJvcGVydGllcyB9IGZyb20gXCIuLi8uLi9uZXh0anMtYXNzZXRzLWRlcGxveW1lbnRcIjtcblxudHlwZSBSZXNvdXJjZVByb3BzID0gQ3VzdG9tUmVzb3VyY2VQcm9wZXJ0aWVzICYge1xuICBTZXJ2aWNlVG9rZW46IHN0cmluZztcbn07XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVyOiBDbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlSGFuZGxlciA9IGFzeW5jIChcbiAgZXZlbnQsXG4gIGNvbnRleHQsXG4pID0+IHtcbiAgZGVidWcoeyBldmVudCB9KTtcbiAgbGV0IHJlc3BvbnNlU3RhdHVzID0gQ2ZuUmVzcG9uc2VTdGF0dXMuRmFpbGVkO1xuICAvKipcbiAgICogUmVsYXRlZCB0byBbRHJhZnQgTW9kZV0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vY29uZmlndXJpbmcvZHJhZnQtbW9kZSlcbiAgICogYW5kIHJlcXVpcmVkIGZvciBgTmV4dGpzUmV2YWxpZGF0aW9uYCB0byBkbyBbb24tZGVtYW5kIHJldmFsaWRhdGlvbl0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vZGF0YS1mZXRjaGluZy9pbmNyZW1lbnRhbC1zdGF0aWMtcmVnZW5lcmF0aW9uI29uLWRlbWFuZC1yZXZhbGlkYXRpb24td2l0aC1yZXZhbGlkYXRlcGF0aClcbiAgICovXG4gIGxldCBwcmV2aWV3TW9kZUlkID0gXCJcIjtcbiAgdHJ5IHtcbiAgICBjb25zdCBwcm9wcyA9IGV2ZW50LlJlc291cmNlUHJvcGVydGllcyBhcyBSZXNvdXJjZVByb3BzO1xuICAgIGlmIChldmVudC5SZXF1ZXN0VHlwZSA9PT0gXCJDcmVhdGVcIiB8fCBldmVudC5SZXF1ZXN0VHlwZSA9PT0gXCJVcGRhdGVcIikge1xuICAgICAgY29uc3QgeyBhY3Rpb25zLCBuZXh0anNUeXBlIH0gPSBwcm9wcztcbiAgICAgIGZvciAoY29uc3QgYWN0aW9uIG9mIGFjdGlvbnMpIHtcbiAgICAgICAgaWYgKGFjdGlvbi50eXBlID09PSBcImZzLXRvLWZzXCIpIHtcbiAgICAgICAgICBmc1RvRnMoYWN0aW9uKTtcbiAgICAgICAgfSBlbHNlIGlmIChhY3Rpb24udHlwZSA9PT0gXCJmcy10by1zM1wiKSB7XG4gICAgICAgICAgYXdhaXQgZnNUb1MzKGFjdGlvbiwgbmV4dGpzVHlwZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoYWN0aW9uLnR5cGUgPT09IFwicHJ1bmUtczNcIikge1xuICAgICAgICAgIGF3YWl0IHBydW5lUzMoYWN0aW9uKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaW5pdEltYWdlQ2FjaGUocHJvcHMuaW1hZ2VDYWNoZVBhdGgpO1xuICAgICAgcHJldmlld01vZGVJZCA9IGdldFByZXZpZXdNb2RlSWQocHJvcHMucHJlcmVuZGVyTWFuaWZlc3RQYXRoKTtcbiAgICAgIHJlc3BvbnNlU3RhdHVzID0gQ2ZuUmVzcG9uc2VTdGF0dXMuU3VjY2VzcztcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzcG9uc2VTdGF0dXMgPSBDZm5SZXNwb25zZVN0YXR1cy5TdWNjZXNzO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY29uc29sZS5lcnJvcihlcnIpO1xuICB9IGZpbmFsbHkge1xuICAgIGF3YWl0IGNmblJlc3BvbnNlKHtcbiAgICAgIGV2ZW50LFxuICAgICAgY29udGV4dCxcbiAgICAgIHJlc3BvbnNlU3RhdHVzLFxuICAgICAgcmVzcG9uc2VEYXRhOiB7IHByZXZpZXdNb2RlSWQgfSxcbiAgICB9KTtcbiAgfVxufTtcblxuLyoqXG4gKiBPbiBmaXJzdCBkZXBsb3ltZW50IHRoZXJlIGlzIG5vIGRpcmVjdG9yeSBmb3IgaW1hZ2VzIHRvIGJlIG9wdGltaXplZCBpbnRvIGJ5XG4gKiBOZXh0LmpzIHNvIHRoaXMgY3JlYXRlcyBkaXJlY3RvcnkgZm9yIHRob3NlIGltYWdlcy4gT25seSBydW5zIG9uY2UuXG4gKiBUaGlzIGlzIHVubGlrZSBvdGhlciBjYWNoZSBkaXJlY3RvcmllcyB3aGljaCBhcmUgY3JlYXRlZCBhdCBidWlsZCB0aW1lLlxuICovXG5mdW5jdGlvbiBpbml0SW1hZ2VDYWNoZShpbWFnZUNhY2hlUGF0aDogc3RyaW5nKSB7XG4gIGlmIChpbWFnZUNhY2hlUGF0aCAmJiAhZXhpc3RzU3luYyhpbWFnZUNhY2hlUGF0aCkpIHtcbiAgICBta2RpclN5bmMoaW1hZ2VDYWNoZVBhdGgpO1xuICB9XG59XG5cbi8qKlxuICogT25seSBuZWVkIHByZXZpZXcgbW9kZSBpZCBmb3IgYE5leHRqc0dsb2JhbEZ1bmN0aW9uc2AsIGJ1dCBlYXN5IHRvIGdldFxuICogc28gd2UgZG8gaXQgZWFjaCB0aW1lLlxuICovXG5mdW5jdGlvbiBnZXRQcmV2aWV3TW9kZUlkKHByZXJlbmRlck1hbmlmZXN0UGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgcHJlcmVuZGVyTWFuaWZlc3QgPSBKU09OLnBhcnNlKFxuICAgIHJlYWRGaWxlU3luYyhwcmVyZW5kZXJNYW5pZmVzdFBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmLThcIiB9KSxcbiAgKTtcbiAgcmV0dXJuIHByZXJlbmRlck1hbmlmZXN0LnByZXZpZXcucHJldmlld01vZGVJZDtcbn1cbiJdfQ==
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzLWRlcGxveW1lbnQubGFtYmRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xhbWJkYXMvYXNzZXRzLWRlcGxveW1lbnQvYXNzZXRzLWRlcGxveW1lbnQubGFtYmRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFDQUFnRDtBQUVoRCx5Q0FBb0M7QUFDcEMseUNBQW9DO0FBRXBDLG9DQUFpRTtBQU0xRCxNQUFNLE9BQU8sR0FBd0MsS0FBSyxFQUMvRCxLQUFLLEVBQ0wsT0FBTyxFQUNQLEVBQUU7SUFDRixJQUFBLGFBQUssRUFBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDakIsSUFBSSxjQUFjLEdBQUcseUJBQWlCLENBQUMsTUFBTSxDQUFDO0lBQzlDLElBQUksQ0FBQztRQUNILE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxrQkFBbUMsQ0FBQztRQUN4RCxJQUFJLEtBQUssQ0FBQyxXQUFXLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxXQUFXLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDckUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsS0FBSyxDQUFDO1lBQy9DLEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQzdCLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxVQUFVLEVBQUUsQ0FBQztvQkFDL0IsSUFBQSxpQkFBTSxFQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNqQixDQUFDO3FCQUFNLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxVQUFVLEVBQUUsQ0FBQztvQkFDdEMsTUFBTSxJQUFBLGlCQUFNLEVBQUMsRUFBRSxHQUFHLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztnQkFDbkQsQ0FBQztZQUNILENBQUM7WUFDRCxjQUFjLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3JDLGNBQWMsR0FBRyx5QkFBaUIsQ0FBQyxPQUFPLENBQUM7UUFDN0MsQ0FBQzthQUFNLENBQUM7WUFDTixjQUFjLEdBQUcseUJBQWlCLENBQUMsT0FBTyxDQUFDO1FBQzdDLENBQUM7SUFDSCxDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckIsQ0FBQztZQUFTLENBQUM7UUFDVCxNQUFNLElBQUEsbUJBQVcsRUFBQztZQUNoQixLQUFLO1lBQ0wsT0FBTztZQUNQLGNBQWM7WUFDZCxZQUFZLEVBQUUsRUFBRTtTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBaENXLFFBQUEsT0FBTyxXQWdDbEI7QUFFRjs7OztHQUlHO0FBQ0gsU0FBUyxjQUFjLENBQUMsY0FBc0I7SUFDNUMsSUFBSSxjQUFjLElBQUksQ0FBQyxJQUFBLG9CQUFVLEVBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztRQUNsRCxJQUFBLG1CQUFTLEVBQUMsY0FBYyxDQUFDLENBQUM7SUFDNUIsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGlzdHNTeW5jLCBta2RpclN5bmMgfSBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0IHR5cGUgeyBDbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlSGFuZGxlciB9IGZyb20gXCJhd3MtbGFtYmRhXCI7XG5pbXBvcnQgeyBmc1RvRnMgfSBmcm9tIFwiLi9mcy10by1mc1wiO1xuaW1wb3J0IHsgZnNUb1MzIH0gZnJvbSBcIi4vZnMtdG8tczNcIjtcbmltcG9ydCB0eXBlIHsgU3RhdGljQXNzZXRzQ3VzdG9tUmVzb3VyY2VQcm9wZXJ0aWVzIH0gZnJvbSBcIi4uLy4uL25leHRqcy1hc3NldHMtZGVwbG95bWVudFwiO1xuaW1wb3J0IHsgY2ZuUmVzcG9uc2UsIENmblJlc3BvbnNlU3RhdHVzLCBkZWJ1ZyB9IGZyb20gXCIuLi91dGlsc1wiO1xuXG50eXBlIFJlc291cmNlUHJvcHMgPSBTdGF0aWNBc3NldHNDdXN0b21SZXNvdXJjZVByb3BlcnRpZXMgJiB7XG4gIFNlcnZpY2VUb2tlbjogc3RyaW5nO1xufTtcblxuZXhwb3J0IGNvbnN0IGhhbmRsZXI6IENsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VIYW5kbGVyID0gYXN5bmMgKFxuICBldmVudCxcbiAgY29udGV4dCxcbikgPT4ge1xuICBkZWJ1Zyh7IGV2ZW50IH0pO1xuICBsZXQgcmVzcG9uc2VTdGF0dXMgPSBDZm5SZXNwb25zZVN0YXR1cy5GYWlsZWQ7XG4gIHRyeSB7XG4gICAgY29uc3QgcHJvcHMgPSBldmVudC5SZXNvdXJjZVByb3BlcnRpZXMgYXMgUmVzb3VyY2VQcm9wcztcbiAgICBpZiAoZXZlbnQuUmVxdWVzdFR5cGUgPT09IFwiQ3JlYXRlXCIgfHwgZXZlbnQuUmVxdWVzdFR5cGUgPT09IFwiVXBkYXRlXCIpIHtcbiAgICAgIGNvbnN0IHsgYWN0aW9ucywgYnVpbGRJZCwgbmV4dGpzVHlwZSB9ID0gcHJvcHM7XG4gICAgICBmb3IgKGNvbnN0IGFjdGlvbiBvZiBhY3Rpb25zKSB7XG4gICAgICAgIGlmIChhY3Rpb24udHlwZSA9PT0gXCJmcy10by1mc1wiKSB7XG4gICAgICAgICAgZnNUb0ZzKGFjdGlvbik7XG4gICAgICAgIH0gZWxzZSBpZiAoYWN0aW9uLnR5cGUgPT09IFwiZnMtdG8tczNcIikge1xuICAgICAgICAgIGF3YWl0IGZzVG9TMyh7IC4uLmFjdGlvbiwgbmV4dGpzVHlwZSwgYnVpbGRJZCB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaW5pdEltYWdlQ2FjaGUocHJvcHMuaW1hZ2VDYWNoZVBhdGgpO1xuICAgICAgcmVzcG9uc2VTdGF0dXMgPSBDZm5SZXNwb25zZVN0YXR1cy5TdWNjZXNzO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXNwb25zZVN0YXR1cyA9IENmblJlc3BvbnNlU3RhdHVzLlN1Y2Nlc3M7XG4gICAgfVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICBjb25zb2xlLmVycm9yKGVycik7XG4gIH0gZmluYWxseSB7XG4gICAgYXdhaXQgY2ZuUmVzcG9uc2Uoe1xuICAgICAgZXZlbnQsXG4gICAgICBjb250ZXh0LFxuICAgICAgcmVzcG9uc2VTdGF0dXMsXG4gICAgICByZXNwb25zZURhdGE6IHt9LFxuICAgIH0pO1xuICB9XG59O1xuXG4vKipcbiAqIE9uIGZpcnN0IGRlcGxveW1lbnQgdGhlcmUgaXMgbm8gZGlyZWN0b3J5IGZvciBpbWFnZXMgdG8gYmUgb3B0aW1pemVkIGludG8gYnlcbiAqIE5leHQuanMgc28gdGhpcyBjcmVhdGVzIGRpcmVjdG9yeSBmb3IgdGhvc2UgaW1hZ2VzLiBPbmx5IHJ1bnMgb25jZS5cbiAqIFRoaXMgaXMgdW5saWtlIG90aGVyIGNhY2hlIGRpcmVjdG9yaWVzIHdoaWNoIGFyZSBjcmVhdGVkIGF0IGJ1aWxkIHRpbWUuXG4gKi9cbmZ1bmN0aW9uIGluaXRJbWFnZUNhY2hlKGltYWdlQ2FjaGVQYXRoOiBzdHJpbmcpIHtcbiAgaWYgKGltYWdlQ2FjaGVQYXRoICYmICFleGlzdHNTeW5jKGltYWdlQ2FjaGVQYXRoKSkge1xuICAgIG1rZGlyU3luYyhpbWFnZUNhY2hlUGF0aCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -2,8 +2,23 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.fsToFs = fsToFs;
|
|
4
4
|
const node_fs_1 = require("node:fs");
|
|
5
|
+
const node_path_1 = require("node:path");
|
|
6
|
+
const utils_1 = require("../utils");
|
|
5
7
|
function fsToFs(props) {
|
|
6
|
-
const { sourcePath, destinationPath } = props;
|
|
7
|
-
(0,
|
|
8
|
+
const { sourcePath, destinationPath, includeExtensions } = props;
|
|
9
|
+
(0, utils_1.debug)(`Copying ${sourcePath} to ${destinationPath} recursively`);
|
|
10
|
+
(0, node_fs_1.cpSync)(sourcePath, destinationPath, {
|
|
11
|
+
recursive: true,
|
|
12
|
+
filter: (_src, dest) => {
|
|
13
|
+
// console.log({ _src, dest });
|
|
14
|
+
const isDirectory = (0, node_path_1.extname)(dest) === "";
|
|
15
|
+
if (isDirectory) {
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
return includeExtensions
|
|
19
|
+
? includeExtensions.includes((0, node_path_1.extname)(dest))
|
|
20
|
+
: true;
|
|
21
|
+
},
|
|
22
|
+
});
|
|
8
23
|
}
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtdG8tZnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGFtYmRhcy9hc3NldHMtZGVwbG95bWVudC9mcy10by1mcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUtBLHdCQWdCQztBQXJCRCxxQ0FBaUM7QUFDakMseUNBQW9DO0FBRXBDLG9DQUFpQztBQUVqQyxTQUFnQixNQUFNLENBQUMsS0FBbUI7SUFDeEMsTUFBTSxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFDakUsSUFBQSxhQUFLLEVBQUMsV0FBVyxVQUFVLE9BQU8sZUFBZSxjQUFjLENBQUMsQ0FBQztJQUNqRSxJQUFBLGdCQUFNLEVBQUMsVUFBVSxFQUFFLGVBQWUsRUFBRTtRQUNsQyxTQUFTLEVBQUUsSUFBSTtRQUNmLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUNyQiwrQkFBK0I7WUFDL0IsTUFBTSxXQUFXLEdBQUcsSUFBQSxtQkFBTyxFQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN6QyxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUNoQixPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7WUFDRCxPQUFPLGlCQUFpQjtnQkFDdEIsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxJQUFBLG1CQUFPLEVBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzNDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDWCxDQUFDO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNwU3luYyB9IGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgeyBleHRuYW1lIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgRnNUb0ZzQWN0aW9uIH0gZnJvbSBcIi4uLy4uL25leHRqcy1hc3NldHMtZGVwbG95bWVudFwiO1xuaW1wb3J0IHsgZGVidWcgfSBmcm9tIFwiLi4vdXRpbHNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGZzVG9Gcyhwcm9wczogRnNUb0ZzQWN0aW9uKSB7XG4gIGNvbnN0IHsgc291cmNlUGF0aCwgZGVzdGluYXRpb25QYXRoLCBpbmNsdWRlRXh0ZW5zaW9ucyB9ID0gcHJvcHM7XG4gIGRlYnVnKGBDb3B5aW5nICR7c291cmNlUGF0aH0gdG8gJHtkZXN0aW5hdGlvblBhdGh9IHJlY3Vyc2l2ZWx5YCk7XG4gIGNwU3luYyhzb3VyY2VQYXRoLCBkZXN0aW5hdGlvblBhdGgsIHtcbiAgICByZWN1cnNpdmU6IHRydWUsXG4gICAgZmlsdGVyOiAoX3NyYywgZGVzdCkgPT4ge1xuICAgICAgLy8gY29uc29sZS5sb2coeyBfc3JjLCBkZXN0IH0pO1xuICAgICAgY29uc3QgaXNEaXJlY3RvcnkgPSBleHRuYW1lKGRlc3QpID09PSBcIlwiO1xuICAgICAgaWYgKGlzRGlyZWN0b3J5KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGluY2x1ZGVFeHRlbnNpb25zXG4gICAgICAgID8gaW5jbHVkZUV4dGVuc2lvbnMuaW5jbHVkZXMoZXh0bmFtZShkZXN0KSlcbiAgICAgICAgOiB0cnVlO1xuICAgIH0sXG4gIH0pO1xufVxuIl19
|
|
@@ -1,6 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { S3Client } from "@aws-sdk/client-s3";
|
|
2
|
+
import { NextjsType } from "../../constants";
|
|
2
3
|
import type { FsToS3Action } from "../../nextjs-assets-deployment";
|
|
3
|
-
export declare
|
|
4
|
+
export declare const s3: S3Client;
|
|
5
|
+
interface FsToS3Props extends FsToS3Action {
|
|
6
|
+
buildId: string;
|
|
7
|
+
nextjsType?: NextjsType;
|
|
8
|
+
}
|
|
9
|
+
export declare function fsToS3(props: FsToS3Props): Promise<void>;
|
|
4
10
|
interface CreateS3KeyProps {
|
|
5
11
|
keyPrefix?: string;
|
|
6
12
|
path: string;
|
|
@@ -1,19 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.s3 = void 0;
|
|
3
4
|
exports.fsToS3 = fsToS3;
|
|
4
5
|
exports.createS3Key = createS3Key;
|
|
5
6
|
const node_fs_1 = require("node:fs");
|
|
6
7
|
const node_path_1 = require("node:path");
|
|
7
8
|
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
9
|
+
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
10
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
8
11
|
const lib_storage_1 = require("@aws-sdk/lib-storage");
|
|
9
12
|
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
10
13
|
const mime = require("mime-types");
|
|
11
14
|
const common_1 = require("./common");
|
|
12
|
-
const
|
|
13
|
-
const utils_1 = require("
|
|
14
|
-
|
|
15
|
-
async function fsToS3(props
|
|
16
|
-
const { destinationBucketName, destinationKeyPrefix, sourcePath } = props;
|
|
15
|
+
const constants_1 = require("../../constants");
|
|
16
|
+
const utils_1 = require("../utils");
|
|
17
|
+
exports.s3 = new client_s3_1.S3Client({});
|
|
18
|
+
async function fsToS3(props) {
|
|
19
|
+
const { buildId, destinationBucketName, destinationKeyPrefix, nextjsType, sourcePath, } = props;
|
|
17
20
|
const sourceFilePaths = (0, common_1.listFilePaths)(sourcePath);
|
|
18
21
|
for await (const filePathChunk of (0, common_1.chunkArray)(sourceFilePaths, 100)) {
|
|
19
22
|
const putObjectInputs = filePathChunk.map((path) => {
|
|
@@ -25,7 +28,7 @@ async function fsToS3(props, nextjsType) {
|
|
|
25
28
|
});
|
|
26
29
|
let body;
|
|
27
30
|
if (path.includes(".next/static/chunks/main-app-") &&
|
|
28
|
-
nextjsType ===
|
|
31
|
+
nextjsType === constants_1.NextjsType.GLOBAL_FUNCTIONS) {
|
|
29
32
|
// see src/lambdas/assets-deployment/patch-fetch.js for why this is needed
|
|
30
33
|
const mainAppFileContent = (0, node_fs_1.readFileSync)(path);
|
|
31
34
|
const patchFetchContent = (0, node_fs_1.readFileSync)((0, node_path_1.join)(__dirname, "patch-fetch.js"))
|
|
@@ -43,13 +46,16 @@ async function fsToS3(props, nextjsType) {
|
|
|
43
46
|
Bucket: destinationBucketName,
|
|
44
47
|
ContentType: contentType,
|
|
45
48
|
Key: key,
|
|
49
|
+
Metadata: {
|
|
50
|
+
"next-build-id": buildId,
|
|
51
|
+
},
|
|
46
52
|
};
|
|
47
53
|
});
|
|
48
54
|
(0, utils_1.debug)(putObjectInputs.map((i) => ({
|
|
49
55
|
bucket: i.Bucket,
|
|
50
56
|
key: i.Key,
|
|
51
57
|
})));
|
|
52
|
-
await Promise.all(putObjectInputs.map((input) => new lib_storage_1.Upload({ client:
|
|
58
|
+
await Promise.all(putObjectInputs.map((input) => new lib_storage_1.Upload({ client: exports.s3, params: input }).done()));
|
|
53
59
|
}
|
|
54
60
|
}
|
|
55
61
|
/**
|
|
@@ -62,4 +68,4 @@ function createS3Key({ keyPrefix, path, basePath }) {
|
|
|
62
68
|
objectKeyParts.push((0, node_path_1.relative)(basePath, path));
|
|
63
69
|
return (0, node_path_1.join)(...objectKeyParts);
|
|
64
70
|
}
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtdG8tczMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGFtYmRhcy9hc3NldHMtZGVwbG95bWVudC9mcy10by1zMy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFvQkEsd0JBMkRDO0FBVUQsa0NBS0M7QUE5RkQscUNBQXFFO0FBQ3JFLHlDQUEyQztBQUMzQyw2REFBNkQ7QUFDN0Qsa0RBQXFFO0FBQ3JFLDZEQUE2RDtBQUM3RCxzREFBOEM7QUFDOUMsNkRBQTZEO0FBQzdELG1DQUFtQztBQUNuQyxxQ0FBcUQ7QUFDckQsK0NBQTZDO0FBRTdDLG9DQUFpQztBQUVwQixRQUFBLEVBQUUsR0FBRyxJQUFJLG9CQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7QUFPNUIsS0FBSyxVQUFVLE1BQU0sQ0FBQyxLQUFrQjtJQUM3QyxNQUFNLEVBQ0osT0FBTyxFQUNQLHFCQUFxQixFQUNyQixvQkFBb0IsRUFDcEIsVUFBVSxFQUNWLFVBQVUsR0FDWCxHQUFHLEtBQUssQ0FBQztJQUNWLE1BQU0sZUFBZSxHQUFHLElBQUEsc0JBQWEsRUFBQyxVQUFVLENBQUMsQ0FBQztJQUNsRCxJQUFJLEtBQUssRUFBRSxNQUFNLGFBQWEsSUFBSSxJQUFBLG1CQUFVLEVBQUMsZUFBZSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDbkUsTUFBTSxlQUFlLEdBQTRCLGFBQWEsQ0FBQyxHQUFHLENBQ2hFLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDUCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLFNBQVMsQ0FBQztZQUNuRCxNQUFNLEdBQUcsR0FBRyxXQUFXLENBQUM7Z0JBQ3RCLFNBQVMsRUFBRSxvQkFBb0I7Z0JBQy9CLElBQUk7Z0JBQ0osUUFBUSxFQUFFLFVBQVU7YUFDckIsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxJQUF5QixDQUFDO1lBQzlCLElBQ0UsSUFBSSxDQUFDLFFBQVEsQ0FBQywrQkFBK0IsQ0FBQztnQkFDOUMsVUFBVSxLQUFLLHNCQUFVLENBQUMsZ0JBQWdCLEVBQzFDLENBQUM7Z0JBQ0QsMEVBQTBFO2dCQUMxRSxNQUFNLGtCQUFrQixHQUFHLElBQUEsc0JBQVksRUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDOUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFBLHNCQUFZLEVBQ3BDLElBQUEsZ0JBQUksRUFBQyxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsQ0FDbEM7cUJBQ0UsUUFBUSxFQUFFO29CQUNYLHNGQUFzRjtvQkFDdEYseUVBQXlFO3FCQUN4RSxPQUFPLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNoQyxJQUFJLEdBQUcsaUJBQWlCLEdBQUcsSUFBSSxHQUFHLGtCQUFrQixDQUFDO1lBQ3ZELENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLEdBQUcsSUFBQSwwQkFBZ0IsRUFBQyxJQUFJLENBQUMsQ0FBQztZQUNoQyxDQUFDO1lBQ0QsT0FBTztnQkFDTCxJQUFJLEVBQUUsSUFBSTtnQkFDVixNQUFNLEVBQUUscUJBQXFCO2dCQUM3QixXQUFXLEVBQUUsV0FBVztnQkFDeEIsR0FBRyxFQUFFLEdBQUc7Z0JBQ1IsUUFBUSxFQUFFO29CQUNSLGVBQWUsRUFBRSxPQUFPO2lCQUN6QjthQUNGLENBQUM7UUFDSixDQUFDLENBQ0YsQ0FBQztRQUNGLElBQUEsYUFBSyxFQUNILGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDMUIsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNO1lBQ2hCLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRztTQUNYLENBQUMsQ0FBQyxDQUNKLENBQUM7UUFDRixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2YsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQzVCLElBQUksb0JBQU0sQ0FBQyxFQUFFLE1BQU0sRUFBRSxVQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQ2pELENBQ0YsQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDO0FBT0Q7O0dBRUc7QUFDSCxTQUFnQixXQUFXLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBb0I7SUFDekUsTUFBTSxjQUFjLEdBQWEsRUFBRSxDQUFDO0lBQ3BDLElBQUksU0FBUztRQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFBLG9CQUFRLEVBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDOUMsT0FBTyxJQUFBLGdCQUFJLEVBQUMsR0FBRyxjQUFjLENBQUMsQ0FBQztBQUNqQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlUmVhZFN0cmVhbSwgcmVhZEZpbGVTeW5jLCBSZWFkU3RyZWFtIH0gZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCB7IGpvaW4sIHJlbGF0aXZlIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llc1xuaW1wb3J0IHsgUHV0T2JqZWN0Q29tbWFuZElucHV0LCBTM0NsaWVudCB9IGZyb20gXCJAYXdzLXNkay9jbGllbnQtczNcIjtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXNcbmltcG9ydCB7IFVwbG9hZCB9IGZyb20gXCJAYXdzLXNkay9saWItc3RvcmFnZVwiO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llc1xuaW1wb3J0ICogYXMgbWltZSBmcm9tIFwibWltZS10eXBlc1wiO1xuaW1wb3J0IHsgY2h1bmtBcnJheSwgbGlzdEZpbGVQYXRocyB9IGZyb20gXCIuL2NvbW1vblwiO1xuaW1wb3J0IHsgTmV4dGpzVHlwZSB9IGZyb20gXCIuLi8uLi9jb25zdGFudHNcIjtcbmltcG9ydCB0eXBlIHsgRnNUb1MzQWN0aW9uIH0gZnJvbSBcIi4uLy4uL25leHRqcy1hc3NldHMtZGVwbG95bWVudFwiO1xuaW1wb3J0IHsgZGVidWcgfSBmcm9tIFwiLi4vdXRpbHNcIjtcblxuZXhwb3J0IGNvbnN0IHMzID0gbmV3IFMzQ2xpZW50KHt9KTtcblxuaW50ZXJmYWNlIEZzVG9TM1Byb3BzIGV4dGVuZHMgRnNUb1MzQWN0aW9uIHtcbiAgYnVpbGRJZDogc3RyaW5nO1xuICBuZXh0anNUeXBlPzogTmV4dGpzVHlwZTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZzVG9TMyhwcm9wczogRnNUb1MzUHJvcHMpIHtcbiAgY29uc3Qge1xuICAgIGJ1aWxkSWQsXG4gICAgZGVzdGluYXRpb25CdWNrZXROYW1lLFxuICAgIGRlc3RpbmF0aW9uS2V5UHJlZml4LFxuICAgIG5leHRqc1R5cGUsXG4gICAgc291cmNlUGF0aCxcbiAgfSA9IHByb3BzO1xuICBjb25zdCBzb3VyY2VGaWxlUGF0aHMgPSBsaXN0RmlsZVBhdGhzKHNvdXJjZVBhdGgpO1xuICBmb3IgYXdhaXQgKGNvbnN0IGZpbGVQYXRoQ2h1bmsgb2YgY2h1bmtBcnJheShzb3VyY2VGaWxlUGF0aHMsIDEwMCkpIHtcbiAgICBjb25zdCBwdXRPYmplY3RJbnB1dHM6IFB1dE9iamVjdENvbW1hbmRJbnB1dFtdID0gZmlsZVBhdGhDaHVuay5tYXAoXG4gICAgICAocGF0aCkgPT4ge1xuICAgICAgICBjb25zdCBjb250ZW50VHlwZSA9IG1pbWUubG9va3VwKHBhdGgpIHx8IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3Qga2V5ID0gY3JlYXRlUzNLZXkoe1xuICAgICAgICAgIGtleVByZWZpeDogZGVzdGluYXRpb25LZXlQcmVmaXgsXG4gICAgICAgICAgcGF0aCxcbiAgICAgICAgICBiYXNlUGF0aDogc291cmNlUGF0aCxcbiAgICAgICAgfSk7XG4gICAgICAgIGxldCBib2R5OiBzdHJpbmcgfCBSZWFkU3RyZWFtO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgcGF0aC5pbmNsdWRlcyhcIi5uZXh0L3N0YXRpYy9jaHVua3MvbWFpbi1hcHAtXCIpICYmXG4gICAgICAgICAgbmV4dGpzVHlwZSA9PT0gTmV4dGpzVHlwZS5HTE9CQUxfRlVOQ1RJT05TXG4gICAgICAgICkge1xuICAgICAgICAgIC8vIHNlZSBzcmMvbGFtYmRhcy9hc3NldHMtZGVwbG95bWVudC9wYXRjaC1mZXRjaC5qcyBmb3Igd2h5IHRoaXMgaXMgbmVlZGVkXG4gICAgICAgICAgY29uc3QgbWFpbkFwcEZpbGVDb250ZW50ID0gcmVhZEZpbGVTeW5jKHBhdGgpO1xuICAgICAgICAgIGNvbnN0IHBhdGNoRmV0Y2hDb250ZW50ID0gcmVhZEZpbGVTeW5jKFxuICAgICAgICAgICAgam9pbihfX2Rpcm5hbWUsIFwicGF0Y2gtZmV0Y2guanNcIiksXG4gICAgICAgICAgKVxuICAgICAgICAgICAgLnRvU3RyaW5nKClcbiAgICAgICAgICAgIC8vIHJlbW92ZSBcInVzZSBzdHJpY3RcIiBiZWNhdXNlIGl0IGNhdXNlczogVW5jYXVnaHQgUmVmZXJlbmNlRXJyb3I6IF9OX0UgaXMgbm90IGRlZmluZWRcbiAgICAgICAgICAgIC8vIHNpbmNlIHN0cmljdCBtb2RlIGRvZXNuJ3QgYWxsb3cgd2VicGFjayB0byBkZWZpbmUgdW5kZWNsYXJlZCB2YXJpYWJsZXNcbiAgICAgICAgICAgIC5yZXBsYWNlKCdcInVzZSBzdHJpY3RcIjsnLCBcIlwiKTtcbiAgICAgICAgICBib2R5ID0gcGF0Y2hGZXRjaENvbnRlbnQgKyBcIlxcblwiICsgbWFpbkFwcEZpbGVDb250ZW50O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJvZHkgPSBjcmVhdGVSZWFkU3RyZWFtKHBhdGgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgQm9keTogYm9keSxcbiAgICAgICAgICBCdWNrZXQ6IGRlc3RpbmF0aW9uQnVja2V0TmFtZSxcbiAgICAgICAgICBDb250ZW50VHlwZTogY29udGVudFR5cGUsXG4gICAgICAgICAgS2V5OiBrZXksXG4gICAgICAgICAgTWV0YWRhdGE6IHtcbiAgICAgICAgICAgIFwibmV4dC1idWlsZC1pZFwiOiBidWlsZElkLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9LFxuICAgICk7XG4gICAgZGVidWcoXG4gICAgICBwdXRPYmplY3RJbnB1dHMubWFwKChpKSA9PiAoe1xuICAgICAgICBidWNrZXQ6IGkuQnVja2V0LFxuICAgICAgICBrZXk6IGkuS2V5LFxuICAgICAgfSkpLFxuICAgICk7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBwdXRPYmplY3RJbnB1dHMubWFwKChpbnB1dCkgPT5cbiAgICAgICAgbmV3IFVwbG9hZCh7IGNsaWVudDogczMsIHBhcmFtczogaW5wdXQgfSkuZG9uZSgpLFxuICAgICAgKSxcbiAgICApO1xuICB9XG59XG5cbmludGVyZmFjZSBDcmVhdGVTM0tleVByb3BzIHtcbiAga2V5UHJlZml4Pzogc3RyaW5nO1xuICBwYXRoOiBzdHJpbmc7XG4gIGJhc2VQYXRoOiBzdHJpbmc7XG59XG4vKipcbiAqIENyZWF0ZSBTMyBLZXkgZ2l2ZW4gbG9jYWwgcGF0aFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUzNLZXkoeyBrZXlQcmVmaXgsIHBhdGgsIGJhc2VQYXRoIH06IENyZWF0ZVMzS2V5UHJvcHMpIHtcbiAgY29uc3Qgb2JqZWN0S2V5UGFydHM6IHN0cmluZ1tdID0gW107XG4gIGlmIChrZXlQcmVmaXgpIG9iamVjdEtleVBhcnRzLnB1c2goa2V5UHJlZml4KTtcbiAgb2JqZWN0S2V5UGFydHMucHVzaChyZWxhdGl2ZShiYXNlUGF0aCwgcGF0aCkpO1xuICByZXR1cm4gam9pbiguLi5vYmplY3RLZXlQYXJ0cyk7XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { PostDeployCustomResourceProperties } from "../../nextjs-post-deploy";
|
|
2
|
+
export declare function createInvalidation(input: NonNullable<PostDeployCustomResourceProperties["createInvalidationCommandInput"]>): Promise<import("@aws-sdk/client-cloudfront").CreateInvalidationCommandOutput>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createInvalidation = createInvalidation;
|
|
4
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
5
|
+
const client_cloudfront_1 = require("@aws-sdk/client-cloudfront");
|
|
6
|
+
const cfClient = new client_cloudfront_1.CloudFrontClient();
|
|
7
|
+
async function createInvalidation(input) {
|
|
8
|
+
return cfClient.send(new client_cloudfront_1.CreateInvalidationCommand({
|
|
9
|
+
DistributionId: input.distributionId,
|
|
10
|
+
InvalidationBatch: {
|
|
11
|
+
CallerReference: input.invalidationBatch.callerReference,
|
|
12
|
+
Paths: {
|
|
13
|
+
Quantity: input.invalidationBatch.paths.quantity,
|
|
14
|
+
Items: input.invalidationBatch.paths.items,
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
}));
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWludmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYW1iZGFzL3Bvc3QtZGVwbG95L2NyZWF0ZS1pbnZhbGlkYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFTQSxnREFpQkM7QUExQkQsNkRBQTZEO0FBQzdELGtFQUdvQztBQUdwQyxNQUFNLFFBQVEsR0FBRyxJQUFJLG9DQUFnQixFQUFFLENBQUM7QUFFakMsS0FBSyxVQUFVLGtCQUFrQixDQUN0QyxLQUVDO0lBRUQsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUNsQixJQUFJLDZDQUF5QixDQUFDO1FBQzVCLGNBQWMsRUFBRSxLQUFLLENBQUMsY0FBYztRQUNwQyxpQkFBaUIsRUFBRTtZQUNqQixlQUFlLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLGVBQWU7WUFDeEQsS0FBSyxFQUFFO2dCQUNMLFFBQVEsRUFBRSxLQUFLLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLFFBQVE7Z0JBQ2hELEtBQUssRUFBRSxLQUFLLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLEtBQUs7YUFDM0M7U0FDRjtLQUNGLENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXNcbmltcG9ydCB7XG4gIENsb3VkRnJvbnRDbGllbnQsXG4gIENyZWF0ZUludmFsaWRhdGlvbkNvbW1hbmQsXG59IGZyb20gXCJAYXdzLXNkay9jbGllbnQtY2xvdWRmcm9udFwiO1xuaW1wb3J0IHsgUG9zdERlcGxveUN1c3RvbVJlc291cmNlUHJvcGVydGllcyB9IGZyb20gXCIuLi8uLi9uZXh0anMtcG9zdC1kZXBsb3lcIjtcblxuY29uc3QgY2ZDbGllbnQgPSBuZXcgQ2xvdWRGcm9udENsaWVudCgpO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlSW52YWxpZGF0aW9uKFxuICBpbnB1dDogTm9uTnVsbGFibGU8XG4gICAgUG9zdERlcGxveUN1c3RvbVJlc291cmNlUHJvcGVydGllc1tcImNyZWF0ZUludmFsaWRhdGlvbkNvbW1hbmRJbnB1dFwiXVxuICA+LFxuKSB7XG4gIHJldHVybiBjZkNsaWVudC5zZW5kKFxuICAgIG5ldyBDcmVhdGVJbnZhbGlkYXRpb25Db21tYW5kKHtcbiAgICAgIERpc3RyaWJ1dGlvbklkOiBpbnB1dC5kaXN0cmlidXRpb25JZCxcbiAgICAgIEludmFsaWRhdGlvbkJhdGNoOiB7XG4gICAgICAgIENhbGxlclJlZmVyZW5jZTogaW5wdXQuaW52YWxpZGF0aW9uQmF0Y2guY2FsbGVyUmVmZXJlbmNlLFxuICAgICAgICBQYXRoczoge1xuICAgICAgICAgIFF1YW50aXR5OiBpbnB1dC5pbnZhbGlkYXRpb25CYXRjaC5wYXRocy5xdWFudGl0eSxcbiAgICAgICAgICBJdGVtczogaW5wdXQuaW52YWxpZGF0aW9uQmF0Y2gucGF0aHMuaXRlbXMsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pLFxuICApO1xufVxuIl19
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as lambda from 'aws-cdk-lib/aws-lambda';
|
|
2
|
+
import { Construct } from 'constructs';
|
|
3
|
+
/**
|
|
4
|
+
* Props for PostDeployFunction
|
|
5
|
+
*/
|
|
6
|
+
export interface PostDeployFunctionProps extends lambda.FunctionOptions {
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* An AWS Lambda function which executes src/lambdas/post-deploy/post-deploy.
|
|
10
|
+
*/
|
|
11
|
+
export declare class PostDeployFunction extends lambda.Function {
|
|
12
|
+
constructor(scope: Construct, id: string, props?: PostDeployFunctionProps);
|
|
13
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PostDeployFunction = 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/post-deploy/post-deploy.
|
|
9
|
+
*/
|
|
10
|
+
class PostDeployFunction extends lambda.Function {
|
|
11
|
+
constructor(scope, id, props) {
|
|
12
|
+
super(scope, id, {
|
|
13
|
+
description: 'src/lambdas/post-deploy/post-deploy.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/post-deploy/post-deploy.lambda')),
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.PostDeployFunction = PostDeployFunction;
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zdC1kZXBsb3ktZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGFtYmRhcy9wb3N0LWRlcGxveS9wb3N0LWRlcGxveS1mdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrRkFBa0Y7QUFDbEYsNkJBQTZCO0FBQzdCLGlEQUFpRDtBQVNqRDs7R0FFRztBQUNILE1BQWEsa0JBQW1CLFNBQVEsTUFBTSxDQUFDLFFBQVE7SUFDckQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUErQjtRQUN2RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLFdBQVcsRUFBRSwrQ0FBK0M7WUFDNUQsR0FBRyxLQUFLO1lBQ1IsT0FBTyxFQUFFLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7WUFDdEUsT0FBTyxFQUFFLGVBQWU7WUFDeEIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLHdEQUF3RCxDQUFDLENBQUM7U0FDNUcsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBVkQsZ0RBVUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB+fiBHZW5lcmF0ZWQgYnkgcHJvamVuLiBUbyBtb2RpZnksIGVkaXQgLnByb2plbnJjLnRzIGFuZCBydW4gXCJwbnBtIGRseCBwcm9qZW5cIi5cbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuLyoqXG4gKiBQcm9wcyBmb3IgUG9zdERlcGxveUZ1bmN0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9zdERlcGxveUZ1bmN0aW9uUHJvcHMgZXh0ZW5kcyBsYW1iZGEuRnVuY3Rpb25PcHRpb25zIHtcbn1cblxuLyoqXG4gKiBBbiBBV1MgTGFtYmRhIGZ1bmN0aW9uIHdoaWNoIGV4ZWN1dGVzIHNyYy9sYW1iZGFzL3Bvc3QtZGVwbG95L3Bvc3QtZGVwbG95LlxuICovXG5leHBvcnQgY2xhc3MgUG9zdERlcGxveUZ1bmN0aW9uIGV4dGVuZHMgbGFtYmRhLkZ1bmN0aW9uIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBQb3N0RGVwbG95RnVuY3Rpb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgZGVzY3JpcHRpb246ICdzcmMvbGFtYmRhcy9wb3N0LWRlcGxveS9wb3N0LWRlcGxveS5sYW1iZGEudHMnLFxuICAgICAgLi4ucHJvcHMsXG4gICAgICBydW50aW1lOiBuZXcgbGFtYmRhLlJ1bnRpbWUoJ25vZGVqczIyLngnLCBsYW1iZGEuUnVudGltZUZhbWlseS5OT0RFSlMpLFxuICAgICAgaGFuZGxlcjogJ2luZGV4LmhhbmRsZXInLFxuICAgICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KHBhdGguam9pbihfX2Rpcm5hbWUsICcuLi8uLi8uLi9hc3NldHMvbGFtYmRhcy9wb3N0LWRlcGxveS9wb3N0LWRlcGxveS5sYW1iZGEnKSksXG4gICAgfSk7XG4gIH1cbn0iXX0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { CloudFormationCustomResourceHandler } from "aws-lambda";
|
|
2
|
+
/**
|
|
3
|
+
* Performs:
|
|
4
|
+
* 1. CloudFront Invalidation
|
|
5
|
+
* 2. Prune EFS old BUILD_ID directories
|
|
6
|
+
* 3. Prunes objects in S3 that do not have metadata with current BUILD_ID and
|
|
7
|
+
* were modified over `msTtl` ago (default 30 days).
|
|
8
|
+
*/
|
|
9
|
+
export declare const handler: CloudFormationCustomResourceHandler;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handler = void 0;
|
|
4
|
+
const create_invalidation_1 = require("./create-invalidation");
|
|
5
|
+
const prune_fs_1 = require("./prune-fs");
|
|
6
|
+
const prune_s3_1 = require("./prune-s3");
|
|
7
|
+
const constants_1 = require("../../constants");
|
|
8
|
+
const utils_1 = require("../utils");
|
|
9
|
+
/**
|
|
10
|
+
* Performs:
|
|
11
|
+
* 1. CloudFront Invalidation
|
|
12
|
+
* 2. Prune EFS old BUILD_ID directories
|
|
13
|
+
* 3. Prunes objects in S3 that do not have metadata with current BUILD_ID and
|
|
14
|
+
* were modified over `msTtl` ago (default 30 days).
|
|
15
|
+
*/
|
|
16
|
+
const handler = async (event, context) => {
|
|
17
|
+
(0, utils_1.debug)({ event });
|
|
18
|
+
let responseStatus = utils_1.CfnResponseStatus.Failed;
|
|
19
|
+
try {
|
|
20
|
+
const props = event.ResourceProperties;
|
|
21
|
+
if (event.RequestType === "Create" || event.RequestType === "Update") {
|
|
22
|
+
const { buildId, createInvalidationCommandInput, msTtl, staticAssetsBucketName, } = props;
|
|
23
|
+
const promises = [];
|
|
24
|
+
if (createInvalidationCommandInput) {
|
|
25
|
+
promises.push((0, create_invalidation_1.createInvalidation)(createInvalidationCommandInput));
|
|
26
|
+
}
|
|
27
|
+
(0, prune_fs_1.pruneFs)({ currentBuildId: buildId, mountPath: constants_1.MOUNT_PATH });
|
|
28
|
+
if (staticAssetsBucketName) {
|
|
29
|
+
// will not run for regional
|
|
30
|
+
promises.push((0, prune_s3_1.pruneS3)({
|
|
31
|
+
bucketName: staticAssetsBucketName,
|
|
32
|
+
currentBuildId: buildId,
|
|
33
|
+
msTtl: parseInt(msTtl),
|
|
34
|
+
}));
|
|
35
|
+
}
|
|
36
|
+
await Promise.all(promises);
|
|
37
|
+
responseStatus = utils_1.CfnResponseStatus.Success;
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
responseStatus = utils_1.CfnResponseStatus.Success;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
catch (err) {
|
|
44
|
+
console.error(err);
|
|
45
|
+
}
|
|
46
|
+
finally {
|
|
47
|
+
await (0, utils_1.cfnResponse)({
|
|
48
|
+
event,
|
|
49
|
+
context,
|
|
50
|
+
responseStatus,
|
|
51
|
+
responseData: {},
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
exports.handler = handler;
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zdC1kZXBsb3kubGFtYmRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xhbWJkYXMvcG9zdC1kZXBsb3kvcG9zdC1kZXBsb3kubGFtYmRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLCtEQUEyRDtBQUMzRCx5Q0FBcUM7QUFDckMseUNBQXFDO0FBQ3JDLCtDQUE2QztBQUU3QyxvQ0FBaUU7QUFNakU7Ozs7OztHQU1HO0FBQ0ksTUFBTSxPQUFPLEdBQXdDLEtBQUssRUFDL0QsS0FBSyxFQUNMLE9BQU8sRUFDUCxFQUFFO0lBQ0YsSUFBQSxhQUFLLEVBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2pCLElBQUksY0FBYyxHQUFHLHlCQUFpQixDQUFDLE1BQU0sQ0FBQztJQUM5QyxJQUFJLENBQUM7UUFDSCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsa0JBQW1DLENBQUM7UUFDeEQsSUFBSSxLQUFLLENBQUMsV0FBVyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsV0FBVyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3JFLE1BQU0sRUFDSixPQUFPLEVBQ1AsOEJBQThCLEVBQzlCLEtBQUssRUFDTCxzQkFBc0IsR0FDdkIsR0FBRyxLQUFLLENBQUM7WUFDVixNQUFNLFFBQVEsR0FBdUIsRUFBRSxDQUFDO1lBQ3hDLElBQUksOEJBQThCLEVBQUUsQ0FBQztnQkFDbkMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFBLHdDQUFrQixFQUFDLDhCQUE4QixDQUFDLENBQUMsQ0FBQztZQUNwRSxDQUFDO1lBQ0QsSUFBQSxrQkFBTyxFQUFDLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsc0JBQVUsRUFBRSxDQUFDLENBQUM7WUFDNUQsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO2dCQUMzQiw0QkFBNEI7Z0JBQzVCLFFBQVEsQ0FBQyxJQUFJLENBQ1gsSUFBQSxrQkFBTyxFQUFDO29CQUNOLFVBQVUsRUFBRSxzQkFBc0I7b0JBQ2xDLGNBQWMsRUFBRSxPQUFPO29CQUN2QixLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQztpQkFDdkIsQ0FBQyxDQUNILENBQUM7WUFDSixDQUFDO1lBQ0QsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzVCLGNBQWMsR0FBRyx5QkFBaUIsQ0FBQyxPQUFPLENBQUM7UUFDN0MsQ0FBQzthQUFNLENBQUM7WUFDTixjQUFjLEdBQUcseUJBQWlCLENBQUMsT0FBTyxDQUFDO1FBQzdDLENBQUM7SUFDSCxDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckIsQ0FBQztZQUFTLENBQUM7UUFDVCxNQUFNLElBQUEsbUJBQVcsRUFBQztZQUNoQixLQUFLO1lBQ0wsT0FBTztZQUNQLGNBQWM7WUFDZCxZQUFZLEVBQUUsRUFBRTtTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBN0NXLFFBQUEsT0FBTyxXQTZDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VIYW5kbGVyIH0gZnJvbSBcImF3cy1sYW1iZGFcIjtcbmltcG9ydCB7IGNyZWF0ZUludmFsaWRhdGlvbiB9IGZyb20gXCIuL2NyZWF0ZS1pbnZhbGlkYXRpb25cIjtcbmltcG9ydCB7IHBydW5lRnMgfSBmcm9tIFwiLi9wcnVuZS1mc1wiO1xuaW1wb3J0IHsgcHJ1bmVTMyB9IGZyb20gXCIuL3BydW5lLXMzXCI7XG5pbXBvcnQgeyBNT1VOVF9QQVRIIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgUG9zdERlcGxveUN1c3RvbVJlc291cmNlUHJvcGVydGllcyB9IGZyb20gXCIuLi8uLi9uZXh0anMtcG9zdC1kZXBsb3lcIjtcbmltcG9ydCB7IGNmblJlc3BvbnNlLCBDZm5SZXNwb25zZVN0YXR1cywgZGVidWcgfSBmcm9tIFwiLi4vdXRpbHNcIjtcblxudHlwZSBSZXNvdXJjZVByb3BzID0gUG9zdERlcGxveUN1c3RvbVJlc291cmNlUHJvcGVydGllcyAmIHtcbiAgU2VydmljZVRva2VuOiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIFBlcmZvcm1zOlxuICogMS4gQ2xvdWRGcm9udCBJbnZhbGlkYXRpb25cbiAqIDIuIFBydW5lIEVGUyBvbGQgQlVJTERfSUQgZGlyZWN0b3JpZXNcbiAqIDMuIFBydW5lcyBvYmplY3RzIGluIFMzIHRoYXQgZG8gbm90IGhhdmUgbWV0YWRhdGEgd2l0aCBjdXJyZW50IEJVSUxEX0lEIGFuZFxuICogd2VyZSBtb2RpZmllZCBvdmVyIGBtc1R0bGAgYWdvIChkZWZhdWx0IDMwIGRheXMpLlxuICovXG5leHBvcnQgY29uc3QgaGFuZGxlcjogQ2xvdWRGb3JtYXRpb25DdXN0b21SZXNvdXJjZUhhbmRsZXIgPSBhc3luYyAoXG4gIGV2ZW50LFxuICBjb250ZXh0LFxuKSA9PiB7XG4gIGRlYnVnKHsgZXZlbnQgfSk7XG4gIGxldCByZXNwb25zZVN0YXR1cyA9IENmblJlc3BvbnNlU3RhdHVzLkZhaWxlZDtcbiAgdHJ5IHtcbiAgICBjb25zdCBwcm9wcyA9IGV2ZW50LlJlc291cmNlUHJvcGVydGllcyBhcyBSZXNvdXJjZVByb3BzO1xuICAgIGlmIChldmVudC5SZXF1ZXN0VHlwZSA9PT0gXCJDcmVhdGVcIiB8fCBldmVudC5SZXF1ZXN0VHlwZSA9PT0gXCJVcGRhdGVcIikge1xuICAgICAgY29uc3Qge1xuICAgICAgICBidWlsZElkLFxuICAgICAgICBjcmVhdGVJbnZhbGlkYXRpb25Db21tYW5kSW5wdXQsXG4gICAgICAgIG1zVHRsLFxuICAgICAgICBzdGF0aWNBc3NldHNCdWNrZXROYW1lLFxuICAgICAgfSA9IHByb3BzO1xuICAgICAgY29uc3QgcHJvbWlzZXM6IFByb21pc2U8dW5rbm93bj5bXSA9IFtdO1xuICAgICAgaWYgKGNyZWF0ZUludmFsaWRhdGlvbkNvbW1hbmRJbnB1dCkge1xuICAgICAgICBwcm9taXNlcy5wdXNoKGNyZWF0ZUludmFsaWRhdGlvbihjcmVhdGVJbnZhbGlkYXRpb25Db21tYW5kSW5wdXQpKTtcbiAgICAgIH1cbiAgICAgIHBydW5lRnMoeyBjdXJyZW50QnVpbGRJZDogYnVpbGRJZCwgbW91bnRQYXRoOiBNT1VOVF9QQVRIIH0pO1xuICAgICAgaWYgKHN0YXRpY0Fzc2V0c0J1Y2tldE5hbWUpIHtcbiAgICAgICAgLy8gd2lsbCBub3QgcnVuIGZvciByZWdpb25hbFxuICAgICAgICBwcm9taXNlcy5wdXNoKFxuICAgICAgICAgIHBydW5lUzMoe1xuICAgICAgICAgICAgYnVja2V0TmFtZTogc3RhdGljQXNzZXRzQnVja2V0TmFtZSxcbiAgICAgICAgICAgIGN1cnJlbnRCdWlsZElkOiBidWlsZElkLFxuICAgICAgICAgICAgbXNUdGw6IHBhcnNlSW50KG1zVHRsKSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTtcbiAgICAgIHJlc3BvbnNlU3RhdHVzID0gQ2ZuUmVzcG9uc2VTdGF0dXMuU3VjY2VzcztcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzcG9uc2VTdGF0dXMgPSBDZm5SZXNwb25zZVN0YXR1cy5TdWNjZXNzO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY29uc29sZS5lcnJvcihlcnIpO1xuICB9IGZpbmFsbHkge1xuICAgIGF3YWl0IGNmblJlc3BvbnNlKHtcbiAgICAgIGV2ZW50LFxuICAgICAgY29udGV4dCxcbiAgICAgIHJlc3BvbnNlU3RhdHVzLFxuICAgICAgcmVzcG9uc2VEYXRhOiB7fSxcbiAgICB9KTtcbiAgfVxufTtcbiJdfQ==
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface PruneFsProps {
|
|
2
|
+
mountPath: string;
|
|
3
|
+
currentBuildId: string;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Given `mountPath` and `currentBuildId`, delete all directories at `mountPath`
|
|
7
|
+
* that are not named `currentBuildId`
|
|
8
|
+
*/
|
|
9
|
+
export declare function pruneFs(props: PruneFsProps): void;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.pruneFs = pruneFs;
|
|
4
|
+
const node_fs_1 = require("node:fs");
|
|
5
|
+
const node_path_1 = require("node:path");
|
|
6
|
+
const utils_1 = require("../utils");
|
|
7
|
+
/**
|
|
8
|
+
* Given `mountPath` and `currentBuildId`, delete all directories at `mountPath`
|
|
9
|
+
* that are not named `currentBuildId`
|
|
10
|
+
*/
|
|
11
|
+
function pruneFs(props) {
|
|
12
|
+
const { mountPath, currentBuildId } = props;
|
|
13
|
+
// Ensure the mount path exists
|
|
14
|
+
if (!(0, node_fs_1.existsSync)(mountPath)) {
|
|
15
|
+
(0, utils_1.debug)(`Mount path ${mountPath} does not exist, nothing to prune`);
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
// Read all entries in the directory
|
|
19
|
+
const entries = (0, node_fs_1.readdirSync)(mountPath);
|
|
20
|
+
// Filter for directories only and exclude the current build ID
|
|
21
|
+
const directoriesToDelete = entries.filter((entry) => {
|
|
22
|
+
const entryPath = (0, node_path_1.join)(mountPath, entry);
|
|
23
|
+
return (0, node_fs_1.statSync)(entryPath).isDirectory() && entry !== currentBuildId;
|
|
24
|
+
});
|
|
25
|
+
// Delete each directory
|
|
26
|
+
for (const dir of directoriesToDelete) {
|
|
27
|
+
const dirPath = (0, node_path_1.join)(mountPath, dir);
|
|
28
|
+
(0, utils_1.debug)(`Pruning directory: ${dirPath}`);
|
|
29
|
+
(0, node_fs_1.rmSync)(dirPath, { recursive: true, force: true });
|
|
30
|
+
}
|
|
31
|
+
(0, utils_1.debug)(`Pruned ${directoriesToDelete.length} directories, kept ${currentBuildId}`);
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJ1bmUtZnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGFtYmRhcy9wb3N0LWRlcGxveS9wcnVuZS1mcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWFBLDBCQTRCQztBQXpDRCxxQ0FBb0U7QUFDcEUseUNBQWlDO0FBQ2pDLG9DQUFpQztBQU9qQzs7O0dBR0c7QUFDSCxTQUFnQixPQUFPLENBQUMsS0FBbUI7SUFDekMsTUFBTSxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFFNUMsK0JBQStCO0lBQy9CLElBQUksQ0FBQyxJQUFBLG9CQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUMzQixJQUFBLGFBQUssRUFBQyxjQUFjLFNBQVMsbUNBQW1DLENBQUMsQ0FBQztRQUNsRSxPQUFPO0lBQ1QsQ0FBQztJQUVELG9DQUFvQztJQUNwQyxNQUFNLE9BQU8sR0FBRyxJQUFBLHFCQUFXLEVBQUMsU0FBUyxDQUFDLENBQUM7SUFFdkMsK0RBQStEO0lBQy9ELE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ25ELE1BQU0sU0FBUyxHQUFHLElBQUEsZ0JBQUksRUFBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDekMsT0FBTyxJQUFBLGtCQUFRLEVBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFLElBQUksS0FBSyxLQUFLLGNBQWMsQ0FBQztJQUN2RSxDQUFDLENBQUMsQ0FBQztJQUVILHdCQUF3QjtJQUN4QixLQUFLLE1BQU0sR0FBRyxJQUFJLG1CQUFtQixFQUFFLENBQUM7UUFDdEMsTUFBTSxPQUFPLEdBQUcsSUFBQSxnQkFBSSxFQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNyQyxJQUFBLGFBQUssRUFBQyxzQkFBc0IsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN2QyxJQUFBLGdCQUFNLEVBQUMsT0FBTyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBQSxhQUFLLEVBQ0gsVUFBVSxtQkFBbUIsQ0FBQyxNQUFNLHNCQUFzQixjQUFjLEVBQUUsQ0FDM0UsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGlzdHNTeW5jLCByZWFkZGlyU3luYywgc3RhdFN5bmMsIHJtU3luYyB9IGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgZGVidWcgfSBmcm9tIFwiLi4vdXRpbHNcIjtcblxuaW50ZXJmYWNlIFBydW5lRnNQcm9wcyB7XG4gIG1vdW50UGF0aDogc3RyaW5nO1xuICBjdXJyZW50QnVpbGRJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEdpdmVuIGBtb3VudFBhdGhgIGFuZCBgY3VycmVudEJ1aWxkSWRgLCBkZWxldGUgYWxsIGRpcmVjdG9yaWVzIGF0IGBtb3VudFBhdGhgXG4gKiB0aGF0IGFyZSBub3QgbmFtZWQgYGN1cnJlbnRCdWlsZElkYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJ1bmVGcyhwcm9wczogUHJ1bmVGc1Byb3BzKSB7XG4gIGNvbnN0IHsgbW91bnRQYXRoLCBjdXJyZW50QnVpbGRJZCB9ID0gcHJvcHM7XG5cbiAgLy8gRW5zdXJlIHRoZSBtb3VudCBwYXRoIGV4aXN0c1xuICBpZiAoIWV4aXN0c1N5bmMobW91bnRQYXRoKSkge1xuICAgIGRlYnVnKGBNb3VudCBwYXRoICR7bW91bnRQYXRofSBkb2VzIG5vdCBleGlzdCwgbm90aGluZyB0byBwcnVuZWApO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIFJlYWQgYWxsIGVudHJpZXMgaW4gdGhlIGRpcmVjdG9yeVxuICBjb25zdCBlbnRyaWVzID0gcmVhZGRpclN5bmMobW91bnRQYXRoKTtcblxuICAvLyBGaWx0ZXIgZm9yIGRpcmVjdG9yaWVzIG9ubHkgYW5kIGV4Y2x1ZGUgdGhlIGN1cnJlbnQgYnVpbGQgSURcbiAgY29uc3QgZGlyZWN0b3JpZXNUb0RlbGV0ZSA9IGVudHJpZXMuZmlsdGVyKChlbnRyeSkgPT4ge1xuICAgIGNvbnN0IGVudHJ5UGF0aCA9IGpvaW4obW91bnRQYXRoLCBlbnRyeSk7XG4gICAgcmV0dXJuIHN0YXRTeW5jKGVudHJ5UGF0aCkuaXNEaXJlY3RvcnkoKSAmJiBlbnRyeSAhPT0gY3VycmVudEJ1aWxkSWQ7XG4gIH0pO1xuXG4gIC8vIERlbGV0ZSBlYWNoIGRpcmVjdG9yeVxuICBmb3IgKGNvbnN0IGRpciBvZiBkaXJlY3Rvcmllc1RvRGVsZXRlKSB7XG4gICAgY29uc3QgZGlyUGF0aCA9IGpvaW4obW91bnRQYXRoLCBkaXIpO1xuICAgIGRlYnVnKGBQcnVuaW5nIGRpcmVjdG9yeTogJHtkaXJQYXRofWApO1xuICAgIHJtU3luYyhkaXJQYXRoLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gIH1cblxuICBkZWJ1ZyhcbiAgICBgUHJ1bmVkICR7ZGlyZWN0b3JpZXNUb0RlbGV0ZS5sZW5ndGh9IGRpcmVjdG9yaWVzLCBrZXB0ICR7Y3VycmVudEJ1aWxkSWR9YCxcbiAgKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
interface PruneS3Props {
|
|
2
|
+
bucketName: string;
|
|
3
|
+
currentBuildId: string;
|
|
4
|
+
/**
|
|
5
|
+
* Time to live in milliseconds.
|
|
6
|
+
*/
|
|
7
|
+
msTtl: number;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Given `bucketName`, `currentBuildId`, and `msTtl`, list all objects
|
|
11
|
+
* in the bucket and delete any that 1/ do not have a metadata key of "next-build-id"
|
|
12
|
+
* and value of `currentBuildId` and 2/ were created more than `msTtl` ago
|
|
13
|
+
*/
|
|
14
|
+
export declare function pruneS3(props: PruneS3Props): Promise<void>;
|
|
15
|
+
export {};
|