cdk-nextjs 0.6.0 → 0.6.2

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 (43) hide show
  1. package/.jsii +117 -45
  2. package/.jsii.tabl.json +1 -1
  3. package/API.md +66 -1
  4. package/assets/lambdas/post-deploy/post-deploy.lambda/index.js +10 -7
  5. package/docs/breaking-changes.md +23 -3
  6. package/docs/development-guide.md +6 -4
  7. package/lib/adapter/adapter.mjs +1 -1
  8. package/lib/adapter/cache-handler.mjs +1 -1
  9. package/lib/generated-structs/OptionalNextjsPostDeployProps.d.ts +5 -0
  10. package/lib/generated-structs/OptionalNextjsPostDeployProps.js +1 -1
  11. package/lib/generated-structs/OptionalPostDeployCustomResourceProperties.d.ts +7 -0
  12. package/lib/generated-structs/OptionalPostDeployCustomResourceProperties.js +1 -1
  13. package/lib/image-optimization/handler.mjs +1 -1
  14. package/lib/lambdas/post-deploy/post-deploy.lambda.js +3 -2
  15. package/lib/lambdas/post-deploy/prune-s3.d.ts +9 -2
  16. package/lib/lambdas/post-deploy/prune-s3.js +17 -7
  17. package/lib/lambdas/post-deploy/prune-s3.test.d.ts +1 -0
  18. package/lib/lambdas/post-deploy/prune-s3.test.js +176 -0
  19. package/lib/nextjs-api.d.ts +5 -0
  20. package/lib/nextjs-api.js +13 -3
  21. package/lib/nextjs-api.test.js +46 -1
  22. package/lib/nextjs-build/nextjs-build.js +1 -1
  23. package/lib/nextjs-cache.js +1 -1
  24. package/lib/nextjs-compute/nextjs-containers.js +1 -1
  25. package/lib/nextjs-compute/nextjs-functions.js +1 -1
  26. package/lib/nextjs-compute/nextjs-image-function.js +1 -1
  27. package/lib/nextjs-distribution.js +1 -1
  28. package/lib/nextjs-post-deploy.d.ts +12 -0
  29. package/lib/nextjs-post-deploy.js +3 -2
  30. package/lib/nextjs-static-assets.d.ts +6 -0
  31. package/lib/nextjs-static-assets.js +9 -3
  32. package/lib/nextjs-static-assets.test.js +20 -1
  33. package/lib/root-constructs/nextjs-base-construct.d.ts +16 -0
  34. package/lib/root-constructs/nextjs-base-construct.js +21 -3
  35. package/lib/root-constructs/nextjs-global-containers.js +3 -2
  36. package/lib/root-constructs/nextjs-global-functions.js +3 -2
  37. package/lib/root-constructs/nextjs-regional-containers.d.ts +7 -0
  38. package/lib/root-constructs/nextjs-regional-containers.js +12 -3
  39. package/lib/root-constructs/nextjs-regional-functions.js +3 -2
  40. package/lib/utils/base-path.d.ts +19 -0
  41. package/lib/utils/base-path.js +25 -1
  42. package/lib/utils/base-path.test.js +58 -1
  43. package/package.json +1 -1
@@ -78,6 +78,51 @@ describe("NextjsApi", () => {
78
78
  // ...served under the stage-matching URL prefix.
79
79
  assertions_1.Template.fromStack(stack).hasResourceProperties("AWS::ApiGateway::Resource", { PathPart: "prod" });
80
80
  });
