cdk-nextjs 0.7.5 → 0.7.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +37 -37
- package/docs/adapter-runtime.md +1 -1
- package/docs/harness-coverage.md +9 -8
- package/lib/adapter/adapter.mjs +220 -149
- package/lib/adapter/aws-cache-store.d.ts +28 -4
- package/lib/adapter/aws-cache-store.js +52 -21
- package/lib/adapter/aws-cache-store.test.js +36 -1
- package/lib/adapter/build-outputs.js +23 -1
- package/lib/adapter/build-outputs.test.js +18 -1
- package/lib/adapter/cache-handler.d.ts +4 -3
- package/lib/adapter/cache-handler.js +1 -1
- package/lib/adapter/cache-handler.mjs +131 -61
- package/lib/adapter/cache-handler.test.js +31 -1
- package/lib/adapter/cache-utils.d.ts +68 -2
- package/lib/adapter/cache-utils.js +108 -2
- package/lib/adapter/cache-utils.test.js +45 -1
- package/lib/adapter/init-cache.d.ts +1 -1
- package/lib/adapter/init-cache.js +60 -37
- package/lib/adapter/init-cache.test.js +55 -2
- package/lib/adapter/local-file-cache-handler.d.ts +2 -2
- package/lib/adapter/local-file-cache-handler.js +4 -5
- package/lib/adapter/s3-cache-handler.d.ts +23 -7
- package/lib/adapter/s3-cache-handler.js +63 -27
- package/lib/adapter/s3-cache-handler.test.js +168 -1
- package/lib/adapter/use-cache-default-handler.mjs +32 -9
- package/lib/adapter/use-cache-remote-handler.js +2 -3
- package/lib/adapter/use-cache-remote-handler.mjs +81 -61
- package/lib/nextjs-api.js +1 -1
- package/lib/nextjs-build/nextjs-build.d.ts +0 -7
- package/lib/nextjs-build/nextjs-build.js +4 -11
- package/lib/nextjs-build/nextjs-build.test.js +4 -3
- package/lib/nextjs-cache.js +1 -1
- package/lib/nextjs-compute/nextjs-containers.js +1 -1
- package/lib/nextjs-compute/nextjs-functions.js +1 -1
- package/lib/nextjs-distribution.js +1 -1
- package/lib/nextjs-post-deploy.js +1 -1
- package/lib/nextjs-static-assets.js +1 -1
- package/lib/root-constructs/nextjs-base-construct.js +1 -1
- package/lib/root-constructs/nextjs-global-containers.js +1 -1
- package/lib/root-constructs/nextjs-global-functions.js +1 -1
- package/lib/root-constructs/nextjs-regional-containers.js +1 -1
- package/lib/root-constructs/nextjs-regional-functions.js +1 -1
- package/lib/runtime/image.d.ts +19 -0
- package/lib/runtime/image.js +28 -2
- package/lib/runtime/image.test.js +43 -1
- package/lib/runtime/lambda.mjs +14 -3
- package/lib/runtime/server.mjs +14 -3
- package/lib/utils/deployment-build-id.d.ts +11 -0
- package/lib/utils/deployment-build-id.js +15 -0
- package/package.json +3 -3
- package/scripts/e2e-harness/README.md +1 -1
|
@@ -152,4 +152,4 @@ class CdkNextjsCacheHandler {
|
|
|
152
152
|
async resetRequestCache() { }
|
|
153
153
|
}
|
|
154
154
|
exports.default = CdkNextjsCacheHandler;
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUtaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGFwdGVyL2NhY2hlLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7O0VBTUU7QUFDRixzREFBc0Q7QUFDdEQsa0RBQTZCO0FBYTdCLCtDQUF3QztBQUN4Qyx5RUFBbUU7QUFDbkUsaUVBQTREO0FBQzVELHlEQUFvRDtBQUNwRCx5REFBa0Q7QUFFbEQ7O0dBRUc7QUFDSCxNQUFxQixxQkFBcUI7SUFDeEM7Ozs7Ozs7OztPQVNHO0lBQ0ssTUFBTSxDQUFDLG1CQUFtQixHQUE4QixJQUFJLENBQUM7SUFDN0QsTUFBTSxDQUFDLHFCQUFxQixHQUEwQixJQUFJLENBQUM7SUFFbEQsV0FBVyxHQUFHLElBQUEsK0JBQVksR0FBRSxDQUFDO0lBQzdCLEtBQUssR0FBRyxJQUFBLGVBQVEsRUFBQyx1Q0FBdUMsQ0FBQyxDQUFDO0lBRTNFLDBCQUEwQjtJQUNsQixnQkFBZ0IsQ0FBeUI7SUFFakQsb0RBQW9EO0lBQzVDLGFBQWEsQ0FBc0I7SUFDbkMsZUFBZSxDQUFrQjtJQUV6QyxZQUFZLE9BQTRCO1FBQ3RDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLGdEQUFxQixFQUFFLENBQUM7WUFDcEQsSUFBSSxDQUFDLEtBQUssQ0FDUiwrQkFBK0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxFQUFFLENBQ3JFLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxlQUFlLEdBQUcscUJBQXFCLENBQUMscUJBQXFCO2dCQUNoRSxJQUFJLGlDQUFjLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUMzQyxJQUFJLENBQUMsYUFBYSxHQUFHLHFCQUFxQixDQUFDLG1CQUFtQjtnQkFDNUQsSUFBSSx5Q0FBa0IsRUFBRSxDQUFDO1FBQzdCLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxHQUFHLENBQ1AsUUFBZ0IsRUFDaEIsR0FBeUU7UUFFekUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIseUVBQXlFO1lBQ3pFLG1EQUFtRDtZQUNuRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUVELDRCQUE0QjtRQUM1QixNQUFNLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVELHNFQUFzRTtRQUN0RSx5RUFBeUU7UUFDekUsd0VBQXdFO1FBQ3hFLDZEQUE2RDtRQUM3RCxxRUFBcUU7UUFDckUsd0VBQXdFO1FBQ3hFLHlFQUF5RTtRQUN6RSxzRUFBc0U7UUFDdEUsSUFDRSxZQUFZO1lBQ1osQ0FBQyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUN2QztnQkFDRSxZQUFZLEVBQUUsWUFBWSxDQUFDLFlBQVk7Z0JBQ3ZDLEtBQUssRUFBRSxZQUFZLENBQUMsS0FBSzthQUMxQixFQUNELEdBQUcsRUFDSCxRQUFRLENBQ1QsQ0FBQyxFQUNGLENBQUM7WUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLDZCQUE2QixRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ3BELE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQy9DLENBQUM7YUFBTSxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMscUJBQXFCLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDNUMsT0FBTyxZQUFZLENBQUM7UUFDdEIsQ0FBQztRQUVELGdDQUFnQztRQUNoQyxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMvRCxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUN4Qyx1RUFBdUU7WUFDdkUsd0VBQXdFO1lBQ3hFLHFFQUFxRTtZQUNyRSxxRUFBcUU7WUFDckUsb0VBQW9FO1lBQ3BFLHFFQUFxRTtZQUNyRSx1RUFBdUU7WUFDdkUscUVBQXFFO1lBQ3JFLGVBQWU7WUFDZixJQUFJLFFBQVEsQ0FBQyxZQUFZLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDakMsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FDMUIsUUFBUSxFQUNSLFFBQVEsQ0FBQyxLQUFLLEVBQ2QsUUFBUSxDQUFDLFlBQVksQ0FDdEIsQ0FBQztZQUNKLENBQUM7WUFDRCxPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxHQUFHLENBQ1AsUUFBZ0IsRUFDaEIsSUFBa0MsRUFDbEMsR0FBeUU7UUFFekUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDVCxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFBLHFCQUFPLEVBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDOUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUMvQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sOEVBQThFO2dCQUM5RSxJQUFJLENBQUMsS0FBSyxDQUFDLCtCQUErQixRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ3hELENBQUM7WUFDRCxPQUFPO1FBQ1QsQ0FBQztRQUNELGtEQUFrRDtRQUNsRCxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzlELE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzdDLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxhQUFhLENBQ2pCLEdBQXNCLEVBQ3RCLFNBQStCO1FBRS9CLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLE9BQU87UUFDVCxDQUFDO1FBRUQsd0VBQXdFO1FBQ3hFLGtEQUFrRDtRQUNsRCxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILEtBQUssQ0FBQyxpQkFBaUIsS0FBbUIsQ0FBQzs7QUFoSzdDLHdDQWlLQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gIE5leHQuanMgQ3VzdG9tIENhY2hlIEhhbmRsZXIuIFNlZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvbmV4dC1jb25maWctanMvaW5jcmVtZW50YWxDYWNoZUhhbmRsZXJQYXRoXG4gIFxuICBPcmNoZXN0cmF0b3IgY2FjaGUgaGFuZGxlciB0aGF0IGNvbmRpdGlvbmFsbHkgdXNlcyBkaWZmZXJlbnQgY2FjaGluZyBzdHJhdGVnaWVzOlxuICAtIEJ1aWxkIHRpbWU6IExvY2FsRmlsZUNhY2hlSGFuZGxlciBmb3IgcHJlLWNhY2hpbmdcbiAgLSBSdW50aW1lOiBNZW1vcnlDYWNoZUhhbmRsZXIgKGZhc3QpICsgUzNEeW5hbW9DYWNoZUhhbmRsZXIgKHBlcnNpc3RlbnQpXG4qL1xuLyogZXNsaW50LWRpc2FibGUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzICovXG5pbXBvcnQgZ2V0RGVidWcgZnJvbSBcImRlYnVnXCI7XG5pbXBvcnQge1xuICBDYWNoZUhhbmRsZXIsXG4gIENhY2hlSGFuZGxlclZhbHVlLFxuICBDYWNoZUhhbmRsZXJDb250ZXh0LFxufSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9saWIvaW5jcmVtZW50YWwtY2FjaGVcIjtcbmltcG9ydCB0eXBlIHtcbiAgSW5jcmVtZW50YWxDYWNoZVZhbHVlLFxuICBHZXRJbmNyZW1lbnRhbEZldGNoQ2FjaGVDb250ZXh0LFxuICBHZXRJbmNyZW1lbnRhbFJlc3BvbnNlQ2FjaGVDb250ZXh0LFxuICBTZXRJbmNyZW1lbnRhbEZldGNoQ2FjaGVDb250ZXh0LFxuICBTZXRJbmNyZW1lbnRhbFJlc3BvbnNlQ2FjaGVDb250ZXh0LFxufSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9yZXNwb25zZS1jYWNoZVwiO1xuaW1wb3J0IHsgZ2V0VGFncyB9IGZyb20gXCIuL2NhY2hlLXV0aWxzXCI7XG5pbXBvcnQgeyBMb2NhbEZpbGVDYWNoZUhhbmRsZXIgfSBmcm9tIFwiLi9sb2NhbC1maWxlLWNhY2hlLWhhbmRsZXJcIjtcbmltcG9ydCB7IE1lbW9yeUNhY2hlSGFuZGxlciB9IGZyb20gXCIuL21lbW9yeS1jYWNoZS1oYW5kbGVyXCI7XG5pbXBvcnQgeyBTM0NhY2hlSGFuZGxlciB9IGZyb20gXCIuL3MzLWNhY2hlLWhhbmRsZXJcIjtcbmltcG9ydCB7IGlzQnVpbGRQaGFzZSB9IGZyb20gXCIuL3VzZS1jYWNoZS1jb21tb25cIjtcblxuLyoqXG4gKiBPcmNoZXN0cmF0b3IgY2FjaGUgaGFuZGxlciB0aGF0IGNvbmRpdGlvbmFsbHkgaW5zdGFudGlhdGVzIGhhbmRsZXJzIGJhc2VkIG9uIGVudmlyb25tZW50XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENka05leHRqc0NhY2hlSGFuZGxlciBpbXBsZW1lbnRzIENhY2hlSGFuZGxlciB7XG4gIC8qKlxuICAgKiBTaGFyZWQgc2luZ2xldG9uIGhhbmRsZXJzIGZvciBydW50aW1lLlxuICAgKlxuICAgKiBOZXh0LmpzIGNyZWF0ZXMgbXVsdGlwbGUgY2FjaGUgaGFuZGxlciBpbnN0YW5jZXMgKG9uZSBlYWNoIGZvciBBUFBfUEFHRSwgQVBQX1JPVVRFLCBGRVRDSCwgZXRjKS5cbiAgICogVXNpbmcgc2luZ2xldG9uIHBhdHRlcm4gcHJvdmlkZXM6XG4gICAqIC0gU2luZ2xlIFMzIGNsaWVudCBjb25uZWN0aW9uIHBvb2wgc2hhcmVkIGFjcm9zcyBhbGwgY2FjaGUgdHlwZXNcbiAgICogLSBVbmlmaWVkIG1lbW9yeSBjYWNoZSBhY2Nlc3NpYmxlIGJ5IGFsbCBpbnN0YW5jZXMgKGNhY2hlIGhpdHMgYmVuZWZpdCBhbGwpXG4gICAqIC0gTG93ZXIgbWVtb3J5IGZvb3RwcmludCBhbmQgZmFzdGVyIGluaXRpYWxpemF0aW9uXG4gICAqIC0gU2FtZSBDYWNoZUhhbmRsZXJDb250ZXh0IGZvciBhbGwgaW5zdGFuY2VzLCBzbyBubyBjb25maWd1cmF0aW9uIGxvc3NcbiAgICovXG4gIHByaXZhdGUgc3RhdGljIHNoYXJlZE1lbW9yeUhhbmRsZXI6IE1lbW9yeUNhY2hlSGFuZGxlciB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHN0YXRpYyBzaGFyZWRTM0R5bmFtb0hhbmRsZXI6IFMzQ2FjaGVIYW5kbGVyIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpc0J1aWxkVGltZSA9IGlzQnVpbGRQaGFzZSgpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlYnVnID0gZ2V0RGVidWcoXCJjZGstbmV4dGpzOmNhY2hlLWhhbmRsZXI6b3JjaGVzdHJhdG9yXCIpO1xuXG4gIC8vIFNldCBvbmx5IGF0IGJ1aWxkIHRpbWUuXG4gIHByaXZhdGUgbG9jYWxGaWxlSGFuZGxlciE6IExvY2FsRmlsZUNhY2hlSGFuZGxlcjtcblxuICAvLyBTZXQgb25seSBhdCBydW50aW1lLCBzaGFyZWQgYWNyb3NzIGFsbCBpbnN0YW5jZXMuXG4gIHByaXZhdGUgbWVtb3J5SGFuZGxlciE6IE1lbW9yeUNhY2hlSGFuZGxlcjtcbiAgcHJpdmF0ZSBzM0R5bmFtb0hhbmRsZXIhOiBTM0NhY2hlSGFuZGxlcjtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDYWNoZUhhbmRsZXJDb250ZXh0KSB7XG4gICAgaWYgKHRoaXMuaXNCdWlsZFRpbWUpIHtcbiAgICAgIHRoaXMubG9jYWxGaWxlSGFuZGxlciA9IG5ldyBMb2NhbEZpbGVDYWNoZUhhbmRsZXIoKTtcbiAgICAgIHRoaXMuZGVidWcoXG4gICAgICAgIGBCdWlsZC10aW1lIGNhY2hlIGRpcmVjdG9yeTogJHt0aGlzLmxvY2FsRmlsZUhhbmRsZXIuZ2V0Q2FjaGVEaXIoKX1gLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zM0R5bmFtb0hhbmRsZXIgPSBDZGtOZXh0anNDYWNoZUhhbmRsZXIuc2hhcmVkUzNEeW5hbW9IYW5kbGVyID8/PVxuICAgICAgICBuZXcgUzNDYWNoZUhhbmRsZXIoeyBjb250ZXh0OiBvcHRpb25zIH0pO1xuICAgICAgdGhpcy5tZW1vcnlIYW5kbGVyID0gQ2RrTmV4dGpzQ2FjaGVIYW5kbGVyLnNoYXJlZE1lbW9yeUhhbmRsZXIgPz89XG4gICAgICAgIG5ldyBNZW1vcnlDYWNoZUhhbmRsZXIoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IGNhY2hlIGVudHJ5XG4gICAqIC0gQnVpbGQgdGltZTogTm90IGltcGxlbWVudGVkIChidWlsZCBkb2Vzbid0IHJlYWQgY2FjaGUpXG4gICAqIC0gUnVudGltZTogVHJ5IG1lbW9yeSBmaXJzdCwgdGhlbiBTMy9EeW5hbW9EQlxuICAgKi9cbiAgYXN5bmMgZ2V0KFxuICAgIGNhY2hlS2V5OiBzdHJpbmcsXG4gICAgY3R4OiBHZXRJbmNyZW1lbnRhbEZldGNoQ2FjaGVDb250ZXh0IHwgR2V0SW5jcmVtZW50YWxSZXNwb25zZUNhY2hlQ29udGV4dCxcbiAgKTogUHJvbWlzZTxDYWNoZUhhbmRsZXJWYWx1ZSB8IG51bGw+IHtcbiAgICBpZiAodGhpcy5pc0J1aWxkVGltZSkge1xuICAgICAgLy8gUmVhZHMgYmFjayB3aGF0IHRoaXMgYnVpbGQgd3JvdGUsIHdoaWNoIGBjYWNoZUNvbXBvbmVudHNgIHByZXJlbmRlcmluZ1xuICAgICAgLy8gcmVxdWlyZXM7IHNlZSB7QGxpbmsgTG9jYWxGaWxlQ2FjaGVIYW5kbGVyLmdldH0uXG4gICAgICByZXR1cm4gdGhpcy5sb2NhbEZpbGVIYW5kbGVyLmdldChjYWNoZUtleSk7XG4gICAgfVxuXG4gICAgLy8gUnVudGltZTogdHJ5IG1lbW9yeSBmaXJzdFxuICAgIGNvbnN0IG1lbW9yeVJlc3VsdCA9IGF3YWl0IHRoaXMubWVtb3J5SGFuZGxlci5nZXQoY2FjaGVLZXkpO1xuICAgIC8vIEEgbWVtb3J5IGhpdCBpcyBjaGVja2VkIGFnYWluc3QgdGhlIHNhbWUgdGFnIG1hcmtlcnMgYW4gUzMgcmVhZCBpcy5cbiAgICAvLyBgcmV2YWxpZGF0ZVRhZ2AgY2FuIG9ubHkgY2xlYXIgdGhlIG1lbW9yeSBvZiB0aGUgaW5zdGFuY2UgdGhhdCByYW4gaXQsXG4gICAgLy8gc28gc2tpcHBpbmcgdGhlIGNoZWNrIGxlZnQgZXZlcnkgb3RoZXIgaW5zdGFuY2UgYW5zd2VyaW5nIGZyb20gbWVtb3J5XG4gICAgLy8gZm9yIHRoZSB3aG9sZSBtZW1vcnkgVFRMIC0gYW5kIENsb3VkRnJvbnQsIHdob3NlIGNvcHkgdGhhdFxuICAgIC8vIGByZXZhbGlkYXRlVGFnYCBoYWQganVzdCBpbnZhbGlkYXRlZCwgY2FjaGVkIHRoZSBzdGFsZSBwYWdlIGFnYWluLlxuICAgIC8vIFRoZSBjaGVjayBpcyBvbmUgRHluYW1vREIgYEJhdGNoR2V0SXRlbWA7IHdoYXQgdGhlIG1lbW9yeSBsYXllciBzdGlsbFxuICAgIC8vIHNhdmVzIGlzIHRoZSBTMyByZWFkIGFuZCB0aGUgcGFyc2Ugb2YgdGhlIGJvZHkuIEEgcmV2YWxpZGF0ZWQgZW50cnkgaXNcbiAgICAvLyBkcm9wcGVkIGFuZCByZWFkIGZyb20gUzMsIHdoaWNoIGhhbmRzIGl0IGJhY2sgZXhwaXJlZCBvciBhcyBhIG1pc3MuXG4gICAgaWYgKFxuICAgICAgbWVtb3J5UmVzdWx0ICYmXG4gICAgICAoYXdhaXQgdGhpcy5zM0R5bmFtb0hhbmRsZXIuaXNSZXZhbGlkYXRlZChcbiAgICAgICAge1xuICAgICAgICAgIGxhc3RNb2RpZmllZDogbWVtb3J5UmVzdWx0Lmxhc3RNb2RpZmllZCxcbiAgICAgICAgICB2YWx1ZTogbWVtb3J5UmVzdWx0LnZhbHVlLFxuICAgICAgICB9LFxuICAgICAgICBjdHgsXG4gICAgICAgIGNhY2hlS2V5LFxuICAgICAgKSlcbiAgICApIHtcbiAgICAgIHRoaXMuZGVidWcoYE1lbW9yeSBjYWNoZSBSRVZBTElEQVRFRDogJHtjYWNoZUtleX1gKTtcbiAgICAgIGF3YWl0IHRoaXMubWVtb3J5SGFuZGxlci5zZXQoY2FjaGVLZXksIG51bGwpO1xuICAgIH0gZWxzZSBpZiAobWVtb3J5UmVzdWx0KSB7XG4gICAgICB0aGlzLmRlYnVnKGBNZW1vcnkgY2FjaGUgSElUOiAke2NhY2hlS2V5fWApO1xuICAgICAgcmV0dXJuIG1lbW9yeVJlc3VsdDtcbiAgICB9XG5cbiAgICAvLyBNZW1vcnkgbWlzcyAtIHRyeSBTMy9EeW5hbW9EQlxuICAgIGNvbnN0IHMzUmVzdWx0ID0gYXdhaXQgdGhpcy5zM0R5bmFtb0hhbmRsZXIuZ2V0KGNhY2hlS2V5LCBjdHgpO1xuICAgIGlmIChzM1Jlc3VsdCkge1xuICAgICAgdGhpcy5kZWJ1ZyhgUzMgY2FjaGUgSElUOiAke2NhY2hlS2V5fWApO1xuICAgICAgLy8gUHJvbW90ZWQgd2l0aCB0aGUgUzMgZW50cnkncyBvd24gYGxhc3RNb2RpZmllZGAsIG5vdCB0aGUgdGltZSBvZiB0aGVcbiAgICAgIC8vIGNvcHk6IE5leHQuanMgYWdlcyB0aGUgZW50cnkgZnJvbSBpdCBmb3IgdGltZS1iYXNlZCByZXZhbGlkYXRpb24sIGFuZFxuICAgICAgLy8gdGhlIHRhZyBtYXJrZXJzIGFyZSBjb21wYXJlZCBhZ2FpbnN0IGl0IHRvby4gU3RhbXBpbmcgYERhdGUubm93KClgXG4gICAgICAvLyBtYWRlIGFuIGVudHJ5IHRoYXQgd2FzIGR1ZSBmb3IgcmVnZW5lcmF0aW9uIGxvb2sgZnJlc2hseSByZW5kZXJlZCxcbiAgICAgIC8vIGFuZCBvbmUgYSBzb2Z0IGByZXZhbGlkYXRlVGFnYCBoYWQgbWFkZSBzdGFsZSBsb29rIG5ld2VyIHRoYW4gdGhlXG4gICAgICAvLyBzdGFsZSBtYXJrLCBzbyBtZW1vcnkgaGl0cyBzZXJ2ZWQgaXQgYXMgZnJlc2ggZm9yIHRoZSB3aG9sZSBtZW1vcnlcbiAgICAgIC8vIFRUTC4gQW4gZW50cnkgYSB0YWcgcmV2YWxpZGF0aW9uIGV4cGlyZWQgKGBsYXN0TW9kaWZpZWQ6IC0xYCkgaXMgbm90XG4gICAgICAvLyBjb3BpZWQgYXQgYWxsOiB0aGUgcmUtcmVuZGVyIGl0IGFza3MgZm9yIHdyaXRlcyB0aGUgZnJlc2ggZW50cnkgdG9cbiAgICAgIC8vIGJvdGggbGF5ZXJzLlxuICAgICAgaWYgKHMzUmVzdWx0Lmxhc3RNb2RpZmllZCAhPT0gLTEpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5tZW1vcnlIYW5kbGVyLnNldChcbiAgICAgICAgICBjYWNoZUtleSxcbiAgICAgICAgICBzM1Jlc3VsdC52YWx1ZSxcbiAgICAgICAgICBzM1Jlc3VsdC5sYXN0TW9kaWZpZWQsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gczNSZXN1bHQ7XG4gICAgfVxuXG4gICAgdGhpcy5kZWJ1ZyhgQ2FjaGUgTUlTUzogJHtjYWNoZUtleX1gKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgY2FjaGUgZW50cnlcbiAgICogLSBCdWlsZCB0aW1lOiBXcml0ZSB0byBsb2NhbCBmaWxlIGNhY2hlIG9ubHkgKG9yIGRlbGV0ZSBpZiBkYXRhIGlzIG51bGwpXG4gICAqIC0gUnVudGltZTogV3JpdGUgdG8gYm90aCBtZW1vcnkgYW5kIFMzL0R5bmFtb0RCIChvciBkZWxldGUgaWYgZGF0YSBpcyBudWxsKVxuICAgKi9cbiAgYXN5bmMgc2V0KFxuICAgIGNhY2hlS2V5OiBzdHJpbmcsXG4gICAgZGF0YTogSW5jcmVtZW50YWxDYWNoZVZhbHVlIHwgbnVsbCxcbiAgICBjdHg6IFNldEluY3JlbWVudGFsRmV0Y2hDYWNoZUNvbnRleHQgfCBTZXRJbmNyZW1lbnRhbFJlc3BvbnNlQ2FjaGVDb250ZXh0LFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5pc0J1aWxkVGltZSkge1xuICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5sb2NhbEZpbGVIYW5kbGVyLnNldChjYWNoZUtleSwgZGF0YSwgZ2V0VGFncyhjdHgpKTtcbiAgICAgICAgdGhpcy5kZWJ1ZyhgQnVpbGQgY2FjaGUgd3JpdGU6ICR7Y2FjaGVLZXl9YCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBEZWxldGUgbm90IGltcGxlbWVudGVkIGZvciBsb2NhbCBmaWxlIGNhY2hlIChidWlsZC10aW1lIG9ubHkgY3JlYXRlcyBmaWxlcylcbiAgICAgICAgdGhpcy5kZWJ1ZyhgQnVpbGQgY2FjaGUgZGVsZXRlIGlnbm9yZWQ6ICR7Y2FjaGVLZXl9YCk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIFJ1bnRpbWU6IGJvdGggbGF5ZXJzLCB3aGVyZSBgbnVsbGAgaXMgYSBkZWxldGUuXG4gICAgdGhpcy5kZWJ1ZyhgQ2FjaGUgJHtkYXRhID8gXCJ3cml0ZVwiIDogXCJkZWxldGVcIn06ICR7Y2FjaGVLZXl9YCk7XG4gICAgYXdhaXQgdGhpcy5tZW1vcnlIYW5kbGVyLnNldChjYWNoZUtleSwgZGF0YSk7XG4gICAgYXdhaXQgdGhpcy5zM0R5bmFtb0hhbmRsZXIuc2V0KGNhY2hlS2V5LCBkYXRhLCBjdHgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldmFsaWRhdGUgdGFnc1xuICAgKiAtIEJ1aWxkIHRpbWU6IE5vdCBpbXBsZW1lbnRlZFxuICAgKiAtIFJ1bnRpbWU6IERlbGVnYXRlIHRvIFMzL0R5bmFtb0RCIGhhbmRsZXJcbiAgICovXG4gIGFzeW5jIHJldmFsaWRhdGVUYWcoXG4gICAgdGFnOiBzdHJpbmcgfCBzdHJpbmdbXSxcbiAgICBkdXJhdGlvbnM/OiB7IGV4cGlyZT86IG51bWJlciB9LFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5pc0J1aWxkVGltZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIE1lbW9yeSBoaXRzIGFyZSBjaGVja2VkIGFnYWluc3QgdGhlIHNhbWUgbWFya2VycyAoc2VlIGBnZXRgKSwgc28gb25seVxuICAgIC8vIHRoZSBTMy9EeW5hbW9EQiBoYW5kbGVyIGhhcyBhbnl0aGluZyB0byByZWNvcmQuXG4gICAgYXdhaXQgdGhpcy5zM0R5bmFtb0hhbmRsZXIucmV2YWxpZGF0ZVRhZyh0YWcsIGR1cmF0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogRGVsaWJlcmF0ZWx5IGEgbm8tb3AuIE5leHQuanMgY2FsbHMgYHJlc2V0UmVxdWVzdENhY2hlYCBhdCB0aGUgc3RhcnQgb2ZcbiAgICogZXZlcnkgcmVxdWVzdCAoYGJhc2Utc2VydmVyYCwgYGFwcC1wYWdlYCwgYGFwcC1yb3V0ZWApLCBhbmQgaXRzIG93blxuICAgKiBgRmlsZVN5c3RlbUNhY2hlYCAtIHdob3NlIExSVSBpcyBzaGFyZWQgYWNyb3NzIHJlcXVlc3RzIHRoZSBzYW1lIHdheSB0aGVcbiAgICogbWVtb3J5IGxheWVyIGlzIC0gbGVhdmVzIGl0IGVtcHR5OiB0aGUgaG9vayBpcyBmb3Igc3RhdGUgc2NvcGVkIHRvIG9uZVxuICAgKiByZXF1ZXN0LCBhbmQgbm90aGluZyBoZXJlIGlzLiBDbGVhcmluZyB0aGUgbWVtb3J5IGxheWVyIGluIGl0IG1lYW50IG5vXG4gICAqIGVudHJ5IGV2ZXIgc3Vydml2ZWQgdG8gYSBzZWNvbmQgcmVxdWVzdCwgc28gZXZlcnkgcmVhZCB3ZW50IHRvIFMzLlxuICAgKi9cbiAgYXN5bmMgcmVzZXRSZXF1ZXN0Q2FjaGUoKTogUHJvbWlzZTx2b2lkPiB7fVxufVxuIl19
|
|
155
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUtaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGFwdGVyL2NhY2hlLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7O0VBTUU7QUFDRixzREFBc0Q7QUFDdEQsa0RBQTZCO0FBTzdCLCtDQUl1QjtBQUN2Qix5RUFBbUU7QUFDbkUsaUVBQTREO0FBQzVELHlEQUFvRDtBQUNwRCx5REFBa0Q7QUFFbEQ7O0dBRUc7QUFDSCxNQUFxQixxQkFBcUI7SUFDeEM7Ozs7Ozs7OztPQVNHO0lBQ0ssTUFBTSxDQUFDLG1CQUFtQixHQUE4QixJQUFJLENBQUM7SUFDN0QsTUFBTSxDQUFDLHFCQUFxQixHQUEwQixJQUFJLENBQUM7SUFFbEQsV0FBVyxHQUFHLElBQUEsK0JBQVksR0FBRSxDQUFDO0lBQzdCLEtBQUssR0FBRyxJQUFBLGVBQVEsRUFBQyx1Q0FBdUMsQ0FBQyxDQUFDO0lBRTNFLDBCQUEwQjtJQUNsQixnQkFBZ0IsQ0FBeUI7SUFFakQsb0RBQW9EO0lBQzVDLGFBQWEsQ0FBc0I7SUFDbkMsZUFBZSxDQUFrQjtJQUV6QyxZQUFZLE9BQTRCO1FBQ3RDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLGdEQUFxQixFQUFFLENBQUM7WUFDcEQsSUFBSSxDQUFDLEtBQUssQ0FDUiwrQkFBK0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxFQUFFLENBQ3JFLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxlQUFlLEdBQUcscUJBQXFCLENBQUMscUJBQXFCO2dCQUNoRSxJQUFJLGlDQUFjLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUMzQyxJQUFJLENBQUMsYUFBYSxHQUFHLHFCQUFxQixDQUFDLG1CQUFtQjtnQkFDNUQsSUFBSSx5Q0FBa0IsRUFBRSxDQUFDO1FBQzdCLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxHQUFHLENBQ1AsUUFBZ0IsRUFDaEIsR0FBMkI7UUFFM0IsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIseUVBQXlFO1lBQ3pFLG1EQUFtRDtZQUNuRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUVELDRCQUE0QjtRQUM1QixNQUFNLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVELHNFQUFzRTtRQUN0RSx5RUFBeUU7UUFDekUsd0VBQXdFO1FBQ3hFLDZEQUE2RDtRQUM3RCxxRUFBcUU7UUFDckUsd0VBQXdFO1FBQ3hFLHlFQUF5RTtRQUN6RSxzRUFBc0U7UUFDdEUsSUFDRSxZQUFZO1lBQ1osQ0FBQyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUN2QztnQkFDRSxZQUFZLEVBQUUsWUFBWSxDQUFDLFlBQVk7Z0JBQ3ZDLEtBQUssRUFBRSxZQUFZLENBQUMsS0FBSzthQUMxQixFQUNELEdBQUcsRUFDSCxRQUFRLENBQ1QsQ0FBQyxFQUNGLENBQUM7WUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLDZCQUE2QixRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ3BELE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQy9DLENBQUM7YUFBTSxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMscUJBQXFCLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDNUMsT0FBTyxZQUFZLENBQUM7UUFDdEIsQ0FBQztRQUVELGdDQUFnQztRQUNoQyxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMvRCxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUN4Qyx1RUFBdUU7WUFDdkUsd0VBQXdFO1lBQ3hFLHFFQUFxRTtZQUNyRSxxRUFBcUU7WUFDckUsb0VBQW9FO1lBQ3BFLHFFQUFxRTtZQUNyRSx1RUFBdUU7WUFDdkUscUVBQXFFO1lBQ3JFLGVBQWU7WUFDZixJQUFJLFFBQVEsQ0FBQyxZQUFZLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDakMsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FDMUIsUUFBUSxFQUNSLFFBQVEsQ0FBQyxLQUFLLEVBQ2QsUUFBUSxDQUFDLFlBQVksQ0FDdEIsQ0FBQztZQUNKLENBQUM7WUFDRCxPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxHQUFHLENBQ1AsUUFBZ0IsRUFDaEIsSUFBa0MsRUFDbEMsR0FBMkI7UUFFM0IsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDVCxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFBLHFCQUFPLEVBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDOUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUMvQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sOEVBQThFO2dCQUM5RSxJQUFJLENBQUMsS0FBSyxDQUFDLCtCQUErQixRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ3hELENBQUM7WUFDRCxPQUFPO1FBQ1QsQ0FBQztRQUNELGtEQUFrRDtRQUNsRCxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzlELE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzdDLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxhQUFhLENBQ2pCLEdBQXNCLEVBQ3RCLFNBQStCO1FBRS9CLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLE9BQU87UUFDVCxDQUFDO1FBRUQsd0VBQXdFO1FBQ3hFLGtEQUFrRDtRQUNsRCxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILEtBQUssQ0FBQyxpQkFBaUIsS0FBbUIsQ0FBQzs7QUFoSzdDLHdDQWlLQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gIE5leHQuanMgQ3VzdG9tIENhY2hlIEhhbmRsZXIuIFNlZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvbmV4dC1jb25maWctanMvaW5jcmVtZW50YWxDYWNoZUhhbmRsZXJQYXRoXG4gIFxuICBPcmNoZXN0cmF0b3IgY2FjaGUgaGFuZGxlciB0aGF0IGNvbmRpdGlvbmFsbHkgdXNlcyBkaWZmZXJlbnQgY2FjaGluZyBzdHJhdGVnaWVzOlxuICAtIEJ1aWxkIHRpbWU6IExvY2FsRmlsZUNhY2hlSGFuZGxlciBmb3IgcHJlLWNhY2hpbmdcbiAgLSBSdW50aW1lOiBNZW1vcnlDYWNoZUhhbmRsZXIgKGZhc3QpICsgUzNEeW5hbW9DYWNoZUhhbmRsZXIgKHBlcnNpc3RlbnQpXG4qL1xuLyogZXNsaW50LWRpc2FibGUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzICovXG5pbXBvcnQgZ2V0RGVidWcgZnJvbSBcImRlYnVnXCI7XG5pbXBvcnQge1xuICBDYWNoZUhhbmRsZXIsXG4gIENhY2hlSGFuZGxlclZhbHVlLFxuICBDYWNoZUhhbmRsZXJDb250ZXh0LFxufSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9saWIvaW5jcmVtZW50YWwtY2FjaGVcIjtcbmltcG9ydCB0eXBlIHsgSW5jcmVtZW50YWxDYWNoZVZhbHVlIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvcmVzcG9uc2UtY2FjaGVcIjtcbmltcG9ydCB7XG4gIEdldENhY2hlSGFuZGxlckNvbnRleHQsXG4gIGdldFRhZ3MsXG4gIFNldENhY2hlSGFuZGxlckNvbnRleHQsXG59IGZyb20gXCIuL2NhY2hlLXV0aWxzXCI7XG5pbXBvcnQgeyBMb2NhbEZpbGVDYWNoZUhhbmRsZXIgfSBmcm9tIFwiLi9sb2NhbC1maWxlLWNhY2hlLWhhbmRsZXJcIjtcbmltcG9ydCB7IE1lbW9yeUNhY2hlSGFuZGxlciB9IGZyb20gXCIuL21lbW9yeS1jYWNoZS1oYW5kbGVyXCI7XG5pbXBvcnQgeyBTM0NhY2hlSGFuZGxlciB9IGZyb20gXCIuL3MzLWNhY2hlLWhhbmRsZXJcIjtcbmltcG9ydCB7IGlzQnVpbGRQaGFzZSB9IGZyb20gXCIuL3VzZS1jYWNoZS1jb21tb25cIjtcblxuLyoqXG4gKiBPcmNoZXN0cmF0b3IgY2FjaGUgaGFuZGxlciB0aGF0IGNvbmRpdGlvbmFsbHkgaW5zdGFudGlhdGVzIGhhbmRsZXJzIGJhc2VkIG9uIGVudmlyb25tZW50XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENka05leHRqc0NhY2hlSGFuZGxlciBpbXBsZW1lbnRzIENhY2hlSGFuZGxlciB7XG4gIC8qKlxuICAgKiBTaGFyZWQgc2luZ2xldG9uIGhhbmRsZXJzIGZvciBydW50aW1lLlxuICAgKlxuICAgKiBOZXh0LmpzIGNyZWF0ZXMgbXVsdGlwbGUgY2FjaGUgaGFuZGxlciBpbnN0YW5jZXMgKG9uZSBlYWNoIGZvciBBUFBfUEFHRSwgQVBQX1JPVVRFLCBGRVRDSCwgZXRjKS5cbiAgICogVXNpbmcgc2luZ2xldG9uIHBhdHRlcm4gcHJvdmlkZXM6XG4gICAqIC0gU2luZ2xlIFMzIGNsaWVudCBjb25uZWN0aW9uIHBvb2wgc2hhcmVkIGFjcm9zcyBhbGwgY2FjaGUgdHlwZXNcbiAgICogLSBVbmlmaWVkIG1lbW9yeSBjYWNoZSBhY2Nlc3NpYmxlIGJ5IGFsbCBpbnN0YW5jZXMgKGNhY2hlIGhpdHMgYmVuZWZpdCBhbGwpXG4gICAqIC0gTG93ZXIgbWVtb3J5IGZvb3RwcmludCBhbmQgZmFzdGVyIGluaXRpYWxpemF0aW9uXG4gICAqIC0gU2FtZSBDYWNoZUhhbmRsZXJDb250ZXh0IGZvciBhbGwgaW5zdGFuY2VzLCBzbyBubyBjb25maWd1cmF0aW9uIGxvc3NcbiAgICovXG4gIHByaXZhdGUgc3RhdGljIHNoYXJlZE1lbW9yeUhhbmRsZXI6IE1lbW9yeUNhY2hlSGFuZGxlciB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHN0YXRpYyBzaGFyZWRTM0R5bmFtb0hhbmRsZXI6IFMzQ2FjaGVIYW5kbGVyIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpc0J1aWxkVGltZSA9IGlzQnVpbGRQaGFzZSgpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlYnVnID0gZ2V0RGVidWcoXCJjZGstbmV4dGpzOmNhY2hlLWhhbmRsZXI6b3JjaGVzdHJhdG9yXCIpO1xuXG4gIC8vIFNldCBvbmx5IGF0IGJ1aWxkIHRpbWUuXG4gIHByaXZhdGUgbG9jYWxGaWxlSGFuZGxlciE6IExvY2FsRmlsZUNhY2hlSGFuZGxlcjtcblxuICAvLyBTZXQgb25seSBhdCBydW50aW1lLCBzaGFyZWQgYWNyb3NzIGFsbCBpbnN0YW5jZXMuXG4gIHByaXZhdGUgbWVtb3J5SGFuZGxlciE6IE1lbW9yeUNhY2hlSGFuZGxlcjtcbiAgcHJpdmF0ZSBzM0R5bmFtb0hhbmRsZXIhOiBTM0NhY2hlSGFuZGxlcjtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDYWNoZUhhbmRsZXJDb250ZXh0KSB7XG4gICAgaWYgKHRoaXMuaXNCdWlsZFRpbWUpIHtcbiAgICAgIHRoaXMubG9jYWxGaWxlSGFuZGxlciA9IG5ldyBMb2NhbEZpbGVDYWNoZUhhbmRsZXIoKTtcbiAgICAgIHRoaXMuZGVidWcoXG4gICAgICAgIGBCdWlsZC10aW1lIGNhY2hlIGRpcmVjdG9yeTogJHt0aGlzLmxvY2FsRmlsZUhhbmRsZXIuZ2V0Q2FjaGVEaXIoKX1gLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zM0R5bmFtb0hhbmRsZXIgPSBDZGtOZXh0anNDYWNoZUhhbmRsZXIuc2hhcmVkUzNEeW5hbW9IYW5kbGVyID8/PVxuICAgICAgICBuZXcgUzNDYWNoZUhhbmRsZXIoeyBjb250ZXh0OiBvcHRpb25zIH0pO1xuICAgICAgdGhpcy5tZW1vcnlIYW5kbGVyID0gQ2RrTmV4dGpzQ2FjaGVIYW5kbGVyLnNoYXJlZE1lbW9yeUhhbmRsZXIgPz89XG4gICAgICAgIG5ldyBNZW1vcnlDYWNoZUhhbmRsZXIoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IGNhY2hlIGVudHJ5XG4gICAqIC0gQnVpbGQgdGltZTogTm90IGltcGxlbWVudGVkIChidWlsZCBkb2Vzbid0IHJlYWQgY2FjaGUpXG4gICAqIC0gUnVudGltZTogVHJ5IG1lbW9yeSBmaXJzdCwgdGhlbiBTMy9EeW5hbW9EQlxuICAgKi9cbiAgYXN5bmMgZ2V0KFxuICAgIGNhY2hlS2V5OiBzdHJpbmcsXG4gICAgY3R4OiBHZXRDYWNoZUhhbmRsZXJDb250ZXh0LFxuICApOiBQcm9taXNlPENhY2hlSGFuZGxlclZhbHVlIHwgbnVsbD4ge1xuICAgIGlmICh0aGlzLmlzQnVpbGRUaW1lKSB7XG4gICAgICAvLyBSZWFkcyBiYWNrIHdoYXQgdGhpcyBidWlsZCB3cm90ZSwgd2hpY2ggYGNhY2hlQ29tcG9uZW50c2AgcHJlcmVuZGVyaW5nXG4gICAgICAvLyByZXF1aXJlczsgc2VlIHtAbGluayBMb2NhbEZpbGVDYWNoZUhhbmRsZXIuZ2V0fS5cbiAgICAgIHJldHVybiB0aGlzLmxvY2FsRmlsZUhhbmRsZXIuZ2V0KGNhY2hlS2V5KTtcbiAgICB9XG5cbiAgICAvLyBSdW50aW1lOiB0cnkgbWVtb3J5IGZpcnN0XG4gICAgY29uc3QgbWVtb3J5UmVzdWx0ID0gYXdhaXQgdGhpcy5tZW1vcnlIYW5kbGVyLmdldChjYWNoZUtleSk7XG4gICAgLy8gQSBtZW1vcnkgaGl0IGlzIGNoZWNrZWQgYWdhaW5zdCB0aGUgc2FtZSB0YWcgbWFya2VycyBhbiBTMyByZWFkIGlzLlxuICAgIC8vIGByZXZhbGlkYXRlVGFnYCBjYW4gb25seSBjbGVhciB0aGUgbWVtb3J5IG9mIHRoZSBpbnN0YW5jZSB0aGF0IHJhbiBpdCxcbiAgICAvLyBzbyBza2lwcGluZyB0aGUgY2hlY2sgbGVmdCBldmVyeSBvdGhlciBpbnN0YW5jZSBhbnN3ZXJpbmcgZnJvbSBtZW1vcnlcbiAgICAvLyBmb3IgdGhlIHdob2xlIG1lbW9yeSBUVEwgLSBhbmQgQ2xvdWRGcm9udCwgd2hvc2UgY29weSB0aGF0XG4gICAgLy8gYHJldmFsaWRhdGVUYWdgIGhhZCBqdXN0IGludmFsaWRhdGVkLCBjYWNoZWQgdGhlIHN0YWxlIHBhZ2UgYWdhaW4uXG4gICAgLy8gVGhlIGNoZWNrIGlzIG9uZSBEeW5hbW9EQiBgQmF0Y2hHZXRJdGVtYDsgd2hhdCB0aGUgbWVtb3J5IGxheWVyIHN0aWxsXG4gICAgLy8gc2F2ZXMgaXMgdGhlIFMzIHJlYWQgYW5kIHRoZSBwYXJzZSBvZiB0aGUgYm9keS4gQSByZXZhbGlkYXRlZCBlbnRyeSBpc1xuICAgIC8vIGRyb3BwZWQgYW5kIHJlYWQgZnJvbSBTMywgd2hpY2ggaGFuZHMgaXQgYmFjayBleHBpcmVkIG9yIGFzIGEgbWlzcy5cbiAgICBpZiAoXG4gICAgICBtZW1vcnlSZXN1bHQgJiZcbiAgICAgIChhd2FpdCB0aGlzLnMzRHluYW1vSGFuZGxlci5pc1JldmFsaWRhdGVkKFxuICAgICAgICB7XG4gICAgICAgICAgbGFzdE1vZGlmaWVkOiBtZW1vcnlSZXN1bHQubGFzdE1vZGlmaWVkLFxuICAgICAgICAgIHZhbHVlOiBtZW1vcnlSZXN1bHQudmFsdWUsXG4gICAgICAgIH0sXG4gICAgICAgIGN0eCxcbiAgICAgICAgY2FjaGVLZXksXG4gICAgICApKVxuICAgICkge1xuICAgICAgdGhpcy5kZWJ1ZyhgTWVtb3J5IGNhY2hlIFJFVkFMSURBVEVEOiAke2NhY2hlS2V5fWApO1xuICAgICAgYXdhaXQgdGhpcy5tZW1vcnlIYW5kbGVyLnNldChjYWNoZUtleSwgbnVsbCk7XG4gICAgfSBlbHNlIGlmIChtZW1vcnlSZXN1bHQpIHtcbiAgICAgIHRoaXMuZGVidWcoYE1lbW9yeSBjYWNoZSBISVQ6ICR7Y2FjaGVLZXl9YCk7XG4gICAgICByZXR1cm4gbWVtb3J5UmVzdWx0O1xuICAgIH1cblxuICAgIC8vIE1lbW9yeSBtaXNzIC0gdHJ5IFMzL0R5bmFtb0RCXG4gICAgY29uc3QgczNSZXN1bHQgPSBhd2FpdCB0aGlzLnMzRHluYW1vSGFuZGxlci5nZXQoY2FjaGVLZXksIGN0eCk7XG4gICAgaWYgKHMzUmVzdWx0KSB7XG4gICAgICB0aGlzLmRlYnVnKGBTMyBjYWNoZSBISVQ6ICR7Y2FjaGVLZXl9YCk7XG4gICAgICAvLyBQcm9tb3RlZCB3aXRoIHRoZSBTMyBlbnRyeSdzIG93biBgbGFzdE1vZGlmaWVkYCwgbm90IHRoZSB0aW1lIG9mIHRoZVxuICAgICAgLy8gY29weTogTmV4dC5qcyBhZ2VzIHRoZSBlbnRyeSBmcm9tIGl0IGZvciB0aW1lLWJhc2VkIHJldmFsaWRhdGlvbiwgYW5kXG4gICAgICAvLyB0aGUgdGFnIG1hcmtlcnMgYXJlIGNvbXBhcmVkIGFnYWluc3QgaXQgdG9vLiBTdGFtcGluZyBgRGF0ZS5ub3coKWBcbiAgICAgIC8vIG1hZGUgYW4gZW50cnkgdGhhdCB3YXMgZHVlIGZvciByZWdlbmVyYXRpb24gbG9vayBmcmVzaGx5IHJlbmRlcmVkLFxuICAgICAgLy8gYW5kIG9uZSBhIHNvZnQgYHJldmFsaWRhdGVUYWdgIGhhZCBtYWRlIHN0YWxlIGxvb2sgbmV3ZXIgdGhhbiB0aGVcbiAgICAgIC8vIHN0YWxlIG1hcmssIHNvIG1lbW9yeSBoaXRzIHNlcnZlZCBpdCBhcyBmcmVzaCBmb3IgdGhlIHdob2xlIG1lbW9yeVxuICAgICAgLy8gVFRMLiBBbiBlbnRyeSBhIHRhZyByZXZhbGlkYXRpb24gZXhwaXJlZCAoYGxhc3RNb2RpZmllZDogLTFgKSBpcyBub3RcbiAgICAgIC8vIGNvcGllZCBhdCBhbGw6IHRoZSByZS1yZW5kZXIgaXQgYXNrcyBmb3Igd3JpdGVzIHRoZSBmcmVzaCBlbnRyeSB0b1xuICAgICAgLy8gYm90aCBsYXllcnMuXG4gICAgICBpZiAoczNSZXN1bHQubGFzdE1vZGlmaWVkICE9PSAtMSkge1xuICAgICAgICBhd2FpdCB0aGlzLm1lbW9yeUhhbmRsZXIuc2V0KFxuICAgICAgICAgIGNhY2hlS2V5LFxuICAgICAgICAgIHMzUmVzdWx0LnZhbHVlLFxuICAgICAgICAgIHMzUmVzdWx0Lmxhc3RNb2RpZmllZCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzM1Jlc3VsdDtcbiAgICB9XG5cbiAgICB0aGlzLmRlYnVnKGBDYWNoZSBNSVNTOiAke2NhY2hlS2V5fWApO1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBjYWNoZSBlbnRyeVxuICAgKiAtIEJ1aWxkIHRpbWU6IFdyaXRlIHRvIGxvY2FsIGZpbGUgY2FjaGUgb25seSAob3IgZGVsZXRlIGlmIGRhdGEgaXMgbnVsbClcbiAgICogLSBSdW50aW1lOiBXcml0ZSB0byBib3RoIG1lbW9yeSBhbmQgUzMvRHluYW1vREIgKG9yIGRlbGV0ZSBpZiBkYXRhIGlzIG51bGwpXG4gICAqL1xuICBhc3luYyBzZXQoXG4gICAgY2FjaGVLZXk6IHN0cmluZyxcbiAgICBkYXRhOiBJbmNyZW1lbnRhbENhY2hlVmFsdWUgfCBudWxsLFxuICAgIGN0eDogU2V0Q2FjaGVIYW5kbGVyQ29udGV4dCxcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuaXNCdWlsZFRpbWUpIHtcbiAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgIGF3YWl0IHRoaXMubG9jYWxGaWxlSGFuZGxlci5zZXQoY2FjaGVLZXksIGRhdGEsIGdldFRhZ3MoY3R4KSk7XG4gICAgICAgIHRoaXMuZGVidWcoYEJ1aWxkIGNhY2hlIHdyaXRlOiAke2NhY2hlS2V5fWApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gRGVsZXRlIG5vdCBpbXBsZW1lbnRlZCBmb3IgbG9jYWwgZmlsZSBjYWNoZSAoYnVpbGQtdGltZSBvbmx5IGNyZWF0ZXMgZmlsZXMpXG4gICAgICAgIHRoaXMuZGVidWcoYEJ1aWxkIGNhY2hlIGRlbGV0ZSBpZ25vcmVkOiAke2NhY2hlS2V5fWApO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBSdW50aW1lOiBib3RoIGxheWVycywgd2hlcmUgYG51bGxgIGlzIGEgZGVsZXRlLlxuICAgIHRoaXMuZGVidWcoYENhY2hlICR7ZGF0YSA/IFwid3JpdGVcIiA6IFwiZGVsZXRlXCJ9OiAke2NhY2hlS2V5fWApO1xuICAgIGF3YWl0IHRoaXMubWVtb3J5SGFuZGxlci5zZXQoY2FjaGVLZXksIGRhdGEpO1xuICAgIGF3YWl0IHRoaXMuczNEeW5hbW9IYW5kbGVyLnNldChjYWNoZUtleSwgZGF0YSwgY3R4KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXZhbGlkYXRlIHRhZ3NcbiAgICogLSBCdWlsZCB0aW1lOiBOb3QgaW1wbGVtZW50ZWRcbiAgICogLSBSdW50aW1lOiBEZWxlZ2F0ZSB0byBTMy9EeW5hbW9EQiBoYW5kbGVyXG4gICAqL1xuICBhc3luYyByZXZhbGlkYXRlVGFnKFxuICAgIHRhZzogc3RyaW5nIHwgc3RyaW5nW10sXG4gICAgZHVyYXRpb25zPzogeyBleHBpcmU/OiBudW1iZXIgfSxcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuaXNCdWlsZFRpbWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBNZW1vcnkgaGl0cyBhcmUgY2hlY2tlZCBhZ2FpbnN0IHRoZSBzYW1lIG1hcmtlcnMgKHNlZSBgZ2V0YCksIHNvIG9ubHlcbiAgICAvLyB0aGUgUzMvRHluYW1vREIgaGFuZGxlciBoYXMgYW55dGhpbmcgdG8gcmVjb3JkLlxuICAgIGF3YWl0IHRoaXMuczNEeW5hbW9IYW5kbGVyLnJldmFsaWRhdGVUYWcodGFnLCBkdXJhdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGliZXJhdGVseSBhIG5vLW9wLiBOZXh0LmpzIGNhbGxzIGByZXNldFJlcXVlc3RDYWNoZWAgYXQgdGhlIHN0YXJ0IG9mXG4gICAqIGV2ZXJ5IHJlcXVlc3QgKGBiYXNlLXNlcnZlcmAsIGBhcHAtcGFnZWAsIGBhcHAtcm91dGVgKSwgYW5kIGl0cyBvd25cbiAgICogYEZpbGVTeXN0ZW1DYWNoZWAgLSB3aG9zZSBMUlUgaXMgc2hhcmVkIGFjcm9zcyByZXF1ZXN0cyB0aGUgc2FtZSB3YXkgdGhlXG4gICAqIG1lbW9yeSBsYXllciBpcyAtIGxlYXZlcyBpdCBlbXB0eTogdGhlIGhvb2sgaXMgZm9yIHN0YXRlIHNjb3BlZCB0byBvbmVcbiAgICogcmVxdWVzdCwgYW5kIG5vdGhpbmcgaGVyZSBpcy4gQ2xlYXJpbmcgdGhlIG1lbW9yeSBsYXllciBpbiBpdCBtZWFudCBub1xuICAgKiBlbnRyeSBldmVyIHN1cnZpdmVkIHRvIGEgc2Vjb25kIHJlcXVlc3QsIHNvIGV2ZXJ5IHJlYWQgd2VudCB0byBTMy5cbiAgICovXG4gIGFzeW5jIHJlc2V0UmVxdWVzdENhY2hlKCk6IFByb21pc2U8dm9pZD4ge31cbn1cbiJdfQ==
|
|
@@ -4704,14 +4704,14 @@ var init_getProfileName = __esm({
|
|
|
4704
4704
|
});
|
|
4705
4705
|
|
|
4706
4706
|
// node_modules/.pnpm/@smithy+core@3.35.0/node_modules/@smithy/core/dist-es/submodules/config/shared-ini-file-loader/getSSOTokenFilepath.js
|
|
4707
|
-
import { createHash } from "node:crypto";
|
|
4707
|
+
import { createHash as createHash2 } from "node:crypto";
|
|
4708
4708
|
import { join as join2 } from "node:path";
|
|
4709
4709
|
var getSSOTokenFilepath;
|
|
4710
4710
|
var init_getSSOTokenFilepath = __esm({
|
|
4711
4711
|
"node_modules/.pnpm/@smithy+core@3.35.0/node_modules/@smithy/core/dist-es/submodules/config/shared-ini-file-loader/getSSOTokenFilepath.js"() {
|
|
4712
4712
|
init_getHomeDir();
|
|
4713
4713
|
getSSOTokenFilepath = (id) => {
|
|
4714
|
-
const hasher =
|
|
4714
|
+
const hasher = createHash2("sha1");
|
|
4715
4715
|
const cacheName = hasher.update(id).digest("hex");
|
|
4716
4716
|
return join2(getHomeDir(), ".aws", "sso", "cache", `${cacheName}.json`);
|
|
4717
4717
|
};
|
|
@@ -6908,7 +6908,7 @@ var init_serdePlugin = __esm({
|
|
|
6908
6908
|
});
|
|
6909
6909
|
|
|
6910
6910
|
// node_modules/.pnpm/@smithy+core@3.35.0/node_modules/@smithy/core/dist-es/submodules/serde/hash-node/hash-node.js
|
|
6911
|
-
import { createHash as
|
|
6911
|
+
import { createHash as createHash3, createHmac } from "node:crypto";
|
|
6912
6912
|
function castSourceData(toCast, encoding) {
|
|
6913
6913
|
if (Buffer.isBuffer(toCast)) {
|
|
6914
6914
|
return toCast;
|
|
@@ -6942,7 +6942,7 @@ var init_hash_node = __esm({
|
|
|
6942
6942
|
return Promise.resolve(this.hash.digest());
|
|
6943
6943
|
}
|
|
6944
6944
|
reset() {
|
|
6945
|
-
this.hash = this.secret ? createHmac(this.algorithmIdentifier, castSourceData(this.secret)) :
|
|
6945
|
+
this.hash = this.secret ? createHmac(this.algorithmIdentifier, castSourceData(this.secret)) : createHash3(this.algorithmIdentifier);
|
|
6946
6946
|
}
|
|
6947
6947
|
};
|
|
6948
6948
|
}
|
|
@@ -8161,11 +8161,11 @@ var init_Md5Js = __esm({
|
|
|
8161
8161
|
});
|
|
8162
8162
|
|
|
8163
8163
|
// node_modules/.pnpm/@smithy+core@3.35.0/node_modules/@smithy/core/dist-es/submodules/checksum/md5/Md5Node.js
|
|
8164
|
-
import { createHash as
|
|
8164
|
+
import { createHash as createHash4 } from "node:crypto";
|
|
8165
8165
|
function buildNativeClass() {
|
|
8166
8166
|
return class Md5Node {
|
|
8167
8167
|
digestLength = 16;
|
|
8168
|
-
hash =
|
|
8168
|
+
hash = createHash4("md5");
|
|
8169
8169
|
update(data) {
|
|
8170
8170
|
this.hash.update(toUint8Array(data));
|
|
8171
8171
|
}
|
|
@@ -8174,7 +8174,7 @@ function buildNativeClass() {
|
|
|
8174
8174
|
return new Uint8Array(buf2.buffer, buf2.byteOffset, buf2.byteLength);
|
|
8175
8175
|
}
|
|
8176
8176
|
reset() {
|
|
8177
|
-
this.hash =
|
|
8177
|
+
this.hash = createHash4("md5");
|
|
8178
8178
|
}
|
|
8179
8179
|
};
|
|
8180
8180
|
}
|
|
@@ -8185,7 +8185,7 @@ var init_Md5Node = __esm({
|
|
|
8185
8185
|
init_Md5Js();
|
|
8186
8186
|
hasNativeCrypto = (() => {
|
|
8187
8187
|
try {
|
|
8188
|
-
|
|
8188
|
+
createHash4("md5");
|
|
8189
8189
|
return true;
|
|
8190
8190
|
} catch {
|
|
8191
8191
|
return false;
|
|
@@ -8502,7 +8502,7 @@ var init_Sha256Js = __esm({
|
|
|
8502
8502
|
});
|
|
8503
8503
|
|
|
8504
8504
|
// node_modules/.pnpm/@smithy+core@3.35.0/node_modules/@smithy/core/dist-es/submodules/checksum/sha256/Sha256Node.js
|
|
8505
|
-
import { createHash as
|
|
8505
|
+
import { createHash as createHash5, createHmac as createHmac2 } from "node:crypto";
|
|
8506
8506
|
function buildNativeClass3() {
|
|
8507
8507
|
return class Sha256Node {
|
|
8508
8508
|
digestLength = 32;
|
|
@@ -8536,7 +8536,7 @@ function buildNativeClass3() {
|
|
|
8536
8536
|
this.finished = false;
|
|
8537
8537
|
}
|
|
8538
8538
|
createHash() {
|
|
8539
|
-
return this.secret ? createHmac2("sha256", toBuffer(this.secret)) :
|
|
8539
|
+
return this.secret ? createHmac2("sha256", toBuffer(this.secret)) : createHash5("sha256");
|
|
8540
8540
|
}
|
|
8541
8541
|
};
|
|
8542
8542
|
}
|
|
@@ -8555,7 +8555,7 @@ var init_Sha256Node = __esm({
|
|
|
8555
8555
|
init_Sha256Js();
|
|
8556
8556
|
hasNativeCrypto2 = (() => {
|
|
8557
8557
|
try {
|
|
8558
|
-
|
|
8558
|
+
createHash5("sha256");
|
|
8559
8559
|
return true;
|
|
8560
8560
|
} catch {
|
|
8561
8561
|
return false;
|
|
@@ -26825,7 +26825,7 @@ var require_dist_cjs13 = __commonJS({
|
|
|
26825
26825
|
var { setCredentialFeature: setCredentialFeature2 } = (init_client3(), __toCommonJS(client_exports2));
|
|
26826
26826
|
var { CredentialsProviderError: CredentialsProviderError2, parseKnownFiles: parseKnownFiles2, getProfileName: getProfileName2 } = (init_config2(), __toCommonJS(config_exports));
|
|
26827
26827
|
var { HttpRequest: HttpRequest2 } = (init_protocols(), __toCommonJS(protocols_exports));
|
|
26828
|
-
var { createHash:
|
|
26828
|
+
var { createHash: createHash7, createPrivateKey, createPublicKey, sign: sign3 } = __require("node:crypto");
|
|
26829
26829
|
var { promises } = __require("node:fs");
|
|
26830
26830
|
var { homedir: homedir2 } = __require("node:os");
|
|
26831
26831
|
var { dirname: dirname2, join: join8 } = __require("node:path");
|
|
@@ -26994,7 +26994,7 @@ var require_dist_cjs13 = __commonJS({
|
|
|
26994
26994
|
getTokenFilePath() {
|
|
26995
26995
|
const directory = process.env.AWS_LOGIN_CACHE_DIRECTORY ?? join8(homedir2(), ".aws", "login", "cache");
|
|
26996
26996
|
const loginSessionBytes = Buffer.from(this.loginSession, "utf8");
|
|
26997
|
-
const loginSessionSha256 =
|
|
26997
|
+
const loginSessionSha256 = createHash7("sha256").update(loginSessionBytes).digest("hex");
|
|
26998
26998
|
return join8(directory, `${loginSessionSha256}.json`);
|
|
26999
26999
|
}
|
|
27000
27000
|
derToRawSignature(derSignature) {
|
|
@@ -36366,7 +36366,7 @@ var init_Sha1Js = __esm({
|
|
|
36366
36366
|
});
|
|
36367
36367
|
|
|
36368
36368
|
// node_modules/.pnpm/@aws-sdk+checksums@3.1001.1/node_modules/@aws-sdk/checksums/dist-es/submodules/sha/sha1/Sha1Node.js
|
|
36369
|
-
import { createHash as
|
|
36369
|
+
import { createHash as createHash6, createHmac as createHmac3 } from "node:crypto";
|
|
36370
36370
|
function buildNativeClass4() {
|
|
36371
36371
|
return class Sha1Node {
|
|
36372
36372
|
digestLength = 20;
|
|
@@ -36400,7 +36400,7 @@ function buildNativeClass4() {
|
|
|
36400
36400
|
this.finished = false;
|
|
36401
36401
|
}
|
|
36402
36402
|
createHash() {
|
|
36403
|
-
return this.secret ? createHmac3("sha1", toBuffer2(this.secret)) :
|
|
36403
|
+
return this.secret ? createHmac3("sha1", toBuffer2(this.secret)) : createHash6("sha1");
|
|
36404
36404
|
}
|
|
36405
36405
|
};
|
|
36406
36406
|
}
|
|
@@ -36419,7 +36419,7 @@ var init_Sha1Node = __esm({
|
|
|
36419
36419
|
init_Sha1Js();
|
|
36420
36420
|
hasNativeCrypto3 = (() => {
|
|
36421
36421
|
try {
|
|
36422
|
-
|
|
36422
|
+
createHash6("sha1");
|
|
36423
36423
|
return true;
|
|
36424
36424
|
} catch {
|
|
36425
36425
|
return false;
|
|
@@ -74013,6 +74013,9 @@ var require_dist_cjs22 = __commonJS({
|
|
|
74013
74013
|
// src/adapter/cache-handler.ts
|
|
74014
74014
|
var import_debug9 = __toESM(require_src());
|
|
74015
74015
|
|
|
74016
|
+
// src/adapter/cache-utils.ts
|
|
74017
|
+
import { createHash } from "node:crypto";
|
|
74018
|
+
|
|
74016
74019
|
// src/utils/base-path.ts
|
|
74017
74020
|
function normalizeBasePath(basePath) {
|
|
74018
74021
|
return (basePath || "").replace(/^\/+/, "").replace(/\/+$/, "");
|
|
@@ -74077,6 +74080,35 @@ function parseCacheValue(jsonString) {
|
|
|
74077
74080
|
return val;
|
|
74078
74081
|
});
|
|
74079
74082
|
}
|
|
74083
|
+
function cacheKeyFileName(cacheKey) {
|
|
74084
|
+
let cleanCacheKey = cacheKey;
|
|
74085
|
+
if (cacheKey === "/" || cacheKey === "") {
|
|
74086
|
+
cleanCacheKey = "index";
|
|
74087
|
+
} else if (cacheKey.startsWith("/")) {
|
|
74088
|
+
cleanCacheKey = cacheKey.slice(1);
|
|
74089
|
+
}
|
|
74090
|
+
return `${cleanCacheKey}.json`;
|
|
74091
|
+
}
|
|
74092
|
+
function sha256Hex(value) {
|
|
74093
|
+
return createHash("sha256").update(value).digest("hex");
|
|
74094
|
+
}
|
|
74095
|
+
var MAX_S3_KEY_BYTES = 1024;
|
|
74096
|
+
var MAX_BUILD_ID_BYTES = 127;
|
|
74097
|
+
var LONG_KEY_PREFIX = "_long-key";
|
|
74098
|
+
function cacheObjectName(cacheKey) {
|
|
74099
|
+
const name = cacheKeyFileName(cacheKey);
|
|
74100
|
+
if (Buffer.byteLength(name) <= MAX_S3_KEY_BYTES - (MAX_BUILD_ID_BYTES + 1)) {
|
|
74101
|
+
return name;
|
|
74102
|
+
}
|
|
74103
|
+
return `${LONG_KEY_PREFIX}/${sha256Hex(name)}.long`;
|
|
74104
|
+
}
|
|
74105
|
+
var ROUTE_CACHE_KEY_PREFIX = /^route-cache\/[A-Z_]+\/[0-9a-f]{64}\/\$(?=\/)/;
|
|
74106
|
+
function denormalizePagePath(pagePath) {
|
|
74107
|
+
if (pagePath === "/index") {
|
|
74108
|
+
return "/";
|
|
74109
|
+
}
|
|
74110
|
+
return pagePath.startsWith("/index/") ? pagePath.slice("/index".length) : pagePath;
|
|
74111
|
+
}
|
|
74080
74112
|
var NEXT_CACHE_TAGS_HEADER = "x-next-cache-tags";
|
|
74081
74113
|
function headerTags(value) {
|
|
74082
74114
|
const headers = value?.headers;
|
|
@@ -74103,12 +74135,11 @@ var LocalFileCacheHandler = class {
|
|
|
74103
74135
|
debug(`Created local cache directory: ${this.cacheDir}`);
|
|
74104
74136
|
}
|
|
74105
74137
|
/**
|
|
74106
|
-
* Build file path for cache entry
|
|
74107
|
-
*
|
|
74138
|
+
* Build file path for cache entry: {@link cacheObjectName}, the name the
|
|
74139
|
+
* runtime reads it back under (BucketDeployment will add buildId prefix)
|
|
74108
74140
|
*/
|
|
74109
74141
|
buildFilePath(cacheKey) {
|
|
74110
|
-
|
|
74111
|
-
return filePath;
|
|
74142
|
+
return join(this.cacheDir, cacheObjectName(cacheKey));
|
|
74112
74143
|
}
|
|
74113
74144
|
/**
|
|
74114
74145
|
* Read back an entry this build already wrote.
|
|
@@ -74205,13 +74236,10 @@ function resolveAwsCacheConfig() {
|
|
|
74205
74236
|
};
|
|
74206
74237
|
}
|
|
74207
74238
|
function buildS3Key(buildId, cacheKey) {
|
|
74208
|
-
|
|
74209
|
-
|
|
74210
|
-
|
|
74211
|
-
|
|
74212
|
-
cleanCacheKey = cacheKey.slice(1);
|
|
74213
|
-
}
|
|
74214
|
-
return join6(buildId, `${cleanCacheKey}.json`);
|
|
74239
|
+
return join6(buildId, cacheKeyFileName(cacheKey));
|
|
74240
|
+
}
|
|
74241
|
+
function s3ObjectKey(buildId, cacheKey) {
|
|
74242
|
+
return join6(buildId, cacheObjectName(cacheKey));
|
|
74215
74243
|
}
|
|
74216
74244
|
function markerState(marker, createdAt, now) {
|
|
74217
74245
|
const { revalidatedAt, expiredAt, staleAt } = marker;
|
|
@@ -74267,6 +74295,14 @@ function markerOf(item) {
|
|
|
74267
74295
|
}
|
|
74268
74296
|
var BATCH_GET_MAX_KEYS = 100;
|
|
74269
74297
|
var DEFAULT_TAG_REFRESH_MS = 1e3;
|
|
74298
|
+
var MAX_SORT_KEY_BYTES = 1024;
|
|
74299
|
+
function hashedTag(tag) {
|
|
74300
|
+
return `#${sha256Hex(tag)}`;
|
|
74301
|
+
}
|
|
74302
|
+
var MAX_TAG_BYTES = 768;
|
|
74303
|
+
function sortKeyTag(tag) {
|
|
74304
|
+
return Buffer.byteLength(tag) <= MAX_TAG_BYTES ? tag : hashedTag(tag);
|
|
74305
|
+
}
|
|
74270
74306
|
var TagMarkerTable = class {
|
|
74271
74307
|
constructor(client, tableName, buildId) {
|
|
74272
74308
|
this.client = client;
|
|
@@ -74289,7 +74325,7 @@ var TagMarkerTable = class {
|
|
|
74289
74325
|
TableName: this.tableName,
|
|
74290
74326
|
Key: {
|
|
74291
74327
|
pk: { S: this.buildId },
|
|
74292
|
-
sk: { S: tag }
|
|
74328
|
+
sk: { S: sortKeyTag(tag) }
|
|
74293
74329
|
},
|
|
74294
74330
|
...markerUpdate(now, durations),
|
|
74295
74331
|
ReturnValues: "ALL_NEW"
|
|
@@ -74309,7 +74345,13 @@ var TagMarkerTable = class {
|
|
|
74309
74345
|
const unique = Array.from(new Set(tags));
|
|
74310
74346
|
const markers = /* @__PURE__ */ new Map();
|
|
74311
74347
|
for (let i5 = 0; i5 < unique.length; i5 += BATCH_GET_MAX_KEYS) {
|
|
74312
|
-
|
|
74348
|
+
const tagBySk = new Map(
|
|
74349
|
+
unique.slice(i5, i5 + BATCH_GET_MAX_KEYS).map((tag) => [sortKeyTag(tag), tag])
|
|
74350
|
+
);
|
|
74351
|
+
let keys = Array.from(
|
|
74352
|
+
tagBySk.keys(),
|
|
74353
|
+
(sk) => ({ pk: { S: buildId }, sk: { S: sk } })
|
|
74354
|
+
);
|
|
74313
74355
|
for (let attempt = 0; keys?.length && attempt < 3; attempt++) {
|
|
74314
74356
|
const response = await this.client.send(
|
|
74315
74357
|
new import_client_dynamodb.BatchGetItemCommand({
|
|
@@ -74322,7 +74364,7 @@ var TagMarkerTable = class {
|
|
|
74322
74364
|
})
|
|
74323
74365
|
);
|
|
74324
74366
|
for (const item of response.Responses?.[tableName] ?? []) {
|
|
74325
|
-
const tag = item.sk?.S;
|
|
74367
|
+
const tag = tagBySk.get(item.sk?.S ?? "");
|
|
74326
74368
|
if (tag !== void 0) {
|
|
74327
74369
|
markers.set(tag, markerOf(item));
|
|
74328
74370
|
}
|
|
@@ -74360,11 +74402,13 @@ var RevalidationLog = class {
|
|
|
74360
74402
|
* to {@link LOG_PUT_ATTEMPTS} times.
|
|
74361
74403
|
*/
|
|
74362
74404
|
async put(tag, at, marker) {
|
|
74405
|
+
const skTag = sortKeyTag(tag);
|
|
74363
74406
|
for (let attempt = 1; ; attempt++) {
|
|
74364
74407
|
const item = {
|
|
74365
74408
|
pk: { S: this.pk },
|
|
74366
|
-
sk: { S: `${logSkPrefix(at)}#${
|
|
74367
|
-
ttl: { N: String(Math.ceil((at + REVALIDATION_LOG_TTL_MS) / 1e3)) }
|
|
74409
|
+
sk: { S: `${logSkPrefix(at)}#${skTag}` },
|
|
74410
|
+
ttl: { N: String(Math.ceil((at + REVALIDATION_LOG_TTL_MS) / 1e3)) },
|
|
74411
|
+
...skTag !== tag && { longTag: { S: tag } }
|
|
74368
74412
|
};
|
|
74369
74413
|
for (const field of MARKER_FIELDS) {
|
|
74370
74414
|
const value = marker[field];
|
|
@@ -74409,7 +74453,7 @@ var RevalidationLog = class {
|
|
|
74409
74453
|
":pk": { S: this.pk },
|
|
74410
74454
|
":since": { S: logSkPrefix(Math.max(0, since)) }
|
|
74411
74455
|
},
|
|
74412
|
-
ProjectionExpression: "sk, revalidatedAt, staleAt, expiredAt",
|
|
74456
|
+
ProjectionExpression: "sk, longTag, revalidatedAt, staleAt, expiredAt",
|
|
74413
74457
|
ExclusiveStartKey: startKey
|
|
74414
74458
|
})
|
|
74415
74459
|
);
|
|
@@ -74421,7 +74465,7 @@ var RevalidationLog = class {
|
|
|
74421
74465
|
rows.push({
|
|
74422
74466
|
sk,
|
|
74423
74467
|
at: Number(sk.slice(0, LOG_SK_DIGITS)),
|
|
74424
|
-
tag: sk.slice(LOG_SK_DIGITS + 1),
|
|
74468
|
+
tag: item.longTag?.S ?? sk.slice(LOG_SK_DIGITS + 1),
|
|
74425
74469
|
marker: markerOf(item)
|
|
74426
74470
|
});
|
|
74427
74471
|
}
|
|
@@ -75353,8 +75397,8 @@ var S3CacheHandler = class {
|
|
|
75353
75397
|
if (!this.config.bucketName) {
|
|
75354
75398
|
return null;
|
|
75355
75399
|
}
|
|
75356
|
-
const
|
|
75357
|
-
const response = await this.bucket.get(
|
|
75400
|
+
const objectKey = s3ObjectKey(this.config.buildId, cacheKey);
|
|
75401
|
+
const response = await this.bucket.get(objectKey);
|
|
75358
75402
|
if (!response) {
|
|
75359
75403
|
this.debug(`S3 CACHE MISS: ${cacheKey}`);
|
|
75360
75404
|
return null;
|
|
@@ -75364,7 +75408,7 @@ var S3CacheHandler = class {
|
|
|
75364
75408
|
this.debug(`S3 CACHE INVALIDATED BY TAG: ${cacheKey}`);
|
|
75365
75409
|
return isFetchCacheGet(ctx) ? null : { lastModified: EXPIRED_LAST_MODIFIED, value: parsedValue.value };
|
|
75366
75410
|
}
|
|
75367
|
-
this.debug(`S3 CACHE HIT: ${cacheKey} (${
|
|
75411
|
+
this.debug(`S3 CACHE HIT: ${cacheKey} (${objectKey})`);
|
|
75368
75412
|
return {
|
|
75369
75413
|
lastModified: parsedValue.lastModified,
|
|
75370
75414
|
value: parsedValue.value
|
|
@@ -75436,6 +75480,8 @@ var S3CacheHandler = class {
|
|
|
75436
75480
|
this.softRevalidatedKeys.add(cacheKey);
|
|
75437
75481
|
}
|
|
75438
75482
|
async set(cacheKey, data, ctx) {
|
|
75483
|
+
const s3Key = buildS3Key(this.config.buildId, cacheKey);
|
|
75484
|
+
const objectKey = s3ObjectKey(this.config.buildId, cacheKey);
|
|
75439
75485
|
try {
|
|
75440
75486
|
if (!data) {
|
|
75441
75487
|
this.debug(`S3 CACHE DELETE: ${cacheKey}`);
|
|
@@ -75443,16 +75489,15 @@ var S3CacheHandler = class {
|
|
|
75443
75489
|
return;
|
|
75444
75490
|
}
|
|
75445
75491
|
this.softRevalidatedKeys.delete(cacheKey);
|
|
75446
|
-
const
|
|
75447
|
-
const tags2 = await this.storedEntryTags(s3Key2, ctx);
|
|
75492
|
+
const tags2 = await this.storedEntryTags(objectKey, ctx);
|
|
75448
75493
|
await this.s3Client.send(
|
|
75449
75494
|
new import_client_s32.DeleteObjectCommand({
|
|
75450
75495
|
Bucket: this.config.bucketName,
|
|
75451
|
-
Key:
|
|
75496
|
+
Key: objectKey
|
|
75452
75497
|
})
|
|
75453
75498
|
);
|
|
75454
|
-
this.debug(`S3 CACHE DELETED: ${
|
|
75455
|
-
await this.deleteDynamoDBTagMappings(
|
|
75499
|
+
this.debug(`S3 CACHE DELETED: ${objectKey}`);
|
|
75500
|
+
await this.deleteDynamoDBTagMappings(s3Key, tags2);
|
|
75456
75501
|
return;
|
|
75457
75502
|
}
|
|
75458
75503
|
const tags = entryTags({ tags: getTags(ctx), value: data });
|
|
@@ -75462,7 +75507,6 @@ var S3CacheHandler = class {
|
|
|
75462
75507
|
if (!this.config.bucketName) {
|
|
75463
75508
|
return;
|
|
75464
75509
|
}
|
|
75465
|
-
const s3Key = this.buildS3Key(cacheKey);
|
|
75466
75510
|
const cacheHandlerValue = {
|
|
75467
75511
|
// On the marker clock, since that is what it is compared with.
|
|
75468
75512
|
lastModified: markerClock(),
|
|
@@ -75473,7 +75517,7 @@ var S3CacheHandler = class {
|
|
|
75473
75517
|
tags
|
|
75474
75518
|
};
|
|
75475
75519
|
const body = serializeCacheValue(cacheEntryWithTags);
|
|
75476
|
-
await this.bucket.putJson(
|
|
75520
|
+
await this.bucket.putJson(objectKey, body);
|
|
75477
75521
|
this.debug(`S3 CACHE STORED: ${cacheKey} (${data.kind})`);
|
|
75478
75522
|
if (this.softRevalidatedKeys.delete(cacheKey)) {
|
|
75479
75523
|
const route = this.s3KeyToInvalidationPath(s3Key);
|
|
@@ -75531,17 +75575,19 @@ var S3CacheHandler = class {
|
|
|
75531
75575
|
* {@link MAX_TAG_QUERY_PAGES}, or no build tag manifest to read.
|
|
75532
75576
|
*/
|
|
75533
75577
|
async tagRoutes(tag) {
|
|
75578
|
+
const skPrefix = this.tagMappingPrefix(tag);
|
|
75534
75579
|
const [{ items, truncated }, buildTags] = await Promise.all([
|
|
75535
|
-
this.queryTagMappings(tag),
|
|
75580
|
+
this.queryTagMappings(tag, skPrefix),
|
|
75536
75581
|
this.buildTagManifest()
|
|
75537
75582
|
]);
|
|
75538
|
-
const prefixLength =
|
|
75583
|
+
const prefixLength = skPrefix.length;
|
|
75539
75584
|
const keyPrefix = this.config.buildId ? `${this.config.buildId}/` : "";
|
|
75540
|
-
const s3Keys = items.
|
|
75541
|
-
|
|
75542
|
-
|
|
75585
|
+
const s3Keys = items.flatMap((item) => {
|
|
75586
|
+
const rest = item.sk?.S?.slice(prefixLength);
|
|
75587
|
+
return rest && rest.startsWith(keyPrefix) ? [item.s3Key?.S ?? rest] : [];
|
|
75588
|
+
});
|
|
75543
75589
|
for (const cacheKey of buildTags?.get(tag) ?? []) {
|
|
75544
|
-
s3Keys.push(this.
|
|
75590
|
+
s3Keys.push(buildS3Key(this.config.buildId, cacheKey));
|
|
75545
75591
|
}
|
|
75546
75592
|
this.debug(
|
|
75547
75593
|
`TAG ${tag}: Found ${s3Keys.length} cache entries to invalidate`
|
|
@@ -75566,7 +75612,8 @@ var S3CacheHandler = class {
|
|
|
75566
75612
|
});
|
|
75567
75613
|
}
|
|
75568
75614
|
/**
|
|
75569
|
-
* Every mapping row for `tag
|
|
75615
|
+
* Every mapping row for `tag` - those whose sort key starts with
|
|
75616
|
+
* `skPrefix`, its {@link tagMappingPrefix} - following `LastEvaluatedKey`, and whether
|
|
75570
75617
|
* {@link MAX_TAG_QUERY_PAGES} cut the walk short.
|
|
75571
75618
|
*
|
|
75572
75619
|
* DynamoDB caps a Query at 1 MB of items regardless of how many match, and
|
|
@@ -75575,7 +75622,7 @@ var S3CacheHandler = class {
|
|
|
75575
75622
|
* first page invalidates only that page's entries while still reporting
|
|
75576
75623
|
* success, which is indistinguishable from revalidation having worked.
|
|
75577
75624
|
*/
|
|
75578
|
-
async queryTagMappings(tag) {
|
|
75625
|
+
async queryTagMappings(tag, skPrefix) {
|
|
75579
75626
|
const items = [];
|
|
75580
75627
|
let exclusiveStartKey;
|
|
75581
75628
|
let pages = 0;
|
|
@@ -75586,7 +75633,7 @@ var S3CacheHandler = class {
|
|
|
75586
75633
|
KeyConditionExpression: "pk = :pk AND begins_with(sk, :skPrefix)",
|
|
75587
75634
|
ExpressionAttributeValues: {
|
|
75588
75635
|
":pk": { S: this.config.buildId },
|
|
75589
|
-
":skPrefix": { S:
|
|
75636
|
+
":skPrefix": { S: skPrefix }
|
|
75590
75637
|
},
|
|
75591
75638
|
ExclusiveStartKey: exclusiveStartKey
|
|
75592
75639
|
})
|
|
@@ -75622,6 +75669,10 @@ var S3CacheHandler = class {
|
|
|
75622
75669
|
if (withoutSuffix.includes("[") || isFetchCacheKey(withoutSuffix)) {
|
|
75623
75670
|
return void 0;
|
|
75624
75671
|
}
|
|
75672
|
+
const routeCacheKey = ROUTE_CACHE_KEY_PREFIX.exec(withoutSuffix);
|
|
75673
|
+
if (routeCacheKey) {
|
|
75674
|
+
return denormalizePagePath(withoutSuffix.slice(routeCacheKey[0].length));
|
|
75675
|
+
}
|
|
75625
75676
|
return withoutSuffix === "index" ? "/" : `/${withoutSuffix}`;
|
|
75626
75677
|
}
|
|
75627
75678
|
/**
|
|
@@ -75728,19 +75779,37 @@ var S3CacheHandler = class {
|
|
|
75728
75779
|
this.cloudFrontConfig.distributionId || this.cloudFrontConfig.distributionIdParameterName
|
|
75729
75780
|
);
|
|
75730
75781
|
}
|
|
75731
|
-
/**
|
|
75732
|
-
|
|
75733
|
-
|
|
75782
|
+
/**
|
|
75783
|
+
* The sort key of `tag`'s mapping row for `s3Key`: `<prefix>s3Key`, or, when
|
|
75784
|
+
* that passes DynamoDB's 1024-byte sort key limit, `<prefix><buildId>/#<sha256>`.
|
|
75785
|
+
* Either way the row carries the key itself in `s3Key`. next 16.3.8's
|
|
75786
|
+
* route-scoped keys are ~88 bytes longer than a pathname, enough to push a
|
|
75787
|
+
* long tag on a long path over - and a rejected `PutItem` left
|
|
75788
|
+
* `revalidateTag` nothing to invalidate, so CloudFront kept the stale page.
|
|
75789
|
+
* The prefix is {@link tagMappingPrefix}'s, which {@link MAX_TAG_BYTES} and
|
|
75790
|
+
* the build ID's cap leave room for the hashed form after.
|
|
75791
|
+
*/
|
|
75792
|
+
tagMappingSortKey(tag, s3Key) {
|
|
75793
|
+
const prefix = this.tagMappingPrefix(tag);
|
|
75794
|
+
const sk = `${prefix}${s3Key}`;
|
|
75795
|
+
return Buffer.byteLength(sk) <= MAX_SORT_KEY_BYTES ? sk : `${prefix}${this.config.buildId}/${hashedTag(s3Key)}`;
|
|
75796
|
+
}
|
|
75797
|
+
/**
|
|
75798
|
+
* What every mapping row of `tag` starts with, and so what
|
|
75799
|
+
* {@link queryTagMappings} matches: `<sortKeyTag(tag)>#`.
|
|
75800
|
+
*/
|
|
75801
|
+
tagMappingPrefix(tag) {
|
|
75802
|
+
return `${sortKeyTag(tag)}#`;
|
|
75734
75803
|
}
|
|
75735
75804
|
async storeDynamoDBTagMappings(s3Key, tags) {
|
|
75736
75805
|
try {
|
|
75737
75806
|
const updatePromises = tags.map(async (tag) => {
|
|
75738
|
-
const
|
|
75807
|
+
const sk = this.tagMappingSortKey(tag, s3Key);
|
|
75739
75808
|
const updateCommand = new import_client_dynamodb3.UpdateItemCommand({
|
|
75740
75809
|
TableName: this.config.tableName,
|
|
75741
75810
|
Key: {
|
|
75742
75811
|
pk: { S: this.config.buildId },
|
|
75743
|
-
sk: { S:
|
|
75812
|
+
sk: { S: sk }
|
|
75744
75813
|
},
|
|
75745
75814
|
// Deliberately no `revalidatedAt`: a mapping row records only that an
|
|
75746
75815
|
// entry carries the tag. Stamping it at write time made every tagged
|
|
@@ -75748,9 +75817,10 @@ var S3CacheHandler = class {
|
|
|
75748
75817
|
// row's timestamp is taken after the entry's `lastModified` — so
|
|
75749
75818
|
// `checkIfRevalidated` deleted healthy entries and the page
|
|
75750
75819
|
// re-rendered on every request.
|
|
75751
|
-
UpdateExpression: "SET createdAt = if_not_exists(createdAt, :now)",
|
|
75820
|
+
UpdateExpression: "SET createdAt = if_not_exists(createdAt, :now), s3Key = :s3Key",
|
|
75752
75821
|
ExpressionAttributeValues: {
|
|
75753
|
-
":now": { N: Date.now().toString() }
|
|
75822
|
+
":now": { N: Date.now().toString() },
|
|
75823
|
+
":s3Key": { S: s3Key }
|
|
75754
75824
|
}
|
|
75755
75825
|
});
|
|
75756
75826
|
await this.dynamoClient.send(updateCommand);
|
|
@@ -75799,7 +75869,7 @@ var S3CacheHandler = class {
|
|
|
75799
75869
|
TableName: this.config.tableName,
|
|
75800
75870
|
Key: {
|
|
75801
75871
|
pk: { S: this.config.buildId },
|
|
75802
|
-
sk: { S:
|
|
75872
|
+
sk: { S: this.tagMappingSortKey(tag, s3Key) }
|
|
75803
75873
|
}
|
|
75804
75874
|
})
|
|
75805
75875
|
);
|