angular-async-cache
Advanced tools
Comparing version 2.0.1 to 2.0.2
@@ -1,1 +0,1 @@ | ||
{"__symbolic":"module","version":4,"metadata":{"memoryDriverFactory":{"__symbolic":"function","parameters":["options"],"value":{"__symbolic":"if","condition":{"__symbolic":"binop","operator":"instanceof","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"options"},"member":"driver"},"right":{"__symbolic":"reference","name":"MemoryDriver"}},"thenExpression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"options"},"member":"driver"},"elseExpression":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"MemoryDriver"}}}},"localStorageDriverFactory":{"__symbolic":"function","parameters":["options"],"value":{"__symbolic":"if","condition":{"__symbolic":"binop","operator":"instanceof","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"options"},"member":"driver"},"right":{"__symbolic":"reference","name":"LocalStorageDriver"}},"thenExpression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"options"},"member":"driver"},"elseExpression":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"LocalStorageDriver"}}}},"cacheOptionFactory":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"AsyncCacheOptions"}}},"AsyncCacheModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":26,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵa"}],"exports":[{"__symbolic":"reference","name":"ɵa"}]}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":["cacheOptions"],"defaults":[{"provide":{"__symbolic":"reference","name":"AsyncCacheOptions"},"useFactory":{"__symbolic":"reference","name":"cacheOptionFactory"}}],"value":{"ngModule":{"__symbolic":"reference","name":"AsyncCacheModule"},"providers":[{"provide":{"__symbolic":"reference","name":"LocalStorageDriver"},"useFactory":{"__symbolic":"reference","name":"localStorageDriverFactory"},"deps":[{"__symbolic":"reference","name":"AsyncCacheOptions"}]},{"provide":{"__symbolic":"reference","name":"MemoryDriver"},"useFactory":{"__symbolic":"reference","name":"memoryDriverFactory"},"deps":[{"__symbolic":"reference","name":"AsyncCacheOptions"}]},{"__symbolic":"reference","name":"cacheOptions"},{"__symbolic":"reference","name":"AsyncCache"},{"__symbolic":"reference","name":"CachedHttp"}]}}}},"AsyncValue":{"__symbolic":"interface"},"CacheDriver":{"__symbolic":"interface"},"LocalStorageOptions":{"__symbolic":"interface"},"LocalStorageDriver":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}],"has":[{"__symbolic":"method"}],"get":[{"__symbolic":"method"}],"set":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"clear":[{"__symbolic":"method"}],"keys":[{"__symbolic":"method"}],"getInternalKey":[{"__symbolic":"method"}],"getExternalKey":[{"__symbolic":"method"}]}},"MemoryDriver":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"has":[{"__symbolic":"method"}],"get":[{"__symbolic":"method"}],"set":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"clear":[{"__symbolic":"method"}],"keys":[{"__symbolic":"method"}]}},"AsyncCacheOptions":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}]}},"GetPromiseFunction":{"__symbolic":"interface"},"AsyncCache":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":28,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AsyncCacheOptions"}]}],"wrap":[{"__symbolic":"method"}]}},"HttpRequestArgs":{"__symbolic":"interface"},"CachedHttp":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":14,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":16,"character":28},{"__symbolic":"reference","name":"AsyncCache"}]}],"get":[{"__symbolic":"method"}]}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":5,"character":1},"arguments":[{"name":"asyncCache"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AsyncCache"}]}],"transform":[{"__symbolic":"method"}]}}},"origins":{"memoryDriverFactory":"./async-cache.module","localStorageDriverFactory":"./async-cache.module","cacheOptionFactory":"./async-cache.module","AsyncCacheModule":"./async-cache.module","AsyncValue":"./drivers/cache-driver.interface","CacheDriver":"./drivers/cache-driver.interface","LocalStorageOptions":"./drivers/local-storage-driver.provider","LocalStorageDriver":"./drivers/local-storage-driver.provider","MemoryDriver":"./drivers/memory-driver.provider","AsyncCacheOptions":"./async-cache-options.provider","GetPromiseFunction":"./async-cache.provider","AsyncCache":"./async-cache.provider","HttpRequestArgs":"./cached-http.provider","CachedHttp":"./cached-http.provider","ɵa":"./async-cache.pipe"},"importAs":"angular-async-cache"} | ||
{"__symbolic":"module","version":4,"metadata":{"memoryDriverFactory":{"__symbolic":"function","parameters":["options"],"value":{"__symbolic":"if","condition":{"__symbolic":"binop","operator":"instanceof","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"options"},"member":"driver"},"right":{"__symbolic":"reference","name":"MemoryDriver"}},"thenExpression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"options"},"member":"driver"},"elseExpression":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"MemoryDriver"}}}},"localStorageDriverFactory":{"__symbolic":"function","parameters":["options"],"value":{"__symbolic":"if","condition":{"__symbolic":"binop","operator":"instanceof","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"options"},"member":"driver"},"right":{"__symbolic":"reference","name":"LocalStorageDriver"}},"thenExpression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"options"},"member":"driver"},"elseExpression":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"LocalStorageDriver"}}}},"cacheOptionFactory":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"AsyncCacheOptions"}}},"AsyncCacheModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":26,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵa"}],"exports":[{"__symbolic":"reference","name":"ɵa"}]}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":["cacheOptions"],"defaults":[{"provide":{"__symbolic":"reference","name":"AsyncCacheOptions"},"useFactory":{"__symbolic":"reference","name":"cacheOptionFactory"}}],"value":{"ngModule":{"__symbolic":"reference","name":"AsyncCacheModule"},"providers":[{"provide":{"__symbolic":"reference","name":"LocalStorageDriver"},"useFactory":{"__symbolic":"reference","name":"localStorageDriverFactory"},"deps":[{"__symbolic":"reference","name":"AsyncCacheOptions"}]},{"provide":{"__symbolic":"reference","name":"MemoryDriver"},"useFactory":{"__symbolic":"reference","name":"memoryDriverFactory"},"deps":[{"__symbolic":"reference","name":"AsyncCacheOptions"}]},{"__symbolic":"reference","name":"cacheOptions"},{"__symbolic":"reference","name":"AsyncCache"},{"__symbolic":"reference","name":"CachedHttp"}]}}}},"AsyncValue":{"__symbolic":"interface"},"CacheDriver":{"__symbolic":"interface"},"LocalStorageOptions":{"__symbolic":"interface"},"LocalStorageDriver":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}],"has":[{"__symbolic":"method"}],"get":[{"__symbolic":"method"}],"set":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"clear":[{"__symbolic":"method"}],"keys":[{"__symbolic":"method"}],"getInternalKey":[{"__symbolic":"method"}],"getExternalKey":[{"__symbolic":"method"}]}},"MemoryDriver":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"has":[{"__symbolic":"method"}],"get":[{"__symbolic":"method"}],"set":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"clear":[{"__symbolic":"method"}],"keys":[{"__symbolic":"method"}]}},"AsyncCacheOptions":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}]}},"GetPromiseFunction":{"__symbolic":"interface"},"AsyncCache":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":28,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AsyncCacheOptions"}]}],"wrap":[{"__symbolic":"method"}]}},"HttpRequestArgs":{"__symbolic":"interface"},"CachedHttp":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":18,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":20,"character":28},{"__symbolic":"reference","name":"AsyncCache"}]}],"get":[{"__symbolic":"method"}]}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":5,"character":1},"arguments":[{"name":"asyncCache"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AsyncCache"}]}],"transform":[{"__symbolic":"method"}]}}},"origins":{"memoryDriverFactory":"./async-cache.module","localStorageDriverFactory":"./async-cache.module","cacheOptionFactory":"./async-cache.module","AsyncCacheModule":"./async-cache.module","AsyncValue":"./drivers/cache-driver.interface","CacheDriver":"./drivers/cache-driver.interface","LocalStorageOptions":"./drivers/local-storage-driver.provider","LocalStorageDriver":"./drivers/local-storage-driver.provider","MemoryDriver":"./drivers/memory-driver.provider","AsyncCacheOptions":"./async-cache-options.provider","GetPromiseFunction":"./async-cache.provider","AsyncCache":"./async-cache.provider","HttpRequestArgs":"./cached-http.provider","CachedHttp":"./cached-http.provider","ɵa":"./async-cache.pipe"},"importAs":"angular-async-cache"} |
@@ -383,2 +383,3 @@ (function (global, factory) { | ||
/** | ||
* @template T | ||
* @param {?} url | ||
@@ -390,2 +391,3 @@ * @param {?=} options | ||
CachedHttp.prototype.get = /** | ||
* @template T | ||
* @param {?} url | ||
@@ -400,3 +402,10 @@ * @param {?=} options | ||
if (options && options.params) { | ||
cacheKey += '?' + options.params.toString(); | ||
var /** @type {?} */ qs = options.params.toString(); | ||
if (typeof options.params === 'object' && | ||
!(options.params instanceof http.HttpParams)) { | ||
qs = new http.HttpParams({ | ||
fromObject: options.params | ||
}).toString(); | ||
} | ||
cacheKey += '?' + qs; | ||
} | ||
@@ -517,2 +526,2 @@ return this.asyncCache.wrap(result$, cacheKey, asyncCacheOptions); | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1hc3luYy1jYWNoZS51bWQuanMubWFwIiwic291cmNlcyI6WyJuZzovL2FuZ3VsYXItYXN5bmMtY2FjaGUvZHJpdmVycy9sb2NhbC1zdG9yYWdlLWRyaXZlci5wcm92aWRlci50cyIsIm5nOi8vYW5ndWxhci1hc3luYy1jYWNoZS9kcml2ZXJzL21lbW9yeS1kcml2ZXIucHJvdmlkZXIudHMiLCJuZzovL2FuZ3VsYXItYXN5bmMtY2FjaGUvYXN5bmMtY2FjaGUtb3B0aW9ucy5wcm92aWRlci50cyIsIm5nOi8vYW5ndWxhci1hc3luYy1jYWNoZS9hc3luYy1jYWNoZS5wcm92aWRlci50cyIsIm5nOi8vYW5ndWxhci1hc3luYy1jYWNoZS9hc3luYy1jYWNoZS5waXBlLnRzIiwibmc6Ly9hbmd1bGFyLWFzeW5jLWNhY2hlL2NhY2hlZC1odHRwLnByb3ZpZGVyLnRzIiwibmc6Ly9hbmd1bGFyLWFzeW5jLWNhY2hlL2FzeW5jLWNhY2hlLm1vZHVsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDYWNoZURyaXZlciwgQXN5bmNWYWx1ZSB9IGZyb20gJy4vY2FjaGUtZHJpdmVyLmludGVyZmFjZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9jYWxTdG9yYWdlT3B0aW9ucyB7XG4gIGtleVByZWZpeDogc3RyaW5nO1xufVxuXG5jb25zdCBERUZBVUxUX0tFWV9QUkVGSVggPSAnYXN5bmMtY2FjaGUtJztcblxuZXhwb3J0IGNsYXNzIExvY2FsU3RvcmFnZURyaXZlciBpbXBsZW1lbnRzIENhY2hlRHJpdmVyIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBvcHRpb25zOiBMb2NhbFN0b3JhZ2VPcHRpb25zID0geyBrZXlQcmVmaXg6IERFRkFVTFRfS0VZX1BSRUZJWCB9XG4gICkge31cblxuICBoYXMoa2V5OiBzdHJpbmcpOiBBc3luY1ZhbHVlIHtcbiAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmhhc093blByb3BlcnR5KHRoaXMuZ2V0SW50ZXJuYWxLZXkoa2V5KSk7XG4gIH1cblxuICBnZXQoa2V5OiBzdHJpbmcpOiBBc3luY1ZhbHVlIHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmdldEludGVybmFsS2V5KGtleSkpKTtcbiAgfVxuXG4gIHNldChrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IEFzeW5jVmFsdWUge1xuICAgIHJldHVybiBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcbiAgICAgIHRoaXMuZ2V0SW50ZXJuYWxLZXkoa2V5KSxcbiAgICAgIEpTT04uc3RyaW5naWZ5KHZhbHVlKVxuICAgICk7XG4gIH1cblxuICBkZWxldGUoa2V5OiBzdHJpbmcpOiBBc3luY1ZhbHVlIHtcbiAgICByZXR1cm4gbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5nZXRJbnRlcm5hbEtleShrZXkpKTtcbiAgfVxuXG4gIGNsZWFyKCk6IEFzeW5jVmFsdWUge1xuICAgIGZvciAoY29uc3Qga2V5IG9mIHRoaXMua2V5cygpKSB7XG4gICAgICB0aGlzLmRlbGV0ZShrZXkpO1xuICAgIH1cbiAgICByZXR1cm47XG4gIH1cblxuICBrZXlzKCk6IEFzeW5jVmFsdWUge1xuICAgIGNvbnN0IGtleXM6IHN0cmluZ1tdID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsb2NhbFN0b3JhZ2UubGVuZ3RoOyBpKyspIHtcbiAgICAgIGtleXMucHVzaChsb2NhbFN0b3JhZ2Uua2V5KGkpKTtcbiAgICB9XG4gICAgcmV0dXJuIGtleXNcbiAgICAgIC5maWx0ZXIoa2V5ID0+IGtleS5zdGFydHNXaXRoKHRoaXMub3B0aW9ucy5rZXlQcmVmaXgpKVxuICAgICAgLm1hcChrZXkgPT4gdGhpcy5nZXRFeHRlcm5hbEtleShrZXkpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW50ZXJuYWxLZXkoc3VmZml4OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLm9wdGlvbnMua2V5UHJlZml4fSR7c3VmZml4fWA7XG4gIH1cblxuICBwcml2YXRlIGdldEV4dGVybmFsS2V5KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4ga2V5LnJlcGxhY2UobmV3IFJlZ0V4cCgnXicgKyB0aGlzLm9wdGlvbnMua2V5UHJlZml4KSwgJycpO1xuICB9XG59XG4iLCJpbXBvcnQgeyBDYWNoZURyaXZlciwgQXN5bmNWYWx1ZSB9IGZyb20gJy4vY2FjaGUtZHJpdmVyLmludGVyZmFjZSc7XG5cbmNvbnN0IGNhY2hlS2V5OiBhbnkgPSBTeW1ib2woJ2NhY2hlIGtleScpO1xuXG5leHBvcnQgY2xhc3MgTWVtb3J5RHJpdmVyIGltcGxlbWVudHMgQ2FjaGVEcml2ZXIge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzW2NhY2hlS2V5XSA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KCk7XG4gIH1cblxuICBoYXMoa2V5OiBzdHJpbmcpOiBBc3luY1ZhbHVlIHtcbiAgICByZXR1cm4gdGhpc1tjYWNoZUtleV0uaGFzKGtleSk7XG4gIH1cblxuICBnZXQoa2V5OiBzdHJpbmcpOiBBc3luY1ZhbHVlIHtcbiAgICByZXR1cm4gdGhpc1tjYWNoZUtleV0uZ2V0KGtleSk7XG4gIH1cblxuICBzZXQoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpOiBBc3luY1ZhbHVlIHtcbiAgICByZXR1cm4gdGhpc1tjYWNoZUtleV0uc2V0KGtleSwgdmFsdWUpO1xuICB9XG5cbiAgZGVsZXRlKGtleTogc3RyaW5nKTogQXN5bmNWYWx1ZSB7XG4gICAgcmV0dXJuIHRoaXNbY2FjaGVLZXldLmRlbGV0ZShrZXkpO1xuICB9XG5cbiAgY2xlYXIoKTogQXN5bmNWYWx1ZSB7XG4gICAgcmV0dXJuIHRoaXNbY2FjaGVLZXldLmNsZWFyKCk7XG4gIH1cblxuICBrZXlzKCk6IEFzeW5jVmFsdWUge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXNbY2FjaGVLZXldLmtleXMoKSk7XG4gIH1cbn1cbiIsImltcG9ydCB7IENhY2hlRHJpdmVyIH0gZnJvbSAnLi9kcml2ZXJzL2NhY2hlLWRyaXZlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTWVtb3J5RHJpdmVyIH0gZnJvbSAnLi9kcml2ZXJzL21lbW9yeS1kcml2ZXIucHJvdmlkZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFzeW5jQ2FjaGVPcHRpb25zSW50ZXJmYWNlIHtcbiAgZHJpdmVyPzogQ2FjaGVEcml2ZXI7XG5cbiAgZnJvbUNhY2hlQW5kUmVwbGF5PzogYm9vbGVhbjtcblxuICBieXBhc3NDYWNoZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBBc3luY0NhY2hlT3B0aW9ucyBpbXBsZW1lbnRzIEFzeW5jQ2FjaGVPcHRpb25zSW50ZXJmYWNlIHtcbiAgZHJpdmVyOiBDYWNoZURyaXZlciA9IG5ldyBNZW1vcnlEcml2ZXIoKTtcblxuICBmcm9tQ2FjaGVBbmRSZXBsYXkgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihvdmVycmlkZXM6IEFzeW5jQ2FjaGVPcHRpb25zSW50ZXJmYWNlID0ge30pIHtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIG92ZXJyaWRlcyk7XG4gIH1cbn1cbiIsImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmVyLCBPYnNlcnZhYmxlLCBpc09ic2VydmFibGUsIGZyb20sIG9mLCBtZXJnZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBtZXJnZU1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIEFzeW5jQ2FjaGVPcHRpb25zLFxuICBBc3luY0NhY2hlT3B0aW9uc0ludGVyZmFjZVxufSBmcm9tICcuL2FzeW5jLWNhY2hlLW9wdGlvbnMucHJvdmlkZXInO1xuXG5leHBvcnQgdHlwZSBHZXRQcm9taXNlRnVuY3Rpb24gPSAoKSA9PiBQcm9taXNlPGFueT47XG5cbmZ1bmN0aW9uIGlzUHJvbWlzZUxpa2UoZm46IGFueSkge1xuICByZXR1cm4gZm4gJiYgdHlwZW9mIGZuLnRoZW4gPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIGZuLmNhdGNoID09PSAnZnVuY3Rpb24nO1xufVxuXG5mdW5jdGlvbiBpc09ic2VydmFibGVMaWtlKGZuOiBhbnkpIHtcbiAgcmV0dXJuIGZuICYmIGlzT2JzZXJ2YWJsZShmbik7XG59XG5cbmZ1bmN0aW9uIGFueVRvT2JzZXJ2YWJsZShmbjogYW55KSB7XG4gIGlmIChpc09ic2VydmFibGVMaWtlKGZuKSkge1xuICAgIHJldHVybiBmbjtcbiAgfSBlbHNlIGlmIChpc1Byb21pc2VMaWtlKGZuKSkge1xuICAgIHJldHVybiBmcm9tKGZuKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gb2YoZm4pO1xuICB9XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBc3luY0NhY2hlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkZWZhdWx0czogQXN5bmNDYWNoZU9wdGlvbnMpIHt9XG5cbiAgd3JhcChcbiAgICB2YWx1ZTogT2JzZXJ2YWJsZTxhbnk+IHwgR2V0UHJvbWlzZUZ1bmN0aW9uLFxuICAgIGNhY2hlS2V5OiBzdHJpbmcsXG4gICAgdXNlck9wdGlvbnM6IEFzeW5jQ2FjaGVPcHRpb25zSW50ZXJmYWNlID0ge31cbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgZ2V0QXN5bmNWYWx1ZTogT2JzZXJ2YWJsZTxhbnk+O1xuICAgIGNvbnN0IG9wdGlvbnM6IEFzeW5jQ2FjaGVPcHRpb25zSW50ZXJmYWNlID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgdGhpcy5kZWZhdWx0cyxcbiAgICAgIHVzZXJPcHRpb25zXG4gICAgKTtcblxuICAgIGlmIChpc09ic2VydmFibGVMaWtlKHZhbHVlKSkge1xuICAgICAgZ2V0QXN5bmNWYWx1ZSA9IHZhbHVlIGFzIE9ic2VydmFibGU8YW55PjtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZ2V0QXN5bmNWYWx1ZSA9IE9ic2VydmFibGUuY3JlYXRlKChvYnNlcnZlcjogT2JzZXJ2ZXI8YW55PikgPT4ge1xuICAgICAgICBjb25zdCBwcm9taXNlOiBQcm9taXNlPGFueT4gPSB2YWx1ZSgpO1xuICAgICAgICBpZiAoIWlzUHJvbWlzZUxpa2UocHJvbWlzZSkpIHtcbiAgICAgICAgICByZXR1cm4gb2JzZXJ2ZXIuZXJyb3IoXG4gICAgICAgICAgICBcIlRoZSBmdW5jdGlvbiB5b3UgcGFzc2VkIHRvIHRoZSBhc3luYyBjYWNoZSBkaWRuJ3QgcmV0dXJuIGEgcHJvbWlzZVwiXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBwcm9taXNlXG4gICAgICAgICAgLnRoZW4ocmVzdWx0ID0+IHtcbiAgICAgICAgICAgIG9ic2VydmVyLm5leHQocmVzdWx0KTtcbiAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKGVycik7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnVmFsdWUgY2FuIG9ubHkgYmUgYW4gb2JzZXJ2YWJsZSBvciBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIHByb21pc2UnXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBhbnlUb09ic2VydmFibGUob3B0aW9ucy5kcml2ZXIuaGFzKGNhY2hlS2V5KSkucGlwZShcbiAgICAgIG1lcmdlTWFwKGV4aXN0c0luQ2FjaGUgPT4ge1xuICAgICAgICBjb25zdCBjYWNoZUFuZFJldHVybkFzeW5jVmFsdWUgPSAoKSA9PlxuICAgICAgICAgIGdldEFzeW5jVmFsdWUucGlwZShcbiAgICAgICAgICAgIG1lcmdlTWFwKGFzeW5jVmFsdWUgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gYW55VG9PYnNlcnZhYmxlKFxuICAgICAgICAgICAgICAgIG9wdGlvbnMuZHJpdmVyLnNldChjYWNoZUtleSwgYXN5bmNWYWx1ZSlcbiAgICAgICAgICAgICAgKS5waXBlKG1hcCgoKSA9PiBhc3luY1ZhbHVlKSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG5cbiAgICAgICAgaWYgKGV4aXN0c0luQ2FjaGUgJiYgIW9wdGlvbnMuYnlwYXNzQ2FjaGUpIHtcbiAgICAgICAgICBjb25zdCBnZXRDYWNoZWRWYWx1ZTogT2JzZXJ2YWJsZTxhbnk+ID0gYW55VG9PYnNlcnZhYmxlKFxuICAgICAgICAgICAgb3B0aW9ucy5kcml2ZXIuZ2V0KGNhY2hlS2V5KVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAob3B0aW9ucy5mcm9tQ2FjaGVBbmRSZXBsYXkpIHtcbiAgICAgICAgICAgIHJldHVybiBtZXJnZShnZXRDYWNoZWRWYWx1ZSwgY2FjaGVBbmRSZXR1cm5Bc3luY1ZhbHVlKCkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0Q2FjaGVkVmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBjYWNoZUFuZFJldHVybkFzeW5jVmFsdWUoKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iLCJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBc3luY0NhY2hlIH0gZnJvbSAnLi9hc3luYy1jYWNoZS5wcm92aWRlcic7XG5pbXBvcnQgeyBBc3luY0NhY2hlT3B0aW9uc0ludGVyZmFjZSB9IGZyb20gJy4vYXN5bmMtY2FjaGUtb3B0aW9ucy5wcm92aWRlcic7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2FzeW5jQ2FjaGUnIC8vIHRzbGludDpkaXNhYmxlLWxpbmUgcGlwZS1uYW1pbmdcbn0pXG5leHBvcnQgY2xhc3MgQXN5bmNDYWNoZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhc3luY0NhY2hlOiBBc3luY0NhY2hlKSB7fVxuXG4gIHRyYW5zZm9ybShcbiAgICB2YWx1ZTogT2JzZXJ2YWJsZTxhbnk+LFxuICAgIGNhY2hlS2V5OiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IEFzeW5jQ2FjaGVPcHRpb25zSW50ZXJmYWNlXG4gICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuYXN5bmNDYWNoZS53cmFwKHZhbHVlLCBjYWNoZUtleSwgb3B0aW9ucyk7XG4gIH1cbn1cbiIsImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzLCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXN5bmNDYWNoZSB9IGZyb20gJy4vYXN5bmMtY2FjaGUucHJvdmlkZXInO1xuaW1wb3J0IHsgQXN5bmNDYWNoZU9wdGlvbnNJbnRlcmZhY2UgfSBmcm9tICcuL2FzeW5jLWNhY2hlLW9wdGlvbnMucHJvdmlkZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBSZXF1ZXN0QXJncyB7XG4gIGhlYWRlcnM/OiBIdHRwSGVhZGVycztcbiAgcGFyYW1zPzogSHR0cFBhcmFtcztcbiAgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuO1xuICByZXNwb25zZVR5cGU/OiAnanNvbic7XG4gIHdpdGhDcmVkZW50aWFscz86IGJvb2xlYW47XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDYWNoZWRIdHRwIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIGFzeW5jQ2FjaGU6IEFzeW5jQ2FjaGUpIHt9XG5cbiAgZ2V0KFxuICAgIHVybDogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBIdHRwUmVxdWVzdEFyZ3MsXG4gICAgYXN5bmNDYWNoZU9wdGlvbnM/OiBBc3luY0NhY2hlT3B0aW9uc0ludGVyZmFjZVxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHJlc3VsdCQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuaHR0cC5nZXQodXJsLCBvcHRpb25zKTtcblxuICAgIGxldCBjYWNoZUtleTogc3RyaW5nID0gdXJsO1xuICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMucGFyYW1zKSB7XG4gICAgICBjYWNoZUtleSArPSAnPycgKyBvcHRpb25zLnBhcmFtcy50b1N0cmluZygpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFzeW5jQ2FjaGUud3JhcChyZXN1bHQkLCBjYWNoZUtleSwgYXN5bmNDYWNoZU9wdGlvbnMpO1xuICB9XG59XG4iLCJpbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycywgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvY2FsU3RvcmFnZURyaXZlciB9IGZyb20gJy4vZHJpdmVycy9sb2NhbC1zdG9yYWdlLWRyaXZlci5wcm92aWRlcic7XG5pbXBvcnQgeyBNZW1vcnlEcml2ZXIgfSBmcm9tICcuL2RyaXZlcnMvbWVtb3J5LWRyaXZlci5wcm92aWRlcic7XG5pbXBvcnQgeyBBc3luY0NhY2hlT3B0aW9ucyB9IGZyb20gJy4vYXN5bmMtY2FjaGUtb3B0aW9ucy5wcm92aWRlcic7XG5pbXBvcnQgeyBBc3luY0NhY2hlIH0gZnJvbSAnLi9hc3luYy1jYWNoZS5wcm92aWRlcic7XG5pbXBvcnQgeyBBc3luY0NhY2hlUGlwZSB9IGZyb20gJy4vYXN5bmMtY2FjaGUucGlwZSc7XG5pbXBvcnQgeyBDYWNoZWRIdHRwIH0gZnJvbSAnLi9jYWNoZWQtaHR0cC5wcm92aWRlcic7XG5cbmV4cG9ydCBmdW5jdGlvbiBtZW1vcnlEcml2ZXJGYWN0b3J5KG9wdGlvbnM6IEFzeW5jQ2FjaGVPcHRpb25zKTogTWVtb3J5RHJpdmVyIHtcbiAgcmV0dXJuIG9wdGlvbnMuZHJpdmVyIGluc3RhbmNlb2YgTWVtb3J5RHJpdmVyXG4gICAgPyBvcHRpb25zLmRyaXZlclxuICAgIDogbmV3IE1lbW9yeURyaXZlcigpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9jYWxTdG9yYWdlRHJpdmVyRmFjdG9yeShcbiAgb3B0aW9uczogQXN5bmNDYWNoZU9wdGlvbnNcbik6IExvY2FsU3RvcmFnZURyaXZlciB7XG4gIHJldHVybiBvcHRpb25zLmRyaXZlciBpbnN0YW5jZW9mIExvY2FsU3RvcmFnZURyaXZlclxuICAgID8gKG9wdGlvbnMuZHJpdmVyIGFzIExvY2FsU3RvcmFnZURyaXZlcilcbiAgICA6IG5ldyBMb2NhbFN0b3JhZ2VEcml2ZXIoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhY2hlT3B0aW9uRmFjdG9yeSgpOiBBc3luY0NhY2hlT3B0aW9ucyB7XG4gIHJldHVybiBuZXcgQXN5bmNDYWNoZU9wdGlvbnMoKTtcbn1cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbQXN5bmNDYWNoZVBpcGVdLFxuICBleHBvcnRzOiBbQXN5bmNDYWNoZVBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIEFzeW5jQ2FjaGVNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdChcbiAgICBjYWNoZU9wdGlvbnM6IFByb3ZpZGVyID0ge1xuICAgICAgcHJvdmlkZTogQXN5bmNDYWNoZU9wdGlvbnMsXG4gICAgICB1c2VGYWN0b3J5OiBjYWNoZU9wdGlvbkZhY3RvcnlcbiAgICB9XG4gICk6IE1vZHVsZVdpdGhQcm92aWRlcnMge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogQXN5bmNDYWNoZU1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogTG9jYWxTdG9yYWdlRHJpdmVyLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IGxvY2FsU3RvcmFnZURyaXZlckZhY3RvcnksXG4gICAgICAgICAgZGVwczogW0FzeW5jQ2FjaGVPcHRpb25zXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogTWVtb3J5RHJpdmVyLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IG1lbW9yeURyaXZlckZhY3RvcnksXG4gICAgICAgICAgZGVwczogW0FzeW5jQ2FjaGVPcHRpb25zXVxuICAgICAgICB9LFxuICAgICAgICBjYWNoZU9wdGlvbnMsXG4gICAgICAgIEFzeW5jQ2FjaGUsXG4gICAgICAgIENhY2hlZEh0dHBcbiAgICAgIF1cbiAgICB9O1xuICB9XG59XG4iXSwibmFtZXMiOlsidHNsaWJfMS5fX3ZhbHVlcyIsImlzT2JzZXJ2YWJsZSIsImZyb20iLCJvZiIsIk9ic2VydmFibGUiLCJtZXJnZU1hcCIsIm1hcCIsIm1lcmdlIiwiSW5qZWN0YWJsZSIsIlBpcGUiLCJodHRwIiwiSHR0cENsaWVudCIsIk5nTW9kdWxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0lBTUEscUJBQU0sa0JBQWtCLEdBQUcsY0FBYyxDQUFDO0FBRTFDLFFBQUE7UUFDRSw0QkFDVTs7NEJBQWlDLFNBQVMsRUFBRSxrQkFBa0I7O1lBQTlELFlBQU8sR0FBUCxPQUFPO1NBQ2I7Ozs7O1FBRUosZ0NBQUc7Ozs7WUFBSCxVQUFJLEdBQVc7Z0JBQ2IsT0FBTyxZQUFZLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUM5RDs7Ozs7UUFFRCxnQ0FBRzs7OztZQUFILFVBQUksR0FBVztnQkFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNuRTs7Ozs7O1FBRUQsZ0NBQUc7Ozs7O1lBQUgsVUFBSSxHQUFXLEVBQUUsS0FBVTtnQkFDekIsT0FBTyxZQUFZLENBQUMsT0FBTyxDQUN6QixJQUFJLENB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 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1hc3luYy1jYWNoZS51bWQuanMubWFwIiwic291cmNlcyI6WyJuZzovL2FuZ3VsYXItYXN5bmMtY2FjaGUvZHJpdmVycy9sb2NhbC1zdG9yYWdlLWRyaXZlci5wcm92aWRlci50cyIsIm5nOi8vYW5ndWxhci1hc3luYy1jYWNoZS9kcml2ZXJzL21lbW9yeS1kcml2ZXIucHJvdmlkZXIudHMiLCJuZzovL2FuZ3VsYXItYXN5bmMtY2FjaGUvYXN5bmMtY2FjaGUtb3B0aW9ucy5wcm92aWRlci50cyIsIm5nOi8vYW5ndWxhci1hc3luYy1jYWNoZS9hc3luYy1jYWNoZS5wcm92aWRlci50cyIsIm5nOi8vYW5ndWxhci1hc3luYy1jYWNoZS9hc3luYy1jYWNoZS5waXBlLnRzIiwibmc6Ly9hbmd1bGFyLWFzeW5jLWNhY2hlL2NhY2hlZC1odHRwLnByb3ZpZGVyLnRzIiwibmc6Ly9hbmd1bGFyLWFzeW5jLWNhY2hlL2FzeW5jLWNhY2hlLm1vZHVsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDYWNoZURyaXZlciwgQXN5bmNWYWx1ZSB9IGZyb20gJy4vY2FjaGUtZHJpdmVyLmludGVyZmFjZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9jYWxTdG9yYWdlT3B0aW9ucyB7XG4gIGtleVByZWZpeDogc3RyaW5nO1xufVxuXG5jb25zdCBERUZBVUxUX0tFWV9QUkVGSVggPSAnYXN5bmMtY2FjaGUtJztcblxuZXhwb3J0IGNsYXNzIExvY2FsU3RvcmFnZURyaXZlciBpbXBsZW1lbnRzIENhY2hlRHJpdmVyIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBvcHRpb25zOiBMb2NhbFN0b3JhZ2VPcHRpb25zID0geyBrZXlQcmVmaXg6IERFRkFVTFRfS0VZX1BSRUZJWCB9XG4gICkge31cblxuICBoYXMoa2V5OiBzdHJpbmcpOiBBc3luY1ZhbHVlIHtcbiAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmhhc093blByb3BlcnR5KHRoaXMuZ2V0SW50ZXJuYWxLZXkoa2V5KSk7XG4gIH1cblxuICBnZXQoa2V5OiBzdHJpbmcpOiBBc3luY1ZhbHVlIHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmdldEludGVybmFsS2V5KGtleSkpKTtcbiAgfVxuXG4gIHNldChrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IEFzeW5jVmFsdWUge1xuICAgIHJldHVybiBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcbiAgICAgIHRoaXMuZ2V0SW50ZXJuYWxLZXkoa2V5KSxcbiAgICAgIEpTT04uc3RyaW5naWZ5KHZhbHVlKVxuICAgICk7XG4gIH1cblxuICBkZWxldGUoa2V5OiBzdHJpbmcpOiBBc3luY1ZhbHVlIHtcbiAgICByZXR1cm4gbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5nZXRJbnRlcm5hbEtleShrZXkpKTtcbiAgfVxuXG4gIGNsZWFyKCk6IEFzeW5jVmFsdWUge1xuICAgIGZvciAoY29uc3Qga2V5IG9mIHRoaXMua2V5cygpKSB7XG4gICAgICB0aGlzLmRlbGV0ZShrZXkpO1xuICAgIH1cbiAgICByZXR1cm47XG4gIH1cblxuICBrZXlzKCk6IEFzeW5jVmFsdWUge1xuICAgIGNvbnN0IGtleXM6IHN0cmluZ1tdID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsb2NhbFN0b3JhZ2UubGVuZ3RoOyBpKyspIHtcbiAgICAgIGtleXMucHVzaChsb2NhbFN0b3JhZ2Uua2V5KGkpKTtcbiAgICB9XG4gICAgcmV0dXJuIGtleXNcbiAgICAgIC5maWx0ZXIoa2V5ID0+IGtleS5zdGFydHNXaXRoKHRoaXMub3B0aW9ucy5rZXlQcmVmaXgpKVxuICAgICAgLm1hcChrZXkgPT4gdGhpcy5nZXRFeHRlcm5hbEtleShrZXkpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW50ZXJuYWxLZXkoc3VmZml4OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLm9wdGlvbnMua2V5UHJlZml4fSR7c3VmZml4fWA7XG4gIH1cblxuICBwcml2YXRlIGdldEV4dGVybmFsS2V5KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4ga2V5LnJlcGxhY2UobmV3IFJlZ0V4cCgnXicgKyB0aGlzLm9wdGlvbnMua2V5UHJlZml4KSwgJycpO1xuICB9XG59XG4iLCJpbXBvcnQgeyBDYWNoZURyaXZlciwgQXN5bmNWYWx1ZSB9IGZyb20gJy4vY2FjaGUtZHJpdmVyLmludGVyZmFjZSc7XG5cbmNvbnN0IGNhY2hlS2V5OiBhbnkgPSBTeW1ib2woJ2NhY2hlIGtleScpO1xuXG5leHBvcnQgY2xhc3MgTWVtb3J5RHJpdmVyIGltcGxlbWVudHMgQ2FjaGVEcml2ZXIge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzW2NhY2hlS2V5XSA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KCk7XG4gIH1cblxuICBoYXMoa2V5OiBzdHJpbmcpOiBBc3luY1ZhbHVlIHtcbiAgICByZXR1cm4gdGhpc1tjYWNoZUtleV0uaGFzKGtleSk7XG4gIH1cblxuICBnZXQoa2V5OiBzdHJpbmcpOiBBc3luY1ZhbHVlIHtcbiAgICByZXR1cm4gdGhpc1tjYWNoZUtleV0uZ2V0KGtleSk7XG4gIH1cblxuICBzZXQoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpOiBBc3luY1ZhbHVlIHtcbiAgICByZXR1cm4gdGhpc1tjYWNoZUtleV0uc2V0KGtleSwgdmFsdWUpO1xuICB9XG5cbiAgZGVsZXRlKGtleTogc3RyaW5nKTogQXN5bmNWYWx1ZSB7XG4gICAgcmV0dXJuIHRoaXNbY2FjaGVLZXldLmRlbGV0ZShrZXkpO1xuICB9XG5cbiAgY2xlYXIoKTogQXN5bmNWYWx1ZSB7XG4gICAgcmV0dXJuIHRoaXNbY2FjaGVLZXldLmNsZWFyKCk7XG4gIH1cblxuICBrZXlzKCk6IEFzeW5jVmFsdWUge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXNbY2FjaGVLZXldLmtleXMoKSk7XG4gIH1cbn1cbiIsImltcG9ydCB7IENhY2hlRHJpdmVyIH0gZnJvbSAnLi9kcml2ZXJzL2NhY2hlLWRyaXZlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTWVtb3J5RHJpdmVyIH0gZnJvbSAnLi9kcml2ZXJzL21lbW9yeS1kcml2ZXIucHJvdmlkZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFzeW5jQ2FjaGVPcHRpb25zSW50ZXJmYWNlIHtcbiAgZHJpdmVyPzogQ2FjaGVEcml2ZXI7XG5cbiAgZnJvbUNhY2hlQW5kUmVwbGF5PzogYm9vbGVhbjtcblxuICBieXBhc3NDYWNoZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBBc3luY0NhY2hlT3B0aW9ucyBpbXBsZW1lbnRzIEFzeW5jQ2FjaGVPcHRpb25zSW50ZXJmYWNlIHtcbiAgZHJpdmVyOiBDYWNoZURyaXZlciA9IG5ldyBNZW1vcnlEcml2ZXIoKTtcblxuICBmcm9tQ2FjaGVBbmRSZXBsYXkgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihvdmVycmlkZXM6IEFzeW5jQ2FjaGVPcHRpb25zSW50ZXJmYWNlID0ge30pIHtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIG92ZXJyaWRlcyk7XG4gIH1cbn1cbiIsImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmVyLCBPYnNlcnZhYmxlLCBpc09ic2VydmFibGUsIGZyb20sIG9mLCBtZXJnZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBtZXJnZU1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIEFzeW5jQ2FjaGVPcHRpb25zLFxuICBBc3luY0NhY2hlT3B0aW9uc0ludGVyZmFjZVxufSBmcm9tICcuL2FzeW5jLWNhY2hlLW9wdGlvbnMucHJvdmlkZXInO1xuXG5leHBvcnQgdHlwZSBHZXRQcm9taXNlRnVuY3Rpb24gPSAoKSA9PiBQcm9taXNlPGFueT47XG5cbmZ1bmN0aW9uIGlzUHJvbWlzZUxpa2UoZm46IGFueSkge1xuICByZXR1cm4gZm4gJiYgdHlwZW9mIGZuLnRoZW4gPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIGZuLmNhdGNoID09PSAnZnVuY3Rpb24nO1xufVxuXG5mdW5jdGlvbiBpc09ic2VydmFibGVMaWtlKGZuOiBhbnkpIHtcbiAgcmV0dXJuIGZuICYmIGlzT2JzZXJ2YWJsZShmbik7XG59XG5cbmZ1bmN0aW9uIGFueVRvT2JzZXJ2YWJsZShmbjogYW55KSB7XG4gIGlmIChpc09ic2VydmFibGVMaWtlKGZuKSkge1xuICAgIHJldHVybiBmbjtcbiAgfSBlbHNlIGlmIChpc1Byb21pc2VMaWtlKGZuKSkge1xuICAgIHJldHVybiBmcm9tKGZuKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gb2YoZm4pO1xuICB9XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBc3luY0NhY2hlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkZWZhdWx0czogQXN5bmNDYWNoZU9wdGlvbnMpIHt9XG5cbiAgd3JhcChcbiAgICB2YWx1ZTogT2JzZXJ2YWJsZTxhbnk+IHwgR2V0UHJvbWlzZUZ1bmN0aW9uLFxuICAgIGNhY2hlS2V5OiBzdHJpbmcsXG4gICAgdXNlck9wdGlvbnM6IEFzeW5jQ2FjaGVPcHRpb25zSW50ZXJmYWNlID0ge31cbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgZ2V0QXN5bmNWYWx1ZTogT2JzZXJ2YWJsZTxhbnk+O1xuICAgIGNvbnN0IG9wdGlvbnM6IEFzeW5jQ2FjaGVPcHRpb25zSW50ZXJmYWNlID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgdGhpcy5kZWZhdWx0cyxcbiAgICAgIHVzZXJPcHRpb25zXG4gICAgKTtcblxuICAgIGlmIChpc09ic2VydmFibGVMaWtlKHZhbHVlKSkge1xuICAgICAgZ2V0QXN5bmNWYWx1ZSA9IHZhbHVlIGFzIE9ic2VydmFibGU8YW55PjtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZ2V0QXN5bmNWYWx1ZSA9IE9ic2VydmFibGUuY3JlYXRlKChvYnNlcnZlcjogT2JzZXJ2ZXI8YW55PikgPT4ge1xuICAgICAgICBjb25zdCBwcm9taXNlOiBQcm9taXNlPGFueT4gPSB2YWx1ZSgpO1xuICAgICAgICBpZiAoIWlzUHJvbWlzZUxpa2UocHJvbWlzZSkpIHtcbiAgICAgICAgICByZXR1cm4gb2JzZXJ2ZXIuZXJyb3IoXG4gICAgICAgICAgICBcIlRoZSBmdW5jdGlvbiB5b3UgcGFzc2VkIHRvIHRoZSBhc3luYyBjYWNoZSBkaWRuJ3QgcmV0dXJuIGEgcHJvbWlzZVwiXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBwcm9taXNlXG4gICAgICAgICAgLnRoZW4ocmVzdWx0ID0+IHtcbiAgICAgICAgICAgIG9ic2VydmVyLm5leHQocmVzdWx0KTtcbiAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKGVycik7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnVmFsdWUgY2FuIG9ubHkgYmUgYW4gb2JzZXJ2YWJsZSBvciBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIHByb21pc2UnXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBhbnlUb09ic2VydmFibGUob3B0aW9ucy5kcml2ZXIuaGFzKGNhY2hlS2V5KSkucGlwZShcbiAgICAgIG1lcmdlTWFwKGV4aXN0c0luQ2FjaGUgPT4ge1xuICAgICAgICBjb25zdCBjYWNoZUFuZFJldHVybkFzeW5jVmFsdWUgPSAoKSA9PlxuICAgICAgICAgIGdldEFzeW5jVmFsdWUucGlwZShcbiAgICAgICAgICAgIG1lcmdlTWFwKGFzeW5jVmFsdWUgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gYW55VG9PYnNlcnZhYmxlKFxuICAgICAgICAgICAgICAgIG9wdGlvbnMuZHJpdmVyLnNldChjYWNoZUtleSwgYXN5bmNWYWx1ZSlcbiAgICAgICAgICAgICAgKS5waXBlKG1hcCgoKSA9PiBhc3luY1ZhbHVlKSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG5cbiAgICAgICAgaWYgKGV4aXN0c0luQ2FjaGUgJiYgIW9wdGlvbnMuYnlwYXNzQ2FjaGUpIHtcbiAgICAgICAgICBjb25zdCBnZXRDYWNoZWRWYWx1ZTogT2JzZXJ2YWJsZTxhbnk+ID0gYW55VG9PYnNlcnZhYmxlKFxuICAgICAgICAgICAgb3B0aW9ucy5kcml2ZXIuZ2V0KGNhY2hlS2V5KVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAob3B0aW9ucy5mcm9tQ2FjaGVBbmRSZXBsYXkpIHtcbiAgICAgICAgICAgIHJldHVybiBtZXJnZShnZXRDYWNoZWRWYWx1ZSwgY2FjaGVBbmRSZXR1cm5Bc3luY1ZhbHVlKCkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0Q2FjaGVkVmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBjYWNoZUFuZFJldHVybkFzeW5jVmFsdWUoKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iLCJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBc3luY0NhY2hlIH0gZnJvbSAnLi9hc3luYy1jYWNoZS5wcm92aWRlcic7XG5pbXBvcnQgeyBBc3luY0NhY2hlT3B0aW9uc0ludGVyZmFjZSB9IGZyb20gJy4vYXN5bmMtY2FjaGUtb3B0aW9ucy5wcm92aWRlcic7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2FzeW5jQ2FjaGUnIC8vIHRzbGludDpkaXNhYmxlLWxpbmUgcGlwZS1uYW1pbmdcbn0pXG5leHBvcnQgY2xhc3MgQXN5bmNDYWNoZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhc3luY0NhY2hlOiBBc3luY0NhY2hlKSB7fVxuXG4gIHRyYW5zZm9ybShcbiAgICB2YWx1ZTogT2JzZXJ2YWJsZTxhbnk+LFxuICAgIGNhY2hlS2V5OiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IEFzeW5jQ2FjaGVPcHRpb25zSW50ZXJmYWNlXG4gICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuYXN5bmNDYWNoZS53cmFwKHZhbHVlLCBjYWNoZUtleSwgb3B0aW9ucyk7XG4gIH1cbn1cbiIsImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzLCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXN5bmNDYWNoZSB9IGZyb20gJy4vYXN5bmMtY2FjaGUucHJvdmlkZXInO1xuaW1wb3J0IHsgQXN5bmNDYWNoZU9wdGlvbnNJbnRlcmZhY2UgfSBmcm9tICcuL2FzeW5jLWNhY2hlLW9wdGlvbnMucHJvdmlkZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBSZXF1ZXN0QXJncyB7XG4gIGhlYWRlcnM/OiBIdHRwSGVhZGVycztcbiAgcGFyYW1zPzpcbiAgICB8IEh0dHBQYXJhbXNcbiAgICB8IHtcbiAgICAgICAgW3BhcmFtOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgICAgIH07XG4gIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbjtcbiAgcmVzcG9uc2VUeXBlPzogJ2pzb24nO1xuICB3aXRoQ3JlZGVudGlhbHM/OiBib29sZWFuO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2FjaGVkSHR0cCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBhc3luY0NhY2hlOiBBc3luY0NhY2hlKSB7fVxuXG4gIGdldDxUID0gYW55PihcbiAgICB1cmw6IHN0cmluZyxcbiAgICBvcHRpb25zPzogSHR0cFJlcXVlc3RBcmdzLFxuICAgIGFzeW5jQ2FjaGVPcHRpb25zPzogQXN5bmNDYWNoZU9wdGlvbnNJbnRlcmZhY2VcbiAgKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgY29uc3QgcmVzdWx0JDogT2JzZXJ2YWJsZTxUPiA9IHRoaXMuaHR0cC5nZXQ8VD4odXJsLCBvcHRpb25zKTtcblxuICAgIGxldCBjYWNoZUtleTogc3RyaW5nID0gdXJsO1xuICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMucGFyYW1zKSB7XG4gICAgICBsZXQgcXMgPSBvcHRpb25zLnBhcmFtcy50b1N0cmluZygpO1xuICAgICAgaWYgKFxuICAgICAgICB0eXBlb2Ygb3B0aW9ucy5wYXJhbXMgPT09ICdvYmplY3QnICYmXG4gICAgICAgICEob3B0aW9ucy5wYXJhbXMgaW5zdGFuY2VvZiBIdHRwUGFyYW1zKVxuICAgICAgKSB7XG4gICAgICAgIHFzID0gbmV3IEh0dHBQYXJhbXMoe1xuICAgICAgICAgIGZyb21PYmplY3Q6IG9wdGlvbnMucGFyYW1zXG4gICAgICAgIH0pLnRvU3RyaW5nKCk7XG4gICAgICB9XG4gICAgICBjYWNoZUtleSArPSAnPycgKyBxcztcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hc3luY0NhY2hlLndyYXAocmVzdWx0JCwgY2FjaGVLZXksIGFzeW5jQ2FjaGVPcHRpb25zKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgTmdNb2R1bGUsIE1vZHVsZVdpdGhQcm92aWRlcnMsIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VEcml2ZXIgfSBmcm9tICcuL2RyaXZlcnMvbG9jYWwtc3RvcmFnZS1kcml2ZXIucHJvdmlkZXInO1xuaW1wb3J0IHsgTWVtb3J5RHJpdmVyIH0gZnJvbSAnLi9kcml2ZXJzL21lbW9yeS1kcml2ZXIucHJvdmlkZXInO1xuaW1wb3J0IHsgQXN5bmNDYWNoZU9wdGlvbnMgfSBmcm9tICcuL2FzeW5jLWNhY2hlLW9wdGlvbnMucHJvdmlkZXInO1xuaW1wb3J0IHsgQXN5bmNDYWNoZSB9IGZyb20gJy4vYXN5bmMtY2FjaGUucHJvdmlkZXInO1xuaW1wb3J0IHsgQXN5bmNDYWNoZVBpcGUgfSBmcm9tICcuL2FzeW5jLWNhY2hlLnBpcGUnO1xuaW1wb3J0IHsgQ2FjaGVkSHR0cCB9IGZyb20gJy4vY2FjaGVkLWh0dHAucHJvdmlkZXInO1xuXG5leHBvcnQgZnVuY3Rpb24gbWVtb3J5RHJpdmVyRmFjdG9yeShvcHRpb25zOiBBc3luY0NhY2hlT3B0aW9ucyk6IE1lbW9yeURyaXZlciB7XG4gIHJldHVybiBvcHRpb25zLmRyaXZlciBpbnN0YW5jZW9mIE1lbW9yeURyaXZlclxuICAgID8gb3B0aW9ucy5kcml2ZXJcbiAgICA6IG5ldyBNZW1vcnlEcml2ZXIoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvY2FsU3RvcmFnZURyaXZlckZhY3RvcnkoXG4gIG9wdGlvbnM6IEFzeW5jQ2FjaGVPcHRpb25zXG4pOiBMb2NhbFN0b3JhZ2VEcml2ZXIge1xuICByZXR1cm4gb3B0aW9ucy5kcml2ZXIgaW5zdGFuY2VvZiBMb2NhbFN0b3JhZ2VEcml2ZXJcbiAgICA/IChvcHRpb25zLmRyaXZlciBhcyBMb2NhbFN0b3JhZ2VEcml2ZXIpXG4gICAgOiBuZXcgTG9jYWxTdG9yYWdlRHJpdmVyKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYWNoZU9wdGlvbkZhY3RvcnkoKTogQXN5bmNDYWNoZU9wdGlvbnMge1xuICByZXR1cm4gbmV3IEFzeW5jQ2FjaGVPcHRpb25zKCk7XG59XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0FzeW5jQ2FjaGVQaXBlXSxcbiAgZXhwb3J0czogW0FzeW5jQ2FjaGVQaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBBc3luY0NhY2hlTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoXG4gICAgY2FjaGVPcHRpb25zOiBQcm92aWRlciA9IHtcbiAgICAgIHByb3ZpZGU6IEFzeW5jQ2FjaGVPcHRpb25zLFxuICAgICAgdXNlRmFjdG9yeTogY2FjaGVPcHRpb25GYWN0b3J5XG4gICAgfVxuICApOiBNb2R1bGVXaXRoUHJvdmlkZXJzIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEFzeW5jQ2FjaGVNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IExvY2FsU3RvcmFnZURyaXZlcixcbiAgICAgICAgICB1c2VGYWN0b3J5OiBsb2NhbFN0b3JhZ2VEcml2ZXJGYWN0b3J5LFxuICAgICAgICAgIGRlcHM6IFtBc3luY0NhY2hlT3B0aW9uc11cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IE1lbW9yeURyaXZlcixcbiAgICAgICAgICB1c2VGYWN0b3J5OiBtZW1vcnlEcml2ZXJGYWN0b3J5LFxuICAgICAgICAgIGRlcHM6IFtBc3luY0NhY2hlT3B0aW9uc11cbiAgICAgICAgfSxcbiAgICAgICAgY2FjaGVPcHRpb25zLFxuICAgICAgICBBc3luY0NhY2hlLFxuICAgICAgICBDYWNoZWRIdHRwXG4gICAgICBdXG4gICAgfTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbInRzbGliXzEuX192YWx1ZXMiLCJpc09ic2VydmFibGUiLCJmcm9tIiwib2YiLCJPYnNlcnZhYmxlIiwibWVyZ2VNYXAiLCJtYXAiLCJtZXJnZSIsIkluamVjdGFibGUiLCJQaXBlIiwiaHR0cCIsIkh0dHBQYXJhbXMiLCJIdHRwQ2xpZW50IiwiTmdNb2R1bGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7SUFNQSxxQkFBTSxrQkFBa0IsR0FBRyxjQUFjLENBQUM7QUFFMUMsUUFBQTtRQUNFLDRCQUNVOzs0QkFBaUMsU0FBUyxFQUFFLGtCQUFrQjs7WUFBOUQsWUFBTyxHQUFQLE9BQU87U0FD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 |
@@ -1,2 +0,2 @@ | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("tslib"),require("@angular/core"),require("rxjs"),require("rxjs/operators"),require("@angular/common/http")):"function"==typeof define&&define.amd?define("angular-async-cache",["exports","tslib","@angular/core","rxjs","rxjs/operators","@angular/common/http"],t):t(e["angular-async-cache"]={},e.tslib,e.ng.core,null,e.Rx.Observable.prototype,e.ng.common.http)}(this,function(e,i,r,c,u,t){"use strict";var n=function(){function e(e){void 0===e&&(e={keyPrefix:"async-cache-"}),this.options=e}return e.prototype.has=function(e){return localStorage.hasOwnProperty(this.getInternalKey(e))},e.prototype.get=function(e){return JSON.parse(localStorage.getItem(this.getInternalKey(e)))},e.prototype.set=function(e,t){return localStorage.setItem(this.getInternalKey(e),JSON.stringify(t))},e.prototype["delete"]=function(e){return localStorage.removeItem(this.getInternalKey(e))},e.prototype.clear=function(){try{for(var e=i.__values(this.keys()),t=e.next();!t.done;t=e.next()){var r=t.value;this["delete"](r)}}catch(a){n={error:a}}finally{try{t&&!t.done&&(o=e["return"])&&o.call(e)}finally{if(n)throw n.error}}var n,o},e.prototype.keys=function(){for(var t=this,e=[],r=0;r<localStorage.length;r++)e.push(localStorage.key(r));return e.filter(function(e){return e.startsWith(t.options.keyPrefix)}).map(function(e){return t.getExternalKey(e)})},e.prototype.getInternalKey=function(e){return""+this.options.keyPrefix+e},e.prototype.getExternalKey=function(e){return e.replace(new RegExp("^"+this.options.keyPrefix),"")},e}(),o=Symbol("cache key"),a=function(){function e(){this[o]=new Map}return e.prototype.has=function(e){return this[o].has(e)},e.prototype.get=function(e){return this[o].get(e)},e.prototype.set=function(e,t){return this[o].set(e,t)},e.prototype["delete"]=function(e){return this[o]["delete"](e)},e.prototype.clear=function(){return this[o].clear()},e.prototype.keys=function(){return Array.from(this[o].keys())},e}(),s=function(e){void 0===e&&(e={}),this.driver=new a,this.fromCacheAndReplay=!1,Object.assign(this,e)};function p(e){return e&&"function"==typeof e.then&&"function"==typeof e["catch"]}function f(e){return e&&c.isObservable(e)}function y(e){return f(e)?e:p(e)?c.from(e):c.of(e)}var l=function(){function e(e){this.defaults=e}return e.prototype.wrap=function(r,n,e){var o;void 0===e&&(e={});var a=Object.assign({},this.defaults,e);if(f(r))o=r;else{if("function"!=typeof r)throw new Error("Value can only be an observable or a function that returns a promise");o=c.Observable.create(function(t){var e=r();if(!p(e))return t.error("The function you passed to the async cache didn't return a promise");e.then(function(e){t.next(e),t.complete()})["catch"](function(e){t.error(e)})})}return y(a.driver.has(n)).pipe(u.mergeMap(function(e){var t=function(){return o.pipe(u.mergeMap(function(e){return y(a.driver.set(n,e)).pipe(u.map(function(){return e}))}))};if(e&&!a.bypassCache){var r=y(a.driver.get(n));return a.fromCacheAndReplay?c.merge(r,t()):r}return t()}))},e.decorators=[{type:r.Injectable}],e.ctorParameters=function(){return[{type:s}]},e}(),h=function(){function e(e){this.asyncCache=e}return e.prototype.transform=function(e,t,r){return this.asyncCache.wrap(e,t,r)},e.decorators=[{type:r.Pipe,args:[{name:"asyncCache"}]}],e.ctorParameters=function(){return[{type:l}]},e}(),d=function(){function e(e,t){this.http=e,this.asyncCache=t}return e.prototype.get=function(e,t,r){var n=this.http.get(e,t),o=e;return t&&t.params&&(o+="?"+t.params.toString()),this.asyncCache.wrap(n,o,r)},e.decorators=[{type:r.Injectable}],e.ctorParameters=function(){return[{type:t.HttpClient},{type:l}]},e}();function g(e){return e.driver instanceof a?e.driver:new a}function v(e){return e.driver instanceof n?e.driver:new n}function m(){return new s}var b=function(){function t(){}return t.forRoot=function(e){return void 0===e&&(e={provide:s,useFactory:m}),{ngModule:t,providers:[{provide:n,useFactory:v,deps:[s]},{provide:a,useFactory:g,deps:[s]},e,l,d]}},t.decorators=[{type:r.NgModule,args:[{declarations:[h],exports:[h]}]}],t}();e.AsyncCacheOptions=s,e.memoryDriverFactory=g,e.localStorageDriverFactory=v,e.cacheOptionFactory=m,e.AsyncCacheModule=b,e.LocalStorageDriver=n,e.MemoryDriver=a,e.AsyncCache=l,e.CachedHttp=d,e.ɵa=h,Object.defineProperty(e,"__esModule",{value:!0})}); | ||
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("tslib"),require("@angular/core"),require("rxjs"),require("rxjs/operators"),require("@angular/common/http")):"function"==typeof define&&define.amd?define("angular-async-cache",["exports","tslib","@angular/core","rxjs","rxjs/operators","@angular/common/http"],e):e(t["angular-async-cache"]={},t.tslib,t.ng.core,null,t.Rx.Observable.prototype,t.ng.common.http)}(this,function(t,i,r,c,u,s){"use strict";var n=function(){function t(t){void 0===t&&(t={keyPrefix:"async-cache-"}),this.options=t}return t.prototype.has=function(t){return localStorage.hasOwnProperty(this.getInternalKey(t))},t.prototype.get=function(t){return JSON.parse(localStorage.getItem(this.getInternalKey(t)))},t.prototype.set=function(t,e){return localStorage.setItem(this.getInternalKey(t),JSON.stringify(e))},t.prototype["delete"]=function(t){return localStorage.removeItem(this.getInternalKey(t))},t.prototype.clear=function(){try{for(var t=i.__values(this.keys()),e=t.next();!e.done;e=t.next()){var r=e.value;this["delete"](r)}}catch(a){n={error:a}}finally{try{e&&!e.done&&(o=t["return"])&&o.call(t)}finally{if(n)throw n.error}}var n,o},t.prototype.keys=function(){for(var e=this,t=[],r=0;r<localStorage.length;r++)t.push(localStorage.key(r));return t.filter(function(t){return t.startsWith(e.options.keyPrefix)}).map(function(t){return e.getExternalKey(t)})},t.prototype.getInternalKey=function(t){return""+this.options.keyPrefix+t},t.prototype.getExternalKey=function(t){return t.replace(new RegExp("^"+this.options.keyPrefix),"")},t}(),o=Symbol("cache key"),a=function(){function t(){this[o]=new Map}return t.prototype.has=function(t){return this[o].has(t)},t.prototype.get=function(t){return this[o].get(t)},t.prototype.set=function(t,e){return this[o].set(t,e)},t.prototype["delete"]=function(t){return this[o]["delete"](t)},t.prototype.clear=function(){return this[o].clear()},t.prototype.keys=function(){return Array.from(this[o].keys())},t}(),p=function(t){void 0===t&&(t={}),this.driver=new a,this.fromCacheAndReplay=!1,Object.assign(this,t)};function f(t){return t&&"function"==typeof t.then&&"function"==typeof t["catch"]}function e(t){return t&&c.isObservable(t)}function y(t){return e(t)?t:f(t)?c.from(t):c.of(t)}var l=function(){function t(t){this.defaults=t}return t.prototype.wrap=function(r,n,t){var o;void 0===t&&(t={});var a=Object.assign({},this.defaults,t);if(e(r))o=r;else{if("function"!=typeof r)throw new Error("Value can only be an observable or a function that returns a promise");o=c.Observable.create(function(e){var t=r();if(!f(t))return e.error("The function you passed to the async cache didn't return a promise");t.then(function(t){e.next(t),e.complete()})["catch"](function(t){e.error(t)})})}return y(a.driver.has(n)).pipe(u.mergeMap(function(t){var e=function(){return o.pipe(u.mergeMap(function(t){return y(a.driver.set(n,t)).pipe(u.map(function(){return t}))}))};if(t&&!a.bypassCache){var r=y(a.driver.get(n));return a.fromCacheAndReplay?c.merge(r,e()):r}return e()}))},t.decorators=[{type:r.Injectable}],t.ctorParameters=function(){return[{type:p}]},t}(),h=function(){function t(t){this.asyncCache=t}return t.prototype.transform=function(t,e,r){return this.asyncCache.wrap(t,e,r)},t.decorators=[{type:r.Pipe,args:[{name:"asyncCache"}]}],t.ctorParameters=function(){return[{type:l}]},t}(),d=function(){function t(t,e){this.http=t,this.asyncCache=e}return t.prototype.get=function(t,e,r){var n=this.http.get(t,e),o=t;if(e&&e.params){var a=e.params.toString();"object"!=typeof e.params||e.params instanceof s.HttpParams||(a=new s.HttpParams({fromObject:e.params}).toString()),o+="?"+a}return this.asyncCache.wrap(n,o,r)},t.decorators=[{type:r.Injectable}],t.ctorParameters=function(){return[{type:s.HttpClient},{type:l}]},t}();function g(t){return t.driver instanceof a?t.driver:new a}function v(t){return t.driver instanceof n?t.driver:new n}function m(){return new p}var b=function(){function e(){}return e.forRoot=function(t){return void 0===t&&(t={provide:p,useFactory:m}),{ngModule:e,providers:[{provide:n,useFactory:v,deps:[p]},{provide:a,useFactory:g,deps:[p]},t,l,d]}},e.decorators=[{type:r.NgModule,args:[{declarations:[h],exports:[h]}]}],e}();t.AsyncCacheOptions=p,t.memoryDriverFactory=g,t.localStorageDriverFactory=v,t.cacheOptionFactory=m,t.AsyncCacheModule=b,t.LocalStorageDriver=n,t.MemoryDriver=a,t.AsyncCache=l,t.CachedHttp=d,t.ɵa=h,Object.defineProperty(t,"__esModule",{value:!0})}); | ||
//# sourceMappingURL=angular-async-cache.umd.min.js.map |
@@ -7,3 +7,5 @@ import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http'; | ||
headers?: HttpHeaders; | ||
params?: HttpParams; | ||
params?: HttpParams | { | ||
[param: string]: string | string[]; | ||
}; | ||
reportProgress?: boolean; | ||
@@ -17,3 +19,3 @@ responseType?: 'json'; | ||
constructor(http: HttpClient, asyncCache: AsyncCache); | ||
get(url: string, options?: HttpRequestArgs, asyncCacheOptions?: AsyncCacheOptionsInterface): Observable<any>; | ||
get<T = any>(url: string, options?: HttpRequestArgs, asyncCacheOptions?: AsyncCacheOptionsInterface): Observable<T>; | ||
} |
@@ -5,2 +5,12 @@ # Change Log | ||
<a name="2.0.2"></a> | ||
## [2.0.2](https://github.com/mattlewis92/angular-async-cache/compare/v2.0.1...v2.0.2) (2018-09-21) | ||
### Bug Fixes | ||
* allow http params to be an object ([f0b4294](https://github.com/mattlewis92/angular-async-cache/commit/f0b4294)) | ||
<a name="2.0.1"></a> | ||
@@ -7,0 +17,0 @@ ## [2.0.1](https://github.com/mattlewis92/angular-async-cache/compare/v2.0.0...v2.0.1) (2018-05-17) |
@@ -6,3 +6,3 @@ /** | ||
import { Injectable } from '@angular/core'; | ||
import { HttpClient } from '@angular/common/http'; | ||
import { HttpClient, HttpParams } from '@angular/common/http'; | ||
import { AsyncCache } from './async-cache.provider'; | ||
@@ -35,2 +35,3 @@ /** | ||
/** | ||
* @template T | ||
* @param {?} url | ||
@@ -45,3 +46,10 @@ * @param {?=} options | ||
if (options && options.params) { | ||
cacheKey += '?' + options.params.toString(); | ||
let /** @type {?} */ qs = options.params.toString(); | ||
if (typeof options.params === 'object' && | ||
!(options.params instanceof HttpParams)) { | ||
qs = new HttpParams({ | ||
fromObject: options.params | ||
}).toString(); | ||
} | ||
cacheKey += '?' + qs; | ||
} | ||
@@ -73,2 +81,2 @@ return this.asyncCache.wrap(result$, cacheKey, asyncCacheOptions); | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVkLWh0dHAucHJvdmlkZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLWFzeW5jLWNhY2hlLyIsInNvdXJjZXMiOlsiY2FjaGVkLWh0dHAucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBMkIsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBWXBELE1BQU07Ozs7O0lBQ0osWUFBb0IsSUFBZ0IsRUFBVSxVQUFzQjtRQUFoRCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtLQUFJOzs7Ozs7O0lBRXhFLEdBQUcsQ0FDRCxHQUFXLEVBQ1gsT0FBeUIsRUFDekIsaUJBQThDO1FBRTlDLHVCQUFNLE9BQU8sR0FBb0IsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRTdELHFCQUFJLFFBQVEsR0FBVyxHQUFHLENBQUM7UUFDM0IsRUFBRSxDQUFDLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQzlCLFFBQVEsSUFBSSxHQUFHLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUM3QztRQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixDQUFDLENBQUM7S0FDbkU7OztZQWpCRixVQUFVOzs7O1lBYkYsVUFBVTtZQUVWLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycywgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFzeW5jQ2FjaGUgfSBmcm9tICcuL2FzeW5jLWNhY2hlLnByb3ZpZGVyJztcbmltcG9ydCB7IEFzeW5jQ2FjaGVPcHRpb25zSW50ZXJmYWNlIH0gZnJvbSAnLi9hc3luYy1jYWNoZS1vcHRpb25zLnByb3ZpZGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBIdHRwUmVxdWVzdEFyZ3Mge1xuICBoZWFkZXJzPzogSHR0cEhlYWRlcnM7XG4gIHBhcmFtcz86IEh0dHBQYXJhbXM7XG4gIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbjtcbiAgcmVzcG9uc2VUeXBlPzogJ2pzb24nO1xuICB3aXRoQ3JlZGVudGlhbHM/OiBib29sZWFuO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2FjaGVkSHR0cCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBhc3luY0NhY2hlOiBBc3luY0NhY2hlKSB7fVxuXG4gIGdldChcbiAgICB1cmw6IHN0cmluZyxcbiAgICBvcHRpb25zPzogSHR0cFJlcXVlc3RBcmdzLFxuICAgIGFzeW5jQ2FjaGVPcHRpb25zPzogQXN5bmNDYWNoZU9wdGlvbnNJbnRlcmZhY2VcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCByZXN1bHQkOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLmh0dHAuZ2V0KHVybCwgb3B0aW9ucyk7XG5cbiAgICBsZXQgY2FjaGVLZXk6IHN0cmluZyA9IHVybDtcbiAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLnBhcmFtcykge1xuICAgICAgY2FjaGVLZXkgKz0gJz8nICsgb3B0aW9ucy5wYXJhbXMudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hc3luY0NhY2hlLndyYXAocmVzdWx0JCwgY2FjaGVLZXksIGFzeW5jQ2FjaGVPcHRpb25zKTtcbiAgfVxufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVkLWh0dHAucHJvdmlkZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLWFzeW5jLWNhY2hlLyIsInNvdXJjZXMiOlsiY2FjaGVkLWh0dHAucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBZSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZ0JwRCxNQUFNOzs7OztJQUNKLFlBQW9CLElBQWdCLEVBQVUsVUFBc0I7UUFBaEQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLGVBQVUsR0FBVixVQUFVLENBQVk7S0FBSTs7Ozs7Ozs7SUFFeEUsR0FBRyxDQUNELEdBQVcsRUFDWCxPQUF5QixFQUN6QixpQkFBOEM7UUFFOUMsdUJBQU0sT0FBTyxHQUFrQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBSSxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFOUQscUJBQUksUUFBUSxHQUFXLEdBQUcsQ0FBQztRQUMzQixFQUFFLENBQUMsQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDOUIscUJBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkMsRUFBRSxDQUFDLENBQ0QsT0FBTyxPQUFPLENBQUMsTUFBTSxLQUFLLFFBQVE7Z0JBQ2xDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxZQUFZLFVBQVUsQ0FDeEMsQ0FBQyxDQUFDLENBQUM7Z0JBQ0QsRUFBRSxHQUFHLElBQUksVUFBVSxDQUFDO29CQUNsQixVQUFVLEVBQUUsT0FBTyxDQUFDLE1BQU07aUJBQzNCLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUNmO1lBQ0QsUUFBUSxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7U0FDdEI7UUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0tBQ25FOzs7WUExQkYsVUFBVTs7OztZQWpCRixVQUFVO1lBRVYsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzLCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXN5bmNDYWNoZSB9IGZyb20gJy4vYXN5bmMtY2FjaGUucHJvdmlkZXInO1xuaW1wb3J0IHsgQXN5bmNDYWNoZU9wdGlvbnNJbnRlcmZhY2UgfSBmcm9tICcuL2FzeW5jLWNhY2hlLW9wdGlvbnMucHJvdmlkZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBSZXF1ZXN0QXJncyB7XG4gIGhlYWRlcnM/OiBIdHRwSGVhZGVycztcbiAgcGFyYW1zPzpcbiAgICB8IEh0dHBQYXJhbXNcbiAgICB8IHtcbiAgICAgICAgW3BhcmFtOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgICAgIH07XG4gIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbjtcbiAgcmVzcG9uc2VUeXBlPzogJ2pzb24nO1xuICB3aXRoQ3JlZGVudGlhbHM/OiBib29sZWFuO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2FjaGVkSHR0cCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBhc3luY0NhY2hlOiBBc3luY0NhY2hlKSB7fVxuXG4gIGdldDxUID0gYW55PihcbiAgICB1cmw6IHN0cmluZyxcbiAgICBvcHRpb25zPzogSHR0cFJlcXVlc3RBcmdzLFxuICAgIGFzeW5jQ2FjaGVPcHRpb25zPzogQXN5bmNDYWNoZU9wdGlvbnNJbnRlcmZhY2VcbiAgKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgY29uc3QgcmVzdWx0JDogT2JzZXJ2YWJsZTxUPiA9IHRoaXMuaHR0cC5nZXQ8VD4odXJsLCBvcHRpb25zKTtcblxuICAgIGxldCBjYWNoZUtleTogc3RyaW5nID0gdXJsO1xuICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMucGFyYW1zKSB7XG4gICAgICBsZXQgcXMgPSBvcHRpb25zLnBhcmFtcy50b1N0cmluZygpO1xuICAgICAgaWYgKFxuICAgICAgICB0eXBlb2Ygb3B0aW9ucy5wYXJhbXMgPT09ICdvYmplY3QnICYmXG4gICAgICAgICEob3B0aW9ucy5wYXJhbXMgaW5zdGFuY2VvZiBIdHRwUGFyYW1zKVxuICAgICAgKSB7XG4gICAgICAgIHFzID0gbmV3IEh0dHBQYXJhbXMoe1xuICAgICAgICAgIGZyb21PYmplY3Q6IG9wdGlvbnMucGFyYW1zXG4gICAgICAgIH0pLnRvU3RyaW5nKCk7XG4gICAgICB9XG4gICAgICBjYWNoZUtleSArPSAnPycgKyBxcztcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hc3luY0NhY2hlLndyYXAocmVzdWx0JCwgY2FjaGVLZXksIGFzeW5jQ2FjaGVPcHRpb25zKTtcbiAgfVxufVxuIl19 |
@@ -6,3 +6,3 @@ /** | ||
import { Injectable } from '@angular/core'; | ||
import { HttpClient } from '@angular/common/http'; | ||
import { HttpClient, HttpParams } from '@angular/common/http'; | ||
import { AsyncCache } from './async-cache.provider'; | ||
@@ -31,2 +31,3 @@ /** | ||
/** | ||
* @template T | ||
* @param {?} url | ||
@@ -38,2 +39,3 @@ * @param {?=} options | ||
CachedHttp.prototype.get = /** | ||
* @template T | ||
* @param {?} url | ||
@@ -48,3 +50,10 @@ * @param {?=} options | ||
if (options && options.params) { | ||
cacheKey += '?' + options.params.toString(); | ||
var /** @type {?} */ qs = options.params.toString(); | ||
if (typeof options.params === 'object' && | ||
!(options.params instanceof HttpParams)) { | ||
qs = new HttpParams({ | ||
fromObject: options.params | ||
}).toString(); | ||
} | ||
cacheKey += '?' + qs; | ||
} | ||
@@ -78,2 +87,2 @@ return this.asyncCache.wrap(result$, cacheKey, asyncCacheOptions); | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVkLWh0dHAucHJvdmlkZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLWFzeW5jLWNhY2hlLyIsInNvdXJjZXMiOlsiY2FjaGVkLWh0dHAucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBMkIsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQWFsRCxvQkFBb0IsSUFBZ0IsRUFBVSxVQUFzQjtRQUFoRCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtLQUFJOzs7Ozs7O0lBRXhFLHdCQUFHOzs7Ozs7SUFBSCxVQUNFLEdBQVcsRUFDWCxPQUF5QixFQUN6QixpQkFBOEM7UUFFOUMscUJBQU0sT0FBTyxHQUFvQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFN0QscUJBQUksUUFBUSxHQUFXLEdBQUcsQ0FBQztRQUMzQixFQUFFLENBQUMsQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDOUIsUUFBUSxJQUFJLEdBQUcsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQzdDO1FBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztLQUNuRTs7Z0JBakJGLFVBQVU7Ozs7Z0JBYkYsVUFBVTtnQkFFVixVQUFVOztxQkFIbkI7O1NBZWEsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzLCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXN5bmNDYWNoZSB9IGZyb20gJy4vYXN5bmMtY2FjaGUucHJvdmlkZXInO1xuaW1wb3J0IHsgQXN5bmNDYWNoZU9wdGlvbnNJbnRlcmZhY2UgfSBmcm9tICcuL2FzeW5jLWNhY2hlLW9wdGlvbnMucHJvdmlkZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBSZXF1ZXN0QXJncyB7XG4gIGhlYWRlcnM/OiBIdHRwSGVhZGVycztcbiAgcGFyYW1zPzogSHR0cFBhcmFtcztcbiAgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuO1xuICByZXNwb25zZVR5cGU/OiAnanNvbic7XG4gIHdpdGhDcmVkZW50aWFscz86IGJvb2xlYW47XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDYWNoZWRIdHRwIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIGFzeW5jQ2FjaGU6IEFzeW5jQ2FjaGUpIHt9XG5cbiAgZ2V0KFxuICAgIHVybDogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBIdHRwUmVxdWVzdEFyZ3MsXG4gICAgYXN5bmNDYWNoZU9wdGlvbnM/OiBBc3luY0NhY2hlT3B0aW9uc0ludGVyZmFjZVxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHJlc3VsdCQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuaHR0cC5nZXQodXJsLCBvcHRpb25zKTtcblxuICAgIGxldCBjYWNoZUtleTogc3RyaW5nID0gdXJsO1xuICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMucGFyYW1zKSB7XG4gICAgICBjYWNoZUtleSArPSAnPycgKyBvcHRpb25zLnBhcmFtcy50b1N0cmluZygpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFzeW5jQ2FjaGUud3JhcChyZXN1bHQkLCBjYWNoZUtleSwgYXN5bmNDYWNoZU9wdGlvbnMpO1xuICB9XG59XG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVkLWh0dHAucHJvdmlkZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLWFzeW5jLWNhY2hlLyIsInNvdXJjZXMiOlsiY2FjaGVkLWh0dHAucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBZSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQWlCbEQsb0JBQW9CLElBQWdCLEVBQVUsVUFBc0I7UUFBaEQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLGVBQVUsR0FBVixVQUFVLENBQVk7S0FBSTs7Ozs7Ozs7SUFFeEUsd0JBQUc7Ozs7Ozs7SUFBSCxVQUNFLEdBQVcsRUFDWCxPQUF5QixFQUN6QixpQkFBOEM7UUFFOUMscUJBQU0sT0FBTyxHQUFrQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBSSxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFOUQscUJBQUksUUFBUSxHQUFXLEdBQUcsQ0FBQztRQUMzQixFQUFFLENBQUMsQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDOUIscUJBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkMsRUFBRSxDQUFDLENBQ0QsT0FBTyxPQUFPLENBQUMsTUFBTSxLQUFLLFFBQVE7Z0JBQ2xDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxZQUFZLFVBQVUsQ0FDeEMsQ0FBQyxDQUFDLENBQUM7Z0JBQ0QsRUFBRSxHQUFHLElBQUksVUFBVSxDQUFDO29CQUNsQixVQUFVLEVBQUUsT0FBTyxDQUFDLE1BQU07aUJBQzNCLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUNmO1lBQ0QsUUFBUSxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7U0FDdEI7UUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0tBQ25FOztnQkExQkYsVUFBVTs7OztnQkFqQkYsVUFBVTtnQkFFVixVQUFVOztxQkFIbkI7O1NBbUJhLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycywgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFzeW5jQ2FjaGUgfSBmcm9tICcuL2FzeW5jLWNhY2hlLnByb3ZpZGVyJztcbmltcG9ydCB7IEFzeW5jQ2FjaGVPcHRpb25zSW50ZXJmYWNlIH0gZnJvbSAnLi9hc3luYy1jYWNoZS1vcHRpb25zLnByb3ZpZGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBIdHRwUmVxdWVzdEFyZ3Mge1xuICBoZWFkZXJzPzogSHR0cEhlYWRlcnM7XG4gIHBhcmFtcz86XG4gICAgfCBIdHRwUGFyYW1zXG4gICAgfCB7XG4gICAgICAgIFtwYXJhbTogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW107XG4gICAgICB9O1xuICByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW47XG4gIHJlc3BvbnNlVHlwZT86ICdqc29uJztcbiAgd2l0aENyZWRlbnRpYWxzPzogYm9vbGVhbjtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENhY2hlZEh0dHAge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgYXN5bmNDYWNoZTogQXN5bmNDYWNoZSkge31cblxuICBnZXQ8VCA9IGFueT4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IEh0dHBSZXF1ZXN0QXJncyxcbiAgICBhc3luY0NhY2hlT3B0aW9ucz86IEFzeW5jQ2FjaGVPcHRpb25zSW50ZXJmYWNlXG4gICk6IE9ic2VydmFibGU8VD4ge1xuICAgIGNvbnN0IHJlc3VsdCQ6IE9ic2VydmFibGU8VD4gPSB0aGlzLmh0dHAuZ2V0PFQ+KHVybCwgb3B0aW9ucyk7XG5cbiAgICBsZXQgY2FjaGVLZXk6IHN0cmluZyA9IHVybDtcbiAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLnBhcmFtcykge1xuICAgICAgbGV0IHFzID0gb3B0aW9ucy5wYXJhbXMudG9TdHJpbmcoKTtcbiAgICAgIGlmIChcbiAgICAgICAgdHlwZW9mIG9wdGlvbnMucGFyYW1zID09PSAnb2JqZWN0JyAmJlxuICAgICAgICAhKG9wdGlvbnMucGFyYW1zIGluc3RhbmNlb2YgSHR0cFBhcmFtcylcbiAgICAgICkge1xuICAgICAgICBxcyA9IG5ldyBIdHRwUGFyYW1zKHtcbiAgICAgICAgICBmcm9tT2JqZWN0OiBvcHRpb25zLnBhcmFtc1xuICAgICAgICB9KS50b1N0cmluZygpO1xuICAgICAgfVxuICAgICAgY2FjaGVLZXkgKz0gJz8nICsgcXM7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXN5bmNDYWNoZS53cmFwKHJlc3VsdCQsIGNhY2hlS2V5LCBhc3luY0NhY2hlT3B0aW9ucyk7XG4gIH1cbn1cbiJdfQ== |
import { Injectable, Pipe, NgModule } from '@angular/core'; | ||
import { Observable, isObservable, from, of, merge } from 'rxjs'; | ||
import { map, mergeMap } from 'rxjs/operators'; | ||
import { HttpClient } from '@angular/common/http'; | ||
import { HttpClient, HttpParams } from '@angular/common/http'; | ||
@@ -294,2 +294,3 @@ /** | ||
/** | ||
* @template T | ||
* @param {?} url | ||
@@ -304,3 +305,10 @@ * @param {?=} options | ||
if (options && options.params) { | ||
cacheKey += '?' + options.params.toString(); | ||
let /** @type {?} */ qs = options.params.toString(); | ||
if (typeof options.params === 'object' && | ||
!(options.params instanceof HttpParams)) { | ||
qs = new HttpParams({ | ||
fromObject: options.params | ||
}).toString(); | ||
} | ||
cacheKey += '?' + qs; | ||
} | ||
@@ -395,2 +403,2 @@ return this.asyncCache.wrap(result$, cacheKey, asyncCacheOptions); | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1hc3luYy1jYWNoZS5qcy5tYXAiLCJzb3VyY2VzIjpbIm5nOi8vYW5ndWxhci1hc3luYy1jYWNoZS9kcml2ZXJzL2xvY2FsLXN0b3JhZ2UtZHJpdmVyLnByb3ZpZGVyLnRzIiwibmc6Ly9hbmd1bGFyLWFzeW5jLWNhY2hlL2RyaXZlcnMvbWVtb3J5LWRyaXZlci5wcm92aWRlci50cyIsIm5nOi8vYW5ndWxhci1hc3luYy1jYWNoZS9hc3luYy1jYWNoZS1vcHRpb25zLnByb3ZpZGVyLnRzIiwibmc6Ly9hbmd1bGFyLWFzeW5jLWNhY2hlL2FzeW5jLWNhY2hlLnByb3ZpZGVyLnRzIiwibmc6Ly9hbmd1bGFyLWFzeW5jLWNhY2hlL2FzeW5jLWNhY2hlLnBpcGUudHMiLCJuZzovL2FuZ3VsYXItYXN5bmMtY2FjaGUvY2FjaGVkLWh0dHAucHJvdmlkZXIudHMiLCJuZzovL2FuZ3VsYXItYXN5bmMtY2FjaGUvYXN5bmMtY2FjaGUubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhY2hlRHJpdmVyLCBBc3luY1ZhbHVlIH0gZnJvbSAnLi9jYWNoZS1kcml2ZXIuaW50ZXJmYWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBMb2NhbFN0b3JhZ2VPcHRpb25zIHtcbiAga2V5UHJlZml4OiBzdHJpbmc7XG59XG5cbmNvbnN0IERFRkFVTFRfS0VZX1BSRUZJWCA9ICdhc3luYy1jYWNoZS0nO1xuXG5leHBvcnQgY2xhc3MgTG9jYWxTdG9yYWdlRHJpdmVyIGltcGxlbWVudHMgQ2FjaGVEcml2ZXIge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG9wdGlvbnM6IExvY2FsU3RvcmFnZU9wdGlvbnMgPSB7IGtleVByZWZpeDogREVGQVVMVF9LRVlfUFJFRklYIH1cbiAgKSB7fVxuXG4gIGhhcyhrZXk6IHN0cmluZyk6IEFzeW5jVmFsdWUge1xuICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuaGFzT3duUHJvcGVydHkodGhpcy5nZXRJbnRlcm5hbEtleShrZXkpKTtcbiAgfVxuXG4gIGdldChrZXk6IHN0cmluZyk6IEFzeW5jVmFsdWUge1xuICAgIHJldHVybiBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuZ2V0SW50ZXJuYWxLZXkoa2V5KSkpO1xuICB9XG5cbiAgc2V0KGtleTogc3RyaW5nLCB2YWx1ZTogYW55KTogQXN5bmNWYWx1ZSB7XG4gICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFxuICAgICAgdGhpcy5nZXRJbnRlcm5hbEtleShrZXkpLFxuICAgICAgSlNPTi5zdHJpbmdpZnkodmFsdWUpXG4gICAgKTtcbiAgfVxuXG4gIGRlbGV0ZShrZXk6IHN0cmluZyk6IEFzeW5jVmFsdWUge1xuICAgIHJldHVybiBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLmdldEludGVybmFsS2V5KGtleSkpO1xuICB9XG5cbiAgY2xlYXIoKTogQXN5bmNWYWx1ZSB7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgdGhpcy5rZXlzKCkpIHtcbiAgICAgIHRoaXMuZGVsZXRlKGtleSk7XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuXG4gIGtleXMoKTogQXN5bmNWYWx1ZSB7XG4gICAgY29uc3Qga2V5czogc3RyaW5nW10gPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxvY2FsU3RvcmFnZS5sZW5ndGg7IGkrKykge1xuICAgICAga2V5cy5wdXNoKGxvY2FsU3RvcmFnZS5rZXkoaSkpO1xuICAgIH1cbiAgICByZXR1cm4ga2V5c1xuICAgICAgLmZpbHRlcihrZXkgPT4ga2V5LnN0YXJ0c1dpdGgodGhpcy5vcHRpb25zLmtleVByZWZpeCkpXG4gICAgICAubWFwKGtleSA9PiB0aGlzLmdldEV4dGVybmFsS2V5KGtleSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbnRlcm5hbEtleShzdWZmaXg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMub3B0aW9ucy5rZXlQcmVmaXh9JHtzdWZmaXh9YDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RXh0ZXJuYWxLZXkoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBrZXkucmVwbGFjZShuZXcgUmVnRXhwKCdeJyArIHRoaXMub3B0aW9ucy5rZXlQcmVmaXgpLCAnJyk7XG4gIH1cbn1cbiIsImltcG9ydCB7IENhY2hlRHJpdmVyLCBBc3luY1ZhbHVlIH0gZnJvbSAnLi9jYWNoZS1kcml2ZXIuaW50ZXJmYWNlJztcblxuY29uc3QgY2FjaGVLZXk6IGFueSA9IFN5bWJvbCgnY2FjaGUga2V5Jyk7XG5cbmV4cG9ydCBjbGFzcyBNZW1vcnlEcml2ZXIgaW1wbGVtZW50cyBDYWNoZURyaXZlciB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXNbY2FjaGVLZXldID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKTtcbiAgfVxuXG4gIGhhcyhrZXk6IHN0cmluZyk6IEFzeW5jVmFsdWUge1xuICAgIHJldHVybiB0aGlzW2NhY2hlS2V5XS5oYXMoa2V5KTtcbiAgfVxuXG4gIGdldChrZXk6IHN0cmluZyk6IEFzeW5jVmFsdWUge1xuICAgIHJldHVybiB0aGlzW2NhY2hlS2V5XS5nZXQoa2V5KTtcbiAgfVxuXG4gIHNldChrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IEFzeW5jVmFsdWUge1xuICAgIHJldHVybiB0aGlzW2NhY2hlS2V5XS5zZXQoa2V5LCB2YWx1ZSk7XG4gIH1cblxuICBkZWxldGUoa2V5OiBzdHJpbmcpOiBBc3luY1ZhbHVlIHtcbiAgICByZXR1cm4gdGhpc1tjYWNoZUtleV0uZGVsZXRlKGtleSk7XG4gIH1cblxuICBjbGVhcigpOiBBc3luY1ZhbHVlIHtcbiAgICByZXR1cm4gdGhpc1tjYWNoZUtleV0uY2xlYXIoKTtcbiAgfVxuXG4gIGtleXMoKTogQXN5bmNWYWx1ZSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpc1tjYWNoZUtleV0ua2V5cygpKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgQ2FjaGVEcml2ZXIgfSBmcm9tICcuL2RyaXZlcnMvY2FjaGUtZHJpdmVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBNZW1vcnlEcml2ZXIgfSBmcm9tICcuL2RyaXZlcnMvbWVtb3J5LWRyaXZlci5wcm92aWRlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXN5bmNDYWNoZU9wdGlvbnNJbnRlcmZhY2Uge1xuICBkcml2ZXI/OiBDYWNoZURyaXZlcjtcblxuICBmcm9tQ2FjaGVBbmRSZXBsYXk/OiBib29sZWFuO1xuXG4gIGJ5cGFzc0NhY2hlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIEFzeW5jQ2FjaGVPcHRpb25zIGltcGxlbWVudHMgQXN5bmNDYWNoZU9wdGlvbnNJbnRlcmZhY2Uge1xuICBkcml2ZXI6IENhY2hlRHJpdmVyID0gbmV3IE1lbW9yeURyaXZlcigpO1xuXG4gIGZyb21DYWNoZUFuZFJlcGxheSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKG92ZXJyaWRlczogQXN5bmNDYWNoZU9wdGlvbnNJbnRlcmZhY2UgPSB7fSkge1xuICAgIE9iamVjdC5hc3NpZ24odGhpcywgb3ZlcnJpZGVzKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2ZXIsIE9ic2VydmFibGUsIGlzT2JzZXJ2YWJsZSwgZnJvbSwgb2YsIG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIG1lcmdlTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgQXN5bmNDYWNoZU9wdGlvbnMsXG4gIEFzeW5jQ2FjaGVPcHRpb25zSW50ZXJmYWNlXG59IGZyb20gJy4vYXN5bmMtY2FjaGUtb3B0aW9ucy5wcm92aWRlcic7XG5cbmV4cG9ydCB0eXBlIEdldFByb21pc2VGdW5jdGlvbiA9ICgpID0+IFByb21pc2U8YW55PjtcblxuZnVuY3Rpb24gaXNQcm9taXNlTGlrZShmbjogYW55KSB7XG4gIHJldHVybiBmbiAmJiB0eXBlb2YgZm4udGhlbiA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgZm4uY2F0Y2ggPT09ICdmdW5jdGlvbic7XG59XG5cbmZ1bmN0aW9uIGlzT2JzZXJ2YWJsZUxpa2UoZm46IGFueSkge1xuICByZXR1cm4gZm4gJiYgaXNPYnNlcnZhYmxlKGZuKTtcbn1cblxuZnVuY3Rpb24gYW55VG9PYnNlcnZhYmxlKGZuOiBhbnkpIHtcbiAgaWYgKGlzT2JzZXJ2YWJsZUxpa2UoZm4pKSB7XG4gICAgcmV0dXJuIGZuO1xuICB9IGVsc2UgaWYgKGlzUHJvbWlzZUxpa2UoZm4pKSB7XG4gICAgcmV0dXJuIGZyb20oZm4pO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBvZihmbik7XG4gIH1cbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFzeW5jQ2FjaGUge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRlZmF1bHRzOiBBc3luY0NhY2hlT3B0aW9ucykge31cblxuICB3cmFwKFxuICAgIHZhbHVlOiBPYnNlcnZhYmxlPGFueT4gfCBHZXRQcm9taXNlRnVuY3Rpb24sXG4gICAgY2FjaGVLZXk6IHN0cmluZyxcbiAgICB1c2VyT3B0aW9uczogQXN5bmNDYWNoZU9wdGlvbnNJbnRlcmZhY2UgPSB7fVxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBnZXRBc3luY1ZhbHVlOiBPYnNlcnZhYmxlPGFueT47XG4gICAgY29uc3Qgb3B0aW9uczogQXN5bmNDYWNoZU9wdGlvbnNJbnRlcmZhY2UgPSBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICB0aGlzLmRlZmF1bHRzLFxuICAgICAgdXNlck9wdGlvbnNcbiAgICApO1xuXG4gICAgaWYgKGlzT2JzZXJ2YWJsZUxpa2UodmFsdWUpKSB7XG4gICAgICBnZXRBc3luY1ZhbHVlID0gdmFsdWUgYXMgT2JzZXJ2YWJsZTxhbnk+O1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBnZXRBc3luY1ZhbHVlID0gT2JzZXJ2YWJsZS5jcmVhdGUoKG9ic2VydmVyOiBPYnNlcnZlcjxhbnk+KSA9PiB7XG4gICAgICAgIGNvbnN0IHByb21pc2U6IFByb21pc2U8YW55PiA9IHZhbHVlKCk7XG4gICAgICAgIGlmICghaXNQcm9taXNlTGlrZShwcm9taXNlKSkge1xuICAgICAgICAgIHJldHVybiBvYnNlcnZlci5lcnJvcihcbiAgICAgICAgICAgIFwiVGhlIGZ1bmN0aW9uIHlvdSBwYXNzZWQgdG8gdGhlIGFzeW5jIGNhY2hlIGRpZG4ndCByZXR1cm4gYSBwcm9taXNlXCJcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHByb21pc2VcbiAgICAgICAgICAudGhlbihyZXN1bHQgPT4ge1xuICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dChyZXN1bHQpO1xuICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaChlcnIgPT4ge1xuICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdWYWx1ZSBjYW4gb25seSBiZSBhbiBvYnNlcnZhYmxlIG9yIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgcHJvbWlzZSdcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFueVRvT2JzZXJ2YWJsZShvcHRpb25zLmRyaXZlci5oYXMoY2FjaGVLZXkpKS5waXBlKFxuICAgICAgbWVyZ2VNYXAoZXhpc3RzSW5DYWNoZSA9PiB7XG4gICAgICAgIGNvbnN0IGNhY2hlQW5kUmV0dXJuQXN5bmNWYWx1ZSA9ICgpID0+XG4gICAgICAgICAgZ2V0QXN5bmNWYWx1ZS5waXBlKFxuICAgICAgICAgICAgbWVyZ2VNYXAoYXN5bmNWYWx1ZSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBhbnlUb09ic2VydmFibGUoXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5kcml2ZXIuc2V0KGNhY2hlS2V5LCBhc3luY1ZhbHVlKVxuICAgICAgICAgICAgICApLnBpcGUobWFwKCgpID0+IGFzeW5jVmFsdWUpKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcblxuICAgICAgICBpZiAoZXhpc3RzSW5DYWNoZSAmJiAhb3B0aW9ucy5ieXBhc3NDYWNoZSkge1xuICAgICAgICAgIGNvbnN0IGdldENhY2hlZFZhbHVlOiBPYnNlcnZhYmxlPGFueT4gPSBhbnlUb09ic2VydmFibGUoXG4gICAgICAgICAgICBvcHRpb25zLmRyaXZlci5nZXQoY2FjaGVLZXkpXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmIChvcHRpb25zLmZyb21DYWNoZUFuZFJlcGxheSkge1xuICAgICAgICAgICAgcmV0dXJuIG1lcmdlKGdldENhY2hlZFZhbHVlLCBjYWNoZUFuZFJldHVybkFzeW5jVmFsdWUoKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBnZXRDYWNoZWRWYWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGNhY2hlQW5kUmV0dXJuQXN5bmNWYWx1ZSgpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiIsImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFzeW5jQ2FjaGUgfSBmcm9tICcuL2FzeW5jLWNhY2hlLnByb3ZpZGVyJztcbmltcG9ydCB7IEFzeW5jQ2FjaGVPcHRpb25zSW50ZXJmYWNlIH0gZnJvbSAnLi9hc3luYy1jYWNoZS1vcHRpb25zLnByb3ZpZGVyJztcblxuQFBpcGUoe1xuICBuYW1lOiAnYXN5bmNDYWNoZScgLy8gdHNsaW50OmRpc2FibGUtbGluZSBwaXBlLW5hbWluZ1xufSlcbmV4cG9ydCBjbGFzcyBBc3luY0NhY2hlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFzeW5jQ2FjaGU6IEFzeW5jQ2FjaGUpIHt9XG5cbiAgdHJhbnNmb3JtKFxuICAgIHZhbHVlOiBPYnNlcnZhYmxlPGFueT4sXG4gICAgY2FjaGVLZXk6IHN0cmluZyxcbiAgICBvcHRpb25zPzogQXN5bmNDYWNoZU9wdGlvbnNJbnRlcmZhY2VcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5hc3luY0NhY2hlLndyYXAodmFsdWUsIGNhY2hlS2V5LCBvcHRpb25zKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBc3luY0NhY2hlIH0gZnJvbSAnLi9hc3luYy1jYWNoZS5wcm92aWRlcic7XG5pbXBvcnQgeyBBc3luY0NhY2hlT3B0aW9uc0ludGVyZmFjZSB9IGZyb20gJy4vYXN5bmMtY2FjaGUtb3B0aW9ucy5wcm92aWRlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cFJlcXVlc3RBcmdzIHtcbiAgaGVhZGVycz86IEh0dHBIZWFkZXJzO1xuICBwYXJhbXM/OiBIdHRwUGFyYW1zO1xuICByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW47XG4gIHJlc3BvbnNlVHlwZT86ICdqc29uJztcbiAgd2l0aENyZWRlbnRpYWxzPzogYm9vbGVhbjtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENhY2hlZEh0dHAge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgYXN5bmNDYWNoZTogQXN5bmNDYWNoZSkge31cblxuICBnZXQoXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IEh0dHBSZXF1ZXN0QXJncyxcbiAgICBhc3luY0NhY2hlT3B0aW9ucz86IEFzeW5jQ2FjaGVPcHRpb25zSW50ZXJmYWNlXG4gICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgcmVzdWx0JDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5odHRwLmdldCh1cmwsIG9wdGlvbnMpO1xuXG4gICAgbGV0IGNhY2hlS2V5OiBzdHJpbmcgPSB1cmw7XG4gICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5wYXJhbXMpIHtcbiAgICAgIGNhY2hlS2V5ICs9ICc/JyArIG9wdGlvbnMucGFyYW1zLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXN5bmNDYWNoZS53cmFwKHJlc3VsdCQsIGNhY2hlS2V5LCBhc3luY0NhY2hlT3B0aW9ucyk7XG4gIH1cbn1cbiIsImltcG9ydCB7IE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9jYWxTdG9yYWdlRHJpdmVyIH0gZnJvbSAnLi9kcml2ZXJzL2xvY2FsLXN0b3JhZ2UtZHJpdmVyLnByb3ZpZGVyJztcbmltcG9ydCB7IE1lbW9yeURyaXZlciB9IGZyb20gJy4vZHJpdmVycy9tZW1vcnktZHJpdmVyLnByb3ZpZGVyJztcbmltcG9ydCB7IEFzeW5jQ2FjaGVPcHRpb25zIH0gZnJvbSAnLi9hc3luYy1jYWNoZS1vcHRpb25zLnByb3ZpZGVyJztcbmltcG9ydCB7IEFzeW5jQ2FjaGUgfSBmcm9tICcuL2FzeW5jLWNhY2hlLnByb3ZpZGVyJztcbmltcG9ydCB7IEFzeW5jQ2FjaGVQaXBlIH0gZnJvbSAnLi9hc3luYy1jYWNoZS5waXBlJztcbmltcG9ydCB7IENhY2hlZEh0dHAgfSBmcm9tICcuL2NhY2hlZC1odHRwLnByb3ZpZGVyJztcblxuZXhwb3J0IGZ1bmN0aW9uIG1lbW9yeURyaXZlckZhY3Rvcnkob3B0aW9uczogQXN5bmNDYWNoZU9wdGlvbnMpOiBNZW1vcnlEcml2ZXIge1xuICByZXR1cm4gb3B0aW9ucy5kcml2ZXIgaW5zdGFuY2VvZiBNZW1vcnlEcml2ZXJcbiAgICA/IG9wdGlvbnMuZHJpdmVyXG4gICAgOiBuZXcgTWVtb3J5RHJpdmVyKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2NhbFN0b3JhZ2VEcml2ZXJGYWN0b3J5KFxuICBvcHRpb25zOiBBc3luY0NhY2hlT3B0aW9uc1xuKTogTG9jYWxTdG9yYWdlRHJpdmVyIHtcbiAgcmV0dXJuIG9wdGlvbnMuZHJpdmVyIGluc3RhbmNlb2YgTG9jYWxTdG9yYWdlRHJpdmVyXG4gICAgPyAob3B0aW9ucy5kcml2ZXIgYXMgTG9jYWxTdG9yYWdlRHJpdmVyKVxuICAgIDogbmV3IExvY2FsU3RvcmFnZURyaXZlcigpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2FjaGVPcHRpb25GYWN0b3J5KCk6IEFzeW5jQ2FjaGVPcHRpb25zIHtcbiAgcmV0dXJuIG5ldyBBc3luY0NhY2hlT3B0aW9ucygpO1xufVxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtBc3luY0NhY2hlUGlwZV0sXG4gIGV4cG9ydHM6IFtBc3luY0NhY2hlUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgQXN5bmNDYWNoZU1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KFxuICAgIGNhY2hlT3B0aW9uczogUHJvdmlkZXIgPSB7XG4gICAgICBwcm92aWRlOiBBc3luY0NhY2hlT3B0aW9ucyxcbiAgICAgIHVzZUZhY3Rvcnk6IGNhY2hlT3B0aW9uRmFjdG9yeVxuICAgIH1cbiAgKTogTW9kdWxlV2l0aFByb3ZpZGVycyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBBc3luY0NhY2hlTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBMb2NhbFN0b3JhZ2VEcml2ZXIsXG4gICAgICAgICAgdXNlRmFjdG9yeTogbG9jYWxTdG9yYWdlRHJpdmVyRmFjdG9yeSxcbiAgICAgICAgICBkZXBzOiBbQXN5bmNDYWNoZU9wdGlvbnNdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBNZW1vcnlEcml2ZXIsXG4gICAgICAgICAgdXNlRmFjdG9yeTogbWVtb3J5RHJpdmVyRmFjdG9yeSxcbiAgICAgICAgICBkZXBzOiBbQXN5bmNDYWNoZU9wdGlvbnNdXG4gICAgICAgIH0sXG4gICAgICAgIGNhY2hlT3B0aW9ucyxcbiAgICAgICAgQXN5bmNDYWNoZSxcbiAgICAgICAgQ2FjaGVkSHR0cFxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFNQSx1QkFBTSxrQkFBa0IsR0FBRyxjQUFjLENBQUM7QUFFMUM7Ozs7SUFDRSxZQUNVLFVBQStCLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFO1FBQWhFLFlBQU8sR0FBUCxPQUFPO0tBQ2I7Ozs7O0lBRUosR0FBRyxDQUFDLEdBQVc7UUFDYixPQUFPLFlBQVksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0tBQzlEOzs7OztJQUVELEdBQUcsQ0FBQyxHQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDbkU7Ozs7OztJQUVELEdBQUcsQ0FBQyxHQUFXLEVBQUUsS0FBVTtRQUN6QixPQUFPLFlBQVksQ0FBQyxPQUFPLENBQ3pCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQ3RCLENBQUM7S0FDSDs7Ozs7SUFFRCxNQUFNLENBQUMsR0FBVztRQUNoQixPQUFPLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxD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 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1hc3luYy1jYWNoZS5qcy5tYXAiLCJzb3VyY2VzIjpbIm5nOi8vYW5ndWxhci1hc3luYy1jYWNoZS9kcml2ZXJzL2xvY2FsLXN0b3JhZ2UtZHJpdmVyLnByb3ZpZGVyLnRzIiwibmc6Ly9hbmd1bGFyLWFzeW5jLWNhY2hlL2RyaXZlcnMvbWVtb3J5LWRyaXZlci5wcm92aWRlci50cyIsIm5nOi8vYW5ndWxhci1hc3luYy1jYWNoZS9hc3luYy1jYWNoZS1vcHRpb25zLnByb3ZpZGVyLnRzIiwibmc6Ly9hbmd1bGFyLWFzeW5jLWNhY2hlL2FzeW5jLWNhY2hlLnByb3ZpZGVyLnRzIiwibmc6Ly9hbmd1bGFyLWFzeW5jLWNhY2hlL2FzeW5jLWNhY2hlLnBpcGUudHMiLCJuZzovL2FuZ3VsYXItYXN5bmMtY2FjaGUvY2FjaGVkLWh0dHAucHJvdmlkZXIudHMiLCJuZzovL2FuZ3VsYXItYXN5bmMtY2FjaGUvYXN5bmMtY2FjaGUubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhY2hlRHJpdmVyLCBBc3luY1ZhbHVlIH0gZnJvbSAnLi9jYWNoZS1kcml2ZXIuaW50ZXJmYWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBMb2NhbFN0b3JhZ2VPcHRpb25zIHtcbiAga2V5UHJlZml4OiBzdHJpbmc7XG59XG5cbmNvbnN0IERFRkFVTFRfS0VZX1BSRUZJWCA9ICdhc3luYy1jYWNoZS0nO1xuXG5leHBvcnQgY2xhc3MgTG9jYWxTdG9yYWdlRHJpdmVyIGltcGxlbWVudHMgQ2FjaGVEcml2ZXIge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG9wdGlvbnM6IExvY2FsU3RvcmFnZU9wdGlvbnMgPSB7IGtleVByZWZpeDogREVGQVVMVF9LRVlfUFJFRklYIH1cbiAgKSB7fVxuXG4gIGhhcyhrZXk6IHN0cmluZyk6IEFzeW5jVmFsdWUge1xuICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuaGFzT3duUHJvcGVydHkodGhpcy5nZXRJbnRlcm5hbEtleShrZXkpKTtcbiAgfVxuXG4gIGdldChrZXk6IHN0cmluZyk6IEFzeW5jVmFsdWUge1xuICAgIHJldHVybiBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuZ2V0SW50ZXJuYWxLZXkoa2V5KSkpO1xuICB9XG5cbiAgc2V0KGtleTogc3RyaW5nLCB2YWx1ZTogYW55KTogQXN5bmNWYWx1ZSB7XG4gICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFxuICAgICAgdGhpcy5nZXRJbnRlcm5hbEtleShrZXkpLFxuICAgICAgSlNPTi5zdHJpbmdpZnkodmFsdWUpXG4gICAgKTtcbiAgfVxuXG4gIGRlbGV0ZShrZXk6IHN0cmluZyk6IEFzeW5jVmFsdWUge1xuICAgIHJldHVybiBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLmdldEludGVybmFsS2V5KGtleSkpO1xuICB9XG5cbiAgY2xlYXIoKTogQXN5bmNWYWx1ZSB7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgdGhpcy5rZXlzKCkpIHtcbiAgICAgIHRoaXMuZGVsZXRlKGtleSk7XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuXG4gIGtleXMoKTogQXN5bmNWYWx1ZSB7XG4gICAgY29uc3Qga2V5czogc3RyaW5nW10gPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxvY2FsU3RvcmFnZS5sZW5ndGg7IGkrKykge1xuICAgICAga2V5cy5wdXNoKGxvY2FsU3RvcmFnZS5rZXkoaSkpO1xuICAgIH1cbiAgICByZXR1cm4ga2V5c1xuICAgICAgLmZpbHRlcihrZXkgPT4ga2V5LnN0YXJ0c1dpdGgodGhpcy5vcHRpb25zLmtleVByZWZpeCkpXG4gICAgICAubWFwKGtleSA9PiB0aGlzLmdldEV4dGVybmFsS2V5KGtleSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbnRlcm5hbEtleShzdWZmaXg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMub3B0aW9ucy5rZXlQcmVmaXh9JHtzdWZmaXh9YDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RXh0ZXJuYWxLZXkoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBrZXkucmVwbGFjZShuZXcgUmVnRXhwKCdeJyArIHRoaXMub3B0aW9ucy5rZXlQcmVmaXgpLCAnJyk7XG4gIH1cbn1cbiIsImltcG9ydCB7IENhY2hlRHJpdmVyLCBBc3luY1ZhbHVlIH0gZnJvbSAnLi9jYWNoZS1kcml2ZXIuaW50ZXJmYWNlJztcblxuY29uc3QgY2FjaGVLZXk6IGFueSA9IFN5bWJvbCgnY2FjaGUga2V5Jyk7XG5cbmV4cG9ydCBjbGFzcyBNZW1vcnlEcml2ZXIgaW1wbGVtZW50cyBDYWNoZURyaXZlciB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXNbY2FjaGVLZXldID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKTtcbiAgfVxuXG4gIGhhcyhrZXk6IHN0cmluZyk6IEFzeW5jVmFsdWUge1xuICAgIHJldHVybiB0aGlzW2NhY2hlS2V5XS5oYXMoa2V5KTtcbiAgfVxuXG4gIGdldChrZXk6IHN0cmluZyk6IEFzeW5jVmFsdWUge1xuICAgIHJldHVybiB0aGlzW2NhY2hlS2V5XS5nZXQoa2V5KTtcbiAgfVxuXG4gIHNldChrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IEFzeW5jVmFsdWUge1xuICAgIHJldHVybiB0aGlzW2NhY2hlS2V5XS5zZXQoa2V5LCB2YWx1ZSk7XG4gIH1cblxuICBkZWxldGUoa2V5OiBzdHJpbmcpOiBBc3luY1ZhbHVlIHtcbiAgICByZXR1cm4gdGhpc1tjYWNoZUtleV0uZGVsZXRlKGtleSk7XG4gIH1cblxuICBjbGVhcigpOiBBc3luY1ZhbHVlIHtcbiAgICByZXR1cm4gdGhpc1tjYWNoZUtleV0uY2xlYXIoKTtcbiAgfVxuXG4gIGtleXMoKTogQXN5bmNWYWx1ZSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpc1tjYWNoZUtleV0ua2V5cygpKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgQ2FjaGVEcml2ZXIgfSBmcm9tICcuL2RyaXZlcnMvY2FjaGUtZHJpdmVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBNZW1vcnlEcml2ZXIgfSBmcm9tICcuL2RyaXZlcnMvbWVtb3J5LWRyaXZlci5wcm92aWRlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXN5bmNDYWNoZU9wdGlvbnNJbnRlcmZhY2Uge1xuICBkcml2ZXI/OiBDYWNoZURyaXZlcjtcblxuICBmcm9tQ2FjaGVBbmRSZXBsYXk/OiBib29sZWFuO1xuXG4gIGJ5cGFzc0NhY2hlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIEFzeW5jQ2FjaGVPcHRpb25zIGltcGxlbWVudHMgQXN5bmNDYWNoZU9wdGlvbnNJbnRlcmZhY2Uge1xuICBkcml2ZXI6IENhY2hlRHJpdmVyID0gbmV3IE1lbW9yeURyaXZlcigpO1xuXG4gIGZyb21DYWNoZUFuZFJlcGxheSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKG92ZXJyaWRlczogQXN5bmNDYWNoZU9wdGlvbnNJbnRlcmZhY2UgPSB7fSkge1xuICAgIE9iamVjdC5hc3NpZ24odGhpcywgb3ZlcnJpZGVzKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2ZXIsIE9ic2VydmFibGUsIGlzT2JzZXJ2YWJsZSwgZnJvbSwgb2YsIG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIG1lcmdlTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgQXN5bmNDYWNoZU9wdGlvbnMsXG4gIEFzeW5jQ2FjaGVPcHRpb25zSW50ZXJmYWNlXG59IGZyb20gJy4vYXN5bmMtY2FjaGUtb3B0aW9ucy5wcm92aWRlcic7XG5cbmV4cG9ydCB0eXBlIEdldFByb21pc2VGdW5jdGlvbiA9ICgpID0+IFByb21pc2U8YW55PjtcblxuZnVuY3Rpb24gaXNQcm9taXNlTGlrZShmbjogYW55KSB7XG4gIHJldHVybiBmbiAmJiB0eXBlb2YgZm4udGhlbiA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgZm4uY2F0Y2ggPT09ICdmdW5jdGlvbic7XG59XG5cbmZ1bmN0aW9uIGlzT2JzZXJ2YWJsZUxpa2UoZm46IGFueSkge1xuICByZXR1cm4gZm4gJiYgaXNPYnNlcnZhYmxlKGZuKTtcbn1cblxuZnVuY3Rpb24gYW55VG9PYnNlcnZhYmxlKGZuOiBhbnkpIHtcbiAgaWYgKGlzT2JzZXJ2YWJsZUxpa2UoZm4pKSB7XG4gICAgcmV0dXJuIGZuO1xuICB9IGVsc2UgaWYgKGlzUHJvbWlzZUxpa2UoZm4pKSB7XG4gICAgcmV0dXJuIGZyb20oZm4pO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBvZihmbik7XG4gIH1cbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFzeW5jQ2FjaGUge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRlZmF1bHRzOiBBc3luY0NhY2hlT3B0aW9ucykge31cblxuICB3cmFwKFxuICAgIHZhbHVlOiBPYnNlcnZhYmxlPGFueT4gfCBHZXRQcm9taXNlRnVuY3Rpb24sXG4gICAgY2FjaGVLZXk6IHN0cmluZyxcbiAgICB1c2VyT3B0aW9uczogQXN5bmNDYWNoZU9wdGlvbnNJbnRlcmZhY2UgPSB7fVxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBnZXRBc3luY1ZhbHVlOiBPYnNlcnZhYmxlPGFueT47XG4gICAgY29uc3Qgb3B0aW9uczogQXN5bmNDYWNoZU9wdGlvbnNJbnRlcmZhY2UgPSBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICB0aGlzLmRlZmF1bHRzLFxuICAgICAgdXNlck9wdGlvbnNcbiAgICApO1xuXG4gICAgaWYgKGlzT2JzZXJ2YWJsZUxpa2UodmFsdWUpKSB7XG4gICAgICBnZXRBc3luY1ZhbHVlID0gdmFsdWUgYXMgT2JzZXJ2YWJsZTxhbnk+O1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBnZXRBc3luY1ZhbHVlID0gT2JzZXJ2YWJsZS5jcmVhdGUoKG9ic2VydmVyOiBPYnNlcnZlcjxhbnk+KSA9PiB7XG4gICAgICAgIGNvbnN0IHByb21pc2U6IFByb21pc2U8YW55PiA9IHZhbHVlKCk7XG4gICAgICAgIGlmICghaXNQcm9taXNlTGlrZShwcm9taXNlKSkge1xuICAgICAgICAgIHJldHVybiBvYnNlcnZlci5lcnJvcihcbiAgICAgICAgICAgIFwiVGhlIGZ1bmN0aW9uIHlvdSBwYXNzZWQgdG8gdGhlIGFzeW5jIGNhY2hlIGRpZG4ndCByZXR1cm4gYSBwcm9taXNlXCJcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHByb21pc2VcbiAgICAgICAgICAudGhlbihyZXN1bHQgPT4ge1xuICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dChyZXN1bHQpO1xuICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaChlcnIgPT4ge1xuICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdWYWx1ZSBjYW4gb25seSBiZSBhbiBvYnNlcnZhYmxlIG9yIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgcHJvbWlzZSdcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFueVRvT2JzZXJ2YWJsZShvcHRpb25zLmRyaXZlci5oYXMoY2FjaGVLZXkpKS5waXBlKFxuICAgICAgbWVyZ2VNYXAoZXhpc3RzSW5DYWNoZSA9PiB7XG4gICAgICAgIGNvbnN0IGNhY2hlQW5kUmV0dXJuQXN5bmNWYWx1ZSA9ICgpID0+XG4gICAgICAgICAgZ2V0QXN5bmNWYWx1ZS5waXBlKFxuICAgICAgICAgICAgbWVyZ2VNYXAoYXN5bmNWYWx1ZSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBhbnlUb09ic2VydmFibGUoXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5kcml2ZXIuc2V0KGNhY2hlS2V5LCBhc3luY1ZhbHVlKVxuICAgICAgICAgICAgICApLnBpcGUobWFwKCgpID0+IGFzeW5jVmFsdWUpKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcblxuICAgICAgICBpZiAoZXhpc3RzSW5DYWNoZSAmJiAhb3B0aW9ucy5ieXBhc3NDYWNoZSkge1xuICAgICAgICAgIGNvbnN0IGdldENhY2hlZFZhbHVlOiBPYnNlcnZhYmxlPGFueT4gPSBhbnlUb09ic2VydmFibGUoXG4gICAgICAgICAgICBvcHRpb25zLmRyaXZlci5nZXQoY2FjaGVLZXkpXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmIChvcHRpb25zLmZyb21DYWNoZUFuZFJlcGxheSkge1xuICAgICAgICAgICAgcmV0dXJuIG1lcmdlKGdldENhY2hlZFZhbHVlLCBjYWNoZUFuZFJldHVybkFzeW5jVmFsdWUoKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBnZXRDYWNoZWRWYWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGNhY2hlQW5kUmV0dXJuQXN5bmNWYWx1ZSgpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiIsImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFzeW5jQ2FjaGUgfSBmcm9tICcuL2FzeW5jLWNhY2hlLnByb3ZpZGVyJztcbmltcG9ydCB7IEFzeW5jQ2FjaGVPcHRpb25zSW50ZXJmYWNlIH0gZnJvbSAnLi9hc3luYy1jYWNoZS1vcHRpb25zLnByb3ZpZGVyJztcblxuQFBpcGUoe1xuICBuYW1lOiAnYXN5bmNDYWNoZScgLy8gdHNsaW50OmRpc2FibGUtbGluZSBwaXBlLW5hbWluZ1xufSlcbmV4cG9ydCBjbGFzcyBBc3luY0NhY2hlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFzeW5jQ2FjaGU6IEFzeW5jQ2FjaGUpIHt9XG5cbiAgdHJhbnNmb3JtKFxuICAgIHZhbHVlOiBPYnNlcnZhYmxlPGFueT4sXG4gICAgY2FjaGVLZXk6IHN0cmluZyxcbiAgICBvcHRpb25zPzogQXN5bmNDYWNoZU9wdGlvbnNJbnRlcmZhY2VcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5hc3luY0NhY2hlLndyYXAodmFsdWUsIGNhY2hlS2V5LCBvcHRpb25zKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBc3luY0NhY2hlIH0gZnJvbSAnLi9hc3luYy1jYWNoZS5wcm92aWRlcic7XG5pbXBvcnQgeyBBc3luY0NhY2hlT3B0aW9uc0ludGVyZmFjZSB9IGZyb20gJy4vYXN5bmMtY2FjaGUtb3B0aW9ucy5wcm92aWRlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cFJlcXVlc3RBcmdzIHtcbiAgaGVhZGVycz86IEh0dHBIZWFkZXJzO1xuICBwYXJhbXM/OlxuICAgIHwgSHR0cFBhcmFtc1xuICAgIHwge1xuICAgICAgICBbcGFyYW06IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdO1xuICAgICAgfTtcbiAgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuO1xuICByZXNwb25zZVR5cGU/OiAnanNvbic7XG4gIHdpdGhDcmVkZW50aWFscz86IGJvb2xlYW47XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDYWNoZWRIdHRwIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIGFzeW5jQ2FjaGU6IEFzeW5jQ2FjaGUpIHt9XG5cbiAgZ2V0PFQgPSBhbnk+KFxuICAgIHVybDogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBIdHRwUmVxdWVzdEFyZ3MsXG4gICAgYXN5bmNDYWNoZU9wdGlvbnM/OiBBc3luY0NhY2hlT3B0aW9uc0ludGVyZmFjZVxuICApOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICBjb25zdCByZXN1bHQkOiBPYnNlcnZhYmxlPFQ+ID0gdGhpcy5odHRwLmdldDxUPih1cmwsIG9wdGlvbnMpO1xuXG4gICAgbGV0IGNhY2hlS2V5OiBzdHJpbmcgPSB1cmw7XG4gICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5wYXJhbXMpIHtcbiAgICAgIGxldCBxcyA9IG9wdGlvbnMucGFyYW1zLnRvU3RyaW5nKCk7XG4gICAgICBpZiAoXG4gICAgICAgIHR5cGVvZiBvcHRpb25zLnBhcmFtcyA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgIShvcHRpb25zLnBhcmFtcyBpbnN0YW5jZW9mIEh0dHBQYXJhbXMpXG4gICAgICApIHtcbiAgICAgICAgcXMgPSBuZXcgSHR0cFBhcmFtcyh7XG4gICAgICAgICAgZnJvbU9iamVjdDogb3B0aW9ucy5wYXJhbXNcbiAgICAgICAgfSkudG9TdHJpbmcoKTtcbiAgICAgIH1cbiAgICAgIGNhY2hlS2V5ICs9ICc/JyArIHFzO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFzeW5jQ2FjaGUud3JhcChyZXN1bHQkLCBjYWNoZUtleSwgYXN5bmNDYWNoZU9wdGlvbnMpO1xuICB9XG59XG4iLCJpbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycywgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvY2FsU3RvcmFnZURyaXZlciB9IGZyb20gJy4vZHJpdmVycy9sb2NhbC1zdG9yYWdlLWRyaXZlci5wcm92aWRlcic7XG5pbXBvcnQgeyBNZW1vcnlEcml2ZXIgfSBmcm9tICcuL2RyaXZlcnMvbWVtb3J5LWRyaXZlci5wcm92aWRlcic7XG5pbXBvcnQgeyBBc3luY0NhY2hlT3B0aW9ucyB9IGZyb20gJy4vYXN5bmMtY2FjaGUtb3B0aW9ucy5wcm92aWRlcic7XG5pbXBvcnQgeyBBc3luY0NhY2hlIH0gZnJvbSAnLi9hc3luYy1jYWNoZS5wcm92aWRlcic7XG5pbXBvcnQgeyBBc3luY0NhY2hlUGlwZSB9IGZyb20gJy4vYXN5bmMtY2FjaGUucGlwZSc7XG5pbXBvcnQgeyBDYWNoZWRIdHRwIH0gZnJvbSAnLi9jYWNoZWQtaHR0cC5wcm92aWRlcic7XG5cbmV4cG9ydCBmdW5jdGlvbiBtZW1vcnlEcml2ZXJGYWN0b3J5KG9wdGlvbnM6IEFzeW5jQ2FjaGVPcHRpb25zKTogTWVtb3J5RHJpdmVyIHtcbiAgcmV0dXJuIG9wdGlvbnMuZHJpdmVyIGluc3RhbmNlb2YgTWVtb3J5RHJpdmVyXG4gICAgPyBvcHRpb25zLmRyaXZlclxuICAgIDogbmV3IE1lbW9yeURyaXZlcigpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9jYWxTdG9yYWdlRHJpdmVyRmFjdG9yeShcbiAgb3B0aW9uczogQXN5bmNDYWNoZU9wdGlvbnNcbik6IExvY2FsU3RvcmFnZURyaXZlciB7XG4gIHJldHVybiBvcHRpb25zLmRyaXZlciBpbnN0YW5jZW9mIExvY2FsU3RvcmFnZURyaXZlclxuICAgID8gKG9wdGlvbnMuZHJpdmVyIGFzIExvY2FsU3RvcmFnZURyaXZlcilcbiAgICA6IG5ldyBMb2NhbFN0b3JhZ2VEcml2ZXIoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhY2hlT3B0aW9uRmFjdG9yeSgpOiBBc3luY0NhY2hlT3B0aW9ucyB7XG4gIHJldHVybiBuZXcgQXN5bmNDYWNoZU9wdGlvbnMoKTtcbn1cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbQXN5bmNDYWNoZVBpcGVdLFxuICBleHBvcnRzOiBbQXN5bmNDYWNoZVBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIEFzeW5jQ2FjaGVNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdChcbiAgICBjYWNoZU9wdGlvbnM6IFByb3ZpZGVyID0ge1xuICAgICAgcHJvdmlkZTogQXN5bmNDYWNoZU9wdGlvbnMsXG4gICAgICB1c2VGYWN0b3J5OiBjYWNoZU9wdGlvbkZhY3RvcnlcbiAgICB9XG4gICk6IE1vZHVsZVdpdGhQcm92aWRlcnMge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogQXN5bmNDYWNoZU1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogTG9jYWxTdG9yYWdlRHJpdmVyLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IGxvY2FsU3RvcmFnZURyaXZlckZhY3RvcnksXG4gICAgICAgICAgZGVwczogW0FzeW5jQ2FjaGVPcHRpb25zXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogTWVtb3J5RHJpdmVyLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IG1lbW9yeURyaXZlckZhY3RvcnksXG4gICAgICAgICAgZGVwczogW0FzeW5jQ2FjaGVPcHRpb25zXVxuICAgICAgICB9LFxuICAgICAgICBjYWNoZU9wdGlvbnMsXG4gICAgICAgIEFzeW5jQ2FjaGUsXG4gICAgICAgIENhY2hlZEh0dHBcbiAgICAgIF1cbiAgICB9O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBTUEsdUJBQU0sa0JBQWtCLEdBQUcsY0FBYyxDQUFDO0FBRTFDOzs7O0lBQ0UsWUFDVSxVQUErQixFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRTtRQUFoRSxZQUFPLEdBQVAsT0FBTztLQUNiOzs7OztJQUVKLEdBQUcsQ0FBQyxHQUFXO1FBQ2IsT0FBTyxZQUFZLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztLQUM5RDs7Ozs7SUFFRCxHQUFHLENBQUMsR0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLEtB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 |
@@ -5,3 +5,3 @@ import { __values } from 'tslib'; | ||
import { map, mergeMap } from 'rxjs/operators'; | ||
import { HttpClient } from '@angular/common/http'; | ||
import { HttpClient, HttpParams } from '@angular/common/http'; | ||
@@ -368,2 +368,3 @@ /** | ||
/** | ||
* @template T | ||
* @param {?} url | ||
@@ -375,2 +376,3 @@ * @param {?=} options | ||
CachedHttp.prototype.get = /** | ||
* @template T | ||
* @param {?} url | ||
@@ -385,3 +387,10 @@ * @param {?=} options | ||
if (options && options.params) { | ||
cacheKey += '?' + options.params.toString(); | ||
var /** @type {?} */ qs = options.params.toString(); | ||
if (typeof options.params === 'object' && | ||
!(options.params instanceof HttpParams)) { | ||
qs = new HttpParams({ | ||
fromObject: options.params | ||
}).toString(); | ||
} | ||
cacheKey += '?' + qs; | ||
} | ||
@@ -485,2 +494,2 @@ return this.asyncCache.wrap(result$, cacheKey, asyncCacheOptions); | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1hc3luYy1jYWNoZS5qcy5tYXAiLCJzb3VyY2VzIjpbIm5nOi8vYW5ndWxhci1hc3luYy1jYWNoZS9kcml2ZXJzL2xvY2FsLXN0b3JhZ2UtZHJpdmVyLnByb3ZpZGVyLnRzIiwibmc6Ly9hbmd1bGFyLWFzeW5jLWNhY2hlL2RyaXZlcnMvbWVtb3J5LWRyaXZlci5wcm92aWRlci50cyIsIm5nOi8vYW5ndWxhci1hc3luYy1jYWNoZS9hc3luYy1jYWNoZS1vcHRpb25zLnByb3ZpZGVyLnRzIiwibmc6Ly9hbmd1bGFyLWFzeW5jLWNhY2hlL2FzeW5jLWNhY2hlLnByb3ZpZGVyLnRzIiwibmc6Ly9hbmd1bGFyLWFzeW5jLWNhY2hlL2FzeW5jLWNhY2hlLnBpcGUudHMiLCJuZzovL2FuZ3VsYXItYXN5bmMtY2FjaGUvY2FjaGVkLWh0dHAucHJvdmlkZXIudHMiLCJuZzovL2FuZ3VsYXItYXN5bmMtY2FjaGUvYXN5bmMtY2FjaGUubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhY2hlRHJpdmVyLCBBc3luY1ZhbHVlIH0gZnJvbSAnLi9jYWNoZS1kcml2ZXIuaW50ZXJmYWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBMb2NhbFN0b3JhZ2VPcHRpb25zIHtcbiAga2V5UHJlZml4OiBzdHJpbmc7XG59XG5cbmNvbnN0IERFRkFVTFRfS0VZX1BSRUZJWCA9ICdhc3luYy1jYWNoZS0nO1xuXG5leHBvcnQgY2xhc3MgTG9jYWxTdG9yYWdlRHJpdmVyIGltcGxlbWVudHMgQ2FjaGVEcml2ZXIge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG9wdGlvbnM6IExvY2FsU3RvcmFnZU9wdGlvbnMgPSB7IGtleVByZWZpeDogREVGQVVMVF9LRVlfUFJFRklYIH1cbiAgKSB7fVxuXG4gIGhhcyhrZXk6IHN0cmluZyk6IEFzeW5jVmFsdWUge1xuICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuaGFzT3duUHJvcGVydHkodGhpcy5nZXRJbnRlcm5hbEtleShrZXkpKTtcbiAgfVxuXG4gIGdldChrZXk6IHN0cmluZyk6IEFzeW5jVmFsdWUge1xuICAgIHJldHVybiBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuZ2V0SW50ZXJuYWxLZXkoa2V5KSkpO1xuICB9XG5cbiAgc2V0KGtleTogc3RyaW5nLCB2YWx1ZTogYW55KTogQXN5bmNWYWx1ZSB7XG4gICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFxuICAgICAgdGhpcy5nZXRJbnRlcm5hbEtleShrZXkpLFxuICAgICAgSlNPTi5zdHJpbmdpZnkodmFsdWUpXG4gICAgKTtcbiAgfVxuXG4gIGRlbGV0ZShrZXk6IHN0cmluZyk6IEFzeW5jVmFsdWUge1xuICAgIHJldHVybiBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLmdldEludGVybmFsS2V5KGtleSkpO1xuICB9XG5cbiAgY2xlYXIoKTogQXN5bmNWYWx1ZSB7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgdGhpcy5rZXlzKCkpIHtcbiAgICAgIHRoaXMuZGVsZXRlKGtleSk7XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuXG4gIGtleXMoKTogQXN5bmNWYWx1ZSB7XG4gICAgY29uc3Qga2V5czogc3RyaW5nW10gPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxvY2FsU3RvcmFnZS5sZW5ndGg7IGkrKykge1xuICAgICAga2V5cy5wdXNoKGxvY2FsU3RvcmFnZS5rZXkoaSkpO1xuICAgIH1cbiAgICByZXR1cm4ga2V5c1xuICAgICAgLmZpbHRlcihrZXkgPT4ga2V5LnN0YXJ0c1dpdGgodGhpcy5vcHRpb25zLmtleVByZWZpeCkpXG4gICAgICAubWFwKGtleSA9PiB0aGlzLmdldEV4dGVybmFsS2V5KGtleSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbnRlcm5hbEtleShzdWZmaXg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMub3B0aW9ucy5rZXlQcmVmaXh9JHtzdWZmaXh9YDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RXh0ZXJuYWxLZXkoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBrZXkucmVwbGFjZShuZXcgUmVnRXhwKCdeJyArIHRoaXMub3B0aW9ucy5rZXlQcmVmaXgpLCAnJyk7XG4gIH1cbn1cbiIsImltcG9ydCB7IENhY2hlRHJpdmVyLCBBc3luY1ZhbHVlIH0gZnJvbSAnLi9jYWNoZS1kcml2ZXIuaW50ZXJmYWNlJztcblxuY29uc3QgY2FjaGVLZXk6IGFueSA9IFN5bWJvbCgnY2FjaGUga2V5Jyk7XG5cbmV4cG9ydCBjbGFzcyBNZW1vcnlEcml2ZXIgaW1wbGVtZW50cyBDYWNoZURyaXZlciB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXNbY2FjaGVLZXldID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKTtcbiAgfVxuXG4gIGhhcyhrZXk6IHN0cmluZyk6IEFzeW5jVmFsdWUge1xuICAgIHJldHVybiB0aGlzW2NhY2hlS2V5XS5oYXMoa2V5KTtcbiAgfVxuXG4gIGdldChrZXk6IHN0cmluZyk6IEFzeW5jVmFsdWUge1xuICAgIHJldHVybiB0aGlzW2NhY2hlS2V5XS5nZXQoa2V5KTtcbiAgfVxuXG4gIHNldChrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IEFzeW5jVmFsdWUge1xuICAgIHJldHVybiB0aGlzW2NhY2hlS2V5XS5zZXQoa2V5LCB2YWx1ZSk7XG4gIH1cblxuICBkZWxldGUoa2V5OiBzdHJpbmcpOiBBc3luY1ZhbHVlIHtcbiAgICByZXR1cm4gdGhpc1tjYWNoZUtleV0uZGVsZXRlKGtleSk7XG4gIH1cblxuICBjbGVhcigpOiBBc3luY1ZhbHVlIHtcbiAgICByZXR1cm4gdGhpc1tjYWNoZUtleV0uY2xlYXIoKTtcbiAgfVxuXG4gIGtleXMoKTogQXN5bmNWYWx1ZSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpc1tjYWNoZUtleV0ua2V5cygpKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgQ2FjaGVEcml2ZXIgfSBmcm9tICcuL2RyaXZlcnMvY2FjaGUtZHJpdmVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBNZW1vcnlEcml2ZXIgfSBmcm9tICcuL2RyaXZlcnMvbWVtb3J5LWRyaXZlci5wcm92aWRlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXN5bmNDYWNoZU9wdGlvbnNJbnRlcmZhY2Uge1xuICBkcml2ZXI/OiBDYWNoZURyaXZlcjtcblxuICBmcm9tQ2FjaGVBbmRSZXBsYXk/OiBib29sZWFuO1xuXG4gIGJ5cGFzc0NhY2hlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIEFzeW5jQ2FjaGVPcHRpb25zIGltcGxlbWVudHMgQXN5bmNDYWNoZU9wdGlvbnNJbnRlcmZhY2Uge1xuICBkcml2ZXI6IENhY2hlRHJpdmVyID0gbmV3IE1lbW9yeURyaXZlcigpO1xuXG4gIGZyb21DYWNoZUFuZFJlcGxheSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKG92ZXJyaWRlczogQXN5bmNDYWNoZU9wdGlvbnNJbnRlcmZhY2UgPSB7fSkge1xuICAgIE9iamVjdC5hc3NpZ24odGhpcywgb3ZlcnJpZGVzKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2ZXIsIE9ic2VydmFibGUsIGlzT2JzZXJ2YWJsZSwgZnJvbSwgb2YsIG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIG1lcmdlTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgQXN5bmNDYWNoZU9wdGlvbnMsXG4gIEFzeW5jQ2FjaGVPcHRpb25zSW50ZXJmYWNlXG59IGZyb20gJy4vYXN5bmMtY2FjaGUtb3B0aW9ucy5wcm92aWRlcic7XG5cbmV4cG9ydCB0eXBlIEdldFByb21pc2VGdW5jdGlvbiA9ICgpID0+IFByb21pc2U8YW55PjtcblxuZnVuY3Rpb24gaXNQcm9taXNlTGlrZShmbjogYW55KSB7XG4gIHJldHVybiBmbiAmJiB0eXBlb2YgZm4udGhlbiA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgZm4uY2F0Y2ggPT09ICdmdW5jdGlvbic7XG59XG5cbmZ1bmN0aW9uIGlzT2JzZXJ2YWJsZUxpa2UoZm46IGFueSkge1xuICByZXR1cm4gZm4gJiYgaXNPYnNlcnZhYmxlKGZuKTtcbn1cblxuZnVuY3Rpb24gYW55VG9PYnNlcnZhYmxlKGZuOiBhbnkpIHtcbiAgaWYgKGlzT2JzZXJ2YWJsZUxpa2UoZm4pKSB7XG4gICAgcmV0dXJuIGZuO1xuICB9IGVsc2UgaWYgKGlzUHJvbWlzZUxpa2UoZm4pKSB7XG4gICAgcmV0dXJuIGZyb20oZm4pO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBvZihmbik7XG4gIH1cbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFzeW5jQ2FjaGUge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRlZmF1bHRzOiBBc3luY0NhY2hlT3B0aW9ucykge31cblxuICB3cmFwKFxuICAgIHZhbHVlOiBPYnNlcnZhYmxlPGFueT4gfCBHZXRQcm9taXNlRnVuY3Rpb24sXG4gICAgY2FjaGVLZXk6IHN0cmluZyxcbiAgICB1c2VyT3B0aW9uczogQXN5bmNDYWNoZU9wdGlvbnNJbnRlcmZhY2UgPSB7fVxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBnZXRBc3luY1ZhbHVlOiBPYnNlcnZhYmxlPGFueT47XG4gICAgY29uc3Qgb3B0aW9uczogQXN5bmNDYWNoZU9wdGlvbnNJbnRlcmZhY2UgPSBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICB0aGlzLmRlZmF1bHRzLFxuICAgICAgdXNlck9wdGlvbnNcbiAgICApO1xuXG4gICAgaWYgKGlzT2JzZXJ2YWJsZUxpa2UodmFsdWUpKSB7XG4gICAgICBnZXRBc3luY1ZhbHVlID0gdmFsdWUgYXMgT2JzZXJ2YWJsZTxhbnk+O1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBnZXRBc3luY1ZhbHVlID0gT2JzZXJ2YWJsZS5jcmVhdGUoKG9ic2VydmVyOiBPYnNlcnZlcjxhbnk+KSA9PiB7XG4gICAgICAgIGNvbnN0IHByb21pc2U6IFByb21pc2U8YW55PiA9IHZhbHVlKCk7XG4gICAgICAgIGlmICghaXNQcm9taXNlTGlrZShwcm9taXNlKSkge1xuICAgICAgICAgIHJldHVybiBvYnNlcnZlci5lcnJvcihcbiAgICAgICAgICAgIFwiVGhlIGZ1bmN0aW9uIHlvdSBwYXNzZWQgdG8gdGhlIGFzeW5jIGNhY2hlIGRpZG4ndCByZXR1cm4gYSBwcm9taXNlXCJcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHByb21pc2VcbiAgICAgICAgICAudGhlbihyZXN1bHQgPT4ge1xuICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dChyZXN1bHQpO1xuICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaChlcnIgPT4ge1xuICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdWYWx1ZSBjYW4gb25seSBiZSBhbiBvYnNlcnZhYmxlIG9yIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgcHJvbWlzZSdcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFueVRvT2JzZXJ2YWJsZShvcHRpb25zLmRyaXZlci5oYXMoY2FjaGVLZXkpKS5waXBlKFxuICAgICAgbWVyZ2VNYXAoZXhpc3RzSW5DYWNoZSA9PiB7XG4gICAgICAgIGNvbnN0IGNhY2hlQW5kUmV0dXJuQXN5bmNWYWx1ZSA9ICgpID0+XG4gICAgICAgICAgZ2V0QXN5bmNWYWx1ZS5waXBlKFxuICAgICAgICAgICAgbWVyZ2VNYXAoYXN5bmNWYWx1ZSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBhbnlUb09ic2VydmFibGUoXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5kcml2ZXIuc2V0KGNhY2hlS2V5LCBhc3luY1ZhbHVlKVxuICAgICAgICAgICAgICApLnBpcGUobWFwKCgpID0+IGFzeW5jVmFsdWUpKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcblxuICAgICAgICBpZiAoZXhpc3RzSW5DYWNoZSAmJiAhb3B0aW9ucy5ieXBhc3NDYWNoZSkge1xuICAgICAgICAgIGNvbnN0IGdldENhY2hlZFZhbHVlOiBPYnNlcnZhYmxlPGFueT4gPSBhbnlUb09ic2VydmFibGUoXG4gICAgICAgICAgICBvcHRpb25zLmRyaXZlci5nZXQoY2FjaGVLZXkpXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmIChvcHRpb25zLmZyb21DYWNoZUFuZFJlcGxheSkge1xuICAgICAgICAgICAgcmV0dXJuIG1lcmdlKGdldENhY2hlZFZhbHVlLCBjYWNoZUFuZFJldHVybkFzeW5jVmFsdWUoKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBnZXRDYWNoZWRWYWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGNhY2hlQW5kUmV0dXJuQXN5bmNWYWx1ZSgpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiIsImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFzeW5jQ2FjaGUgfSBmcm9tICcuL2FzeW5jLWNhY2hlLnByb3ZpZGVyJztcbmltcG9ydCB7IEFzeW5jQ2FjaGVPcHRpb25zSW50ZXJmYWNlIH0gZnJvbSAnLi9hc3luYy1jYWNoZS1vcHRpb25zLnByb3ZpZGVyJztcblxuQFBpcGUoe1xuICBuYW1lOiAnYXN5bmNDYWNoZScgLy8gdHNsaW50OmRpc2FibGUtbGluZSBwaXBlLW5hbWluZ1xufSlcbmV4cG9ydCBjbGFzcyBBc3luY0NhY2hlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFzeW5jQ2FjaGU6IEFzeW5jQ2FjaGUpIHt9XG5cbiAgdHJhbnNmb3JtKFxuICAgIHZhbHVlOiBPYnNlcnZhYmxlPGFueT4sXG4gICAgY2FjaGVLZXk6IHN0cmluZyxcbiAgICBvcHRpb25zPzogQXN5bmNDYWNoZU9wdGlvbnNJbnRlcmZhY2VcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5hc3luY0NhY2hlLndyYXAodmFsdWUsIGNhY2hlS2V5LCBvcHRpb25zKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBc3luY0NhY2hlIH0gZnJvbSAnLi9hc3luYy1jYWNoZS5wcm92aWRlcic7XG5pbXBvcnQgeyBBc3luY0NhY2hlT3B0aW9uc0ludGVyZmFjZSB9IGZyb20gJy4vYXN5bmMtY2FjaGUtb3B0aW9ucy5wcm92aWRlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cFJlcXVlc3RBcmdzIHtcbiAgaGVhZGVycz86IEh0dHBIZWFkZXJzO1xuICBwYXJhbXM/OiBIdHRwUGFyYW1zO1xuICByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW47XG4gIHJlc3BvbnNlVHlwZT86ICdqc29uJztcbiAgd2l0aENyZWRlbnRpYWxzPzogYm9vbGVhbjtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENhY2hlZEh0dHAge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgYXN5bmNDYWNoZTogQXN5bmNDYWNoZSkge31cblxuICBnZXQoXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IEh0dHBSZXF1ZXN0QXJncyxcbiAgICBhc3luY0NhY2hlT3B0aW9ucz86IEFzeW5jQ2FjaGVPcHRpb25zSW50ZXJmYWNlXG4gICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgcmVzdWx0JDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5odHRwLmdldCh1cmwsIG9wdGlvbnMpO1xuXG4gICAgbGV0IGNhY2hlS2V5OiBzdHJpbmcgPSB1cmw7XG4gICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5wYXJhbXMpIHtcbiAgICAgIGNhY2hlS2V5ICs9ICc/JyArIG9wdGlvbnMucGFyYW1zLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXN5bmNDYWNoZS53cmFwKHJlc3VsdCQsIGNhY2hlS2V5LCBhc3luY0NhY2hlT3B0aW9ucyk7XG4gIH1cbn1cbiIsImltcG9ydCB7IE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9jYWxTdG9yYWdlRHJpdmVyIH0gZnJvbSAnLi9kcml2ZXJzL2xvY2FsLXN0b3JhZ2UtZHJpdmVyLnByb3ZpZGVyJztcbmltcG9ydCB7IE1lbW9yeURyaXZlciB9IGZyb20gJy4vZHJpdmVycy9tZW1vcnktZHJpdmVyLnByb3ZpZGVyJztcbmltcG9ydCB7IEFzeW5jQ2FjaGVPcHRpb25zIH0gZnJvbSAnLi9hc3luYy1jYWNoZS1vcHRpb25zLnByb3ZpZGVyJztcbmltcG9ydCB7IEFzeW5jQ2FjaGUgfSBmcm9tICcuL2FzeW5jLWNhY2hlLnByb3ZpZGVyJztcbmltcG9ydCB7IEFzeW5jQ2FjaGVQaXBlIH0gZnJvbSAnLi9hc3luYy1jYWNoZS5waXBlJztcbmltcG9ydCB7IENhY2hlZEh0dHAgfSBmcm9tICcuL2NhY2hlZC1odHRwLnByb3ZpZGVyJztcblxuZXhwb3J0IGZ1bmN0aW9uIG1lbW9yeURyaXZlckZhY3Rvcnkob3B0aW9uczogQXN5bmNDYWNoZU9wdGlvbnMpOiBNZW1vcnlEcml2ZXIge1xuICByZXR1cm4gb3B0aW9ucy5kcml2ZXIgaW5zdGFuY2VvZiBNZW1vcnlEcml2ZXJcbiAgICA/IG9wdGlvbnMuZHJpdmVyXG4gICAgOiBuZXcgTWVtb3J5RHJpdmVyKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2NhbFN0b3JhZ2VEcml2ZXJGYWN0b3J5KFxuICBvcHRpb25zOiBBc3luY0NhY2hlT3B0aW9uc1xuKTogTG9jYWxTdG9yYWdlRHJpdmVyIHtcbiAgcmV0dXJuIG9wdGlvbnMuZHJpdmVyIGluc3RhbmNlb2YgTG9jYWxTdG9yYWdlRHJpdmVyXG4gICAgPyAob3B0aW9ucy5kcml2ZXIgYXMgTG9jYWxTdG9yYWdlRHJpdmVyKVxuICAgIDogbmV3IExvY2FsU3RvcmFnZURyaXZlcigpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2FjaGVPcHRpb25GYWN0b3J5KCk6IEFzeW5jQ2FjaGVPcHRpb25zIHtcbiAgcmV0dXJuIG5ldyBBc3luY0NhY2hlT3B0aW9ucygpO1xufVxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtBc3luY0NhY2hlUGlwZV0sXG4gIGV4cG9ydHM6IFtBc3luY0NhY2hlUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgQXN5bmNDYWNoZU1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KFxuICAgIGNhY2hlT3B0aW9uczogUHJvdmlkZXIgPSB7XG4gICAgICBwcm92aWRlOiBBc3luY0NhY2hlT3B0aW9ucyxcbiAgICAgIHVzZUZhY3Rvcnk6IGNhY2hlT3B0aW9uRmFjdG9yeVxuICAgIH1cbiAgKTogTW9kdWxlV2l0aFByb3ZpZGVycyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBBc3luY0NhY2hlTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBMb2NhbFN0b3JhZ2VEcml2ZXIsXG4gICAgICAgICAgdXNlRmFjdG9yeTogbG9jYWxTdG9yYWdlRHJpdmVyRmFjdG9yeSxcbiAgICAgICAgICBkZXBzOiBbQXN5bmNDYWNoZU9wdGlvbnNdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBNZW1vcnlEcml2ZXIsXG4gICAgICAgICAgdXNlRmFjdG9yeTogbWVtb3J5RHJpdmVyRmFjdG9yeSxcbiAgICAgICAgICBkZXBzOiBbQXN5bmNDYWNoZU9wdGlvbnNdXG4gICAgICAgIH0sXG4gICAgICAgIGNhY2hlT3B0aW9ucyxcbiAgICAgICAgQXN5bmNDYWNoZSxcbiAgICAgICAgQ2FjaGVkSHR0cFxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJ0c2xpYl8xLl9fdmFsdWVzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBTUEscUJBQU0sa0JBQWtCLEdBQUcsY0FBYyxDQUFDO0FBRTFDLElBQUE7SUFDRSw0QkFDVTs4Q0FBaUMsU0FBUyxFQUFFLGtCQUFrQjtRQUE5RCxZQUFPLEdBQVAsT0FBTztLQUNiOzs7OztJQUVKLGdDQUFHOzs7O0lBQUgsVUFBSSxHQUFXO1FBQ2IsT0FBTyxZQUFZLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztLQUM5RDs7Ozs7SUFFRCxnQ0FBRzs7OztJQUFILFVBQUksR0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ25FOzs7Ozs7SUFFRCxnQ0FBRzs7Ozs7SUFBSCxVQUFJLEdBQVcsRUFBRSxLQUFVO1FBQ3pCLE9BQU8sWUFBWSxDQUFDLE9BQU8sQ0FDekIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FDdEIsQ0FBQztLQUNIOzs7OztJQUVELG1DQUFNOzs7O0lBQU4sVUFBTyxHQUFXO1FBQ2hCLE9BQU8sWUFBWSxD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 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1hc3luYy1jYWNoZS5qcy5tYXAiLCJzb3VyY2VzIjpbIm5nOi8vYW5ndWxhci1hc3luYy1jYWNoZS9kcml2ZXJzL2xvY2FsLXN0b3JhZ2UtZHJpdmVyLnByb3ZpZGVyLnRzIiwibmc6Ly9hbmd1bGFyLWFzeW5jLWNhY2hlL2RyaXZlcnMvbWVtb3J5LWRyaXZlci5wcm92aWRlci50cyIsIm5nOi8vYW5ndWxhci1hc3luYy1jYWNoZS9hc3luYy1jYWNoZS1vcHRpb25zLnByb3ZpZGVyLnRzIiwibmc6Ly9hbmd1bGFyLWFzeW5jLWNhY2hlL2FzeW5jLWNhY2hlLnByb3ZpZGVyLnRzIiwibmc6Ly9hbmd1bGFyLWFzeW5jLWNhY2hlL2FzeW5jLWNhY2hlLnBpcGUudHMiLCJuZzovL2FuZ3VsYXItYXN5bmMtY2FjaGUvY2FjaGVkLWh0dHAucHJvdmlkZXIudHMiLCJuZzovL2FuZ3VsYXItYXN5bmMtY2FjaGUvYXN5bmMtY2FjaGUubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhY2hlRHJpdmVyLCBBc3luY1ZhbHVlIH0gZnJvbSAnLi9jYWNoZS1kcml2ZXIuaW50ZXJmYWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBMb2NhbFN0b3JhZ2VPcHRpb25zIHtcbiAga2V5UHJlZml4OiBzdHJpbmc7XG59XG5cbmNvbnN0IERFRkFVTFRfS0VZX1BSRUZJWCA9ICdhc3luYy1jYWNoZS0nO1xuXG5leHBvcnQgY2xhc3MgTG9jYWxTdG9yYWdlRHJpdmVyIGltcGxlbWVudHMgQ2FjaGVEcml2ZXIge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG9wdGlvbnM6IExvY2FsU3RvcmFnZU9wdGlvbnMgPSB7IGtleVByZWZpeDogREVGQVVMVF9LRVlfUFJFRklYIH1cbiAgKSB7fVxuXG4gIGhhcyhrZXk6IHN0cmluZyk6IEFzeW5jVmFsdWUge1xuICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuaGFzT3duUHJvcGVydHkodGhpcy5nZXRJbnRlcm5hbEtleShrZXkpKTtcbiAgfVxuXG4gIGdldChrZXk6IHN0cmluZyk6IEFzeW5jVmFsdWUge1xuICAgIHJldHVybiBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuZ2V0SW50ZXJuYWxLZXkoa2V5KSkpO1xuICB9XG5cbiAgc2V0KGtleTogc3RyaW5nLCB2YWx1ZTogYW55KTogQXN5bmNWYWx1ZSB7XG4gICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFxuICAgICAgdGhpcy5nZXRJbnRlcm5hbEtleShrZXkpLFxuICAgICAgSlNPTi5zdHJpbmdpZnkodmFsdWUpXG4gICAgKTtcbiAgfVxuXG4gIGRlbGV0ZShrZXk6IHN0cmluZyk6IEFzeW5jVmFsdWUge1xuICAgIHJldHVybiBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLmdldEludGVybmFsS2V5KGtleSkpO1xuICB9XG5cbiAgY2xlYXIoKTogQXN5bmNWYWx1ZSB7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgdGhpcy5rZXlzKCkpIHtcbiAgICAgIHRoaXMuZGVsZXRlKGtleSk7XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuXG4gIGtleXMoKTogQXN5bmNWYWx1ZSB7XG4gICAgY29uc3Qga2V5czogc3RyaW5nW10gPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxvY2FsU3RvcmFnZS5sZW5ndGg7IGkrKykge1xuICAgICAga2V5cy5wdXNoKGxvY2FsU3RvcmFnZS5rZXkoaSkpO1xuICAgIH1cbiAgICByZXR1cm4ga2V5c1xuICAgICAgLmZpbHRlcihrZXkgPT4ga2V5LnN0YXJ0c1dpdGgodGhpcy5vcHRpb25zLmtleVByZWZpeCkpXG4gICAgICAubWFwKGtleSA9PiB0aGlzLmdldEV4dGVybmFsS2V5KGtleSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbnRlcm5hbEtleShzdWZmaXg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMub3B0aW9ucy5rZXlQcmVmaXh9JHtzdWZmaXh9YDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RXh0ZXJuYWxLZXkoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBrZXkucmVwbGFjZShuZXcgUmVnRXhwKCdeJyArIHRoaXMub3B0aW9ucy5rZXlQcmVmaXgpLCAnJyk7XG4gIH1cbn1cbiIsImltcG9ydCB7IENhY2hlRHJpdmVyLCBBc3luY1ZhbHVlIH0gZnJvbSAnLi9jYWNoZS1kcml2ZXIuaW50ZXJmYWNlJztcblxuY29uc3QgY2FjaGVLZXk6IGFueSA9IFN5bWJvbCgnY2FjaGUga2V5Jyk7XG5cbmV4cG9ydCBjbGFzcyBNZW1vcnlEcml2ZXIgaW1wbGVtZW50cyBDYWNoZURyaXZlciB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXNbY2FjaGVLZXldID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKTtcbiAgfVxuXG4gIGhhcyhrZXk6IHN0cmluZyk6IEFzeW5jVmFsdWUge1xuICAgIHJldHVybiB0aGlzW2NhY2hlS2V5XS5oYXMoa2V5KTtcbiAgfVxuXG4gIGdldChrZXk6IHN0cmluZyk6IEFzeW5jVmFsdWUge1xuICAgIHJldHVybiB0aGlzW2NhY2hlS2V5XS5nZXQoa2V5KTtcbiAgfVxuXG4gIHNldChrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IEFzeW5jVmFsdWUge1xuICAgIHJldHVybiB0aGlzW2NhY2hlS2V5XS5zZXQoa2V5LCB2YWx1ZSk7XG4gIH1cblxuICBkZWxldGUoa2V5OiBzdHJpbmcpOiBBc3luY1ZhbHVlIHtcbiAgICByZXR1cm4gdGhpc1tjYWNoZUtleV0uZGVsZXRlKGtleSk7XG4gIH1cblxuICBjbGVhcigpOiBBc3luY1ZhbHVlIHtcbiAgICByZXR1cm4gdGhpc1tjYWNoZUtleV0uY2xlYXIoKTtcbiAgfVxuXG4gIGtleXMoKTogQXN5bmNWYWx1ZSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpc1tjYWNoZUtleV0ua2V5cygpKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgQ2FjaGVEcml2ZXIgfSBmcm9tICcuL2RyaXZlcnMvY2FjaGUtZHJpdmVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBNZW1vcnlEcml2ZXIgfSBmcm9tICcuL2RyaXZlcnMvbWVtb3J5LWRyaXZlci5wcm92aWRlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXN5bmNDYWNoZU9wdGlvbnNJbnRlcmZhY2Uge1xuICBkcml2ZXI/OiBDYWNoZURyaXZlcjtcblxuICBmcm9tQ2FjaGVBbmRSZXBsYXk/OiBib29sZWFuO1xuXG4gIGJ5cGFzc0NhY2hlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIEFzeW5jQ2FjaGVPcHRpb25zIGltcGxlbWVudHMgQXN5bmNDYWNoZU9wdGlvbnNJbnRlcmZhY2Uge1xuICBkcml2ZXI6IENhY2hlRHJpdmVyID0gbmV3IE1lbW9yeURyaXZlcigpO1xuXG4gIGZyb21DYWNoZUFuZFJlcGxheSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKG92ZXJyaWRlczogQXN5bmNDYWNoZU9wdGlvbnNJbnRlcmZhY2UgPSB7fSkge1xuICAgIE9iamVjdC5hc3NpZ24odGhpcywgb3ZlcnJpZGVzKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2ZXIsIE9ic2VydmFibGUsIGlzT2JzZXJ2YWJsZSwgZnJvbSwgb2YsIG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIG1lcmdlTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgQXN5bmNDYWNoZU9wdGlvbnMsXG4gIEFzeW5jQ2FjaGVPcHRpb25zSW50ZXJmYWNlXG59IGZyb20gJy4vYXN5bmMtY2FjaGUtb3B0aW9ucy5wcm92aWRlcic7XG5cbmV4cG9ydCB0eXBlIEdldFByb21pc2VGdW5jdGlvbiA9ICgpID0+IFByb21pc2U8YW55PjtcblxuZnVuY3Rpb24gaXNQcm9taXNlTGlrZShmbjogYW55KSB7XG4gIHJldHVybiBmbiAmJiB0eXBlb2YgZm4udGhlbiA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgZm4uY2F0Y2ggPT09ICdmdW5jdGlvbic7XG59XG5cbmZ1bmN0aW9uIGlzT2JzZXJ2YWJsZUxpa2UoZm46IGFueSkge1xuICByZXR1cm4gZm4gJiYgaXNPYnNlcnZhYmxlKGZuKTtcbn1cblxuZnVuY3Rpb24gYW55VG9PYnNlcnZhYmxlKGZuOiBhbnkpIHtcbiAgaWYgKGlzT2JzZXJ2YWJsZUxpa2UoZm4pKSB7XG4gICAgcmV0dXJuIGZuO1xuICB9IGVsc2UgaWYgKGlzUHJvbWlzZUxpa2UoZm4pKSB7XG4gICAgcmV0dXJuIGZyb20oZm4pO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBvZihmbik7XG4gIH1cbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFzeW5jQ2FjaGUge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRlZmF1bHRzOiBBc3luY0NhY2hlT3B0aW9ucykge31cblxuICB3cmFwKFxuICAgIHZhbHVlOiBPYnNlcnZhYmxlPGFueT4gfCBHZXRQcm9taXNlRnVuY3Rpb24sXG4gICAgY2FjaGVLZXk6IHN0cmluZyxcbiAgICB1c2VyT3B0aW9uczogQXN5bmNDYWNoZU9wdGlvbnNJbnRlcmZhY2UgPSB7fVxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBnZXRBc3luY1ZhbHVlOiBPYnNlcnZhYmxlPGFueT47XG4gICAgY29uc3Qgb3B0aW9uczogQXN5bmNDYWNoZU9wdGlvbnNJbnRlcmZhY2UgPSBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICB0aGlzLmRlZmF1bHRzLFxuICAgICAgdXNlck9wdGlvbnNcbiAgICApO1xuXG4gICAgaWYgKGlzT2JzZXJ2YWJsZUxpa2UodmFsdWUpKSB7XG4gICAgICBnZXRBc3luY1ZhbHVlID0gdmFsdWUgYXMgT2JzZXJ2YWJsZTxhbnk+O1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBnZXRBc3luY1ZhbHVlID0gT2JzZXJ2YWJsZS5jcmVhdGUoKG9ic2VydmVyOiBPYnNlcnZlcjxhbnk+KSA9PiB7XG4gICAgICAgIGNvbnN0IHByb21pc2U6IFByb21pc2U8YW55PiA9IHZhbHVlKCk7XG4gICAgICAgIGlmICghaXNQcm9taXNlTGlrZShwcm9taXNlKSkge1xuICAgICAgICAgIHJldHVybiBvYnNlcnZlci5lcnJvcihcbiAgICAgICAgICAgIFwiVGhlIGZ1bmN0aW9uIHlvdSBwYXNzZWQgdG8gdGhlIGFzeW5jIGNhY2hlIGRpZG4ndCByZXR1cm4gYSBwcm9taXNlXCJcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHByb21pc2VcbiAgICAgICAgICAudGhlbihyZXN1bHQgPT4ge1xuICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dChyZXN1bHQpO1xuICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaChlcnIgPT4ge1xuICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdWYWx1ZSBjYW4gb25seSBiZSBhbiBvYnNlcnZhYmxlIG9yIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgcHJvbWlzZSdcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFueVRvT2JzZXJ2YWJsZShvcHRpb25zLmRyaXZlci5oYXMoY2FjaGVLZXkpKS5waXBlKFxuICAgICAgbWVyZ2VNYXAoZXhpc3RzSW5DYWNoZSA9PiB7XG4gICAgICAgIGNvbnN0IGNhY2hlQW5kUmV0dXJuQXN5bmNWYWx1ZSA9ICgpID0+XG4gICAgICAgICAgZ2V0QXN5bmNWYWx1ZS5waXBlKFxuICAgICAgICAgICAgbWVyZ2VNYXAoYXN5bmNWYWx1ZSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBhbnlUb09ic2VydmFibGUoXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5kcml2ZXIuc2V0KGNhY2hlS2V5LCBhc3luY1ZhbHVlKVxuICAgICAgICAgICAgICApLnBpcGUobWFwKCgpID0+IGFzeW5jVmFsdWUpKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcblxuICAgICAgICBpZiAoZXhpc3RzSW5DYWNoZSAmJiAhb3B0aW9ucy5ieXBhc3NDYWNoZSkge1xuICAgICAgICAgIGNvbnN0IGdldENhY2hlZFZhbHVlOiBPYnNlcnZhYmxlPGFueT4gPSBhbnlUb09ic2VydmFibGUoXG4gICAgICAgICAgICBvcHRpb25zLmRyaXZlci5nZXQoY2FjaGVLZXkpXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmIChvcHRpb25zLmZyb21DYWNoZUFuZFJlcGxheSkge1xuICAgICAgICAgICAgcmV0dXJuIG1lcmdlKGdldENhY2hlZFZhbHVlLCBjYWNoZUFuZFJldHVybkFzeW5jVmFsdWUoKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBnZXRDYWNoZWRWYWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGNhY2hlQW5kUmV0dXJuQXN5bmNWYWx1ZSgpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiIsImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFzeW5jQ2FjaGUgfSBmcm9tICcuL2FzeW5jLWNhY2hlLnByb3ZpZGVyJztcbmltcG9ydCB7IEFzeW5jQ2FjaGVPcHRpb25zSW50ZXJmYWNlIH0gZnJvbSAnLi9hc3luYy1jYWNoZS1vcHRpb25zLnByb3ZpZGVyJztcblxuQFBpcGUoe1xuICBuYW1lOiAnYXN5bmNDYWNoZScgLy8gdHNsaW50OmRpc2FibGUtbGluZSBwaXBlLW5hbWluZ1xufSlcbmV4cG9ydCBjbGFzcyBBc3luY0NhY2hlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFzeW5jQ2FjaGU6IEFzeW5jQ2FjaGUpIHt9XG5cbiAgdHJhbnNmb3JtKFxuICAgIHZhbHVlOiBPYnNlcnZhYmxlPGFueT4sXG4gICAgY2FjaGVLZXk6IHN0cmluZyxcbiAgICBvcHRpb25zPzogQXN5bmNDYWNoZU9wdGlvbnNJbnRlcmZhY2VcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5hc3luY0NhY2hlLndyYXAodmFsdWUsIGNhY2hlS2V5LCBvcHRpb25zKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBc3luY0NhY2hlIH0gZnJvbSAnLi9hc3luYy1jYWNoZS5wcm92aWRlcic7XG5pbXBvcnQgeyBBc3luY0NhY2hlT3B0aW9uc0ludGVyZmFjZSB9IGZyb20gJy4vYXN5bmMtY2FjaGUtb3B0aW9ucy5wcm92aWRlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cFJlcXVlc3RBcmdzIHtcbiAgaGVhZGVycz86IEh0dHBIZWFkZXJzO1xuICBwYXJhbXM/OlxuICAgIHwgSHR0cFBhcmFtc1xuICAgIHwge1xuICAgICAgICBbcGFyYW06IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdO1xuICAgICAgfTtcbiAgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuO1xuICByZXNwb25zZVR5cGU/OiAnanNvbic7XG4gIHdpdGhDcmVkZW50aWFscz86IGJvb2xlYW47XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDYWNoZWRIdHRwIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIGFzeW5jQ2FjaGU6IEFzeW5jQ2FjaGUpIHt9XG5cbiAgZ2V0PFQgPSBhbnk+KFxuICAgIHVybDogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBIdHRwUmVxdWVzdEFyZ3MsXG4gICAgYXN5bmNDYWNoZU9wdGlvbnM/OiBBc3luY0NhY2hlT3B0aW9uc0ludGVyZmFjZVxuICApOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICBjb25zdCByZXN1bHQkOiBPYnNlcnZhYmxlPFQ+ID0gdGhpcy5odHRwLmdldDxUPih1cmwsIG9wdGlvbnMpO1xuXG4gICAgbGV0IGNhY2hlS2V5OiBzdHJpbmcgPSB1cmw7XG4gICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5wYXJhbXMpIHtcbiAgICAgIGxldCBxcyA9IG9wdGlvbnMucGFyYW1zLnRvU3RyaW5nKCk7XG4gICAgICBpZiAoXG4gICAgICAgIHR5cGVvZiBvcHRpb25zLnBhcmFtcyA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgIShvcHRpb25zLnBhcmFtcyBpbnN0YW5jZW9mIEh0dHBQYXJhbXMpXG4gICAgICApIHtcbiAgICAgICAgcXMgPSBuZXcgSHR0cFBhcmFtcyh7XG4gICAgICAgICAgZnJvbU9iamVjdDogb3B0aW9ucy5wYXJhbXNcbiAgICAgICAgfSkudG9TdHJpbmcoKTtcbiAgICAgIH1cbiAgICAgIGNhY2hlS2V5ICs9ICc/JyArIHFzO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFzeW5jQ2FjaGUud3JhcChyZXN1bHQkLCBjYWNoZUtleSwgYXN5bmNDYWNoZU9wdGlvbnMpO1xuICB9XG59XG4iLCJpbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycywgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvY2FsU3RvcmFnZURyaXZlciB9IGZyb20gJy4vZHJpdmVycy9sb2NhbC1zdG9yYWdlLWRyaXZlci5wcm92aWRlcic7XG5pbXBvcnQgeyBNZW1vcnlEcml2ZXIgfSBmcm9tICcuL2RyaXZlcnMvbWVtb3J5LWRyaXZlci5wcm92aWRlcic7XG5pbXBvcnQgeyBBc3luY0NhY2hlT3B0aW9ucyB9IGZyb20gJy4vYXN5bmMtY2FjaGUtb3B0aW9ucy5wcm92aWRlcic7XG5pbXBvcnQgeyBBc3luY0NhY2hlIH0gZnJvbSAnLi9hc3luYy1jYWNoZS5wcm92aWRlcic7XG5pbXBvcnQgeyBBc3luY0NhY2hlUGlwZSB9IGZyb20gJy4vYXN5bmMtY2FjaGUucGlwZSc7XG5pbXBvcnQgeyBDYWNoZWRIdHRwIH0gZnJvbSAnLi9jYWNoZWQtaHR0cC5wcm92aWRlcic7XG5cbmV4cG9ydCBmdW5jdGlvbiBtZW1vcnlEcml2ZXJGYWN0b3J5KG9wdGlvbnM6IEFzeW5jQ2FjaGVPcHRpb25zKTogTWVtb3J5RHJpdmVyIHtcbiAgcmV0dXJuIG9wdGlvbnMuZHJpdmVyIGluc3RhbmNlb2YgTWVtb3J5RHJpdmVyXG4gICAgPyBvcHRpb25zLmRyaXZlclxuICAgIDogbmV3IE1lbW9yeURyaXZlcigpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9jYWxTdG9yYWdlRHJpdmVyRmFjdG9yeShcbiAgb3B0aW9uczogQXN5bmNDYWNoZU9wdGlvbnNcbik6IExvY2FsU3RvcmFnZURyaXZlciB7XG4gIHJldHVybiBvcHRpb25zLmRyaXZlciBpbnN0YW5jZW9mIExvY2FsU3RvcmFnZURyaXZlclxuICAgID8gKG9wdGlvbnMuZHJpdmVyIGFzIExvY2FsU3RvcmFnZURyaXZlcilcbiAgICA6IG5ldyBMb2NhbFN0b3JhZ2VEcml2ZXIoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhY2hlT3B0aW9uRmFjdG9yeSgpOiBBc3luY0NhY2hlT3B0aW9ucyB7XG4gIHJldHVybiBuZXcgQXN5bmNDYWNoZU9wdGlvbnMoKTtcbn1cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbQXN5bmNDYWNoZVBpcGVdLFxuICBleHBvcnRzOiBbQXN5bmNDYWNoZVBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIEFzeW5jQ2FjaGVNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdChcbiAgICBjYWNoZU9wdGlvbnM6IFByb3ZpZGVyID0ge1xuICAgICAgcHJvdmlkZTogQXN5bmNDYWNoZU9wdGlvbnMsXG4gICAgICB1c2VGYWN0b3J5OiBjYWNoZU9wdGlvbkZhY3RvcnlcbiAgICB9XG4gICk6IE1vZHVsZVdpdGhQcm92aWRlcnMge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogQXN5bmNDYWNoZU1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogTG9jYWxTdG9yYWdlRHJpdmVyLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IGxvY2FsU3RvcmFnZURyaXZlckZhY3RvcnksXG4gICAgICAgICAgZGVwczogW0FzeW5jQ2FjaGVPcHRpb25zXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogTWVtb3J5RHJpdmVyLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IG1lbW9yeURyaXZlckZhY3RvcnksXG4gICAgICAgICAgZGVwczogW0FzeW5jQ2FjaGVPcHRpb25zXVxuICAgICAgICB9LFxuICAgICAgICBjYWNoZU9wdGlvbnMsXG4gICAgICAgIEFzeW5jQ2FjaGUsXG4gICAgICAgIENhY2hlZEh0dHBcbiAgICAgIF1cbiAgICB9O1xuICB9XG59XG4iXSwibmFtZXMiOlsidHNsaWJfMS5fX3ZhbHVlcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQU1BLHFCQUFNLGtCQUFrQixHQUFHLGNBQWMsQ0FBQztBQUUxQyxJQUFBO0lBQ0UsNEJBQ1U7OENBQWlDLFNBQVMsRUFBRSxrQkFBa0I7UUFBOUQsWUFBTyxHQUFQLE9BQU87S0FDYjs7Ozs7SUFFSixnQ0FBRzs7OztJQUFILFVBQUksR0FBVztRQUNiLE9BQU8sWUFBWSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7S0FDOUQ7Ozs7O0lBRUQsZ0NBQUc7Ozs7SUFBSCxVQUFJLEdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNuRTs7Ozs7O0lBRUQsZ0NBQUc7Ozs7O0lBQUgsVUFBSSxHQUFXLEVBQUUsS0FBVTtRQUN6QixPQUFPLFlBQVksQ0FBQyxPQUFPLENBQ3pCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQ3RCLENBQUM7S0FDSDs7Ozs7SUFFRCxtQ0FBTTs7OztJQUFOLFVBQU8sR0FBVztRQUNoQixPQUFPLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0tBQzFEOzs7O0lBRUQsa0NBQUs7OztJQUFMOztZQUNFLEtBQWtCLElBQUEsS0FBQUEsU0FBQSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUEsZ0JBQUE7Z0JBQXhCLElBQU0sR0FBRyxXQUFBO2dCQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDbEI7Ozs7Ozs7OztRQUNELE9BQU87O0tBQ1I7Ozs7SUFFRCxpQ0FBSTs7O0lBQUo7UUFBQSxpQkFRQztRQVBDLHFCQUFNLElBQUksR0FBYSxFQUFFLENBQUM7UUFDMUIsS0FBSyxxQkFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzVDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2hDO1FBQ0QsT0FBTyxJQUFJO2FBQ1IsTUFBTSxDQUFDLFVBQUEsR0FBRyxJQUFJLE9BQUEsR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFBLENBQUM7YUFDckQsR0FBRyxDQUFDLFVBQUEsR0FBRyxJQUFJLE9BQUEsS0FBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBQSxDQUFDLENBQUM7S0FDekM7Ozs7O0lBRU8sMkNBQWM7Ozs7Y0FBQyxNQUFjO1FBQ25DLE9BQU8sS0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxNQUFRLENBQUM7Ozs7OztJQUd0QywyQ0FBYzs7OztjQUFDLEdBQVc7UUFDaEMsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDOzs2QkF0RHJFO0lBd0RDOzs7Ozs7QUN0REQscUJBQU0sUUFBUSxHQUFRLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUUxQyxJQUFBO0lBQ0U7UUFDRSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxHQUFHLEVBQWUsQ0FBQztLQUN6Qzs7Ozs7SUFFRCwwQkFBRzs7OztJQUFILFVBQUksR0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUNoQzs7Ozs7SUFFRCwwQkFBRzs7OztJQUFILFVBQUksR0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUNoQzs7Ozs7O0lBRUQsMEJBQUc7Ozs7O0lBQUgsVUFBSSxHQUFXLEVBQUUsS0FBVTtRQUN6QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0tBQ3ZDOzs7OztJQUVELDZCQUFNOzs7O0lBQU4sVUFBTyxHQUFXO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUNuQzs7OztJQUVELDRCQUFLOzs7SUFBTDtRQUNFLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0tBQy9COzs7O0lBRUQsMkJBQUk7OztJQUFKO1FBQ0UsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBQzFDO3VCQS9CSDtJQWdDQzs7Ozs7O0FDL0JELElBVUE7SUFLRSwyQkFBWSxTQUEwQztRQUExQywwQkFBQSxFQUFBLGNBQTBDO3NCQUpoQyxJQUFJLFlBQVksRUFBRTtrQ0FFbkIsS0FBSztRQUd4QixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztLQUNoQzs0QkFsQkg7SUFtQkM7Ozs7OztBQ25CRDs7OztBQVVBLHVCQUF1QixFQUFPO0lBQzVCLE9BQU8sRUFBRSxJQUFJLE9BQU8sRUFBRSxDQUFDLElBQUksS0FBSyxVQUFVLElBQUksT0FBTyxFQUFFLENBQUMsS0FBSyxLQUFLLFVBQVUsQ0FBQztDQUM5RTs7Ozs7QUFFRCwwQkFBMEIsRUFBTztJQUMvQixPQUFPLEVBQUUsSUFBSSxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7Q0FDL0I7Ozs7O0FBRUQseUJBQXlCLEVBQU87SUFDOUIsSUFBSSxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsRUFBRTtRQUN4QixPQUFPLEVBQUUsQ0FBQztLQUNYO1NBQU0sSUFBSSxhQUFhLENBQUMsRUFBRSxDQUFDLEVBQUU7UUFDNUIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDakI7U0FBTTtRQUNMLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0tBQ2Y7Q0FDRjs7SUFJQyxvQkFBb0IsUUFBMkI7UUFBM0IsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7S0FBSTs7Ozs7OztJQUVuRCx5QkFBSTs7Ozs7O0lBQUosVUFDRSxLQUEyQyxFQUMzQyxRQUFnQixFQUNoQixXQUE0QztRQUE1Qyw0QkFBQSxFQUFBLGdCQUE0QztRQUU1QyxxQkFBSSxhQUE4QixDQUFDO1FBQ25DLHFCQUFNLE9BQU8sR0FBK0IsTUFBTSxDQUFDLE1BQU0sQ0FDdkQsRUFBRSxFQUNGLElBQUksQ0FBQyxRQUFRLEVBQ2IsV0FBVyxDQUNaLENBQUM7UUFFRixJQUFJLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzNCLGFBQWEscUJBQUcsS0FBd0IsQ0FBQSxDQUFDO1NBQzFDO2FBQU0sSUFBSSxPQUFPLEtBQUssS0FBSyxVQUFVLEVBQUU7WUFDdEMsYUFBYSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsVUFBQyxRQUF1QjtnQkFDeEQscUJBQU0sT0FBTyxHQUFpQixLQUFLLEVBQUUsQ0FBQztnQkFDdEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsRUFBRTtvQkFDM0IsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUNuQixvRUFBb0UsQ0FDckUsQ0FBQztpQkFDSDtnQkFDRCxPQUFPO3FCQUNKLElBQUksQ0FBQyxVQUFBLE1BQU07b0JBQ1YsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDdEIsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO2lCQUNyQixDQUFDO3FCQUNELEtBQUssQ0FBQyxVQUFBLEdBQUc7b0JBQ1IsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDckIsQ0FBQyxDQUFDO2FBQ04sQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLE1BQU0sSUFBSSxLQUFLLENBQ2Isc0VBQXNFLENBQ3ZFLENBQUM7U0FDSDtRQUVELE9BQU8sZUFBZSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUN2RCxRQUFRLENBQUMsVUFBQSxhQUFhO1lBQ3BCLHFCQUFNLHdCQUF3QixHQUFHO2dCQUMvQixPQUFBLGFBQWEsQ0FBQyxJQUFJLENBQ2hCLFFBQVEsQ0FBQyxVQUFBLFVBQVU7b0JBQ2pCLE9BQU8sZUFBZSxDQUNwQixPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQ3pDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFNLE9BQUEsVUFBVSxHQUFBLENBQUMsQ0FBQyxDQUFDO2lCQUMvQixDQUFDLENBQ0g7YUFBQSxDQUFDO1lBRUosSUFBSSxhQUFhLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFO2dCQUN6QyxxQkFBTSxjQUFjLEdBQW9CLGVBQWUsQ0FDckQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQzdCLENBQUM7Z0JBRUYsSUFBSSxPQUFPLENBQUMsa0JBQWtCLEVBQUU7b0JBQzlCLE9BQU8sS0FBSyxDQUFDLGNBQWMsRUFBRSx3QkFBd0IsRUFBRSxDQUFDLENBQUM7aUJBQzFEO3FCQUFNO29CQUNMLE9BQU8sY0FBYyxDQUFDO2lCQUN2QjthQUNGO2lCQUFNO2dCQUNMLE9BQU8sd0JBQXdCLEVBQUUsQ0FBQzthQUNuQztTQUNGLENBQUMsQ0FDSCxDQUFDO0tBQ0g7O2dCQW5FRixVQUFVOzs7O2dCQXhCVCxpQkFBaUI7O3FCQUpuQjs7Ozs7OztBQ0FBO0lBU0Usd0JBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7S0FBSTs7Ozs7OztJQUU5QyxrQ0FBUzs7Ozs7O0lBQVQsVUFDRSxLQUFzQixFQUN0QixRQUFnQixFQUNoQixPQUFvQztRQUVwQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7S0FDdkQ7O2dCQVpGLElBQUksU0FBQztvQkFDSixJQUFJLEVBQUUsWUFBWTtpQkFDbkI7Ozs7Z0JBTFEsVUFBVTs7eUJBRm5COzs7Ozs7O0FDQUE7SUFvQkUsb0JBQW9CLElBQWdCLEVBQVUsVUFBc0I7UUFBaEQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLGVBQVUsR0FBVixVQUFVLENBQVk7S0FBSTs7Ozs7Ozs7SUFFeEUsd0JBQUc7Ozs7Ozs7SUFBSCxVQUNFLEdBQVcsRUFDWCxPQUF5QixFQUN6QixpQkFBOEM7UUFFOUMscUJBQU0sT0FBTyxHQUFrQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBSSxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFOUQscUJBQUksUUFBUSxHQUFXLEdBQUcsQ0FBQztRQUMzQixJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQzdCLHFCQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25DLElBQ0UsT0FBTyxPQUFPLENBQUMsTUFBTSxLQUFLLFFBQVE7Z0JBQ2xDLEVBQUUsT0FBTyxDQUFDLE1BQU0sWUFBWSxVQUFVLENBQ3hDLEVBQUU7Z0JBQ0EsRUFBRSxHQUFHLElBQUksVUFBVSxDQUFDO29CQUNsQixVQUFVLEVBQUUsT0FBTyxDQUFDLE1BQU07aUJBQzNCLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUNmO1lBQ0QsUUFBUSxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7U0FDdEI7UUFFRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztLQUNuRTs7Z0JBMUJGLFVBQVU7Ozs7Z0JBakJGLFVBQVU7Z0JBRVYsVUFBVTs7cUJBSG5COzs7Ozs7O0FDQUE7Ozs7QUFRQSw2QkFBb0MsT0FBMEI7SUFDNUQsT0FBTyxPQUFPLENBQUMsTUFBTSxZQUFZLFlBQVk7VUFDekMsT0FBTyxDQUFDLE1BQU07VUFDZCxJQUFJLFlBQVksRUFBRSxDQUFDO0NBQ3hCOzs7OztBQUVELG1DQUNFLE9BQTBCO0lBRTFCLE9BQU8sT0FBTyxDQUFDLE1BQU0sWUFBWSxrQkFBa0I7NkJBQzlDLE9BQU8sQ0FBQyxNQUE0QjtVQUNyQyxJQUFJLGtCQUFrQixFQUFFLENBQUM7Q0FDOUI7Ozs7QUFFRDtJQUNFLE9BQU8sSUFBSSxpQkFBaUIsRUFBRSxDQUFDO0NBQ2hDOzs7Ozs7OztJQU9RLHdCQUFPOzs7O0lBQWQsVUFDRSxZQUdDO1FBSEQsNkJBQUEsRUFBQTtZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsVUFBVSxFQUFFLGtCQUFrQjtTQUMvQjtRQUVELE9BQU87WUFDTCxRQUFRLEVBQUUsZ0JBQWdCO1lBQzFCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsa0JBQWtCO29CQUMzQixVQUFVLEVBQUUseUJBQXlCO29CQUNyQyxJQUFJLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztpQkFDMUI7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLFlBQVk7b0JBQ3JCLFVBQVUsRUFBRSxtQkFBbUI7b0JBQy9CLElBQUksRUFBRSxDQUFDLGlCQUFpQixDQUFDO2lCQUMxQjtnQkFDRCxZQUFZO2dCQUNaLFVBQVU7Z0JBQ1YsVUFBVTthQUNYO1NBQ0YsQ0FBQztLQUNIOztnQkE3QkYsUUFBUSxTQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGNBQWMsQ0FBQztvQkFDOUIsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDO2lCQUMxQjs7MkJBN0JEOzs7Ozs7Ozs7Ozs7Ozs7In0= |
{ | ||
"name": "angular-async-cache", | ||
"version": "2.0.1", | ||
"version": "2.0.2", | ||
"description": "A simple utility to help with caching of promises and observables to enable an easy offline first approach in angular 6+ apps", | ||
@@ -5,0 +5,0 @@ "repository": { |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
277619
2643