81
+ // API Gateway path parts can't contain "/", so a nested basePath passed whole
82
+ // to `addResource` fails CDK's `validateResourcePathPart` at synth. It's
83
+ // reachable: `resolveBasePath` accepts a nested prop for REGIONAL_FUNCTIONS as
84
+ // long as the app's basePath ends with it.
85
+ describe("nested basePath", () => {
86
+ function pathParts() {
87
+ const resources = assertions_1.Template.fromStack(stack).findResources("AWS::ApiGateway::Resource");
88
+ return Object.values(resources).map((resource) => resource.Properties.PathPart);
89
+ }
90
+ function createApiWithBasePath(basePath) {
91
+ return new nextjs_api_1.NextjsApi(stack, "NextjsApi", {
92
+ staticAssetsBucket: aws_s3_1.Bucket.fromBucketName(stack, "Bucket", "my-bucket"),
93
+ basePath,
94
+ serverFunction: new aws_lambda_1.Function(stack, "ServerFn", {
95
+ runtime: aws_lambda_1.Runtime.NODEJS_22_X,
96
+ handler: "index.handler",
97
+ code: aws_lambda_1.Code.fromInline("exports.handler = async () => {};"),
98
+ }),
99
+ publicDirEntries: [],
100
+ });
101
+ }
102
+ it("creates one resource per segment", () => {
103
+ expect(() => createApiWithBasePath("/team/app")).not.toThrow();
104
+ expect(pathParts()).toEqual(expect.arrayContaining(["team", "app", "_next", "{proxy+}"]));
105
+ // Not the unsplit value, which API Gateway would reject.
106
+ expect(pathParts()).not.toContain("team/app");
107
+ });
108
+ it("nests the segments so the app is reachable under the full path", () => {
109
+ createApiWithBasePath("/team/app");
110
+ const resources = assertions_1.Template.fromStack(stack).findResources("AWS::ApiGateway::Resource");
111
+ const byPathPart = Object.fromEntries(Object.entries(resources).map(([logicalId, resource]) => [
112
+ resource.Properties.PathPart,
113
+ { logicalId, parentId: resource.Properties.ParentId },
114
+ ]));
115
+ // "app" hangs off "team", not off the API root.
116
+ expect(byPathPart.app.parentId).toEqual({
117
+ Ref: byPathPart.team.logicalId,
118
+ });
119
+ expect(byPathPart.team.parentId).toHaveProperty("Fn::GetAtt");
120
+ });
121
+ it("still creates a single resource for a flat basePath", () => {
122
+ createApiWithBasePath("/base");
123
+ expect(pathParts()).toContain("base");
124
+ });
125
+ });
81
126
  describe("url", () => {
82
127
  function createApiWithOverrides(props = {}) {
83
128
  return new nextjs_api_1.NextjsApi(stack, "NextjsApi", {
@@ -141,4 +186,4 @@ describe("NextjsApi", () => {
141
186
  });
142
187
  });
143
188
  });
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dGpzLWFwaS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL25leHRqcy1hcGkudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHNEQUFzRDtBQUN0RCw2Q0FBeUM7QUFDekMsdURBQWtEO0FBQ2xELCtFQUFpRTtBQUNqRSx1REFJZ0M7QUFDaEMsK0NBQTRDO0FBQzVDLDZDQUF5RDtBQUV6RCxRQUFRLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRTtJQUN6QixJQUFJLEtBQVksQ0FBQztJQUVqQixVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ2QsS0FBSyxHQUFHLElBQUksbUJBQUssQ0FBQyxJQUFJLGlCQUFHLEVBQUUsRUFBRSxXQUFXLEVBQUU7WUFDeEMsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFO1NBQ3RELENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsU0FBUyxTQUFTLENBQUMscUJBQThCO1FBQy9DLE9BQU8sSUFBSSxzQkFBUyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUU7WUFDdkMsa0JBQWtCLEVBQUUsZUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLFdBQVcsQ0FBQztZQUN2RSxxQkFBcUI7WUFDckIsY0FBYyxFQUFFLElBQUkscUJBQWMsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFO2dCQUNwRCxPQUFPLEVBQUUsb0JBQU8sQ0FBQyxXQUFXO2dCQUM1QixPQUFPLEVBQUUsZUFBZTtnQkFDeEIsSUFBSSxFQUFFLGlCQUFJLENBQUMsVUFBVSxDQUFDLG1DQUFtQyxDQUFDO2FBQzNELENBQUM7WUFDRixnQkFBZ0IsRUFBRTtnQkFDaEIsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUU7Z0JBQzNDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2FB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InNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyAqL1xuaW1wb3J0IHsgQXBwLCBTdGFjayB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgVGVtcGxhdGUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXNzZXJ0aW9uc1wiO1xuaW1wb3J0IHsgQ2VydGlmaWNhdGUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNlcnRpZmljYXRlbWFuYWdlclwiO1xuaW1wb3J0IHtcbiAgQ29kZSxcbiAgRnVuY3Rpb24gYXMgTGFtYmRhRnVuY3Rpb24sXG4gIFJ1bnRpbWUsXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5pbXBvcnQgeyBCdWNrZXQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzXCI7XG5pbXBvcnQgeyBOZXh0anNBcGksIE5leHRqc0FwaVByb3BzIH0gZnJvbSBcIi4vbmV4dGpzLWFwaVwiO1xuXG5kZXNjcmliZShcIk5leHRqc0FwaVwiLCAoKSA9PiB7XG4gIGxldCBzdGFjazogU3RhY2s7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgc3RhY2sgPSBuZXcgU3RhY2sobmV3IEFwcCgpLCBcIlRlc3RTdGFja1wiLCB7XG4gICAgICBlbnY6IHsgYWNjb3VudDogXCIxMjM0NTY3ODkwMTJcIiwgcmVnaW9uOiBcInVzLWVhc3QtMVwiIH0sXG4gICAgfSk7XG4gIH0pO1xuXG4gIGZ1bmN0aW9uIGNyZWF0ZUFwaShzdGF0aWNBc3NldHNLZXlQcmVmaXg/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbmV3IE5leHRqc0FwaShzdGFjaywgXCJOZXh0anNBcGlcIiwge1xuICAgICAgc3RhdGljQXNzZXRzQnVja2V0OiBCdWNrZXQuZnJvbUJ1Y2tldE5hbWUoc3RhY2ssIFwiQnVja2V0XCIsIFwibXktYnVja2V0XCIpLFxuICAgICAgc3RhdGljQXNzZXRzS2V5UHJlZml4LFxuICAgICAgc2VydmVyRnVuY3Rpb246IG5ldyBMYW1iZGFGdW5jdGlvbihzdGFjaywgXCJTZXJ2ZXJGblwiLCB7XG4gICAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTXzIyX1gsXG4gICAgICAgIGhhbmRsZXI6IFwiaW5kZXguaGFuZGxlclwiLFxuICAgICAgICBjb2RlOiBDb2RlLmZyb21JbmxpbmUoXCJleHBvcnRzLmhhbmRsZXIgPSBhc3luYyAoKSA9PiB7fTtcIiksXG4gICAgICB9KSxcbiAgICAgIHB1YmxpY0RpckVudHJpZXM6IFtcbiAgICAgICAgeyBuYW1lOiBcImZhdmljb24uaWNvXCIsIGlzRGlyZWN0b3J5OiBmYWxzZSB9LFxuICAgICAgICB7IG5hbWU6IFwiaW1hZ2VzXCIsIGlzRGlyZWN0b3J5OiB0cnVlIH0sXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBTMyBpbnRlZ3JhdGlvbnMgYWRkcmVzcyBvYmplY3RzIGJ5IGtleSwgc28gdGhlIHVwbG9hZGVkIGtleSBwcmVmaXggaGFzXG4gICAqIHRvIGFwcGVhciBpbiB0aGUgaW50ZWdyYXRpb24gVVJJIG9yIGV2ZXJ5IHN0YXRpYyByZXF1ZXN0IDQwNHMuXG4gICAqL1xuICBmdW5jdGlvbiBzM0ludGVncmF0aW9uS2V5cygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgbWV0aG9kcyA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjaykuZmluZFJlc291cmNlcyhcbiAgICAgIFwiQVdTOjpBcGlHYXRld2F5OjpNZXRob2RcIixcbiAgICApO1xuICAgIGNvbnN0IG1hcmtlciA9IFwiczM6cGF0aC9teS1idWNrZXQvXCI7XG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXMobWV0aG9kcylcbiAgICAgIC5mbGF0TWFwKChtZXRob2QpID0+IG1ldGhvZC5Qcm9wZXJ0aWVzLkludGVncmF0aW9uLlVyaVtcIkZuOjpKb2luXCJdWzFdKVxuICAgICAgLmZpbHRlcihcbiAgICAgICAgKHBhcnQ6IHVua25vd24pOiBwYXJ0IGlzIHN0cmluZyA9PlxuICAgICAgICAgIHR5cGVvZiBwYXJ0ID09PSBcInN0cmluZ1wiICYmIHBhcnQuaW5jbHVkZXMobWFya2VyKSxcbiAgICAgIClcbiAgICAgIC5tYXAoKHBhcnQpID0+IHBhcnQuc3BsaXQobWFya2VyKVsxXSk7XG4gIH1cblxuICBpdChcImFkZHJlc3NlcyBvYmplY3RzIGF0IHRoZSBidWNrZXQgcm9vdCB3aGVuIG5vIGtleSBwcmVmaXggaXMgc2V0XCIsICgpID0+IHtcbiAgICBjcmVhdGVBcGkoKTtcblxuICAgIGV4cGVjdChzM0ludGVncmF0aW9uS2V5cygpLnNvcnQoKSkudG9FcXVhbChbXG4gICAgICBcIl9uZXh0L3N0YXRpYy97a2V5fVwiLFxuICAgICAgXCJmYXZpY29uLmljb1wiLFxuICAgICAgXCJpbWFnZXMve2tleX1cIixcbiAgICBdKTtcbiAgfSk7XG5cbiAgaXQoXCJwcmVmaXhlcyBldmVyeSBTMyBpbnRlZ3JhdGlvbiBrZXkgd2l0aCB0aGUgc3RhdGljIGFzc2V0cyBrZXkgcHJlZml4XCIsICgpID0+IHtcbiAgICBjcmVhdGVBcGkoXCJicmFuY2gteFwiKTtcblxuICAgIGV4cGVjdChzM0ludGVncmF0aW9uS2V5cygpLnNvcnQoKSkudG9FcXVhbChbXG4gICAgICBcImJyYW5jaC14L19uZXh0L3N0YXRpYy97a2V5fVwiLFxuICAgICAgXCJicmFuY2gteC9mYXZpY29uLmljb1wiLFxuICAgICAgXCJicmFuY2gteC9pbWFnZXMve2tleX1cIixcbiAgICBdKTtcbiAgfSk7XG5cbiAgaXQoXCJub3JtYWxpemVzIHN1cnJvdW5kaW5nIHNsYXNoZXMgb24gdGhlIGtleSBwcmVmaXhcIiwgKCkgPT4ge1xuICAgIGNyZWF0ZUFwaShcIi9icmFuY2gteC9cIik7XG5cbiAgICBleHBlY3QoczNJbnRlZ3JhdGlvbktleXMoKSkudG9Db250YWluKFwiYnJhbmNoLXgvX25leHQvc3RhdGljL3trZXl9XCIpO1xuICB9KTtcblxuICBpdChcImtlZXBzIHRoZSBrZXkgcHJlZml4IGluZGVwZW5kZW50IG9mIGJhc2VQYXRoLCB3aGljaCBpcyB0aGUgVVJMIHByZWZpeFwiLCAoKSA9PiB7XG4gICAgLy8gQSBOZXh0anNSZWdpb25hbEZ1bmN0aW9ucyBhcHAgd2hvc2UgYGJhc2VQYXRoYCBtYXRjaGVzIHRoZSBBUEkgR2F0ZXdheVxuICAgIC8vIHN0YWdlIHN0aWxsIGhhcyBpdHMgYXNzZXRzIGF0IHRoZSBidWNrZXQgcm9vdC5cbiAgICBuZXcgTmV4dGpzQXBpKHN0YWNrLCBcIk5leHRqc0FwaVwiLCB7XG4gICAgICBzdGF0aWNBc3NldHNCdWNrZXQ6IEJ1Y2tldC5mcm9tQnVja2V0TmFtZShzdGFjaywgXCJCdWNrZXRcIiwgXCJteS1idWNrZXRcIiksXG4gICAgICBiYXNlUGF0aDogXCIvcHJvZFwiLFxuICAgICAgc2VydmVyRnVuY3Rpb246IG5ldyBMYW1iZGFGdW5jdGlvbihzdGFjaywgXCJTZXJ2ZXJGblwiLCB7XG4gICAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTXzIyX1gsXG4gICAgICAgIGhhbmRsZXI6IFwiaW5kZXguaGFuZGxlclwiLFxuICAgICAgICBjb2RlOiBDb2RlLmZyb21JbmxpbmUoXCJleHBvcnRzLmhhbmRsZXIgPSBhc3luYyAoKSA9PiB7fTtcIiksXG4gICAgICB9KSxcbiAgICAgIHB1YmxpY0RpckVudHJpZXM6IFtdLFxuICAgIH0pO1xuXG4gICAgZXhwZWN0KHMzSW50ZWdyYXRpb25LZXlzKCkpLnRvRXF1YWwoW1wiX25leHQvc3RhdGljL3trZXl9XCJdKTtcbiAgICAvLyAuLi5zZXJ2ZWQgdW5kZXIgdGhlIHN0YWdlLW1hdGNoaW5nIFVSTCBwcmVmaXguXG4gICAgVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXG4gICAgICBcIkFXUzo6QXBpR2F0ZXdheTo6UmVzb3VyY2VcIixcbiAgICAgIHsgUGF0aFBhcnQ6IFwicHJvZFwiIH0sXG4gICAgKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJ1cmxcIiwgKCkgPT4ge1xuICAgIGZ1bmN0aW9uIGNyZWF0ZUFwaVdpdGhPdmVycmlkZXMoXG4gICAgICBwcm9wczogUGFydGlhbDxOZXh0anNBcGlQcm9wcz4gPSB7fSxcbiAgICApOiBOZXh0anNBcGkge1xuICAgICAgcmV0dXJuIG5ldyBOZXh0anNBcGkoc3RhY2ssIFwiTmV4dGpzQXBpXCIsIHtcbiAgICAgICAgc3RhdGljQXNzZXRzQnVja2V0OiBCdWNrZXQuZnJvbUJ1Y2tldE5hbWUoc3RhY2ssIFwiQnVja2V0XCIsIFwibXktYnVja2V0XCIpLFxuICAgICAgICBzZXJ2ZXJGdW5jdGlvbjogbmV3IExhbWJkYUZ1bmN0aW9uKHN0YWNrLCBcIlNlcnZlckZuXCIsIHtcbiAgICAgICAgICBydW50aW1lOiBSdW50aW1lLk5PREVKU18yMl9YLFxuICAgICAgICAgIGhhbmRsZXI6IFwiaW5kZXguaGFuZGxlclwiLFxuICAgICAgICAgIGNvZGU6IENvZGUuZnJvbUlubGluZShcImV4cG9ydHMuaGFuZGxlciA9IGFzeW5jICgpID0+IHt9O1wiKSxcbiAgICAgICAgfSksXG4gICAgICAgIHB1YmxpY0RpckVudHJpZXM6IFtdLFxuICAgICAgICAuLi5wcm9wcyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGRvbWFpbk5hbWUoYmFzZVBhdGg/OiBzdHJpbmcpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRvbWFpbk5hbWU6IFwiYXBwLmV4YW1wbGUuY29tXCIsXG4gICAgICAgIGNlcnRpZmljYXRlOiBDZXJ0aWZpY2F0ZS5mcm9tQ2VydGlmaWNhdGVBcm4oXG4gICAgICAgICAgc3RhY2ssXG4gICAgICAgICAgXCJDZXJ0XCIsXG4gICAgICAgICAgXCJhcm46YXdzOmFjbTp1cy1lYXN0LTE6MTIzNDU2Nzg5MDEyOmNlcnRpZmljYXRlL2FiY1wiLFxuICAgICAgICApLFxuICAgICAgICBiYXNlUGF0aCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIFJFU1QgQVBJIGlkLCB0aGUgc3RhZ2UgbmFtZSBhbmQgdGhlIGRvbWFpbiBuYW1lIGFyZSBhbGwgdG9rZW5zIHRoYXRcbiAgICAgKiBvbmx5IHJlc29sdmUgYXQgZGVwbG95IHRpbWUsIHNvIGZsYXR0ZW4gdGhlIHJlc29sdmVkIGBGbjo6Sm9pbmAgYW5kIHN0YW5kXG4gICAgICogZWFjaCByZWZlcmVuY2UgaW4gZm9yIHRoZSByZXNvdXJjZSBpdCBwb2ludHMgYXQgKG1pbnVzIENESydzIGxvZ2ljYWwgaWRcbiAgICAgKiBoYXNoIHN1ZmZpeCkuIFRoYXQga2VlcHMgdGhlIGFzc2VydGlvbnMgYWJvdXQgKndoaWNoKiByZXNvdXJjZSBzdXBwbGllc1xuICAgICAqIGVhY2ggcGFydCBvZiB0aGUgVVJMLCB3aGljaCBpcyB0aGUgd2hvbGUgcXVlc3Rpb24gaGVyZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiByZXNvbHZlVXJsKGFwaTogTmV4dGpzQXBpKTogc3RyaW5nIHtcbiAgICAgIGNvbnN0IHJlc29sdmVkID0gc3RhY2sucmVzb2x2ZShhcGkudXJsKTtcbiAgICAgIGlmICh0eXBlb2YgcmVzb2x2ZWQgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc29sdmVkW1wiRm46OkpvaW5cIl1bMV1cbiAgICAgICAgLm1hcCgocGFydDogdW5rbm93bikgPT5cbiAgICAgICAgICB0eXBlb2YgcGFydCA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgPyBwYXJ0XG4gICAgICAgICAgICA6IGB7JHsocGFydCBhcyB7IFJlZjogc3RyaW5nIH0pLlJlZi5yZXBsYWNlKC9bMC05QS1GXXs4fSQvLCBcIlwiKX19YCxcbiAgICAgICAgKVxuICAgICAgICAuam9pbihcIlwiKTtcbiAgICB9XG5cbiAgICBpdChcInJlcG9ydHMgdGhlIGV4ZWN1dGUtYXBpIGVuZHBvaW50IHdpdGggdGhlIHN0YWdlIGFwcGVuZGVkIHdoZW4gdGhlcmUncyBubyBjdXN0b20gZG9tYWluXCIsICgpID0+IHtcbiAgICAgIC8vIFRoZSBzdGFnZSBpcyBpbiB0aGUgcGF0aCBvbmx5IGhlcmUsIHdoaWNoIGlzIHRoZSB3aG9sZSByZWFzb24gdGhlXG4gICAgICAvLyByZWdpb25hbC1mdW5jdGlvbnMgZXhhbXBsZSBzZXRzIGFuIGFwcCBiYXNlUGF0aCBvZiBcIi9wcm9kXCIuXG4gICAgICBleHBlY3QocmVzb2x2ZVVybChjcmVhdGVBcGlXaXRoT3ZlcnJpZGVzKCkpKS50b0JlKFxuICAgICAgICBcImh0dHBzOi8ve05leHRqc0FwaVJlc3RBcGl9LmV4ZWN1dGUtYXBpLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tL3tOZXh0anNBcGlSZXN0QXBpRGVwbG95bWVudFN0YWdlcHJvZH1cIixcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdChcImFwcGVuZHMgYmFzZVBhdGgsIHdoaWNoIG5lc3RzIGV2ZXJ5IHJlc291cmNlIGEgbGV2ZWwgZG93blwiLCAoKSA9PiB7XG4gICAgICBleHBlY3QoXG4gICAgICAgIHJlc29sdmVVcmwoY3JlYXRlQXBpV2l0aE92ZXJyaWRlcyh7IGJhc2VQYXRoOiBcIi9teS1iYXNlLXBhdGhcIiB9KSksXG4gICAgICApLnRvQmUoXG4gICAgICAgIFwiaHR0cHM6Ly97TmV4dGpzQXBpUmVzdEFwaX0uZXhlY3V0ZS1hcGkudXMtZWFzdC0xLmFtYXpvbmF3cy5jb20ve05leHRqc0FwaVJlc3RBcGlEZXBsb3ltZW50U3RhZ2Vwcm9kfS9teS1iYXNlLXBhdGhcIixcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdChcInByZWZlcnMgYSBjdXN0b20gZG9tYWluIGFuZCBkcm9wcyB0aGUgc3RhZ2UgZnJvbSB0aGUgcGF0aFwiLCAoKSA9PiB7XG4gICAgICAvLyBBIGRvbWFpbiBtYXBwZWQgYXQgdGhlIHJvb3QgaXMgdGhlIGNsZWFuZXN0IFJlZ2lvbmFsIHNldHVwOiBubyBzdGFnZSBpblxuICAgICAgLy8gdGhlIFVSTCBtZWFucyBubyBiYXNlUGF0aCBhbmQgbm8gc3RhZ2Ugd29ya2Fyb3VuZHMgYW55d2hlcmUuIFRoZSBzdGFnZSBpc1xuICAgICAgLy8gcmVhY2hlZCB0aHJvdWdoIHRoZSBkb21haW4ncyBiYXNlIHBhdGggbWFwcGluZyBpbnN0ZWFkLlxuICAgICAgZXhwZWN0KFxuICAgICAgICByZXNvbHZlVXJsKFxuICAgICAgICAgIGNyZWF0ZUFwaVdpdGhPdmVycmlkZXMoe1xuICAgICAgICAgICAgb3ZlcnJpZGVzOiB7IHJlc3RBcGlQcm9wczogeyBkb21haW5OYW1lOiBkb21haW5OYW1lKCkgfSB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICApLFxuICAgICAgKS50b0JlKFwiaHR0cHM6Ly97TmV4dGpzQXBpUmVzdEFwaUN1c3RvbURvbWFpbn1cIik7XG4gICAgfSk7XG5cbiAgICBpdChcImluY2x1ZGVzIGEgY3VzdG9tIGRvbWFpbidzIGJhc2UgcGF0aCBtYXBwaW5nXCIsICgpID0+IHtcbiAgICAgIC8vIENESyByZWplY3RzIHN1cnJvdW5kaW5nIHNsYXNoZXMgb24gYSBtYXBwaW5nLCBzbyBpdCdzIGFsd2F5cyBhIGJhcmVcbiAgICAgIC8vIHNlZ21lbnQgYnkgdGhlIHRpbWUgaXQgZ2V0cyBoZXJlLlxuICAgICAgZXhwZWN0KFxuICAgICAgICByZXNvbHZlVXJsKFxuICAgICAgICAgIGNyZWF0ZUFwaVdpdGhPdmVycmlkZXMoe1xuICAgICAgICAgICAgb3ZlcnJpZGVzOiB7IHJlc3RBcGlQcm9wczogeyBkb21haW5OYW1lOiBkb21haW5OYW1lKFwidGVhbS1hXCIpIH0gfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKSxcbiAgICAgICkudG9CZShcImh0dHBzOi8ve05leHRqc0FwaVJlc3RBcGlDdXN0b21Eb21haW59L3RlYW0tYVwiKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dGpzLWFwaS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL25leHRqcy1hcGkudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHNEQUFzRDtBQUN0RCw2Q0FBeUM7QUFDekMsdURBQWtEO0FBQ2xELCtFQUFpRTtBQUNqRSx1REFJZ0M7QUFDaEMsK0NBQTRDO0FBQzVDLDZDQUF5RDtBQUV6RCxRQUFRLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRTtJQUN6QixJQUFJLEtBQVksQ0FBQztJQUVqQixVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ2QsS0FBSyxHQUFHLElBQUksbUJBQUssQ0FBQyxJQUFJLGlCQUFHLEVBQUUsRUFBRSxXQUFXLEVBQUU7WUFDeEMsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFO1NBQ3RELENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsU0FBUyxTQUFTLENBQUMscUJBQThCO1FBQy9DLE9BQU8sSUFBSSxzQkFBUyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUU7WUFDdkMsa0JBQWtCLEVBQUUsZUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLFdBQVcsQ0FBQztZQUN2RSxxQkFBcUI7WUFDckIsY0FBYyxFQUFFLElBQUkscUJBQWMsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFO2dCQUNwRCxPQUFPLEVBQUUsb0JBQU8sQ0FBQyxXQUFXO2dCQUM1QixPQUFPLEVBQUUsZUFBZTtnQkFDeEIsSUFBSSxFQUFFLGlCQUFJLENBQUMsVUFBVSxDQUFDLG1DQUFtQyxDQUFDO2FBQzNELENBQUM7WUFDRixnQkFBZ0IsRUFBRTtnQkFDaEIsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUU7Z0JBQzNDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2FB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QUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzICovXG5pbXBvcnQgeyBBcHAsIFN0YWNrIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBUZW1wbGF0ZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hc3NlcnRpb25zXCI7XG5pbXBvcnQgeyBDZXJ0aWZpY2F0ZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2VydGlmaWNhdGVtYW5hZ2VyXCI7XG5pbXBvcnQge1xuICBDb2RlLFxuICBGdW5jdGlvbiBhcyBMYW1iZGFGdW5jdGlvbixcbiAgUnVudGltZSxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIjtcbmltcG9ydCB7IEJ1Y2tldCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtczNcIjtcbmltcG9ydCB7IE5leHRqc0FwaSwgTmV4dGpzQXBpUHJvcHMgfSBmcm9tIFwiLi9uZXh0anMtYXBpXCI7XG5cbmRlc2NyaWJlKFwiTmV4dGpzQXBpXCIsICgpID0+IHtcbiAgbGV0IHN0YWNrOiBTdGFjaztcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBzdGFjayA9IG5ldyBTdGFjayhuZXcgQXBwKCksIFwiVGVzdFN0YWNrXCIsIHtcbiAgICAgIGVudjogeyBhY2NvdW50OiBcIjEyMzQ1Njc4OTAxMlwiLCByZWdpb246IFwidXMtZWFzdC0xXCIgfSxcbiAgICB9KTtcbiAgfSk7XG5cbiAgZnVuY3Rpb24gY3JlYXRlQXBpKHN0YXRpY0Fzc2V0c0tleVByZWZpeD86IHN0cmluZykge1xuICAgIHJldHVybiBuZXcgTmV4dGpzQXBpKHN0YWNrLCBcIk5leHRqc0FwaVwiLCB7XG4gICAgICBzdGF0aWNBc3NldHNCdWNrZXQ6IEJ1Y2tldC5mcm9tQnVja2V0TmFtZShzdGFjaywgXCJCdWNrZXRcIiwgXCJteS1idWNrZXRcIiksXG4gICAgICBzdGF0aWNBc3NldHNLZXlQcmVmaXgsXG4gICAgICBzZXJ2ZXJGdW5jdGlvbjogbmV3IExhbWJkYUZ1bmN0aW9uKHN0YWNrLCBcIlNlcnZlckZuXCIsIHtcbiAgICAgICAgcnVudGltZTogUnVudGltZS5OT0RFSlNfMjJfWCxcbiAgICAgICAgaGFuZGxlcjogXCJpbmRleC5oYW5kbGVyXCIsXG4gICAgICAgIGNvZGU6IENvZGUuZnJvbUlubGluZShcImV4cG9ydHMuaGFuZGxlciA9IGFzeW5jICgpID0+IHt9O1wiKSxcbiAgICAgIH0pLFxuICAgICAgcHVibGljRGlyRW50cmllczogW1xuICAgICAgICB7IG5hbWU6IFwiZmF2aWNvbi5pY29cIiwgaXNEaXJlY3Rvcnk6IGZhbHNlIH0sXG4gICAgICAgIHsgbmFtZTogXCJpbWFnZXNcIiwgaXNEaXJlY3Rvcnk6IHRydWUgfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIFMzIGludGVncmF0aW9ucyBhZGRyZXNzIG9iamVjdHMgYnkga2V5LCBzbyB0aGUgdXBsb2FkZWQga2V5IHByZWZpeCBoYXNcbiAgICogdG8gYXBwZWFyIGluIHRoZSBpbnRlZ3JhdGlvbiBVUkkgb3IgZXZlcnkgc3RhdGljIHJlcXVlc3QgNDA0cy5cbiAgICovXG4gIGZ1bmN0aW9uIHMzSW50ZWdyYXRpb25LZXlzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBtZXRob2RzID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKS5maW5kUmVzb3VyY2VzKFxuICAgICAgXCJBV1M6OkFwaUdhdGV3YXk6Ok1ldGhvZFwiLFxuICAgICk7XG4gICAgY29uc3QgbWFya2VyID0gXCJzMzpwYXRoL215LWJ1Y2tldC9cIjtcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhtZXRob2RzKVxuICAgICAgLmZsYXRNYXAoKG1ldGhvZCkgPT4gbWV0aG9kLlByb3BlcnRpZXMuSW50ZWdyYXRpb24uVXJpW1wiRm46OkpvaW5cIl1bMV0pXG4gICAgICAuZmlsdGVyKFxuICAgICAgICAocGFydDogdW5rbm93bik6IHBhcnQgaXMgc3RyaW5nID0+XG4gICAgICAgICAgdHlwZW9mIHBhcnQgPT09IFwic3RyaW5nXCIgJiYgcGFydC5pbmNsdWRlcyhtYXJrZXIpLFxuICAgICAgKVxuICAgICAgLm1hcCgocGFydCkgPT4gcGFydC5zcGxpdChtYXJrZXIpWzFdKTtcbiAgfVxuXG4gIGl0KFwiYWRkcmVzc2VzIG9iamVjdHMgYXQgdGhlIGJ1Y2tldCByb290IHdoZW4gbm8ga2V5IHByZWZpeCBpcyBzZXRcIiwgKCkgPT4ge1xuICAgIGNyZWF0ZUFwaSgpO1xuXG4gICAgZXhwZWN0KHMzSW50ZWdyYXRpb25LZXlzKCkuc29ydCgpKS50b0VxdWFsKFtcbiAgICAgIFwiX25leHQvc3RhdGljL3trZXl9XCIsXG4gICAgICBcImZhdmljb24uaWNvXCIsXG4gICAgICBcImltYWdlcy97a2V5fVwiLFxuICAgIF0pO1xuICB9KTtcblxuICBpdChcInByZWZpeGVzIGV2ZXJ5IFMzIGludGVncmF0aW9uIGtleSB3aXRoIHRoZSBzdGF0aWMgYXNzZXRzIGtleSBwcmVmaXhcIiwgKCkgPT4ge1xuICAgIGNyZWF0ZUFwaShcImJyYW5jaC14XCIpO1xuXG4gICAgZXhwZWN0KHMzSW50ZWdyYXRpb25LZXlzKCkuc29ydCgpKS50b0VxdWFsKFtcbiAgICAgIFwiYnJhbmNoLXgvX25leHQvc3RhdGljL3trZXl9XCIsXG4gICAgICBcImJyYW5jaC14L2Zhdmljb24uaWNvXCIsXG4gICAgICBcImJyYW5jaC14L2ltYWdlcy97a2V5fVwiLFxuICAgIF0pO1xuICB9KTtcblxuICBpdChcIm5vcm1hbGl6ZXMgc3Vycm91bmRpbmcgc2xhc2hlcyBvbiB0aGUga2V5IHByZWZpeFwiLCAoKSA9PiB7XG4gICAgY3JlYXRlQXBpKFwiL2JyYW5jaC14L1wiKTtcblxuICAgIGV4cGVjdChzM0ludGVncmF0aW9uS2V5cygpKS50b0NvbnRhaW4oXCJicmFuY2gteC9fbmV4dC9zdGF0aWMve2tleX1cIik7XG4gIH0pO1xuXG4gIGl0KFwia2VlcHMgdGhlIGtleSBwcmVmaXggaW5kZXBlbmRlbnQgb2YgYmFzZVBhdGgsIHdoaWNoIGlzIHRoZSBVUkwgcHJlZml4XCIsICgpID0+IHtcbiAgICAvLyBBIE5leHRqc1JlZ2lvbmFsRnVuY3Rpb25zIGFwcCB3aG9zZSBgYmFzZVBhdGhgIG1hdGNoZXMgdGhlIEFQSSBHYXRld2F5XG4gICAgLy8gc3RhZ2Ugc3RpbGwgaGFzIGl0cyBhc3NldHMgYXQgdGhlIGJ1Y2tldCByb290LlxuICAgIG5ldyBOZXh0anNBcGkoc3RhY2ssIFwiTmV4dGpzQXBpXCIsIHtcbiAgICAgIHN0YXRpY0Fzc2V0c0J1Y2tldDogQnVja2V0LmZyb21CdWNrZXROYW1lKHN0YWNrLCBcIkJ1Y2tldFwiLCBcIm15LWJ1Y2tldFwiKSxcbiAgICAgIGJhc2VQYXRoOiBcIi9wcm9kXCIsXG4gICAgICBzZXJ2ZXJGdW5jdGlvbjogbmV3IExhbWJkYUZ1bmN0aW9uKHN0YWNrLCBcIlNlcnZlckZuXCIsIHtcbiAgICAgICAgcnVudGltZTogUnVudGltZS5OT0RFSlNfMjJfWCxcbiAgICAgICAgaGFuZGxlcjogXCJpbmRleC5oYW5kbGVyXCIsXG4gICAgICAgIGNvZGU6IENvZGUuZnJvbUlubGluZShcImV4cG9ydHMuaGFuZGxlciA9IGFzeW5jICgpID0+IHt9O1wiKSxcbiAgICAgIH0pLFxuICAgICAgcHVibGljRGlyRW50cmllczogW10sXG4gICAgfSk7XG5cbiAgICBleHBlY3QoczNJbnRlZ3JhdGlvbktleXMoKSkudG9FcXVhbChbXCJfbmV4dC9zdGF0aWMve2tleX1cIl0pO1xuICAgIC8vIC4uLnNlcnZlZCB1bmRlciB0aGUgc3RhZ2UtbWF0Y2hpbmcgVVJMIHByZWZpeC5cbiAgICBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spLmhhc1Jlc291cmNlUHJvcGVydGllcyhcbiAgICAgIFwiQVdTOjpBcGlHYXRld2F5OjpSZXNvdXJjZVwiLFxuICAgICAgeyBQYXRoUGFydDogXCJwcm9kXCIgfSxcbiAgICApO1xuICB9KTtcblxuICAvLyBBUEkgR2F0ZXdheSBwYXRoIHBhcnRzIGNhbid0IGNvbnRhaW4gXCIvXCIsIHNvIGEgbmVzdGVkIGJhc2VQYXRoIHBhc3NlZCB3aG9sZVxuICAvLyB0byBgYWRkUmVzb3VyY2VgIGZhaWxzIENESydzIGB2YWxpZGF0ZVJlc291cmNlUGF0aFBhcnRgIGF0IHN5bnRoLiBJdCdzXG4gIC8vIHJlYWNoYWJsZTogYHJlc29sdmVCYXNlUGF0aGAgYWNjZXB0cyBhIG5lc3RlZCBwcm9wIGZvciBSRUdJT05BTF9GVU5DVElPTlMgYXNcbiAgLy8gbG9uZyBhcyB0aGUgYXBwJ3MgYmFzZVBhdGggZW5kcyB3aXRoIGl0LlxuICBkZXNjcmliZShcIm5lc3RlZCBiYXNlUGF0aFwiLCAoKSA9PiB7XG4gICAgZnVuY3Rpb24gcGF0aFBhcnRzKCk6IHN0cmluZ1tdIHtcbiAgICAgIGNvbnN0IHJlc291cmNlcyA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjaykuZmluZFJlc291cmNlcyhcbiAgICAgICAgXCJBV1M6OkFwaUdhdGV3YXk6OlJlc291cmNlXCIsXG4gICAgICApO1xuICAgICAgcmV0dXJuIE9iamVjdC52YWx1ZXMocmVzb3VyY2VzKS5tYXAoXG4gICAgICAgIChyZXNvdXJjZSkgPT4gcmVzb3VyY2UuUHJvcGVydGllcy5QYXRoUGFydCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlQXBpV2l0aEJhc2VQYXRoKGJhc2VQYXRoOiBzdHJpbmcpIHtcbiAgICAgIHJldHVybiBuZXcgTmV4dGpzQXBpKHN0YWNrLCBcIk5leHRqc0FwaVwiLCB7XG4gICAgICAgIHN0YXRpY0Fzc2V0c0J1Y2tldDogQnVja2V0LmZyb21CdWNrZXROYW1lKHN0YWNrLCBcIkJ1Y2tldFwiLCBcIm15LWJ1Y2tldFwiKSxcbiAgICAgICAgYmFzZVBhdGgsXG4gICAgICAgIHNlcnZlckZ1bmN0aW9uOiBuZXcgTGFtYmRhRnVuY3Rpb24oc3RhY2ssIFwiU2VydmVyRm5cIiwge1xuICAgICAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTXzIyX1gsXG4gICAgICAgICAgaGFuZGxlcjogXCJpbmRleC5oYW5kbGVyXCIsXG4gICAgICAgICAgY29kZTogQ29kZS5mcm9tSW5saW5lKFwiZXhwb3J0cy5oYW5kbGVyID0gYXN5bmMgKCkgPT4ge307XCIpLFxuICAgICAgICB9KSxcbiAgICAgICAgcHVibGljRGlyRW50cmllczogW10sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpdChcImNyZWF0ZXMgb25lIHJlc291cmNlIHBlciBzZWdtZW50XCIsICgpID0+IHtcbiAgICAgIGV4cGVjdCgoKSA9PiBjcmVhdGVBcGlXaXRoQmFzZVBhdGgoXCIvdGVhbS9hcHBcIikpLm5vdC50b1Rocm93KCk7XG5cbiAgICAgIGV4cGVjdChwYXRoUGFydHMoKSkudG9FcXVhbChcbiAgICAgICAgZXhwZWN0LmFycmF5Q29udGFpbmluZyhbXCJ0ZWFtXCIsIFwiYXBwXCIsIFwiX25leHRcIiwgXCJ7cHJveHkrfVwiXSksXG4gICAgICApO1xuICAgICAgLy8gTm90IHRoZSB1bnNwbGl0IHZhbHVlLCB3aGljaCBBUEkgR2F0ZXdheSB3b3VsZCByZWplY3QuXG4gICAgICBleHBlY3QocGF0aFBhcnRzKCkpLm5vdC50b0NvbnRhaW4oXCJ0ZWFtL2FwcFwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwibmVzdHMgdGhlIHNlZ21lbnRzIHNvIHRoZSBhcHAgaXMgcmVhY2hhYmxlIHVuZGVyIHRoZSBmdWxsIHBhdGhcIiwgKCkgPT4ge1xuICAgICAgY3JlYXRlQXBpV2l0aEJhc2VQYXRoKFwiL3RlYW0vYXBwXCIpO1xuXG4gICAgICBjb25zdCByZXNvdXJjZXMgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spLmZpbmRSZXNvdXJjZXMoXG4gICAgICAgIFwiQVdTOjpBcGlHYXRld2F5OjpSZXNvdXJjZVwiLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IGJ5UGF0aFBhcnQgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICAgIE9iamVjdC5lbnRyaWVzKHJlc291cmNlcykubWFwKChbbG9naWNhbElkLCByZXNvdXJjZV0pID0+IFtcbiAgICAgICAgICByZXNvdXJjZS5Qcm9wZXJ0aWVzLlBhdGhQYXJ0LFxuICAgICAgICAgIHsgbG9naWNhbElkLCBwYXJlbnRJZDogcmVzb3VyY2UuUHJvcGVydGllcy5QYXJlbnRJZCB9LFxuICAgICAgICBdKSxcbiAgICAgICk7XG4gICAgICAvLyBcImFwcFwiIGhhbmdzIG9mZiBcInRlYW1cIiwgbm90IG9mZiB0aGUgQVBJIHJvb3QuXG4gICAgICBleHBlY3QoYnlQYXRoUGFydC5hcHAucGFyZW50SWQpLnRvRXF1YWwoe1xuICAgICAgICBSZWY6IGJ5UGF0aFBhcnQudGVhbS5sb2dpY2FsSWQsXG4gICAgICB9KTtcbiAgICAgIGV4cGVjdChieVBhdGhQYXJ0LnRlYW0ucGFyZW50SWQpLnRvSGF2ZVByb3BlcnR5KFwiRm46OkdldEF0dFwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic3RpbGwgY3JlYXRlcyBhIHNpbmdsZSByZXNvdXJjZSBmb3IgYSBmbGF0IGJhc2VQYXRoXCIsICgpID0+IHtcbiAgICAgIGNyZWF0ZUFwaVdpdGhCYXNlUGF0aChcIi9iYXNlXCIpO1xuXG4gICAgICBleHBlY3QocGF0aFBhcnRzKCkpLnRvQ29udGFpbihcImJhc2VcIik7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwidXJsXCIsICgpID0+IHtcbiAgICBmdW5jdGlvbiBjcmVhdGVBcGlXaXRoT3ZlcnJpZGVzKFxuICAgICAgcHJvcHM6IFBhcnRpYWw8TmV4dGpzQXBpUHJvcHM+ID0ge30sXG4gICAgKTogTmV4dGpzQXBpIHtcbiAgICAgIHJldHVybiBuZXcgTmV4dGpzQXBpKHN0YWNrLCBcIk5leHRqc0FwaVwiLCB7XG4gICAgICAgIHN0YXRpY0Fzc2V0c0J1Y2tldDogQnVja2V0LmZyb21CdWNrZXROYW1lKHN0YWNrLCBcIkJ1Y2tldFwiLCBcIm15LWJ1Y2tldFwiKSxcbiAgICAgICAgc2VydmVyRnVuY3Rpb246IG5ldyBMYW1iZGFGdW5jdGlvbihzdGFjaywgXCJTZXJ2ZXJGblwiLCB7XG4gICAgICAgICAgcnVudGltZTogUnVudGltZS5OT0RFSlNfMjJfWCxcbiAgICAgICAgICBoYW5kbGVyOiBcImluZGV4LmhhbmRsZXJcIixcbiAgICAgICAgICBjb2RlOiBDb2RlLmZyb21JbmxpbmUoXCJleHBvcnRzLmhhbmRsZXIgPSBhc3luYyAoKSA9PiB7fTtcIiksXG4gICAgICAgIH0pLFxuICAgICAgICBwdWJsaWNEaXJFbnRyaWVzOiBbXSxcbiAgICAgICAgLi4ucHJvcHMsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBkb21haW5OYW1lKGJhc2VQYXRoPzogc3RyaW5nKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBkb21haW5OYW1lOiBcImFwcC5leGFtcGxlLmNvbVwiLFxuICAgICAgICBjZXJ0aWZpY2F0ZTogQ2VydGlmaWNhdGUuZnJvbUNlcnRpZmljYXRlQXJuKFxuICAgICAgICAgIHN0YWNrLFxuICAgICAgICAgIFwiQ2VydFwiLFxuICAgICAgICAgIFwiYXJuOmF3czphY206dXMtZWFzdC0xOjEyMzQ1Njc4OTAxMjpjZXJ0aWZpY2F0ZS9hYmNcIixcbiAgICAgICAgKSxcbiAgICAgICAgYmFzZVBhdGgsXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBSRVNUIEFQSSBpZCwgdGhlIHN0YWdlIG5hbWUgYW5kIHRoZSBkb21haW4gbmFtZSBhcmUgYWxsIHRva2VucyB0aGF0XG4gICAgICogb25seSByZXNvbHZlIGF0IGRlcGxveSB0aW1lLCBzbyBmbGF0dGVuIHRoZSByZXNvbHZlZCBgRm46OkpvaW5gIGFuZCBzdGFuZFxuICAgICAqIGVhY2ggcmVmZXJlbmNlIGluIGZvciB0aGUgcmVzb3VyY2UgaXQgcG9pbnRzIGF0IChtaW51cyBDREsncyBsb2dpY2FsIGlkXG4gICAgICogaGFzaCBzdWZmaXgpLiBUaGF0IGtlZXBzIHRoZSBhc3NlcnRpb25zIGFib3V0ICp3aGljaCogcmVzb3VyY2Ugc3VwcGxpZXNcbiAgICAgKiBlYWNoIHBhcnQgb2YgdGhlIFVSTCwgd2hpY2ggaXMgdGhlIHdob2xlIHF1ZXN0aW9uIGhlcmUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gcmVzb2x2ZVVybChhcGk6IE5leHRqc0FwaSk6IHN0cmluZyB7XG4gICAgICBjb25zdCByZXNvbHZlZCA9IHN0YWNrLnJlc29sdmUoYXBpLnVybCk7XG4gICAgICBpZiAodHlwZW9mIHJlc29sdmVkID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlZDtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXNvbHZlZFtcIkZuOjpKb2luXCJdWzFdXG4gICAgICAgIC5tYXAoKHBhcnQ6IHVua25vd24pID0+XG4gICAgICAgICAgdHlwZW9mIHBhcnQgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgID8gcGFydFxuICAgICAgICAgICAgOiBgeyR7KHBhcnQgYXMgeyBSZWY6IHN0cmluZyB9KS5SZWYucmVwbGFjZSgvWzAtOUEtRl17OH0kLywgXCJcIil9fWAsXG4gICAgICAgIClcbiAgICAgICAgLmpvaW4oXCJcIik7XG4gICAgfVxuXG4gICAgaXQoXCJyZXBvcnRzIHRoZSBleGVjdXRlLWFwaSBlbmRwb2ludCB3aXRoIHRoZSBzdGFnZSBhcHBlbmRlZCB3aGVuIHRoZXJlJ3Mgbm8gY3VzdG9tIGRvbWFpblwiLCAoKSA9PiB7XG4gICAgICAvLyBUaGUgc3RhZ2UgaXMgaW4gdGhlIHBhdGggb25seSBoZXJlLCB3aGljaCBpcyB0aGUgd2hvbGUgcmVhc29uIHRoZVxuICAgICAgLy8gcmVnaW9uYWwtZnVuY3Rpb25zIGV4YW1wbGUgc2V0cyBhbiBhcHAgYmFzZVBhdGggb2YgXCIvcHJvZFwiLlxuICAgICAgZXhwZWN0KHJlc29sdmVVcmwoY3JlYXRlQXBpV2l0aE92ZXJyaWRlcygpKSkudG9CZShcbiAgICAgICAgXCJodHRwczovL3tOZXh0anNBcGlSZXN0QXBpfS5leGVjdXRlLWFwaS51cy1lYXN0LTEuYW1hem9uYXdzLmNvbS97TmV4dGpzQXBpUmVzdEFwaURlcGxveW1lbnRTdGFnZXByb2R9XCIsXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJhcHBlbmRzIGJhc2VQYXRoLCB3aGljaCBuZXN0cyBldmVyeSByZXNvdXJjZSBhIGxldmVsIGRvd25cIiwgKCkgPT4ge1xuICAgICAgZXhwZWN0KFxuICAgICAgICByZXNvbHZlVXJsKGNyZWF0ZUFwaVdpdGhPdmVycmlkZXMoeyBiYXNlUGF0aDogXCIvbXktYmFzZS1wYXRoXCIgfSkpLFxuICAgICAgKS50b0JlKFxuICAgICAgICBcImh0dHBzOi8ve05leHRqc0FwaVJlc3RBcGl9LmV4ZWN1dGUtYXBpLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tL3tOZXh0anNBcGlSZXN0QXBpRGVwbG95bWVudFN0YWdlcHJvZH0vbXktYmFzZS1wYXRoXCIsXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJwcmVmZXJzIGEgY3VzdG9tIGRvbWFpbiBhbmQgZHJvcHMgdGhlIHN0YWdlIGZyb20gdGhlIHBhdGhcIiwgKCkgPT4ge1xuICAgICAgLy8gQSBkb21haW4gbWFwcGVkIGF0IHRoZSByb290IGlzIHRoZSBjbGVhbmVzdCBSZWdpb25hbCBzZXR1cDogbm8gc3RhZ2UgaW5cbiAgICAgIC8vIHRoZSBVUkwgbWVhbnMgbm8gYmFzZVBhdGggYW5kIG5vIHN0YWdlIHdvcmthcm91bmRzIGFueXdoZXJlLiBUaGUgc3RhZ2UgaXNcbiAgICAgIC8vIHJlYWNoZWQgdGhyb3VnaCB0aGUgZG9tYWluJ3MgYmFzZSBwYXRoIG1hcHBpbmcgaW5zdGVhZC5cbiAgICAgIGV4cGVjdChcbiAgICAgICAgcmVzb2x2ZVVybChcbiAgICAgICAgICBjcmVhdGVBcGlXaXRoT3ZlcnJpZGVzKHtcbiAgICAgICAgICAgIG92ZXJyaWRlczogeyByZXN0QXBpUHJvcHM6IHsgZG9tYWluTmFtZTogZG9tYWluTmFtZSgpIH0gfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKSxcbiAgICAgICkudG9CZShcImh0dHBzOi8ve05leHRqc0FwaVJlc3RBcGlDdXN0b21Eb21haW59XCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJpbmNsdWRlcyBhIGN1c3RvbSBkb21haW4ncyBiYXNlIHBhdGggbWFwcGluZ1wiLCAoKSA9PiB7XG4gICAgICAvLyBDREsgcmVqZWN0cyBzdXJyb3VuZGluZyBzbGFzaGVzIG9uIGEgbWFwcGluZywgc28gaXQncyBhbHdheXMgYSBiYXJlXG4gICAgICAvLyBzZWdtZW50IGJ5IHRoZSB0aW1lIGl0IGdldHMgaGVyZS5cbiAgICAgIGV4cGVjdChcbiAgICAgICAgcmVzb2x2ZVVybChcbiAgICAgICAgICBjcmVhdGVBcGlXaXRoT3ZlcnJpZGVzKHtcbiAgICAgICAgICAgIG92ZXJyaWRlczogeyByZXN0QXBpUHJvcHM6IHsgZG9tYWluTmFtZTogZG9tYWluTmFtZShcInRlYW0tYVwiKSB9IH0sXG4gICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgICApLnRvQmUoXCJodHRwczovL3tOZXh0anNBcGlSZXN0QXBpQ3VzdG9tRG9tYWlufS90ZWFtLWFcIik7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -24,7 +24,7 @@ const debug = (0, debug_1.default)("cdk-nextjs:nextjs-build");
24
24
  * @link https://nextjs.org/docs/pages/api-reference/next-config-js/output
25
25
  */
26
26
  class NextjsBuild extends constructs_1.Construct {
27
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-nextjs.NextjsBuild", version: "0.6.0" };
27
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-nextjs.NextjsBuild", version: "0.6.2" };
28
28
  /**
29
29
  * Unique id for Next.js build. Used to partition cache storage and as
30
30
  * metadata for static assets in S3 bucket.
@@ -13,7 +13,7 @@ const constants_1 = require("./constants");
13
13
  * Next.js Cache construct providing unified S3 and DynamoDB cache management.
14
14
  */
15
15
  class NextjsCache extends constructs_1.Construct {
16
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-nextjs.NextjsCache", version: "0.6.0" };
16
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-nextjs.NextjsCache", version: "0.6.2" };
17
17
  cacheBucket;
18
18
  revalidationTable;
19
19
  buildId;
@@ -18,7 +18,7 @@ const constants_1 = require("../constants");
18
18
  * Fargate.
19
19
  */
20
20
  class NextjsContainers extends constructs_1.Construct {
21
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-nextjs.NextjsContainers", version: "0.6.0" };
21
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-nextjs.NextjsContainers", version: "0.6.2" };
22
22
  albFargateService;
23
23
  ecsCluster;
24
24
  url;
@@ -15,7 +15,7 @@ const get_architecture_1 = require("../utils/get-architecture");
15
15
  * Run Next.js in functions on AWS with AWS Lambda.
16
16
  */
17
17
  class NextjsFunctions extends constructs_1.Construct {
18
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-nextjs.NextjsFunctions", version: "0.6.0" };
18
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-nextjs.NextjsFunctions", version: "0.6.2" };
19
19
  function;
20
20
  functionUrl;
21
21
  props;
@@ -15,7 +15,7 @@ const get_architecture_1 = require("../utils/get-architecture");
15
15
  * Lambda instead of paying the Docker/Lambda Web Adapter cold-start cost.
16
16
  */
17
17
  class NextjsImageFunction extends constructs_1.Construct {
18
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-nextjs.NextjsImageFunction", version: "0.6.0" };
18
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-nextjs.NextjsImageFunction", version: "0.6.2" };
19
19
  function;
20
20
  functionUrl;
21
21
  props;
@@ -9,7 +9,7 @@ const constructs_1 = require("constructs");
9
9
  const constants_1 = require("./constants");
10
10
  const base_path_1 = require("./utils/base-path");
11
11
  class NextjsDistribution extends constructs_1.Construct {
12
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-nextjs.NextjsDistribution", version: "0.6.0" };
12
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-nextjs.NextjsDistribution", version: "0.6.2" };
13
13
  distribution;
14
14
  props;
15
15
  /**
@@ -45,6 +45,13 @@ export interface NextjsPostDeployProps {
45
45
  * Required for `NextjsType.GlobalFunctions` and `NextjsType.GlobalContainers`
46
46
  */
47
47
  readonly staticAssetsBucket?: IBucket;
48
+ /**
49
+ * S3 key prefix the static assets were uploaded under
50
+ * (`NextjsStaticAssets.keyPrefix`). Scopes pruning to this app's objects, so
51
+ * that apps or branches sharing one bucket under different `basePath`s don't
52
+ * prune each other's assets.
53
+ */
54
+ readonly staticAssetsKeyPrefix?: string;
48
55
  }
49
56
  export interface PostDeployCustomResourceProperties {
50
57
  /**
@@ -84,6 +91,11 @@ export interface PostDeployCustomResourceProperties {
84
91
  */
85
92
  readonly msTtl: string;
86
93
  readonly staticAssetsBucketName?: string;
94
+ /**
95
+ * S3 key prefix to scope static asset pruning to. Empty or absent prunes the
96
+ * whole bucket.
97
+ */
98
+ readonly staticAssetsKeyPrefix?: string;
87
99
  }
88
100
  /**
89
101
  * Performs post deployment tasks in custom resource.
@@ -17,7 +17,7 @@ const get_architecture_1 = require("./utils/get-architecture");
17
17
  * current build id AND are older than `msTtl`
18
18
  */
19
19
  class NextjsPostDeploy extends constructs_1.Construct {
20
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-nextjs.NextjsPostDeploy", version: "0.6.0" };
20
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-nextjs.NextjsPostDeploy", version: "0.6.2" };
21
21
  customResource;
22
22
  lambdaFunction;
23
23
  props;
@@ -54,6 +54,7 @@ class NextjsPostDeploy extends constructs_1.Construct {
54
54
  revalidationTableName: this.props.revalidationTable?.tableName,
55
55
  msTtl: (1000 * 60 * 60 * 24 * 30).toString(), // 1 month
56
56
  staticAssetsBucketName: this.props.staticAssetsBucket?.bucketName,
57
+ staticAssetsKeyPrefix: this.props.staticAssetsKeyPrefix || undefined,
57
58
  createInvalidationCommandInput: this.props.distribution
58
59
  ? {
59
60
  distributionId: this.props.distribution.distributionId,
@@ -77,4 +78,4 @@ class NextjsPostDeploy extends constructs_1.Construct {
77
78
  }
78
79
  }
79
80
  exports.NextjsPostDeploy = NextjsPostDeploy;
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dGpzLXBvc3QtZGVwbG95LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL25leHRqcy1wb3N0LWRlcGxveS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEseUNBQWlDO0FBQ2pDLDZDQUF1RDtBQUd2RCx1REFLZ0M7QUFFaEMsMkNBQXVDO0FBSXZDLCtEQUFpRTtBQW1GakU7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFhLGdCQUFpQixTQUFRLHNCQUFTOztJQUM3QyxjQUFjLENBQWlCO0lBQy9CLGNBQWMsQ0FBaUI7SUFFdkIsS0FBSyxDQUF3QjtJQUVyQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTRCO1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDNUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0lBRU8sY0FBYztRQUNwQixNQUFNLEVBQUUsR0FBRyxJQUFJLHFCQUFjLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRTtZQUN4QyxZQUFZLEVBQUUsSUFBQSx3Q0FBcUIsR0FBRTtZQUNyQyxJQUFJLEVBQUUsaUJBQUksQ0FBQyxTQUFTLENBQ2xCLElBQUEsZ0JBQUksRUFBQyxTQUFTLEVBQUUsa0RBQWtELENBQUMsQ0FDcEU7WUFDRCxPQUFPLEVBQUUsZUFBZTtZQUN4QixVQUFVLEVBQUUsSUFBSTtZQUNoQixPQUFPLEVBQUUsSUFBSSxvQkFBTyxDQUFDLFlBQVksRUFBRSwwQkFBYSxDQUFDLE1BQU0sQ0FBQztZQUN4RCxPQUFPLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQzVCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsYUFBYTtTQUN2QyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSx1QkFBdUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQy9CLEVBQUUsQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLENBQUM7UUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFTyxvQkFBb0I7UUFDMUIsTUFBTSxVQUFVLEdBQXVDO1lBQ3JELDJDQUEyQztZQUMzQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPO1lBQzNCLGVBQWUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxVQUFVO1lBQ25ELHFCQUFxQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsU0FBUztZQUM5RCxLQUFLLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsVUFBVTtZQUN4RCxzQkFBc0IsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFLFVBQVU7WUFDakUsOEJBQThCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZO2dCQUNyRCxDQUFDLENBQUM7b0JBQ0UsY0FBYyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLGNBQWM7b0JBQ3RELGlCQUFpQixFQUFFO3dCQUNqQixlQUFlLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUU7d0JBQ3pDLEtBQUssRUFBRTs0QkFDTCxRQUFRLEVBQUUsQ0FBQzs0QkFDWCxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUM7eUJBQ2Q7cUJBQ0Y7aUJBQ0Y7Z0JBQ0gsQ0FBQyxDQUFDLFNBQVM7WUFDYixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLHdCQUF3QjtTQUNsRCxDQUFDO1FBQ0YsT0FBTyxJQUFJLDRCQUFjLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO1lBQ2hELFVBQVU7WUFDVixZQUFZLEVBQUUsMEJBQTBCO1lBQ3hDLFlBQVksRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVc7WUFDN0MsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxtQkFBbUI7U0FDN0MsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUEvREgsNENBZ0VDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgam9pbiB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IEN1c3RvbVJlc291cmNlLCBEdXJhdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgSURpc3RyaWJ1dGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udFwiO1xuaW1wb3J0IHsgSVRhYmxlVjIgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWR5bmFtb2RiXCI7XG5pbXBvcnQge1xuICBDb2RlLFxuICBGdW5jdGlvbiBhcyBMYW1iZGFGdW5jdGlvbixcbiAgUnVudGltZSxcbiAgUnVudGltZUZhbWlseSxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIjtcbmltcG9ydCB7IElCdWNrZXQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgT3B0aW9uYWxDdXN0b21SZXNvdXJjZVByb3BzIH0gZnJvbSBcIi4vZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxDdXN0b21SZXNvdXJjZVByb3BzXCI7XG5pbXBvcnQgeyBPcHRpb25hbEZ1bmN0aW9uUHJvcHMgfSBmcm9tIFwiLi9nZW5lcmF0ZWQtc3RydWN0cy9PcHRpb25hbEZ1bmN0aW9uUHJvcHNcIjtcbmltcG9ydCB7IE9wdGlvbmFsUG9zdERlcGxveUN1c3RvbVJlc291cmNlUHJvcGVydGllcyB9IGZyb20gXCIuL2dlbmVyYXRlZC1zdHJ1Y3RzL09wdGlvbmFsUG9zdERlcGxveUN1c3RvbVJlc291cmNlUHJvcGVydGllc1wiO1xuaW1wb3J0IHsgZ2V0TGFtYmRhQXJjaGl0ZWN0dXJlIH0gZnJvbSBcIi4vdXRpbHMvZ2V0LWFyY2hpdGVjdHVyZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5leHRqc1Bvc3REZXBsb3lPdmVycmlkZXMge1xuICByZWFkb25seSBmdW5jdGlvblByb3BzPzogT3B0aW9uYWxGdW5jdGlvblByb3BzO1xuICAvKipcbiAgICogUHJvcHMgdGhhdCBkZWZpbmUgdGhlIGN1c3RvbSByZXNvdXJjZVxuICAgKi9cbiAgcmVhZG9ubHkgY3VzdG9tUmVzb3VyY2VQcm9wcz86IE9wdGlvbmFsQ3VzdG9tUmVzb3VyY2VQcm9wcztcbiAgLyoqXG4gICAqIFByb3BlcnRpZXMgcGFzc2VkIGludG8gY3VzdG9tIHJlc291cmNlIHRoYXQgYXJlIHBhc3NlZCB0byBMYW1iZGEgZXZlbnQgaGFuZGxlci5cbiAgICovXG4gIHJlYWRvbmx5IGN1c3RvbVJlc291cmNlUHJvcGVydGllcz86IE9wdGlvbmFsUG9zdERlcGxveUN1c3RvbVJlc291cmNlUHJvcGVydGllcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZXh0anNQb3N0RGVwbG95UHJvcHMge1xuICByZWFkb25seSBidWlsZElkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDYWNoZSBidWNrZXQgZm9yIGNsZWFuaW5nIHVwIG9sZCBCVUlMRF9JRCBwcmVmaXhlZCBvYmplY3RzXG4gICAqL1xuICByZWFkb25seSBjYWNoZUJ1Y2tldD86IElCdWNrZXQ7XG4gIC8qKlxuICAgKiBEeW5hbW9EQiB0YWJsZSBmb3IgY2xlYW5pbmcgdXAgb2xkIEJVSUxEX0lEIHByZWZpeGVkIHJldmFsaWRhdGlvbiBlbnRyaWVzXG4gICAqL1xuICByZWFkb25seSByZXZhbGlkYXRpb25UYWJsZT86IElUYWJsZVYyO1xuICAvKipcbiAgICogSWYgdHJ1ZSwgbG9ncyBkZXRhaWxzIGluIGN1c3RvbSByZXNvdXJjZSBsYW1iZGFcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVidWc/OiBib29sZWFuO1xuICAvKipcbiAgICogQ2xvdWRGcm9udCBEaXN0cmlidXRpb24gdG8gaW52YWxpZGF0ZVxuICAgKi9cbiAgcmVhZG9ubHkgZGlzdHJpYnV0aW9uPzogSURpc3RyaWJ1dGlvbjtcbiAgLyoqXG4gICAqIE92ZXJyaWRlIHByb3BzIGZvciBldmVyeSBjb25zdHJ1Y3QuXG4gICAqL1xuICByZWFkb25seSBvdmVycmlkZXM/OiBOZXh0anNQb3N0RGVwbG95T3ZlcnJpZGVzO1xuICAvKipcbiAgICogUmVxdWlyZWQgZm9yIGBOZXh0anNUeXBlLkdsb2JhbEZ1bmN0aW9uc2AgYW5kIGBOZXh0anNUeXBlLkdsb2JhbENvbnRhaW5lcnNgXG4gICAqL1xuICByZWFkb25seSBzdGF0aWNBc3NldHNCdWNrZXQ/OiBJQnVja2V0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBvc3REZXBsb3lDdXN0b21SZXNvdXJjZVByb3BlcnRpZXMge1xuICAvKipcbiAgICogQnVpbGQgSUQgb2YgY3VycmVudCBkZXBsb3ltZW50LiBVc2VkIHRvIHBydW5lIGNhY2hlIGJ1Y2tldCBvZiBvYmplY3RzXG4gICAqIHdpdGggb2xkIGJ1aWxkIGlkcywgcHJ1bmUgRHluYW1vREIgcmV2YWxpZGF0aW9uIGVudHJpZXMgd2l0aCBvbGQgYnVpbGQgaWRzLFxuICAgKiBhbmQgcHJ1bmUgUzMgc3RhdGljIGFzc2V0cyBiYXNlZCBvbiBtZXRhZGF0YSBhbmQgYG1zVHRsYFxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRJZDogc3RyaW5nO1xuICAvKipcbiAgICogQ2FjaGUgYnVja2V0IG5hbWUgZm9yIGNsZWFuaW5nIHVwIG9sZCBCVUlMRF9JRCBwcmVmaXhlZCBvYmplY3RzXG4gICAqL1xuICByZWFkb25seSBjYWNoZUJ1Y2tldE5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEeW5hbW9EQiByZXZhbGlkYXRpb24gdGFibGUgbmFtZSBmb3IgY2xlYW5pbmcgdXAgb2xkIEJVSUxEX0lEIHByZWZpeGVkIGVudHJpZXNcbiAgICovXG4gIHJlYWRvbmx5IHJldmFsaWRhdGlvblRhYmxlTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0phdmFTY3JpcHRTREsvdjMvbGF0ZXN0L2NsaWVudC9jbG91ZGZyb250L2NvbW1hbmQvQ3JlYXRlSW52YWxpZGF0aW9uQ29tbWFuZC9cbiAgICogQGRlZmF1bHRcbiAgICoge1xuICAgICAgICBkaXN0cmlidXRpb25JZDogdGhpcy5wcm9wcy5kaXN0cmlidXRpb24/LmRpc3RyaWJ1dGlvbklkLFxuICAgICAgICBpbnZhbGlkYXRpb25CYXRjaDoge1xuICAgICAgICAgIGNhbGxlclJlZmVyZW5jZTogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICAgIHBhdGhzOiB7XG4gICAgICAgICAgICBxdWFudGl0eTogMSxcbiAgICAgICAgICAgIGl0ZW1zOiBbXCIvKlwiXSwgLy8gaW52YWxpZGF0ZSBhbGwgcGF0aHNcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlSW52YWxpZGF0aW9uQ29tbWFuZElucHV0PzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgLyoqXG4gICAqIFRpbWUgdG8gbGl2ZSBpbiBtaWxsaXNlY29uZHNcbiAgICpcbiAgICogTXVzdCBiZSBzdHJpbmcgYmVjYXVzZSBvZiBDbG91ZEZvcm1hdGlvbiBDdXN0b20gUmVzb3VyY2UgbGltaXRhdGlvblxuICAgKiBAZGVmYXVsdCAoMTAwMCAqIDYwICogNjAgKiAyNCAqIDMwKS50b1N0cmluZygpXG4gICAqL1xuICByZWFkb25seSBtc1R0bDogc3RyaW5nO1xuICByZWFkb25seSBzdGF0aWNBc3NldHNCdWNrZXROYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBlcmZvcm1zIHBvc3QgZGVwbG95bWVudCB0YXNrcyBpbiBjdXN0b20gcmVzb3VyY2UuXG4gKlxuICogMS4gQ2xvdWRGcm9udCBJbnZhbGlkYXRpb24gKGRlZmF1bHRzIHRvIC8qKVxuICogMi4gUHJ1bmUgY2FjaGUgYnVja2V0IGJ5IHJlbW92aW5nIG9iamVjdHMgd2l0aCBvbGQgQlVJTERfSUQgcHJlZml4ZXNcbiAqIDMuIFBydW5lIER5bmFtb0RCIHJldmFsaWRhdGlvbiB0YWJsZSBieSByZW1vdmluZyBlbnRyaWVzIHdpdGggb2xkIEJVSUxEX0lEIHByZWZpeGVzXG4gKiA0LiBQcnVuZSBzdGF0aWMgYXNzZXRzIFMzIGJ5IHJlbW92aW5nIG9iamVjdHMgdGhhdCBkb24ndCBoYXZlIG5leHQtYnVpbGQtaWQgbWV0YWRhdGEgb2ZcbiAqIGN1cnJlbnQgYnVpbGQgaWQgQU5EIGFyZSBvbGRlciB0aGFuIGBtc1R0bGBcbiAqL1xuZXhwb3J0IGNsYXNzIE5leHRqc1Bvc3REZXBsb3kgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjdXN0b21SZXNvdXJjZTogQ3VzdG9tUmVzb3VyY2U7XG4gIGxhbWJkYUZ1bmN0aW9uOiBMYW1iZGFGdW5jdGlvbjtcblxuICBwcml2YXRlIHByb3BzOiBOZXh0anNQb3N0RGVwbG95UHJvcHM7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IE5leHRqc1Bvc3REZXBsb3lQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICAgIHRoaXMubGFtYmRhRnVuY3Rpb24gPSB0aGlzLmNyZWF0ZUZ1bmN0aW9uKCk7XG4gICAgdGhpcy5jdXN0b21SZXNvdXJjZSA9IHRoaXMuY3JlYXRlQ3VzdG9tUmVzb3VyY2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRnVuY3Rpb24oKSB7XG4gICAgY29uc3QgZm4gPSBuZXcgTGFtYmRhRnVuY3Rpb24odGhpcywgXCJGblwiLCB7XG4gICAgICBhcmNoaXRlY3R1cmU6IGdldExhbWJkYUFyY2hpdGVjdHVyZSgpLFxuICAgICAgY29kZTogQ29kZS5mcm9tQXNzZXQoXG4gICAgICAgIGpvaW4oX19kaXJuYW1lLCBcIi4uL2Fzc2V0cy9sYW1iZGFzL3Bvc3QtZGVwbG95L3Bvc3QtZGVwbG95LmxhbWJkYVwiKSxcbiAgICAgICksXG4gICAgICBoYW5kbGVyOiBcImluZGV4LmhhbmRsZXJcIixcbiAgICAgIG1lbW9yeVNpemU6IDIwNDgsXG4gICAgICBydW50aW1lOiBuZXcgUnVudGltZShcIm5vZGVqczI0LnhcIiwgUnVudGltZUZhbWlseS5OT0RFSlMpLFxuICAgICAgdGltZW91dDogRHVyYXRpb24ubWludXRlcyg1KSxcbiAgICAgIC4uLnRoaXMucHJvcHMub3ZlcnJpZGVzPy5mdW5jdGlvblByb3BzLFxuICAgIH0pO1xuICAgIHRoaXMucHJvcHMuZGlzdHJpYnV0aW9uPy5ncmFudENyZWF0ZUludmFsaWRhdGlvbihmbik7XG4gICAgaWYgKHRoaXMucHJvcHMuZGVidWcgIT09IGZhbHNlKSB7XG4gICAgICBmbi5hZGRFbnZpcm9ubWVudChcIkRFQlVHXCIsIFwiMVwiKTtcbiAgICB9XG4gICAgdGhpcy5wcm9wcy5zdGF0aWNBc3NldHNCdWNrZXQ/LmdyYW50UmVhZFdyaXRlKGZuKTtcbiAgICB0aGlzLnByb3BzLmNhY2hlQnVja2V0Py5ncmFudFJlYWRXcml0ZShmbik7XG4gICAgdGhpcy5wcm9wcy5yZXZhbGlkYXRpb25UYWJsZT8uZ3JhbnRSZWFkV3JpdGVEYXRhKGZuKTtcbiAgICByZXR1cm4gZm47XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUN1c3RvbVJlc291cmNlKCkge1xuICAgIGNvbnN0IHByb3BlcnRpZXM6IFBvc3REZXBsb3lDdXN0b21SZXNvdXJjZVByb3BlcnRpZXMgPSB7XG4gICAgICAvLyBlbnN1cmVzIHRoaXMgQ1IgcnVucyBlYWNoIHRpbWUgbmV3IGJ1aWxkXG4gICAgICBidWlsZElkOiB0aGlzLnByb3BzLmJ1aWxkSWQsXG4gICAgICBjYWNoZUJ1Y2tldE5hbWU6IHRoaXMucHJvcHMuY2FjaGVCdWNrZXQ/LmJ1Y2tldE5hbWUsXG4gICAgICByZXZhbGlkYXRpb25UYWJsZU5hbWU6IHRoaXMucHJvcHMucmV2YWxpZGF0aW9uVGFibGU/LnRhYmxlTmFtZSxcbiAgICAgIG1zVHRsOiAoMTAwMCAqIDYwICogNjAgKiAyNCAqIDMwKS50b1N0cmluZygpLCAvLyAxIG1vbnRoXG4gICAgICBzdGF0aWNBc3NldHNCdWNrZXROYW1lOiB0aGlzLnByb3BzLnN0YXRpY0Fzc2V0c0J1Y2tldD8uYnVja2V0TmFtZSxcbiAgICAgIGNyZWF0ZUludmFsaWRhdGlvbkNvbW1hbmRJbnB1dDogdGhpcy5wcm9wcy5kaXN0cmlidXRpb25cbiAgICAgICAgPyB7XG4gICAgICAgICAgICBkaXN0cmlidXRpb25JZDogdGhpcy5wcm9wcy5kaXN0cmlidXRpb24uZGlzdHJpYnV0aW9uSWQsXG4gICAgICAgICAgICBpbnZhbGlkYXRpb25CYXRjaDoge1xuICAgICAgICAgICAgICBjYWxsZXJSZWZlcmVuY2U6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgICAgICAgcGF0aHM6IHtcbiAgICAgICAgICAgICAgICBxdWFudGl0eTogMSxcbiAgICAgICAgICAgICAgICBpdGVtczogW1wiLypcIl0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAuLi50aGlzLnByb3BzLm92ZXJyaWRlcz8uY3VzdG9tUmVzb3VyY2VQcm9wZXJ0aWVzLFxuICAgIH07XG4gICAgcmV0dXJuIG5ldyBDdXN0b21SZXNvdXJjZSh0aGlzLCBcIkN1c3RvbVJlc291cmNlXCIsIHtcbiAgICAgIHByb3BlcnRpZXMsXG4gICAgICByZXNvdXJjZVR5cGU6IFwiQ3VzdG9tOjpOZXh0anNQb3N0RGVwbG95XCIsXG4gICAgICBzZXJ2aWNlVG9rZW46IHRoaXMubGFtYmRhRnVuY3Rpb24uZnVuY3Rpb25Bcm4sXG4gICAgICAuLi50aGlzLnByb3BzLm92ZXJyaWRlcz8uY3VzdG9tUmVzb3VyY2VQcm9wcyxcbiAgICB9KTtcbiAgfVxufVxuIl19
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dGpzLXBvc3QtZGVwbG95LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL25leHRqcy1wb3N0LWRlcGxveS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEseUNBQWlDO0FBQ2pDLDZDQUF1RDtBQUd2RCx1REFLZ0M7QUFFaEMsMkNBQXVDO0FBSXZDLCtEQUFpRTtBQStGakU7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFhLGdCQUFpQixTQUFRLHNCQUFTOztJQUM3QyxjQUFjLENBQWlCO0lBQy9CLGNBQWMsQ0FBaUI7SUFFdkIsS0FBSyxDQUF3QjtJQUVyQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTRCO1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDNUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0lBRU8sY0FBYztRQUNwQixNQUFNLEVBQUUsR0FBRyxJQUFJLHFCQUFjLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRTtZQUN4QyxZQUFZLEVBQUUsSUFBQSx3Q0FBcUIsR0FBRTtZQUNyQyxJQUFJLEVBQUUsaUJBQUksQ0FBQyxTQUFTLENBQ2xCLElBQUEsZ0JBQUksRUFBQyxTQUFTLEVBQUUsa0RBQWtELENBQUMsQ0FDcEU7WUFDRCxPQUFPLEVBQUUsZUFBZTtZQUN4QixVQUFVLEVBQUUsSUFBSTtZQUNoQixPQUFPLEVBQUUsSUFBSSxvQkFBTyxDQUFDLFlBQVksRUFBRSwwQkFBYSxDQUFDLE1BQU0sQ0FBQztZQUN4RCxPQUFPLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQzVCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsYUFBYTtTQUN2QyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSx1QkFBdUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQy9CLEVBQUUsQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLENBQUM7UUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFTyxvQkFBb0I7UUFDMUIsTUFBTSxVQUFVLEdBQXVDO1lBQ3JELDJDQUEyQztZQUMzQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPO1lBQzNCLGVBQWUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxVQUFVO1lBQ25ELHFCQUFxQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsU0FBUztZQUM5RCxLQUFLLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsVUFBVTtZQUN4RCxzQkFBc0IsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFLFVBQVU7WUFDakUscUJBQXFCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsSUFBSSxTQUFTO1lBQ3BFLDhCQUE4QixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWTtnQkFDckQsQ0FBQyxDQUFDO29CQUNFLGNBQWMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxjQUFjO29CQUN0RCxpQkFBaUIsRUFBRTt3QkFDakIsZUFBZSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO3dCQUN6QyxLQUFLLEVBQUU7NEJBQ0wsUUFBUSxFQUFFLENBQUM7NEJBQ1gsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDO3lCQUNkO3FCQUNGO2lCQUNGO2dCQUNILENBQUMsQ0FBQyxTQUFTO1lBQ2IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSx3QkFBd0I7U0FDbEQsQ0FBQztRQUNGLE9BQU8sSUFBSSw0QkFBYyxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtZQUNoRCxVQUFVO1lBQ1YsWUFBWSxFQUFFLDBCQUEwQjtZQUN4QyxZQUFZLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXO1lBQzdDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsbUJBQW1CO1NBQzdDLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBaEVILDRDQWlFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpvaW4gfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBDdXN0b21SZXNvdXJjZSwgRHVyYXRpb24gfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IElEaXN0cmlidXRpb24gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnRcIjtcbmltcG9ydCB7IElUYWJsZVYyIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1keW5hbW9kYlwiO1xuaW1wb3J0IHtcbiAgQ29kZSxcbiAgRnVuY3Rpb24gYXMgTGFtYmRhRnVuY3Rpb24sXG4gIFJ1bnRpbWUsXG4gIFJ1bnRpbWVGYW1pbHksXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5pbXBvcnQgeyBJQnVja2V0IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IE9wdGlvbmFsQ3VzdG9tUmVzb3VyY2VQcm9wcyB9IGZyb20gXCIuL2dlbmVyYXRlZC1zdHJ1Y3RzL09wdGlvbmFsQ3VzdG9tUmVzb3VyY2VQcm9wc1wiO1xuaW1wb3J0IHsgT3B0aW9uYWxGdW5jdGlvblByb3BzIH0gZnJvbSBcIi4vZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxGdW5jdGlvblByb3BzXCI7XG5pbXBvcnQgeyBPcHRpb25hbFBvc3REZXBsb3lDdXN0b21SZXNvdXJjZVByb3BlcnRpZXMgfSBmcm9tIFwiLi9nZW5lcmF0ZWQtc3RydWN0cy9PcHRpb25hbFBvc3REZXBsb3lDdXN0b21SZXNvdXJjZVByb3BlcnRpZXNcIjtcbmltcG9ydCB7IGdldExhbWJkYUFyY2hpdGVjdHVyZSB9IGZyb20gXCIuL3V0aWxzL2dldC1hcmNoaXRlY3R1cmVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBOZXh0anNQb3N0RGVwbG95T3ZlcnJpZGVzIHtcbiAgcmVhZG9ubHkgZnVuY3Rpb25Qcm9wcz86IE9wdGlvbmFsRnVuY3Rpb25Qcm9wcztcbiAgLyoqXG4gICAqIFByb3BzIHRoYXQgZGVmaW5lIHRoZSBjdXN0b20gcmVzb3VyY2VcbiAgICovXG4gIHJlYWRvbmx5IGN1c3RvbVJlc291cmNlUHJvcHM/OiBPcHRpb25hbEN1c3RvbVJlc291cmNlUHJvcHM7XG4gIC8qKlxuICAgKiBQcm9wZXJ0aWVzIHBhc3NlZCBpbnRvIGN1c3RvbSByZXNvdXJjZSB0aGF0IGFyZSBwYXNzZWQgdG8gTGFtYmRhIGV2ZW50IGhhbmRsZXIuXG4gICAqL1xuICByZWFkb25seSBjdXN0b21SZXNvdXJjZVByb3BlcnRpZXM/OiBPcHRpb25hbFBvc3REZXBsb3lDdXN0b21SZXNvdXJjZVByb3BlcnRpZXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV4dGpzUG9zdERlcGxveVByb3BzIHtcbiAgcmVhZG9ubHkgYnVpbGRJZDogc3RyaW5nO1xuICAvKipcbiAgICogQ2FjaGUgYnVja2V0IGZvciBjbGVhbmluZyB1cCBvbGQgQlVJTERfSUQgcHJlZml4ZWQgb2JqZWN0c1xuICAgKi9cbiAgcmVhZG9ubHkgY2FjaGVCdWNrZXQ/OiBJQnVja2V0O1xuICAvKipcbiAgICogRHluYW1vREIgdGFibGUgZm9yIGNsZWFuaW5nIHVwIG9sZCBCVUlMRF9JRCBwcmVmaXhlZCByZXZhbGlkYXRpb24gZW50cmllc1xuICAgKi9cbiAgcmVhZG9ubHkgcmV2YWxpZGF0aW9uVGFibGU/OiBJVGFibGVWMjtcbiAgLyoqXG4gICAqIElmIHRydWUsIGxvZ3MgZGV0YWlscyBpbiBjdXN0b20gcmVzb3VyY2UgbGFtYmRhXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGRlYnVnPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIENsb3VkRnJvbnQgRGlzdHJpYnV0aW9uIHRvIGludmFsaWRhdGVcbiAgICovXG4gIHJlYWRvbmx5IGRpc3RyaWJ1dGlvbj86IElEaXN0cmlidXRpb247XG4gIC8qKlxuICAgKiBPdmVycmlkZSBwcm9wcyBmb3IgZXZlcnkgY29uc3RydWN0LlxuICAgKi9cbiAgcmVhZG9ubHkgb3ZlcnJpZGVzPzogTmV4dGpzUG9zdERlcGxveU92ZXJyaWRlcztcbiAgLyoqXG4gICAqIFJlcXVpcmVkIGZvciBgTmV4dGpzVHlwZS5HbG9iYWxGdW5jdGlvbnNgIGFuZCBgTmV4dGpzVHlwZS5HbG9iYWxDb250YWluZXJzYFxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdGljQXNzZXRzQnVja2V0PzogSUJ1Y2tldDtcbiAgLyoqXG4gICAqIFMzIGtleSBwcmVmaXggdGhlIHN0YXRpYyBhc3NldHMgd2VyZSB1cGxvYWRlZCB1bmRlclxuICAgKiAoYE5leHRqc1N0YXRpY0Fzc2V0cy5rZXlQcmVmaXhgKS4gU2NvcGVzIHBydW5pbmcgdG8gdGhpcyBhcHAncyBvYmplY3RzLCBzb1xuICAgKiB0aGF0IGFwcHMgb3IgYnJhbmNoZXMgc2hhcmluZyBvbmUgYnVja2V0IHVuZGVyIGRpZmZlcmVudCBgYmFzZVBhdGhgcyBkb24ndFxuICAgKiBwcnVuZSBlYWNoIG90aGVyJ3MgYXNzZXRzLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdGljQXNzZXRzS2V5UHJlZml4Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBvc3REZXBsb3lDdXN0b21SZXNvdXJjZVByb3BlcnRpZXMge1xuICAvKipcbiAgICogQnVpbGQgSUQgb2YgY3VycmVudCBkZXBsb3ltZW50LiBVc2VkIHRvIHBydW5lIGNhY2hlIGJ1Y2tldCBvZiBvYmplY3RzXG4gICAqIHdpdGggb2xkIGJ1aWxkIGlkcywgcHJ1bmUgRHluYW1vREIgcmV2YWxpZGF0aW9uIGVudHJpZXMgd2l0aCBvbGQgYnVpbGQgaWRzLFxuICAgKiBhbmQgcHJ1bmUgUzMgc3RhdGljIGFzc2V0cyBiYXNlZCBvbiBtZXRhZGF0YSBhbmQgYG1zVHRsYFxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRJZDogc3RyaW5nO1xuICAvKipcbiAgICogQ2FjaGUgYnVja2V0IG5hbWUgZm9yIGNsZWFuaW5nIHVwIG9sZCBCVUlMRF9JRCBwcmVmaXhlZCBvYmplY3RzXG4gICAqL1xuICByZWFkb25seSBjYWNoZUJ1Y2tldE5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEeW5hbW9EQiByZXZhbGlkYXRpb24gdGFibGUgbmFtZSBmb3IgY2xlYW5pbmcgdXAgb2xkIEJVSUxEX0lEIHByZWZpeGVkIGVudHJpZXNcbiAgICovXG4gIHJlYWRvbmx5IHJldmFsaWRhdGlvblRhYmxlTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0phdmFTY3JpcHRTREsvdjMvbGF0ZXN0L2NsaWVudC9jbG91ZGZyb250L2NvbW1hbmQvQ3JlYXRlSW52YWxpZGF0aW9uQ29tbWFuZC9cbiAgICogQGRlZmF1bHRcbiAgICoge1xuICAgICAgICBkaXN0cmlidXRpb25JZDogdGhpcy5wcm9wcy5kaXN0cmlidXRpb24/LmRpc3RyaWJ1dGlvbklkLFxuICAgICAgICBpbnZhbGlkYXRpb25CYXRjaDoge1xuICAgICAgICAgIGNhbGxlclJlZmVyZW5jZTogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICAgIHBhdGhzOiB7XG4gICAgICAgICAgICBxdWFudGl0eTogMSxcbiAgICAgICAgICAgIGl0ZW1zOiBbXCIvKlwiXSwgLy8gaW52YWxpZGF0ZSBhbGwgcGF0aHNcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlSW52YWxpZGF0aW9uQ29tbWFuZElucHV0PzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgLyoqXG4gICAqIFRpbWUgdG8gbGl2ZSBpbiBtaWxsaXNlY29uZHNcbiAgICpcbiAgICogTXVzdCBiZSBzdHJpbmcgYmVjYXVzZSBvZiBDbG91ZEZvcm1hdGlvbiBDdXN0b20gUmVzb3VyY2UgbGltaXRhdGlvblxuICAgKiBAZGVmYXVsdCAoMTAwMCAqIDYwICogNjAgKiAyNCAqIDMwKS50b1N0cmluZygpXG4gICAqL1xuICByZWFkb25seSBtc1R0bDogc3RyaW5nO1xuICByZWFkb25seSBzdGF0aWNBc3NldHNCdWNrZXROYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogUzMga2V5IHByZWZpeCB0byBzY29wZSBzdGF0aWMgYXNzZXQgcHJ1bmluZyB0by4gRW1wdHkgb3IgYWJzZW50IHBydW5lcyB0aGVcbiAgICogd2hvbGUgYnVja2V0LlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdGljQXNzZXRzS2V5UHJlZml4Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBlcmZvcm1zIHBvc3QgZGVwbG95bWVudCB0YXNrcyBpbiBjdXN0b20gcmVzb3VyY2UuXG4gKlxuICogMS4gQ2xvdWRGcm9udCBJbnZhbGlkYXRpb24gKGRlZmF1bHRzIHRvIC8qKVxuICogMi4gUHJ1bmUgY2FjaGUgYnVja2V0IGJ5IHJlbW92aW5nIG9iamVjdHMgd2l0aCBvbGQgQlVJTERfSUQgcHJlZml4ZXNcbiAqIDMuIFBydW5lIER5bmFtb0RCIHJldmFsaWRhdGlvbiB0YWJsZSBieSByZW1vdmluZyBlbnRyaWVzIHdpdGggb2xkIEJVSUxEX0lEIHByZWZpeGVzXG4gKiA0LiBQcnVuZSBzdGF0aWMgYXNzZXRzIFMzIGJ5IHJlbW92aW5nIG9iamVjdHMgdGhhdCBkb24ndCBoYXZlIG5leHQtYnVpbGQtaWQgbWV0YWRhdGEgb2ZcbiAqIGN1cnJlbnQgYnVpbGQgaWQgQU5EIGFyZSBvbGRlciB0aGFuIGBtc1R0bGBcbiAqL1xuZXhwb3J0IGNsYXNzIE5leHRqc1Bvc3REZXBsb3kgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjdXN0b21SZXNvdXJjZTogQ3VzdG9tUmVzb3VyY2U7XG4gIGxhbWJkYUZ1bmN0aW9uOiBMYW1iZGFGdW5jdGlvbjtcblxuICBwcml2YXRlIHByb3BzOiBOZXh0anNQb3N0RGVwbG95UHJvcHM7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IE5leHRqc1Bvc3REZXBsb3lQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICAgIHRoaXMubGFtYmRhRnVuY3Rpb24gPSB0aGlzLmNyZWF0ZUZ1bmN0aW9uKCk7XG4gICAgdGhpcy5jdXN0b21SZXNvdXJjZSA9IHRoaXMuY3JlYXRlQ3VzdG9tUmVzb3VyY2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRnVuY3Rpb24oKSB7XG4gICAgY29uc3QgZm4gPSBuZXcgTGFtYmRhRnVuY3Rpb24odGhpcywgXCJGblwiLCB7XG4gICAgICBhcmNoaXRlY3R1cmU6IGdldExhbWJkYUFyY2hpdGVjdHVyZSgpLFxuICAgICAgY29kZTogQ29kZS5mcm9tQXNzZXQoXG4gICAgICAgIGpvaW4oX19kaXJuYW1lLCBcIi4uL2Fzc2V0cy9sYW1iZGFzL3Bvc3QtZGVwbG95L3Bvc3QtZGVwbG95LmxhbWJkYVwiKSxcbiAgICAgICksXG4gICAgICBoYW5kbGVyOiBcImluZGV4LmhhbmRsZXJcIixcbiAgICAgIG1lbW9yeVNpemU6IDIwNDgsXG4gICAgICBydW50aW1lOiBuZXcgUnVudGltZShcIm5vZGVqczI0LnhcIiwgUnVudGltZUZhbWlseS5OT0RFSlMpLFxuICAgICAgdGltZW91dDogRHVyYXRpb24ubWludXRlcyg1KSxcbiAgICAgIC4uLnRoaXMucHJvcHMub3ZlcnJpZGVzPy5mdW5jdGlvblByb3BzLFxuICAgIH0pO1xuICAgIHRoaXMucHJvcHMuZGlzdHJpYnV0aW9uPy5ncmFudENyZWF0ZUludmFsaWRhdGlvbihmbik7XG4gICAgaWYgKHRoaXMucHJvcHMuZGVidWcgIT09IGZhbHNlKSB7XG4gICAgICBmbi5hZGRFbnZpcm9ubWVudChcIkRFQlVHXCIsIFwiMVwiKTtcbiAgICB9XG4gICAgdGhpcy5wcm9wcy5zdGF0aWNBc3NldHNCdWNrZXQ/LmdyYW50UmVhZFdyaXRlKGZuKTtcbiAgICB0aGlzLnByb3BzLmNhY2hlQnVja2V0Py5ncmFudFJlYWRXcml0ZShmbik7XG4gICAgdGhpcy5wcm9wcy5yZXZhbGlkYXRpb25UYWJsZT8uZ3JhbnRSZWFkV3JpdGVEYXRhKGZuKTtcbiAgICByZXR1cm4gZm47XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUN1c3RvbVJlc291cmNlKCkge1xuICAgIGNvbnN0IHByb3BlcnRpZXM6IFBvc3REZXBsb3lDdXN0b21SZXNvdXJjZVByb3BlcnRpZXMgPSB7XG4gICAgICAvLyBlbnN1cmVzIHRoaXMgQ1IgcnVucyBlYWNoIHRpbWUgbmV3IGJ1aWxkXG4gICAgICBidWlsZElkOiB0aGlzLnByb3BzLmJ1aWxkSWQsXG4gICAgICBjYWNoZUJ1Y2tldE5hbWU6IHRoaXMucHJvcHMuY2FjaGVCdWNrZXQ/LmJ1Y2tldE5hbWUsXG4gICAgICByZXZhbGlkYXRpb25UYWJsZU5hbWU6IHRoaXMucHJvcHMucmV2YWxpZGF0aW9uVGFibGU/LnRhYmxlTmFtZSxcbiAgICAgIG1zVHRsOiAoMTAwMCAqIDYwICogNjAgKiAyNCAqIDMwKS50b1N0cmluZygpLCAvLyAxIG1vbnRoXG4gICAgICBzdGF0aWNBc3NldHNCdWNrZXROYW1lOiB0aGlzLnByb3BzLnN0YXRpY0Fzc2V0c0J1Y2tldD8uYnVja2V0TmFtZSxcbiAgICAgIHN0YXRpY0Fzc2V0c0tleVByZWZpeDogdGhpcy5wcm9wcy5zdGF0aWNBc3NldHNLZXlQcmVmaXggfHwgdW5kZWZpbmVkLFxuICAgICAgY3JlYXRlSW52YWxpZGF0aW9uQ29tbWFuZElucHV0OiB0aGlzLnByb3BzLmRpc3RyaWJ1dGlvblxuICAgICAgICA/IHtcbiAgICAgICAgICAgIGRpc3RyaWJ1dGlvbklkOiB0aGlzLnByb3BzLmRpc3RyaWJ1dGlvbi5kaXN0cmlidXRpb25JZCxcbiAgICAgICAgICAgIGludmFsaWRhdGlvbkJhdGNoOiB7XG4gICAgICAgICAgICAgIGNhbGxlclJlZmVyZW5jZTogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICAgICAgICBwYXRoczoge1xuICAgICAgICAgICAgICAgIHF1YW50aXR5OiAxLFxuICAgICAgICAgICAgICAgIGl0ZW1zOiBbXCIvKlwiXSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIC4uLnRoaXMucHJvcHMub3ZlcnJpZGVzPy5jdXN0b21SZXNvdXJjZVByb3BlcnRpZXMsXG4gICAgfTtcbiAgICByZXR1cm4gbmV3IEN1c3RvbVJlc291cmNlKHRoaXMsIFwiQ3VzdG9tUmVzb3VyY2VcIiwge1xuICAgICAgcHJvcGVydGllcyxcbiAgICAgIHJlc291cmNlVHlwZTogXCJDdXN0b206Ok5leHRqc1Bvc3REZXBsb3lcIixcbiAgICAgIHNlcnZpY2VUb2tlbjogdGhpcy5sYW1iZGFGdW5jdGlvbi5mdW5jdGlvbkFybixcbiAgICAgIC4uLnRoaXMucHJvcHMub3ZlcnJpZGVzPy5jdXN0b21SZXNvdXJjZVByb3BzLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -53,6 +53,12 @@ export declare class NextjsStaticAssets extends Construct {
53
53
  * but it's normalized here and `createDeployment` sets the normalized value
54
54
  * after the override spread, so `keyPrefix` can't drift from where the assets
55
55
  * land.
56
+ *
57
+ * Compared against `undefined` rather than tested with `in`, because a JSII
58
+ * language binding (or a programmatically built props object) can materialize
59
+ * an unset optional field as an explicit `undefined`. Treating that as an
60
+ * intentional "move the assets to the bucket root" override would silently
61
+ * drop `basePath` from the prefix.
56
62
  */
57
63
  private resolveKeyPrefix;
58
64
  private createBucket;
@@ -15,7 +15,7 @@ const base_path_1 = require("./utils/base-path");
15
15
  * Creates S3 Bucket for public and _next/static assets and deploys them using S3Deployment.
16
16
  */
17
17
  class NextjsStaticAssets extends constructs_1.Construct {
18
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-nextjs.NextjsStaticAssets", version: "0.6.0" };
18
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-nextjs.NextjsStaticAssets", version: "0.6.2" };
19
19
  bucket;
20
20
  deployment;
21
21
  /**
@@ -43,10 +43,16 @@ class NextjsStaticAssets extends constructs_1.Construct {
43
43
  * but it's normalized here and `createDeployment` sets the normalized value
44
44
  * after the override spread, so `keyPrefix` can't drift from where the assets
45
45
  * land.
46
+ *
47
+ * Compared against `undefined` rather than tested with `in`, because a JSII
48
+ * language binding (or a programmatically built props object) can materialize
49
+ * an unset optional field as an explicit `undefined`. Treating that as an
50
+ * intentional "move the assets to the bucket root" override would silently
51
+ * drop `basePath` from the prefix.
46
52
  */
47
53
  resolveKeyPrefix() {
48
54
  const deploymentOverrides = this.props.overrides?.bucketDeploymentProps;
49
- const prefix = deploymentOverrides && "destinationKeyPrefix" in deploymentOverrides
55
+ const prefix = deploymentOverrides?.destinationKeyPrefix !== undefined
50
56
  ? deploymentOverrides.destinationKeyPrefix
51
57
  : this.props.basePath;
52
58
  return (0, base_path_1.normalizeBasePath)(prefix);
@@ -140,4 +146,4 @@ class NextjsStaticAssets extends constructs_1.Construct {
140
146
  }
141
147
  }
142
148
  exports.NextjsStaticAssets = NextjsStaticAssets;
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dGpzLXN0YXRpYy1hc3NldHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbmV4dGpzLXN0YXRpYy1hc3NldHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHFDQU9pQjtBQUNqQixxQ0FBaUM7QUFDakMseUNBQWlDO0FBQ2pDLDZDQUE0QztBQUM1QywrQ0FNNEI7QUFDNUIscUVBSXVDO0FBQ3ZDLDJDQUF1QztBQUN2QywyQ0FBeUM7QUFDekMsaURBQXNEO0FBK0J0RDs7R0FFRztBQUNILE1BQWEsa0JBQW1CLFNBQVEsc0JBQVM7O0lBQy9DLE1BQU0sQ0FBVTtJQUNoQixVQUFVLENBQW1CO0lBQzdCOzs7Ozs7OztPQVFHO0lBQ00sU0FBUyxDQUFTO0lBQ25CLFVBQVUsQ0FBVTtJQUVwQixLQUFLLENBQTBCO0lBRXZDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBOEI7UUFDdEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssZ0JBQWdCO1FBQ3RCLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUscUJBQXFCLENBQUM7UUFDeEUsTUFBTSxNQUFNLEdBQ1YsbUJBQW1CLElBQUksc0JBQXNCLElBQUksbUJBQW1CO1lBQ2xFLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxvQkFBb0I7WUFDMUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO1FBQzFCLE9BQU8sSUFBQSw2QkFBaUIsRUFBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRU8sWUFBWTtRQUNsQixPQUFPLElBQUksZUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUU7WUFDaEMsYUFBYSxFQUFFLDJCQUFhLENBQUMsT0FBTztZQUNwQyxpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLGlCQUFpQixFQUFFLDBCQUFpQixDQUFDLFNBQVM7WUFDOUMsVUFBVSxFQUFFLHlCQUFnQixDQUFDLFVBQVU7WUFDdkMsaUJBQWlCLEVBQUUsR0FBRztZQUN0QixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLFdBQVc7U0FDckMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGdCQUFnQjtRQUN0Qix3REFBd0Q7UUFDeEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUVoRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQ2I7cUNBQzZCLElBQUEsZ0JBQUksRUFBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUM7MkNBQ25DLElBQUEsZ0JBQUksRUFBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FDeEYsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLElBQUksb0NBQWdCLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRTtZQUM5QyxPQUFPLEVBQUUsQ0FBQywwQkFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDeEMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDOUIsK0RBQStEO1lBQy9ELFFBQVEsRUFBRTtnQkFDUixRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPO2FBQzdCO1lBQ0QsS0FBSyxFQUFFLEtBQUssRUFBRSx5R0FBeUc7WUFDdkgsNEVBQTRFO1lBQzVFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUscUJBQXFCO1lBQzlDLGlFQUFpRTtZQUNqRSx5RUFBeUU7WUFDekUsMEVBQTBFO1lBQzFFLHVEQUF1RDtZQUN2RCxvQkFBb0IsRUFBRSxJQUFJLENBQUMsU0FBUyxJQUFJLFNBQVM7U0FDbEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxzQkFBc0I7UUFDNUIsTUFBTSxVQUFVLEdBQUcsSUFBQSxxQkFBVyxFQUFDLElBQUEsZ0JBQUksRUFBQyxJQUFBLGdCQUFNLEdBQUUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDakUsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBRXRCLElBQUksQ0FBQztZQUNILGlEQUFpRDtZQUNqRCxNQUFNLFVBQVUsR0FBRyxJQUFBLGdCQUFJLEVBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDN0QsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JDLElBQUEsZ0JBQU0sRUFBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQ3BELFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDbkIsQ0FBQztZQUVELDRDQUE0QztZQUM1QyxNQUFNLFVBQVUsR0FBRyxJQUFBLGdCQUFJLEVBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ3RFLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO2dCQUNyQyxNQUFNLE9BQU8sR0FBRyxJQUFBLGdCQUFJLEVBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUMxQyxNQUFNLGFBQWEsR0FBRyxJQUFBLGdCQUFJLEVBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUU5Qyx5QkFBeUI7Z0JBQ3pCLElBQUEsbUJBQVMsRUFBQyxPQUFPLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFFeEMscUJBQXFCO2dCQUNyQixJQUFBLGdCQUFNLEVBQUMsVUFBVSxFQUFFLGFBQWEsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUN2RCxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ25CLENBQUM7WUFFRCxPQUFPLFNBQVMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDNUMsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsc0JBQVUsb0NBQW9DLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDeEUsb0JBQW9CO1lBQ3BCLElBQUksQ0FBQztnQkFDSCxJQUFBLGdCQUFNLEVBQUMsVUFBVSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUN2RCxDQUFDO1lBQUMsTUFBTSxDQUFDO2dCQUNQLHdCQUF3QjtZQUMxQixDQUFDO1lBQ0QsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNLLGVBQWUsQ0FBQyxPQUFlO1FBQ3JDLElBQUksQ0FBQztZQUNILE9BQU8sSUFBQSxvQkFBVSxFQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUEsa0JBQVEsRUFBQyxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNoRSxDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQzs7QUF4SUgsZ0RBeUlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgY3BTeW5jLFxuICBleGlzdHNTeW5jLFxuICBta2RpclN5bmMsXG4gIG1rZHRlbXBTeW5jLFxuICBybVN5bmMsXG4gIHN0YXRTeW5jLFxufSBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0IHsgdG1wZGlyIH0gZnJvbSBcIm5vZGU6b3NcIjtcbmltcG9ydCB7IGpvaW4gfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBSZW1vdmFsUG9saWN5IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQge1xuICBCbG9ja1B1YmxpY0FjY2VzcyxcbiAgQnVja2V0LFxuICBCdWNrZXRFbmNyeXB0aW9uLFxuICBCdWNrZXRQcm9wcyxcbiAgSUJ1Y2tldCxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuaW1wb3J0IHtcbiAgQnVja2V0RGVwbG95bWVudCxcbiAgQnVja2V0RGVwbG95bWVudFByb3BzLFxuICBTb3VyY2UsXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtczMtZGVwbG95bWVudFwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IExPR19QUkVGSVggfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IG5vcm1hbGl6ZUJhc2VQYXRoIH0gZnJvbSBcIi4vdXRpbHMvYmFzZS1wYXRoXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV4dGpzU3RhdGljQXNzZXRzT3ZlcnJpZGVzIHtcbiAgcmVhZG9ubHkgYnVja2V0UHJvcHM/OiBCdWNrZXRQcm9wcztcbiAgcmVhZG9ubHkgYnVja2V0RGVwbG95bWVudFByb3BzPzogQnVja2V0RGVwbG95bWVudFByb3BzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5leHRqc1N0YXRpY0Fzc2V0c1Byb3BzIHtcbiAgLyoqXG4gICAqIEJyaW5nIHlvdXIgb3duIFMzIGJ1Y2tldCBmb3Igc3RhdGljIGFzc2V0cy4gV2hlbiBwcm92aWRlZCwgY2RrLW5leHRqc1xuICAgKiB3aWxsIHNraXAgY3JlYXRpbmcgYSBuZXcgYnVja2V0IGFuZCBkZXBsb3kgYXNzZXRzIHRvIHRoaXMgYnVja2V0IGluc3RlYWQuXG4gICAqIFVzZSB3aXRoIGBiYXNlUGF0aGAgdG8gaXNvbGF0ZSBhc3NldHMgcGVyIGJyYW5jaCB3aGVuIHNoYXJpbmcgYSBidWNrZXQuXG4gICAqL1xuICByZWFkb25seSBidWNrZXQ/OiBJQnVja2V0O1xuICAvKipcbiAgICogRGlyZWN0b3J5IHdoZXJlIHRoZSBOZXh0LmpzIGFwcGxpY2F0aW9uIGlzIGxvY2F0ZWQuXG4gICAqIFRoaXMgc2hvdWxkIGNvbnRhaW4gdGhlIC5uZXh0IGRpcmVjdG9yeSBhbmQgb3RoZXIgYnVpbGQgYXJ0aWZhY3RzLlxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGREaXJlY3Rvcnk6IHN0cmluZztcbiAgLyoqXG4gICAqIEJ1aWxkIElEIGZyb20gTmV4dGpzQnVpbGQgdG8gdHJhY2sgYXNzZXQgdmVyc2lvbnNcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkSWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFByZWZpeCB0byB0aGUgVVJJIHBhdGggdGhlIGFwcCB3aWxsIGJlIHNlcnZlZCBhdC5cbiAgICogQGV4YW1wbGUgXCIvbXktYmFzZS1wYXRoXCJcbiAgICovXG4gIHJlYWRvbmx5IGJhc2VQYXRoPzogc3RyaW5nO1xuICByZWFkb25seSBvdmVycmlkZXM/OiBOZXh0anNTdGF0aWNBc3NldHNPdmVycmlkZXM7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBTMyBCdWNrZXQgZm9yIHB1YmxpYyBhbmQgX25leHQvc3RhdGljIGFzc2V0cyBhbmQgZGVwbG95cyB0aGVtIHVzaW5nIFMzRGVwbG95bWVudC5cbiAqL1xuZXhwb3J0IGNsYXNzIE5leHRqc1N0YXRpY0Fzc2V0cyBleHRlbmRzIENvbnN0cnVjdCB7XG4gIGJ1Y2tldDogSUJ1Y2tldDtcbiAgZGVwbG95bWVudDogQnVja2V0RGVwbG95bWVudDtcbiAgLyoqXG4gICAqIFMzIGtleSBwcmVmaXggdGhlIGFzc2V0cyBhcmUgYWN0dWFsbHkgdXBsb2FkZWQgdW5kZXIsIG5vcm1hbGl6ZWQgdG8gYSBiYXJlXG4gICAqIHBhdGggc2VnbWVudCAoZW1wdHkgd2hlbiB0aGV5IGxpdmUgYXQgdGhlIGJ1Y2tldCByb290KS5cbiAgICpcbiAgICogQ29uc3VtZXJzIHRoYXQgcmVhZCBhc3NldHMgYmFjayBvdXQgb2YgdGhlIGJ1Y2tldCAodGhlIGltYWdlIG9wdGltaXphdGlvblxuICAgKiBMYW1iZGEsIGBOZXh0anNBcGlgJ3MgUzMgaW50ZWdyYXRpb25zKSBtdXN0IHVzZSB0aGlzIHJhdGhlciB0aGFuIHRoZVxuICAgKiBgYmFzZVBhdGhgIHByb3AsIHNpbmNlIGBvdmVycmlkZXMuYnVja2V0RGVwbG95bWVudFByb3BzYCBjYW4gcmVwbGFjZSB0aGVcbiAgICogcHJlZml4IG91dHJpZ2h0LlxuICAgKi9cbiAgcmVhZG9ubHkga2V5UHJlZml4OiBzdHJpbmc7XG4gIHByaXZhdGUgc3RhZ2luZ0Rpcj86IHN0cmluZztcblxuICBwcml2YXRlIHByb3BzOiBOZXh0anNTdGF0aWNBc3NldHNQcm9wcztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTmV4dGpzU3RhdGljQXNzZXRzUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgICB0aGlzLmtleVByZWZpeCA9IHRoaXMucmVzb2x2ZUtleVByZWZpeCgpO1xuICAgIHRoaXMuYnVja2V0ID0gcHJvcHMuYnVja2V0ID8/IHRoaXMuY3JlYXRlQnVja2V0KCk7XG4gICAgdGhpcy5kZXBsb3ltZW50ID0gdGhpcy5jcmVhdGVEZXBsb3ltZW50KCk7XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZXMgdGhlIHNpbmdsZSBwcmVmaXggYm90aCB0aGUgdXBsb2FkIGFuZCB0aGUgVVJMcyB1c2UuIEFcbiAgICogYGJ1Y2tldERlcGxveW1lbnRQcm9wcy5kZXN0aW5hdGlvbktleVByZWZpeGAgb3ZlcnJpZGUgd2lucyBvdmVyIGBiYXNlUGF0aGAsXG4gICAqIGJ1dCBpdCdzIG5vcm1hbGl6ZWQgaGVyZSBhbmQgYGNyZWF0ZURlcGxveW1lbnRgIHNldHMgdGhlIG5vcm1hbGl6ZWQgdmFsdWVcbiAgICogYWZ0ZXIgdGhlIG92ZXJyaWRlIHNwcmVhZCwgc28gYGtleVByZWZpeGAgY2FuJ3QgZHJpZnQgZnJvbSB3aGVyZSB0aGUgYXNzZXRzXG4gICAqIGxhbmQuXG4gICAqL1xuICBwcml2YXRlIHJlc29sdmVLZXlQcmVmaXgoKTogc3RyaW5nIHtcbiAgICBjb25zdCBkZXBsb3ltZW50T3ZlcnJpZGVzID0gdGhpcy5wcm9wcy5vdmVycmlkZXM/LmJ1Y2tldERlcGxveW1lbnRQcm9wcztcbiAgICBjb25zdCBwcmVmaXggPVxuICAgICAgZGVwbG95bWVudE92ZXJyaWRlcyAmJiBcImRlc3RpbmF0aW9uS2V5UHJlZml4XCIgaW4gZGVwbG95bWVudE92ZXJyaWRlc1xuICAgICAgICA/IGRlcGxveW1lbnRPdmVycmlkZXMuZGVzdGluYXRpb25LZXlQcmVmaXhcbiAgICAgICAgOiB0aGlzLnByb3BzLmJhc2VQYXRoO1xuICAgIHJldHVybiBub3JtYWxpemVCYXNlUGF0aChwcmVmaXgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVCdWNrZXQoKSB7XG4gICAgcmV0dXJuIG5ldyBCdWNrZXQodGhpcywgXCJCdWNrZXRcIiwge1xuICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgYXV0b0RlbGV0ZU9iamVjdHM6IHRydWUsXG4gICAgICBlbmZvcmNlU1NMOiB0cnVlLFxuICAgICAgYmxvY2tQdWJsaWNBY2Nlc3M6IEJsb2NrUHVibGljQWNjZXNzLkJMT0NLX0FMTCxcbiAgICAgIGVuY3J5cHRpb246IEJ1Y2tldEVuY3J5cHRpb24uUzNfTUFOQUdFRCxcbiAgICAgIG1pbmltdW1UTFNWZXJzaW9uOiAxLjIsXG4gICAgICAuLi50aGlzLnByb3BzLm92ZXJyaWRlcz8uYnVja2V0UHJvcHMsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZURlcGxveW1lbnQoKSB7XG4gICAgLy8gQ3JlYXRlIGEgc3RhZ2luZyBkaXJlY3Rvcnkgd2l0aCB0aGUgY29ycmVjdCBzdHJ1Y3R1cmVcbiAgICB0aGlzLnN0YWdpbmdEaXIgPSB0aGlzLmNyZWF0ZVN0YWdpbmdEaXJlY3RvcnkoKTtcblxuICAgIGlmICghdGhpcy5zdGFnaW5nRGlyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBObyBzdGF0aWMgYXNzZXRzIGZvdW5kIHRvIGRlcGxveS4gRW5zdXJlIHlvdXIgTmV4dC5qcyBidWlsZCBvdXRwdXQgY29udGFpbnMgZWl0aGVyOlxuICAgICAgICAtIEEgJ3B1YmxpYycgZGlyZWN0b3J5IGF0OiAke2pvaW4odGhpcy5wcm9wcy5idWlsZERpcmVjdG9yeSwgXCJwdWJsaWNcIil9XG4gICAgICAgIC0gQSAnLm5leHQvc3RhdGljJyBkaXJlY3RvcnkgYXQ6ICR7am9pbih0aGlzLnByb3BzLmJ1aWxkRGlyZWN0b3J5LCBcIi5uZXh0XCIsIFwic3RhdGljXCIpfWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgQnVja2V0RGVwbG95bWVudCh0aGlzLCBcIkRlcGxveW1lbnRcIiwge1xuICAgICAgc291cmNlczogW1NvdXJjZS5hc3NldCh0aGlzLnN0YWdpbmdEaXIpXSxcbiAgICAgIGRlc3RpbmF0aW9uQnVja2V0OiB0aGlzLmJ1Y2tldCxcbiAgICAgIC8vIEFkZCBCVUlMRF9JRCBhcyBtZXRhZGF0YSB0byBhbGwgb2JqZWN0cyBmb3IgdmVyc2lvbiB0cmFja2luZ1xuICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgQlVJTERfSUQ6IHRoaXMucHJvcHMuYnVpbGRJZCxcbiAgICAgIH0sXG4gICAgICBwcnVuZTogZmFsc2UsIC8vIERvbid0IGRlbGV0ZSBleGlzdGluZyBhc3NldHMgdG8gcHJldmVudCA0MDRzIGR1cmluZyBkZXBsb3ltZW50LCBwcnVuaW5nIHdpbGwgYmUgaGFuZGxlZCBieSBwb3N0LWRlcGxveVxuICAgICAgLy8gUzNEZXBsb3ltZW50IGF1dG9tYXRpY2FsbHkgZGV0ZWN0cyBjb250ZW50IHR5cGVzIGJhc2VkIG9uIGZpbGUgZXh0ZW5zaW9uc1xuICAgICAgLi4udGhpcy5wcm9wcy5vdmVycmlkZXM/LmJ1Y2tldERlcGxveW1lbnRQcm9wcyxcbiAgICAgIC8vIFNldCBhZnRlciB0aGUgc3ByZWFkOiBgcmVzb2x2ZUtleVByZWZpeGAgYWxyZWFkeSBmb2xkZWQgaW4gYW55XG4gICAgICAvLyBgZGVzdGluYXRpb25LZXlQcmVmaXhgIG92ZXJyaWRlLCBzbyB0aGlzIGlzIHRoZSBub3JtYWxpemVkIGZvcm0gb2YgaXQuXG4gICAgICAvLyBMZXR0aW5nIHRoZSByYXcgb3ZlcnJpZGUgdGhyb3VnaCBoZXJlIHdvdWxkIHVwbG9hZCB0aGUgYXNzZXRzIHNvbWV3aGVyZVxuICAgICAgLy8gb3RoZXIgdGhhbiB0aGUgYGtleVByZWZpeGAgdXNlZCB0byBidWlsZCB0aGVpciBVUkxzLlxuICAgICAgZGVzdGluYXRpb25LZXlQcmVmaXg6IHRoaXMua2V5UHJlZml4IHx8IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBzdGFnaW5nIGRpcmVjdG9yeSB3aXRoIHRoZSBjb3JyZWN0IHN0cnVjdHVyZTpcbiAgICogLSBwdWJsaWMvIGZpbGVzIGdvIHRvIHJvb3RcbiAgICogLSAubmV4dC9zdGF0aWMvIGZpbGVzIGdvIHRvIF9uZXh0L3N0YXRpYy9cbiAgICovXG4gIHByaXZhdGUgY3JlYXRlU3RhZ2luZ0RpcmVjdG9yeSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHN0YWdpbmdEaXIgPSBta2R0ZW1wU3luYyhqb2luKHRtcGRpcigpLCBcIm5leHRqcy1hc3NldHMtXCIpKTtcbiAgICBsZXQgaGFzQXNzZXRzID0gZmFsc2U7XG5cbiAgICB0cnkge1xuICAgICAgLy8gQ29weSBwdWJsaWMgZGlyZWN0b3J5IGNvbnRlbnRzIHRvIHN0YWdpbmcgcm9vdFxuICAgICAgY29uc3QgcHVibGljUGF0aCA9IGpvaW4odGhpcy5wcm9wcy5idWlsZERpcmVjdG9yeSwgXCJwdWJsaWNcIik7XG4gICAgICBpZiAodGhpcy5kaXJlY3RvcnlFeGlzdHMocHVibGljUGF0aCkpIHtcbiAgICAgICAgY3BTeW5jKHB1YmxpY1BhdGgsIHN0YWdpbmdEaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgICAgICBoYXNBc3NldHMgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICAvLyBDb3B5IC5uZXh0L3N0YXRpYyB0byBzdGFnaW5nL19uZXh0L3N0YXRpY1xuICAgICAgY29uc3Qgc3RhdGljUGF0aCA9IGpvaW4odGhpcy5wcm9wcy5idWlsZERpcmVjdG9yeSwgXCIubmV4dFwiLCBcInN0YXRpY1wiKTtcbiAgICAgIGlmICh0aGlzLmRpcmVjdG9yeUV4aXN0cyhzdGF0aWNQYXRoKSkge1xuICAgICAgICBjb25zdCBuZXh0RGlyID0gam9pbihzdGFnaW5nRGlyLCBcIl9uZXh0XCIpO1xuICAgICAgICBjb25zdCBzdGF0aWNEZXN0RGlyID0gam9pbihuZXh0RGlyLCBcInN0YXRpY1wiKTtcblxuICAgICAgICAvLyBDcmVhdGUgX25leHQgZGlyZWN0b3J5XG4gICAgICAgIG1rZGlyU3luYyhuZXh0RGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICAgICAgICAvLyBDb3B5IHN0YXRpYyBhc3NldHNcbiAgICAgICAgY3BTeW5jKHN0YXRpY1BhdGgsIHN0YXRpY0Rlc3REaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgICAgICBoYXNBc3NldHMgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gaGFzQXNzZXRzID8gc3RhZ2luZ0RpciA6IHVuZGVmaW5lZDtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihgJHtMT0dfUFJFRklYfSBFcnJvciBjcmVhdGluZyBzdGFnaW5nIGRpcmVjdG9yeTpgLCBlcnJvcik7XG4gICAgICAvLyBDbGVhbiB1cCBvbiBlcnJvclxuICAgICAgdHJ5IHtcbiAgICAgICAgcm1TeW5jKHN0YWdpbmdEaXIsIHsgcmVjdXJzaXZlOiB0cnVlLCBmb3JjZTogdHJ1ZSB9KTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICAvLyBJZ25vcmUgY2xlYW51cCBlcnJvcnNcbiAgICAgIH1cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGEgZGlyZWN0b3J5IGV4aXN0c1xuICAgKi9cbiAgcHJpdmF0ZSBkaXJlY3RvcnlFeGlzdHMoZGlyUGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBleGlzdHNTeW5jKGRpclBhdGgpICYmIHN0YXRTeW5jKGRpclBhdGgpLmlzRGlyZWN0b3J5KCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iXX0=
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dGpzLXN0YXRpYy1hc3NldHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbmV4dGpzLXN0YXRpYy1hc3NldHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHFDQU9pQjtBQUNqQixxQ0FBaUM7QUFDakMseUNBQWlDO0FBQ2pDLDZDQUE0QztBQUM1QywrQ0FNNEI7QUFDNUIscUVBSXVDO0FBQ3ZDLDJDQUF1QztBQUN2QywyQ0FBeUM7QUFDekMsaURBQXNEO0FBK0J0RDs7R0FFRztBQUNILE1BQWEsa0JBQW1CLFNBQVEsc0JBQVM7O0lBQy9DLE1BQU0sQ0FBVTtJQUNoQixVQUFVLENBQW1CO0lBQzdCOzs7Ozs7OztPQVFHO0lBQ00sU0FBUyxDQUFTO0lBQ25CLFVBQVUsQ0FBVTtJQUVwQixLQUFLLENBQTBCO0lBRXZDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBOEI7UUFDdEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0ssZ0JBQWdCO1FBQ3RCLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUscUJBQXFCLENBQUM7UUFDeEUsTUFBTSxNQUFNLEdBQ1YsbUJBQW1CLEVBQUUsb0JBQW9CLEtBQUssU0FBUztZQUNyRCxDQUFDLENBQUMsbUJBQW1CLENBQUMsb0JBQW9CO1lBQzFDLENBQUMsQ0FBQyxJQUFJLENB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LE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFFOUMseUJBQXlCO2dCQUN6QixJQUFBLG1CQUFTLEVBQUMsT0FBTyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBRXhDLHFCQUFxQjtnQkFDckIsSUFBQSxnQkFBTSxFQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDdkQsU0FBUyxHQUFHLElBQUksQ0FBQztZQUNuQixDQUFDO1lBRUQsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQzVDLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLHNCQUFVLG9DQUFvQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3hFLG9CQUFvQjtZQUNwQixJQUFJLENBQUM7Z0JBQ0gsSUFBQSxnQkFBTSxFQUFDLFVBQVUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDdkQsQ0FBQztZQUFDLE1BQU0sQ0FBQztnQkFDUCx3QkFBd0I7WUFDMUIsQ0FBQztZQUNELE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxlQUFlLENBQUMsT0FBZTtRQUNyQyxJQUFJLENBQUM7WUFDSCxPQUFPLElBQUEsb0JBQVUsRUFBQyxPQUFPLENBQUMsSUFBSSxJQUFBLGtCQUFRLEVBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEUsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUM7O0FBOUlILGdEQStJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGNwU3luYyxcbiAgZXhpc3RzU3luYyxcbiAgbWtkaXJTeW5jLFxuICBta2R0ZW1wU3luYyxcbiAgcm1TeW5jLFxuICBzdGF0U3luYyxcbn0gZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCB7IHRtcGRpciB9IGZyb20gXCJub2RlOm9zXCI7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgUmVtb3ZhbFBvbGljeSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtcbiAgQmxvY2tQdWJsaWNBY2Nlc3MsXG4gIEJ1Y2tldCxcbiAgQnVja2V0RW5jcnlwdGlvbixcbiAgQnVja2V0UHJvcHMsXG4gIElCdWNrZXQsXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtczNcIjtcbmltcG9ydCB7XG4gIEJ1Y2tldERlcGxveW1lbnQsXG4gIEJ1Y2tldERlcGxveW1lbnRQcm9wcyxcbiAgU291cmNlLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzLWRlcGxveW1lbnRcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBMT0dfUFJFRklYIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBub3JtYWxpemVCYXNlUGF0aCB9IGZyb20gXCIuL3V0aWxzL2Jhc2UtcGF0aFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5leHRqc1N0YXRpY0Fzc2V0c092ZXJyaWRlcyB7XG4gIHJlYWRvbmx5IGJ1Y2tldFByb3BzPzogQnVja2V0UHJvcHM7XG4gIHJlYWRvbmx5IGJ1Y2tldERlcGxveW1lbnRQcm9wcz86IEJ1Y2tldERlcGxveW1lbnRQcm9wcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZXh0anNTdGF0aWNBc3NldHNQcm9wcyB7XG4gIC8qKlxuICAgKiBCcmluZyB5b3VyIG93biBTMyBidWNrZXQgZm9yIHN0YXRpYyBhc3NldHMuIFdoZW4gcHJvdmlkZWQsIGNkay1uZXh0anNcbiAgICogd2lsbCBza2lwIGNyZWF0aW5nIGEgbmV3IGJ1Y2tldCBhbmQgZGVwbG95IGFzc2V0cyB0byB0aGlzIGJ1Y2tldCBpbnN0ZWFkLlxuICAgKiBVc2Ugd2l0aCBgYmFzZVBhdGhgIHRvIGlzb2xhdGUgYXNzZXRzIHBlciBicmFuY2ggd2hlbiBzaGFyaW5nIGEgYnVja2V0LlxuICAgKi9cbiAgcmVhZG9ubHkgYnVja2V0PzogSUJ1Y2tldDtcbiAgLyoqXG4gICAqIERpcmVjdG9yeSB3aGVyZSB0aGUgTmV4dC5qcyBhcHBsaWNhdGlvbiBpcyBsb2NhdGVkLlxuICAgKiBUaGlzIHNob3VsZCBjb250YWluIHRoZSAubmV4dCBkaXJlY3RvcnkgYW5kIG90aGVyIGJ1aWxkIGFydGlmYWN0cy5cbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkRGlyZWN0b3J5OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBCdWlsZCBJRCBmcm9tIE5leHRqc0J1aWxkIHRvIHRyYWNrIGFzc2V0IHZlcnNpb25zXG4gICAqL1xuICByZWFkb25seSBidWlsZElkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBQcmVmaXggdG8gdGhlIFVSSSBwYXRoIHRoZSBhcHAgd2lsbCBiZSBzZXJ2ZWQgYXQuXG4gICAqIEBleGFtcGxlIFwiL215LWJhc2UtcGF0aFwiXG4gICAqL1xuICByZWFkb25seSBiYXNlUGF0aD86IHN0cmluZztcbiAgcmVhZG9ubHkgb3ZlcnJpZGVzPzogTmV4dGpzU3RhdGljQXNzZXRzT3ZlcnJpZGVzO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgUzMgQnVja2V0IGZvciBwdWJsaWMgYW5kIF9uZXh0L3N0YXRpYyBhc3NldHMgYW5kIGRlcGxveXMgdGhlbSB1c2luZyBTM0RlcGxveW1lbnQuXG4gKi9cbmV4cG9ydCBjbGFzcyBOZXh0anNTdGF0aWNBc3NldHMgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBidWNrZXQ6IElCdWNrZXQ7XG4gIGRlcGxveW1lbnQ6IEJ1Y2tldERlcGxveW1lbnQ7XG4gIC8qKlxuICAgKiBTMyBrZXkgcHJlZml4IHRoZSBhc3NldHMgYXJlIGFjdHVhbGx5IHVwbG9hZGVkIHVuZGVyLCBub3JtYWxpemVkIHRvIGEgYmFyZVxuICAgKiBwYXRoIHNlZ21lbnQgKGVtcHR5IHdoZW4gdGhleSBsaXZlIGF0IHRoZSBidWNrZXQgcm9vdCkuXG4gICAqXG4gICAqIENvbnN1bWVycyB0aGF0IHJlYWQgYXNzZXRzIGJhY2sgb3V0IG9mIHRoZSBidWNrZXQgKHRoZSBpbWFnZSBvcHRpbWl6YXRpb25cbiAgICogTGFtYmRhLCBgTmV4dGpzQXBpYCdzIFMzIGludGVncmF0aW9ucykgbXVzdCB1c2UgdGhpcyByYXRoZXIgdGhhbiB0aGVcbiAgICogYGJhc2VQYXRoYCBwcm9wLCBzaW5jZSBgb3ZlcnJpZGVzLmJ1Y2tldERlcGxveW1lbnRQcm9wc2AgY2FuIHJlcGxhY2UgdGhlXG4gICAqIHByZWZpeCBvdXRyaWdodC5cbiAgICovXG4gIHJlYWRvbmx5IGtleVByZWZpeDogc3RyaW5nO1xuICBwcml2YXRlIHN0YWdpbmdEaXI/OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBwcm9wczogTmV4dGpzU3RhdGljQXNzZXRzUHJvcHM7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IE5leHRqc1N0YXRpY0Fzc2V0c1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG4gICAgdGhpcy5rZXlQcmVmaXggPSB0aGlzLnJlc29sdmVLZXlQcmVmaXgoKTtcbiAgICB0aGlzLmJ1Y2tldCA9IHByb3BzLmJ1Y2tldCA/PyB0aGlzLmNyZWF0ZUJ1Y2tldCgpO1xuICAgIHRoaXMuZGVwbG95bWVudCA9IHRoaXMuY3JlYXRlRGVwbG95bWVudCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmVzIHRoZSBzaW5nbGUgcHJlZml4IGJvdGggdGhlIHVwbG9hZCBhbmQgdGhlIFVSTHMgdXNlLiBBXG4gICAqIGBidWNrZXREZXBsb3ltZW50UHJvcHMuZGVzdGluYXRpb25LZXlQcmVmaXhgIG92ZXJyaWRlIHdpbnMgb3ZlciBgYmFzZVBhdGhgLFxuICAgKiBidXQgaXQncyBub3JtYWxpemVkIGhlcmUgYW5kIGBjcmVhdGVEZXBsb3ltZW50YCBzZXRzIHRoZSBub3JtYWxpemVkIHZhbHVlXG4gICAqIGFmdGVyIHRoZSBvdmVycmlkZSBzcHJlYWQsIHNvIGBrZXlQcmVmaXhgIGNhbid0IGRyaWZ0IGZyb20gd2hlcmUgdGhlIGFzc2V0c1xuICAgKiBsYW5kLlxuICAgKlxuICAgKiBDb21wYXJlZCBhZ2FpbnN0IGB1bmRlZmluZWRgIHJhdGhlciB0aGFuIHRlc3RlZCB3aXRoIGBpbmAsIGJlY2F1c2UgYSBKU0lJXG4gICAqIGxhbmd1YWdlIGJpbmRpbmcgKG9yIGEgcHJvZ3JhbW1hdGljYWxseSBidWlsdCBwcm9wcyBvYmplY3QpIGNhbiBtYXRlcmlhbGl6ZVxuICAgKiBhbiB1bnNldCBvcHRpb25hbCBmaWVsZCBhcyBhbiBleHBsaWNpdCBgdW5kZWZpbmVkYC4gVHJlYXRpbmcgdGhhdCBhcyBhblxuICAgKiBpbnRlbnRpb25hbCBcIm1vdmUgdGhlIGFzc2V0cyB0byB0aGUgYnVja2V0IHJvb3RcIiBvdmVycmlkZSB3b3VsZCBzaWxlbnRseVxuICAgKiBkcm9wIGBiYXNlUGF0aGAgZnJvbSB0aGUgcHJlZml4LlxuICAgKi9cbiAgcHJpdmF0ZSByZXNvbHZlS2V5UHJlZml4KCk6IHN0cmluZyB7XG4gICAgY29uc3QgZGVwbG95bWVudE92ZXJyaWRlcyA9IHRoaXMucHJvcHMub3ZlcnJpZGVzPy5idWNrZXREZXBsb3ltZW50UHJvcHM7XG4gICAgY29uc3QgcHJlZml4ID1cbiAgICAgIGRlcGxveW1lbnRPdmVycmlkZXM/LmRlc3RpbmF0aW9uS2V5UHJlZml4ICE9PSB1bmRlZmluZWRcbiAgICAgICAgPyBkZXBsb3ltZW50T3ZlcnJpZGVzLmRlc3RpbmF0aW9uS2V5UHJlZml4XG4gICAgICAgIDogdGhpcy5wcm9wcy5iYXNlUGF0aDtcbiAgICByZXR1cm4gbm9ybWFsaXplQmFzZVBhdGgocHJlZml4KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQnVja2V0KCkge1xuICAgIHJldHVybiBuZXcgQnVja2V0KHRoaXMsIFwiQnVja2V0XCIsIHtcbiAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgIGF1dG9EZWxldGVPYmplY3RzOiB0cnVlLFxuICAgICAgZW5mb3JjZVNTTDogdHJ1ZSxcbiAgICAgIGJsb2NrUHVibGljQWNjZXNzOiBCbG9ja1B1YmxpY0FjY2Vzcy5CTE9DS19BTEwsXG4gICAgICBlbmNyeXB0aW9uOiBCdWNrZXRFbmNyeXB0aW9uLlMzX01BTkFHRUQsXG4gICAgICBtaW5pbXVtVExTVmVyc2lvbjogMS4yLFxuICAgICAgLi4udGhpcy5wcm9wcy5vdmVycmlkZXM/LmJ1Y2tldFByb3BzLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVEZXBsb3ltZW50KCkge1xuICAgIC8vIENyZWF0ZSBhIHN0YWdpbmcgZGlyZWN0b3J5IHdpdGggdGhlIGNvcnJlY3Qgc3RydWN0dXJlXG4gICAgdGhpcy5zdGFnaW5nRGlyID0gdGhpcy5jcmVhdGVTdGFnaW5nRGlyZWN0b3J5KCk7XG5cbiAgICBpZiAoIXRoaXMuc3RhZ2luZ0Rpcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgTm8gc3RhdGljIGFzc2V0cyBmb3VuZCB0byBkZXBsb3kuIEVuc3VyZSB5b3VyIE5leHQuanMgYnVpbGQgb3V0cHV0IGNvbnRhaW5zIGVpdGhlcjpcbiAgICAgICAgLSBBICdwdWJsaWMnIGRpcmVjdG9yeSBhdDogJHtqb2luKHRoaXMucHJvcHMuYnVpbGREaXJlY3RvcnksIFwicHVibGljXCIpfVxuICAgICAgICAtIEEgJy5uZXh0L3N0YXRpYycgZGlyZWN0b3J5IGF0OiAke2pvaW4odGhpcy5wcm9wcy5idWlsZERpcmVjdG9yeSwgXCIubmV4dFwiLCBcInN0YXRpY1wiKX1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEJ1Y2tldERlcGxveW1lbnQodGhpcywgXCJEZXBsb3ltZW50XCIsIHtcbiAgICAgIHNvdXJjZXM6IFtTb3VyY2UuYXNzZXQodGhpcy5zdGFnaW5nRGlyKV0sXG4gICAgICBkZXN0aW5hdGlvbkJ1Y2tldDogdGhpcy5idWNrZXQsXG4gICAgICAvLyBBZGQgQlVJTERfSUQgYXMgbWV0YWRhdGEgdG8gYWxsIG9iamVjdHMgZm9yIHZlcnNpb24gdHJhY2tpbmdcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIEJVSUxEX0lEOiB0aGlzLnByb3BzLmJ1aWxkSWQsXG4gICAgICB9LFxuICAgICAgcHJ1bmU6IGZhbHNlLCAvLyBEb24ndCBkZWxldGUgZXhpc3RpbmcgYXNzZXRzIHRvIHByZXZlbnQgNDA0cyBkdXJpbmcgZGVwbG95bWVudCwgcHJ1bmluZyB3aWxsIGJlIGhhbmRsZWQgYnkgcG9zdC1kZXBsb3lcbiAgICAgIC8vIFMzRGVwbG95bWVudCBhdXRvbWF0aWNhbGx5IGRldGVjdHMgY29udGVudCB0eXBlcyBiYXNlZCBvbiBmaWxlIGV4dGVuc2lvbnNcbiAgICAgIC4uLnRoaXMucHJvcHMub3ZlcnJpZGVzPy5idWNrZXREZXBsb3ltZW50UHJvcHMsXG4gICAgICAvLyBTZXQgYWZ0ZXIgdGhlIHNwcmVhZDogYHJlc29sdmVLZXlQcmVmaXhgIGFscmVhZHkgZm9sZGVkIGluIGFueVxuICAgICAgLy8gYGRlc3RpbmF0aW9uS2V5UHJlZml4YCBvdmVycmlkZSwgc28gdGhpcyBpcyB0aGUgbm9ybWFsaXplZCBmb3JtIG9mIGl0LlxuICAgICAgLy8gTGV0dGluZyB0aGUgcmF3IG92ZXJyaWRlIHRocm91Z2ggaGVyZSB3b3VsZCB1cGxvYWQgdGhlIGFzc2V0cyBzb21ld2hlcmVcbiAgICAgIC8vIG90aGVyIHRoYW4gdGhlIGBrZXlQcmVmaXhgIHVzZWQgdG8gYnVpbGQgdGhlaXIgVVJMcy5cbiAgICAgIGRlc3RpbmF0aW9uS2V5UHJlZml4OiB0aGlzLmtleVByZWZpeCB8fCB1bmRlZmluZWQsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgc3RhZ2luZyBkaXJlY3Rvcnkgd2l0aCB0aGUgY29ycmVjdCBzdHJ1Y3R1cmU6XG4gICAqIC0gcHVibGljLyBmaWxlcyBnbyB0byByb290XG4gICAqIC0gLm5leHQvc3RhdGljLyBmaWxlcyBnbyB0byBfbmV4dC9zdGF0aWMvXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZVN0YWdpbmdEaXJlY3RvcnkoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBzdGFnaW5nRGlyID0gbWtkdGVtcFN5bmMoam9pbih0bXBkaXIoKSwgXCJuZXh0anMtYXNzZXRzLVwiKSk7XG4gICAgbGV0IGhhc0Fzc2V0cyA9IGZhbHNlO1xuXG4gICAgdHJ5IHtcbiAgICAgIC8vIENvcHkgcHVibGljIGRpcmVjdG9yeSBjb250ZW50cyB0byBzdGFnaW5nIHJvb3RcbiAgICAgIGNvbnN0IHB1YmxpY1BhdGggPSBqb2luKHRoaXMucHJvcHMuYnVpbGREaXJlY3RvcnksIFwicHVibGljXCIpO1xuICAgICAgaWYgKHRoaXMuZGlyZWN0b3J5RXhpc3RzKHB1YmxpY1BhdGgpKSB7XG4gICAgICAgIGNwU3luYyhwdWJsaWNQYXRoLCBzdGFnaW5nRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgaGFzQXNzZXRzID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgLy8gQ29weSAubmV4dC9zdGF0aWMgdG8gc3RhZ2luZy9fbmV4dC9zdGF0aWNcbiAgICAgIGNvbnN0IHN0YXRpY1BhdGggPSBqb2luKHRoaXMucHJvcHMuYnVpbGREaXJlY3RvcnksIFwiLm5leHRcIiwgXCJzdGF0aWNcIik7XG4gICAgICBpZiAodGhpcy5kaXJlY3RvcnlFeGlzdHMoc3RhdGljUGF0aCkpIHtcbiAgICAgICAgY29uc3QgbmV4dERpciA9IGpvaW4oc3RhZ2luZ0RpciwgXCJfbmV4dFwiKTtcbiAgICAgICAgY29uc3Qgc3RhdGljRGVzdERpciA9IGpvaW4obmV4dERpciwgXCJzdGF0aWNcIik7XG5cbiAgICAgICAgLy8gQ3JlYXRlIF9uZXh0IGRpcmVjdG9yeVxuICAgICAgICBta2RpclN5bmMobmV4dERpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cbiAgICAgICAgLy8gQ29weSBzdGF0aWMgYXNzZXRzXG4gICAgICAgIGNwU3luYyhzdGF0aWNQYXRoLCBzdGF0aWNEZXN0RGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgaGFzQXNzZXRzID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGhhc0Fzc2V0cyA/IHN0YWdpbmdEaXIgOiB1bmRlZmluZWQ7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYCR7TE9HX1BSRUZJWH0gRXJyb3IgY3JlYXRpbmcgc3RhZ2luZyBkaXJlY3Rvcnk6YCwgZXJyb3IpO1xuICAgICAgLy8gQ2xlYW4gdXAgb24gZXJyb3JcbiAgICAgIHRyeSB7XG4gICAgICAgIHJtU3luYyhzdGFnaW5nRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgLy8gSWdub3JlIGNsZWFudXAgZXJyb3JzXG4gICAgICB9XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhIGRpcmVjdG9yeSBleGlzdHNcbiAgICovXG4gIHByaXZhdGUgZGlyZWN0b3J5RXhpc3RzKGRpclBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gZXhpc3RzU3luYyhkaXJQYXRoKSAmJiBzdGF0U3luYyhkaXJQYXRoKS5pc0RpcmVjdG9yeSgpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -53,6 +53,25 @@ describe("NextjsStaticAssets", () => {
53
53
  expect(createStaticAssets({ basePath: "/base", destinationKeyPrefix: "" })
54
54
  .keyPrefix).toBe("");
55
55
  });
56
+ // A JSII language binding, or a programmatically built props object, can
57
+ // materialize an unset optional field as an explicit `undefined`. Treating
58
+ // that as an intentional "move the assets to the bucket root" override would
59
+ // upload them there while CloudFront still requested them under basePath,
60
+ // failing synth with a key prefix mismatch that names neither the override
61
+ // nor the cause.
62
+ it("falls back to basePath when the override key is present but undefined", () => {
63
+ const staticAssets = new nextjs_static_assets_1.NextjsStaticAssets(stack, "NextjsStaticAssets", {
64
+ buildDirectory,
65
+ buildId: "test-build-id",
66
+ basePath: "/base",
67
+ overrides: {
68
+ bucketDeploymentProps: {
69
+ destinationKeyPrefix: undefined,
70
+ },
71
+ },
72
+ });
73
+ expect(staticAssets.keyPrefix).toBe("base");
74
+ });
56
75
  });
57
76
  });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dGpzLXN0YXRpYy1hc3NldHMudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9uZXh0anMtc3RhdGljLWFzc2V0cy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsc0RBQXNEO0FBQ3RELHFDQUF3RTtBQUN4RSxxQ0FBaUM7QUFDakMseUNBQWlDO0FBQ2pDLDZDQUF5QztBQUN6QyxpRUFBNEQ7QUFFNUQsUUFBUSxDQUFDLG9CQUFvQixFQUFFLEdBQUcsRUFBRTtJQUNsQyxJQUFJLEtBQVksQ0FBQztJQUNqQixJQUFJLGNBQXNCLENBQUM7SUFFM0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNkLEtBQUssR0FBRyxJQUFJLG1CQUFLLENBQUMsSUFBSSxpQkFBRyxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDMUMsY0FBYyxHQUFHLElBQUEscUJBQVcsRUFBQyxJQUFBLGdCQUFJLEVBQUMsSUFBQSxnQkFBTSxHQUFFLEVBQUUsdUJBQXVCLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sU0FBUyxHQUFHLElBQUEsZ0JBQUksRUFBQyxjQUFjLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzFELElBQUEsbUJBQVMsRUFBQyxTQUFTLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMxQyxJQUFBLHVCQUFhLEVBQUMsSUFBQSxnQkFBSSxFQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUN6RCxDQUFDLENBQUMsQ0FBQztJQUVILFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDYixJQUFBLGdCQUFNLEVBQUMsY0FBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDLENBQUMsQ0FBQztJQUVILFNBQVMsa0JBQWtCLENBQUMsS0FHM0I7UUFDQyxPQUFPLElBQUkseUNBQWtCLENBQUMsS0FBSyxFQUFFLG9CQUFvQixFQUFFO1lBQ3pELGNBQWM7WUFDZCxPQUFPLEVBQUUsZUFBZTtZQUN4QixRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7WUFDeEIsU0FBUyxFQUNQLEtBQUssQ0FBQyxvQkFBb0IsS0FBSyxTQUFTO2dCQUN0QyxDQUFDLENBQUMsU0FBUztnQkFDWCxDQUFDLENBQUM7b0JBQ0UscUJBQXFCLEVBQUU7d0JBQ3JCLG9CQUFvQixFQUFFLEtBQUssQ0FBQyxvQkFBb0I7cUJBQzFDO2lCQUNUO1NBQ1IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVEsQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFO1FBQ3pCLEVBQUUsQ0FBQyxrQ0FBa0MsRUFBRSxHQUFHLEVBQUU7WUFDMUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwRCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQywwQ0FBMEMsRUFBRSxHQUFHLEVBQUU7WUFDbEQsTUFBTSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVFLENBQUMsQ0FBQyxDQUFDO1FBRUgseUVBQXlFO1FBQ3pFLHNFQUFzRTtRQUN0RSxrREFBa0Q7UUFDbEQsRUFBRSxDQUFDLCtEQUErRCxFQUFFLEdBQUcsRUFBRTtZQUN2RSxNQUFNLENBQ0osa0JBQWtCLENBQUM7Z0JBQ2pCLFFBQVEsRUFBRSxPQUFPO2dCQUNqQixvQkFBb0IsRUFBRSxVQUFVO2FBQ2pDLENBQUMsQ0FBQyxTQUFTLENBQ2IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsNkNBQTZDLEVBQUUsR0FBRyxFQUFFO1lBQ3JELE1BQU0sQ0FDSixrQkFBa0IsQ0FBQyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsRUFBRSxFQUFFLENBQUM7aUJBQ2hFLFNBQVMsQ0FDYixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNiLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyAqL1xuaW1wb3J0IHsgbWtkaXJTeW5jLCBta2R0ZW1wU3luYywgcm1TeW5jLCB3cml0ZUZpbGVTeW5jIH0gZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCB7IHRtcGRpciB9IGZyb20gXCJub2RlOm9zXCI7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgQXBwLCBTdGFjayB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgTmV4dGpzU3RhdGljQXNzZXRzIH0gZnJvbSBcIi4vbmV4dGpzLXN0YXRpYy1hc3NldHNcIjtcblxuZGVzY3JpYmUoXCJOZXh0anNTdGF0aWNBc3NldHNcIiwgKCkgPT4ge1xuICBsZXQgc3RhY2s6IFN0YWNrO1xuICBsZXQgYnVpbGREaXJlY3Rvcnk6IHN0cmluZztcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBzdGFjayA9IG5ldyBTdGFjayhuZXcgQXBwKCksIFwiVGVzdFN0YWNrXCIpO1xuICAgIGJ1aWxkRGlyZWN0b3J5ID0gbWtkdGVtcFN5bmMoam9pbih0bXBkaXIoKSwgXCJuZXh0anMtc3RhdGljLWFzc2V0cy1cIikpO1xuICAgIGNvbnN0IHN0YXRpY0RpciA9IGpvaW4oYnVpbGREaXJlY3RvcnksIFwiLm5leHRcIiwgXCJzdGF0aWNcIik7XG4gICAgbWtkaXJTeW5jKHN0YXRpY0RpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgd3JpdGVGaWxlU3luYyhqb2luKHN0YXRpY0RpciwgXCJjaHVuay5qc1wiKSwgXCIvLyBjaHVua1wiKTtcbiAgfSk7XG5cbiAgYWZ0ZXJFYWNoKCgpID0+IHtcbiAgICBybVN5bmMoYnVpbGREaXJlY3RvcnksIHsgcmVjdXJzaXZlOiB0cnVlLCBmb3JjZTogdHJ1ZSB9KTtcbiAgfSk7XG5cbiAgZnVuY3Rpb24gY3JlYXRlU3RhdGljQXNzZXRzKHByb3BzOiB7XG4gICAgYmFzZVBhdGg/OiBzdHJpbmc7XG4gICAgZGVzdGluYXRpb25LZXlQcmVmaXg/OiBzdHJpbmc7XG4gIH0pIHtcbiAgICByZXR1cm4gbmV3IE5leHRqc1N0YXRpY0Fzc2V0cyhzdGFjaywgXCJOZXh0anNTdGF0aWNBc3NldHNcIiwge1xuICAgICAgYnVpbGREaXJlY3RvcnksXG4gICAgICBidWlsZElkOiBcInRlc3QtYnVpbGQtaWRcIixcbiAgICAgIGJhc2VQYXRoOiBwcm9wcy5iYXNlUGF0aCxcbiAgICAgIG92ZXJyaWRlczpcbiAgICAgICAgcHJvcHMuZGVzdGluYXRpb25LZXlQcmVmaXggPT09IHVuZGVmaW5lZFxuICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgOiB7XG4gICAgICAgICAgICAgIGJ1Y2tldERlcGxveW1lbnRQcm9wczoge1xuICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uS2V5UHJlZml4OiBwcm9wcy5kZXN0aW5hdGlvbktleVByZWZpeCxcbiAgICAgICAgICAgICAgfSBhcyBhbnksXG4gICAgICAgICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgZGVzY3JpYmUoXCJrZXlQcmVmaXhcIiwgKCkgPT4ge1xuICAgIGl0KFwiaXMgZW1wdHkgd2hlbiBubyBiYXNlUGF0aCBpcyBzZXRcIiwgKCkgPT4ge1xuICAgICAgZXhwZWN0KGNyZWF0ZVN0YXRpY0Fzc2V0cyh7fSkua2V5UHJlZml4KS50b0JlKFwiXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzdHJpcHMgc3Vycm91bmRpbmcgc2xhc2hlcyBmcm9tIGJhc2VQYXRoXCIsICgpID0+IHtcbiAgICAgIGV4cGVjdChjcmVhdGVTdGF0aWNBc3NldHMoeyBiYXNlUGF0aDogXCIvYmFzZS9cIiB9KS5rZXlQcmVmaXgpLnRvQmUoXCJiYXNlXCIpO1xuICAgIH0pO1xuXG4gICAgLy8gVGhlIG92ZXJyaWRlIGlzIHNwcmVhZCBsYXN0IGludG8gQnVja2V0RGVwbG95bWVudCwgc28gaXQgZGVjaWRlcyB3aGVyZVxuICAgIC8vIHRoZSBvYmplY3RzIGFjdHVhbGx5IGxhbmQuIENvbnN1bWVycyByZWFkaW5nIGFzc2V0cyBiYWNrIG91dCBvZiB0aGVcbiAgICAvLyBidWNrZXQgaGF2ZSB0byBzZWUgdGhhdCwgbm90IHRoZSBiYXNlUGF0aCBwcm9wLlxuICAgIGl0KFwicmVmbGVjdHMgYSBkZXN0aW5hdGlvbktleVByZWZpeCBvdmVycmlkZSByYXRoZXIgdGhhbiBiYXNlUGF0aFwiLCAoKSA9PiB7XG4gICAgICBleHBlY3QoXG4gICAgICAgIGNyZWF0ZVN0YXRpY0Fzc2V0cyh7XG4gICAgICAgICAgYmFzZVBhdGg6IFwiL2Jhc2VcIixcbiAgICAgICAgICBkZXN0aW5hdGlvbktleVByZWZpeDogXCJicmFuY2gteFwiLFxuICAgICAgICB9KS5rZXlQcmVmaXgsXG4gICAgICApLnRvQmUoXCJicmFuY2gteFwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwiaXMgZW1wdHkgd2hlbiBhbiBvdmVycmlkZSBjbGVhcnMgdGhlIHByZWZpeFwiLCAoKSA9PiB7XG4gICAgICBleHBlY3QoXG4gICAgICAgIGNyZWF0ZVN0YXRpY0Fzc2V0cyh7IGJhc2VQYXRoOiBcIi9iYXNlXCIsIGRlc3RpbmF0aW9uS2V5UHJlZml4OiBcIlwiIH0pXG4gICAgICAgICAgLmtleVByZWZpeCxcbiAgICAgICkudG9CZShcIlwiKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dGpzLXN0YXRpYy1hc3NldHMudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9uZXh0anMtc3RhdGljLWFzc2V0cy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsc0RBQXNEO0FBQ3RELHFDQUF3RTtBQUN4RSxxQ0FBaUM7QUFDakMseUNBQWlDO0FBQ2pDLDZDQUF5QztBQUN6QyxpRUFBNEQ7QUFFNUQsUUFBUSxDQUFDLG9CQUFvQixFQUFFLEdBQUcsRUFBRTtJQUNsQyxJQUFJLEtBQVksQ0FBQztJQUNqQixJQUFJLGNBQXNCLENBQUM7SUFFM0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNkLEtBQUssR0FBRyxJQUFJLG1CQUFLLENBQUMsSUFBSSxpQkFBRyxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDMUMsY0FBYyxHQUFHLElBQUEscUJBQVcsRUFBQyxJQUFBLGdCQUFJLEVBQUMsSUFBQSxnQkFBTSxHQUFFLEVBQUUsdUJBQXVCLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sU0FBUyxHQUFHLElBQUEsZ0JBQUksRUFBQyxjQUFjLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzFELElBQUEsbUJBQVMsRUFBQyxTQUFTLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMxQyxJQUFBLHVCQUFhLEVBQUMsSUFBQSxnQkFBSSxFQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUN6RCxDQUFDLENBQUMsQ0FBQztJQUVILFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDYixJQUFBLGdCQUFNLEVBQUMsY0FBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDLENBQUMsQ0FBQztJQUVILFNBQVMsa0JBQWtCLENBQUMsS0FHM0I7UUFDQyxPQUFPLElBQUkseUNBQWtCLENBQUMsS0FBSyxFQUFFLG9CQUFvQixFQUFFO1lBQ3pELGNBQWM7WUFDZCxPQUFPLEVBQUUsZUFBZTtZQUN4QixRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7WUFDeEIsU0FBUyxFQUNQLEtBQUssQ0FBQyxvQkFBb0IsS0FBSyxTQUFTO2dCQUN0QyxDQUFDLENBQUMsU0FBUztnQkFDWCxDQUFDLENBQUM7b0JBQ0UscUJBQXFCLEVBQUU7d0JBQ3JCLG9CQUFvQixFQUFFLEtBQUssQ0FBQyxvQkFBb0I7cUJBQzFDO2lCQUNUO1NBQ1IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVEsQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFO1FBQ3pCLEVBQUUsQ0FBQyxrQ0FBa0MsRUFBRSxHQUFHLEVBQUU7WUFDMUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwRCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQywwQ0FBMEMsRUFBRSxHQUFHLEVBQUU7WUFDbEQsTUFBTSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVFLENBQUMsQ0FBQyxDQUFDO1FBRUgseUVBQXlFO1FBQ3pFLHNFQUFzRTtRQUN0RSxrREFBa0Q7UUFDbEQsRUFBRSxDQUFDLCtEQUErRCxFQUFFLEdBQUcsRUFBRTtZQUN2RSxNQUFNLENBQ0osa0JBQWtCLENBQUM7Z0JBQ2pCLFFBQVEsRUFBRSxPQUFPO2dCQUNqQixvQkFBb0IsRUFBRSxVQUFVO2FBQ2pDLENBQUMsQ0FBQyxTQUFTLENBQ2IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsNkNBQTZDLEVBQUUsR0FBRyxFQUFFO1lBQ3JELE1BQU0sQ0FDSixrQkFBa0IsQ0FBQyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsRUFBRSxFQUFFLENBQUM7aUJBQ2hFLFNBQVMsQ0FDYixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNiLENBQUMsQ0FBQyxDQUFDO1FBRUgseUVBQXlFO1FBQ3pFLDJFQUEyRTtRQUMzRSw2RUFBNkU7UUFDN0UsMEVBQTBFO1FBQzFFLDJFQUEyRTtRQUMzRSxpQkFBaUI7UUFDakIsRUFBRSxDQUFDLHVFQUF1RSxFQUFFLEdBQUcsRUFBRTtZQUMvRSxNQUFNLFlBQVksR0FBRyxJQUFJLHlDQUFrQixDQUFDLEtBQUssRUFBRSxvQkFBb0IsRUFBRTtnQkFDdkUsY0FBYztnQkFDZCxPQUFPLEVBQUUsZUFBZTtnQkFDeEIsUUFBUSxFQUFFLE9BQU87Z0JBQ2pCLFNBQVMsRUFBRTtvQkFDVCxxQkFBcUIsRUFBRTt3QkFDckIsb0JBQW9CLEVBQUUsU0FBUztxQkFDekI7aUJBQ1Q7YUFDRixDQUFDLENBQUM7WUFFSCxNQUFNLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXMgKi9cbmltcG9ydCB7IG1rZGlyU3luYywgbWtkdGVtcFN5bmMsIHJtU3luYywgd3JpdGVGaWxlU3luYyB9IGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgeyB0bXBkaXIgfSBmcm9tIFwibm9kZTpvc1wiO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IEFwcCwgU3RhY2sgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IE5leHRqc1N0YXRpY0Fzc2V0cyB9IGZyb20gXCIuL25leHRqcy1zdGF0aWMtYXNzZXRzXCI7XG5cbmRlc2NyaWJlKFwiTmV4dGpzU3RhdGljQXNzZXRzXCIsICgpID0+IHtcbiAgbGV0IHN0YWNrOiBTdGFjaztcbiAgbGV0IGJ1aWxkRGlyZWN0b3J5OiBzdHJpbmc7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgc3RhY2sgPSBuZXcgU3RhY2sobmV3IEFwcCgpLCBcIlRlc3RTdGFja1wiKTtcbiAgICBidWlsZERpcmVjdG9yeSA9IG1rZHRlbXBTeW5jKGpvaW4odG1wZGlyKCksIFwibmV4dGpzLXN0YXRpYy1hc3NldHMtXCIpKTtcbiAgICBjb25zdCBzdGF0aWNEaXIgPSBqb2luKGJ1aWxkRGlyZWN0b3J5LCBcIi5uZXh0XCIsIFwic3RhdGljXCIpO1xuICAgIG1rZGlyU3luYyhzdGF0aWNEaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgIHdyaXRlRmlsZVN5bmMoam9pbihzdGF0aWNEaXIsIFwiY2h1bmsuanNcIiksIFwiLy8gY2h1bmtcIik7XG4gIH0pO1xuXG4gIGFmdGVyRWFjaCgoKSA9PiB7XG4gICAgcm1TeW5jKGJ1aWxkRGlyZWN0b3J5LCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gIH0pO1xuXG4gIGZ1bmN0aW9uIGNyZWF0ZVN0YXRpY0Fzc2V0cyhwcm9wczoge1xuICAgIGJhc2VQYXRoPzogc3RyaW5nO1xuICAgIGRlc3RpbmF0aW9uS2V5UHJlZml4Pzogc3RyaW5nO1xuICB9KSB7XG4gICAgcmV0dXJuIG5ldyBOZXh0anNTdGF0aWNBc3NldHMoc3RhY2ssIFwiTmV4dGpzU3RhdGljQXNzZXRzXCIsIHtcbiAgICAgIGJ1aWxkRGlyZWN0b3J5LFxuICAgICAgYnVpbGRJZDogXCJ0ZXN0LWJ1aWxkLWlkXCIsXG4gICAgICBiYXNlUGF0aDogcHJvcHMuYmFzZVBhdGgsXG4gICAgICBvdmVycmlkZXM6XG4gICAgICAgIHByb3BzLmRlc3RpbmF0aW9uS2V5UHJlZml4ID09PSB1bmRlZmluZWRcbiAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgIDoge1xuICAgICAgICAgICAgICBidWNrZXREZXBsb3ltZW50UHJvcHM6IHtcbiAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbktleVByZWZpeDogcHJvcHMuZGVzdGluYXRpb25LZXlQcmVmaXgsXG4gICAgICAgICAgICAgIH0gYXMgYW55LFxuICAgICAgICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGRlc2NyaWJlKFwia2V5UHJlZml4XCIsICgpID0+IHtcbiAgICBpdChcImlzIGVtcHR5IHdoZW4gbm8gYmFzZVBhdGggaXMgc2V0XCIsICgpID0+IHtcbiAgICAgIGV4cGVjdChjcmVhdGVTdGF0aWNBc3NldHMoe30pLmtleVByZWZpeCkudG9CZShcIlwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic3RyaXBzIHN1cnJvdW5kaW5nIHNsYXNoZXMgZnJvbSBiYXNlUGF0aFwiLCAoKSA9PiB7XG4gICAgICBleHBlY3QoY3JlYXRlU3RhdGljQXNzZXRzKHsgYmFzZVBhdGg6IFwiL2Jhc2UvXCIgfSkua2V5UHJlZml4KS50b0JlKFwiYmFzZVwiKTtcbiAgICB9KTtcblxuICAgIC8vIFRoZSBvdmVycmlkZSBpcyBzcHJlYWQgbGFzdCBpbnRvIEJ1Y2tldERlcGxveW1lbnQsIHNvIGl0IGRlY2lkZXMgd2hlcmVcbiAgICAvLyB0aGUgb2JqZWN0cyBhY3R1YWxseSBsYW5kLiBDb25zdW1lcnMgcmVhZGluZyBhc3NldHMgYmFjayBvdXQgb2YgdGhlXG4gICAgLy8gYnVja2V0IGhhdmUgdG8gc2VlIHRoYXQsIG5vdCB0aGUgYmFzZVBhdGggcHJvcC5cbiAgICBpdChcInJlZmxlY3RzIGEgZGVzdGluYXRpb25LZXlQcmVmaXggb3ZlcnJpZGUgcmF0aGVyIHRoYW4gYmFzZVBhdGhcIiwgKCkgPT4ge1xuICAgICAgZXhwZWN0KFxuICAgICAgICBjcmVhdGVTdGF0aWNBc3NldHMoe1xuICAgICAgICAgIGJhc2VQYXRoOiBcIi9iYXNlXCIsXG4gICAgICAgICAgZGVzdGluYXRpb25LZXlQcmVmaXg6IFwiYnJhbmNoLXhcIixcbiAgICAgICAgfSkua2V5UHJlZml4LFxuICAgICAgKS50b0JlKFwiYnJhbmNoLXhcIik7XG4gICAgfSk7XG5cbiAgICBpdChcImlzIGVtcHR5IHdoZW4gYW4gb3ZlcnJpZGUgY2xlYXJzIHRoZSBwcmVmaXhcIiwgKCkgPT4ge1xuICAgICAgZXhwZWN0KFxuICAgICAgICBjcmVhdGVTdGF0aWNBc3NldHMoeyBiYXNlUGF0aDogXCIvYmFzZVwiLCBkZXN0aW5hdGlvbktleVByZWZpeDogXCJcIiB9KVxuICAgICAgICAgIC5rZXlQcmVmaXgsXG4gICAgICApLnRvQmUoXCJcIik7XG4gICAgfSk7XG5cbiAgICAvLyBBIEpTSUkgbGFuZ3VhZ2UgYmluZGluZywgb3IgYSBwcm9ncmFtbWF0aWNhbGx5IGJ1aWx0IHByb3BzIG9iamVjdCwgY2FuXG4gICAgLy8gbWF0ZXJpYWxpemUgYW4gdW5zZXQgb3B0aW9uYWwgZmllbGQgYXMgYW4gZXhwbGljaXQgYHVuZGVmaW5lZGAuIFRyZWF0aW5nXG4gICAgLy8gdGhhdCBhcyBhbiBpbnRlbnRpb25hbCBcIm1vdmUgdGhlIGFzc2V0cyB0byB0aGUgYnVja2V0IHJvb3RcIiBvdmVycmlkZSB3b3VsZFxuICAgIC8vIHVwbG9hZCB0aGVtIHRoZXJlIHdoaWxlIENsb3VkRnJvbnQgc3RpbGwgcmVxdWVzdGVkIHRoZW0gdW5kZXIgYmFzZVBhdGgsXG4gICAgLy8gZmFpbGluZyBzeW50aCB3aXRoIGEga2V5IHByZWZpeCBtaXNtYXRjaCB0aGF0IG5hbWVzIG5laXRoZXIgdGhlIG92ZXJyaWRlXG4gICAgLy8gbm9yIHRoZSBjYXVzZS5cbiAgICBpdChcImZhbGxzIGJhY2sgdG8gYmFzZVBhdGggd2hlbiB0aGUgb3ZlcnJpZGUga2V5IGlzIHByZXNlbnQgYnV0IHVuZGVmaW5lZFwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBzdGF0aWNBc3NldHMgPSBuZXcgTmV4dGpzU3RhdGljQXNzZXRzKHN0YWNrLCBcIk5leHRqc1N0YXRpY0Fzc2V0c1wiLCB7XG4gICAgICAgIGJ1aWxkRGlyZWN0b3J5LFxuICAgICAgICBidWlsZElkOiBcInRlc3QtYnVpbGQtaWRcIixcbiAgICAgICAgYmFzZVBhdGg6IFwiL2Jhc2VcIixcbiAgICAgICAgb3ZlcnJpZGVzOiB7XG4gICAgICAgICAgYnVja2V0RGVwbG95bWVudFByb3BzOiB7XG4gICAgICAgICAgICBkZXN0aW5hdGlvbktleVByZWZpeDogdW5kZWZpbmVkLFxuICAgICAgICAgIH0gYXMgYW55LFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChzdGF0aWNBc3NldHMua2V5UHJlZml4KS50b0JlKFwiYmFzZVwiKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -160,6 +160,22 @@ export declare abstract class NextjsBaseConstruct extends Construct {
160
160
  * Finds construct overrides (if present) on props for any `NextjsType`
161
161
  */
162
162
  private getConstructOverrides;
163
+ /**
164
+ * The health check path as the running app actually serves it.
165
+ *
166
+ * Every consumer of this hits the app directly — the ALB target group forwards
167
+ * the path to the container unchanged, and the Lambda Web Adapter readiness
168
+ * check and the container's `wget` probe both target the local server — so the
169
+ * prefix that matters is the app's own `basePath`, not `resolvedBasePath`
170
+ * (which for `REGIONAL_FUNCTIONS` omits the stage the app includes, and for
171
+ * `REGIONAL_CONTAINERS` is only an S3 namespace). Left unprefixed, an app with
172
+ * a `basePath` 404s every health check, so the target never turns healthy and
173
+ * the deployment rolls back. `healthCheckPath` is therefore the path as the
174
+ * app routes it, without `basePath`; one that carries the prefix already gets
175
+ * it twice, which is the 0.6.0 breaking change for anyone who prefixed by hand
176
+ * to work around this.
177
+ */
178
+ private resolvedHealthCheckPath;
163
179
  /**
164
180
  * Get compute base props for both Lambda functions and containers
165
181
  */