cdk-nextjs 0.3.11 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/.jsii +1248 -748
  2. package/API.md +1033 -531
  3. package/README.md +1 -2
  4. package/assets/lambdas/assets-deployment/assets-deployment.lambda/assets-deployment.Dockerfile +12 -8
  5. package/assets/lambdas/assets-deployment/assets-deployment.lambda/index.js +67 -56
  6. package/assets/lambdas/post-deploy/post-deploy.lambda/index.js +246 -0
  7. package/docs/breaking-changes.md +9 -0
  8. package/docs/notes.md +170 -20
  9. package/lib/constants.d.ts +32 -0
  10. package/lib/constants.js +38 -0
  11. package/lib/generated-structs/OptionalCustomResourceProps.d.ts +104 -0
  12. package/lib/generated-structs/OptionalCustomResourceProps.js +3 -0
  13. package/lib/generated-structs/OptionalDockerImageAssetProps.d.ts +21 -0
  14. package/lib/generated-structs/OptionalDockerImageAssetProps.js +1 -1
  15. package/lib/generated-structs/OptionalNextjsAssetsDeploymentProps.d.ts +4 -3
  16. package/lib/generated-structs/OptionalNextjsAssetsDeploymentProps.js +1 -1
  17. package/lib/generated-structs/OptionalNextjsBuildProps.d.ts +1 -1
  18. package/lib/generated-structs/OptionalNextjsBuildProps.js +1 -1
  19. package/lib/generated-structs/OptionalNextjsContainersProps.d.ts +3 -3
  20. package/lib/generated-structs/OptionalNextjsContainersProps.js +1 -1
  21. package/lib/generated-structs/OptionalNextjsPostDeployProps.d.ts +42 -0
  22. package/lib/generated-structs/OptionalNextjsPostDeployProps.js +3 -0
  23. package/lib/generated-structs/OptionalPostDeployCustomResourceProperties.d.ts +41 -0
  24. package/lib/generated-structs/OptionalPostDeployCustomResourceProperties.js +4 -0
  25. package/lib/index.d.ts +6 -5
  26. package/lib/index.js +6 -8
  27. package/lib/lambdas/assets-deployment/assets-deployment.lambda.js +5 -23
  28. package/lib/lambdas/assets-deployment/fs-to-fs.js +18 -3
  29. package/lib/lambdas/assets-deployment/fs-to-s3.d.ts +8 -2
  30. package/lib/lambdas/assets-deployment/fs-to-s3.js +14 -8
  31. package/lib/lambdas/post-deploy/create-invalidation.d.ts +2 -0
  32. package/lib/lambdas/post-deploy/create-invalidation.js +19 -0
  33. package/lib/lambdas/post-deploy/post-deploy-function.d.ts +13 -0
  34. package/lib/lambdas/post-deploy/post-deploy-function.js +22 -0
  35. package/lib/lambdas/post-deploy/post-deploy.lambda.d.ts +9 -0
  36. package/lib/lambdas/post-deploy/post-deploy.lambda.js +56 -0
  37. package/lib/lambdas/post-deploy/prune-fs.d.ts +10 -0
  38. package/lib/lambdas/post-deploy/prune-fs.js +33 -0
  39. package/lib/lambdas/post-deploy/prune-s3.d.ts +15 -0
  40. package/lib/lambdas/post-deploy/prune-s3.js +101 -0
  41. package/lib/lambdas/utils.js +35 -0
  42. package/lib/nextjs-assets-deployment.d.ts +15 -51
  43. package/lib/nextjs-assets-deployment.js +27 -25
  44. package/lib/nextjs-build/builder.Dockerfile +12 -8
  45. package/lib/nextjs-build/cdk-nextjs-cache-handler.cjs +63 -0
  46. package/lib/nextjs-build/cdk-nextjs-cache-handler.d.ts +21 -0
  47. package/lib/nextjs-build/cdk-nextjs-cache-handler.js +49 -0
  48. package/lib/nextjs-build/global-containers.Dockerfile +29 -19
  49. package/lib/nextjs-build/global-functions.Dockerfile +30 -24
  50. package/lib/nextjs-build/nextjs-build.d.ts +51 -26
  51. package/lib/nextjs-build/nextjs-build.js +108 -88
  52. package/lib/nextjs-build/regional-containers.Dockerfile +30 -20
  53. package/lib/nextjs-compute/nextjs-compute-base-props.d.ts +0 -1
  54. package/lib/nextjs-compute/nextjs-compute-base-props.js +1 -1
  55. package/lib/nextjs-compute/nextjs-containers.d.ts +2 -1
  56. package/lib/nextjs-compute/nextjs-containers.js +7 -5
  57. package/lib/nextjs-compute/nextjs-functions.d.ts +1 -0
  58. package/lib/nextjs-compute/nextjs-functions.js +8 -11
  59. package/lib/nextjs-distribution.d.ts +1 -1
  60. package/lib/nextjs-distribution.js +4 -4
  61. package/lib/nextjs-file-system.js +1 -1
  62. package/lib/nextjs-post-deploy.d.ts +101 -0
  63. package/lib/nextjs-post-deploy.js +78 -0
  64. package/lib/nextjs-static-assets.js +1 -1
  65. package/lib/nextjs-vpc.d.ts +1 -1
  66. package/lib/nextjs-vpc.js +4 -4
  67. package/lib/root-constructs/nextjs-base-overrides.d.ts +4 -0
  68. package/lib/root-constructs/nextjs-base-overrides.js +1 -1
  69. package/lib/root-constructs/nextjs-base-props.d.ts +15 -7
  70. package/lib/root-constructs/nextjs-base-props.js +1 -1
  71. package/lib/root-constructs/nextjs-global-containers.d.ts +8 -8
  72. package/lib/root-constructs/nextjs-global-containers.js +25 -15
  73. package/lib/root-constructs/nextjs-global-functions.d.ts +8 -11
  74. package/lib/root-constructs/nextjs-global-functions.js +25 -25
  75. package/lib/root-constructs/nextjs-regional-containers.d.ts +8 -0
  76. package/lib/root-constructs/nextjs-regional-containers.js +26 -9
  77. package/lib/utils/get-architecture.d.ts +2 -0
  78. package/lib/utils/get-architecture.js +8 -0
  79. package/lib/utils/handle-deprecated-properties.d.ts +7 -0
  80. package/lib/utils/handle-deprecated-properties.js +14 -0
  81. package/package.json +17 -19
  82. package/assets/lambdas/revalidate/revalidate.lambda/index.js +0 -67
  83. package/lib/common.d.ts +0 -25
  84. package/lib/common.js +0 -30
  85. package/lib/generated-structs/OptionalNextjsInvalidationProps.d.ts +0 -11
  86. package/lib/generated-structs/OptionalNextjsInvalidationProps.js +0 -3
  87. package/lib/lambdas/assets-deployment/prune-s3.d.ts +0 -15
  88. package/lib/lambdas/assets-deployment/prune-s3.js +0 -42
  89. package/lib/lambdas/assets-deployment/s3.d.ts +0 -2
  90. package/lib/lambdas/assets-deployment/s3.js +0 -7
  91. package/lib/lambdas/assets-deployment/utils.js +0 -35
  92. package/lib/lambdas/revalidate/revalidate-function.d.ts +0 -13
  93. package/lib/lambdas/revalidate/revalidate-function.js +0 -22
  94. package/lib/lambdas/revalidate/revalidate.lambda.d.ts +0 -2
  95. package/lib/lambdas/revalidate/revalidate.lambda.js +0 -53
  96. package/lib/nextjs-build/add-cache-handler.d.ts +0 -1
  97. package/lib/nextjs-build/add-cache-handler.js +0 -23
  98. package/lib/nextjs-build/add-cache-handler.mjs +0 -18
  99. package/lib/nextjs-build/cache-handler.cjs +0 -21878
  100. package/lib/nextjs-build/cache-handler.d.ts +0 -6
  101. package/lib/nextjs-build/cache-handler.js +0 -26
  102. package/lib/nextjs-invalidation.d.ts +0 -19
  103. package/lib/nextjs-invalidation.js +0 -52
  104. package/lib/nextjs-revalidation.d.ts +0 -30
  105. package/lib/nextjs-revalidation.js +0 -65
  106. /package/lib/lambdas/{assets-deployment/utils.d.ts → utils.d.ts} +0 -0
