cdk-nextjs 0.7.7 → 0.7.8
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 +2 -2
- package/docs/adapter-runtime.md +1 -1
- package/docs/harness-coverage.md +153 -73
- package/lib/adapter/adapter.mjs +12 -3
- package/lib/adapter/aws-cache-store.d.ts +7 -0
- package/lib/adapter/aws-cache-store.js +12 -1
- package/lib/adapter/aws-cache-store.test.js +32 -1
- package/lib/adapter/cache-handler.d.ts +5 -3
- package/lib/adapter/cache-handler.js +16 -10
- package/lib/adapter/cache-handler.mjs +103 -26
- package/lib/adapter/cache-handler.test.js +44 -1
- package/lib/adapter/cache-utils.d.ts +22 -0
- package/lib/adapter/cache-utils.js +44 -1
- package/lib/adapter/function-groups.js +17 -4
- package/lib/adapter/function-groups.test.js +33 -1
- package/lib/adapter/memory-cache-handler.d.ts +5 -1
- package/lib/adapter/memory-cache-handler.js +6 -2
- package/lib/adapter/s3-cache-handler.d.ts +12 -1
- package/lib/adapter/s3-cache-handler.js +30 -8
- package/lib/adapter/s3-cache-handler.test.js +84 -2
- package/lib/adapter/use-cache-common.d.ts +13 -0
- package/lib/adapter/use-cache-common.js +22 -6
- package/lib/adapter/use-cache-common.test.js +37 -1
- package/lib/adapter/use-cache-default-handler.mjs +33 -10
- package/lib/adapter/use-cache-remote-handler.mjs +33 -12
- package/lib/nextjs-api.js +1 -1
- package/lib/nextjs-build/nextjs-build.js +1 -1
- 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/core.js +3 -1
- package/lib/runtime/image-utils.d.ts +8 -9
- package/lib/runtime/image-utils.js +16 -1
- package/lib/runtime/image-utils.test.js +13 -1
- package/lib/runtime/image.js +9 -3
- package/lib/runtime/lambda.mjs +50 -15
- package/lib/runtime/server.mjs +50 -15
- package/lib/runtime/tag-manifest.d.ts +25 -0
- package/lib/runtime/tag-manifest.js +37 -2
- package/lib/runtime/tag-manifest.test.js +27 -1
- package/package.json +3 -3
- package/scripts/e2e-deploy.sh +7 -2
- package/scripts/e2e-harness/README.md +72 -35
- package/scripts/e2e-harness/screen.mjs +148 -7
- package/scripts/playwright-install-deps.sh +40 -0
|
@@ -109,8 +109,11 @@ class MemoryCacheHandler {
|
|
|
109
109
|
* `Date.now()` drifts from it for as long as the process lives: an entry
|
|
110
110
|
* stamped ahead of it looked newer than a `revalidateTag` run within the
|
|
111
111
|
* drift, and was served for the whole memory TTL.
|
|
112
|
+
*
|
|
113
|
+
* `cacheControl` is the lifetime the entry was rendered with, handed back
|
|
114
|
+
* from {@link get} as the S3 layer does; see `getCacheControl`.
|
|
112
115
|
*/
|
|
113
|
-
async set(cacheKey, data, lastModified) {
|
|
116
|
+
async set(cacheKey, data, lastModified, cacheControl) {
|
|
114
117
|
if (!data) {
|
|
115
118
|
// Delete from memory cache
|
|
116
119
|
this.debug(`MEMORY CACHE DELETE: ${cacheKey}`);
|
|
@@ -123,6 +126,7 @@ class MemoryCacheHandler {
|
|
|
123
126
|
const cacheHandlerValue = {
|
|
124
127
|
lastModified: lastModified ?? (0, aws_cache_store_1.markerClock)(),
|
|
125
128
|
value: data,
|
|
129
|
+
cacheControl,
|
|
126
130
|
};
|
|
127
131
|
const entry = {
|
|
128
132
|
value: cacheHandlerValue,
|
|
@@ -174,4 +178,4 @@ class MemoryCacheHandler {
|
|
|
174
178
|
}
|
|
175
179
|
}
|
|
176
180
|
exports.MemoryCacheHandler = MemoryCacheHandler;
|
|
177
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LWNhY2hlLWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWRhcHRlci9tZW1vcnktY2FjaGUtaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7RUFFRTtBQUNGLHNEQUFzRDtBQUN0RCxrREFBNkI7QUFHN0IsdURBQWdEO0FBQ2hELHlEQUFtRDtBQU9uRDs7OztHQUlHO0FBQ0gsTUFBYSxrQkFBa0I7SUFDckIsYUFBYSxHQUFrQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ3pELEtBQUssR0FBRyxJQUFBLGVBQVEsRUFBQyxpQ0FBaUMsQ0FBQyxDQUFDO0lBRTVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQTBCRztJQUNjLEtBQUssQ0FBUztJQUUvQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0EwQkc7SUFDYyxVQUFVLENBQVM7SUFFcEM7UUFDRSxvRUFBb0U7UUFDcEUsMEVBQTBFO1FBQzFFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBQSxnQ0FBYSxFQUN4QixnQ0FBZ0MsRUFDaEMsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQ2YsQ0FBQztRQUNGLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBQSxnQ0FBYSxFQUM3QixxQ0FBcUMsRUFDckMsSUFBSSxDQUNMLENBQUM7UUFFRixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLG1CQUFtQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFnQjtRQUN4Qix3QkFBd0I7UUFDeEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckQsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNoQixtQkFBbUI7WUFDbkIsSUFBSSxJQUFJLENBQUMsR0FBRyxF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OztPQUdHO0lBQ0ssV0FBVztRQUNqQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQztRQUN4RCxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNwRCxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0QyxDQUFDO0lBQ0gsQ0FBQztJQUVELDRDQUE0QztJQUNyQyxZQUFZO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7SUFDakMsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdCLENBQUM7Q0FDRjtBQTVMRCxnREE0TEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICBJbi1tZW1vcnkgY2FjaGUgaGFuZGxlclxuKi9cbi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyAqL1xuaW1wb3J0IGdldERlYnVnIGZyb20gXCJkZWJ1Z1wiO1xuaW1wb3J0IHsgQ2FjaGVIYW5kbGVyVmFsdWUgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9saWIvaW5jcmVtZW50YWwtY2FjaGVcIjtcbmltcG9ydCB7IEluY3JlbWVudGFsQ2FjaGVWYWx1ZSB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL3Jlc3BvbnNlLWNhY2hlXCI7XG5pbXBvcnQgeyBtYXJrZXJDbG9jayB9IGZyb20gXCIuL2F3cy1jYWNoZS1zdG9yZVwiO1xuaW1wb3J0IHsgbnVtYmVyRnJvbUVudiB9IGZyb20gXCIuL3VzZS1jYWNoZS1jb21tb25cIjtcblxuaW50ZXJmYWNlIE1lbW9yeUNhY2hlRW50cnkge1xuICB2YWx1ZTogQ2FjaGVIYW5kbGVyVmFsdWU7XG4gIGV4cGlyZXNBdDogbnVtYmVyOyAvLyBUaW1lc3RhbXAgaW4gbWlsbGlzZWNvbmRzXG59XG5cbi8qKlxuICogVGhlIGluLW1lbW9yeSBsYXllciB0aGUgb3JjaGVzdHJhdGluZyBoYW5kbGVyIHB1dHMgaW4gZnJvbnQgb2ZcbiAqIGBTM0NhY2hlSGFuZGxlcmAuIE5vdCBhIGBDYWNoZUhhbmRsZXJgIG9mIGl0cyBvd246IGl0IGhhcyBubyB0YWdzLCBzaW5jZVxuICogZXZlcnkgaGl0IGlzIGNoZWNrZWQgYWdhaW5zdCB0aGUgdGFnIG1hcmtlcnMgYmVmb3JlIGl0IGlzIHNlcnZlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIE1lbW9yeUNhY2hlSGFuZGxlciB7XG4gIHByaXZhdGUgaW5NZW1vcnlDYWNoZTogTWFwPHN0cmluZywgTWVtb3J5Q2FjaGVFbnRyeT4gPSBuZXcgTWFwKCk7XG4gIHByaXZhdGUgZGVidWcgPSBnZXREZWJ1ZyhcImNkay1uZXh0anM6Y2FjaGUtaGFuZGxlcjptZW1vcnlcIik7XG5cbiAgLyoqXG4gICAqIFRpbWUgdG8gbGl2ZSBpbiBtaWxsaXNlY29uZHMgZm9yIGNhY2hlIGVudHJpZXMuXG4gICAqIEFmdGVyIHRoaXMgZHVyYXRpb24sIGVudHJpZXMgZXhwaXJlIGFuZCBhcmUgcmVtb3ZlZCBmcm9tIHRoZSBjYWNoZS5cbiAgICpcbiAgICogVGFnIHJldmFsaWRhdGlvbnMgbmV2ZXIgY2xlYXIgdGhpcyBjYWNoZTogdGhlIG9yY2hlc3RyYXRpbmcgaGFuZGxlciBjaGVja3NcbiAgICogZWFjaCBtZW1vcnkgaGl0IGFnYWluc3QgdGhlIHRhZyBtYXJrZXJzIGJlZm9yZSBzZXJ2aW5nIGl0XG4gICAqIChgUzNDYWNoZUhhbmRsZXIuaXNSZXZhbGlkYXRlZGApLCBzbyBhIHJldmFsaWRhdGVkIGVudHJ5IGlzIG5vdCBzZXJ2ZWQgZnJvbVxuICAgKiBtZW1vcnkgYW55d2hlcmUuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIC8vIFNob3J0IFRUTCAoNSBtaW51dGVzKSAtIGZvciBmcmVxdWVudGx5IGNoYW5naW5nIGRhdGFcbiAgICogdHRsTXMgPSA1ICogNjAgKiAxMDAwO1xuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiAvLyBNZWRpdW0gVFRMICgxIGhvdXIpIC0gYmFsYW5jZWQgYmV0d2VlbiBmcmVzaG5lc3MgYW5kIHBlcmZvcm1hbmNlXG4gICAqIHR0bE1zID0gNjAgKiA2MCAqIDEwMDA7XG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIC8vIExvbmcgVFRMICgyNCBob3VycykgLSBmb3IgbW9zdGx5IHN0YXRpYyBjb250ZW50XG4gICAqIHR0bE1zID0gMjQgKiA2MCAqIDYwICogMTAwMDtcbiAgICpcbiAgICogKipXaHkgYWRqdXN0IHRoaXM/KipcbiAgICogLSBMb3dlciB2YWx1ZXM6IE1vcmUgY2FjaGUgbWlzc2VzLCBoaWdoZXIgUzMgY29zdHNcbiAgICogLSBIaWdoZXIgdmFsdWVzOiBGZXdlciBjYWNoZSBtaXNzZXMsIG1vcmUgbWVtb3J5IGhlbGRcbiAgICpcbiAgICogU2V0IHZpYSBlbnZpcm9ubWVudCB2YXJpYWJsZTogYENES19ORVhUSlNfTUVNT1JZX0NBQ0hFX1RUTF9NU2BcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgdHRsTXM6IG51bWJlcjtcblxuICAvKipcbiAgICogTWF4aW11bSBudW1iZXIgb2YgY2FjaGUgZW50cmllcyB0byBzdG9yZSBpbiBtZW1vcnkuXG4gICAqIFdoZW4gdGhpcyBsaW1pdCBpcyByZWFjaGVkLCB0aGUgbGVhc3QgcmVjZW50bHkgdXNlZCAoTFJVKSBlbnRyeSBpcyBldmljdGVkLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiAvLyBTbWFsbCBjYWNoZSAoMTAwIGVudHJpZXMpIC0gbWluaW1hbCBtZW1vcnkgZm9vdHByaW50IGZvciBzaW1wbGUgYXBwc1xuICAgKiBtYXhFbnRyaWVzID0gMTAwO1xuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiAvLyBNZWRpdW0gY2FjaGUgKDEwMDAgZW50cmllcykgLSBnb29kIGJhbGFuY2UgZm9yIHR5cGljYWwgYXBwbGljYXRpb25zXG4gICAqIG1heEVudHJpZXMgPSAxMDAwO1xuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiAvLyBMYXJnZSBjYWNoZSAoMTAwMDAgZW50cmllcykgLSBmb3IgaGlnaC10cmFmZmljIGFwcHMgd2l0aCBtYW55IHVuaXF1ZSBwYWdlc1xuICAgKiBtYXhFbnRyaWVzID0gMTAwMDA7XG4gICAqXG4gICAqICoqV2h5IGFkanVzdCB0aGlzPyoqXG4gICAqIC0gTG93ZXIgdmFsdWVzOiBMZXNzIG1lbW9yeSB1c2FnZSwgbW9yZSBjYWNoZSBldmljdGlvbnNcbiAgICogLSBIaWdoZXIgdmFsdWVzOiBNb3JlIG1lbW9yeSB1c2FnZSwgZmV3ZXIgY2FjaGUgZXZpY3Rpb25zLCBiZXR0ZXIgaGl0IHJhdGVzXG4gICAqXG4gICAqICoqTWVtb3J5IGNvbnNpZGVyYXRpb25zKio6IEVhY2ggZW50cnkgc3RvcmVzIHRoZSBmdWxsIGNhY2hlIHZhbHVlIChIVE1MLCBKU09OLCBldGMuKVxuICAgKiBBIHR5cGljYWwgcGFnZSBjYWNoZSBtaWdodCBiZSAxMC0xMDBLQiwgc28gMTAwMCBlbnRyaWVzIOKJiCAxMC0xMDBNQiBvZiBtZW1vcnkuXG4gICAqIENvbnNpZGVyIHlvdXIgY29tcHV0ZSBlbnZpcm9ubWVudCdzIG1lbW9yeSBsaW1pdHMgKExhbWJkYTogMTI4TUItMTBHQiwgRmFyZ2F0ZTogNTEyTUItMzBHQilcbiAgICogYW5kIHNpemUgYWNjb3JkaW5nbHkuXG4gICAqXG4gICAqIFNldCB2aWEgZW52aXJvbm1lbnQgdmFyaWFibGU6IGBDREtfTkVYVEpTX01FTU9SWV9DQUNIRV9NQVhfRU5UUklFU2BcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgbWF4RW50cmllczogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIERlZmF1bHQgdG8gMSBob3VyIFRUTCBhbmQgMTAwMCBtYXggZW50cmllcy4gQSB2YWx1ZSB0aGF0IGlzIG5vdCBhXG4gICAgLy8gbnVtYmVyIGZhbGxzIGJhY2sgdG9vOiBhcyBOYU4sIG5vdGhpbmcgd291bGQgZXZlciBleHBpcmUgb3IgYmUgZXZpY3RlZC5cbiAgICB0aGlzLnR0bE1zID0gbnVtYmVyRnJvbUVudihcbiAgICAgIFwiQ0RLX05FWFRKU19NRU1PUllfQ0FDSEVfVFRMX01TXCIsXG4gICAgICA2MCAqIDYwICogMTAwMCxcbiAgICApO1xuICAgIHRoaXMubWF4RW50cmllcyA9IG51bWJlckZyb21FbnYoXG4gICAgICBcIkNES19ORVhUSlNfTUVNT1JZX0NBQ0hFX01BWF9FTlRSSUVTXCIsXG4gICAgICAxMDAwLFxuICAgICk7XG5cbiAgICB0aGlzLmRlYnVnKGBUVEw6ICR7dGhpcy50dGxNcyAvIDEwMDB9cywgTWF4IGVudHJpZXM6ICR7dGhpcy5tYXhFbnRyaWVzfWApO1xuICB9XG5cbiAgYXN5bmMgZ2V0KGNhY2hlS2V5OiBzdHJpbmcpOiBQcm9taXNlPENhY2hlSGFuZGxlclZhbHVlIHwgbnVsbD4ge1xuICAgIC8vIENoZWNrIGluLW1lbW9yeSBjYWNoZVxuICAgIGNvbnN0IG1lbW9yeUVudHJ5ID0gdGhpcy5pbk1lbW9yeUNhY2hlLmdldChjYWNoZUtleSk7XG4gICAgaWYgKG1lbW9yeUVudHJ5KSB7XG4gICAgICAvLyBDaGVjayBpZiBleHBpcmVkXG4gICAgICBpZiAoRGF0ZS5ub3coKSA+IG1lbW9yeUVudHJ5LmV4cGlyZXNBdCkge1xuICAgICAgICB0aGlzLmRlYnVnKGBNRU1PUlkgQ0FDSEUgRVhQSVJFRDogJHtjYWNoZUtleX1gKTtcbiAgICAgICAgdGhpcy5pbk1lbW9yeUNhY2hlLmRlbGV0ZShjYWNoZUtleSk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICAvLyBNb3ZlIHRvIGVuZCAobW9zdCByZWNlbnRseSB1c2VkKSBieSBkZWxldGluZyBhbmQgcmUtaW5zZXJ0aW5nXG4gICAgICB0aGlzLmluTWVtb3J5Q2FjaGUuZGVsZXRlKGNhY2hlS2V5KTtcbiAgICAgIHRoaXMuaW5NZW1vcnlDYWNoZS5zZXQoY2FjaGVLZXksIG1lbW9yeUVudHJ5KTtcblxuICAgICAgdGhpcy5kZWJ1ZyhgTUVNT1JZIENBQ0hFIEhJVDogJHtjYWNoZUtleX1gKTtcbiAgICAgIHJldHVybiBtZW1vcnlFbnRyeS52YWx1ZTtcbiAgICB9XG5cbiAgICB0aGlzLmRlYnVnKGBNRU1PUlkgQ0FDSEUgTUlTUzogJHtjYWNoZUtleX1gKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBgbGFzdE1vZGlmaWVkYCBpcyB0aGUgdGltZSB0aGUgZW50cnkgd2FzIHJlbmRlcmVkLCBmb3IgYW4gZW50cnkgY29waWVkIGluXG4gICAqIGZyb20gYSBzbG93ZXIgbGF5ZXI7IGEgZnJlc2ggcmVuZGVyIGxlYXZlcyBpdCBvdXQgYW5kIGlzIHN0YW1wZWQgbm93IC0gb25cbiAgICoge0BsaW5rIG1hcmtlckNsb2NrfSwgbGlrZSB0aGUgUzMgY29weSBvZiB0aGUgc2FtZSByZW5kZXIuIEEgbWVtb3J5IGhpdCBpc1xuICAgKiBjaGVja2VkIGFnYWluc3QgdGhlIHRhZyBtYXJrZXJzLCB3aGljaCBhcmUgc3RhbXBlZCBvbiB0aGF0IGNsb2NrLCBhbmRcbiAgICogYERhdGUubm93KClgIGRyaWZ0cyBmcm9tIGl0IGZvciBhcyBsb25nIGFzIHRoZSBwcm9jZXNzIGxpdmVzOiBhbiBlbnRyeVxuICAgKiBzdGFtcGVkIGFoZWFkIG9mIGl0IGxvb2tlZCBuZXdlciB0aGFuIGEgYHJldmFsaWRhdGVUYWdgIHJ1biB3aXRoaW4gdGhlXG4gICAqIGRyaWZ0LCBhbmQgd2FzIHNlcnZlZCBmb3IgdGhlIHdob2xlIG1lbW9yeSBUVEwuXG4gICAqL1xuICBhc3luYyBzZXQoXG4gICAgY2FjaGVLZXk6IHN0cmluZyxcbiAgICBkYXRhOiBJbmNyZW1lbnRhbENhY2hlVmFsdWUgfCBudWxsLFxuICAgIGxhc3RNb2RpZmllZD86IG51bWJlcixcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCFkYXRhKSB7XG4gICAgICAvLyBEZWxldGUgZnJvbSBtZW1vcnkgY2FjaGVcbiAgICAgIHRoaXMuZGVidWcoYE1FTU9SWSBDQUNIRSBERUxFVEU6ICR7Y2FjaGVLZXl9YCk7XG4gICAgICB0aGlzLmluTWVtb3J5Q2FjaGUuZGVsZXRlKGNhY2hlS2V5KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBEZWJ1ZyBsb2dnaW5nIGZvciBtZW1vcnkgY2FjaGUgc2V0XG4gICAgdGhpcy5kZWJ1ZyhgTUVNT1JZIENBQ0hFIFNFVDogJHtjYWNoZUtleX0gKCR7ZGF0YS5raW5kfSlgKTtcblxuICAgIC8vIFN0b3JlIGluIG1lbW9yeSBjYWNoZSB3aXRoIHByb3BlciBDYWNoZUhhbmRsZXJWYWx1ZSBzdHJ1Y3R1cmVcbiAgICBjb25zdCBjYWNoZUhhbmRsZXJWYWx1ZTogQ2FjaGVIYW5kbGVyVmFsdWUgPSB7XG4gICAgICBsYXN0TW9kaWZpZWQ6IGxhc3RNb2RpZmllZCA/PyBtYXJrZXJDbG9jaygpLFxuICAgICAgdmFsdWU6IGRhdGEsXG4gICAgfTtcblxuICAgIGNvbnN0IGVudHJ5OiBNZW1vcnlDYWNoZUVudHJ5ID0ge1xuICAgICAgdmFsdWU6IGNhY2hlSGFuZGxlclZhbHVlLFxuICAgICAgZXhwaXJlc0F0OiBEYXRlLm5vdygpICsgdGhpcy50dGxNcyxcbiAgICB9O1xuXG4gICAgLy8gQ2xlYW4gdXAgZXhwaXJlZCBlbnRyaWVzIGJlZm9yZSBhZGRpbmcgbmV3IG9uZVxuICAgIHRoaXMuY2xlYW51cEV4cGlyZWQoKTtcblxuICAgIC8vIElmIHdlJ3JlIGF0IG1heCBjYXBhY2l0eSwgZXZpY3Qgb2xkZXN0IGVudHJ5XG4gICAgaWYgKHRoaXMuaW5NZW1vcnlDYWNoZS5zaXplID49IHRoaXMubWF4RW50cmllcykge1xuICAgICAgdGhpcy5ldmljdE9sZGVzdCgpO1xuICAgIH1cblxuICAgIC8vIEFkZCBuZXcgZW50cnlcbiAgICB0aGlzLmluTWVtb3J5Q2FjaGUuc2V0KGNhY2hlS2V5LCBlbnRyeSk7XG5cbiAgICB0aGlzLmRlYnVnKGBDYWNoZSBlbnRyaWVzOiAke3RoaXMuaW5NZW1vcnlDYWNoZS5zaXplfS8ke3RoaXMubWF4RW50cmllc31gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgYWxsIGV4cGlyZWQgY2FjaGUgZW50cmllc1xuICAgKi9cbiAgcHJpdmF0ZSBjbGVhbnVwRXhwaXJlZCgpOiB2b2lkIHtcbiAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICAgIGxldCBleHBpcmVkQ291bnQgPSAwO1xuXG4gICAgZm9yIChjb25zdCBba2V5LCBlbnRyeV0gb2YgdGhpcy5pbk1lbW9yeUNhY2hlLmVudHJpZXMoKSkge1xuICAgICAgaWYgKG5vdyA+IGVudHJ5LmV4cGlyZXNBdCkge1xuICAgICAgICB0aGlzLmluTWVtb3J5Q2FjaGUuZGVsZXRlKGtleSk7XG4gICAgICAgIGV4cGlyZWRDb3VudCsrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChleHBpcmVkQ291bnQgPiAwKSB7XG4gICAgICB0aGlzLmRlYnVnKGBDbGVhbmVkIHVwICR7ZXhwaXJlZENvdW50fSBleHBpcmVkIGVudHJpZXNgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRXZpY3QgdGhlIG9sZGVzdCAobGVhc3QgcmVjZW50bHkgdXNlZCkgY2FjaGUgZW50cnlcbiAgICogTWFwIG1haW50YWlucyBpbnNlcnRpb24gb3JkZXIsIHNvIGZpcnN0IGVudHJ5IGlzIG9sZGVzdFxuICAgKi9cbiAgcHJpdmF0ZSBldmljdE9sZGVzdCgpOiB2b2lkIHtcbiAgICBjb25zdCBmaXJzdEtleSA9IHRoaXMuaW5NZW1vcnlDYWNoZS5rZXlzKCkubmV4dCgpLnZhbHVlO1xuICAgIGlmIChmaXJzdEtleSkge1xuICAgICAgdGhpcy5kZWJ1ZyhgTUFYIENBUEFDSVRZIEVWSUNUIChMUlUpOiAke2ZpcnN0S2V5fWApO1xuICAgICAgdGhpcy5pbk1lbW9yeUNhY2hlLmRlbGV0ZShmaXJzdEtleSk7XG4gICAgfVxuICB9XG5cbiAgLy8gUHVibGljIG1ldGhvZHMgZm9yIHRlc3RpbmcgYW5kIG1vbml0b3JpbmdcbiAgcHVibGljIGdldENhY2hlU2l6ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmluTWVtb3J5Q2FjaGUuc2l6ZTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhckNhY2hlKCk6IHZvaWQge1xuICAgIHRoaXMuaW5NZW1vcnlDYWNoZS5jbGVhcigpO1xuICB9XG59XG4iXX0=
|
|
181
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LWNhY2hlLWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWRhcHRlci9tZW1vcnktY2FjaGUtaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7RUFFRTtBQUNGLHNEQUFzRDtBQUN0RCxrREFBNkI7QUFJN0IsdURBQWdEO0FBQ2hELHlEQUFtRDtBQU9uRDs7OztHQUlHO0FBQ0gsTUFBYSxrQkFBa0I7SUFDckIsYUFBYSxHQUFrQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ3pELEtBQUssR0FBRyxJQUFBLGVBQVEsRUFBQyxpQ0FBaUMsQ0FBQyxDQUFDO0lBRTVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQTBCRztJQUNjLEtBQUssQ0FBUztJQUUvQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0EwQkc7SUFDYyxVQUFVLENBQVM7SUFFcEM7UUFDRSxvRUFBb0U7UUFDcEUsMEVBQTBFO1FBQzFFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBQSxnQ0FBYSxFQUN4QixnQ0FBZ0MsRUFDaEMsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQ2YsQ0FBQztRQUNGLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBQSxnQ0FBYSxFQUM3QixxQ0FBcUMsRUFDckMsSUFBSSxDQUNMLENBQUM7UUFFRixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLG1CQUFtQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFnQjtRQUN4Qix3QkFBd0I7UUFDeEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckQsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNoQixtQkFBbUI7WUFDbkIsSUFBSSxJQUFJLENBQUMsR0FBRyxF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QUMzRCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNLLFdBQVc7UUFDakIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDeEQsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxLQUFLLENBQUMsNkJBQTZCLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEMsQ0FBQztJQUNILENBQUM7SUFFRCw0Q0FBNEM7SUFDckMsWUFBWTtRQUNqQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO0lBQ2pDLENBQUM7SUFFTSxVQUFVO1FBQ2YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixDQUFDO0NBQ0Y7QUFqTUQsZ0RBaU1DIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAgSW4tbWVtb3J5IGNhY2hlIGhhbmRsZXJcbiovXG4vKiBlc2xpbnQtZGlzYWJsZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXMgKi9cbmltcG9ydCBnZXREZWJ1ZyBmcm9tIFwiZGVidWdcIjtcbmltcG9ydCB0eXBlIHsgQ2FjaGVDb250cm9sIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvbGliL2NhY2hlLWNvbnRyb2xcIjtcbmltcG9ydCB7IENhY2hlSGFuZGxlclZhbHVlIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvbGliL2luY3JlbWVudGFsLWNhY2hlXCI7XG5pbXBvcnQgeyBJbmNyZW1lbnRhbENhY2hlVmFsdWUgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9yZXNwb25zZS1jYWNoZVwiO1xuaW1wb3J0IHsgbWFya2VyQ2xvY2sgfSBmcm9tIFwiLi9hd3MtY2FjaGUtc3RvcmVcIjtcbmltcG9ydCB7IG51bWJlckZyb21FbnYgfSBmcm9tIFwiLi91c2UtY2FjaGUtY29tbW9uXCI7XG5cbmludGVyZmFjZSBNZW1vcnlDYWNoZUVudHJ5IHtcbiAgdmFsdWU6IENhY2hlSGFuZGxlclZhbHVlO1xuICBleHBpcmVzQXQ6IG51bWJlcjsgLy8gVGltZXN0YW1wIGluIG1pbGxpc2Vjb25kc1xufVxuXG4vKipcbiAqIFRoZSBpbi1tZW1vcnkgbGF5ZXIgdGhlIG9yY2hlc3RyYXRpbmcgaGFuZGxlciBwdXRzIGluIGZyb250IG9mXG4gKiBgUzNDYWNoZUhhbmRsZXJgLiBOb3QgYSBgQ2FjaGVIYW5kbGVyYCBvZiBpdHMgb3duOiBpdCBoYXMgbm8gdGFncywgc2luY2VcbiAqIGV2ZXJ5IGhpdCBpcyBjaGVja2VkIGFnYWluc3QgdGhlIHRhZyBtYXJrZXJzIGJlZm9yZSBpdCBpcyBzZXJ2ZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBNZW1vcnlDYWNoZUhhbmRsZXIge1xuICBwcml2YXRlIGluTWVtb3J5Q2FjaGU6IE1hcDxzdHJpbmcsIE1lbW9yeUNhY2hlRW50cnk+ID0gbmV3IE1hcCgpO1xuICBwcml2YXRlIGRlYnVnID0gZ2V0RGVidWcoXCJjZGstbmV4dGpzOmNhY2hlLWhhbmRsZXI6bWVtb3J5XCIpO1xuXG4gIC8qKlxuICAgKiBUaW1lIHRvIGxpdmUgaW4gbWlsbGlzZWNvbmRzIGZvciBjYWNoZSBlbnRyaWVzLlxuICAgKiBBZnRlciB0aGlzIGR1cmF0aW9uLCBlbnRyaWVzIGV4cGlyZSBhbmQgYXJlIHJlbW92ZWQgZnJvbSB0aGUgY2FjaGUuXG4gICAqXG4gICAqIFRhZyByZXZhbGlkYXRpb25zIG5ldmVyIGNsZWFyIHRoaXMgY2FjaGU6IHRoZSBvcmNoZXN0cmF0aW5nIGhhbmRsZXIgY2hlY2tzXG4gICAqIGVhY2ggbWVtb3J5IGhpdCBhZ2FpbnN0IHRoZSB0YWcgbWFya2VycyBiZWZvcmUgc2VydmluZyBpdFxuICAgKiAoYFMzQ2FjaGVIYW5kbGVyLmlzUmV2YWxpZGF0ZWRgKSwgc28gYSByZXZhbGlkYXRlZCBlbnRyeSBpcyBub3Qgc2VydmVkIGZyb21cbiAgICogbWVtb3J5IGFueXdoZXJlLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiAvLyBTaG9ydCBUVEwgKDUgbWludXRlcykgLSBmb3IgZnJlcXVlbnRseSBjaGFuZ2luZyBkYXRhXG4gICAqIHR0bE1zID0gNSAqIDYwICogMTAwMDtcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogLy8gTWVkaXVtIFRUTCAoMSBob3VyKSAtIGJhbGFuY2VkIGJldHdlZW4gZnJlc2huZXNzIGFuZCBwZXJmb3JtYW5jZVxuICAgKiB0dGxNcyA9IDYwICogNjAgKiAxMDAwO1xuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiAvLyBMb25nIFRUTCAoMjQgaG91cnMpIC0gZm9yIG1vc3RseSBzdGF0aWMgY29udGVudFxuICAgKiB0dGxNcyA9IDI0ICogNjAgKiA2MCAqIDEwMDA7XG4gICAqXG4gICAqICoqV2h5IGFkanVzdCB0aGlzPyoqXG4gICAqIC0gTG93ZXIgdmFsdWVzOiBNb3JlIGNhY2hlIG1pc3NlcywgaGlnaGVyIFMzIGNvc3RzXG4gICAqIC0gSGlnaGVyIHZhbHVlczogRmV3ZXIgY2FjaGUgbWlzc2VzLCBtb3JlIG1lbW9yeSBoZWxkXG4gICAqXG4gICAqIFNldCB2aWEgZW52aXJvbm1lbnQgdmFyaWFibGU6IGBDREtfTkVYVEpTX01FTU9SWV9DQUNIRV9UVExfTVNgXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHR0bE1zOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE1heGltdW0gbnVtYmVyIG9mIGNhY2hlIGVudHJpZXMgdG8gc3RvcmUgaW4gbWVtb3J5LlxuICAgKiBXaGVuIHRoaXMgbGltaXQgaXMgcmVhY2hlZCwgdGhlIGxlYXN0IHJlY2VudGx5IHVzZWQgKExSVSkgZW50cnkgaXMgZXZpY3RlZC5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogLy8gU21hbGwgY2FjaGUgKDEwMCBlbnRyaWVzKSAtIG1pbmltYWwgbWVtb3J5IGZvb3RwcmludCBmb3Igc2ltcGxlIGFwcHNcbiAgICogbWF4RW50cmllcyA9IDEwMDtcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogLy8gTWVkaXVtIGNhY2hlICgxMDAwIGVudHJpZXMpIC0gZ29vZCBiYWxhbmNlIGZvciB0eXBpY2FsIGFwcGxpY2F0aW9uc1xuICAgKiBtYXhFbnRyaWVzID0gMTAwMDtcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogLy8gTGFyZ2UgY2FjaGUgKDEwMDAwIGVudHJpZXMpIC0gZm9yIGhpZ2gtdHJhZmZpYyBhcHBzIHdpdGggbWFueSB1bmlxdWUgcGFnZXNcbiAgICogbWF4RW50cmllcyA9IDEwMDAwO1xuICAgKlxuICAgKiAqKldoeSBhZGp1c3QgdGhpcz8qKlxuICAgKiAtIExvd2VyIHZhbHVlczogTGVzcyBtZW1vcnkgdXNhZ2UsIG1vcmUgY2FjaGUgZXZpY3Rpb25zXG4gICAqIC0gSGlnaGVyIHZhbHVlczogTW9yZSBtZW1vcnkgdXNhZ2UsIGZld2VyIGNhY2hlIGV2aWN0aW9ucywgYmV0dGVyIGhpdCByYXRlc1xuICAgKlxuICAgKiAqKk1lbW9yeSBjb25zaWRlcmF0aW9ucyoqOiBFYWNoIGVudHJ5IHN0b3JlcyB0aGUgZnVsbCBjYWNoZSB2YWx1ZSAoSFRNTCwgSlNPTiwgZXRjLilcbiAgICogQSB0eXBpY2FsIHBhZ2UgY2FjaGUgbWlnaHQgYmUgMTAtMTAwS0IsIHNvIDEwMDAgZW50cmllcyDiiYggMTAtMTAwTUIgb2YgbWVtb3J5LlxuICAgKiBDb25zaWRlciB5b3VyIGNvbXB1dGUgZW52aXJvbm1lbnQncyBtZW1vcnkgbGltaXRzIChMYW1iZGE6IDEyOE1CLTEwR0IsIEZhcmdhdGU6IDUxMk1CLTMwR0IpXG4gICAqIGFuZCBzaXplIGFjY29yZGluZ2x5LlxuICAgKlxuICAgKiBTZXQgdmlhIGVudmlyb25tZW50IHZhcmlhYmxlOiBgQ0RLX05FWFRKU19NRU1PUllfQ0FDSEVfTUFYX0VOVFJJRVNgXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IG1heEVudHJpZXM6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBEZWZhdWx0IHRvIDEgaG91ciBUVEwgYW5kIDEwMDAgbWF4IGVudHJpZXMuIEEgdmFsdWUgdGhhdCBpcyBub3QgYVxuICAgIC8vIG51bWJlciBmYWxscyBiYWNrIHRvbzogYXMgTmFOLCBub3RoaW5nIHdvdWxkIGV2ZXIgZXhwaXJlIG9yIGJlIGV2aWN0ZWQuXG4gICAgdGhpcy50dGxNcyA9IG51bWJlckZyb21FbnYoXG4gICAgICBcIkNES19ORVhUSlNfTUVNT1JZX0NBQ0hFX1RUTF9NU1wiLFxuICAgICAgNjAgKiA2MCAqIDEwMDAsXG4gICAgKTtcbiAgICB0aGlzLm1heEVudHJpZXMgPSBudW1iZXJGcm9tRW52KFxuICAgICAgXCJDREtfTkVYVEpTX01FTU9SWV9DQUNIRV9NQVhfRU5UUklFU1wiLFxuICAgICAgMTAwMCxcbiAgICApO1xuXG4gICAgdGhpcy5kZWJ1ZyhgVFRMOiAke3RoaXMudHRsTXMgLyAxMDAwfXMsIE1heCBlbnRyaWVzOiAke3RoaXMubWF4RW50cmllc31gKTtcbiAgfVxuXG4gIGFzeW5jIGdldChjYWNoZUtleTogc3RyaW5nKTogUHJvbWlzZTxDYWNoZUhhbmRsZXJWYWx1ZSB8IG51bGw+IHtcbiAgICAvLyBDaGVjayBpbi1tZW1vcnkgY2FjaGVcbiAgICBjb25zdCBtZW1vcnlFbnRyeSA9IHRoaXMuaW5NZW1vcnlDYWNoZS5nZXQoY2FjaGVLZXkpO1xuICAgIGlmIChtZW1vcnlFbnRyeSkge1xuICAgICAgLy8gQ2hlY2sgaWYgZXhwaXJlZFxuICAgICAgaWYgKERhdGUubm93KCkgPiBtZW1vcnlFbnRyeS5leHBpcmVzQXQpIHtcbiAgICAgICAgdGhpcy5kZWJ1ZyhgTUVNT1JZIENBQ0hFIEVYUElSRUQ6ICR7Y2FjaGVLZXl9YCk7XG4gICAgICAgIHRoaXMuaW5NZW1vcnlDYWNoZS5kZWxldGUoY2FjaGVLZXkpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgLy8gTW92ZSB0byBlbmQgKG1vc3QgcmVjZW50bHkgdXNlZCkgYnkgZGVsZXRpbmcgYW5kIHJlLWluc2VydGluZ1xuICAgICAgdGhpcy5pbk1lbW9yeUNhY2hlLmRlbGV0ZShjYWNoZUtleSk7XG4gICAgICB0aGlzLmluTWVtb3J5Q2FjaGUuc2V0KGNhY2hlS2V5LCBtZW1vcnlFbnRyeSk7XG5cbiAgICAgIHRoaXMuZGVidWcoYE1FTU9SWSBDQUNIRSBISVQ6ICR7Y2FjaGVLZXl9YCk7XG4gICAgICByZXR1cm4gbWVtb3J5RW50cnkudmFsdWU7XG4gICAgfVxuXG4gICAgdGhpcy5kZWJ1ZyhgTUVNT1JZIENBQ0hFIE1JU1M6ICR7Y2FjaGVLZXl9YCk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKipcbiAgICogYGxhc3RNb2RpZmllZGAgaXMgdGhlIHRpbWUgdGhlIGVudHJ5IHdhcyByZW5kZXJlZCwgZm9yIGFuIGVudHJ5IGNvcGllZCBpblxuICAgKiBmcm9tIGEgc2xvd2VyIGxheWVyOyBhIGZyZXNoIHJlbmRlciBsZWF2ZXMgaXQgb3V0IGFuZCBpcyBzdGFtcGVkIG5vdyAtIG9uXG4gICAqIHtAbGluayBtYXJrZXJDbG9ja30sIGxpa2UgdGhlIFMzIGNvcHkgb2YgdGhlIHNhbWUgcmVuZGVyLiBBIG1lbW9yeSBoaXQgaXNcbiAgICogY2hlY2tlZCBhZ2FpbnN0IHRoZSB0YWcgbWFya2Vycywgd2hpY2ggYXJlIHN0YW1wZWQgb24gdGhhdCBjbG9jaywgYW5kXG4gICAqIGBEYXRlLm5vdygpYCBkcmlmdHMgZnJvbSBpdCBmb3IgYXMgbG9uZyBhcyB0aGUgcHJvY2VzcyBsaXZlczogYW4gZW50cnlcbiAgICogc3RhbXBlZCBhaGVhZCBvZiBpdCBsb29rZWQgbmV3ZXIgdGhhbiBhIGByZXZhbGlkYXRlVGFnYCBydW4gd2l0aGluIHRoZVxuICAgKiBkcmlmdCwgYW5kIHdhcyBzZXJ2ZWQgZm9yIHRoZSB3aG9sZSBtZW1vcnkgVFRMLlxuICAgKlxuICAgKiBgY2FjaGVDb250cm9sYCBpcyB0aGUgbGlmZXRpbWUgdGhlIGVudHJ5IHdhcyByZW5kZXJlZCB3aXRoLCBoYW5kZWQgYmFja1xuICAgKiBmcm9tIHtAbGluayBnZXR9IGFzIHRoZSBTMyBsYXllciBkb2VzOyBzZWUgYGdldENhY2hlQ29udHJvbGAuXG4gICAqL1xuICBhc3luYyBzZXQoXG4gICAgY2FjaGVLZXk6IHN0cmluZyxcbiAgICBkYXRhOiBJbmNyZW1lbnRhbENhY2hlVmFsdWUgfCBudWxsLFxuICAgIGxhc3RNb2RpZmllZD86IG51bWJlcixcbiAgICBjYWNoZUNvbnRyb2w/OiBDYWNoZUNvbnRyb2wsXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghZGF0YSkge1xuICAgICAgLy8gRGVsZXRlIGZyb20gbWVtb3J5IGNhY2hlXG4gICAgICB0aGlzLmRlYnVnKGBNRU1PUlkgQ0FDSEUgREVMRVRFOiAke2NhY2hlS2V5fWApO1xuICAgICAgdGhpcy5pbk1lbW9yeUNhY2hlLmRlbGV0ZShjYWNoZUtleSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gRGVidWcgbG9nZ2luZyBmb3IgbWVtb3J5IGNhY2hlIHNldFxuICAgIHRoaXMuZGVidWcoYE1FTU9SWSBDQUNIRSBTRVQ6ICR7Y2FjaGVLZXl9ICgke2RhdGEua2luZH0pYCk7XG5cbiAgICAvLyBTdG9yZSBpbiBtZW1vcnkgY2FjaGUgd2l0aCBwcm9wZXIgQ2FjaGVIYW5kbGVyVmFsdWUgc3RydWN0dXJlXG4gICAgY29uc3QgY2FjaGVIYW5kbGVyVmFsdWU6IENhY2hlSGFuZGxlclZhbHVlID0ge1xuICAgICAgbGFzdE1vZGlmaWVkOiBsYXN0TW9kaWZpZWQgPz8gbWFya2VyQ2xvY2soKSxcbiAgICAgIHZhbHVlOiBkYXRhLFxuICAgICAgY2FjaGVDb250cm9sLFxuICAgIH07XG5cbiAgICBjb25zdCBlbnRyeTogTWVtb3J5Q2FjaGVFbnRyeSA9IHtcbiAgICAgIHZhbHVlOiBjYWNoZUhhbmRsZXJWYWx1ZSxcbiAgICAgIGV4cGlyZXNBdDogRGF0ZS5ub3coKSArIHRoaXMudHRsTXMsXG4gICAgfTtcblxuICAgIC8vIENsZWFuIHVwIGV4cGlyZWQgZW50cmllcyBiZWZvcmUgYWRkaW5nIG5ldyBvbmVcbiAgICB0aGlzLmNsZWFudXBFeHBpcmVkKCk7XG5cbiAgICAvLyBJZiB3ZSdyZSBhdCBtYXggY2FwYWNpdHksIGV2aWN0IG9sZGVzdCBlbnRyeVxuICAgIGlmICh0aGlzLmluTWVtb3J5Q2FjaGUuc2l6ZSA+PSB0aGlzLm1heEVudHJpZXMpIHtcbiAgICAgIHRoaXMuZXZpY3RPbGRlc3QoKTtcbiAgICB9XG5cbiAgICAvLyBBZGQgbmV3IGVudHJ5XG4gICAgdGhpcy5pbk1lbW9yeUNhY2hlLnNldChjYWNoZUtleSwgZW50cnkpO1xuXG4gICAgdGhpcy5kZWJ1ZyhgQ2FjaGUgZW50cmllczogJHt0aGlzLmluTWVtb3J5Q2FjaGUuc2l6ZX0vJHt0aGlzLm1heEVudHJpZXN9YCk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGFsbCBleHBpcmVkIGNhY2hlIGVudHJpZXNcbiAgICovXG4gIHByaXZhdGUgY2xlYW51cEV4cGlyZWQoKTogdm9pZCB7XG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICBsZXQgZXhwaXJlZENvdW50ID0gMDtcblxuICAgIGZvciAoY29uc3QgW2tleSwgZW50cnldIG9mIHRoaXMuaW5NZW1vcnlDYWNoZS5lbnRyaWVzKCkpIHtcbiAgICAgIGlmIChub3cgPiBlbnRyeS5leHBpcmVzQXQpIHtcbiAgICAgICAgdGhpcy5pbk1lbW9yeUNhY2hlLmRlbGV0ZShrZXkpO1xuICAgICAgICBleHBpcmVkQ291bnQrKztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZXhwaXJlZENvdW50ID4gMCkge1xuICAgICAgdGhpcy5kZWJ1ZyhgQ2xlYW5lZCB1cCAke2V4cGlyZWRDb3VudH0gZXhwaXJlZCBlbnRyaWVzYCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEV2aWN0IHRoZSBvbGRlc3QgKGxlYXN0IHJlY2VudGx5IHVzZWQpIGNhY2hlIGVudHJ5XG4gICAqIE1hcCBtYWludGFpbnMgaW5zZXJ0aW9uIG9yZGVyLCBzbyBmaXJzdCBlbnRyeSBpcyBvbGRlc3RcbiAgICovXG4gIHByaXZhdGUgZXZpY3RPbGRlc3QoKTogdm9pZCB7XG4gICAgY29uc3QgZmlyc3RLZXkgPSB0aGlzLmluTWVtb3J5Q2FjaGUua2V5cygpLm5leHQoKS52YWx1ZTtcbiAgICBpZiAoZmlyc3RLZXkpIHtcbiAgICAgIHRoaXMuZGVidWcoYE1BWCBDQVBBQ0lUWSBFVklDVCAoTFJVKTogJHtmaXJzdEtleX1gKTtcbiAgICAgIHRoaXMuaW5NZW1vcnlDYWNoZS5kZWxldGUoZmlyc3RLZXkpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFB1YmxpYyBtZXRob2RzIGZvciB0ZXN0aW5nIGFuZCBtb25pdG9yaW5nXG4gIHB1YmxpYyBnZXRDYWNoZVNpemUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pbk1lbW9yeUNhY2hlLnNpemU7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJDYWNoZSgpOiB2b2lkIHtcbiAgICB0aGlzLmluTWVtb3J5Q2FjaGUuY2xlYXIoKTtcbiAgfVxufVxuIl19
|
|
@@ -29,15 +29,26 @@ export declare class S3CacheHandler implements CacheHandler {
|
|
|
29
29
|
* request is answered from the stale entry - stale-while-revalidate - and that
|
|
30
30
|
* response carries the entry's original `s-maxage`, so the edge caches the
|
|
31
31
|
* stale body again. The background render that replaces it runs in this same
|
|
32
|
-
* process, so `set` checks
|
|
32
|
+
* process, so `set` checks for the key here and invalidates the key's paths a second
|
|
33
33
|
* time once the fresh entry is in S3. Without that, the edge kept serving the
|
|
34
34
|
* pre-revalidation page for the whole `s-maxage`.
|
|
35
35
|
*
|
|
36
36
|
* Expiring soft-revalidated entries outright instead would also keep the edge
|
|
37
37
|
* right, but it turns every `revalidateTag(tag, "max")` into a blocking render
|
|
38
38
|
* at the origin, which is the thing a profile asks not to happen.
|
|
39
|
+
*
|
|
40
|
+
* When the re-render fails, next 16.4's `retainPreviousCacheEntry` writes the
|
|
41
|
+
* stale value back with a short lifetime: that is no regeneration, so the key
|
|
42
|
+
* keeps waiting rather than invalidating the edge for a page that has not
|
|
43
|
+
* changed. {@link servedStale} is how `set` recognises it.
|
|
39
44
|
*/
|
|
40
45
|
private softRevalidatedKeys;
|
|
46
|
+
/**
|
|
47
|
+
* Every value handed out stale, by identity: the object `get` returned is the
|
|
48
|
+
* one `retainPreviousCacheEntry` writes back. Weak, so a page body is held no
|
|
49
|
+
* longer than the memory layer or the request holds it.
|
|
50
|
+
*/
|
|
51
|
+
private servedStale;
|
|
41
52
|
/** @see buildTagManifest */
|
|
42
53
|
private buildTags;
|
|
43
54
|
constructor(options: S3CacheHandlerOptions);
|