@@ -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 "./common";
2
- export { CustomResourceProperties, NextjsAssetsDeployment, NextjsAssetDeploymentOverrides, NextjsAssetsDeploymentProps, } from "./nextjs-assets-deployment";
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 { NextjsInvalidation, NextjsInvalidationOverrides, NextjsInvalidationProps, } from "./nextjs-invalidation";
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.NextjsRevalidation = exports.NextjsInvalidation = exports.NextjsRegionalContainers = exports.NextjsGlobalFunctions = exports.NextjsGlobalContainers = exports.NextjsFileSystem = exports.NextjsFunctions = exports.NextjsDistribution = exports.NextjsContainers = exports.NextjsBuild = exports.NextjsAssetsDeployment = exports.NextjsType = void 0;
4
- var common_1 = require("./common");
5
- Object.defineProperty(exports, "NextjsType", { enumerable: true, get: function () { return common_1.NextjsType; } });
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 nextjs_invalidation_1 = require("./nextjs-invalidation");
25
- Object.defineProperty(exports, "NextjsInvalidation", { enumerable: true, get: function () { return nextjs_invalidation_1.NextjsInvalidation; } });
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQXNDO0FBQTdCLG9HQUFBLFVBQVUsT0FBQTtBQUNuQix1RUFLb0M7QUFIbEMsa0lBQUEsc0JBQXNCLE9BQUE7QUFJeEIsNERBTXFDO0FBTG5DLDJHQUFBLFdBQVcsT0FBQTtBQU9iLHdFQUk0QztBQUgxQyxxSEFBQSxnQkFBZ0IsT0FBQTtBQUlsQiw2REFJK0I7QUFIN0IseUhBQUEsa0JBQWtCLE9BQUE7QUFJcEIsc0VBSTJDO0FBSHpDLG1IQUFBLGVBQWUsT0FBQTtBQUlqQiwyREFLOEI7QUFKNUIsc0hBQUEsZ0JBQWdCLE9BQUE7QUFVbEIsdUZBS29EO0FBSmxELGtJQUFBLHNCQUFzQixPQUFBO0FBS3hCLHFGQUttRDtBQUpqRCxnSUFBQSxxQkFBcUIsT0FBQTtBQUt2QiwyRkFLc0Q7QUFKcEQsc0lBQUEsd0JBQXdCLE9BQUE7QUFLMUIsNkRBSStCO0FBSDdCLHlIQUFBLGtCQUFrQixPQUFBO0FBSXBCLDZEQUkrQjtBQUg3Qix5SEFBQSxrQkFBa0IsT0FBQTtBQUlwQiwrREFJZ0M7QUFIOUIsMEhBQUEsa0JBQWtCLE9BQUE7QUFJcEIsMkNBQTZFO0FBQXBFLHVHQUFBLFNBQVMsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IE5leHRqc1R5cGUgfSBmcm9tIFwiLi9jb21tb25cIjtcbmV4cG9ydCB7XG4gIEN1c3RvbVJlc291cmNlUHJvcGVydGllcyxcbiAgTmV4dGpzQXNzZXRzRGVwbG95bWVudCxcbiAgTmV4dGpzQXNzZXREZXBsb3ltZW50T3ZlcnJpZGVzLFxuICBOZXh0anNBc3NldHNEZXBsb3ltZW50UHJvcHMsXG59IGZyb20gXCIuL25leHRqcy1hc3NldHMtZGVwbG95bWVudFwiO1xuZXhwb3J0IHtcbiAgTmV4dGpzQnVpbGQsXG4gIE5leHRqc0J1aWxkUHJvcHMsXG4gIE5leHRqc0J1aWxkT3ZlcnJpZGVzLFxuICBCdWlsZGVySW1hZ2VQcm9wcyxcbiAgUHVibGljRGlyRW50cnksXG59IGZyb20gXCIuL25leHRqcy1idWlsZC9uZXh0anMtYnVpbGRcIjtcbmV4cG9ydCB7IE5leHRqc0NvbXB1dGVCYXNlUHJvcHMgfSBmcm9tIFwiLi9uZXh0anMtY29tcHV0ZS9uZXh0anMtY29tcHV0ZS1iYXNlLXByb3BzXCI7XG5leHBvcnQge1xuICBOZXh0anNDb250YWluZXJzLFxuICBOZXh0anNDb250YWluZXJzT3ZlcnJpZGVzLFxuICBOZXh0anNDb250YWluZXJzUHJvcHMsXG59IGZyb20gXCIuL25leHRqcy1jb21wdXRlL25leHRqcy1jb250YWluZXJzXCI7XG5leHBvcnQge1xuICBOZXh0anNEaXN0cmlidXRpb24sXG4gIE5leHRqc0Rpc3RyaWJ1dGlvbk92ZXJyaWRlcyxcbiAgTmV4dGpzRGlzdHJpYnV0aW9uUHJvcHMsXG59IGZyb20gXCIuL25leHRqcy1kaXN0cmlidXRpb25cIjtcbmV4cG9ydCB7XG4gIE5leHRqc0Z1bmN0aW9ucyxcbiAgTmV4dGpzRnVuY3Rpb25zT3ZlcnJpZGVzLFxuICBOZXh0anNGdW5jdGlvbnNQcm9wcyxcbn0gZnJvbSBcIi4vbmV4dGpzLWNvbXB1dGUvbmV4dGpzLWZ1bmN0aW9uc1wiO1xuZXhwb3J0IHtcbiAgTmV4dGpzRmlsZVN5c3RlbSxcbiAgTmV4dGpzRmlsZVN5c3RlbU92ZXJyaWRlcyxcbiAgTmV4dGpzRmlsZVN5c3RlbVByb3BzLFxuICBBbGxvd0NvbXB1dGVQcm9wcyxcbn0gZnJvbSBcIi4vbmV4dGpzLWZpbGUtc3lzdGVtXCI7XG5leHBvcnQge1xuICBCYXNlTmV4dGpzQ29uc3RydWN0T3ZlcnJpZGVzLFxuICBCYXNlTmV4dGpzT3ZlcnJpZGVzLFxufSBmcm9tIFwiLi9yb290LWNvbnN0cnVjdHMvbmV4dGpzLWJhc2Utb3ZlcnJpZGVzXCI7XG5leHBvcnQgeyBOZXh0anNCYXNlUHJvcHMgfSBmcm9tIFwiLi9yb290LWNvbnN0cnVjdHMvbmV4dGpzLWJhc2UtcHJvcHNcIjtcbmV4cG9ydCB7XG4gIE5leHRqc0dsb2JhbENvbnRhaW5lcnMsXG4gIE5leHRqc0dsb2JhbENvbnRhaW5lcnNDb25zdHJ1Y3RPdmVycmlkZXMsXG4gIE5leHRqc0dsb2JhbENvbnRhaW5lcnNPdmVycmlkZXMsXG4gIE5leHRqc0dsb2JhbENvbnRhaW5lcnNQcm9wcyxcbn0gZnJvbSBcIi4vcm9vdC1jb25zdHJ1Y3RzL25leHRqcy1nbG9iYWwtY29udGFpbmVyc1wiO1xuZXhwb3J0IHtcbiAgTmV4dGpzR2xvYmFsRnVuY3Rpb25zLFxuICBOZXh0anNHbG9iYWxGdW5jdGlvbnNDb25zdHJ1Y3RPdmVycmlkZXMsXG4gIE5leHRqc0dsb2JhbEZ1bmN0aW9uc092ZXJyaWRlcyxcbiAgTmV4dGpzR2xvYmFsRnVuY3Rpb25zUHJvcHMsXG59IGZyb20gXCIuL3Jvb3QtY29uc3RydWN0cy9uZXh0anMtZ2xvYmFsLWZ1bmN0aW9uc1wiO1xuZXhwb3J0IHtcbiAgTmV4dGpzUmVnaW9uYWxDb250YWluZXJzLFxuICBOZXh0anNSZWdpb25hbENvbnRhaW5lcnNDb25zdHJ1Y3RPdmVycmlkZXMsXG4gIE5leHRqc1JlZ2lvbmFsQ29udGFpbmVyc092ZXJyaWRlcyxcbiAgTmV4dGpzUmVnaW9uYWxDb250YWluZXJzUHJvcHMsXG59IGZyb20gXCIuL3Jvb3QtY29uc3RydWN0cy9uZXh0anMtcmVnaW9uYWwtY29udGFpbmVyc1wiO1xuZXhwb3J0IHtcbiAgTmV4dGpzSW52YWxpZGF0aW9uLFxuICBOZXh0anNJbnZhbGlkYXRpb25PdmVycmlkZXMsXG4gIE5leHRqc0ludmFsaWRhdGlvblByb3BzLFxufSBmcm9tIFwiLi9uZXh0anMtaW52YWxpZGF0aW9uXCI7XG5leHBvcnQge1xuICBOZXh0anNSZXZhbGlkYXRpb24sXG4gIE5leHRqc1JldmFsaWRhdGlvblByb3BzLFxuICBOZXh0anNSZXZhbGlkYXRpb25PdmVycmlkZXMsXG59IGZyb20gXCIuL25leHRqcy1yZXZhbGlkYXRpb25cIjtcbmV4cG9ydCB7XG4gIE5leHRqc1N0YXRpY0Fzc2V0cyxcbiAgTmV4dGpzU3RhdGljQXNzZXRzT3ZlcnJpZGVzLFxuICBOZXh0anNTdGF0aWNBc3NldHNQcm9wcyxcbn0gZnJvbSBcIi4vbmV4dGpzLXN0YXRpYy1hc3NldHNcIjtcbmV4cG9ydCB7IE5leHRqc1ZwYywgTmV4dGpzVnBjT3ZlcnJpZGVzLCBOZXh0anNWcGNQcm9wcyB9IGZyb20gXCIuL25leHRqcy12cGNcIjtcbmV4cG9ydCB7IE9wdGlvbmFsTmV4dGpzQXNzZXRzRGVwbG95bWVudFByb3BzIH0gZnJvbSBcIi4vZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxOZXh0anNBc3NldHNEZXBsb3ltZW50UHJvcHNcIjtcbmV4cG9ydCB7IE9wdGlvbmFsTmV4dGpzQnVpbGRQcm9wcyB9IGZyb20gXCIuL2dlbmVyYXRlZC1zdHJ1Y3RzL09wdGlvbmFsTmV4dGpzQnVpbGRQcm9wc1wiO1xuZXhwb3J0IHsgT3B0aW9uYWxOZXh0anNDb250YWluZXJzUHJvcHMgfSBmcm9tIFwiLi9nZW5lcmF0ZWQtc3RydWN0cy9PcHRpb25hbE5leHRqc0NvbnRhaW5lcnNQcm9wc1wiO1xuZXhwb3J0IHsgT3B0aW9uYWxOZXh0anNEaXN0cmlidXRpb25Qcm9wcyB9IGZyb20gXCIuL2dlbmVyYXRlZC1zdHJ1Y3RzL09wdGlvbmFsTmV4dGpzRGlzdHJpYnV0aW9uUHJvcHNcIjtcbmV4cG9ydCB7IE9wdGlvbmFsTmV4dGpzRmlsZVN5c3RlbVByb3BzIH0gZnJvbSBcIi4vZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxOZXh0anNGaWxlU3lzdGVtUHJvcHNcIjtcbmV4cG9ydCB7IE9wdGlvbmFsTmV4dGpzSW52YWxpZGF0aW9uUHJvcHMgfSBmcm9tIFwiLi9nZW5lcmF0ZWQtc3RydWN0cy9PcHRpb25hbE5leHRqc0ludmFsaWRhdGlvblByb3BzXCI7XG5leHBvcnQgeyBPcHRpb25hbE5leHRqc1ZwY1Byb3BzIH0gZnJvbSBcIi4vZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxOZXh0anNWcGNQcm9wc1wiO1xuZXhwb3J0IHsgT3B0aW9uYWxBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZFRhc2tJbWFnZU9wdGlvbnMgfSBmcm9tIFwiLi9nZW5lcmF0ZWQtc3RydWN0cy9PcHRpb25hbEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VkVGFza0ltYWdlT3B0aW9uc1wiO1xuZXhwb3J0IHsgT3B0aW9uYWxDbG91ZEZyb250RnVuY3Rpb25Qcm9wcyB9IGZyb20gXCIuL2dlbmVyYXRlZC1zdHJ1Y3RzL09wdGlvbmFsQ2xvdWRGcm9udEZ1bmN0aW9uUHJvcHNcIjtcbmV4cG9ydCB7IE9wdGlvbmFsQ2x1c3RlclByb3BzIH0gZnJvbSBcIi4vZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxDbHVzdGVyUHJvcHNcIjtcbmV4cG9ydCB7IE9wdGlvbmFsRGlzdHJpYnV0aW9uUHJvcHMgfSBmcm9tIFwiLi9nZW5lcmF0ZWQtc3RydWN0cy9PcHRpb25hbERpc3RyaWJ1dGlvblByb3BzXCI7XG5leHBvcnQgeyBPcHRpb25hbERvY2tlckltYWdlQXNzZXRQcm9wcyB9IGZyb20gXCIuL2dlbmVyYXRlZC1zdHJ1Y3RzL09wdGlvbmFsRG9ja2VySW1hZ2VBc3NldFByb3BzXCI7XG5leHBvcnQgeyBPcHRpb25hbERvY2tlckltYWdlRnVuY3Rpb25Qcm9wcyB9IGZyb20gXCIuL2dlbmVyYXRlZC1zdHJ1Y3RzL09wdGlvbmFsRG9ja2VySW1hZ2VGdW5jdGlvblByb3BzXCI7XG5leHBvcnQgeyBPcHRpb25hbEVkZ2VGdW5jdGlvblByb3BzIH0gZnJvbSBcIi4vZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxFZGdlRnVuY3Rpb25Qcm9wc1wiO1xuZXhwb3J0IHsgT3B0aW9uYWxGdW5jdGlvblByb3BzIH0gZnJvbSBcIi4vZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxGdW5jdGlvblByb3BzXCI7XG5leHBvcnQgeyBPcHRpb25hbEZ1bmN0aW9uVXJsUHJvcHMgfSBmcm9tIFwiLi9nZW5lcmF0ZWQtc3RydWN0cy9PcHRpb25hbEZ1bmN0aW9uVXJsUHJvcHNcIjtcbmV4cG9ydCB7IE9wdGlvbmFsUzNPcmlnaW5CdWNrZXRXaXRoT0FDUHJvcHMgfSBmcm9tIFwiLi9nZW5lcmF0ZWQtc3RydWN0cy9PcHRpb25hbFMzT3JpZ2luQnVja2V0V2l0aE9BQ1Byb3BzXCI7XG5leHBvcnQgeyBPcHRpb25hbFZwY1Byb3BzIH0gZnJvbSBcIi4vZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxWcGNQcm9wc1wiO1xuIl19
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 prune_s3_1 = require("./prune-s3");
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: { previewModeId },
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, node_fs_1.cpSync)(sourcePath, destinationPath, { recursive: true });
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtdG8tZnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGFtYmRhcy9hc3NldHMtZGVwbG95bWVudC9mcy10by1mcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUdBLHdCQUdDO0FBTkQscUNBQWlDO0FBR2pDLFNBQWdCLE1BQU0sQ0FBQyxLQUFtQjtJQUN4QyxNQUFNLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxHQUFHLEtBQUssQ0FBQztJQUM5QyxJQUFBLGdCQUFNLEVBQUMsVUFBVSxFQUFFLGVBQWUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQzNELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcFN5bmMgfSBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0IHsgRnNUb0ZzQWN0aW9uIH0gZnJvbSBcIi4uLy4uL25leHRqcy1hc3NldHMtZGVwbG95bWVudFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gZnNUb0ZzKHByb3BzOiBGc1RvRnNBY3Rpb24pIHtcbiAgY29uc3QgeyBzb3VyY2VQYXRoLCBkZXN0aW5hdGlvblBhdGggfSA9IHByb3BzO1xuICBjcFN5bmMoc291cmNlUGF0aCwgZGVzdGluYXRpb25QYXRoLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbn1cbiJdfQ==
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtdG8tZnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGFtYmRhcy9hc3NldHMtZGVwbG95bWVudC9mcy10by1mcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUtBLHdCQWdCQztBQXJCRCxxQ0FBaUM7QUFDakMseUNBQW9DO0FBRXBDLG9DQUFpQztBQUVqQyxTQUFnQixNQUFNLENBQUMsS0FBbUI7SUFDeEMsTUFBTSxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFDakUsSUFBQSxhQUFLLEVBQUMsV0FBVyxVQUFVLE9BQU8sZUFBZSxjQUFjLENBQUMsQ0FBQztJQUNqRSxJQUFBLGdCQUFNLEVBQUMsVUFBVSxFQUFFLGVBQWUsRUFBRTtRQUNsQyxTQUFTLEVBQUUsSUFBSTtRQUNmLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUNyQiwrQkFBK0I7WUFDL0IsTUFBTSxXQUFXLEdBQUcsSUFBQSxtQkFBTyxFQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN6QyxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUNoQixPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7WUFDRCxPQUFPLGlCQUFpQjtnQkFDdEIsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxJQUFBLG1CQUFPLEVBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzNDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDWCxDQUFDO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNwU3luYyB9IGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgeyBleHRuYW1lIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgRnNUb0ZzQWN0aW9uIH0gZnJvbSBcIi4uLy4uL25leHRqcy1hc3NldHMtZGVwbG95bWVudFwiO1xuaW1wb3J0IHsgZGVidWcgfSBmcm9tIFwiLi4vdXRpbHNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGZzVG9Gcyhwcm9wczogRnNUb0ZzQWN0aW9uKSB7XG4gIGNvbnN0IHsgc291cmNlUGF0aCwgZGVzdGluYXRpb25QYXRoLCBpbmNsdWRlRXh0ZW5zaW9ucyB9ID0gcHJvcHM7XG4gIGRlYnVnKGBDb3B5aW5nICR7c291cmNlUGF0aH0gdG8gJHtkZXN0aW5hdGlvblBhdGh9IHJlY3Vyc2l2ZWx5YCk7XG4gIGNwU3luYyhzb3VyY2VQYXRoLCBkZXN0aW5hdGlvblBhdGgsIHtcbiAgICByZWN1cnNpdmU6IHRydWUsXG4gICAgZmlsdGVyOiAoX3NyYywgZGVzdCkgPT4ge1xuICAgICAgLy8gY29uc29sZS5sb2coeyBfc3JjLCBkZXN0IH0pO1xuICAgICAgY29uc3QgaXNEaXJlY3RvcnkgPSBleHRuYW1lKGRlc3QpID09PSBcIlwiO1xuICAgICAgaWYgKGlzRGlyZWN0b3J5KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGluY2x1ZGVFeHRlbnNpb25zXG4gICAgICAgID8gaW5jbHVkZUV4dGVuc2lvbnMuaW5jbHVkZXMoZXh0bmFtZShkZXN0KSlcbiAgICAgICAgOiB0cnVlO1xuICAgIH0sXG4gIH0pO1xufVxuIl19
@@ -1,6 +1,12 @@
1
- import { NextjsType } from "../../common";
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 function fsToS3(props: FsToS3Action, nextjsType?: NextjsType): Promise<void>;
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 s3_1 = require("./s3");
13
- const utils_1 = require("./utils");
14
- const common_2 = require("../../common");
15
- async function fsToS3(props, nextjsType) {
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 === common_2.NextjsType.GLOBAL_FUNCTIONS) {
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: s3_1.s3, params: input }).done()));
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtdG8tczMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGFtYmRhcy9hc3NldHMtZGVwbG95bWVudC9mcy10by1zMy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWNBLHdCQWtEQztBQVVELGtDQUtDO0FBL0VELHFDQUFxRTtBQUNyRSx5Q0FBMkM7QUFHM0MsNkRBQTZEO0FBQzdELHNEQUE4QztBQUM5Qyw2REFBNkQ7QUFDN0QsbUNBQW1DO0FBQ25DLHFDQUFxRDtBQUNyRCw2QkFBMEI7QUFDMUIsbUNBQWdDO0FBQ2hDLHlDQUEwQztBQUduQyxLQUFLLFVBQVUsTUFBTSxDQUFDLEtBQW1CLEVBQUUsVUFBdUI7SUFDdkUsTUFBTSxFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLFVBQVUsRUFBRSxHQUFHLEtBQUssQ0FBQztJQUMxRSxNQUFNLGVBQWUsR0FBRyxJQUFBLHNCQUFhLEVBQUMsVUFBVSxDQUFDLENBQUM7SUFDbEQsSUFBSSxLQUFLLEVBQUUsTUFBTSxhQUFhLElBQUksSUFBQSxtQkFBVSxFQUFDLGVBQWUsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ25FLE1BQU0sZUFBZSxHQUE0QixhQUFhLENBQUMsR0FBRyxDQUNoRSxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ1AsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxTQUFTLENBQUM7WUFDbkQsTUFBTSxHQUFHLEdBQUcsV0FBVyxDQUFDO2dCQUN0QixTQUFTLEVBQUUsb0JBQW9CO2dCQUMvQixJQUFJO2dCQUNKLFFBQVEsRUFBRSxVQUFVO2FBQ3JCLENBQUMsQ0FBQztZQUNILElBQUksSUFBeUIsQ0FBQztZQUM5QixJQUNFLElBQUksQ0FBQyxRQUFRLENBQUMsK0JBQStCLENBQUM7Z0JBQzlDLFVBQVUsS0FBSyxtQkFBVSxDQUFDLGdCQUFnQixFQUMxQyxDQUFDO2dCQUNELDBFQUEwRTtnQkFDMUUsTUFBTSxrQkFBa0IsR0FBRyxJQUFBLHNCQUFZLEVBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzlDLE1BQU0saUJBQWlCLEdBQUcsSUFBQSxzQkFBWSxFQUNwQyxJQUFBLGdCQUFJLEVBQUMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLENBQ2xDO3FCQUNFLFFBQVEsRUFBRTtvQkFDWCxzRkFBc0Y7b0JBQ3RGLHlFQUF5RTtxQkFDeEUsT0FBTyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDaEMsSUFBSSxHQUFHLGlCQUFpQixHQUFHLElBQUksR0FBRyxrQkFBa0IsQ0FBQztZQUN2RCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxHQUFHLElBQUEsMEJBQWdCLEVBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEMsQ0FBQztZQUNELE9BQU87Z0JBQ0wsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsTUFBTSxFQUFFLHFCQUFxQjtnQkFDN0IsV0FBVyxFQUFFLFdBQVc7Z0JBQ3hCLEdBQUcsRUFBRSxHQUFHO2FBQ1QsQ0FBQztRQUNKLENBQUMsQ0FDRixDQUFDO1FBQ0YsSUFBQSxhQUFLLEVBQ0gsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMxQixNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU07WUFDaEIsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHO1NBQ1gsQ0FBQyxDQUFDLENBQ0osQ0FBQztRQUNGLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDZixlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDNUIsSUFBSSxvQkFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FDakQsQ0FDRixDQUFDO0lBQ0osQ0FBQztBQUNILENBQUM7QUFPRDs7R0FFRztBQUNILFNBQWdCLFdBQVcsQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFvQjtJQUN6RSxNQUFNLGNBQWMsR0FBYSxFQUFFLENBQUM7SUFDcEMsSUFBSSxTQUFTO1FBQUUsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUEsb0JBQVEsRUFBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM5QyxPQUFPLElBQUEsZ0JBQUksRUFBQyxHQUFHLGNBQWMsQ0FBQyxDQUFDO0FBQ2pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVSZWFkU3RyZWFtLCByZWFkRmlsZVN5bmMsIFJlYWRTdHJlYW0gfSBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0IHsgam9pbiwgcmVsYXRpdmUgfSBmcm9tIFwibm9kZTpwYXRoXCI7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXG5pbXBvcnQgeyBQdXRPYmplY3RDb21tYW5kSW5wdXQgfSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LXMzXCI7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXG5pbXBvcnQgeyBVcGxvYWQgfSBmcm9tIFwiQGF3cy1zZGsvbGliLXN0b3JhZ2VcIjtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXNcbmltcG9ydCAqIGFzIG1pbWUgZnJvbSBcIm1pbWUtdHlwZXNcIjtcbmltcG9ydCB7IGNodW5rQXJyYXksIGxpc3RGaWxlUGF0aHMgfSBmcm9tIFwiLi9jb21tb25cIjtcbmltcG9ydCB7IHMzIH0gZnJvbSBcIi4vczNcIjtcbmltcG9ydCB7IGRlYnVnIH0gZnJvbSBcIi4vdXRpbHNcIjtcbmltcG9ydCB7IE5leHRqc1R5cGUgfSBmcm9tIFwiLi4vLi4vY29tbW9uXCI7XG5pbXBvcnQgdHlwZSB7IEZzVG9TM0FjdGlvbiB9IGZyb20gXCIuLi8uLi9uZXh0anMtYXNzZXRzLWRlcGxveW1lbnRcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZzVG9TMyhwcm9wczogRnNUb1MzQWN0aW9uLCBuZXh0anNUeXBlPzogTmV4dGpzVHlwZSkge1xuICBjb25zdCB7IGRlc3RpbmF0aW9uQnVja2V0TmFtZSwgZGVzdGluYXRpb25LZXlQcmVmaXgsIHNvdXJjZVBhdGggfSA9IHByb3BzO1xuICBjb25zdCBzb3VyY2VGaWxlUGF0aHMgPSBsaXN0RmlsZVBhdGhzKHNvdXJjZVBhdGgpO1xuICBmb3IgYXdhaXQgKGNvbnN0IGZpbGVQYXRoQ2h1bmsgb2YgY2h1bmtBcnJheShzb3VyY2VGaWxlUGF0aHMsIDEwMCkpIHtcbiAgICBjb25zdCBwdXRPYmplY3RJbnB1dHM6IFB1dE9iamVjdENvbW1hbmRJbnB1dFtdID0gZmlsZVBhdGhDaHVuay5tYXAoXG4gICAgICAocGF0aCkgPT4ge1xuICAgICAgICBjb25zdCBjb250ZW50VHlwZSA9IG1pbWUubG9va3VwKHBhdGgpIHx8IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3Qga2V5ID0gY3JlYXRlUzNLZXkoe1xuICAgICAgICAgIGtleVByZWZpeDogZGVzdGluYXRpb25LZXlQcmVmaXgsXG4gICAgICAgICAgcGF0aCxcbiAgICAgICAgICBiYXNlUGF0aDogc291cmNlUGF0aCxcbiAgICAgICAgfSk7XG4gICAgICAgIGxldCBib2R5OiBzdHJpbmcgfCBSZWFkU3RyZWFtO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgcGF0aC5pbmNsdWRlcyhcIi5uZXh0L3N0YXRpYy9jaHVua3MvbWFpbi1hcHAtXCIpICYmXG4gICAgICAgICAgbmV4dGpzVHlwZSA9PT0gTmV4dGpzVHlwZS5HTE9CQUxfRlVOQ1RJT05TXG4gICAgICAgICkge1xuICAgICAgICAgIC8vIHNlZSBzcmMvbGFtYmRhcy9hc3NldHMtZGVwbG95bWVudC9wYXRjaC1mZXRjaC5qcyBmb3Igd2h5IHRoaXMgaXMgbmVlZGVkXG4gICAgICAgICAgY29uc3QgbWFpbkFwcEZpbGVDb250ZW50ID0gcmVhZEZpbGVTeW5jKHBhdGgpO1xuICAgICAgICAgIGNvbnN0IHBhdGNoRmV0Y2hDb250ZW50ID0gcmVhZEZpbGVTeW5jKFxuICAgICAgICAgICAgam9pbihfX2Rpcm5hbWUsIFwicGF0Y2gtZmV0Y2guanNcIiksXG4gICAgICAgICAgKVxuICAgICAgICAgICAgLnRvU3RyaW5nKClcbiAgICAgICAgICAgIC8vIHJlbW92ZSBcInVzZSBzdHJpY3RcIiBiZWNhdXNlIGl0IGNhdXNlczogVW5jYXVnaHQgUmVmZXJlbmNlRXJyb3I6IF9OX0UgaXMgbm90IGRlZmluZWRcbiAgICAgICAgICAgIC8vIHNpbmNlIHN0cmljdCBtb2RlIGRvZXNuJ3QgYWxsb3cgd2VicGFjayB0byBkZWZpbmUgdW5kZWNsYXJlZCB2YXJpYWJsZXNcbiAgICAgICAgICAgIC5yZXBsYWNlKCdcInVzZSBzdHJpY3RcIjsnLCBcIlwiKTtcbiAgICAgICAgICBib2R5ID0gcGF0Y2hGZXRjaENvbnRlbnQgKyBcIlxcblwiICsgbWFpbkFwcEZpbGVDb250ZW50O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJvZHkgPSBjcmVhdGVSZWFkU3RyZWFtKHBhdGgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgQm9keTogYm9keSxcbiAgICAgICAgICBCdWNrZXQ6IGRlc3RpbmF0aW9uQnVja2V0TmFtZSxcbiAgICAgICAgICBDb250ZW50VHlwZTogY29udGVudFR5cGUsXG4gICAgICAgICAgS2V5OiBrZXksXG4gICAgICAgIH07XG4gICAgICB9LFxuICAgICk7XG4gICAgZGVidWcoXG4gICAgICBwdXRPYmplY3RJbnB1dHMubWFwKChpKSA9PiAoe1xuICAgICAgICBidWNrZXQ6IGkuQnVja2V0LFxuICAgICAgICBrZXk6IGkuS2V5LFxuICAgICAgfSkpLFxuICAgICk7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBwdXRPYmplY3RJbnB1dHMubWFwKChpbnB1dCkgPT5cbiAgICAgICAgbmV3IFVwbG9hZCh7IGNsaWVudDogczMsIHBhcmFtczogaW5wdXQgfSkuZG9uZSgpLFxuICAgICAgKSxcbiAgICApO1xuICB9XG59XG5cbmludGVyZmFjZSBDcmVhdGVTM0tleVByb3BzIHtcbiAga2V5UHJlZml4Pzogc3RyaW5nO1xuICBwYXRoOiBzdHJpbmc7XG4gIGJhc2VQYXRoOiBzdHJpbmc7XG59XG4vKipcbiAqIENyZWF0ZSBTMyBLZXkgZ2l2ZW4gbG9jYWwgcGF0aFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUzNLZXkoeyBrZXlQcmVmaXgsIHBhdGgsIGJhc2VQYXRoIH06IENyZWF0ZVMzS2V5UHJvcHMpIHtcbiAgY29uc3Qgb2JqZWN0S2V5UGFydHM6IHN0cmluZ1tdID0gW107XG4gIGlmIChrZXlQcmVmaXgpIG9iamVjdEtleVBhcnRzLnB1c2goa2V5UHJlZml4KTtcbiAgb2JqZWN0S2V5UGFydHMucHVzaChyZWxhdGl2ZShiYXNlUGF0aCwgcGF0aCkpO1xuICByZXR1cm4gam9pbiguLi5vYmplY3RLZXlQYXJ0cyk7XG59XG4iXX0=
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 {};